llvm-project/llvm/test/Analysis/CostModel/X86
Juneyoung Lee c89d9d8a48 [TTI] Consider select form of and/or i1 as having arithmetic cost
This is a patch that updates the cost of `select i1 a, b, false` to be equivalent to that of `and i1 a, b`
as well as the cost of `select i1 a, true, b` equivalent to `or i1 a, b`.

Until now, these selects were folded into and/or i1 by InstCombine, but the transformation is poison-unsafe.
This is a step towards removing the unsafe transformation. D93065 has relevant transformations linked.
These selects should be translated into the assemblies as and/or i1 do in the same manner. The cost should be equivalent.

Reviewed By: spatel

Differential Revision: https://reviews.llvm.org/D97360
2021-03-02 02:18:19 +09:00
..
abs.ll [CostModel][X86] Refresh ISD::ABS costs 2020-11-25 18:40:19 +00:00
aggregates.ll [test] Fix some unused check prefixes in test/Analysis/CostModel/X86 2020-10-31 23:29:57 -07:00
alternate-shuffle-cost.ll
arith-fix.ll [CostModel][X86] Remove unused CHECK prefixes 2020-11-13 17:31:48 +00:00
arith-fma.ll [CostModel][X86] Remove unused CHECK prefixes 2020-11-13 17:31:48 +00:00
arith-fp.ll [CostModel][X86] Remove unused CHECK prefixes 2020-11-13 17:31:48 +00:00
arith-overflow.ll [CostModel][X86] Remove unused CHECK prefixes 2020-11-13 17:31:48 +00:00
arith-sminmax.ll [CostModel][X86] Remove unused CHECK prefixes 2020-11-13 17:31:48 +00:00
arith-ssat.ll [CostModel][X86] Remove unused CHECK prefixes 2020-11-13 17:31:48 +00:00
arith-uminmax.ll [CostModel][X86] Remove unused CHECK prefixes 2020-11-13 17:31:48 +00:00
arith-usat.ll [CostModel][X86] Remove unused CHECK prefixes 2020-11-13 17:31:48 +00:00
arith.ll [CostModel][X86] Remove unused CHECK prefixes 2020-11-13 17:31:48 +00:00
bitreverse.ll [X86] Use GF2P8AFFINEQB to implement vector bitreverse. 2020-11-17 23:49:06 -08:00
bswap.ll [CostModel][X86] Remove unused CHECK prefixes 2020-11-13 17:31:48 +00:00
cast.ll [CostModel][X86] Remove unused CHECK prefixes 2020-11-13 17:31:48 +00:00
costmodel.ll
ctlz.ll [CostModel][X86] Remove unused CHECK prefixes 2020-11-13 17:31:48 +00:00
ctpop.ll [CostModel][X86] Remove unused CHECK prefixes 2020-11-13 17:31:48 +00:00
cttz.ll [CostModel][X86] Remove unused CHECK prefixes 2020-11-13 17:31:48 +00:00
div.ll [CostModel][X86] Remove unused CHECK prefixes 2020-11-13 17:31:48 +00:00
extend.ll [CostModel][X86] Remove unused CHECK prefixes 2020-11-13 17:31:48 +00:00
fcmp.ll [CostModel][X86] Remove unused CHECK prefixes 2020-11-13 17:31:48 +00:00
fmaxnum-size-latency.ll [CostModel] mostly remove cost-kind predicate for intrinsics in basic TTI implementation 2020-11-20 11:21:10 -05:00
fmaxnum.ll [x86] adjust cost model values for minnum/maxnum with fast-math-flags 2020-12-01 10:45:53 -05:00
fminnum-size-latency.ll [CostModel] mostly remove cost-kind predicate for intrinsics in basic TTI implementation 2020-11-20 11:21:10 -05:00
fminnum.ll [x86] adjust cost model values for minnum/maxnum with fast-math-flags 2020-12-01 10:45:53 -05:00
fptosi.ll [CostModel][X86] Remove unused check-prefixes 2020-11-10 12:48:35 +00:00
fptoui.ll [CostModel][X86] Remove unused check-prefixes 2020-11-10 12:48:35 +00:00
free-intrinsics.ll [noalias.decl] Look through llvm.experimental.noalias.scope.decl 2021-01-19 20:09:42 +01:00
fround.ll [CostModel][X86] Remove unused check-prefixes 2020-11-10 12:48:35 +00:00
fshl.ll [CostModel][X86] Remove unused check-prefixes 2020-11-10 12:48:35 +00:00
fshr.ll [CostModel][X86] Remove unused check-prefixes 2020-11-10 12:48:35 +00:00
gep.ll
i32.ll
icmp.ll [CostModel][X86] Remove unused check-prefixes 2020-11-10 12:48:35 +00:00
insert-extract-at-zero-inseltpoison.ll Precommit analysis/etc tests for inselt poison placeholder 2020-12-24 12:14:24 +09:00
insert-extract-at-zero.ll
interleave-load-i32.ll
interleave-store-i32.ll
interleaved-load-float.ll
interleaved-load-i8.ll
interleaved-load-store-double.ll
interleaved-load-store-i64.ll
interleaved-store-i8.ll
intrinsic-cost-kinds.ll [CostModel][X86] getGatherScatterOpCost - use default implementation for alt costkinds 2020-12-06 14:08:26 +00:00
intrinsic-cost.ll [TTI] Add DemandedElts to getScalarizationOverhead 2020-04-29 12:00:38 +01:00
lit.local.cfg
load_store.ll [CostModel][X86] Remove unused check-prefixes 2020-11-10 12:48:35 +00:00
logicalop.ll [TTI] Consider select form of and/or i1 as having arithmetic cost 2021-03-02 02:18:19 +09:00
loop_v2-inseltpoison.ll Precommit analysis/etc tests for inselt poison placeholder 2020-12-24 12:14:24 +09:00
loop_v2.ll
masked-intrinsic-cost-inseltpoison.ll Update inselt tests at llvm/test/Analysis to have poison as shufflevector's placeholder (NFC) 2020-12-31 17:12:37 +09:00
masked-intrinsic-cost.ll [CostModel][X86] Remove unused check-prefixes 2020-11-10 12:48:35 +00:00
min-legal-vector-width.ll [CostModel][X86] Remove unused check-prefixes 2020-11-10 12:48:35 +00:00
reduce-add.ll [CostModel][X86] Remove unused check-prefixes 2020-11-10 12:48:35 +00:00
reduce-and.ll [CostModel][X86] Remove unused check-prefixes 2020-11-10 12:48:35 +00:00
reduce-fadd.ll [CostModel][X86] Remove unused CHECK prefixes 2020-11-13 17:31:48 +00:00
reduce-fmax.ll [CostModel][X86] Remove unused check-prefixes 2020-11-10 12:48:35 +00:00
reduce-fmin.ll [CostModel][X86] Remove unused check-prefixes 2020-11-10 12:48:35 +00:00
reduce-fmul.ll [CostModel][X86] Remove unused CHECK prefixes 2020-11-13 17:31:48 +00:00
reduce-mul.ll [CostModel][X86] Remove unused check-prefixes 2020-11-10 12:48:35 +00:00
reduce-or.ll [CostModel][X86] Remove unused check-prefixes 2020-11-10 12:48:35 +00:00
reduce-smax.ll [CostModel][X86] Remove unused CHECK prefixes 2020-11-13 17:31:48 +00:00
reduce-smin.ll [CostModel][X86] Remove unused CHECK prefixes 2020-11-13 17:31:48 +00:00
reduce-umax.ll [CostModel][X86] Remove unused CHECK prefixes 2020-11-13 17:31:48 +00:00
reduce-umin.ll [CostModel][X86] Remove unused CHECK prefixes 2020-11-13 17:31:48 +00:00
reduce-xor.ll [CostModel][X86] Remove unused check-prefixes 2020-11-10 12:48:35 +00:00
reduction.ll [X86] More accurately model the cost of horizontal reductions. 2020-03-22 14:20:15 -07:00
rem.ll [CostModel][X86] Add vXi32 division by uniform constant costs (PR47476) 2020-09-10 12:17:54 +01:00
scalarize.ll
shuffle-broadcast.ll [CostModel][X86] Remove unused check-prefixes 2020-11-10 12:48:35 +00:00
shuffle-extract_subvector.ll [CostModel][X86] Remove unused check-prefixes 2020-11-10 12:48:35 +00:00
shuffle-insert_subvector.ll [CostModel][X86] Remove unused check-prefixes 2020-11-10 12:48:35 +00:00
shuffle-reverse.ll [CostModel][X86] Remove unused check-prefixes 2020-11-10 12:48:35 +00:00
shuffle-select.ll [CostModel][X86] Remove unused check-prefixes 2020-11-10 12:48:35 +00:00
shuffle-single-src.ll [CostModel][X86] Remove unused check-prefixes 2020-11-10 12:48:35 +00:00
shuffle-transpose.ll [CostModel][X86] Remove unused check-prefixes 2020-11-10 12:48:35 +00:00
shuffle-two-src.ll [CostModel][X86] Remove unused check-prefixes 2020-11-10 12:48:35 +00:00
sitofp.ll [CostModel][X86] Remove unused check-prefixes 2020-11-10 12:48:35 +00:00
size-cost.ll [x86] add size cost tests for casts and binops; NFC 2020-04-06 12:38:15 -04:00
slm-arith-costs.ll
sse-itoi.ll [X86][CostModel] Update truncate costs for some narrow vector cases to match their wider version. 2020-04-27 13:47:48 -07:00
strided-load-i8.ll [X86][CostModel] Bump the cost of vpermw/vpermt2b/vperm2w 2020-04-30 11:32:25 -07:00
strided-load-i16.ll [X86][CostModel] Bump the cost of vpermw/vpermt2b/vperm2w 2020-04-30 11:32:25 -07:00
strided-load-i32.ll
strided-load-i64.ll
testshiftashr.ll
testshiftlshr.ll
testshiftshl.ll
tiny.ll
trunc.ll [CostModel][X86] Remove unused check-prefixes 2020-11-10 12:48:35 +00:00
uitofp.ll [CostModel][X86] Remove unused check-prefixes 2020-11-10 12:48:35 +00:00
uniformshift-inseltpoison.ll Update inselt tests at llvm/test/Analysis to have poison as shufflevector's placeholder (NFC) 2020-12-31 17:12:37 +09:00
uniformshift.ll
vdiv-cost.ll [CostModel][X86] Remove unused check-prefixes 2020-11-10 12:48:35 +00:00
vector-extract.ll [CostModel][X86] Remove unused check-prefixes 2020-11-10 12:48:35 +00:00
vector-insert-inseltpoison.ll Precommit analysis/etc tests for inselt poison placeholder 2020-12-24 12:14:24 +09:00
vector-insert.ll [CostModel][X86] Remove unused check-prefixes 2020-11-10 12:48:35 +00:00
vector_gep-inseltpoison.ll Update inselt tests at llvm/test/Analysis to have poison as shufflevector's placeholder (NFC) 2020-12-31 17:12:37 +09:00
vector_gep.ll
vectorized-loop.ll
vselect-cost.ll [CostModel][X86] Remove unused check-prefixes 2020-11-10 12:48:35 +00:00
vshift-ashr-cost-inseltpoison.ll Update inselt tests at llvm/test/Analysis to have poison as shufflevector's placeholder (NFC) 2020-12-31 17:12:37 +09:00
vshift-ashr-cost.ll [CostModel][X86] Improve extract/insert element costs (PR43605) 2020-02-27 15:54:13 +00:00
vshift-lshr-cost-inseltpoison.ll Update inselt tests at llvm/test/Analysis to have poison as shufflevector's placeholder (NFC) 2020-12-31 17:12:37 +09:00
vshift-lshr-cost.ll [CostModel][X86] Improve extract/insert element costs (PR43605) 2020-02-27 15:54:13 +00:00
vshift-shl-cost-inseltpoison.ll Update inselt tests at llvm/test/Analysis to have poison as shufflevector's placeholder (NFC) 2020-12-31 17:12:37 +09:00
vshift-shl-cost.ll [CostModel][X86] Improve extract/insert element costs (PR43605) 2020-02-27 15:54:13 +00:00