mirror of
https://github.com/RPCS3/llvm-mirror.git
synced 2024-10-25 05:52:53 +02:00
[CostModel][X86] Drop separate AVX512VL checks - they match existing AVX512 costs
Keep the tests though. llvm-svn: 292076
This commit is contained in:
parent
11e498d0eb
commit
1634b52e50
@ -7,9 +7,9 @@
|
|||||||
; RUN: opt < %s -mtriple=x86_64-unknown-linux-gnu -mattr=+avx512f -cost-model -analyze | FileCheck %s --check-prefix=CHECK --check-prefix=AVX512 --check-prefix=AVX512F
|
; RUN: opt < %s -mtriple=x86_64-unknown-linux-gnu -mattr=+avx512f -cost-model -analyze | FileCheck %s --check-prefix=CHECK --check-prefix=AVX512 --check-prefix=AVX512F
|
||||||
; RUN: opt < %s -mtriple=x86_64-unknown-linux-gnu -mattr=+avx512f,+avx512dq -cost-model -analyze | FileCheck %s --check-prefix=CHECK --check-prefix=AVX512 --check-prefix=AVX512F
|
; RUN: opt < %s -mtriple=x86_64-unknown-linux-gnu -mattr=+avx512f,+avx512dq -cost-model -analyze | FileCheck %s --check-prefix=CHECK --check-prefix=AVX512 --check-prefix=AVX512F
|
||||||
; RUN: opt < %s -mtriple=x86_64-unknown-linux-gnu -mattr=+avx512f,+avx512bw -cost-model -analyze | FileCheck %s --check-prefix=CHECK --check-prefix=AVX512 --check-prefix=AVX512BW
|
; RUN: opt < %s -mtriple=x86_64-unknown-linux-gnu -mattr=+avx512f,+avx512bw -cost-model -analyze | FileCheck %s --check-prefix=CHECK --check-prefix=AVX512 --check-prefix=AVX512BW
|
||||||
; RUN: opt < %s -mtriple=x86_64-unknown-linux-gnu -mattr=+avx512f,+avx512vl -cost-model -analyze | FileCheck %s --check-prefix=CHECK --check-prefix=AVX512 --check-prefix=AVX512VL
|
; RUN: opt < %s -mtriple=x86_64-unknown-linux-gnu -mattr=+avx512f,+avx512vl -cost-model -analyze | FileCheck %s --check-prefix=CHECK --check-prefix=AVX512 --check-prefix=AVX512F
|
||||||
; RUN: opt < %s -mtriple=x86_64-unknown-linux-gnu -mattr=+avx512f,+avx512dq,+avx512vl -cost-model -analyze | FileCheck %s --check-prefix=CHECK --check-prefix=AVX512 --check-prefix=AVX512VL
|
; RUN: opt < %s -mtriple=x86_64-unknown-linux-gnu -mattr=+avx512f,+avx512dq,+avx512vl -cost-model -analyze | FileCheck %s --check-prefix=CHECK --check-prefix=AVX512 --check-prefix=AVX512F
|
||||||
; RUN: opt < %s -mtriple=x86_64-unknown-linux-gnu -mattr=+avx512f,+avx512bw,+avx512vl -cost-model -analyze | FileCheck %s --check-prefix=CHECK --check-prefix=AVX512 --check-prefix=AVX512BWVL
|
; RUN: opt < %s -mtriple=x86_64-unknown-linux-gnu -mattr=+avx512f,+avx512bw,+avx512vl -cost-model -analyze | FileCheck %s --check-prefix=CHECK --check-prefix=AVX512 --check-prefix=AVX512BW
|
||||||
|
|
||||||
; Verify the cost of vector arithmetic shift right instructions.
|
; Verify the cost of vector arithmetic shift right instructions.
|
||||||
|
|
||||||
@ -124,8 +124,6 @@ define <32 x i16> @var_shift_v32i16(<32 x i16> %a, <32 x i16> %b) {
|
|||||||
; AVX2: Found an estimated cost of 20 for instruction: %shift
|
; AVX2: Found an estimated cost of 20 for instruction: %shift
|
||||||
; AVX512F: 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 1 for instruction: %shift
|
; AVX512BW: Found an estimated cost of 1 for instruction: %shift
|
||||||
; AVX512VL: Found an estimated cost of 20 for instruction: %shift
|
|
||||||
; AVX512BWVL: Found an estimated cost of 1 for instruction: %shift
|
|
||||||
; XOP: Found an estimated cost of 8 for instruction: %shift
|
; XOP: Found an estimated cost of 8 for instruction: %shift
|
||||||
%shift = ashr <32 x i16> %a, %b
|
%shift = ashr <32 x i16> %a, %b
|
||||||
ret <32 x i16> %shift
|
ret <32 x i16> %shift
|
||||||
@ -151,8 +149,6 @@ define <32 x i8> @var_shift_v32i8(<32 x i8> %a, <32 x i8> %b) {
|
|||||||
; AVX2: Found an estimated cost of 24 for instruction: %shift
|
; AVX2: Found an estimated cost of 24 for instruction: %shift
|
||||||
; AVX512F: Found an estimated cost of 24 for instruction: %shift
|
; AVX512F: Found an estimated cost of 24 for instruction: %shift
|
||||||
; AVX512BW: Found an estimated cost of 24 for instruction: %shift
|
; AVX512BW: Found an estimated cost of 24 for instruction: %shift
|
||||||
; AVX512VL: Found an estimated cost of 24 for instruction: %shift
|
|
||||||
; AVX512BWVL: Found an estimated cost of 24 for instruction: %shift
|
|
||||||
; XOP: Found an estimated cost of 4 for instruction: %shift
|
; XOP: Found an estimated cost of 4 for instruction: %shift
|
||||||
%shift = ashr <32 x i8> %a, %b
|
%shift = ashr <32 x i8> %a, %b
|
||||||
ret <32 x i8> %shift
|
ret <32 x i8> %shift
|
||||||
@ -166,8 +162,6 @@ define <64 x i8> @var_shift_v64i8(<64 x i8> %a, <64 x i8> %b) {
|
|||||||
; AVX2: Found an estimated cost of 48 for instruction: %shift
|
; AVX2: Found an estimated cost of 48 for instruction: %shift
|
||||||
; AVX512F: Found an estimated cost of 48 for instruction: %shift
|
; AVX512F: Found an estimated cost of 48 for instruction: %shift
|
||||||
; AVX512BW: Found an estimated cost of 24 for instruction: %shift
|
; AVX512BW: Found an estimated cost of 24 for instruction: %shift
|
||||||
; AVX512VL: Found an estimated cost of 48 for instruction: %shift
|
|
||||||
; AVX512BWVL: Found an estimated cost of 24 for instruction: %shift
|
|
||||||
; XOP: Found an estimated cost of 8 for instruction: %shift
|
; XOP: Found an estimated cost of 8 for instruction: %shift
|
||||||
%shift = ashr <64 x i8> %a, %b
|
%shift = ashr <64 x i8> %a, %b
|
||||||
ret <64 x i8> %shift
|
ret <64 x i8> %shift
|
||||||
@ -346,8 +340,6 @@ define <64 x i8> @splatvar_shift_v64i8(<64 x i8> %a, i8 %b) {
|
|||||||
; AVX2: Found an estimated cost of 48 for instruction: %shift
|
; AVX2: Found an estimated cost of 48 for instruction: %shift
|
||||||
; AVX512F: Found an estimated cost of 48 for instruction: %shift
|
; AVX512F: Found an estimated cost of 48 for instruction: %shift
|
||||||
; AVX512BW: Found an estimated cost of 24 for instruction: %shift
|
; AVX512BW: Found an estimated cost of 24 for instruction: %shift
|
||||||
; AVX512VL: Found an estimated cost of 48 for instruction: %shift
|
|
||||||
; AVX512BWVL: Found an estimated cost of 24 for instruction: %shift
|
|
||||||
; XOP: Found an estimated cost of 8 for instruction: %shift
|
; XOP: Found an estimated cost of 8 for instruction: %shift
|
||||||
%insert = insertelement <64 x i8> undef, i8 %b, i32 0
|
%insert = insertelement <64 x i8> undef, i8 %b, i32 0
|
||||||
%splat = shufflevector <64 x i8> %insert, <64 x i8> undef, <64 x i32> zeroinitializer
|
%splat = shufflevector <64 x i8> %insert, <64 x i8> undef, <64 x i32> zeroinitializer
|
||||||
@ -466,8 +458,6 @@ define <32 x i16> @constant_shift_v32i16(<32 x i16> %a) {
|
|||||||
; AVX2: Found an estimated cost of 20 for instruction: %shift
|
; AVX2: Found an estimated cost of 20 for instruction: %shift
|
||||||
; AVX512F: 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 1 for instruction: %shift
|
; AVX512BW: Found an estimated cost of 1 for instruction: %shift
|
||||||
; AVX512VL: Found an estimated cost of 20 for instruction: %shift
|
|
||||||
; AVX512BWVL: Found an estimated cost of 1 for instruction: %shift
|
|
||||||
; XOP: Found an estimated cost of 8 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>
|
%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
|
ret <32 x i16> %shift
|
||||||
@ -505,8 +495,6 @@ define <64 x i8> @constant_shift_v64i8(<64 x i8> %a) {
|
|||||||
; AVX2: Found an estimated cost of 48 for instruction: %shift
|
; AVX2: Found an estimated cost of 48 for instruction: %shift
|
||||||
; AVX512F: Found an estimated cost of 48 for instruction: %shift
|
; AVX512F: Found an estimated cost of 48 for instruction: %shift
|
||||||
; AVX512BW: Found an estimated cost of 24 for instruction: %shift
|
; AVX512BW: Found an estimated cost of 24 for instruction: %shift
|
||||||
; AVX512VL: Found an estimated cost of 48 for instruction: %shift
|
|
||||||
; AVX512BWVL: Found an estimated cost of 24 for instruction: %shift
|
|
||||||
; XOP: Found an estimated cost of 8 for instruction: %shift
|
; XOP: Found an estimated cost of 8 for instruction: %shift
|
||||||
%shift = ashr <64 x i8> %a, <i8 0, i8 1, i8 2, i8 3, i8 4, i8 5, i8 6, i8 7, i8 7, i8 6, i8 5, i8 4, i8 3, i8 2, i8 1, i8 0, i8 0, i8 1, i8 2, i8 3, i8 4, i8 5, i8 6, i8 7, i8 7, i8 6, i8 5, i8 4, i8 3, i8 2, i8 1, i8 0, i8 0, i8 1, i8 2, i8 3, i8 4, i8 5, i8 6, i8 7, i8 7, i8 6, i8 5, i8 4, i8 3, i8 2, i8 1, i8 0, i8 0, i8 1, i8 2, i8 3, i8 4, i8 5, i8 6, i8 7, i8 7, i8 6, i8 5, i8 4, i8 3, i8 2, i8 1, i8 0>
|
%shift = ashr <64 x i8> %a, <i8 0, i8 1, i8 2, i8 3, i8 4, i8 5, i8 6, i8 7, i8 7, i8 6, i8 5, i8 4, i8 3, i8 2, i8 1, i8 0, i8 0, i8 1, i8 2, i8 3, i8 4, i8 5, i8 6, i8 7, i8 7, i8 6, i8 5, i8 4, i8 3, i8 2, i8 1, i8 0, i8 0, i8 1, i8 2, i8 3, i8 4, i8 5, i8 6, i8 7, i8 7, i8 6, i8 5, i8 4, i8 3, i8 2, i8 1, i8 0, i8 0, i8 1, i8 2, i8 3, i8 4, i8 5, i8 6, i8 7, i8 7, i8 6, i8 5, i8 4, i8 3, i8 2, i8 1, i8 0>
|
||||||
ret <64 x i8> %shift
|
ret <64 x i8> %shift
|
||||||
@ -623,8 +611,6 @@ define <32 x i16> @splatconstant_shift_v32i16(<32 x i16> %a) {
|
|||||||
; AVX2: Found an estimated cost of 2 for instruction: %shift
|
; AVX2: Found an estimated cost of 2 for instruction: %shift
|
||||||
; AVX512F: 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 1 for instruction: %shift
|
; AVX512BW: Found an estimated cost of 1 for instruction: %shift
|
||||||
; AVX512VL: Found an estimated cost of 2 for instruction: %shift
|
|
||||||
; AVX512BWVL: Found an estimated cost of 1 for instruction: %shift
|
|
||||||
; XOPAVX: Found an estimated cost of 8 for instruction: %shift
|
; XOPAVX: Found an estimated cost of 8 for instruction: %shift
|
||||||
; XOPAVX2: Found an estimated cost of 2 for instruction: %shift
|
; XOPAVX2: Found an estimated cost of 2 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>
|
%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>
|
||||||
@ -664,8 +650,6 @@ define <64 x i8> @splatconstant_shift_v64i8(<64 x i8> %a) {
|
|||||||
; AVX2: Found an estimated cost of 8 for instruction: %shift
|
; AVX2: Found an estimated cost of 8 for instruction: %shift
|
||||||
; AVX512F: Found an estimated cost of 8 for instruction: %shift
|
; AVX512F: Found an estimated cost of 8 for instruction: %shift
|
||||||
; AVX512BW: Found an estimated cost of 4 for instruction: %shift
|
; AVX512BW: Found an estimated cost of 4 for instruction: %shift
|
||||||
; AVX512VL: Found an estimated cost of 8 for instruction: %shift
|
|
||||||
; AVX512BWVL: Found an estimated cost of 4 for instruction: %shift
|
|
||||||
; XOPAVX: Found an estimated cost of 16 for instruction: %shift
|
; XOPAVX: Found an estimated cost of 16 for instruction: %shift
|
||||||
; XOPAVX2: Found an estimated cost of 8 for instruction: %shift
|
; XOPAVX2: Found an estimated cost of 8 for instruction: %shift
|
||||||
%shift = ashr <64 x i8> %a, <i8 3, i8 3, i8 3, i8 3, i8 3, i8 3, i8 3, i8 3, i8 3, i8 3, i8 3, i8 3, i8 3, i8 3, i8 3, i8 3, i8 3, i8 3, i8 3, i8 3, i8 3, i8 3, i8 3, i8 3, i8 3, i8 3, i8 3, i8 3, i8 3, i8 3, i8 3, i8 3, i8 3, i8 3, i8 3, i8 3, i8 3, i8 3, i8 3, i8 3, i8 3, i8 3, i8 3, i8 3, i8 3, i8 3, i8 3, i8 3, i8 3, i8 3, i8 3, i8 3, i8 3, i8 3, i8 3, i8 3, i8 3, i8 3, i8 3, i8 3, i8 3, i8 3, i8 3, i8 3>
|
%shift = ashr <64 x i8> %a, <i8 3, i8 3, i8 3, i8 3, i8 3, i8 3, i8 3, i8 3, i8 3, i8 3, i8 3, i8 3, i8 3, i8 3, i8 3, i8 3, i8 3, i8 3, i8 3, i8 3, i8 3, i8 3, i8 3, i8 3, i8 3, i8 3, i8 3, i8 3, i8 3, i8 3, i8 3, i8 3, i8 3, i8 3, i8 3, i8 3, i8 3, i8 3, i8 3, i8 3, i8 3, i8 3, i8 3, i8 3, i8 3, i8 3, i8 3, i8 3, i8 3, i8 3, i8 3, i8 3, i8 3, i8 3, i8 3, i8 3, i8 3, i8 3, i8 3, i8 3, i8 3, i8 3, i8 3, i8 3>
|
||||||
|
@ -7,9 +7,9 @@
|
|||||||
; RUN: opt < %s -mtriple=x86_64-unknown-linux-gnu -mattr=+avx512f -cost-model -analyze | FileCheck %s --check-prefix=CHECK --check-prefix=AVX512 --check-prefix=AVX512F
|
; RUN: opt < %s -mtriple=x86_64-unknown-linux-gnu -mattr=+avx512f -cost-model -analyze | FileCheck %s --check-prefix=CHECK --check-prefix=AVX512 --check-prefix=AVX512F
|
||||||
; RUN: opt < %s -mtriple=x86_64-unknown-linux-gnu -mattr=+avx512f,+avx512dq -cost-model -analyze | FileCheck %s --check-prefix=CHECK --check-prefix=AVX512 --check-prefix=AVX512F
|
; RUN: opt < %s -mtriple=x86_64-unknown-linux-gnu -mattr=+avx512f,+avx512dq -cost-model -analyze | FileCheck %s --check-prefix=CHECK --check-prefix=AVX512 --check-prefix=AVX512F
|
||||||
; RUN: opt < %s -mtriple=x86_64-unknown-linux-gnu -mattr=+avx512f,+avx512bw -cost-model -analyze | FileCheck %s --check-prefix=CHECK --check-prefix=AVX512 --check-prefix=AVX512BW
|
; RUN: opt < %s -mtriple=x86_64-unknown-linux-gnu -mattr=+avx512f,+avx512bw -cost-model -analyze | FileCheck %s --check-prefix=CHECK --check-prefix=AVX512 --check-prefix=AVX512BW
|
||||||
; RUN: opt < %s -mtriple=x86_64-unknown-linux-gnu -mattr=+avx512f,+avx512vl -cost-model -analyze | FileCheck %s --check-prefix=CHECK --check-prefix=AVX512 --check-prefix=AVX512VL
|
; RUN: opt < %s -mtriple=x86_64-unknown-linux-gnu -mattr=+avx512f,+avx512vl -cost-model -analyze | FileCheck %s --check-prefix=CHECK --check-prefix=AVX512 --check-prefix=AVX512F
|
||||||
; RUN: opt < %s -mtriple=x86_64-unknown-linux-gnu -mattr=+avx512f,+avx512dq,+avx512vl -cost-model -analyze | FileCheck %s --check-prefix=CHECK --check-prefix=AVX512 --check-prefix=AVX512VL
|
; RUN: opt < %s -mtriple=x86_64-unknown-linux-gnu -mattr=+avx512f,+avx512dq,+avx512vl -cost-model -analyze | FileCheck %s --check-prefix=CHECK --check-prefix=AVX512 --check-prefix=AVX512F
|
||||||
; RUN: opt < %s -mtriple=x86_64-unknown-linux-gnu -mattr=+avx512f,+avx512bw,+avx512vl -cost-model -analyze | FileCheck %s --check-prefix=CHECK --check-prefix=AVX512 --check-prefix=AVX512BWVL
|
; RUN: opt < %s -mtriple=x86_64-unknown-linux-gnu -mattr=+avx512f,+avx512bw,+avx512vl -cost-model -analyze | FileCheck %s --check-prefix=CHECK --check-prefix=AVX512 --check-prefix=AVX512BW
|
||||||
|
|
||||||
; Verify the cost of vector logical shift right instructions.
|
; Verify the cost of vector logical shift right instructions.
|
||||||
|
|
||||||
@ -127,8 +127,6 @@ define <32 x i16> @var_shift_v32i16(<32 x i16> %a, <32 x i16> %b) {
|
|||||||
; AVX2: Found an estimated cost of 20 for instruction: %shift
|
; AVX2: Found an estimated cost of 20 for instruction: %shift
|
||||||
; AVX512F: 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 1 for instruction: %shift
|
; AVX512BW: Found an estimated cost of 1 for instruction: %shift
|
||||||
; AVX512VL: Found an estimated cost of 20 for instruction: %shift
|
|
||||||
; AVX512BWVL: Found an estimated cost of 1 for instruction: %shift
|
|
||||||
; XOP: Found an estimated cost of 8 for instruction: %shift
|
; XOP: Found an estimated cost of 8 for instruction: %shift
|
||||||
%shift = lshr <32 x i16> %a, %b
|
%shift = lshr <32 x i16> %a, %b
|
||||||
ret <32 x i16> %shift
|
ret <32 x i16> %shift
|
||||||
@ -166,8 +164,6 @@ define <64 x i8> @var_shift_v64i8(<64 x i8> %a, <64 x i8> %b) {
|
|||||||
; AVX2: Found an estimated cost of 22 for instruction: %shift
|
; AVX2: Found an estimated cost of 22 for instruction: %shift
|
||||||
; AVX512F: Found an estimated cost of 22 for instruction: %shift
|
; AVX512F: Found an estimated cost of 22 for instruction: %shift
|
||||||
; AVX512BW: Found an estimated cost of 11 for instruction: %shift
|
; AVX512BW: Found an estimated cost of 11 for instruction: %shift
|
||||||
; AVX512VL: Found an estimated cost of 22 for instruction: %shift
|
|
||||||
; AVX512BWVL: Found an estimated cost of 11 for instruction: %shift
|
|
||||||
; XOP: Found an estimated cost of 8 for instruction: %shift
|
; XOP: Found an estimated cost of 8 for instruction: %shift
|
||||||
%shift = lshr <64 x i8> %a, %b
|
%shift = lshr <64 x i8> %a, %b
|
||||||
ret <64 x i8> %shift
|
ret <64 x i8> %shift
|
||||||
@ -346,8 +342,6 @@ define <64 x i8> @splatvar_shift_v64i8(<64 x i8> %a, i8 %b) {
|
|||||||
; AVX2: Found an estimated cost of 22 for instruction: %shift
|
; AVX2: Found an estimated cost of 22 for instruction: %shift
|
||||||
; AVX512F: Found an estimated cost of 22 for instruction: %shift
|
; AVX512F: Found an estimated cost of 22 for instruction: %shift
|
||||||
; AVX512BW: Found an estimated cost of 11 for instruction: %shift
|
; AVX512BW: Found an estimated cost of 11 for instruction: %shift
|
||||||
; AVX512VL: Found an estimated cost of 22 for instruction: %shift
|
|
||||||
; AVX512BWVL: Found an estimated cost of 11 for instruction: %shift
|
|
||||||
; XOP: Found an estimated cost of 8 for instruction: %shift
|
; XOP: Found an estimated cost of 8 for instruction: %shift
|
||||||
%insert = insertelement <64 x i8> undef, i8 %b, i32 0
|
%insert = insertelement <64 x i8> undef, i8 %b, i32 0
|
||||||
%splat = shufflevector <64 x i8> %insert, <64 x i8> undef, <64 x i32> zeroinitializer
|
%splat = shufflevector <64 x i8> %insert, <64 x i8> undef, <64 x i32> zeroinitializer
|
||||||
@ -469,8 +463,6 @@ define <32 x i16> @constant_shift_v32i16(<32 x i16> %a) {
|
|||||||
; AVX2: Found an estimated cost of 20 for instruction: %shift
|
; AVX2: Found an estimated cost of 20 for instruction: %shift
|
||||||
; AVX512F: 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 1 for instruction: %shift
|
; AVX512BW: Found an estimated cost of 1 for instruction: %shift
|
||||||
; AVX512VL: Found an estimated cost of 20 for instruction: %shift
|
|
||||||
; AVX512BWVL: Found an estimated cost of 1 for instruction: %shift
|
|
||||||
; XOP: Found an estimated cost of 8 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>
|
%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
|
ret <32 x i16> %shift
|
||||||
@ -508,8 +500,6 @@ define <64 x i8> @constant_shift_v64i8(<64 x i8> %a) {
|
|||||||
; AVX2: Found an estimated cost of 22 for instruction: %shift
|
; AVX2: Found an estimated cost of 22 for instruction: %shift
|
||||||
; AVX512F: Found an estimated cost of 22 for instruction: %shift
|
; AVX512F: Found an estimated cost of 22 for instruction: %shift
|
||||||
; AVX512BW: Found an estimated cost of 11 for instruction: %shift
|
; AVX512BW: Found an estimated cost of 11 for instruction: %shift
|
||||||
; AVX512VL: Found an estimated cost of 22 for instruction: %shift
|
|
||||||
; AVX512BWVL: Found an estimated cost of 11 for instruction: %shift
|
|
||||||
; XOP: Found an estimated cost of 8 for instruction: %shift
|
; XOP: Found an estimated cost of 8 for instruction: %shift
|
||||||
%shift = lshr <64 x i8> %a, <i8 0, i8 1, i8 2, i8 3, i8 4, i8 5, i8 6, i8 7, i8 7, i8 6, i8 5, i8 4, i8 3, i8 2, i8 1, i8 0, i8 0, i8 1, i8 2, i8 3, i8 4, i8 5, i8 6, i8 7, i8 7, i8 6, i8 5, i8 4, i8 3, i8 2, i8 1, i8 0, i8 0, i8 1, i8 2, i8 3, i8 4, i8 5, i8 6, i8 7, i8 7, i8 6, i8 5, i8 4, i8 3, i8 2, i8 1, i8 0, i8 0, i8 1, i8 2, i8 3, i8 4, i8 5, i8 6, i8 7, i8 7, i8 6, i8 5, i8 4, i8 3, i8 2, i8 1, i8 0>
|
%shift = lshr <64 x i8> %a, <i8 0, i8 1, i8 2, i8 3, i8 4, i8 5, i8 6, i8 7, i8 7, i8 6, i8 5, i8 4, i8 3, i8 2, i8 1, i8 0, i8 0, i8 1, i8 2, i8 3, i8 4, i8 5, i8 6, i8 7, i8 7, i8 6, i8 5, i8 4, i8 3, i8 2, i8 1, i8 0, i8 0, i8 1, i8 2, i8 3, i8 4, i8 5, i8 6, i8 7, i8 7, i8 6, i8 5, i8 4, i8 3, i8 2, i8 1, i8 0, i8 0, i8 1, i8 2, i8 3, i8 4, i8 5, i8 6, i8 7, i8 7, i8 6, i8 5, i8 4, i8 3, i8 2, i8 1, i8 0>
|
||||||
ret <64 x i8> %shift
|
ret <64 x i8> %shift
|
||||||
@ -628,8 +618,6 @@ define <32 x i16> @splatconstant_shift_v32i16(<32 x i16> %a) {
|
|||||||
; AVX2: Found an estimated cost of 2 for instruction: %shift
|
; AVX2: Found an estimated cost of 2 for instruction: %shift
|
||||||
; AVX512F: 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 1 for instruction: %shift
|
; AVX512BW: Found an estimated cost of 1 for instruction: %shift
|
||||||
; AVX512VL: Found an estimated cost of 2 for instruction: %shift
|
|
||||||
; AVX512BWVL: Found an estimated cost of 1 for instruction: %shift
|
|
||||||
; XOPAVX: Found an estimated cost of 8 for instruction: %shift
|
; XOPAVX: Found an estimated cost of 8 for instruction: %shift
|
||||||
; XOPAVX2: Found an estimated cost of 2 for instruction: %shift
|
; XOPAVX2: Found an estimated cost of 2 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>
|
%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>
|
||||||
@ -669,8 +657,6 @@ define <64 x i8> @splatconstant_shift_v64i8(<64 x i8> %a) {
|
|||||||
; AVX2: Found an estimated cost of 4 for instruction: %shift
|
; AVX2: Found an estimated cost of 4 for instruction: %shift
|
||||||
; AVX512F: Found an estimated cost of 4 for instruction: %shift
|
; AVX512F: Found an estimated cost of 4 for instruction: %shift
|
||||||
; AVX512BW: Found an estimated cost of 2 for instruction: %shift
|
; AVX512BW: Found an estimated cost of 2 for instruction: %shift
|
||||||
; AVX512VL: Found an estimated cost of 4 for instruction: %shift
|
|
||||||
; AVX512BWVL: Found an estimated cost of 2 for instruction: %shift
|
|
||||||
; XOPAVX: Found an estimated cost of 8 for instruction: %shift
|
; XOPAVX: Found an estimated cost of 8 for instruction: %shift
|
||||||
; XOPAVX2: Found an estimated cost of 4 for instruction: %shift
|
; XOPAVX2: Found an estimated cost of 4 for instruction: %shift
|
||||||
%shift = lshr <64 x i8> %a, <i8 3, i8 3, i8 3, i8 3, i8 3, i8 3, i8 3, i8 3, i8 3, i8 3, i8 3, i8 3, i8 3, i8 3, i8 3, i8 3, i8 3, i8 3, i8 3, i8 3, i8 3, i8 3, i8 3, i8 3, i8 3, i8 3, i8 3, i8 3, i8 3, i8 3, i8 3, i8 3, i8 3, i8 3, i8 3, i8 3, i8 3, i8 3, i8 3, i8 3, i8 3, i8 3, i8 3, i8 3, i8 3, i8 3, i8 3, i8 3, i8 3, i8 3, i8 3, i8 3, i8 3, i8 3, i8 3, i8 3, i8 3, i8 3, i8 3, i8 3, i8 3, i8 3, i8 3, i8 3>
|
%shift = lshr <64 x i8> %a, <i8 3, i8 3, i8 3, i8 3, i8 3, i8 3, i8 3, i8 3, i8 3, i8 3, i8 3, i8 3, i8 3, i8 3, i8 3, i8 3, i8 3, i8 3, i8 3, i8 3, i8 3, i8 3, i8 3, i8 3, i8 3, i8 3, i8 3, i8 3, i8 3, i8 3, i8 3, i8 3, i8 3, i8 3, i8 3, i8 3, i8 3, i8 3, i8 3, i8 3, i8 3, i8 3, i8 3, i8 3, i8 3, i8 3, i8 3, i8 3, i8 3, i8 3, i8 3, i8 3, i8 3, i8 3, i8 3, i8 3, i8 3, i8 3, i8 3, i8 3, i8 3, i8 3, i8 3, i8 3>
|
||||||
|
@ -7,9 +7,9 @@
|
|||||||
; RUN: opt < %s -mtriple=x86_64-unknown-linux-gnu -mattr=+avx512f -cost-model -analyze | FileCheck %s --check-prefix=CHECK --check-prefix=AVX512 --check-prefix=AVX512F
|
; RUN: opt < %s -mtriple=x86_64-unknown-linux-gnu -mattr=+avx512f -cost-model -analyze | FileCheck %s --check-prefix=CHECK --check-prefix=AVX512 --check-prefix=AVX512F
|
||||||
; RUN: opt < %s -mtriple=x86_64-unknown-linux-gnu -mattr=+avx512f,+avx512dq -cost-model -analyze | FileCheck %s --check-prefix=CHECK --check-prefix=AVX512 --check-prefix=AVX512F
|
; RUN: opt < %s -mtriple=x86_64-unknown-linux-gnu -mattr=+avx512f,+avx512dq -cost-model -analyze | FileCheck %s --check-prefix=CHECK --check-prefix=AVX512 --check-prefix=AVX512F
|
||||||
; RUN: opt < %s -mtriple=x86_64-unknown-linux-gnu -mattr=+avx512f,+avx512bw -cost-model -analyze | FileCheck %s --check-prefix=CHECK --check-prefix=AVX512 --check-prefix=AVX512BW
|
; RUN: opt < %s -mtriple=x86_64-unknown-linux-gnu -mattr=+avx512f,+avx512bw -cost-model -analyze | FileCheck %s --check-prefix=CHECK --check-prefix=AVX512 --check-prefix=AVX512BW
|
||||||
; RUN: opt < %s -mtriple=x86_64-unknown-linux-gnu -mattr=+avx512f,+avx512vl -cost-model -analyze | FileCheck %s --check-prefix=CHECK --check-prefix=AVX512 --check-prefix=AVX512VL
|
; RUN: opt < %s -mtriple=x86_64-unknown-linux-gnu -mattr=+avx512f,+avx512vl -cost-model -analyze | FileCheck %s --check-prefix=CHECK --check-prefix=AVX512 --check-prefix=AVX512F
|
||||||
; RUN: opt < %s -mtriple=x86_64-unknown-linux-gnu -mattr=+avx512f,+avx512dq,+avx512vl -cost-model -analyze | FileCheck %s --check-prefix=CHECK --check-prefix=AVX512 --check-prefix=AVX512VL
|
; RUN: opt < %s -mtriple=x86_64-unknown-linux-gnu -mattr=+avx512f,+avx512dq,+avx512vl -cost-model -analyze | FileCheck %s --check-prefix=CHECK --check-prefix=AVX512 --check-prefix=AVX512F
|
||||||
; RUN: opt < %s -mtriple=x86_64-unknown-linux-gnu -mattr=+avx512f,+avx512bw,+avx512vl -cost-model -analyze | FileCheck %s --check-prefix=CHECK --check-prefix=AVX512 --check-prefix=AVX512BWVL
|
; RUN: opt < %s -mtriple=x86_64-unknown-linux-gnu -mattr=+avx512f,+avx512bw,+avx512vl -cost-model -analyze | FileCheck %s --check-prefix=CHECK --check-prefix=AVX512 --check-prefix=AVX512BW
|
||||||
|
|
||||||
; Verify the cost of vector shift left instructions.
|
; Verify the cost of vector shift left instructions.
|
||||||
|
|
||||||
@ -165,8 +165,6 @@ define <64 x i8> @var_shift_v64i8(<64 x i8> %a, <64 x i8> %b) {
|
|||||||
; AVX2: Found an estimated cost of 22 for instruction: %shift
|
; AVX2: Found an estimated cost of 22 for instruction: %shift
|
||||||
; AVX512F: Found an estimated cost of 22 for instruction: %shift
|
; AVX512F: Found an estimated cost of 22 for instruction: %shift
|
||||||
; AVX512BW: Found an estimated cost of 11 for instruction: %shift
|
; AVX512BW: Found an estimated cost of 11 for instruction: %shift
|
||||||
; AVX512VL: Found an estimated cost of 22 for instruction: %shift
|
|
||||||
; AVX512BWVL: Found an estimated cost of 11 for instruction: %shift
|
|
||||||
; XOP: Found an estimated cost of 4 for instruction: %shift
|
; XOP: Found an estimated cost of 4 for instruction: %shift
|
||||||
%shift = shl <64 x i8> %a, %b
|
%shift = shl <64 x i8> %a, %b
|
||||||
ret <64 x i8> %shift
|
ret <64 x i8> %shift
|
||||||
@ -345,8 +343,6 @@ define <64 x i8> @splatvar_shift_v64i8(<64 x i8> %a, i8 %b) {
|
|||||||
; AVX2: Found an estimated cost of 22 for instruction: %shift
|
; AVX2: Found an estimated cost of 22 for instruction: %shift
|
||||||
; AVX512F: Found an estimated cost of 22 for instruction: %shift
|
; AVX512F: Found an estimated cost of 22 for instruction: %shift
|
||||||
; AVX512BW: Found an estimated cost of 11 for instruction: %shift
|
; AVX512BW: Found an estimated cost of 11 for instruction: %shift
|
||||||
; AVX512VL: Found an estimated cost of 22 for instruction: %shift
|
|
||||||
; AVX512BWVL: Found an estimated cost of 11 for instruction: %shift
|
|
||||||
; XOP: Found an estimated cost of 4 for instruction: %shift
|
; XOP: Found an estimated cost of 4 for instruction: %shift
|
||||||
%insert = insertelement <64 x i8> undef, i8 %b, i32 0
|
%insert = insertelement <64 x i8> undef, i8 %b, i32 0
|
||||||
%splat = shufflevector <64 x i8> %insert, <64 x i8> undef, <64 x i32> zeroinitializer
|
%splat = shufflevector <64 x i8> %insert, <64 x i8> undef, <64 x i32> zeroinitializer
|
||||||
@ -469,8 +465,6 @@ define <32 x i16> @constant_shift_v32i16(<32 x i16> %a) {
|
|||||||
; AVX2: Found an estimated cost of 2 for instruction: %shift
|
; AVX2: Found an estimated cost of 2 for instruction: %shift
|
||||||
; AVX512F: 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 1 for instruction: %shift
|
; AVX512BW: Found an estimated cost of 1 for instruction: %shift
|
||||||
; AVX512VL: Found an estimated cost of 2 for instruction: %shift
|
|
||||||
; AVX512BWVL: Found an estimated cost of 1 for instruction: %shift
|
|
||||||
; XOPAVX: Found an estimated cost of 4 for instruction: %shift
|
; XOPAVX: Found an estimated cost of 4 for instruction: %shift
|
||||||
; XOPAVX2: Found an estimated cost of 2 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>
|
%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>
|
||||||
@ -509,8 +503,6 @@ define <64 x i8> @constant_shift_v64i8(<64 x i8> %a) {
|
|||||||
; AVX2: Found an estimated cost of 22 for instruction: %shift
|
; AVX2: Found an estimated cost of 22 for instruction: %shift
|
||||||
; AVX512F: Found an estimated cost of 22 for instruction: %shift
|
; AVX512F: Found an estimated cost of 22 for instruction: %shift
|
||||||
; AVX512BW: Found an estimated cost of 11 for instruction: %shift
|
; AVX512BW: Found an estimated cost of 11 for instruction: %shift
|
||||||
; AVX512VL: Found an estimated cost of 22 for instruction: %shift
|
|
||||||
; AVX512BWVL: Found an estimated cost of 11 for instruction: %shift
|
|
||||||
; XOP: Found an estimated cost of 4 for instruction: %shift
|
; XOP: Found an estimated cost of 4 for instruction: %shift
|
||||||
%shift = shl <64 x i8> %a, <i8 0, i8 1, i8 2, i8 3, i8 4, i8 5, i8 6, i8 7, i8 7, i8 6, i8 5, i8 4, i8 3, i8 2, i8 1, i8 0, i8 0, i8 1, i8 2, i8 3, i8 4, i8 5, i8 6, i8 7, i8 7, i8 6, i8 5, i8 4, i8 3, i8 2, i8 1, i8 0, i8 0, i8 1, i8 2, i8 3, i8 4, i8 5, i8 6, i8 7, i8 7, i8 6, i8 5, i8 4, i8 3, i8 2, i8 1, i8 0, i8 0, i8 1, i8 2, i8 3, i8 4, i8 5, i8 6, i8 7, i8 7, i8 6, i8 5, i8 4, i8 3, i8 2, i8 1, i8 0>
|
%shift = shl <64 x i8> %a, <i8 0, i8 1, i8 2, i8 3, i8 4, i8 5, i8 6, i8 7, i8 7, i8 6, i8 5, i8 4, i8 3, i8 2, i8 1, i8 0, i8 0, i8 1, i8 2, i8 3, i8 4, i8 5, i8 6, i8 7, i8 7, i8 6, i8 5, i8 4, i8 3, i8 2, i8 1, i8 0, i8 0, i8 1, i8 2, i8 3, i8 4, i8 5, i8 6, i8 7, i8 7, i8 6, i8 5, i8 4, i8 3, i8 2, i8 1, i8 0, i8 0, i8 1, i8 2, i8 3, i8 4, i8 5, i8 6, i8 7, i8 7, i8 6, i8 5, i8 4, i8 3, i8 2, i8 1, i8 0>
|
||||||
ret <64 x i8> %shift
|
ret <64 x i8> %shift
|
||||||
@ -631,8 +623,6 @@ define <32 x i16> @splatconstant_shift_v32i16(<32 x i16> %a) {
|
|||||||
; AVX2: Found an estimated cost of 2 for instruction: %shift
|
; AVX2: Found an estimated cost of 2 for instruction: %shift
|
||||||
; AVX512F: 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 1 for instruction: %shift
|
; AVX512BW: Found an estimated cost of 1 for instruction: %shift
|
||||||
; AVX512VL: Found an estimated cost of 2 for instruction: %shift
|
|
||||||
; AVX512BWVL: Found an estimated cost of 1 for instruction: %shift
|
|
||||||
; XOPAVX: Found an estimated cost of 4 for instruction: %shift
|
; XOPAVX: Found an estimated cost of 4 for instruction: %shift
|
||||||
; XOPAVX2: Found an estimated cost of 2 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>
|
%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>
|
||||||
@ -672,8 +662,6 @@ define <64 x i8> @splatconstant_shift_v64i8(<64 x i8> %a) {
|
|||||||
; AVX2: Found an estimated cost of 4 for instruction: %shift
|
; AVX2: Found an estimated cost of 4 for instruction: %shift
|
||||||
; AVX512F: Found an estimated cost of 4 for instruction: %shift
|
; AVX512F: Found an estimated cost of 4 for instruction: %shift
|
||||||
; AVX512BW: Found an estimated cost of 2 for instruction: %shift
|
; AVX512BW: Found an estimated cost of 2 for instruction: %shift
|
||||||
; AVX512VL: Found an estimated cost of 4 for instruction: %shift
|
|
||||||
; AVX512BWVL: Found an estimated cost of 2 for instruction: %shift
|
|
||||||
; XOPAVX: Found an estimated cost of 8 for instruction: %shift
|
; XOPAVX: Found an estimated cost of 8 for instruction: %shift
|
||||||
; XOPAVX2: Found an estimated cost of 4 for instruction: %shift
|
; XOPAVX2: Found an estimated cost of 4 for instruction: %shift
|
||||||
%shift = shl <64 x i8> %a, <i8 3, i8 3, i8 3, i8 3, i8 3, i8 3, i8 3, i8 3, i8 3, i8 3, i8 3, i8 3, i8 3, i8 3, i8 3, i8 3, i8 3, i8 3, i8 3, i8 3, i8 3, i8 3, i8 3, i8 3, i8 3, i8 3, i8 3, i8 3, i8 3, i8 3, i8 3, i8 3, i8 3, i8 3, i8 3, i8 3, i8 3, i8 3, i8 3, i8 3, i8 3, i8 3, i8 3, i8 3, i8 3, i8 3, i8 3, i8 3, i8 3, i8 3, i8 3, i8 3, i8 3, i8 3, i8 3, i8 3, i8 3, i8 3, i8 3, i8 3, i8 3, i8 3, i8 3, i8 3>
|
%shift = shl <64 x i8> %a, <i8 3, i8 3, i8 3, i8 3, i8 3, i8 3, i8 3, i8 3, i8 3, i8 3, i8 3, i8 3, i8 3, i8 3, i8 3, i8 3, i8 3, i8 3, i8 3, i8 3, i8 3, i8 3, i8 3, i8 3, i8 3, i8 3, i8 3, i8 3, i8 3, i8 3, i8 3, i8 3, i8 3, i8 3, i8 3, i8 3, i8 3, i8 3, i8 3, i8 3, i8 3, i8 3, i8 3, i8 3, i8 3, i8 3, i8 3, i8 3, i8 3, i8 3, i8 3, i8 3, i8 3, i8 3, i8 3, i8 3, i8 3, i8 3, i8 3, i8 3, i8 3, i8 3, i8 3, i8 3>
|
||||||
|
Loading…
Reference in New Issue
Block a user