llvm-project/llvm/test/Transforms/LoopVectorize/ARM
David Green 8675ef100f [LV] Logical and/or select costs
D99674 stopped the folding of certain select operations into and/or, due
to incorrect folding in the presence of poison. D97360 added some costs
to attempt to account for the change, but only worked at the getUserCost
level, not the getCmpSelInstrCost that the vectorizer will use directly.
This adds similar logic into the vectorizer to handle these logical
and/or selects, treating them like and/or directly.

This fixes 60% performance regressions from code like the attached test
case.

Differential Revision: https://reviews.llvm.org/D99884
2021-04-08 10:39:47 +01:00
..
arm-ieee-vectorize.ll
arm-unroll.ll
gather-cost.ll
gcc-examples.ll
interleaved_cost.ll
lit.local.cfg
mve-gather-scatter-tailpred.ll [LoopVectorize][ARM] Regenerate mve-gather-scatter-tailpred.ll test 2021-02-05 12:32:45 +00:00
mve-icmpcost.ll [ARM] Tone down the MVE scalarization overhead 2021-03-19 18:30:11 +00:00
mve-interleaved-cost.ll [ARM] Tone down the MVE scalarization overhead 2021-03-19 18:30:11 +00:00
mve-maskedldst.ll
mve-predstorecost.ll [ARM] Test for predicated scalar memops. NFC 2021-03-09 21:57:18 +00:00
mve-qabs.ll [SimplifyCFG] TryToSimplifyUncondBranchFromEmptyBlock() already knows how to preserve DomTree 2020-12-17 01:03:49 +03:00
mve-reduction-predselect.ll [SLP,LV] Use poison constant vector for shufflevector/initial insertelement 2021-01-06 11:22:50 +09:00
mve-reduction-types.ll [LV][ARM] Inloop reduction cost modelling 2021-01-21 21:03:41 +00:00
mve-reductions.ll [LV][ARM] Inloop reduction cost modelling 2021-01-21 21:03:41 +00:00
mve-saddsatcost.ll [ARM] Tone down the MVE scalarization overhead 2021-03-19 18:30:11 +00:00
mve-selectandorcost.ll [LV] Logical and/or select costs 2021-04-08 10:39:47 +01:00
mve-shiftcost.ll
mve-vldn.ll
pointer_iv.ll [ARM] Tone down the MVE scalarization overhead 2021-03-19 18:30:11 +00:00
prefer-tail-loop-folding.ll [LoopVectorize] Remove unused check-prefixes 2020-11-09 12:18:20 +00:00
scalar-block-cost.ll [LV] Fix scalar cost for tail predicated loops 2020-12-12 14:21:40 +00:00
sphinx.ll [Vectorizers][TTI] remove option to bypass creation of vector reduction intrinsics 2021-02-12 08:13:50 -05:00
tail-fold-multiple-icmps.ll [SimplifyCFG] TryToSimplifyUncondBranchFromEmptyBlock() already knows how to preserve DomTree 2020-12-17 01:03:49 +03:00
tail-folding-allowed.ll
tail-folding-counting-down.ll [LV] Fallback strategies if tail-folding fails 2020-08-26 16:55:25 +01:00
tail-folding-loop-hint.ll [LV] get.active.lane.mask consuming tripcount instead of backedge-taken count 2020-08-25 13:49:19 +01:00
tail-folding-not-allowed.ll [ARM] Tone down the MVE scalarization overhead 2021-03-19 18:30:11 +00:00
tail-folding-prefer-flag.ll [LV] Fallback strategies if tail-folding fails 2020-08-26 16:55:25 +01:00
tail-folding-reduces-vf.ll [ARM][MVE] Enable tail-predication by default 2020-09-28 14:01:23 +01:00
tail-folding-reductions-allowed.ll
tail-folding-scalar-epilogue-fallback.ll [LV] Fallback strategies if tail-folding fails 2020-08-26 16:55:25 +01:00
vector_cast.ll
width-detect.ll