llvm-project/llvm/test/Transforms/InstSimplify
Nikita Popov e3cec17b2d [InstSimplify] Remove incorrect icmp of gep fold (PR52429)
As described in https://bugs.llvm.org/show_bug.cgi?id=52429 this
fold is incorrect, because inbounds only guarantees that the
pointers don't wrap in the unsigned space: It is possible that
the sign boundary is crossed by an object.

I'm dropping the fold entirely rather than adjusting it, because
computePointerICmp() fully subsumes it (just with correct predicate
handling).

Differential Revision: https://reviews.llvm.org/D113343
2021-11-06 21:03:21 +01:00
..
ConstProp [ConstantFold] Refactor load folding 2021-10-05 18:07:57 +02:00
X86 [FPEnv][InstSimplify] Constrained FP support for NaN 2021-07-09 11:26:28 -04: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 Revert "[InstSimplify] Bypass no-op `and`-mask, using known bits (PR49543)" 2021-04-21 09:55:25 +02: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
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
and-or-icmp-zero.ll
and.ll [InstSimplify] (x | y) & (x | !y) --> x 2021-10-06 12:31:25 -04: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
bswap.ll
call.ll [InstSimplify] fold rotate of -1 to -1 2021-08-22 09:15:48 -04:00
cast-unsigned-icmp-cmp-0.ll
cast.ll
cmp-vec-fast-path.ll [IR] Let ConstantVector::getSplat use poison instead of undef 2021-08-10 08:27:43 +01: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] Remove incorrect icmp of gep fold (PR52429) 2021-11-06 21:03:21 +01:00
constantfold-add-nuw-allones-to-allones.ll
constantfold-shl-nuw-C-to-C.ll
constfold-constrained.ll [ConstantFolding] Fold constrained arithmetic intrinsics 2021-07-23 14:39:51 +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 Reapply [ConstantFold] Fold more operations to poison 2021-05-13 16:04:12 +02:00
exact-nsw-nuw.ll
extract-element.ll [InstSimplify] fold extractelement of splat with variable extract index 2021-07-05 08:19:40 -04:00
extract-vector.ll [InstSimplify] Remove redundant {insert,extract}_vector intrinsic chains 2021-05-13 16:09:50 +00:00
fast-math-strictfp.ll [FPEnv][InstSimplify] Constrained FP support for NaN 2021-07-09 11:26:28 -04:00
fast-math.ll
fcmp-select.ll
fcmp.ll [InstSimplify] Add more poison folding optimizations 2021-06-23 20:25:24 +09:00
fdiv-strictfp.ll [ConstantFolding] Fold constrained arithmetic intrinsics 2021-07-23 14:39:51 +07:00
fdiv.ll
floating-point-arithmetic-strictfp.ll [FPEnv][InstSimplify] Constrained FP support for NaN 2021-07-09 11:26:28 -04:00
floating-point-arithmetic.ll [InstSimplify] add/move tests for fmin/fmax; NFC 2020-09-14 10:24:19 -04:00
floating-point-compare.ll Update @llvm.powi to handle different int sizes for the exponent 2021-06-17 09:38:28 +02: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 Update @llvm.powi to handle different int sizes for the exponent 2021-06-17 09:38:28 +02:00
fold-vscale.ll [InstSimplify] Don't assume parent function when simplifying llvm.vscale. 2021-07-29 20:08:08 +01:00
fp-nan.ll [InstSimplify] Fold nnan/ninf violation to poison 2021-01-03 22:05:40 +01:00
fp-undef-poison-strictfp.ll [FPEnv][InstSimplify] Constrained FP support for NaN 2021-07-09 11:26:28 -04:00
fp-undef-poison.ll [InstSimplify] propagate poison through FP ops 2021-06-16 11:31:58 -04:00
fptoi-range.ll [ValueTracking] Teach computeConstantRange that the maximum value of a half is 65504 2021-10-30 14:27:38 +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 [IR] Let ConstantVector::getSplat use poison instead of undef 2021-08-10 08:27:43 +01:00
icmp-abs-nabs.ll
icmp-bool-constant.ll
icmp-constant.ll Update m_Undef to match vectors/aggrs with undefs and poisons mixed 2021-04-18 10:57:04 +09:00
icmp-ranges.ll
icmp.ll [InstSimplify] icmp poison, X -> poison 2021-06-20 15:39:07 +09:00
implies.ll
insert-vector.ll [InstSimplify] Properly constrain {insert,extract}_subvector intrinsic fold 2021-05-21 10:05:03 +00:00
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
invalid-load-operand-infinite-loop.ll [InstSimplify] Treat invariant group insts as bitcasts for load operands 2021-06-15 12:59:43 -07:00
invariant.group-load.ll [InstSimplify] Treat invariant group insts as bitcasts for load operands 2021-06-15 12:59:43 -07:00
known-never-nan.ll
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 [ConstantFold] Refactor load folding 2021-10-05 18:07:57 +02:00
log-exp-intrinsic.ll
log2-pow2-intrinsic.ll
log10-pow10-intrinsic.ll
logic-of-fcmps.ll
maxmin.ll [InstSimplify] fold min/max with limit constant 2021-08-10 10:57:25 -04:00
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 more poison folding optimizations 2021-06-23 20:25:24 +09:00
named-vector-shuffle-reverse.ll [InstSimplify] Eliminate vector reverse of a splat vector 2021-08-11 11:27:58 -07: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] fold or+shifted -1 to -1 2021-08-24 15:38:38 -04: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 [InstCombine] Whitelist non-refining folds in SimplifyWithOpReplaced 2021-03-22 22:12:56 +01:00
ptr_diff.ll
reassociate.ll
redundant-null-check-in-uadd_with_overflow-of-nonnull-ptr.ll
rem.ll [InstSimplify] Transform X * Y % Y --> 0 2021-05-25 10:16:04 -04: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
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 [InstSimplify] Add more poison folding optimizations 2021-06-23 20:25:24 +09:00
select-logical.ll [InstSimplify] (x || y) && (x || !y) --> x 2021-10-07 12:25:25 -04:00
select-or-cmp.ll
select.ll [InstSimplify] Add more poison folding optimizations 2021-06-23 20:25:24 +09:00
shift-128-kb.ll
shift-knownbits.ll [ValueTracking] look through bitcast of vector in computeKnownBits 2021-06-23 11:46:46 -04:00
shift.ll [InstSimplify] (-1 << x) s>> x --> -1 2021-09-29 13:03:12 -04: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 [InstSimplify] Don't lose inbounds when simplifying a GEP 2021-09-23 09:25:06 +01:00
smul_fix.ll [InstSimplify] Simplify smul.fix and smul.fix.sat 2021-03-12 09:09:58 +01:00
srem.ll
strictfp-fadd.ll [FPEnv][InstSimplify] Fold fadd X, 0 ==> X, when we know X is not -0 2021-10-14 12:32:45 -04:00
strictfp-fsub.ll [FPEnv][InstSimplify] Precommit tests: Enable more folds for constrained fsub 2021-10-12 13:47:28 -04:00
sub.ll [InstSimplify] Add more poison folding optimizations 2021-06-23 20:25:24 +09:00
undef.ll Reapply [ConstantFold] Fold more operations to poison 2021-05-13 16:04:12 +02:00
vec-cmp.ll
vector_gep.ll
vector_ptr_bitcast.ll
vscale-inseltpoison.ll [IR] Let ConstantVector::getSplat use poison instead of undef 2021-08-10 08:27:43 +01:00
vscale.ll [Analysis] Add support for vscale in computeKnownBitsFromOperator 2021-09-20 15:01:59 +01:00
xor.ll [InstSimplify] Add tests that fold instructions with poison operands (NFC) 2020-12-02 01:01:59 +09:00