llvm-project/llvm/test/Transforms/LoopVectorize/X86
Philip Reames 32dc1151e2 [VPlan] Only generate single instr for unpredicated stores of varying value to invariant address
This extends the previously added uniform store case to handle stores of loop varying values to a loop invariant address. Note that the placement of this code only allows unpredicated stores; this is important for correctness. (That is "IsPredicated" is always false at this point in the function.)

This patch does not include scalable types. The diff felt "large enough" as it were; I'll handle that in a separate patch. (It requires some changes to cost modeling.)

Differential Revision: https://reviews.llvm.org/D133580
2022-09-22 08:53:46 -07:00
..
already-vectorized.ll [LoopVectorize][X86] Use quotes around the pass list to appease DOS cmd evaluation 2022-09-19 10:24:37 +01:00
avx1.ll
avx512.ll
consecutive-ptr-cg-bug.ll
consecutive-ptr-uniforms.ll [NFC][1/n] Remove -enable-new-pm=0 flags from lit tests 2022-09-19 09:57:37 -07:00
constant-fold.ll [VPlan] Replace BranchOnCount with BranchOnCond if TC <= UF * VF. 2022-06-06 09:38:53 +01:00
constant-vector-operand.ll
conversion-cost.ll Revert "[NFCI] Regenerate SROA/LoopVectorize test checks" 2022-04-04 01:15:30 +02:00
cost-model-assert.ll [VPlan] Only generate single instr for unpredicated stores of varying value to invariant address 2022-09-22 08:53:46 -07:00
cost-model.ll
drop-poison-generating-flags.ll [IRBuilder] Use PoisonValue in CreateMasked* 2022-09-19 11:01:41 -07:00
fixed-order-recurrence.ll [AArch64][X86] Add some fixed-order-recurrence tests to check the costmodel of fixed order recurrences. NFC 2022-08-24 08:18:01 +01:00
float-induction-x86.ll [InstCombine] Fold ult(add(x,-1),c) -> ule(x,c) iff x != 0 (PR57635) 2022-09-20 16:44:41 +01:00
fneg-cost.ll Revert "[NFCI] Regenerate SROA/LoopVectorize test checks" 2022-04-04 01:15:30 +02:00
fp32_to_uint32-cost-model.ll
fp64_to_uint32-cost-model.ll
fp80-widest-type.ll
fp_to_sint8-cost-model.ll Revert "[NFCI] Regenerate SROA/LoopVectorize test checks" 2022-04-04 01:15:30 +02:00
funclet.ll [LoopVectorize][CostModel] Choose smaller VFs for in-loop reductions without loads/stores 2022-01-04 10:12:57 +00:00
gather-cost.ll
gather-vs-interleave.ll [FileCheck] Catch missspelled directives. 2022-05-26 11:37:19 +01:00
gather_scatter.ll [IRBuilder] Use PoisonValue in CreateMasked* 2022-09-19 11:01:41 -07:00
gcc-examples.ll
i1-reg-usage.ll [LV] Improve register pressure estimate at high VFs 2022-05-23 07:57:45 +00:00
illegal-parallel-loop-uniform-write.ll [VPlan] Only generate single instr for unpredicated stores of varying value to invariant address 2022-09-22 08:53:46 -07:00
imprecise-through-phis.ll [CostModel][X86] Reduce cost of vector selects on SSE2/AVX1 targets 2022-05-01 09:32:14 +01:00
int128_no_gather.ll Revert "[NFCI] Regenerate SROA/LoopVectorize test checks" 2022-04-04 01:15:30 +02:00
interleave-opaque-pointers.ll [LV] Keep track of cost-based ScalarAfterVec in VPWidenPointerInd. 2022-09-19 18:14:35 +01:00
interleave_short_tc.ll
interleaved-accesses-large-gap.ll Revert "[NFCI] Regenerate SROA/LoopVectorize test checks" 2022-04-04 01:15:30 +02:00
interleaved-accesses-waw-dependency.ll
interleaving.ll [NFC] Switch a few uses of undef to poison as placeholders for unreachable code 2022-07-23 21:50:11 +01:00
intrinsiccost.ll [CostModel][X86] Add partial CostKinds handling for funnelshifts/rotates 2022-09-22 11:24:11 +01:00
invariant-load-gather.ll [IRBuilder] Use PoisonValue in CreateMasked* 2022-09-19 11:01:41 -07:00
invariant-store-vectorization.ll [LV] Move LoopVersioning creation to LVP::execute. 2022-06-30 12:14:32 +01:00
libm-vector-calls-VF2-VF8.ll Revert "[NFCI] Regenerate SROA/LoopVectorize test checks" 2022-04-04 01:15:30 +02:00
libm-vector-calls-finite.ll Revert "[NFCI] Regenerate SROA/LoopVectorize test checks" 2022-04-04 01:15:30 +02:00
libm-vector-calls.ll Revert "[NFCI] Regenerate SROA/LoopVectorize test checks" 2022-04-04 01:15:30 +02:00
limit-vf-by-tripcount.ll [LV] Do not LoopSimplify/LCSSA after generating main vector loop. 2022-05-20 09:58:40 +01:00
lit.local.cfg
load-deref-pred.ll [LV] Create & use VPScalarIVSteps for all scalar users. 2022-03-13 17:15:24 +00:00
masked_load_store.ll [IRBuilder] Use PoisonValue in CreateMasked* 2022-09-19 11:01:41 -07:00
max-mstore.ll
metadata-enable.ll [LoopVectorize][X86] Use quotes around the pass list to appease DOS cmd evaluation 2022-09-19 10:24:37 +01:00
min-trip-count-switch.ll
mul_slm_16bit.ll Revert "[NFCI] Regenerate SROA/LoopVectorize test checks" 2022-04-04 01:15:30 +02:00
no-vector.ll
no_fpmath.ll Revert "[NFCI] Regenerate SROA/LoopVectorize test checks" 2022-04-04 01:15:30 +02:00
no_fpmath_with_hotness.ll Revert "[NFCI] Regenerate SROA/LoopVectorize test checks" 2022-04-04 01:15:30 +02:00
nontemporal.ll
optsize.ll [IRBuilder] Use PoisonValue in CreateMasked* 2022-09-19 11:01:41 -07:00
outer_loop_test1_no_explicit_vect_width.ll [VPlan] Replace BranchOnCount with BranchOnCond if TC <= UF * VF. 2022-06-06 09:38:53 +01:00
parallel-loops-after-reg2mem.ll Revert "[NFCI] Regenerate SROA/LoopVectorize test checks" 2022-04-04 01:15:30 +02:00
parallel-loops.ll [NFC] Switch a few uses of undef to poison as placeholders for unreachable code 2022-07-23 21:50:11 +01:00
pointer-runtime-checks-unprofitable.ll [TTI] Recognize fp constants in getOperandInfo 2022-09-21 14:34:34 -07:00
powof2div.ll
pr23997.ll [CostModel][X86] Add CostKinds handling for smax/smin/umax/umin instructions 2022-09-22 10:19:23 +01:00
pr34438.ll [VPlan] Replace BranchOnCount with BranchOnCond if TC <= UF * VF. 2022-06-06 09:38:53 +01:00
pr35432.ll [LV] Vectorize cases with larger number of RT checks, execute only if profitable. 2022-07-04 15:11:39 +01:00
pr36524.ll [VPlan] Only generate single instr for unpredicated stores of varying value to invariant address 2022-09-22 08:53:46 -07:00
pr39160.ll Revert "[NFCI] Regenerate SROA/LoopVectorize test checks" 2022-04-04 01:15:30 +02:00
pr42674.ll [LV] Don't optimize exit cond during epilogue vectorization. 2022-07-01 13:48:38 +01:00
pr47437.ll Revert "[NFCI] Regenerate SROA/LoopVectorize test checks" 2022-04-04 01:15:30 +02:00
pr48340.ll [IRBuilder] Use PoisonValue in CreateMasked* 2022-09-19 11:01:41 -07:00
pr51366-sunk-instruction-used-outside-of-loop.ll [VPlan] Model first exit values using VPLiveOut. 2022-05-21 16:01:38 +01:00
pr54413-select-interleave-count-loop-with-cost-zero.ll [LoopVectorize][X86] Use quotes around the pass list to appease DOS cmd evaluation 2022-09-19 10:24:37 +01:00
pr54634.ll [LV] Vectorize cases with larger number of RT checks, execute only if profitable. 2022-07-04 15:11:39 +01:00
pr55096-scalarize-add.ll [LV] Add crashing test from #55096. 2022-05-12 22:40:28 +01:00
pr56319-vector-exit-cond-optimization-epilogue-vectorization.ll [LV] Don't optimize exit cond during epilogue vectorization. 2022-07-01 13:48:38 +01:00
propagate-metadata.ll
ptr-indvar-crash.ll
rauw-bug.ll
reduction-crash.ll Revert "[NFCI] Regenerate SROA/LoopVectorize test checks" 2022-04-04 01:15:30 +02:00
reduction-fastmath.ll Revert "[NFCI] Regenerate SROA/LoopVectorize test checks" 2022-04-04 01:15:30 +02:00
reduction-small-size.ll Revert "[NFCI] Regenerate SROA/LoopVectorize test checks" 2022-04-04 01:15:30 +02:00
redundant-vf2-cost.ll
reg-usage-debug.ll [NFC][LV] Use different braces in debug output 2022-03-07 19:32:37 +03:00
reg-usage.ll Revert "[NFCI] Regenerate SROA/LoopVectorize test checks" 2022-04-04 01:15:30 +02:00
register-assumption.ll Revert "[NFCI] Regenerate SROA/LoopVectorize test checks" 2022-04-04 01:15:30 +02:00
runtime-limit.ll [LV] Vectorize cases with larger number of RT checks, execute only if profitable. 2022-07-04 15:11:39 +01:00
scatter_crash.ll Revert "[NFCI] Regenerate SROA/LoopVectorize test checks" 2022-04-04 01:15:30 +02:00
slm-no-vectorize.ll Revert "[NFCI] Regenerate SROA/LoopVectorize test checks" 2022-04-04 01:15:30 +02:00
small-size.ll [NFC] Switch a few uses of undef to poison as placeholders for unreachable code 2022-07-23 21:50:11 +01:00
strided_load_cost.ll
struct-store.ll
svml-calls-finite.ll
svml-calls.ll Revert "[NFCI] Regenerate SROA/LoopVectorize test checks" 2022-04-04 01:15:30 +02:00
tail_folding_and_assume_safety.ll
tail_loop_folding.ll [LV] Use variables instead of hard-coded metadata IDs in tests. 2022-08-16 12:21:49 +01:00
tripcount.ll
uint64_to_fp64-cost-model.ll Revert "[NFCI] Regenerate SROA/LoopVectorize test checks" 2022-04-04 01:15:30 +02:00
uniform-phi.ll
uniform_load.ll
uniform_mem_op.ll [VPlan] Only generate single instr for unpredicated stores of varying value to invariant address 2022-09-22 08:53:46 -07:00
uniformshift.ll [CostModel][X86] Add CostKinds handling for vector shift by uniform/constuniform ops 2022-09-15 14:05:30 +01:00
unroll-pm.ll
unroll-small-loops.ll
unroll_selection.ll
veclib-calls.ll
vect.omp.force.ll
vect.omp.force.small-tc.ll Revert "[NFCI] Regenerate SROA/LoopVectorize test checks" 2022-04-04 01:15:30 +02:00
vector-scalar-select-cost.ll [CostModel][X86] Adjust 128-bit select costs to account for slow BLENDV op 2022-05-06 13:07:34 +01:00
vector_max_bandwidth.ll Revert "[NFCI] Regenerate SROA/LoopVectorize test checks" 2022-04-04 01:15:30 +02:00
vector_ptr_load_store.ll [LV] Remove what seems like stale code in collectElementTypesForWidening. 2022-01-05 12:20:59 +00:00
vectorization-remarks-loopid-dbg.ll Revert "[NFCI] Regenerate SROA/LoopVectorize test checks" 2022-04-04 01:15:30 +02:00
vectorization-remarks-missed.ll [NFC][1/n] Remove -enable-new-pm=0 flags from lit tests 2022-09-19 09:57:37 -07:00
vectorization-remarks-profitable.ll Revert "[NFCI] Regenerate SROA/LoopVectorize test checks" 2022-04-04 01:15:30 +02:00
vectorization-remarks.ll Revert "[NFCI] Regenerate SROA/LoopVectorize test checks" 2022-04-04 01:15:30 +02:00
vectorize-only-for-real.ll Revert "[NFCI] Regenerate SROA/LoopVectorize test checks" 2022-04-04 01:15:30 +02:00
x86-interleaved-accesses-masked-group.ll [InstCombine] Fix inbounds preservation when swapping GEPs (PR44206) 2022-05-31 15:45:02 +02:00
x86-interleaved-store-accesses-with-gaps.ll [InstCombine] Fix inbounds preservation when swapping GEPs (PR44206) 2022-05-31 15:45:02 +02:00
x86-pr39099.ll
x86-predication.ll [LV] Autogen several tests for ease of update in upcoming change 2022-07-20 07:17:51 -07:00
x86_fp80-interleaved-access.ll Revert "[NFCI] Regenerate SROA/LoopVectorize test checks" 2022-04-04 01:15:30 +02:00
x86_fp80-vector-store.ll [LoopVectorize][X86] Use quotes around the pass list to appease DOS cmd evaluation 2022-09-19 10:24:37 +01:00