llvm-project/llvm/test/Analysis/CostModel/AArch64
David Green f2a92db29e [AArch64] Don't treat SVE scalable extends as free widening instructions
The logic in isWideningInstruction handles instructions like uaddw and
smull, where 'add(x, zext(y))' or 'mul(sext(x), sext(y))' can be
converted to single instructions, making the extends free. This doesn't
apply the same to SVE instructions though.
https://godbolt.org/z/695d3nhGd

(There are instructions like SMULLT/B, but they require top/bottom lane
interleaving. That is similar to MVE instructions, which required a
special pass to perform the lane interleaving).

This patch just bails out of the call to isWideningInstruction if the
vector is scalable, getting a more accurate cost.

Differential Revision: https://reviews.llvm.org/D138591
2022-11-30 13:09:48 +00:00
..
abs.ll [AArch64][CostModel][NFC] Specify target datalayout explicitly for cost analysis test. 2022-08-31 09:52:24 -07:00
aggregates.ll [AArch64][CostModel][NFC] Specify target datalayout explicitly for cost analysis test. 2022-08-31 09:52:24 -07:00
arith-fp-sve.ll [NFC][CostModel] Added floating point frem test for SVE 2022-10-19 19:34:14 +00:00
arith-fp.ll [AArch64][CostModel][NFC] Specify target datalayout explicitly for cost analysis test. 2022-08-31 09:52:24 -07:00
arith-overflow.ll [AArch64][TTI] Add cost table entry for trunc over vector of integers. 2022-09-02 10:06:55 -07:00
arith-ssat.ll [AArch64][CostModel][NFC] Specify target datalayout explicitly for cost analysis test. 2022-08-31 09:52:24 -07:00
arith-usat.ll [AArch64][CostModel][NFC] Specify target datalayout explicitly for cost analysis test. 2022-08-31 09:52:24 -07:00
arith-widening.ll [AArch64][CostModel][NFC] Specify target datalayout explicitly for cost analysis test. 2022-08-31 09:52:24 -07:00
arith.ll [AArch64][CostModel][NFC] Specify target datalayout explicitly for cost analysis test. 2022-08-31 09:52:24 -07:00
bitreverse.ll [AArch64][CostModel][NFC] Specify target datalayout explicitly for cost analysis test. 2022-08-31 09:52:24 -07:00
bswap.ll [AArch64][CostModel][NFC] Specify target datalayout explicitly for cost analysis test. 2022-08-31 09:52:24 -07:00
cast.ll [AArch64][TTI] Add cost table entry for trunc over vector of integers. 2022-09-02 10:06:55 -07:00
cmp.ll [AArch64][CostModel][NFC] Specify target datalayout explicitly for cost analysis test. 2022-08-31 09:52:24 -07:00
cost-scalable-vector-gep.ll [AArch64][CostModel][NFC] Specify target datalayout explicitly for cost analysis test. 2022-08-31 09:52:24 -07:00
ctlz.ll [AArch64][CostModel][NFC] Specify target datalayout explicitly for cost analysis test. 2022-08-31 09:52:24 -07:00
ctpop.ll [CostModel][AArch64] Fix ctpop intrinsic cost when NEON is disabled. 2022-09-02 15:17:55 -07:00
cttz.ll [AArch64][CostModel][NFC] Specify target datalayout explicitly for cost analysis test. 2022-08-31 09:52:24 -07:00
div.ll [AArch64] Fix cost model for `udiv` instruction when one of the operands is a uniform constant 2022-11-28 10:38:17 +02:00
div_cte.ll [AArch64][CostModel][NFC] Specify target datalayout explicitly for cost analysis test. 2022-08-31 09:52:24 -07:00
fptoi_sat.ll [AArch64][CostModel][NFC] Specify target datalayout explicitly for cost analysis test. 2022-08-31 09:52:24 -07:00
free-widening-casts.ll [AArch64][CostModel][NFC] Specify target datalayout explicitly for cost analysis test. 2022-08-31 09:52:24 -07:00
gep.ll [CostModel] Update RUN -passes=* to double quotes to appease update scripts on windows 2022-08-10 17:54:06 +01:00
getIntrinsicInstrCost-vector-reverse.ll [AArch64][CostModel][NFC] Specify target datalayout explicitly for cost analysis test. 2022-08-31 09:52:24 -07:00
kryo-inseltpoison.ll [AArch64][CostModel] Detects that {extract,insert}-element at lane 0 has the same cost as the other lane for vector instructions in the IR. 2022-09-09 09:47:30 -07:00
kryo.ll [AArch64][CostModel] Detects that {extract,insert}-element at lane 0 has the same cost as the other lane for vector instructions in the IR. 2022-09-09 09:47:30 -07:00
lit.local.cfg
load-to-trunc.ll [AArch64][CostModel][NFC] Specify target datalayout explicitly for cost analysis test. 2022-08-31 09:52:24 -07:00
logicalop.ll [CostModel] Update RUN -passes=* to double quotes to appease update scripts on windows 2022-08-10 17:54:06 +01:00
masked_ldst.ll Revert "[AARCH64][CostModel] Modified the cost of mask vector load/store" 2022-09-28 15:35:13 +01:00
masked_ldst_vls.ll Revert "[AARCH64][CostModel] Modified the cost of mask vector load/store" 2022-09-28 15:35:13 +01:00
mem-op-cost-model.ll [AArch64][CostModel][NFC] Specify target datalayout explicitly for cost analysis test. 2022-08-31 09:52:24 -07:00
min-max.ll [AArch64][CostModel][NFC] Specify target datalayout explicitly for cost analysis test. 2022-08-31 09:52:24 -07:00
mul.ll [AArch64][CostModel][NFC] Specify target datalayout explicitly for cost analysis test. 2022-08-31 09:52:24 -07:00
neon-stepvector.ll [AArch64][CostModel][NFC] Specify target datalayout explicitly for cost analysis test. 2022-08-31 09:52:24 -07:00
reduce-add.ll [AArch64][CostModel][NFC] Specify target datalayout explicitly for cost analysis test. 2022-08-31 09:52:24 -07:00
reduce-and.ll [AArch64][CostModel][NFC] Specify target datalayout explicitly for cost analysis test. 2022-08-31 09:52:24 -07:00
reduce-fadd.ll [AArch64][CostModel][NFC] Specify target datalayout explicitly for cost analysis test. 2022-08-31 09:52:24 -07:00
reduce-minmax.ll [AArch64][CostModel][NFC] Specify target datalayout explicitly for cost analysis test. 2022-08-31 09:52:24 -07:00
reduce-or.ll [AArch64][CostModel][NFC] Specify target datalayout explicitly for cost analysis test. 2022-08-31 09:52:24 -07:00
reduce-xor.ll [AArch64][CostModel][NFC] Specify target datalayout explicitly for cost analysis test. 2022-08-31 09:52:24 -07:00
rem.ll [AArch64][CostModel][NFC] Specify target datalayout explicitly for cost analysis test. 2022-08-31 09:52:24 -07:00
select.ll [CostModel] Update RUN -passes=* to double quotes to appease update scripts on windows 2022-08-10 17:54:06 +01:00
shuffle-broadcast.ll [AArch64][CostModel][NFC] Specify target datalayout explicitly for cost analysis test. 2022-08-31 09:52:24 -07:00
shuffle-load.ll [AArch64][CostModel][NFC] Specify target datalayout explicitly for cost analysis test. 2022-08-31 09:52:24 -07:00
shuffle-other.ll [AArch64][CostModel][NFC] Specify target datalayout explicitly for cost analysis test. 2022-08-31 09:52:24 -07:00
shuffle-reverse.ll [AArch64][CostModel][NFC] Specify target datalayout explicitly for cost analysis test. 2022-08-31 09:52:24 -07:00
shuffle-select.ll [AArch64][CostModel][NFC] Specify target datalayout explicitly for cost analysis test. 2022-08-31 09:52:24 -07:00
shuffle-transpose.ll [AArch64][CostModel][NFC] Specify target datalayout explicitly for cost analysis test. 2022-08-31 09:52:24 -07:00
splice.ll [AArch64][CostModel][NFC] Specify target datalayout explicitly for cost analysis test. 2022-08-31 09:52:24 -07:00
store.ll [CostModel] Update RUN -passes=* to double quotes to appease update scripts on windows 2022-08-10 17:54:06 +01:00
sve-arith.ll [AArh64-SVE]: Improve cost model for div/udiv/mul 128-bit vector operations 2022-09-22 16:50:55 +00:00
sve-bitcast.ll [AArch64][CostModel][NFC] Specify target datalayout explicitly for cost analysis test. 2022-08-31 09:52:24 -07:00
sve-cmpsel.ll [AArch64][CostModel][NFC] Specify target datalayout explicitly for cost analysis test. 2022-08-31 09:52:24 -07:00
sve-fixed-length.ll [NFC]: AArch64-SVE 2022-09-23 12:07:31 +00:00
sve-fpext.ll [CostModel] Update RUN -passes=* to double quotes to appease update scripts on windows 2022-08-10 17:54:06 +01:00
sve-fptoi.ll [CostModel] Update RUN -passes=* to double quotes to appease update scripts on windows 2022-08-10 17:54:06 +01:00
sve-fptrunc.ll [CostModel] Update RUN -passes=* to double quotes to appease update scripts on windows 2022-08-10 17:54:06 +01:00
sve-gather.ll [AArch64][CostModel][NFC] Specify target datalayout explicitly for cost analysis test. 2022-08-31 09:52:24 -07:00
sve-illegal-types.ll [AArch64][CostModel][NFC] Specify target datalayout explicitly for cost analysis test. 2022-08-31 09:52:24 -07:00
sve-insert-extract.ll [AArch64][CostModel] Detects that {extract,insert}-element at lane 0 has the same cost as the other lane for vector instructions in the IR. 2022-09-09 09:47:30 -07:00
sve-intrinsics.ll [AArch64][CostModel][NFC] Specify target datalayout explicitly for cost analysis test. 2022-08-31 09:52:24 -07:00
sve-ldst.ll [AArch64][CostModel][NFC] Specify target datalayout explicitly for cost analysis test. 2022-08-31 09:52:24 -07:00
sve-math.ll [AArch64][CostModel][NFC] Specify target datalayout explicitly for cost analysis test. 2022-08-31 09:52:24 -07:00
sve-remainder.ll [AArh64-SVE]: Improve cost model for div/udiv/mul 128-bit vector operations 2022-09-22 16:50:55 +00:00
sve-scatter.ll [AArch64][CostModel][NFC] Specify target datalayout explicitly for cost analysis test. 2022-08-31 09:52:24 -07:00
sve-shuffle-broadcast.ll [AArch64][CostModel][NFC] Specify target datalayout explicitly for cost analysis test. 2022-08-31 09:52:24 -07:00
sve-stepvector.ll [AArch64][CostModel][NFC] Specify target datalayout explicitly for cost analysis test. 2022-08-31 09:52:24 -07:00
sve-trunc.ll [AArch64][CostModel][NFC] Specify target datalayout explicitly for cost analysis test. 2022-08-31 09:52:24 -07:00
sve-vscale.ll [AArch64][CostModel][NFC] Specify target datalayout explicitly for cost analysis test. 2022-08-31 09:52:24 -07:00
sve-widening-instruction.ll [AArch64] Don't treat SVE scalable extends as free widening instructions 2022-11-30 13:09:48 +00:00
vector-reduce.ll [AArch64][CostModel][NFC] Specify target datalayout explicitly for cost analysis test. 2022-08-31 09:52:24 -07:00
vector-select.ll [AArch64][CostModel][NFC] Specify target datalayout explicitly for cost analysis test. 2022-08-31 09:52:24 -07:00