llvm-project/llvm/test/Transforms/LoopVectorize/X86
Roman Lebedev 78b8ce40ef
Reland [SCEV] Improve modelling for (null) pointer constants
This reverts commit 329aeb5db4,
and relands commit 61f006ac65.

This is a continuation of D89456.

As it was suggested there, now that SCEV models `PtrToInt`,
we can try to improve SCEV's pointer handling.
In particular, i believe, i will need this in the future
to further fix `SCEVAddExpr`operation type handling.

This removes special handling of `ConstantPointerNull`
from `ScalarEvolution::createSCEV()`, and add constant folding
into `ScalarEvolution::getPtrToIntExpr()`.
This way, `null` constants stay as such in SCEV's,
but gracefully become zero integers when asked.

Reviewed By: Meinersbur

Differential Revision: https://reviews.llvm.org/D98147
2021-03-13 16:05:34 +03:00
..
already-vectorized.ll [test][NPM] Fix already-vectorized.ll under NPM 2020-10-19 13:11:13 -07:00
avx1.ll
avx512.ll
consecutive-ptr-cg-bug.ll
consecutive-ptr-uniforms.ll [SLP,LV] Use poison constant vector for shufflevector/initial insertelement 2021-01-06 11:22:50 +09:00
constant-fold.ll [IR] Let IRBuilder's CreateVectorSplat/CreateShuffleVector use poison as placeholder 2020-12-30 04:21:04 +09:00
constant-vector-operand.ll
conversion-cost.ll
cost-model-assert.ll Reland [SCEV] Improve modelling for (null) pointer constants 2021-03-13 16:05:34 +03:00
cost-model.ll
float-induction-x86.ll [NFCI] SCEVExpander: emit intrinsics for integral {u,s}{min,max} SCEV expressions 2021-03-06 21:52:46 +03:00
fneg-cost.ll
force-ifcvt.ll
fp32_to_uint32-cost-model.ll
fp64_to_uint32-cost-model.ll
fp80-widest-type.ll
fp_to_sint8-cost-model.ll
funclet.ll
gather-cost.ll
gather-vs-interleave.ll
gather_scatter.ll [SLP,LV] Use poison constant vector for shufflevector/initial insertelement 2021-01-06 11:22:50 +09:00
gcc-examples.ll
illegal-parallel-loop-uniform-write.ll [LV] Generate RT checks up-front and remove them if required. 2021-03-01 10:48:04 +00:00
imprecise-through-phis.ll [LoopUtils] Fix neutral value for vector.reduce.fadd 2020-10-29 21:45:13 +01:00
int128_no_gather.ll
interleave_short_tc.ll
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 [IR] Let IRBuilder's CreateVectorSplat/CreateShuffleVector use poison as placeholder 2020-12-30 04:21:04 +09:00
intrinsiccost.ll [CostModel] Remove VF from IntrinsicCostAttributes 2021-02-23 13:03:26 +00:00
invariant-load-gather.ll [NFCI] SCEVExpander: emit intrinsics for integral {u,s}{min,max} SCEV expressions 2021-03-06 21:52:46 +03:00
invariant-store-vectorization.ll [NFCI] SCEVExpander: emit intrinsics for integral {u,s}{min,max} SCEV expressions 2021-03-06 21:52:46 +03:00
libm-vector-calls-VF2-VF8.ll Initial support for vectorization using Libmvec (GLIBC vector math library) 2020-10-22 16:01:39 -04:00
libm-vector-calls-finite.ll Initial support for vectorization using Libmvec (GLIBC vector math library) 2020-10-22 16:01:39 -04:00
libm-vector-calls.ll Initial support for vectorization using Libmvec (GLIBC vector math library) 2020-10-22 16:01:39 -04:00
lit.local.cfg
load-deref-pred.ll [SLP,LV] Use poison constant vector for shufflevector/initial insertelement 2021-01-06 11:22:50 +09:00
masked_load_store.ll [LoopVectorize] Fix VPRecipeBuilder::createEdgeMask to correctly generate the mask 2021-02-14 21:12:34 +09:00
max-mstore.ll
metadata-enable.ll [SLP,LV] Use poison constant vector for shufflevector/initial insertelement 2021-01-06 11:22:50 +09:00
min-trip-count-switch.ll
mul_slm_16bit.ll
no-vector.ll
no_fpmath.ll
no_fpmath_with_hotness.ll
nontemporal.ll
optsize.ll [SLP,LV] Use poison constant vector for shufflevector/initial insertelement 2021-01-06 11:22:50 +09:00
outer_loop_test1_no_explicit_vect_width.ll [VPlan] Manage pairs of incoming (VPValue, VPBB) in VPWidenPHIRecipe. 2021-02-22 09:44:25 +00:00
parallel-loops-after-reg2mem.ll
parallel-loops.ll
powof2div.ll
pr23997.ll [NFCI] SCEVExpander: emit intrinsics for integral {u,s}{min,max} SCEV expressions 2021-03-06 21:52:46 +03:00
pr34438.ll [IR] Let IRBuilder's CreateVectorSplat/CreateShuffleVector use poison as placeholder 2020-12-30 04:21:04 +09:00
pr35432.ll [NFCI] SCEVExpander: emit intrinsics for integral {u,s}{min,max} SCEV expressions 2021-03-06 21:52:46 +03:00
pr36524.ll [LV] Collect dead induction truncates 2020-10-08 08:28:58 +01:00
pr39160.ll
pr42674.ll [SimplifyCFG] MergeBlockIntoPredecessor() already knows how to preserve DomTree 2020-12-17 01:03:49 +03:00
propagate-metadata.ll
ptr-indvar-crash.ll
rauw-bug.ll
reduction-crash.ll
reduction-fastmath.ll [LoopVectorizer] Require no-signed-zeros-fp-math=true for fmin/fmax 2021-02-15 13:47:05 +00: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
scatter_crash.ll
slm-no-vectorize.ll
small-size.ll [SLP,LV] Use poison constant vector for shufflevector/initial insertelement 2021-01-06 11:22:50 +09:00
strided_load_cost.ll [SLP,LV] Use poison constant vector for shufflevector/initial insertelement 2021-01-06 11:22:50 +09:00
struct-store.ll
svml-calls-finite.ll SVML support for log10, sqrt 2020-09-15 17:29:44 -07:00
svml-calls.ll Revert SVML support for sqrt 2020-10-05 08:13:11 -07:00
tail_folding_and_assume_safety.ll
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
uniform-phi.ll
uniform_load.ll
uniform_mem_op.ll [SLP,LV] Use poison constant vector for shufflevector/initial insertelement 2021-01-06 11:22:50 +09: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 [SLP,LV] Use poison constant vector for shufflevector/initial insertelement 2021-01-06 11:22:50 +09:00
vector-scalar-select-cost.ll
vector_max_bandwidth.ll
vector_ptr_load_store.ll
vectorization-remarks-loopid-dbg.ll
vectorization-remarks-missed.ll [NPM][test] Fix some LoopVectorize tests under NPM 2020-10-19 12:05:37 -07:00
vectorization-remarks-profitable.ll
vectorization-remarks.ll
vectorize-only-for-real.ll
x86-interleaved-accesses-masked-group.ll [LoopVectorize] Fix VPRecipeBuilder::createEdgeMask to correctly generate the mask 2021-02-14 21:12:34 +09:00
x86-pr39099.ll
x86-predication.ll [SLP,LV] Use poison constant vector for shufflevector/initial insertelement 2021-01-06 11:22:50 +09:00
x86_fp80-interleaved-access.ll
x86_fp80-vector-store.ll