Add intermediate subtract instructions to reassociation worklist.
authorOwen Anderson <resistor@mac.com>
Mon, 16 Nov 2015 18:07:30 +0000 (18:07 +0000)
committerOwen Anderson <resistor@mac.com>
Mon, 16 Nov 2015 18:07:30 +0000 (18:07 +0000)
commit2a949077a97c3bcc57be2507ad8c9b5035f14a3d
treed6f85a9f09099dc3e1b25a782ae14f18684476fa
parent578dced0a16fd5011ce61da6d46f63a8aa64dcb5
Add intermediate subtract instructions to reassociation worklist.

We sometimes create intermediate subtract instructions during
reassociation.  Adding these to the worklist to revisit exposes many
additional reassociation opportunities.

Patch by Aditya Nandakumar.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@253240 91177308-0d34-0410-b5e6-96231b3b80d8
lib/Transforms/Scalar/Reassociate.cpp
test/Transforms/Reassociate/fast-ReassociateVector.ll
test/Transforms/Reassociate/fast-basictest.ll
test/Transforms/Reassociate/fast-fp-commute.ll
test/Transforms/Reassociate/fast-multistep.ll
test/Transforms/Reassociate/multistep.ll
test/Transforms/Reassociate/reassoc-intermediate-fnegs.ll [new file with mode: 0644]
test/Transforms/Reassociate/secondary.ll
test/Transforms/Reassociate/xor_reassoc.ll