llvm-project/llvm/test/Transforms/LoopVectorize/X86
Philip Reames e6ad9ef4e7 [instcombine] Canonicalize constant index type to i64 for extractelement/insertelement
The basic idea to this is that a) having a single canonical type makes CSE easier, and b) many of our transforms are inconsistent about which types we end up with based on visit order.

I'm restricting this to constants as for non-constants, we'd have to decide whether the simplicity was worth extra instructions. For constants, there are no extra instructions.

We chose the canonical type as i64 arbitrarily.  We might consider changing this to something else in the future if we have cause.

Differential Revision: https://reviews.llvm.org/D115387
2021-12-13 16:56:22 -08:00
..
already-vectorized.ll
avx1.ll
avx512.ll [LV] Let selectVectorizationFactor reason directly on VectorizationFactor. 2021-04-20 09:54:45 +01:00
consecutive-ptr-cg-bug.ll
consecutive-ptr-uniforms.ll [instcombine] Canonicalize constant index type to i64 for extractelement/insertelement 2021-12-13 16:56:22 -08:00
constant-fold.ll [LV] Mark increment of main vector loop induction variable as NUW. 2021-06-07 10:47:52 +01:00
constant-vector-operand.ll
conversion-cost.ll Revert "[NFC] `IRBuilderBase::CreateAdd()`: place constant onto RHS" 2021-10-27 22:21:37 +03:00
cost-model-assert.ll Revert "[LoopVectorize] Extract the last lane from a uniform store" 2021-11-10 11:21:19 +00:00
cost-model.ll [X86][LV] X86 does *not* prefer vectorized addressing 2021-10-16 12:32:18 +03:00
drop-poison-generating-flags.ll [LV] Drop integer poison-generating flags from instructions that need predication 2021-11-22 10:57:29 +00:00
float-induction-x86.ll [runtime-unroll] Use incrementing IVs instead of decrementing ones 2021-11-12 15:44:58 -08:00
fneg-cost.ll [CostModel][X86] Improve fneg costs 2021-05-21 17:23:45 +01:00
fp32_to_uint32-cost-model.ll
fp64_to_uint32-cost-model.ll
fp80-widest-type.ll
fp_to_sint8-cost-model.ll [CostModel][X86] Adjust fptosi/fptoui SSE/AVX legalized costs based on llvm-mca reports. 2021-07-12 20:38:25 +01:00
funclet.ll
gather-cost.ll [NFC][X86][LoopVectorize] Autogenerate check lines in a few tests for ease of updating 2021-10-06 22:54:15 +03:00
gather-vs-interleave.ll
gather_scatter.ll [instcombine] Canonicalize constant index type to i64 for extractelement/insertelement 2021-12-13 16:56:22 -08:00
gcc-examples.ll
illegal-parallel-loop-uniform-write.ll Revert "[LoopVectorize] Extract the last lane from a uniform store" 2021-11-10 11:21:19 +00:00
imprecise-through-phis.ll [LV] Mark increment of main vector loop induction variable as NUW. 2021-06-07 10:47:52 +01:00
int128_no_gather.ll Revert "[NFC] remove explicit default value for strboolattr attribute in tests" 2021-05-24 19:43:40 +02:00
interleave_short_tc.ll [LV] Mark increment of main vector loop induction variable as NUW. 2021-06-07 10:47:52 +01:00
interleaved-accesses-large-gap.ll [VectorUtils] Do not try to add indices matching tombstone/empty values. 2021-01-18 11:18:28 +00:00
interleaved-accesses-waw-dependency.ll
interleaving.ll [TTI][X86] Add SSE2 sub-128bit vXi16/32 and v2i64 stride 2 interleaved load costs 2021-10-16 16:21:45 +01:00
intrinsiccost.ll [instcombine] Canonicalize constant index type to i64 for extractelement/insertelement 2021-12-13 16:56:22 -08:00
invariant-load-gather.ll [instcombine] Canonicalize constant index type to i64 for extractelement/insertelement 2021-12-13 16:56:22 -08:00
invariant-store-vectorization.ll [instcombine] Canonicalize constant index type to i64 for extractelement/insertelement 2021-12-13 16:56:22 -08:00
libm-vector-calls-VF2-VF8.ll
libm-vector-calls-finite.ll
libm-vector-calls.ll
limit-vf-by-tripcount.ll [LV] Make sure VF doesn't exceed compile time known TC 2021-12-13 13:48:46 +07:00
lit.local.cfg
load-deref-pred.ll [LV] Drop integer poison-generating flags from instructions that need predication 2021-11-22 10:57:29 +00:00
masked_load_store.ll [LV] Drop integer poison-generating flags from instructions that need predication 2021-11-22 10:57:29 +00:00
max-mstore.ll
metadata-enable.ll [instcombine] Canonicalize constant index type to i64 for extractelement/insertelement 2021-12-13 16:56:22 -08:00
min-trip-count-switch.ll
mul_slm_16bit.ll [CostModel][X86] Adjust vXi32 multiply costs if it can be performed using PMADDWD 2021-09-25 16:28:48 +01:00
no-vector.ll
no_fpmath.ll [LV] Consider Loop Unroll Hints When Making Interleave Decisions 2021-04-28 17:27:52 -04:00
no_fpmath_with_hotness.ll
nontemporal.ll
optsize.ll [LV] Mark increment of main vector loop induction variable as NUW. 2021-06-07 10:47:52 +01:00
outer_loop_test1_no_explicit_vect_width.ll [LV] Mark increment of main vector loop induction variable as NUW. 2021-06-07 10:47:52 +01:00
parallel-loops-after-reg2mem.ll
parallel-loops.ll [instcombine] Canonicalize constant index type to i64 for extractelement/insertelement 2021-12-13 16:56:22 -08:00
pointer-runtime-checks-unprofitable.ll [LV] Add tests where rt checks may make vectorization unprofitable. 2021-09-27 10:32:28 +01:00
powof2div.ll
pr23997.ll Regen some autogen tests to account for format change 2021-10-28 09:22:20 -07:00
pr34438.ll [LV] Mark increment of main vector loop induction variable as NUW. 2021-06-07 10:47:52 +01:00
pr35432.ll Revert rest of `IRBuilderBase`'s short-circuiting folds 2021-10-28 02:15:14 +03:00
pr36524.ll Revert "[NFC] `IRBuilderBase::CreateAdd()`: place constant onto RHS" 2021-10-27 22:21:37 +03:00
pr39160.ll
pr42674.ll [LV] Mark increment of main vector loop induction variable as NUW. 2021-06-07 10:47:52 +01:00
pr47437.ll [TTI][X86] Add v8i16 -> 2 x v4i16 stride 2 interleaved load costs 2021-10-16 17:28:07 +01:00
pr48340.ll [NFC] Re-harden test/Transforms/LoopVectorize/X86/pr48340.ll 2021-10-22 15:07:53 +03:00
propagate-metadata.ll
ptr-indvar-crash.ll
rauw-bug.ll
reduction-crash.ll
reduction-fastmath.ll [LV] Mark increment of main vector loop induction variable as NUW. 2021-06-07 10:47:52 +01:00
reduction-small-size.ll
redundant-vf2-cost.ll
reg-usage-debug.ll
reg-usage.ll [test] Fix reg-usage.ll under NPM 2020-12-20 15:41:29 -08:00
register-assumption.ll
runtime-limit.ll Recommit "[LV] Move runtime pointer size check to LVP::plan()." 2021-03-29 16:14:27 +01:00
scatter_crash.ll [LV] Mark increment of main vector loop induction variable as NUW. 2021-06-07 10:47:52 +01:00
slm-no-vectorize.ll
small-size.ll [instcombine] Canonicalize constant index type to i64 for extractelement/insertelement 2021-12-13 16:56:22 -08:00
strided_load_cost.ll [NFC][X86][LoopVectorize] Autogenerate check lines in a few tests for ease of updating 2021-10-06 22:54:15 +03:00
struct-store.ll
svml-calls-finite.ll
svml-calls.ll
tail_folding_and_assume_safety.ll [LV] Parallel annotated loop does not imply all loads can be hoisted. 2021-06-10 23:37:57 +02:00
tail_loop_folding.ll [SLP,LV] Use poison constant vector for shufflevector/initial insertelement 2021-01-06 11:22:50 +09:00
tripcount.ll
uint64_to_fp64-cost-model.ll [CostModel][X86] Adjust uitofp(vXi64) SSE/AVX legalized costs based on llvm-mca reports. 2021-07-02 13:09:00 +01:00
uniform-phi.ll
uniform_load.ll
uniform_mem_op.ll Revert "[LoopVectorize] Extract the last lane from a uniform store" 2021-11-10 11:21:19 +00:00
uniformshift.ll
unroll-pm.ll
unroll-small-loops.ll
unroll_selection.ll
veclib-calls.ll
vect.omp.force.ll
vect.omp.force.small-tc.ll [LV] Mark increment of main vector loop induction variable as NUW. 2021-06-07 10:47:52 +01:00
vector-scalar-select-cost.ll
vector_max_bandwidth.ll
vector_ptr_load_store.ll [LV] NFC: Add check for VF to vector_ptr_load_store.ll. 2021-12-08 16:41:59 +00:00
vectorization-remarks-loopid-dbg.ll
vectorization-remarks-missed.ll
vectorization-remarks-profitable.ll Revert "[NFC] remove explicit default value for strboolattr attribute in tests" 2021-05-24 19:43:40 +02:00
vectorization-remarks.ll
vectorize-only-for-real.ll
x86-interleaved-accesses-masked-group.ll [instcombine] Canonicalize constant index type to i64 for extractelement/insertelement 2021-12-13 16:56:22 -08:00
x86-interleaved-store-accesses-with-gaps.ll [instcombine] Canonicalize constant index type to i64 for extractelement/insertelement 2021-12-13 16:56:22 -08:00
x86-pr39099.ll [LV] Drop integer poison-generating flags from instructions that need predication 2021-11-22 10:57:29 +00:00
x86-predication.ll [VPlan] Merge predicated-triangle regions, after sinking. 2021-06-28 11:10:38 +01:00
x86_fp80-interleaved-access.ll
x86_fp80-vector-store.ll [opt] Directly translate -O# to -passes='default<O#>' 2021-10-18 16:48:10 -07:00