Skip to content

Commit 2bf0ff3

Browse files
committed
[X86] var-permute-256.ll - add missing check prefixes for AVX512F/DQ only targets
1 parent 0870c88 commit 2bf0ff3

File tree

1 file changed

+142
-74
lines changed

1 file changed

+142
-74
lines changed

llvm/test/CodeGen/X86/var-permute-256.ll

Lines changed: 142 additions & 74 deletions
Original file line numberDiff line numberDiff line change
@@ -2,12 +2,12 @@
22
; RUN: llc < %s -mtriple=x86_64-unknown-unknown -mattr=+xop | FileCheck %s --check-prefix=XOP
33
; RUN: llc < %s -mtriple=x86_64-unknown-unknown -mattr=+avx | FileCheck %s --check-prefix=AVX1
44
; RUN: llc < %s -mtriple=x86_64-unknown-unknown -mattr=+avx2 | FileCheck %s --check-prefixes=INT256,AVX2
5-
; RUN: llc < %s -mtriple=x86_64-unknown-unknown -mattr=+avx512f | FileCheck %s --check-prefixes=INT256,AVX512
6-
; RUN: llc < %s -mtriple=x86_64-unknown-unknown -mattr=+avx512dq | FileCheck %s --check-prefixes=INT256,AVX512
7-
; RUN: llc < %s -mtriple=x86_64-unknown-unknown -mattr=+avx512bw | FileCheck %s --check-prefixes=INT256,AVX512
8-
; RUN: llc < %s -mtriple=x86_64-unknown-unknown -mattr=+avx512vbmi | FileCheck %s --check-prefixes=INT256,AVX512
9-
; RUN: llc < %s -mtriple=x86_64-unknown-unknown -mattr=+avx512f,+avx512vl | FileCheck %s --check-prefixes=INT256,AVX512VL
10-
; RUN: llc < %s -mtriple=x86_64-unknown-unknown -mattr=+avx512dq,+avx512vl | FileCheck %s --check-prefixes=INT256,AVX512VL,AVX512VLDQ
5+
; RUN: llc < %s -mtriple=x86_64-unknown-unknown -mattr=+avx512f | FileCheck %s --check-prefixes=INT256,AVX512,AVX512F
6+
; RUN: llc < %s -mtriple=x86_64-unknown-unknown -mattr=+avx512dq | FileCheck %s --check-prefixes=INT256,AVX512,AVX512F
7+
; RUN: llc < %s -mtriple=x86_64-unknown-unknown -mattr=+avx512bw | FileCheck %s --check-prefixes=INT256,AVX512,AVX512BW
8+
; RUN: llc < %s -mtriple=x86_64-unknown-unknown -mattr=+avx512vbmi | FileCheck %s --check-prefixes=INT256,AVX512,AVX512BW
9+
; RUN: llc < %s -mtriple=x86_64-unknown-unknown -mattr=+avx512f,+avx512vl | FileCheck %s --check-prefixes=INT256,AVX512VL,AVX512VLF
10+
; RUN: llc < %s -mtriple=x86_64-unknown-unknown -mattr=+avx512dq,+avx512vl | FileCheck %s --check-prefixes=INT256,AVX512VL,AVX512VLF
1111
; RUN: llc < %s -mtriple=x86_64-unknown-unknown -mattr=+avx512bw,+avx512vl | FileCheck %s --check-prefixes=INT256,AVX512VL,AVX512VLBW
1212
; RUN: llc < %s -mtriple=x86_64-unknown-unknown -mattr=+avx512bw,+avx512vl,+avx512vbmi | FileCheck %s --check-prefixes=INT256,AVX512VL,VLVBMI
1313

