[SCEV] Use wrap flags in InsertBinop
authorSam Parker <sam.parker@arm.com>
Thu, 6 Jun 2019 08:56:26 +0000 (08:56 +0000)
committerSam Parker <sam.parker@arm.com>
Thu, 6 Jun 2019 08:56:26 +0000 (08:56 +0000)
commit7cc580f5e95e7e5dd84db2c276f58709258cd120
tree767ec67006d21df6b87a8d653494c020711cae17
parent54eeb3f40ab1f68619083cfce3e0dff2521b7cef
[SCEV] Use wrap flags in InsertBinop

If the given SCEVExpr has no (un)signed flags attached to it, transfer
these to the resulting instruction or use them to find an existing
instruction.

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

llvm-svn: 362687
28 files changed:
llvm/include/llvm/Analysis/ScalarEvolutionExpander.h
llvm/lib/Analysis/ScalarEvolutionExpander.cpp
llvm/test/CodeGen/Hexagon/loop-idiom/memmove-rt-check.ll
llvm/test/Transforms/IRCE/bad_expander.ll
llvm/test/Transforms/IRCE/conjunctive-checks.ll
llvm/test/Transforms/IRCE/decrementing-loop.ll
llvm/test/Transforms/IRCE/ranges_of_different_types.ll
llvm/test/Transforms/IRCE/rc-negative-bound.ll
llvm/test/Transforms/IRCE/single-access-no-preloop.ll
llvm/test/Transforms/IRCE/single-access-with-preloop.ll
llvm/test/Transforms/IRCE/stride_more_than_1.ll
llvm/test/Transforms/IRCE/unsigned_comparisons_ugt.ll
llvm/test/Transforms/IRCE/unsigned_comparisons_ult.ll
llvm/test/Transforms/IndVarSimplify/lftr.ll
llvm/test/Transforms/IndVarSimplify/loop_evaluate_1.ll
llvm/test/Transforms/LoopIdiom/X86/unordered-atomic-memcpy.ll
llvm/test/Transforms/LoopIdiom/basic.ll
llvm/test/Transforms/LoopIdiom/memcpy-debugify-remarks.ll
llvm/test/Transforms/LoopReroll/basic.ll
llvm/test/Transforms/LoopReroll/complex_reroll.ll
llvm/test/Transforms/LoopReroll/nonconst_lb.ll
llvm/test/Transforms/LoopReroll/ptrindvar.ll
llvm/test/Transforms/LoopStrengthReduce/2011-10-06-ReusePhi.ll
llvm/test/Transforms/LoopStrengthReduce/X86/lsr-expand-quadratic.ll
llvm/test/Transforms/LoopStrengthReduce/X86/nested-loop.ll
llvm/test/Transforms/LoopStrengthReduce/post-inc-icmpzero.ll
llvm/test/Transforms/LoopVectorize/AArch64/pr36032.ll
llvm/test/Transforms/LoopVectorize/X86/illegal-parallel-loop-uniform-write.ll