llvm-project/llvm/test/Transforms/InstSimplify
Sanjay Patel a3c297dba4 [InstSimplify] fold identity shuffles (recursing if needed)
This patch simplifies the examples from D31509 and D31927 (PR30630) and catches 
the basic identity shuffle tests that Zvi recently added.

I'm not sure if we have something like this in DAGCombiner, but we should?

It's worth noting that "MaxRecurse / RecursionLimit" is only 3 on entry at the moment. 
We might want to bump that up if there are longer shuffle chains like this in the wild.

For now, we're ignoring shuffles that have undef mask elements because it's not
clear how those should be handled.

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

llvm-svn: 300714
2017-04-19 16:48:22 +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] add/move tests for (icmp X, C1 & icmp X, C2); NFC 2017-04-17 20:38:33 +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
apint-or.ll
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 [ConstantFold] Improve the bitcast folding logic for constant vectors. 2016-09-13 14:50:47 +00:00
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
cast.ll
compare.ll [Constants] don't die processing non-ConstantInt GEP indices in isGEPWithNoNotionalOverIndexing() (PR31262) 2016-12-11 20:07:02 +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 [instsimplify] Fix incorrect folding of an ordered fcmp with a vector of all NaN. 2016-09-02 14:47:43 +00:00
fold-builtin-fma.ll
gep.ll
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] add/move tests for (icmp X, C1 & icmp X, C2); NFC 2017-04-17 20:38:33 +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 [InstSimplify] fold negation of sign-bit 2016-10-19 21:23:45 +00:00
noalias-ptr.ll
or-icmps-same-ops.ll [InstSimplify] fixed (?) to not mutate icmps 2016-12-06 22:09:52 +00:00
past-the-end.ll
phi.ll
pr28725.ll
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 Add unittest for r280760 2016-09-08 16:53:40 +00:00
returned.ll
select.ll [InstCombine] if the condition of a select may be known via assumes, eliminate the select 2017-01-13 17:02:42 +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 [InstSimplify] fold identity shuffles (recursing if needed) 2017-04-19 16:48:22 +00:00
undef.ll [InstCombine] replace divide-by-constant checks with asserts; NFC 2016-08-30 17:31:34 +00:00
vec-cmp.ll
vector_gep.ll [InstSimplify] Deduce correct type for vector GEP. 2017-04-19 14:23:42 +00:00
vector_ptr_bitcast.ll