llvm-project/llvm/test/Transforms/InstSimplify
Davide Italiano 1a26f24f35 [ConstantFolder] Don't try to fold gep when the idx is a vector.
The code in ConstantFoldGetElementPtr() assumes integers, and
therefore it crashes trying to get the integer bidwith of a vector
type (in this case <4 x i32>. I just changed the code to prevent
the folding in case of vectors and I didn't bother to generalize
as this doesn't seem to me something that really happens in
practice, but I'm willing to change the patch if you think
it's worth it.
This is hard to trigger from -instsimplify or -instcombine
only as the second instruction is dead, so the test uses loop-unroll.

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

llvm-svn: 309330
2017-07-27 22:20:44 +00:00
..
2010-12-20-Boolean.ll
2011-01-14-Thread.ll
2011-02-01-Vector.ll
2011-09-05-InsertExtractValue.ll
2011-10-27-BinOpCrash.ll
2011-11-23-MaskedBitsCrash.ll
2013-04-19-ConstantFoldingCrash.ll
AndOrXor.ll [InstSimplify] Make m_Not work for xor -1, X 2017-05-18 20:27:32 +00:00
add-mask.ll Revert @llvm.assume with operator bundles (r289755-r289757) 2016-12-19 08:22:17 +00:00
addsub.ll [InstSimplify] Add test cases for mixing add/sub i1 with xor of i1. Seems we can simplify in one direction but not the other. 2017-04-06 05:48:06 +00:00
and-icmps-same-ops.ll [InstSimplify] fixed (?) to not mutate icmps 2016-12-06 22:09:52 +00:00
assume.ll [ValueTracking] emit a remark when we detect a conflicting assumption (PR31809) 2017-02-06 18:26:06 +00:00
bitcast-vector-fold.ll
bitreverse.ll [ValueTracking] Extend known bits to understand @llvm.bitreverse. 2017-01-17 17:23:51 +00:00
bswap.ll
call-callconv.ll
call.ll [ConstantFolding] Properly support constant folding of vector powi intrinsic. The second argument is not a vector so needs special treatment. 2017-06-04 07:30:28 +00:00
cast.ll
compare.ll [InstSimplify] Constant fold the new GEP in SimplifyGEPInst. 2017-06-06 10:17:14 +00:00
dead-code-removal.ll
div.ll [InstSimplify] allow folds for bool vector div/rem 2017-03-09 21:56:03 +00:00
exact-nsw-nuw.ll
fast-math.ll
fdiv.ll [InstSimplify] add constant folding for fdiv/frem 2017-04-01 19:05:11 +00:00
floating-point-arithmetic.ll [ValueTracking] Implement SignBitMustBeZero correctly for sqrt. 2017-01-26 00:10:26 +00:00
floating-point-compare.ll
fold-builtin-fma.ll
gep.ll
icmp-bool-constant.ll [InstSimplify] handle all icmp i1 X, C in one place; NFCI 2017-05-17 20:27:55 +00:00
icmp-constant.ll [InstSimplify] try to eliminate icmp Pred (add nsw X, C1), C2 2017-01-24 17:03:24 +00:00
icmp-ranges.ll [InstSimplify] use ConstantRange to simplify or-of-icmps 2017-05-07 15:11:40 +00:00
implies.ll
load-relative-32.ll
load-relative.ll
load.ll
maxmin.ll
mul.ll [InstSimplify] Teach SimplifyMulInst to recognize vectors of i1 as And. Not just scalar i1. 2017-04-06 17:33:37 +00:00
negate.ll
noalias-ptr.ll
or-icmps-same-ops.ll [InstSimplify] fixed (?) to not mutate icmps 2016-12-06 22:09:52 +00:00
or.ll [InstSimplify] Use m_APInt instead of m_ConstantInt in ((V + N) & C1) | (V & C2) handling in order to support splat vectors. 2017-05-26 19:03:53 +00:00
past-the-end.ll
phi.ll
pr28725.ll
pr33957.ll [ConstantFolder] Don't try to fold gep when the idx is a vector. 2017-07-27 22:20:44 +00:00
ptr_diff.ll
reassociate.ll
rem.ll [InstSimplify] allow folds for bool vector div/rem 2017-03-09 21:56:03 +00:00
require-dominator.ll
returned.ll
select.ll Revert r301880 2017-05-01 23:54:41 +00:00
shift-128-kb.ll
shift-knownbits.ll [InstCombine / InstSimplify] add and move tests for lshr transforms; NFC 2017-01-13 22:54:12 +00:00
shr-nop.ll
shufflevector.ll InstructionSimplify: Relanding r301766 2017-05-07 18:16:37 +00:00
simplify-nested-bitcast.ll [InstSimplify] Constant fold the new GEP in SimplifyGEPInst. 2017-06-06 10:17:14 +00:00
undef.ll
vec-cmp.ll
vector_gep.ll [InstSimplify] Constant fold the new GEP in SimplifyGEPInst. 2017-06-06 10:17:14 +00:00
vector_ptr_bitcast.ll