llvm-project/llvm/test/Transforms/LoopVectorize/X86
Gil Rapaport 848581cadb [LV] Introduce VPBlendRecipe, VPWidenMemoryInstructionRecipe
This patch is part of D38676.

The patch introduces two new Recipes to handle instructions whose vectorization
involves masking. These Recipes take VPlan-level masks in D38676, but still rely
on ILV's existing createEdgeMask(), createBlockInMask() in this patch.

VPBlendRecipe handles intra-loop phi nodes, which are vectorized as a sequence
of SELECTs. Its execute() code is refactored out of ILV::widenPHIInstruction(),
which now handles only loop-header phi nodes.

VPWidenMemoryInstructionRecipe handles load/store which are to be widened
(but are not part of an Interleave Group). In this patch it simply calls
ILV::vectorizeMemoryInstruction on execute().

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

llvm-svn: 318149
2017-11-14 12:09:30 +00:00
..
already-vectorized.ll [Loop Vectorize] Added a separate metadata 2017-08-20 10:32:41 +00:00
assume.ll
avx1.ll
avx512.ll [AVX-512] Fix the execution domain for AVX-512 integer broadcasts. 2017-02-26 06:45:51 +00:00
consecutive-ptr-uniforms.ll Support arbitrary address space pointers in masked gather/scatter intrinsics. 2017-05-03 12:28:54 +00:00
constant-vector-operand.ll
conversion-cost.ll
cost-model.ll
float-induction-x86.ll [SimplifyCFG] use pass options and remove the latesimplifycfg pass 2017-10-28 18:43:07 +00:00
force-ifcvt.ll
fp32_to_uint32-cost-model.ll
fp64_to_uint32-cost-model.ll Revert "r306473 - re-commit r306336: Enable vectorizer-maximize-bandwidth by default." 2017-07-01 03:24:09 +00:00
fp_to_sint8-cost-model.ll
funclet.ll
gather-cost.ll
gather-vs-interleave.ll [Loop Vectorizer] Cost-based decision for vectorization form of memory instruction. 2017-02-08 19:25:23 +00:00
gather_scatter.ll Support arbitrary address space pointers in masked gather/scatter intrinsics. 2017-05-03 12:28:54 +00:00
gcc-examples.ll Revert "r306473 - re-commit r306336: Enable vectorizer-maximize-bandwidth by default." 2017-07-01 03:24:09 +00:00
illegal-parallel-loop-uniform-write.ll
imprecise-through-phis.ll
int128_no_gather.ll [X86] Remove PCOMMIT instruction support since Intel has deprecated this instruction with no plans to release products with it. 2017-02-08 05:45:39 +00:00
interleaving.ll [X86] enable memory interleaving for X86\SLM arch. 2017-01-25 09:14:48 +00:00
lit.local.cfg
masked_load_store.ll Revert "r306473 - re-commit r306336: Enable vectorizer-maximize-bandwidth by default." 2017-07-01 03:24:09 +00:00
max-mstore.ll
metadata-enable.ll Changed basic cost of store operation on X86 2017-08-20 12:34:29 +00:00
min-trip-count-switch.ll
mul_slm_16bit.ll [X86] fixing failed test in commit: r291657 2017-01-11 09:03:11 +00:00
no-vector.ll
no_fpmath.ll Revert "r306473 - re-commit r306336: Enable vectorizer-maximize-bandwidth by default." 2017-07-01 03:24:09 +00:00
no_fpmath_with_hotness.ll Revert "r306473 - re-commit r306336: Enable vectorizer-maximize-bandwidth by default." 2017-07-01 03:24:09 +00:00
parallel-loops-after-reg2mem.ll
parallel-loops.ll
powof2div.ll
pr34438.ll LoopVectorize: MaxVF should not be larger than the loop trip count 2017-09-04 08:35:13 +00:00
propagate-metadata.ll
ptr-indvar-crash.ll
rauw-bug.ll
reduction-crash.ll Revert "r306473 - re-commit r306336: Enable vectorizer-maximize-bandwidth by default." 2017-07-01 03:24:09 +00:00
reg-usage-debug.ll
reg-usage.ll [LV] Avoid computing the register usage for default VF. NFC 2017-09-13 19:35:45 +00:00
register-assumption.ll
scatter_crash.ll Support arbitrary address space pointers in masked gather/scatter intrinsics. 2017-05-03 12:28:54 +00:00
slm-no-vectorize.ll llvm/test/Transforms/LoopVectorize/X86/slm-no-vectorize.ll: -debug is available in +Asserts. 2017-07-02 14:25:27 +00:00
small-size.ll Improve profile-guided heuristics to use estimated trip count. 2017-06-19 18:48:58 +00:00
strided_load_cost.ll
struct-store.ll
svml-calls-finite.ll [TLI] Add mapping for various '__<func>_finite' forms of the math routines to SVML routines 2017-05-12 22:11:26 +00:00
svml-calls.ll
tripcount.ll
uint64_to_fp64-cost-model.ll
uniform-phi.ll
uniform_load.ll
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] Optimize for size when vectorizing loops with tiny trip count 2017-06-30 08:02:35 +00:00
vector-scalar-select-cost.ll
vector_max_bandwidth.ll [LV] Clamp the VF to the trip count 2017-09-12 16:32:45 +00:00
vector_ptr_load_store.ll
vectorization-remarks-loopid-dbg.ll [Loop Vectorize] Added a separate metadata 2017-08-20 10:32:41 +00:00
vectorization-remarks-missed.ll [Loop Vectorize] Added a separate metadata 2017-08-20 10:32:41 +00:00
vectorization-remarks-profitable.ll [LV] These remark should have been missed remarks 2017-03-01 04:31:15 +00:00
vectorization-remarks.ll [Loop Vectorize] Added a separate metadata 2017-08-20 10:32:41 +00:00
vectorize-only-for-real.ll
x86-predication.ll [LV] Introduce VPBlendRecipe, VPWidenMemoryInstructionRecipe 2017-11-14 12:09:30 +00:00
x86_fp80-vector-store.ll