@@ -393,17 +393,17 @@ define <16 x i16> @var_shuffle_v16i16(<16 x i16> %v, <16 x i16> %indices) nounwi
393393
; AVX512-NEXT: vpblendvb %ymm1, %ymm2, %ymm0, %ymm0
394394
; AVX512-NEXT: retq
395395
;
396-
; AVX512VLDQ-LABEL: var_shuffle_v16i16:
397-
; AVX512VLDQ: # %bb.0:
398-
; AVX512VLDQ-NEXT: vpmullw {{\.?LCPI[0-9]+_[0-9]+}}(%rip), %ymm1, %ymm1 # [514,514,514,514,514,514,514,514,514,514,514,514,514,514,514,514]
399-
; AVX512VLDQ-NEXT: vpaddw {{\.?LCPI[0-9]+_[0-9]+}}(%rip), %ymm1, %ymm1
400-
; AVX512VLDQ-NEXT: vinserti128 $1, %xmm0, %ymm0, %ymm2
401-
; AVX512VLDQ-NEXT: vpshufb %ymm1, %ymm2, %ymm2
402-
; AVX512VLDQ-NEXT: vpermq {{.*#+}} ymm0 = ymm0[2,3,2,3]
403-
; AVX512VLDQ-NEXT: vpshufb %ymm1, %ymm0, %ymm3
404-
; AVX512VLDQ-NEXT: vpcmpgtb {{\.?LCPI[0-9]+_[0-9]+}}(%rip), %ymm1, %ymm0
405-
; AVX512VLDQ-NEXT: vpternlogq {{.*#+}} ymm0 = ymm2 ^ (ymm0 & (ymm3 ^ ymm2))
406-
; AVX512VLDQ-NEXT: retq
396+
; AVX512VLF-LABEL: var_shuffle_v16i16:
397+
; AVX512VLF: # %bb.0:
398+
; AVX512VLF-NEXT: vpmullw {{\.?LCPI[0-9]+_[0-9]+}}(%rip), %ymm1, %ymm1 # [514,514,514,514,514,514,514,514,514,514,514,514,514,514,514,514]
399+
; AVX512VLF-NEXT: vpaddw {{\.?LCPI[0-9]+_[0-9]+}}(%rip), %ymm1, %ymm1
400+
; AVX512VLF-NEXT: vinserti128 $1, %xmm0, %ymm0, %ymm2
401+
; AVX512VLF-NEXT: vpshufb %ymm1, %ymm2, %ymm2
402+
; AVX512VLF-NEXT: vpermq {{.*#+}} ymm0 = ymm0[2,3,2,3]
403+
; AVX512VLF-NEXT: vpshufb %ymm1, %ymm0, %ymm3
404+
; AVX512VLF-NEXT: vpcmpgtb {{\.?LCPI[0-9]+_[0-9]+}}(%rip), %ymm1, %ymm0
405+
; AVX512VLF-NEXT: vpternlogq {{.*#+}} ymm0 = ymm2 ^ (ymm0 & (ymm3 ^ ymm2))
406+
; AVX512VLF-NEXT: retq
407407
;
408408
; AVX512VLBW-LABEL: var_shuffle_v16i16:
409409
; AVX512VLBW: # %bb.0:
@@ -533,21 +533,57 @@ define <16 x i16> @var_shuffle_zero_v16i16(<16 x i16> %v, <16 x i16> %indices) n
533533
; AVX2-NEXT: vpandn %ymm0, %ymm2, %ymm0
534534
; AVX2-NEXT: retq
535535
;
536-
; AVX512VLDQ-LABEL: var_shuffle_zero_v16i16:
537-
; AVX512VLDQ: # %bb.0:
538-
; AVX512VLDQ-NEXT: vpmaxuw {{\.?LCPI[0-9]+_[0-9]+}}(%rip), %ymm1, %ymm2
539-
; AVX512VLDQ-NEXT: vpcmpeqw %ymm2, %ymm1, %ymm2
540-
; AVX512VLDQ-NEXT: vpor %ymm1, %ymm2, %ymm1
541-
; AVX512VLDQ-NEXT: vpmullw {{\.?LCPI[0-9]+_[0-9]+}}(%rip), %ymm1, %ymm1 # [514,514,514,514,514,514,514,514,514,514,514,514,514,514,514,514]
542-
; AVX512VLDQ-NEXT: vpaddw {{\.?LCPI[0-9]+_[0-9]+}}(%rip), %ymm1, %ymm1
543-
; AVX512VLDQ-NEXT: vinserti128 $1, %xmm0, %ymm0, %ymm3
544-
; AVX512VLDQ-NEXT: vpshufb %ymm1, %ymm3, %ymm3
545-
; AVX512VLDQ-NEXT: vpermq {{.*#+}} ymm0 = ymm0[2,3,2,3]
546-
; AVX512VLDQ-NEXT: vpshufb %ymm1, %ymm0, %ymm0
547-
; AVX512VLDQ-NEXT: vpcmpgtb {{\.?LCPI[0-9]+_[0-9]+}}(%rip), %ymm1, %ymm1
548-
; AVX512VLDQ-NEXT: vpternlogq {{.*#+}} ymm1 = ymm3 ^ (ymm1 & (ymm0 ^ ymm3))
549-
; AVX512VLDQ-NEXT: vpandn %ymm1, %ymm2, %ymm0
550-
; AVX512VLDQ-NEXT: retq
536+
; AVX512F-LABEL: var_shuffle_zero_v16i16:
537+
; AVX512F: # %bb.0:
538+
; AVX512F-NEXT: vpmaxuw {{\.?LCPI[0-9]+_[0-9]+}}(%rip), %ymm1, %ymm2
539+
; AVX512F-NEXT: vpcmpeqw %ymm2, %ymm1, %ymm2
540+
; AVX512F-NEXT: vpor %ymm1, %ymm2, %ymm1
541+
; AVX512F-NEXT: vpmullw {{\.?LCPI[0-9]+_[0-9]+}}(%rip), %ymm1, %ymm1 # [514,514,514,514,514,514,514,514,514,514,514,514,514,514,514,514]
542+
; AVX512F-NEXT: vpaddw {{\.?LCPI[0-9]+_[0-9]+}}(%rip), %ymm1, %ymm1
543+
; AVX512F-NEXT: vinserti128 $1, %xmm0, %ymm0, %ymm3
544+
; AVX512F-NEXT: vpshufb %ymm1, %ymm3, %ymm3
545+
; AVX512F-NEXT: vpermq {{.*#+}} ymm0 = ymm0[2,3,2,3]
546+
; AVX512F-NEXT: vpshufb %ymm1, %ymm0, %ymm0
547+
; AVX512F-NEXT: vpcmpgtb {{\.?LCPI[0-9]+_[0-9]+}}(%rip), %ymm1, %ymm1
548+
; AVX512F-NEXT: vpblendvb %ymm1, %ymm0, %ymm3, %ymm0
549+
; AVX512F-NEXT: vpandn %ymm0, %ymm2, %ymm0
550+
; AVX512F-NEXT: retq
551+
;
552+
; AVX512BW-LABEL: var_shuffle_zero_v16i16:
553+
; AVX512BW: # %bb.0:
554+
; AVX512BW-NEXT: # kill: def $ymm1 killed $ymm1 def $zmm1
555+
; AVX512BW-NEXT: vpbroadcastw {{.*#+}} ymm2 = [15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15]
556+
; AVX512BW-NEXT: vpcmpnleuw %zmm2, %zmm1, %k1
557+
; AVX512BW-NEXT: vpcmpeqd %ymm2, %ymm2, %ymm2
558+
; AVX512BW-NEXT: vmovdqu16 %zmm2, %zmm1 {%k1}
559+
; AVX512BW-NEXT: vpmullw {{\.?LCPI[0-9]+_[0-9]+}}(%rip), %ymm1, %ymm1 # [514,514,514,514,514,514,514,514,514,514,514,514,514,514,514,514]
560+
; AVX512BW-NEXT: vpaddw {{\.?LCPI[0-9]+_[0-9]+}}(%rip), %ymm1, %ymm1
561+
; AVX512BW-NEXT: vpermq {{.*#+}} ymm2 = ymm0[2,3,2,3]
562+
; AVX512BW-NEXT: vpshufb %ymm1, %ymm2, %ymm2
563+
; AVX512BW-NEXT: vinserti128 $1, %xmm0, %ymm0, %ymm0
564+
; AVX512BW-NEXT: vpshufb %ymm1, %ymm0, %ymm0
565+
; AVX512BW-NEXT: vpcmpgtb {{\.?LCPI[0-9]+_[0-9]+}}(%rip), %ymm1, %ymm1
566+
; AVX512BW-NEXT: vpblendvb %ymm1, %ymm2, %ymm0, %ymm0
567+
; AVX512BW-NEXT: vpxor %xmm1, %xmm1, %xmm1
568+
; AVX512BW-NEXT: vmovdqu16 %zmm1, %zmm0 {%k1}
569+
; AVX512BW-NEXT: # kill: def $ymm0 killed $ymm0 killed $zmm0
570+
; AVX512BW-NEXT: retq
571+
;
572+
; AVX512VLF-LABEL: var_shuffle_zero_v16i16:
573+
; AVX512VLF: # %bb.0:
574+
; AVX512VLF-NEXT: vpmaxuw {{\.?LCPI[0-9]+_[0-9]+}}(%rip), %ymm1, %ymm2
575+
; AVX512VLF-NEXT: vpcmpeqw %ymm2, %ymm1, %ymm2
576+
; AVX512VLF-NEXT: vpor %ymm1, %ymm2, %ymm1
577+
; AVX512VLF-NEXT: vpmullw {{\.?LCPI[0-9]+_[0-9]+}}(%rip), %ymm1, %ymm1 # [514,514,514,514,514,514,514,514,514,514,514,514,514,514,514,514]
578+
; AVX512VLF-NEXT: vpaddw {{\.?LCPI[0-9]+_[0-9]+}}(%rip), %ymm1, %ymm1
579+
; AVX512VLF-NEXT: vinserti128 $1, %xmm0, %ymm0, %ymm3
580+
; AVX512VLF-NEXT: vpshufb %ymm1, %ymm3, %ymm3
581+
; AVX512VLF-NEXT: vpermq {{.*#+}} ymm0 = ymm0[2,3,2,3]
582+
; AVX512VLF-NEXT: vpshufb %ymm1, %ymm0, %ymm0
583+
; AVX512VLF-NEXT: vpcmpgtb {{\.?LCPI[0-9]+_[0-9]+}}(%rip), %ymm1, %ymm1
584+
; AVX512VLF-NEXT: vpternlogq {{.*#+}} ymm1 = ymm3 ^ (ymm1 & (ymm0 ^ ymm3))
585+
; AVX512VLF-NEXT: vpandn %ymm1, %ymm2, %ymm0
586+
; AVX512VLF-NEXT: retq
551587
;
552588
; AVX512VLBW-LABEL: var_shuffle_zero_v16i16:
553589
; AVX512VLBW: # %bb.0:
@@ -668,15 +704,15 @@ define <32 x i8> @var_shuffle_v32i8(<32 x i8> %v, <32 x i8> %indices) nounwind {
668704
; AVX512-NEXT: vpblendvb %ymm1, %ymm2, %ymm0, %ymm0
669705
; AVX512-NEXT: retq
670706
;
671-
; AVX512VLDQ-LABEL: var_shuffle_v32i8:
672-
; AVX512VLDQ: # %bb.0:
673-
; AVX512VLDQ-NEXT: vpermq {{.*#+}} ymm2 = ymm0[2,3,2,3]
674-
; AVX512VLDQ-NEXT: vpshufb %ymm1, %ymm2, %ymm2
675-
; AVX512VLDQ-NEXT: vinserti128 $1, %xmm0, %ymm0, %ymm0
676-
; AVX512VLDQ-NEXT: vpshufb %ymm1, %ymm0, %ymm3
677-
; AVX512VLDQ-NEXT: vpcmpgtb {{\.?LCPI[0-9]+_[0-9]+}}(%rip), %ymm1, %ymm0
678-
; AVX512VLDQ-NEXT: vpternlogq {{.*#+}} ymm0 = ymm3 ^ (ymm0 & (ymm2 ^ ymm3))
679-
; AVX512VLDQ-NEXT: retq
707+
; AVX512VLF-LABEL: var_shuffle_v32i8:
708+
; AVX512VLF: # %bb.0:
709+
; AVX512VLF-NEXT: vpermq {{.*#+}} ymm2 = ymm0[2,3,2,3]
710+
; AVX512VLF-NEXT: vpshufb %ymm1, %ymm2, %ymm2
711+
; AVX512VLF-NEXT: vinserti128 $1, %xmm0, %ymm0, %ymm0
712+
; AVX512VLF-NEXT: vpshufb %ymm1, %ymm0, %ymm3
713+
; AVX512VLF-NEXT: vpcmpgtb {{\.?LCPI[0-9]+_[0-9]+}}(%rip), %ymm1, %ymm0
714+
; AVX512VLF-NEXT: vpternlogq {{.*#+}} ymm0 = ymm3 ^ (ymm0 & (ymm2 ^ ymm3))
715+
; AVX512VLF-NEXT: retq
680716
;
681717
; AVX512VLBW-LABEL: var_shuffle_v32i8:
682718
; AVX512VLBW: # %bb.0:
@@ -847,19 +883,51 @@ define <32 x i8> @var_shuffle_zero_v32i8(<32 x i8> %v, <32 x i8> %indices) nounw
847883
; AVX2-NEXT: vpandn %ymm0, %ymm2, %ymm0
848884
; AVX2-NEXT: retq
849885
;
850-
; AVX512VLDQ-LABEL: var_shuffle_zero_v32i8:
851-
; AVX512VLDQ: # %bb.0:
852-
; AVX512VLDQ-NEXT: vpmaxub {{\.?LCPI[0-9]+_[0-9]+}}(%rip), %ymm1, %ymm2
853-
; AVX512VLDQ-NEXT: vpcmpeqb %ymm2, %ymm1, %ymm2
854-
; AVX512VLDQ-NEXT: vpor %ymm1, %ymm2, %ymm1
855-
; AVX512VLDQ-NEXT: vinserti128 $1, %xmm0, %ymm0, %ymm3
856-
; AVX512VLDQ-NEXT: vpshufb %ymm1, %ymm3, %ymm3
857-
; AVX512VLDQ-NEXT: vpermq {{.*#+}} ymm0 = ymm0[2,3,2,3]
858-
; AVX512VLDQ-NEXT: vpshufb %ymm1, %ymm0, %ymm0
859-
; AVX512VLDQ-NEXT: vpcmpgtb {{\.?LCPI[0-9]+_[0-9]+}}(%rip), %ymm1, %ymm1
860-
; AVX512VLDQ-NEXT: vpternlogq {{.*#+}} ymm1 = ymm3 ^ (ymm1 & (ymm0 ^ ymm3))
861-
; AVX512VLDQ-NEXT: vpandn %ymm1, %ymm2, %ymm0
862-
; AVX512VLDQ-NEXT: retq
886+
; AVX512F-LABEL: var_shuffle_zero_v32i8:
887+
; AVX512F: # %bb.0:
888+
; AVX512F-NEXT: vpmaxub {{\.?LCPI[0-9]+_[0-9]+}}(%rip), %ymm1, %ymm2
889+
; AVX512F-NEXT: vpcmpeqb %ymm2, %ymm1, %ymm2
890+
; AVX512F-NEXT: vpor %ymm1, %ymm2, %ymm1
891+
; AVX512F-NEXT: vinserti128 $1, %xmm0, %ymm0, %ymm3
892+
; AVX512F-NEXT: vpshufb %ymm1, %ymm3, %ymm3
893+
; AVX512F-NEXT: vpermq {{.*#+}} ymm0 = ymm0[2,3,2,3]
894+
; AVX512F-NEXT: vpshufb %ymm1, %ymm0, %ymm0
895+
; AVX512F-NEXT: vpcmpgtb {{\.?LCPI[0-9]+_[0-9]+}}(%rip), %ymm1, %ymm1
896+
; AVX512F-NEXT: vpblendvb %ymm1, %ymm0, %ymm3, %ymm0
897+
; AVX512F-NEXT: vpandn %ymm0, %ymm2, %ymm0
898+
; AVX512F-NEXT: retq
899+
;
900+
; AVX512BW-LABEL: var_shuffle_zero_v32i8:
901+
; AVX512BW: # %bb.0:
902+
; AVX512BW-NEXT: # kill: def $ymm1 killed $ymm1 def $zmm1
903+
; AVX512BW-NEXT: vpbroadcastb {{.*#+}} ymm2 = [31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31]
904+
; AVX512BW-NEXT: vpcmpnleub %zmm2, %zmm1, %k1
905+
; AVX512BW-NEXT: vpcmpeqd %ymm2, %ymm2, %ymm2
906+
; AVX512BW-NEXT: vmovdqu8 %zmm2, %zmm1 {%k1}
907+
; AVX512BW-NEXT: vpermq {{.*#+}} ymm2 = ymm0[2,3,2,3]
908+
; AVX512BW-NEXT: vpshufb %ymm1, %ymm2, %ymm2
909+
; AVX512BW-NEXT: vinserti128 $1, %xmm0, %ymm0, %ymm0
910+
; AVX512BW-NEXT: vpshufb %ymm1, %ymm0, %ymm0
911+
; AVX512BW-NEXT: vpcmpgtb {{\.?LCPI[0-9]+_[0-9]+}}(%rip), %ymm1, %ymm1
912+
; AVX512BW-NEXT: vpblendvb %ymm1, %ymm2, %ymm0, %ymm0
913+
; AVX512BW-NEXT: vpxor %xmm1, %xmm1, %xmm1
914+
; AVX512BW-NEXT: vmovdqu8 %zmm1, %zmm0 {%k1}
915+
; AVX512BW-NEXT: # kill: def $ymm0 killed $ymm0 killed $zmm0
916+
; AVX512BW-NEXT: retq
917+
;
918+
; AVX512VLF-LABEL: var_shuffle_zero_v32i8:
919+
; AVX512VLF: # %bb.0:
920+
; AVX512VLF-NEXT: vpmaxub {{\.?LCPI[0-9]+_[0-9]+}}(%rip), %ymm1, %ymm2
921+
; AVX512VLF-NEXT: vpcmpeqb %ymm2, %ymm1, %ymm2
922+
; AVX512VLF-NEXT: vpor %ymm1, %ymm2, %ymm1
923+
; AVX512VLF-NEXT: vinserti128 $1, %xmm0, %ymm0, %ymm3
924+
; AVX512VLF-NEXT: vpshufb %ymm1, %ymm3, %ymm3
925+
; AVX512VLF-NEXT: vpermq {{.*#+}} ymm0 = ymm0[2,3,2,3]
926+
; AVX512VLF-NEXT: vpshufb %ymm1, %ymm0, %ymm0
927+
; AVX512VLF-NEXT: vpcmpgtb {{\.?LCPI[0-9]+_[0-9]+}}(%rip), %ymm1, %ymm1
928+
; AVX512VLF-NEXT: vpternlogq {{.*#+}} ymm1 = ymm3 ^ (ymm1 & (ymm0 ^ ymm3))
929+
; AVX512VLF-NEXT: vpandn %ymm1, %ymm2, %ymm0
930+
; AVX512VLF-NEXT: retq
863931
;
864932
; AVX512VLBW-LABEL: var_shuffle_zero_v32i8:
865933
; AVX512VLBW: # %bb.0:
@@ -1493,17 +1561,17 @@ define <16 x i16> @var_shuffle_v16i16_from_v8i16(<8 x i16> %v, <16 x i16> %indic
14931561
; AVX512-NEXT: vpblendvb %ymm1, %ymm2, %ymm0, %ymm0
14941562
; AVX512-NEXT: retq
14951563
;
1496-
; AVX512VLDQ-LABEL: var_shuffle_v16i16_from_v8i16:
1497-
; AVX512VLDQ: # %bb.0:
1498-
; AVX512VLDQ-NEXT: # kill: def $xmm0 killed $xmm0 def $ymm0
1499-
; AVX512VLDQ-NEXT: vpmullw {{\.?LCPI[0-9]+_[0-9]+}}(%rip), %ymm1, %ymm1 # [514,514,514,514,514,514,514,514,514,514,514,514,514,514,514,514]
1500-
; AVX512VLDQ-NEXT: vpaddw {{\.?LCPI[0-9]+_[0-9]+}}(%rip), %ymm1, %ymm1
1501-
; AVX512VLDQ-NEXT: vinserti128 $1, %xmm0, %ymm0, %ymm0
1502-
; AVX512VLDQ-NEXT: vpshufb %ymm1, %ymm0, %ymm2
1503-
; AVX512VLDQ-NEXT: vpshufb %ymm1, %ymm0, %ymm3
1504-
; AVX512VLDQ-NEXT: vpcmpgtb {{\.?LCPI[0-9]+_[0-9]+}}(%rip), %ymm1, %ymm0
1505-
; AVX512VLDQ-NEXT: vpternlogq {{.*#+}} ymm0 = ymm2 ^ (ymm0 & (ymm3 ^ ymm2))
1506-
; AVX512VLDQ-NEXT: retq
1564+
; AVX512VLF-LABEL: var_shuffle_v16i16_from_v8i16:
1565+
; AVX512VLF: # %bb.0:
1566+
; AVX512VLF-NEXT: # kill: def $xmm0 killed $xmm0 def $ymm0
1567+
; AVX512VLF-NEXT: vpmullw {{\.?LCPI[0-9]+_[0-9]+}}(%rip), %ymm1, %ymm1 # [514,514,514,514,514,514,514,514,514,514,514,514,514,514,514,514]
1568+
; AVX512VLF-NEXT: vpaddw {{\.?LCPI[0-9]+_[0-9]+}}(%rip), %ymm1, %ymm1
1569+
; AVX512VLF-NEXT: vinserti128 $1, %xmm0, %ymm0, %ymm0
1570+
; AVX512VLF-NEXT: vpshufb %ymm1, %ymm0, %ymm2
1571+
; AVX512VLF-NEXT: vpshufb %ymm1, %ymm0, %ymm3
1572+
; AVX512VLF-NEXT: vpcmpgtb {{\.?LCPI[0-9]+_[0-9]+}}(%rip), %ymm1, %ymm0
1573+
; AVX512VLF-NEXT: vpternlogq {{.*#+}} ymm0 = ymm2 ^ (ymm0 & (ymm3 ^ ymm2))
1574+
; AVX512VLF-NEXT: retq
15071575
;
15081576
; AVX512VLBW-LABEL: var_shuffle_v16i16_from_v8i16:
15091577
; AVX512VLBW: # %bb.0:
@@ -1611,15 +1679,15 @@ define <32 x i8> @var_shuffle_v32i8_from_v16i8(<16 x i8> %v, <32 x i8> %indices)
16111679
; AVX512-NEXT: vpblendvb %ymm1, %ymm2, %ymm0, %ymm0
16121680
; AVX512-NEXT: retq
16131681
;
1614-
; AVX512VLDQ-LABEL: var_shuffle_v32i8_from_v16i8:
1615-
; AVX512VLDQ: # %bb.0:
1616-
; AVX512VLDQ-NEXT: # kill: def $xmm0 killed $xmm0 def $ymm0
1617-
; AVX512VLDQ-NEXT: vpshufb %ymm1, %ymm0, %ymm2
1618-
; AVX512VLDQ-NEXT: vinserti128 $1, %xmm0, %ymm0, %ymm0
1619-
; AVX512VLDQ-NEXT: vpshufb %ymm1, %ymm0, %ymm3
1620-
; AVX512VLDQ-NEXT: vpcmpgtb {{\.?LCPI[0-9]+_[0-9]+}}(%rip), %ymm1, %ymm0
1621-
; AVX512VLDQ-NEXT: vpternlogq {{.*#+}} ymm0 = ymm3 ^ (ymm0 & (ymm2 ^ ymm3))
1622-
; AVX512VLDQ-NEXT: retq
1682+
; AVX512VLF-LABEL: var_shuffle_v32i8_from_v16i8:
1683+
; AVX512VLF: # %bb.0:
1684+
; AVX512VLF-NEXT: # kill: def $xmm0 killed $xmm0 def $ymm0
1685+
; AVX512VLF-NEXT: vpshufb %ymm1, %ymm0, %ymm2
1686+
; AVX512VLF-NEXT: vinserti128 $1, %xmm0, %ymm0, %ymm0
1687+
; AVX512VLF-NEXT: vpshufb %ymm1, %ymm0, %ymm3
1688+
; AVX512VLF-NEXT: vpcmpgtb {{\.?LCPI[0-9]+_[0-9]+}}(%rip), %ymm1, %ymm0
1689+
; AVX512VLF-NEXT: vpternlogq {{.*#+}} ymm0 = ymm3 ^ (ymm0 & (ymm2 ^ ymm3))
1690+
; AVX512VLF-NEXT: retq
16231691
;
16241692
; AVX512VLBW-LABEL: var_shuffle_v32i8_from_v16i8:
16251693
; AVX512VLBW: # %bb.0:

0 commit comments

Comments
 (0)