llvm-project/llvm/test/Transforms/Reassociate
Sanjay Patel 21c15ef384 [Reassociate] try harder to convert negative FP constants to positive
This is an extension of a transform that tries to produce positive floating-point
constants to improve canonicalization (and hopefully lead to more reassociation
and CSE).

The original patches were:
D4904
D5363 (rL221721)

But as the test diffs show, these were limited to basic patterns by walking from
an instruction to its single user rather than recursively moving up the def-use
sequence. No fast-math is required here because we're only rearranging implicit
FP negations in intermediate ops.

A motivating bug is:
https://bugs.llvm.org/show_bug.cgi?id=32939

Differential Revision: https://reviews.llvm.org/D65954

llvm-svn: 368512
2019-08-10 13:17:54 +00:00
..
2002-05-15-AgressiveSubMove.ll Revert "Temporarily Revert "Add basic loop fusion pass."" 2019-04-17 04:52:47 +00:00
2002-05-15-MissedTree.ll [Tests] Autogen a bunch of Reassociate tests for ease of update 2019-08-01 23:30:32 +00:00
2002-05-15-SubReassociate.ll [Tests] Autogen a bunch of Reassociate tests for ease of update 2019-08-01 23:30:32 +00:00
2002-07-09-DominanceProblem.ll Revert "Temporarily Revert "Add basic loop fusion pass."" 2019-04-17 04:52:47 +00:00
2003-08-12-InfiniteLoop.ll Revert "Temporarily Revert "Add basic loop fusion pass."" 2019-04-17 04:52:47 +00:00
2005-09-01-ArrayOutOfBounds.ll Revert "Temporarily Revert "Add basic loop fusion pass."" 2019-04-17 04:52:47 +00:00
2006-04-27-ReassociateVector.ll Revert "Temporarily Revert "Add basic loop fusion pass."" 2019-04-17 04:52:47 +00:00
2011-01-26-UseAfterFree.ll Revert "Temporarily Revert "Add basic loop fusion pass."" 2019-04-17 04:52:47 +00:00
2012-05-08-UndefLeak.ll Revert "Temporarily Revert "Add basic loop fusion pass."" 2019-04-17 04:52:47 +00:00
2012-06-08-InfiniteLoop.ll Revert "Temporarily Revert "Add basic loop fusion pass."" 2019-04-17 04:52:47 +00:00
absorption.ll Revert "Temporarily Revert "Add basic loop fusion pass."" 2019-04-17 04:52:47 +00:00
add_across_block_crash.ll Revert "Temporarily Revert "Add basic loop fusion pass."" 2019-04-17 04:52:47 +00:00
basictest.ll Revert "Temporarily Revert "Add basic loop fusion pass."" 2019-04-17 04:52:47 +00:00
binop-identity.ll Revert "Temporarily Revert "Add basic loop fusion pass."" 2019-04-17 04:52:47 +00:00
canonicalize-neg-const.ll [Reassociate] try harder to convert negative FP constants to positive 2019-08-10 13:17:54 +00:00
commute.ll [Tests] Autogen a bunch of Reassociate tests for ease of update 2019-08-01 23:30:32 +00:00
crash.ll Revert "Temporarily Revert "Add basic loop fusion pass."" 2019-04-17 04:52:47 +00:00
crash2.ll Add FNeg IR constant folding support 2019-05-05 16:07:09 +00:00
deadcode.ll Revert "Temporarily Revert "Add basic loop fusion pass."" 2019-04-17 04:52:47 +00:00
erase_inst_made_change.ll Revert "Temporarily Revert "Add basic loop fusion pass."" 2019-04-17 04:52:47 +00:00
factorize-again.ll Revert "Temporarily Revert "Add basic loop fusion pass."" 2019-04-17 04:52:47 +00:00
fast-AgressiveSubMove.ll Revert "Temporarily Revert "Add basic loop fusion pass."" 2019-04-17 04:52:47 +00:00
fast-ArrayOutOfBounds.ll Revert "Temporarily Revert "Add basic loop fusion pass."" 2019-04-17 04:52:47 +00:00
fast-MissedTree.ll Revert "Temporarily Revert "Add basic loop fusion pass."" 2019-04-17 04:52:47 +00:00
fast-ReassociateVector.ll [Reassociate] try harder to convert negative FP constants to positive 2019-08-10 13:17:54 +00:00
fast-SubReassociate.ll [Tests] Autogen a bunch of Reassociate tests for ease of update 2019-08-01 23:30:32 +00:00
fast-basictest.ll [InstCombine] canonicalize fneg before fmul/fdiv 2019-07-31 16:53:22 +00:00
fast-fp-commute.ll [Tests] Autogen a bunch of Reassociate tests for ease of update 2019-08-01 23:30:32 +00:00
fast-mightymul.ll Revert "Temporarily Revert "Add basic loop fusion pass."" 2019-04-17 04:52:47 +00:00
fast-multistep.ll [Tests] Autogen a bunch of Reassociate tests for ease of update 2019-08-01 23:30:32 +00:00
fp-commute.ll Revert "Temporarily Revert "Add basic loop fusion pass."" 2019-04-17 04:52:47 +00:00
fp-expr.ll Revert "Temporarily Revert "Add basic loop fusion pass."" 2019-04-17 04:52:47 +00:00
infloop-deadphi.ll Revert "Temporarily Revert "Add basic loop fusion pass."" 2019-04-17 04:52:47 +00:00
inverses.ll Revert "Temporarily Revert "Add basic loop fusion pass."" 2019-04-17 04:52:47 +00:00
keep-debug-loc.ll Revert "Temporarily Revert "Add basic loop fusion pass."" 2019-04-17 04:52:47 +00:00
long-chains.ll Revert "Temporarily Revert "Add basic loop fusion pass."" 2019-04-17 04:52:47 +00:00
looptest.ll [Tests] Autogen a bunch of Reassociate tests for ease of update 2019-08-01 23:30:32 +00:00
matching-binops.ll Revert "Temporarily Revert "Add basic loop fusion pass."" 2019-04-17 04:52:47 +00:00
mightymul.ll Revert "Temporarily Revert "Add basic loop fusion pass."" 2019-04-17 04:52:47 +00:00
min_int.ll Revert "Temporarily Revert "Add basic loop fusion pass."" 2019-04-17 04:52:47 +00:00
mixed-fast-nonfast-fp.ll [Tests] Autogen a bunch of Reassociate tests for ease of update 2019-08-01 23:30:32 +00:00
mulfactor.ll [Tests] Autogen a bunch of Reassociate tests for ease of update 2019-08-01 23:30:32 +00:00
multistep.ll [Tests] Autogen a bunch of Reassociate tests for ease of update 2019-08-01 23:30:32 +00:00
negation.ll Revert "Temporarily Revert "Add basic loop fusion pass."" 2019-04-17 04:52:47 +00:00
negation1.ll Revert "Temporarily Revert "Add basic loop fusion pass."" 2019-04-17 04:52:47 +00:00
no-op.ll [Tests] Autogen a bunch of Reassociate tests for ease of update 2019-08-01 23:30:32 +00:00
optional-flags.ll [Tests] Autogen a bunch of Reassociate tests for ease of update 2019-08-01 23:30:32 +00:00
otherops.ll Revert "Temporarily Revert "Add basic loop fusion pass."" 2019-04-17 04:52:47 +00:00
pointer-collision-non-determinism.ll Revert "Temporarily Revert "Add basic loop fusion pass."" 2019-04-17 04:52:47 +00:00
pr12245.ll Revert "Temporarily Revert "Add basic loop fusion pass."" 2019-04-17 04:52:47 +00:00
pr21205.ll Revert "Temporarily Revert "Add basic loop fusion pass."" 2019-04-17 04:52:47 +00:00
pr28367.ll Revert "Temporarily Revert "Add basic loop fusion pass."" 2019-04-17 04:52:47 +00:00
pr42349.ll [Reassociate] Remove bogus assert reported in PR42349. 2019-06-20 23:03:55 +00:00
propagate-flags.ll [Tests] Autogen a bunch of Reassociate tests for ease of update 2019-08-01 23:30:32 +00:00
reassoc-intermediate-fnegs.ll [Reassociate] try harder to convert negative FP constants to positive 2019-08-10 13:17:54 +00:00
reassociate-catchswitch.ll Fix new reassociate-catchswitch.ll test 2019-05-08 18:39:03 +00:00
reassociate-deadinst.ll Revert "Temporarily Revert "Add basic loop fusion pass."" 2019-04-17 04:52:47 +00:00
reassociate-landingpad.ll [Reassociation] Place moved instructions after landing pads 2019-05-08 15:44:24 +00:00
reassociate_dbgvalue_discard.ll Revert "Temporarily Revert "Add basic loop fusion pass."" 2019-04-17 04:52:47 +00:00
repeats.ll Revert "Temporarily Revert "Add basic loop fusion pass."" 2019-04-17 04:52:47 +00:00
secondary.ll Revert "Temporarily Revert "Add basic loop fusion pass."" 2019-04-17 04:52:47 +00:00
shift-factor.ll [Tests] Autogen a bunch of Reassociate tests for ease of update 2019-08-01 23:30:32 +00:00
shifttest.ll Revert "Temporarily Revert "Add basic loop fusion pass."" 2019-04-17 04:52:47 +00:00
subtest.ll Revert "Temporarily Revert "Add basic loop fusion pass."" 2019-04-17 04:52:47 +00:00
vaarg_movable.ll [Tests] Autogen a bunch of Reassociate tests for ease of update 2019-08-01 23:30:32 +00:00
wrap-flags.ll [Tests] Autogen a bunch of Reassociate tests for ease of update 2019-08-01 23:30:32 +00:00
xor_reassoc.ll [Tests] Autogen a bunch of Reassociate tests for ease of update 2019-08-01 23:30:32 +00:00