mirror of
https://github.com/RPCS3/llvm-mirror.git
synced 2024-10-24 13:33:37 +02:00
[CostModel][AVX512BW] Add v32i16 vector shift costs for avx512bw targets.
llvm-svn: 291354
This commit is contained in:
parent
bc52fde00e
commit
5eef6afa17
@ -219,6 +219,10 @@ int X86TTIImpl::getArithmeticInstrCost(
|
||||
return LT.first * Entry->Cost;
|
||||
|
||||
static const CostTblEntry AVX512BWCostTable[] = {
|
||||
{ ISD::SHL, MVT::v32i16, 1 }, // vpsllvw
|
||||
{ ISD::SRL, MVT::v32i16, 1 }, // vpsrlvw
|
||||
{ ISD::SRA, MVT::v32i16, 1 }, // vpsravw
|
||||
|
||||
{ ISD::MUL, MVT::v64i8, 11 }, // extend/pmullw/trunc sequence.
|
||||
{ ISD::MUL, MVT::v32i8, 4 }, // extend/pmullw/trunc sequence.
|
||||
{ ISD::MUL, MVT::v16i8, 4 }, // extend/pmullw/trunc sequence.
|
||||
|
@ -120,7 +120,7 @@ define <32 x i16> @var_shift_v32i16(<32 x i16> %a, <32 x i16> %b) {
|
||||
; AVX: Found an estimated cost of 56 for instruction: %shift
|
||||
; AVX2: Found an estimated cost of 20 for instruction: %shift
|
||||
; AVX512F: Found an estimated cost of 20 for instruction: %shift
|
||||
; AVX512BW: Found an estimated cost of 2 for instruction: %shift
|
||||
; AVX512BW: Found an estimated cost of 1 for instruction: %shift
|
||||
; XOP: Found an estimated cost of 8 for instruction: %shift
|
||||
%shift = ashr <32 x i16> %a, %b
|
||||
ret <32 x i16> %shift
|
||||
@ -282,7 +282,7 @@ define <32 x i16> @splatvar_shift_v32i16(<32 x i16> %a, <32 x i16> %b) {
|
||||
; AVX: Found an estimated cost of 56 for instruction: %shift
|
||||
; AVX2: Found an estimated cost of 20 for instruction: %shift
|
||||
; AVX512F: Found an estimated cost of 20 for instruction: %shift
|
||||
; AVX512BW: Found an estimated cost of 2 for instruction: %shift
|
||||
; AVX512BW: Found an estimated cost of 1 for instruction: %shift
|
||||
; XOP: Found an estimated cost of 8 for instruction: %shift
|
||||
%splat = shufflevector <32 x i16> %b, <32 x i16> undef, <32 x i32> zeroinitializer
|
||||
%shift = ashr <32 x i16> %a, %splat
|
||||
@ -439,7 +439,7 @@ define <32 x i16> @constant_shift_v32i16(<32 x i16> %a) {
|
||||
; AVX: Found an estimated cost of 56 for instruction: %shift
|
||||
; AVX2: Found an estimated cost of 20 for instruction: %shift
|
||||
; AVX512F: Found an estimated cost of 20 for instruction: %shift
|
||||
; AVX512BW: Found an estimated cost of 2 for instruction: %shift
|
||||
; AVX512BW: Found an estimated cost of 1 for instruction: %shift
|
||||
; XOP: Found an estimated cost of 8 for instruction: %shift
|
||||
%shift = ashr <32 x i16> %a, <i16 0, i16 1, i16 2, i16 3, i16 4, i16 5, i16 6, i16 7, i16 0, i16 1, i16 2, i16 3, i16 4, i16 5, i16 6, i16 7, i16 0, i16 1, i16 2, i16 3, i16 4, i16 5, i16 6, i16 7, i16 0, i16 1, i16 2, i16 3, i16 4, i16 5, i16 6, i16 7>
|
||||
ret <32 x i16> %shift
|
||||
@ -592,7 +592,7 @@ define <32 x i16> @splatconstant_shift_v32i16(<32 x i16> %a) {
|
||||
; AVX: Found an estimated cost of 4 for instruction: %shift
|
||||
; AVX2: Found an estimated cost of 20 for instruction: %shift
|
||||
; AVX512F: Found an estimated cost of 20 for instruction: %shift
|
||||
; AVX512BW: Found an estimated cost of 2 for instruction: %shift
|
||||
; AVX512BW: Found an estimated cost of 1 for instruction: %shift
|
||||
; XOP: Found an estimated cost of 8 for instruction: %shift
|
||||
%shift = ashr <32 x i16> %a, <i16 3, i16 3, i16 3, i16 3, i16 3, i16 3, i16 3, i16 3, i16 3, i16 3, i16 3, i16 3, i16 3, i16 3, i16 3, i16 3, i16 3, i16 3, i16 3, i16 3, i16 3, i16 3, i16 3, i16 3, i16 3, i16 3, i16 3, i16 3, i16 3, i16 3, i16 3, i16 3>
|
||||
ret <32 x i16> %shift
|
||||
|
@ -123,7 +123,7 @@ define <32 x i16> @var_shift_v32i16(<32 x i16> %a, <32 x i16> %b) {
|
||||
; AVX: Found an estimated cost of 56 for instruction: %shift
|
||||
; AVX2: Found an estimated cost of 20 for instruction: %shift
|
||||
; AVX512F: Found an estimated cost of 20 for instruction: %shift
|
||||
; AVX512BW: Found an estimated cost of 2 for instruction: %shift
|
||||
; AVX512BW: Found an estimated cost of 1 for instruction: %shift
|
||||
; XOP: Found an estimated cost of 8 for instruction: %shift
|
||||
%shift = lshr <32 x i16> %a, %b
|
||||
ret <32 x i16> %shift
|
||||
@ -287,7 +287,7 @@ define <32 x i16> @splatvar_shift_v32i16(<32 x i16> %a, <32 x i16> %b) {
|
||||
; AVX: Found an estimated cost of 56 for instruction: %shift
|
||||
; AVX2: Found an estimated cost of 20 for instruction: %shift
|
||||
; AVX512F: Found an estimated cost of 20 for instruction: %shift
|
||||
; AVX512BW: Found an estimated cost of 2 for instruction: %shift
|
||||
; AVX512BW: Found an estimated cost of 1 for instruction: %shift
|
||||
; XOP: Found an estimated cost of 8 for instruction: %shift
|
||||
%splat = shufflevector <32 x i16> %b, <32 x i16> undef, <32 x i32> zeroinitializer
|
||||
%shift = lshr <32 x i16> %a, %splat
|
||||
@ -447,7 +447,7 @@ define <32 x i16> @constant_shift_v32i16(<32 x i16> %a) {
|
||||
; AVX: Found an estimated cost of 56 for instruction: %shift
|
||||
; AVX2: Found an estimated cost of 20 for instruction: %shift
|
||||
; AVX512F: Found an estimated cost of 20 for instruction: %shift
|
||||
; AVX512BW: Found an estimated cost of 2 for instruction: %shift
|
||||
; AVX512BW: Found an estimated cost of 1 for instruction: %shift
|
||||
; XOP: Found an estimated cost of 8 for instruction: %shift
|
||||
%shift = lshr <32 x i16> %a, <i16 0, i16 1, i16 2, i16 3, i16 4, i16 5, i16 6, i16 7, i16 0, i16 1, i16 2, i16 3, i16 4, i16 5, i16 6, i16 7, i16 0, i16 1, i16 2, i16 3, i16 4, i16 5, i16 6, i16 7, i16 0, i16 1, i16 2, i16 3, i16 4, i16 5, i16 6, i16 7>
|
||||
ret <32 x i16> %shift
|
||||
@ -603,7 +603,7 @@ define <32 x i16> @splatconstant_shift_v32i16(<32 x i16> %a) {
|
||||
; AVX: Found an estimated cost of 4 for instruction: %shift
|
||||
; AVX2: Found an estimated cost of 20 for instruction: %shift
|
||||
; AVX512F: Found an estimated cost of 20 for instruction: %shift
|
||||
; AVX512BW: Found an estimated cost of 2 for instruction: %shift
|
||||
; AVX512BW: Found an estimated cost of 1 for instruction: %shift
|
||||
; XOP: Found an estimated cost of 8 for instruction: %shift
|
||||
%shift = lshr <32 x i16> %a, <i16 3, i16 3, i16 3, i16 3, i16 3, i16 3, i16 3, i16 3, i16 3, i16 3, i16 3, i16 3, i16 3, i16 3, i16 3, i16 3, i16 3, i16 3, i16 3, i16 3, i16 3, i16 3, i16 3, i16 3, i16 3, i16 3, i16 3, i16 3, i16 3, i16 3, i16 3, i16 3>
|
||||
ret <32 x i16> %shift
|
||||
|
@ -124,7 +124,7 @@ define <32 x i16> @var_shift_v32i16(<32 x i16> %a, <32 x i16> %b) {
|
||||
; AVX: Found an estimated cost of 56 for instruction: %shift
|
||||
; AVX2: Found an estimated cost of 20 for instruction: %shift
|
||||
; AVX512F: Found an estimated cost of 20 for instruction: %shift
|
||||
; AVX512BW: Found an estimated cost of 2 for instruction: %shift
|
||||
; AVX512BW: Found an estimated cost of 1 for instruction: %shift
|
||||
; XOP: Found an estimated cost of 4 for instruction: %shift
|
||||
%shift = shl <32 x i16> %a, %b
|
||||
ret <32 x i16> %shift
|
||||
@ -288,7 +288,7 @@ define <32 x i16> @splatvar_shift_v32i16(<32 x i16> %a, <32 x i16> %b) {
|
||||
; AVX: Found an estimated cost of 56 for instruction: %shift
|
||||
; AVX2: Found an estimated cost of 20 for instruction: %shift
|
||||
; AVX512F: Found an estimated cost of 20 for instruction: %shift
|
||||
; AVX512BW: Found an estimated cost of 2 for instruction: %shift
|
||||
; AVX512BW: Found an estimated cost of 1 for instruction: %shift
|
||||
; XOP: Found an estimated cost of 4 for instruction: %shift
|
||||
%splat = shufflevector <32 x i16> %b, <32 x i16> undef, <32 x i32> zeroinitializer
|
||||
%shift = shl <32 x i16> %a, %splat
|
||||
@ -449,7 +449,7 @@ define <32 x i16> @constant_shift_v32i16(<32 x i16> %a) {
|
||||
; AVX: Found an estimated cost of 8 for instruction: %shift
|
||||
; AVX2: Found an estimated cost of 2 for instruction: %shift
|
||||
; AVX512F: Found an estimated cost of 2 for instruction: %shift
|
||||
; AVX512BW: Found an estimated cost of 2 for instruction: %shift
|
||||
; AVX512BW: Found an estimated cost of 1 for instruction: %shift
|
||||
; XOPAVX: Found an estimated cost of 4 for instruction: %shift
|
||||
; XOPAVX2: Found an estimated cost of 2 for instruction: %shift
|
||||
%shift = shl <32 x i16> %a, <i16 0, i16 1, i16 2, i16 3, i16 4, i16 5, i16 6, i16 7, i16 0, i16 1, i16 2, i16 3, i16 4, i16 5, i16 6, i16 7, i16 0, i16 1, i16 2, i16 3, i16 4, i16 5, i16 6, i16 7, i16 0, i16 1, i16 2, i16 3, i16 4, i16 5, i16 6, i16 7>
|
||||
@ -607,7 +607,7 @@ define <32 x i16> @splatconstant_shift_v32i16(<32 x i16> %a) {
|
||||
; AVX: Found an estimated cost of 4 for instruction: %shift
|
||||
; AVX2: Found an estimated cost of 2 for instruction: %shift
|
||||
; AVX512F: Found an estimated cost of 2 for instruction: %shift
|
||||
; AVX512BW: Found an estimated cost of 2 for instruction: %shift
|
||||
; AVX512BW: Found an estimated cost of 1 for instruction: %shift
|
||||
; XOPAVX: Found an estimated cost of 4 for instruction: %shift
|
||||
; XOPAVX2: Found an estimated cost of 2 for instruction: %shift
|
||||
%shift = shl <32 x i16> %a, <i16 3, i16 3, i16 3, i16 3, i16 3, i16 3, i16 3, i16 3, i16 3, i16 3, i16 3, i16 3, i16 3, i16 3, i16 3, i16 3, i16 3, i16 3, i16 3, i16 3, i16 3, i16 3, i16 3, i16 3, i16 3, i16 3, i16 3, i16 3, i16 3, i16 3, i16 3, i16 3>
|
||||
|
Loading…
Reference in New Issue
Block a user