Skip to content

Commit 64421ec

Browse files
committed
[X86] shuffle-vs-trunc-512.ll - add missing AVX512BW FAST PERLANE/CROSSLANE check prefixes
1 parent 46f953d commit 64421ec

File tree

1 file changed

+43
-4
lines changed

1 file changed

+43
-4
lines changed

llvm/test/CodeGen/X86/shuffle-vs-trunc-512.ll

Lines changed: 43 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -2,10 +2,10 @@
22
; RUN: llc < %s -mtriple=x86_64-unknown-unknown -mattr=+avx512f | FileCheck %s --check-prefix=AVX512 --check-prefix=AVX512F
33
; RUN: llc < %s -mtriple=x86_64-unknown-unknown -mattr=+avx512vl,+fast-variable-crosslane-shuffle,+fast-variable-perlane-shuffle | FileCheck %s --check-prefixes=AVX512,AVX512VL,AVX512VL-FAST-ALL
44
; RUN: llc < %s -mtriple=x86_64-unknown-unknown -mattr=+avx512vl,+fast-variable-perlane-shuffle | FileCheck %s --check-prefixes=AVX512,AVX512VL,AVX512VL-FAST-PERLANE
5-
; RUN: llc < %s -mtriple=x86_64-unknown-unknown -mattr=+avx512bw,+fast-variable-crosslane-shuffle,+fast-variable-perlane-shuffle | FileCheck %s --check-prefixes=AVX512,AVX512BW
6-
; RUN: llc < %s -mtriple=x86_64-unknown-unknown -mattr=+avx512bw,+fast-variable-perlane-shuffle | FileCheck %s --check-prefixes=AVX512,AVX512BW
7-
; RUN: llc < %s -mtriple=x86_64-unknown-unknown -mattr=+avx512bw,+avx512vl,+fast-variable-crosslane-shuffle,+fast-variable-perlane-shuffle | FileCheck %s --check-prefixes=AVX512,AVX512BWVL
8-
; RUN: llc < %s -mtriple=x86_64-unknown-unknown -mattr=+avx512bw,+avx512vl,+fast-variable-perlane-shuffle | FileCheck %s --check-prefixes=AVX512,AVX512BWVL
5+
; RUN: llc < %s -mtriple=x86_64-unknown-unknown -mattr=+avx512bw,+fast-variable-crosslane-shuffle,+fast-variable-perlane-shuffle | FileCheck %s --check-prefixes=AVX512,AVX512BW,AVX512BW-FAST-ALL
6+
; RUN: llc < %s -mtriple=x86_64-unknown-unknown -mattr=+avx512bw,+fast-variable-perlane-shuffle | FileCheck %s --check-prefixes=AVX512,AVX512BW,AVX512BW-FAST-PERLANE
7+
; RUN: llc < %s -mtriple=x86_64-unknown-unknown -mattr=+avx512bw,+avx512vl,+fast-variable-crosslane-shuffle,+fast-variable-perlane-shuffle | FileCheck %s --check-prefixes=AVX512,AVX512BWVL,AVX512BWVL-FAST-ALL
8+
; RUN: llc < %s -mtriple=x86_64-unknown-unknown -mattr=+avx512bw,+avx512vl,+fast-variable-perlane-shuffle | FileCheck %s --check-prefixes=AVX512,AVX512BWVL,AVX512BWVL-FAST-PERLANE
99
; RUN: llc < %s -mtriple=x86_64-unknown-unknown -mattr=+avx512vbmi,+fast-variable-crosslane-shuffle,+fast-variable-perlane-shuffle | FileCheck %s --check-prefixes=AVX512,AVX512VBMI
1010
; RUN: llc < %s -mtriple=x86_64-unknown-unknown -mattr=+avx512vbmi,+fast-variable-perlane-shuffle | FileCheck %s --check-prefixes=AVX512,AVX512VBMI
1111
; RUN: llc < %s -mtriple=x86_64-unknown-unknown -mattr=+avx512vbmi,+avx512vl,+fast-variable-crosslane-shuffle,+fast-variable-perlane-shuffle | FileCheck %s --check-prefixes=AVX512,AVX512VBMIVL
@@ -389,6 +389,45 @@ define <32 x i8> @trunc_shuffle_v32i16_v32i8_ofs1(<32 x i16> %a0) {
389389
; AVX512VL-FAST-PERLANE-NEXT: vpermq {{.*#+}} ymm0 = ymm0[0,2,1,3]
390390
; AVX512VL-FAST-PERLANE-NEXT: retq
391391
;
392+
; AVX512BW-FAST-ALL-LABEL: trunc_shuffle_v32i16_v32i8_ofs1:
393+
; AVX512BW-FAST-ALL: # %bb.0:
394+
; AVX512BW-FAST-ALL-NEXT: vpmovsxbq {{.*#+}} ymm1 = [0,2,9,11]
395+
; AVX512BW-FAST-ALL-NEXT: vextracti64x4 $1, %zmm0, %ymm2
396+
; AVX512BW-FAST-ALL-NEXT: vpshufb {{.*#+}} ymm2 = ymm2[u,u,u,u,u,u,u,u,1,3,5,7,9,11,13,15,u,u,u,u,u,u,u,u,17,19,21,23,25,27,29,31]
397+
; AVX512BW-FAST-ALL-NEXT: vpshufb {{.*#+}} ymm0 = ymm0[1,3,5,7,9,11,13,15,u,u,u,u,u,u,u,u,17,19,21,23,25,27,29,31,u,u,u,u,u,u,u,u]
398+
; AVX512BW-FAST-ALL-NEXT: vpermt2q %zmm2, %zmm1, %zmm0
399+
; AVX512BW-FAST-ALL-NEXT: # kill: def $ymm0 killed $ymm0 killed $zmm0
400+
; AVX512BW-FAST-ALL-NEXT: retq
401+
;
402+
; AVX512BW-FAST-PERLANE-LABEL: trunc_shuffle_v32i16_v32i8_ofs1:
403+
; AVX512BW-FAST-PERLANE: # %bb.0:
404+
; AVX512BW-FAST-PERLANE-NEXT: vextracti64x4 $1, %zmm0, %ymm1
405+
; AVX512BW-FAST-PERLANE-NEXT: vpbroadcastq {{.*#+}} ymm2 = [1,3,5,7,9,11,13,15,1,3,5,7,9,11,13,15,1,3,5,7,9,11,13,15,1,3,5,7,9,11,13,15]
406+
; AVX512BW-FAST-PERLANE-NEXT: vpshufb %ymm2, %ymm1, %ymm1
407+
; AVX512BW-FAST-PERLANE-NEXT: vpshufb %ymm2, %ymm0, %ymm0
408+
; AVX512BW-FAST-PERLANE-NEXT: vpblendd {{.*#+}} ymm0 = ymm0[0,1],ymm1[2,3],ymm0[4,5],ymm1[6,7]
409+
; AVX512BW-FAST-PERLANE-NEXT: vpermq {{.*#+}} ymm0 = ymm0[0,2,1,3]
410+
; AVX512BW-FAST-PERLANE-NEXT: retq
411+
;
412+
; AVX512BWVL-FAST-ALL-LABEL: trunc_shuffle_v32i16_v32i8_ofs1:
413+
; AVX512BWVL-FAST-ALL: # %bb.0:
414+
; AVX512BWVL-FAST-ALL-NEXT: vextracti64x4 $1, %zmm0, %ymm1
415+
; AVX512BWVL-FAST-ALL-NEXT: vpshufb {{.*#+}} ymm1 = ymm1[u,u,u,u,u,u,u,u,1,3,5,7,9,11,13,15,u,u,u,u,u,u,u,u,17,19,21,23,25,27,29,31]
416+
; AVX512BWVL-FAST-ALL-NEXT: vpshufb {{.*#+}} ymm2 = ymm0[1,3,5,7,9,11,13,15,u,u,u,u,u,u,u,u,17,19,21,23,25,27,29,31,u,u,u,u,u,u,u,u]
417+
; AVX512BWVL-FAST-ALL-NEXT: vpmovsxbq {{.*#+}} ymm0 = [0,2,5,7]
418+
; AVX512BWVL-FAST-ALL-NEXT: vpermi2q %ymm1, %ymm2, %ymm0
419+
; AVX512BWVL-FAST-ALL-NEXT: retq
420+
;
421+
; AVX512BWVL-FAST-PERLANE-LABEL: trunc_shuffle_v32i16_v32i8_ofs1:
422+
; AVX512BWVL-FAST-PERLANE: # %bb.0:
423+
; AVX512BWVL-FAST-PERLANE-NEXT: vextracti64x4 $1, %zmm0, %ymm1
424+
; AVX512BWVL-FAST-PERLANE-NEXT: vpbroadcastq {{.*#+}} ymm2 = [1,3,5,7,9,11,13,15,1,3,5,7,9,11,13,15,1,3,5,7,9,11,13,15,1,3,5,7,9,11,13,15]
425+
; AVX512BWVL-FAST-PERLANE-NEXT: vpshufb %ymm2, %ymm1, %ymm1
426+
; AVX512BWVL-FAST-PERLANE-NEXT: vpshufb %ymm2, %ymm0, %ymm0
427+
; AVX512BWVL-FAST-PERLANE-NEXT: vpblendd {{.*#+}} ymm0 = ymm0[0,1],ymm1[2,3],ymm0[4,5],ymm1[6,7]
428+
; AVX512BWVL-FAST-PERLANE-NEXT: vpermq {{.*#+}} ymm0 = ymm0[0,2,1,3]
429+
; AVX512BWVL-FAST-PERLANE-NEXT: retq
430+
;
392431
; AVX512VBMI-LABEL: trunc_shuffle_v32i16_v32i8_ofs1:
393432
; AVX512VBMI: # %bb.0:
394433
; AVX512VBMI-NEXT: vmovdqa {{.*#+}} ymm1 = [1,3,5,7,9,11,13,15,97,99,101,103,105,107,109,111,17,19,21,23,25,27,29,31,113,115,117,119,121,123,125,127]

0 commit comments

Comments
 (0)