In analyzing issue #56483, it was noticed that running opt with
-reassociate was missing some minor optimizations. For example,
there were cases where the running opt on IR with floating-point
instructions that have the fast flags applied, sometimes resulted in
less efficient code than the input IR (things like dead instructions
left behind, and missed reassociations). These were sometimes noted
in the test-files with TODOs, to investigate further. This commit
fixes some of these problems, removing some TODOs in the process.
FTR, I refer to these as "minor" missed optimizations, because when
running a full clang/llvm compilation, these inefficiencies are not
happening, as other passes clean that residue up. Regardless, having
cleaner IR produced by opt, makes assessing the quality of fixes done
in opt easier.
Add a line to this comment to explain why we add users of the negate to the redo list?