llvm-project/llvm/test/Transforms/InstSimplify
Simonas Kazlauskas 6513995be3 [InstSimplify] Restrict a GEP transform to avoid provenance changes
This is a follow-up to D98588, and fixes the inline `FIXME` about a GEP-related simplification not
preserving the provenance.

https://alive2.llvm.org/ce/z/qbQoAY

Additional tests were added in {rGf125f28afdb59eba29d2491dac0dfc0a7bf1b60b}

Depends on D98672

Reviewed By: lebedev.ri

Differential Revision: https://reviews.llvm.org/D98611
2021-03-16 18:53:05 +02:00
..
ConstProp [ConstantFold] Handle undef/poison when constant folding smul_fix/smul_fix_sat 2021-03-12 09:09:58 +01:00
2010-12-20-Boolean.ll
2011-01-14-Thread.ll
2011-02-01-Vector.ll
2011-09-05-InsertExtractValue.ll [InstSimplify] Return poison for out of bounds extractelement 2021-01-03 18:15:58 +01:00
2011-10-27-BinOpCrash.ll
2011-11-23-MaskedBitsCrash.ll
2013-04-19-ConstantFoldingCrash.ll
AndOrXor.ll [InstSimplify] reduce logic with inverted add/sub ops 2020-12-21 08:51:43 -05:00
abs_intrinsic.ll [InstSimplify] Don't miscompile `X == 0 ? abs(X) : -abs(X) --> -abs(X)` xform 2020-12-18 21:18:13 +03:00
add-mask.ll [ValueTracking] Add computeKnownBits DemandedElts support to masked add instructions (PR36319) 2020-03-18 21:50:56 +00:00
add.ll [InstSimplify] Add tests that fold instructions with poison operands (NFC) 2020-12-02 01:01:59 +09:00
addsub.ll
and-icmps-same-ops.ll
and-or-icmp-min-max.ll [InstSimplify] peek through 'not' operand in logic-of-icmps fold 2020-10-25 11:13:30 -04:00
and-or-icmp-nullptr.ll [InstSimplify] fold and/or of compares with equality to min/max constant 2020-04-23 09:16:10 -04:00
and-or-icmp-zero.ll
and.ll [InstSimplify] Add tests that fold instructions with poison operands (NFC) 2020-12-02 01:01:59 +09:00
assume-non-zero.ll
assume_icmp.ll [InstSimplify] Fold icmp with dominating assume 2020-07-03 18:53:58 +02:00
bitcast-vector-fold.ll
bitreverse-fold.ll
bitreverse.ll [ValueTracking] Add computeKnownBits DemandedElts support to EXTRACTELEMENT/OR/BSWAP/BITREVERSE instructions (PR36319) 2020-03-18 18:49:58 +00:00
bswap.ll [ValueTracking] Add computeKnownBits DemandedElts support to EXTRACTELEMENT/OR/BSWAP/BITREVERSE instructions (PR36319) 2020-03-18 18:49:58 +00:00
call.ll [InstSimplify] ctlz({signbit} >>u x) --> x 2021-03-15 12:03:35 -04:00
cast-unsigned-icmp-cmp-0.ll
cast.ll
cmp-vec-fast-path.ll [SVE] Take constant fold fast path for splatted vscale vectors 2020-11-17 12:45:31 -08:00
cmp_ext.ll [InstSimplify] Simplify comparison between zext(x) and sext(x) 2020-07-04 11:03:00 +02:00
cmp_of_min_max.ll
compare.ll [InstSimplify] allow vector folds for (Pow2C << X) == NonPow2C 2020-11-08 09:52:05 -05:00
constantfold-add-nuw-allones-to-allones.ll
constantfold-shl-nuw-C-to-C.ll
constfold-constrained.ll [FEnv] Constfold some unary constrained operations 2020-03-28 12:28:33 +07:00
dead-code-removal.ll
distribute.ll [InstSimplify] add tests for expandCommutativeBinOp; NFC 2020-07-29 23:21:39 +09:00
div-by-0-guard-before-smul_ov-not.ll
div-by-0-guard-before-smul_ov.ll
div-by-0-guard-before-umul_ov-not.ll
div-by-0-guard-before-umul_ov.ll
div.ll Revert "[ConstantFold] Fold more operations to poison" 2021-02-04 00:24:02 +09:00
exact-nsw-nuw.ll
extract-element.ll [InstSimplify] Return poison for out of bounds extractelement 2021-01-03 18:15:58 +01:00
fast-math.ll [ValueTracking] fix CannotBeNegativeZero() to disregard 'nsz' FMF 2020-05-05 16:04:59 -04:00
fcmp-select.ll
fcmp.ll [InstSimplify] Add tests that fold instructions with poison operands (NFC) 2020-12-02 01:01:59 +09:00
fdiv.ll
floating-point-arithmetic.ll [InstSimplify] add/move tests for fmin/fmax; NFC 2020-09-14 10:24:19 -04:00
floating-point-compare.ll [ValueTracking] enhance isKnownNeverInfinity to understand sitofp 2020-09-27 08:40:31 -04:00
fminmax-folds.ll [InstSimplify] Add tests that fold instructions with poison operands (NFC) 2020-12-02 01:01:59 +09:00
fold-intrinsics.ll
fp-nan.ll [InstSimplify] Fold nnan/ninf violation to poison 2021-01-03 22:05:40 +01:00
fp-undef-poison.ll [InstSimplify] Fold nnan/ninf violation to poison 2021-01-03 22:05:40 +01:00
fptoi-sat.ll [ConstantFold] Fold fptoi.sat intrinsics 2021-01-10 17:37:27 +01:00
freeze-noundef.ll Add support for !noundef metatdata on loads 2020-10-17 13:50:10 +09:00
freeze.ll [ValueTracking] Dereferenced pointers are noundef 2021-02-14 22:50:48 +09:00
gc_relocate.ll Use the right pass in test introduced in f1fdbd67 2021-03-04 12:21:13 -08:00
gep.ll [InstSimplify] Restrict a GEP transform to avoid provenance changes 2021-03-16 18:53:05 +02:00
icmp-abs-nabs.ll
icmp-bool-constant.ll
icmp-constant.ll [KnownBits] Add min/max shift amount handling to shl/lshr/ashr KnownBits helpers 2021-03-08 11:44:31 +00:00
icmp-ranges.ll
icmp.ll [InstSimplify] Fold x*C1/C2 <= x (PR48744) 2021-01-17 16:02:55 +01:00
implies.ll
insertelement.ll [InstSimplify] Fold insertelement vec, poison, idx into vec 2021-01-07 10:10:14 +09:00
insertvalue.ll [InstSimplify] Add tests that fold instructions with poison operands (NFC) 2020-12-02 01:01:59 +09:00
known-never-nan.ll [FPEnv] Intrinsic llvm.roundeven 2020-05-26 19:24:58 +07:00
known-non-zero.ll [ValueTracking] isKnownNonZero, computeKnownBits for freeze 2020-09-10 08:07:38 +09:00
load-relative-32.ll
load-relative.ll
load.ll [AssumeBundles] add cannonicalisation to the assume builder 2020-06-19 10:32:26 +02:00
log-exp-intrinsic.ll
log2-pow2-intrinsic.ll
log10-pow10-intrinsic.ll
logic-of-fcmps.ll
maxmin.ll
maxmin_intrinsics.ll [InstSimplify] Add tests that fold instructions with poison operands (NFC) 2020-12-02 01:01:59 +09:00
mul.ll [InstSimplify] Add tests that fold instructions with poison operands (NFC) 2020-12-02 01:01:59 +09:00
named-vector-shuffle-reverse.ll [CodeGen][SelectionDAG]Add new intrinsic experimental.vector.reverse 2021-02-15 13:39:43 +00:00
negate.ll
noalias-ptr.ll
null-ptr-is-valid-attribute.ll ValueTracking: Fix isKnownNonZero for non-0 null pointers for byval 2020-07-16 13:50:49 -04:00
null-ptr-is-valid.ll ValueTracking: Fix isKnownNonZero for non-0 null pointers for byval 2020-07-16 13:50:49 -04:00
or-icmps-same-ops.ll
or.ll [InstSimplify] Handle commutativity for 'and' and 'outer or' for (~A & B) | ~(A | B) --> ~A 2021-01-16 19:42:50 +01:00
past-the-end.ll
phi-cse.ll [NFC][InstSimplify] Add a note to PHI CSE tests that they are all negative tests 2020-08-29 13:13:06 +03:00
phi.ll [InstSimplify] Add tests that fold instructions with poison operands (NFC) 2020-12-02 01:01:59 +09:00
pr28725.ll
pr33957.ll
pr49495.ll [InstSimplify] Add tests for pr49495 (NFC) 2021-03-10 17:54:46 +09:00
ptr_diff.ll
reassociate.ll
redundant-null-check-in-uadd_with_overflow-of-nonnull-ptr.ll
rem.ll Revert "[ConstantFold] Fold more operations to poison" 2021-02-04 00:24:02 +09:00
remove-dead-call.ll [Local] Treat calls that may not return as being alive. 2021-01-23 16:05:14 +00:00
require-dominator.ll
result-of-add-of-negative-is-non-zero-and-no-underflow.ll
result-of-usub-by-nonzero-is-non-zero-and-no-overflow.ll
result-of-usub-is-non-zero-and-no-overflow.ll
returned.ll [Local] Treat calls that may not return as being alive. 2021-01-23 16:05:14 +00:00
round-intrinsics.ll [FPEnv] Intrinsic llvm.roundeven 2020-05-26 19:24:58 +07:00
saturating-add-sub.ll [InstSimplify] Add tests that fold instructions with poison operands (NFC) 2020-12-02 01:01:59 +09:00
sdiv.ll
select-and-cmp.ll
select-implied.ll
select-inseltpoison.ll Precommit transform tests that have poison as insertelement's placeholder 2020-12-24 11:46:17 +09:00
select-or-cmp.ll
select.ll [InstSimplify] Add tests that fold instructions with poison operands (NFC) 2020-12-02 01:01:59 +09:00
shift-128-kb.ll
shift-knownbits.ll [InstSimplify] Fold out-of-bounds shift to poison 2021-01-06 20:41:37 +01:00
shift.ll [InstSimplify] Fold out-of-bounds shift to poison 2021-01-06 20:41:37 +01:00
shr-nop.ll
shr-scalar-vector-consistency.ll
shufflevector-inseltpoison.ll Precommit tests that have poison as shufflevector's placeholder 2020-12-29 17:09:31 +09:00
shufflevector.ll [InstSimplify] Add tests that fold instructions with poison operands (NFC) 2020-12-02 01:01:59 +09:00
signed-div-rem.ll
simplify-nested-bitcast.ll
smul_fix.ll [InstSimplify] Simplify smul.fix and smul.fix.sat 2021-03-12 09:09:58 +01:00
srem.ll
sub.ll [InstSimplify] Add tests that fold instructions with poison operands (NFC) 2020-12-02 01:01:59 +09:00
undef.ll Revert "[ConstantFold] Fold more operations to poison" 2021-02-04 00:24:02 +09:00
vec-cmp.ll
vector_gep.ll
vector_ptr_bitcast.ll
vscale-inseltpoison.ll [InstSimplify] Return poison for out of bounds extractelement 2021-01-03 18:15:58 +01:00
vscale.ll [InstSimplify] Return poison for out of bounds extractelement 2021-01-03 18:15:58 +01:00
xor.ll [InstSimplify] Add tests that fold instructions with poison operands (NFC) 2020-12-02 01:01:59 +09:00