llvm-project/llvm/test/Transforms/InstSimplify
George Burgess IV 8e807bf3fa Reland r301880(!): "[InstSimplify] Handle selects of GEPs with 0 offset"
I was reminded today that this patch got reverted in r301885. I can no
longer reproduce the failure that caused the revert locally (...almost
one year later), and the patch applied pretty cleanly, so I guess we'll
see if the bots still get angry about it.

The original breakage was InstSimplify complaining (in "assertion
failed" form) about getting passed some crazy IR when running `ninja
check-sanitizer`. I'm unable to find traces of what, exactly, said crazy
IR was. I suppose we'll find out pretty soon if that's still the case.
:)

Original commit:

  Author: gbiv
  Date: Mon May  1 18:12:08 2017
  New Revision: 301880

  URL: http://llvm.org/viewvc/llvm-project?rev=301880&view=rev
  Log:
  [InstSimplify] Handle selects of GEPs with 0 offset

  In particular (since it wouldn't fit nicely in the summary):
  (select (icmp eq V 0) P (getelementptr P V)) -> (getelementptr P V)

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

llvm-svn: 330667
2018-04-24 00:25:01 +00:00
..
2010-12-20-Boolean.ll
2011-01-14-Thread.ll
2011-02-01-Vector.ll
2011-09-05-InsertExtractValue.ll InstructionSimplify: 'extractelement' with an undef index is undef 2017-12-06 17:51:46 +00:00
2011-10-27-BinOpCrash.ll
2011-11-23-MaskedBitsCrash.ll
2013-04-19-ConstantFoldingCrash.ll
AndOrXor.ll [PatternMatch] allow undef elements when matching a vector zero 2018-04-22 17:07:44 +00:00
add-mask.ll
addsub.ll
and-icmps-same-ops.ll
and-or-icmp-zero.ll [InstSimplify] fold implied null ptr check (PR35790) 2018-01-13 15:44:44 +00:00
assume.ll [ValueTracking] don't crash when assumptions conflict (PR36270) 2018-02-08 14:52:40 +00:00
bitcast-vector-fold.ll
bitreverse-fold.ll Move tests associated with transforms moved in r321467 2017-12-30 03:13:00 +00:00
bitreverse.ll
bswap.ll
call-callconv.ll
call.ll InstSimplify: canonicalize is idempotent 2017-09-07 01:21:43 +00:00
cast-unsigned-icmp-cmp-0.ll [PatternMatch] allow undef elements when matching a vector zero 2018-04-22 17:07:44 +00:00
cast.ll
compare.ll [InstCombine] remove unnecessary vector select fold; NFCI 2017-08-30 14:04:57 +00:00
dead-code-removal.ll
div.ll [PatternMatch] allow undef elements when matching a vector zero 2018-04-22 17:07:44 +00:00
exact-nsw-nuw.ll [InstSimplify] fold sdiv/srem based on compare of dividend and divisor 2017-09-14 14:59:07 +00:00
extract-element.ll [instsimplify] consistently handle undef and out of bound indices for insertelement and extractelement 2017-12-30 05:54:22 +00:00
fast-math.ll [PatternMatch] allow undef elements when matching vector FP +0.0 2018-03-25 21:16:33 +00:00
fdiv.ll [InstSimplify] add tests for FP with undef operand; NFC 2018-02-27 20:17:18 +00:00
floating-point-arithmetic.ll [PatternMatch] allow undef elements when matching vector FP +0.0 2018-03-25 21:16:33 +00:00
floating-point-compare.ll [PatternMatch] enhance m_NaN() to ignore undef elements in vectors 2018-03-12 22:18:47 +00:00
fold-builtin-fma.ll
fold-intrinsics.ll Move tests associated with transforms moved in r321467 2017-12-30 03:13:00 +00:00
fp-nan.ll [InstSimplify] fp_binop X, NaN --> NaN 2018-03-21 19:31:53 +00:00
fp-undef.ll [InstSimplify] fp_binop X, undef --> NaN 2018-03-10 16:51:28 +00:00
gep.ll [InstSimplify] regenerate checks, move tests; NFC 2018-03-23 15:31:31 +00:00
icmp-bool-constant.ll [PatternMatch] enhance m_One() to ignore undef elements in vectors 2018-02-17 16:00:42 +00:00
icmp-constant.ll [ValueTracking] return zero when there's conflict in known bits of a shift (PR34838) 2017-10-12 17:31:46 +00:00
icmp-ranges.ll
implies.ll
insertelement.ll [instsimplify] consistently handle undef and out of bound indices for insertelement and extractelement 2017-12-30 05:54:22 +00:00
load-relative-32.ll
load-relative.ll
load.ll
log-exp-intrinsic.ll [InstSimplify] allow exp/log simplifications with only 'reassoc' FMF 2018-02-12 23:51:23 +00:00
logic-of-fcmps.ll [InstSimplify] fold and/or of fcmp ord/uno when operand is known nnan 2017-11-19 15:34:27 +00:00
maxmin.ll
mul.ll [PatternMatch] allow undef elements when matching a vector zero 2018-04-22 17:07:44 +00:00
negate.ll [PatternMatch] allow undef elements when matching a vector zero 2018-04-22 17:07:44 +00:00
noalias-ptr.ll
or-icmps-same-ops.ll
or.ll [PatternMatch, InstSimplify] enhance m_AllOnes() to ignore undef elements in vectors 2018-02-18 18:05:08 +00:00
past-the-end.ll
phi.ll
pr28725.ll Reintroduce r320049, r320014 and r319894. 2017-12-13 11:21:18 +00:00
pr33957.ll
ptr_diff.ll
reassociate.ll [InstSimplify] regenerate checks and add tests for commutes; NFC 2018-01-18 23:11:24 +00:00
rem.ll [PatternMatch] allow undef elements when matching a vector zero 2018-04-22 17:07:44 +00:00
require-dominator.ll
returned.ll
select.ll Reland r301880(!): "[InstSimplify] Handle selects of GEPs with 0 offset" 2018-04-24 00:25:01 +00:00
shift-128-kb.ll
shift-knownbits.ll
shift.ll [PatternMatch] allow undef elements when matching a vector zero 2018-04-22 17:07:44 +00:00
shr-nop.ll [InstSimplify] move tests for shifts; NFC 2018-04-21 16:58:00 +00:00
shufflevector.ll
signed-div-rem.ll [InstSimplify] fold sdiv/srem based on compare of dividend and divisor 2017-09-14 14:59:07 +00:00
simplify-nested-bitcast.ll
undef.ll
vec-cmp.ll
vector_gep.ll [ConstantFolding, InstSimplify] Handle more vector GEPs 2018-03-15 16:00:29 +00:00
vector_ptr_bitcast.ll