forked from OSchip/llvm-project
848581cadb
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 |
||
---|---|---|
.. | ||
already-vectorized.ll | ||
assume.ll | ||
avx1.ll | ||
avx512.ll | ||
consecutive-ptr-uniforms.ll | ||
constant-vector-operand.ll | ||
conversion-cost.ll | ||
cost-model.ll | ||
float-induction-x86.ll | ||
force-ifcvt.ll | ||
fp32_to_uint32-cost-model.ll | ||
fp64_to_uint32-cost-model.ll | ||
fp_to_sint8-cost-model.ll | ||
funclet.ll | ||
gather-cost.ll | ||
gather-vs-interleave.ll | ||
gather_scatter.ll | ||
gcc-examples.ll | ||
illegal-parallel-loop-uniform-write.ll | ||
imprecise-through-phis.ll | ||
int128_no_gather.ll | ||
interleaving.ll | ||
lit.local.cfg | ||
masked_load_store.ll | ||
max-mstore.ll | ||
metadata-enable.ll | ||
min-trip-count-switch.ll | ||
mul_slm_16bit.ll | ||
no-vector.ll | ||
no_fpmath.ll | ||
no_fpmath_with_hotness.ll | ||
parallel-loops-after-reg2mem.ll | ||
parallel-loops.ll | ||
powof2div.ll | ||
pr34438.ll | ||
propagate-metadata.ll | ||
ptr-indvar-crash.ll | ||
rauw-bug.ll | ||
reduction-crash.ll | ||
reg-usage-debug.ll | ||
reg-usage.ll | ||
register-assumption.ll | ||
scatter_crash.ll | ||
slm-no-vectorize.ll | ||
small-size.ll | ||
strided_load_cost.ll | ||
struct-store.ll | ||
svml-calls-finite.ll | ||
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 | ||
vector-scalar-select-cost.ll | ||
vector_max_bandwidth.ll | ||
vector_ptr_load_store.ll | ||
vectorization-remarks-loopid-dbg.ll | ||
vectorization-remarks-missed.ll | ||
vectorization-remarks-profitable.ll | ||
vectorization-remarks.ll | ||
vectorize-only-for-real.ll | ||
x86-predication.ll | ||
x86_fp80-vector-store.ll |