[X86] Regenerate test checks with vpternlog comments
This commit is contained in:
parent
671976ff59
commit
d51af6c215
@ -1928,7 +1928,7 @@ define <8 x i16> @vec128_i16_unsigned_reg_reg(<8 x i16> %a1, <8 x i16> %a2) noun
|
||||
; AVX512F: # %bb.0:
|
||||
; AVX512F-NEXT: vpminuw %xmm1, %xmm0, %xmm2
|
||||
; AVX512F-NEXT: vpcmpeqw %xmm2, %xmm0, %xmm3
|
||||
; AVX512F-NEXT: vpternlogq $15, %zmm3, %zmm3, %zmm3
|
||||
; AVX512F-NEXT: vpternlogq {{.*#+}} zmm3 = ~zmm3
|
||||
; AVX512F-NEXT: vpor {{\.?LCPI[0-9]+_[0-9]+}}(%rip), %xmm3, %xmm3
|
||||
; AVX512F-NEXT: vpmaxuw %xmm1, %xmm0, %xmm1
|
||||
; AVX512F-NEXT: vpsubw %xmm2, %xmm1, %xmm1
|
||||
@ -1945,7 +1945,7 @@ define <8 x i16> @vec128_i16_unsigned_reg_reg(<8 x i16> %a1, <8 x i16> %a2) noun
|
||||
; AVX512VL-FALLBACK-NEXT: vpsubw %xmm2, %xmm1, %xmm1
|
||||
; AVX512VL-FALLBACK-NEXT: vpsrlw $1, %xmm1, %xmm1
|
||||
; AVX512VL-FALLBACK-NEXT: vpcmpeqw %xmm2, %xmm0, %xmm2
|
||||
; AVX512VL-FALLBACK-NEXT: vpternlogq $15, %xmm2, %xmm2, %xmm2
|
||||
; AVX512VL-FALLBACK-NEXT: vpternlogq {{.*#+}} xmm2 = ~xmm2
|
||||
; AVX512VL-FALLBACK-NEXT: vpxor %xmm2, %xmm1, %xmm1
|
||||
; AVX512VL-FALLBACK-NEXT: vpsubw %xmm2, %xmm1, %xmm1
|
||||
; AVX512VL-FALLBACK-NEXT: vpaddw %xmm0, %xmm1, %xmm0
|
||||
@ -2500,7 +2500,7 @@ define <16 x i8> @vec128_i8_signed_reg_reg(<16 x i8> %a1, <16 x i8> %a2) nounwin
|
||||
; AVX512VL-FALLBACK-NEXT: vpsubb %xmm2, %xmm3, %xmm2
|
||||
; AVX512VL-FALLBACK-NEXT: vpsrlw $1, %xmm2, %xmm2
|
||||
; AVX512VL-FALLBACK-NEXT: vpcmpgtb %xmm1, %xmm0, %xmm1
|
||||
; AVX512VL-FALLBACK-NEXT: vpternlogd $108, {{\.?LCPI[0-9]+_[0-9]+}}(%rip){1to4}, %xmm1, %xmm2
|
||||
; AVX512VL-FALLBACK-NEXT: vpternlogd {{.*#+}} xmm2 = xmm1 ^ (xmm2 & mem)
|
||||
; AVX512VL-FALLBACK-NEXT: vpsubb %xmm1, %xmm2, %xmm1
|
||||
; AVX512VL-FALLBACK-NEXT: vpaddb %xmm0, %xmm1, %xmm0
|
||||
; AVX512VL-FALLBACK-NEXT: retq
|
||||
@ -2706,7 +2706,7 @@ define <16 x i8> @vec128_i8_unsigned_reg_reg(<16 x i8> %a1, <16 x i8> %a2) nounw
|
||||
; AVX512F: # %bb.0:
|
||||
; AVX512F-NEXT: vpminub %xmm1, %xmm0, %xmm2
|
||||
; AVX512F-NEXT: vpcmpeqb %xmm2, %xmm0, %xmm3
|
||||
; AVX512F-NEXT: vpternlogq $15, %zmm3, %zmm3, %zmm3
|
||||
; AVX512F-NEXT: vpternlogq {{.*#+}} zmm3 = ~zmm3
|
||||
; AVX512F-NEXT: vpor {{\.?LCPI[0-9]+_[0-9]+}}(%rip), %xmm3, %xmm3
|
||||
; AVX512F-NEXT: vpmaxub %xmm1, %xmm0, %xmm1
|
||||
; AVX512F-NEXT: vpsubb %xmm2, %xmm1, %xmm1
|
||||
@ -2728,8 +2728,8 @@ define <16 x i8> @vec128_i8_unsigned_reg_reg(<16 x i8> %a1, <16 x i8> %a2) nounw
|
||||
; AVX512VL-FALLBACK-NEXT: vpsubb %xmm2, %xmm1, %xmm1
|
||||
; AVX512VL-FALLBACK-NEXT: vpsrlw $1, %xmm1, %xmm1
|
||||
; AVX512VL-FALLBACK-NEXT: vpcmpeqb %xmm2, %xmm0, %xmm2
|
||||
; AVX512VL-FALLBACK-NEXT: vpternlogq $15, %xmm2, %xmm2, %xmm2
|
||||
; AVX512VL-FALLBACK-NEXT: vpternlogd $108, {{\.?LCPI[0-9]+_[0-9]+}}(%rip){1to4}, %xmm2, %xmm1
|
||||
; AVX512VL-FALLBACK-NEXT: vpternlogq {{.*#+}} xmm2 = ~xmm2
|
||||
; AVX512VL-FALLBACK-NEXT: vpternlogd {{.*#+}} xmm1 = xmm2 ^ (xmm1 & mem)
|
||||
; AVX512VL-FALLBACK-NEXT: vpsubb %xmm2, %xmm1, %xmm1
|
||||
; AVX512VL-FALLBACK-NEXT: vpaddb %xmm0, %xmm1, %xmm0
|
||||
; AVX512VL-FALLBACK-NEXT: retq
|
||||
@ -2961,7 +2961,7 @@ define <16 x i8> @vec128_i8_signed_mem_reg(ptr %a1_addr, <16 x i8> %a2) nounwind
|
||||
; AVX512VL-FALLBACK-NEXT: vpsubb %xmm2, %xmm3, %xmm2
|
||||
; AVX512VL-FALLBACK-NEXT: vpsrlw $1, %xmm2, %xmm2
|
||||
; AVX512VL-FALLBACK-NEXT: vpcmpgtb %xmm0, %xmm1, %xmm0
|
||||
; AVX512VL-FALLBACK-NEXT: vpternlogd $108, {{\.?LCPI[0-9]+_[0-9]+}}(%rip){1to4}, %xmm0, %xmm2
|
||||
; AVX512VL-FALLBACK-NEXT: vpternlogd {{.*#+}} xmm2 = xmm0 ^ (xmm2 & mem)
|
||||
; AVX512VL-FALLBACK-NEXT: vpsubb %xmm0, %xmm2, %xmm0
|
||||
; AVX512VL-FALLBACK-NEXT: vpaddb %xmm1, %xmm0, %xmm0
|
||||
; AVX512VL-FALLBACK-NEXT: retq
|
||||
@ -3192,7 +3192,7 @@ define <16 x i8> @vec128_i8_signed_reg_mem(<16 x i8> %a1, ptr %a2_addr) nounwind
|
||||
; AVX512VL-FALLBACK-NEXT: vpsubb %xmm2, %xmm3, %xmm2
|
||||
; AVX512VL-FALLBACK-NEXT: vpsrlw $1, %xmm2, %xmm2
|
||||
; AVX512VL-FALLBACK-NEXT: vpcmpgtb %xmm1, %xmm0, %xmm1
|
||||
; AVX512VL-FALLBACK-NEXT: vpternlogd $108, {{\.?LCPI[0-9]+_[0-9]+}}(%rip){1to4}, %xmm1, %xmm2
|
||||
; AVX512VL-FALLBACK-NEXT: vpternlogd {{.*#+}} xmm2 = xmm1 ^ (xmm2 & mem)
|
||||
; AVX512VL-FALLBACK-NEXT: vpsubb %xmm1, %xmm2, %xmm1
|
||||
; AVX512VL-FALLBACK-NEXT: vpaddb %xmm0, %xmm1, %xmm0
|
||||
; AVX512VL-FALLBACK-NEXT: retq
|
||||
@ -3432,7 +3432,7 @@ define <16 x i8> @vec128_i8_signed_mem_mem(ptr %a1_addr, ptr %a2_addr) nounwind
|
||||
; AVX512VL-FALLBACK-NEXT: vpsubb %xmm2, %xmm3, %xmm2
|
||||
; AVX512VL-FALLBACK-NEXT: vpsrlw $1, %xmm2, %xmm2
|
||||
; AVX512VL-FALLBACK-NEXT: vpcmpgtb %xmm1, %xmm0, %xmm1
|
||||
; AVX512VL-FALLBACK-NEXT: vpternlogd $108, {{\.?LCPI[0-9]+_[0-9]+}}(%rip){1to4}, %xmm1, %xmm2
|
||||
; AVX512VL-FALLBACK-NEXT: vpternlogd {{.*#+}} xmm2 = xmm1 ^ (xmm2 & mem)
|
||||
; AVX512VL-FALLBACK-NEXT: vpsubb %xmm1, %xmm2, %xmm1
|
||||
; AVX512VL-FALLBACK-NEXT: vpaddb %xmm0, %xmm1, %xmm0
|
||||
; AVX512VL-FALLBACK-NEXT: retq
|
||||
|
@ -1434,7 +1434,7 @@ define <16 x i16> @vec256_i16_unsigned_reg_reg(<16 x i16> %a1, <16 x i16> %a2) n
|
||||
; AVX512F: # %bb.0:
|
||||
; AVX512F-NEXT: vpminuw %ymm1, %ymm0, %ymm2
|
||||
; AVX512F-NEXT: vpcmpeqw %ymm2, %ymm0, %ymm3
|
||||
; AVX512F-NEXT: vpternlogq $15, %zmm3, %zmm3, %zmm3
|
||||
; AVX512F-NEXT: vpternlogq {{.*#+}} zmm3 = ~zmm3
|
||||
; AVX512F-NEXT: vpor {{\.?LCPI[0-9]+_[0-9]+}}(%rip), %ymm3, %ymm3
|
||||
; AVX512F-NEXT: vpmaxuw %ymm1, %ymm0, %ymm1
|
||||
; AVX512F-NEXT: vpsubw %ymm2, %ymm1, %ymm1
|
||||
@ -1450,7 +1450,7 @@ define <16 x i16> @vec256_i16_unsigned_reg_reg(<16 x i16> %a1, <16 x i16> %a2) n
|
||||
; AVX512VL-FALLBACK-NEXT: vpsubw %ymm2, %ymm1, %ymm1
|
||||
; AVX512VL-FALLBACK-NEXT: vpsrlw $1, %ymm1, %ymm1
|
||||
; AVX512VL-FALLBACK-NEXT: vpcmpeqw %ymm2, %ymm0, %ymm2
|
||||
; AVX512VL-FALLBACK-NEXT: vpternlogq $15, %ymm2, %ymm2, %ymm2
|
||||
; AVX512VL-FALLBACK-NEXT: vpternlogq {{.*#+}} ymm2 = ~ymm2
|
||||
; AVX512VL-FALLBACK-NEXT: vpxor %ymm2, %ymm1, %ymm1
|
||||
; AVX512VL-FALLBACK-NEXT: vpsubw %ymm2, %ymm1, %ymm1
|
||||
; AVX512VL-FALLBACK-NEXT: vpaddw %ymm0, %ymm1, %ymm0
|
||||
@ -2016,7 +2016,7 @@ define <32 x i8> @vec256_i8_signed_reg_reg(<32 x i8> %a1, <32 x i8> %a2) nounwin
|
||||
; AVX512VL-FALLBACK-NEXT: vpsubb %ymm2, %ymm3, %ymm2
|
||||
; AVX512VL-FALLBACK-NEXT: vpsrlw $1, %ymm2, %ymm2
|
||||
; AVX512VL-FALLBACK-NEXT: vpcmpgtb %ymm1, %ymm0, %ymm1
|
||||
; AVX512VL-FALLBACK-NEXT: vpternlogd $108, {{\.?LCPI[0-9]+_[0-9]+}}(%rip){1to8}, %ymm1, %ymm2
|
||||
; AVX512VL-FALLBACK-NEXT: vpternlogd {{.*#+}} ymm2 = ymm1 ^ (ymm2 & mem)
|
||||
; AVX512VL-FALLBACK-NEXT: vpsubb %ymm1, %ymm2, %ymm1
|
||||
; AVX512VL-FALLBACK-NEXT: vpaddb %ymm0, %ymm1, %ymm0
|
||||
; AVX512VL-FALLBACK-NEXT: retq
|
||||
@ -2169,7 +2169,7 @@ define <32 x i8> @vec256_i8_unsigned_reg_reg(<32 x i8> %a1, <32 x i8> %a2) nounw
|
||||
; AVX512F: # %bb.0:
|
||||
; AVX512F-NEXT: vpminub %ymm1, %ymm0, %ymm2
|
||||
; AVX512F-NEXT: vpcmpeqb %ymm2, %ymm0, %ymm3
|
||||
; AVX512F-NEXT: vpternlogq $15, %zmm3, %zmm3, %zmm3
|
||||
; AVX512F-NEXT: vpternlogq {{.*#+}} zmm3 = ~zmm3
|
||||
; AVX512F-NEXT: vpor {{\.?LCPI[0-9]+_[0-9]+}}(%rip), %ymm3, %ymm3
|
||||
; AVX512F-NEXT: vpmaxub %ymm1, %ymm0, %ymm1
|
||||
; AVX512F-NEXT: vpsubb %ymm2, %ymm1, %ymm1
|
||||
@ -2193,8 +2193,8 @@ define <32 x i8> @vec256_i8_unsigned_reg_reg(<32 x i8> %a1, <32 x i8> %a2) nounw
|
||||
; AVX512VL-FALLBACK-NEXT: vpsubb %ymm2, %ymm1, %ymm1
|
||||
; AVX512VL-FALLBACK-NEXT: vpsrlw $1, %ymm1, %ymm1
|
||||
; AVX512VL-FALLBACK-NEXT: vpcmpeqb %ymm2, %ymm0, %ymm2
|
||||
; AVX512VL-FALLBACK-NEXT: vpternlogq $15, %ymm2, %ymm2, %ymm2
|
||||
; AVX512VL-FALLBACK-NEXT: vpternlogd $108, {{\.?LCPI[0-9]+_[0-9]+}}(%rip){1to8}, %ymm2, %ymm1
|
||||
; AVX512VL-FALLBACK-NEXT: vpternlogq {{.*#+}} ymm2 = ~ymm2
|
||||
; AVX512VL-FALLBACK-NEXT: vpternlogd {{.*#+}} ymm1 = ymm2 ^ (ymm1 & mem)
|
||||
; AVX512VL-FALLBACK-NEXT: vpsubb %ymm2, %ymm1, %ymm1
|
||||
; AVX512VL-FALLBACK-NEXT: vpaddb %ymm0, %ymm1, %ymm0
|
||||
; AVX512VL-FALLBACK-NEXT: retq
|
||||
@ -2372,7 +2372,7 @@ define <32 x i8> @vec256_i8_signed_mem_reg(ptr %a1_addr, <32 x i8> %a2) nounwind
|
||||
; AVX512VL-FALLBACK-NEXT: vpsubb %ymm2, %ymm3, %ymm2
|
||||
; AVX512VL-FALLBACK-NEXT: vpsrlw $1, %ymm2, %ymm2
|
||||
; AVX512VL-FALLBACK-NEXT: vpcmpgtb %ymm0, %ymm1, %ymm0
|
||||
; AVX512VL-FALLBACK-NEXT: vpternlogd $108, {{\.?LCPI[0-9]+_[0-9]+}}(%rip){1to8}, %ymm0, %ymm2
|
||||
; AVX512VL-FALLBACK-NEXT: vpternlogd {{.*#+}} ymm2 = ymm0 ^ (ymm2 & mem)
|
||||
; AVX512VL-FALLBACK-NEXT: vpsubb %ymm0, %ymm2, %ymm0
|
||||
; AVX512VL-FALLBACK-NEXT: vpaddb %ymm1, %ymm0, %ymm0
|
||||
; AVX512VL-FALLBACK-NEXT: retq
|
||||
@ -2550,7 +2550,7 @@ define <32 x i8> @vec256_i8_signed_reg_mem(<32 x i8> %a1, ptr %a2_addr) nounwind
|
||||
; AVX512VL-FALLBACK-NEXT: vpsubb %ymm2, %ymm3, %ymm2
|
||||
; AVX512VL-FALLBACK-NEXT: vpsrlw $1, %ymm2, %ymm2
|
||||
; AVX512VL-FALLBACK-NEXT: vpcmpgtb %ymm1, %ymm0, %ymm1
|
||||
; AVX512VL-FALLBACK-NEXT: vpternlogd $108, {{\.?LCPI[0-9]+_[0-9]+}}(%rip){1to8}, %ymm1, %ymm2
|
||||
; AVX512VL-FALLBACK-NEXT: vpternlogd {{.*#+}} ymm2 = ymm1 ^ (ymm2 & mem)
|
||||
; AVX512VL-FALLBACK-NEXT: vpsubb %ymm1, %ymm2, %ymm1
|
||||
; AVX512VL-FALLBACK-NEXT: vpaddb %ymm0, %ymm1, %ymm0
|
||||
; AVX512VL-FALLBACK-NEXT: retq
|
||||
@ -2733,7 +2733,7 @@ define <32 x i8> @vec256_i8_signed_mem_mem(ptr %a1_addr, ptr %a2_addr) nounwind
|
||||
; AVX512VL-FALLBACK-NEXT: vpsubb %ymm2, %ymm3, %ymm2
|
||||
; AVX512VL-FALLBACK-NEXT: vpsrlw $1, %ymm2, %ymm2
|
||||
; AVX512VL-FALLBACK-NEXT: vpcmpgtb %ymm1, %ymm0, %ymm1
|
||||
; AVX512VL-FALLBACK-NEXT: vpternlogd $108, {{\.?LCPI[0-9]+_[0-9]+}}(%rip){1to8}, %ymm1, %ymm2
|
||||
; AVX512VL-FALLBACK-NEXT: vpternlogd {{.*#+}} ymm2 = ymm1 ^ (ymm2 & mem)
|
||||
; AVX512VL-FALLBACK-NEXT: vpsubb %ymm1, %ymm2, %ymm1
|
||||
; AVX512VL-FALLBACK-NEXT: vpaddb %ymm0, %ymm1, %ymm0
|
||||
; AVX512VL-FALLBACK-NEXT: retq
|
||||
|
@ -288,7 +288,7 @@ define <32 x i16> @vec512_i16_signed_reg_reg(<32 x i16> %a1, <32 x i16> %a2) nou
|
||||
; AVX512F-NEXT: vpsubw %ymm2, %ymm6, %ymm2
|
||||
; AVX512F-NEXT: vpsubw %ymm1, %ymm6, %ymm1
|
||||
; AVX512F-NEXT: vinserti64x4 $1, %ymm2, %zmm1, %zmm1
|
||||
; AVX512F-NEXT: vpternlogq $226, %zmm5, %zmm4, %zmm1
|
||||
; AVX512F-NEXT: vpternlogq {{.*#+}} zmm1 = zmm5 ^ (zmm4 & (zmm1 ^ zmm5))
|
||||
; AVX512F-NEXT: vextracti64x4 $1, %zmm1, %ymm2
|
||||
; AVX512F-NEXT: vpaddw %ymm3, %ymm2, %ymm2
|
||||
; AVX512F-NEXT: vpaddw %ymm0, %ymm1, %ymm0
|
||||
@ -315,7 +315,7 @@ define <32 x i16> @vec512_i16_signed_reg_reg(<32 x i16> %a1, <32 x i16> %a2) nou
|
||||
; AVX512VL-FALLBACK-NEXT: vpsubw %ymm2, %ymm6, %ymm2
|
||||
; AVX512VL-FALLBACK-NEXT: vpsubw %ymm1, %ymm6, %ymm1
|
||||
; AVX512VL-FALLBACK-NEXT: vinserti64x4 $1, %ymm2, %zmm1, %zmm1
|
||||
; AVX512VL-FALLBACK-NEXT: vpternlogq $226, %zmm5, %zmm4, %zmm1
|
||||
; AVX512VL-FALLBACK-NEXT: vpternlogq {{.*#+}} zmm1 = zmm5 ^ (zmm4 & (zmm1 ^ zmm5))
|
||||
; AVX512VL-FALLBACK-NEXT: vextracti64x4 $1, %zmm1, %ymm2
|
||||
; AVX512VL-FALLBACK-NEXT: vpaddw %ymm3, %ymm2, %ymm2
|
||||
; AVX512VL-FALLBACK-NEXT: vpaddw %ymm0, %ymm1, %ymm0
|
||||
@ -365,7 +365,7 @@ define <32 x i16> @vec512_i16_unsigned_reg_reg(<32 x i16> %a1, <32 x i16> %a2) n
|
||||
; AVX512F-NEXT: vpsubw %ymm2, %ymm6, %ymm2
|
||||
; AVX512F-NEXT: vpsubw %ymm1, %ymm6, %ymm1
|
||||
; AVX512F-NEXT: vinserti64x4 $1, %ymm2, %zmm1, %zmm1
|
||||
; AVX512F-NEXT: vpternlogq $184, %zmm4, %zmm5, %zmm1
|
||||
; AVX512F-NEXT: vpternlogq {{.*#+}} zmm1 = zmm1 ^ (zmm5 & (zmm1 ^ zmm4))
|
||||
; AVX512F-NEXT: vextracti64x4 $1, %zmm1, %ymm2
|
||||
; AVX512F-NEXT: vpaddw %ymm3, %ymm2, %ymm2
|
||||
; AVX512F-NEXT: vpaddw %ymm0, %ymm1, %ymm0
|
||||
@ -392,7 +392,7 @@ define <32 x i16> @vec512_i16_unsigned_reg_reg(<32 x i16> %a1, <32 x i16> %a2) n
|
||||
; AVX512VL-FALLBACK-NEXT: vpsubw %ymm2, %ymm6, %ymm2
|
||||
; AVX512VL-FALLBACK-NEXT: vpsubw %ymm1, %ymm6, %ymm1
|
||||
; AVX512VL-FALLBACK-NEXT: vinserti64x4 $1, %ymm2, %zmm1, %zmm1
|
||||
; AVX512VL-FALLBACK-NEXT: vpternlogq $184, %zmm4, %zmm5, %zmm1
|
||||
; AVX512VL-FALLBACK-NEXT: vpternlogq {{.*#+}} zmm1 = zmm1 ^ (zmm5 & (zmm1 ^ zmm4))
|
||||
; AVX512VL-FALLBACK-NEXT: vextracti64x4 $1, %zmm1, %ymm2
|
||||
; AVX512VL-FALLBACK-NEXT: vpaddw %ymm3, %ymm2, %ymm2
|
||||
; AVX512VL-FALLBACK-NEXT: vpaddw %ymm0, %ymm1, %ymm0
|
||||
@ -445,7 +445,7 @@ define <32 x i16> @vec512_i16_signed_mem_reg(ptr %a1_addr, <32 x i16> %a2) nounw
|
||||
; AVX512F-NEXT: vpsubw %ymm1, %ymm6, %ymm1
|
||||
; AVX512F-NEXT: vpsubw %ymm0, %ymm6, %ymm0
|
||||
; AVX512F-NEXT: vinserti64x4 $1, %ymm1, %zmm0, %zmm0
|
||||
; AVX512F-NEXT: vpternlogq $226, %zmm5, %zmm4, %zmm0
|
||||
; AVX512F-NEXT: vpternlogq {{.*#+}} zmm0 = zmm5 ^ (zmm4 & (zmm0 ^ zmm5))
|
||||
; AVX512F-NEXT: vextracti64x4 $1, %zmm0, %ymm1
|
||||
; AVX512F-NEXT: vpaddw %ymm3, %ymm1, %ymm1
|
||||
; AVX512F-NEXT: vpaddw %ymm2, %ymm0, %ymm0
|
||||
@ -473,7 +473,7 @@ define <32 x i16> @vec512_i16_signed_mem_reg(ptr %a1_addr, <32 x i16> %a2) nounw
|
||||
; AVX512VL-FALLBACK-NEXT: vpsubw %ymm1, %ymm6, %ymm1
|
||||
; AVX512VL-FALLBACK-NEXT: vpsubw %ymm0, %ymm6, %ymm0
|
||||
; AVX512VL-FALLBACK-NEXT: vinserti64x4 $1, %ymm1, %zmm0, %zmm0
|
||||
; AVX512VL-FALLBACK-NEXT: vpternlogq $226, %zmm5, %zmm4, %zmm0
|
||||
; AVX512VL-FALLBACK-NEXT: vpternlogq {{.*#+}} zmm0 = zmm5 ^ (zmm4 & (zmm0 ^ zmm5))
|
||||
; AVX512VL-FALLBACK-NEXT: vextracti64x4 $1, %zmm0, %ymm1
|
||||
; AVX512VL-FALLBACK-NEXT: vpaddw %ymm3, %ymm1, %ymm1
|
||||
; AVX512VL-FALLBACK-NEXT: vpaddw %ymm2, %ymm0, %ymm0
|
||||
@ -526,7 +526,7 @@ define <32 x i16> @vec512_i16_signed_reg_mem(<32 x i16> %a1, ptr %a2_addr) nounw
|
||||
; AVX512F-NEXT: vpsubw %ymm2, %ymm6, %ymm2
|
||||
; AVX512F-NEXT: vpsubw %ymm1, %ymm6, %ymm1
|
||||
; AVX512F-NEXT: vinserti64x4 $1, %ymm2, %zmm1, %zmm1
|
||||
; AVX512F-NEXT: vpternlogq $226, %zmm5, %zmm4, %zmm1
|
||||
; AVX512F-NEXT: vpternlogq {{.*#+}} zmm1 = zmm5 ^ (zmm4 & (zmm1 ^ zmm5))
|
||||
; AVX512F-NEXT: vextracti64x4 $1, %zmm1, %ymm2
|
||||
; AVX512F-NEXT: vpaddw %ymm3, %ymm2, %ymm2
|
||||
; AVX512F-NEXT: vpaddw %ymm0, %ymm1, %ymm0
|
||||
@ -554,7 +554,7 @@ define <32 x i16> @vec512_i16_signed_reg_mem(<32 x i16> %a1, ptr %a2_addr) nounw
|
||||
; AVX512VL-FALLBACK-NEXT: vpsubw %ymm2, %ymm6, %ymm2
|
||||
; AVX512VL-FALLBACK-NEXT: vpsubw %ymm1, %ymm6, %ymm1
|
||||
; AVX512VL-FALLBACK-NEXT: vinserti64x4 $1, %ymm2, %zmm1, %zmm1
|
||||
; AVX512VL-FALLBACK-NEXT: vpternlogq $226, %zmm5, %zmm4, %zmm1
|
||||
; AVX512VL-FALLBACK-NEXT: vpternlogq {{.*#+}} zmm1 = zmm5 ^ (zmm4 & (zmm1 ^ zmm5))
|
||||
; AVX512VL-FALLBACK-NEXT: vextracti64x4 $1, %zmm1, %ymm2
|
||||
; AVX512VL-FALLBACK-NEXT: vpaddw %ymm3, %ymm2, %ymm2
|
||||
; AVX512VL-FALLBACK-NEXT: vpaddw %ymm0, %ymm1, %ymm0
|
||||
@ -608,7 +608,7 @@ define <32 x i16> @vec512_i16_signed_mem_mem(ptr %a1_addr, ptr %a2_addr) nounwin
|
||||
; AVX512F-NEXT: vpsubw %ymm1, %ymm6, %ymm1
|
||||
; AVX512F-NEXT: vpsubw %ymm0, %ymm6, %ymm0
|
||||
; AVX512F-NEXT: vinserti64x4 $1, %ymm1, %zmm0, %zmm0
|
||||
; AVX512F-NEXT: vpternlogq $226, %zmm5, %zmm4, %zmm0
|
||||
; AVX512F-NEXT: vpternlogq {{.*#+}} zmm0 = zmm5 ^ (zmm4 & (zmm0 ^ zmm5))
|
||||
; AVX512F-NEXT: vextracti64x4 $1, %zmm0, %ymm1
|
||||
; AVX512F-NEXT: vpaddw %ymm3, %ymm1, %ymm1
|
||||
; AVX512F-NEXT: vpaddw %ymm2, %ymm0, %ymm0
|
||||
@ -637,7 +637,7 @@ define <32 x i16> @vec512_i16_signed_mem_mem(ptr %a1_addr, ptr %a2_addr) nounwin
|
||||
; AVX512VL-FALLBACK-NEXT: vpsubw %ymm1, %ymm6, %ymm1
|
||||
; AVX512VL-FALLBACK-NEXT: vpsubw %ymm0, %ymm6, %ymm0
|
||||
; AVX512VL-FALLBACK-NEXT: vinserti64x4 $1, %ymm1, %zmm0, %zmm0
|
||||
; AVX512VL-FALLBACK-NEXT: vpternlogq $226, %zmm5, %zmm4, %zmm0
|
||||
; AVX512VL-FALLBACK-NEXT: vpternlogq {{.*#+}} zmm0 = zmm5 ^ (zmm4 & (zmm0 ^ zmm5))
|
||||
; AVX512VL-FALLBACK-NEXT: vextracti64x4 $1, %zmm0, %ymm1
|
||||
; AVX512VL-FALLBACK-NEXT: vpaddw %ymm3, %ymm1, %ymm1
|
||||
; AVX512VL-FALLBACK-NEXT: vpaddw %ymm2, %ymm0, %ymm0
|
||||
@ -700,7 +700,7 @@ define <64 x i8> @vec512_i8_signed_reg_reg(<64 x i8> %a1, <64 x i8> %a2) nounwin
|
||||
; AVX512F-NEXT: vpsubb %ymm2, %ymm6, %ymm2
|
||||
; AVX512F-NEXT: vpsubb %ymm1, %ymm6, %ymm1
|
||||
; AVX512F-NEXT: vinserti64x4 $1, %ymm2, %zmm1, %zmm1
|
||||
; AVX512F-NEXT: vpternlogq $226, %zmm5, %zmm4, %zmm1
|
||||
; AVX512F-NEXT: vpternlogq {{.*#+}} zmm1 = zmm5 ^ (zmm4 & (zmm1 ^ zmm5))
|
||||
; AVX512F-NEXT: vextracti64x4 $1, %zmm1, %ymm2
|
||||
; AVX512F-NEXT: vpaddb %ymm3, %ymm2, %ymm2
|
||||
; AVX512F-NEXT: vpaddb %ymm0, %ymm1, %ymm0
|
||||
@ -730,7 +730,7 @@ define <64 x i8> @vec512_i8_signed_reg_reg(<64 x i8> %a1, <64 x i8> %a2) nounwin
|
||||
; AVX512VL-FALLBACK-NEXT: vpsubb %ymm2, %ymm6, %ymm2
|
||||
; AVX512VL-FALLBACK-NEXT: vpsubb %ymm1, %ymm6, %ymm1
|
||||
; AVX512VL-FALLBACK-NEXT: vinserti64x4 $1, %ymm2, %zmm1, %zmm1
|
||||
; AVX512VL-FALLBACK-NEXT: vpternlogq $226, %zmm5, %zmm4, %zmm1
|
||||
; AVX512VL-FALLBACK-NEXT: vpternlogq {{.*#+}} zmm1 = zmm5 ^ (zmm4 & (zmm1 ^ zmm5))
|
||||
; AVX512VL-FALLBACK-NEXT: vextracti64x4 $1, %zmm1, %ymm2
|
||||
; AVX512VL-FALLBACK-NEXT: vpaddb %ymm3, %ymm2, %ymm2
|
||||
; AVX512VL-FALLBACK-NEXT: vpaddb %ymm0, %ymm1, %ymm0
|
||||
@ -784,7 +784,7 @@ define <64 x i8> @vec512_i8_unsigned_reg_reg(<64 x i8> %a1, <64 x i8> %a2) nounw
|
||||
; AVX512F-NEXT: vpsubb %ymm2, %ymm6, %ymm2
|
||||
; AVX512F-NEXT: vpsubb %ymm1, %ymm6, %ymm1
|
||||
; AVX512F-NEXT: vinserti64x4 $1, %ymm2, %zmm1, %zmm1
|
||||
; AVX512F-NEXT: vpternlogq $184, %zmm4, %zmm5, %zmm1
|
||||
; AVX512F-NEXT: vpternlogq {{.*#+}} zmm1 = zmm1 ^ (zmm5 & (zmm1 ^ zmm4))
|
||||
; AVX512F-NEXT: vextracti64x4 $1, %zmm1, %ymm2
|
||||
; AVX512F-NEXT: vpaddb %ymm3, %ymm2, %ymm2
|
||||
; AVX512F-NEXT: vpaddb %ymm0, %ymm1, %ymm0
|
||||
@ -814,7 +814,7 @@ define <64 x i8> @vec512_i8_unsigned_reg_reg(<64 x i8> %a1, <64 x i8> %a2) nounw
|
||||
; AVX512VL-FALLBACK-NEXT: vpsubb %ymm2, %ymm6, %ymm2
|
||||
; AVX512VL-FALLBACK-NEXT: vpsubb %ymm1, %ymm6, %ymm1
|
||||
; AVX512VL-FALLBACK-NEXT: vinserti64x4 $1, %ymm2, %zmm1, %zmm1
|
||||
; AVX512VL-FALLBACK-NEXT: vpternlogq $184, %zmm4, %zmm5, %zmm1
|
||||
; AVX512VL-FALLBACK-NEXT: vpternlogq {{.*#+}} zmm1 = zmm1 ^ (zmm5 & (zmm1 ^ zmm4))
|
||||
; AVX512VL-FALLBACK-NEXT: vextracti64x4 $1, %zmm1, %ymm2
|
||||
; AVX512VL-FALLBACK-NEXT: vpaddb %ymm3, %ymm2, %ymm2
|
||||
; AVX512VL-FALLBACK-NEXT: vpaddb %ymm0, %ymm1, %ymm0
|
||||
@ -872,7 +872,7 @@ define <64 x i8> @vec512_i8_signed_mem_reg(ptr %a1_addr, <64 x i8> %a2) nounwind
|
||||
; AVX512F-NEXT: vpand %ymm6, %ymm0, %ymm0
|
||||
; AVX512F-NEXT: vpsubb %ymm0, %ymm7, %ymm0
|
||||
; AVX512F-NEXT: vinserti64x4 $1, %ymm1, %zmm0, %zmm0
|
||||
; AVX512F-NEXT: vpternlogq $226, %zmm5, %zmm4, %zmm0
|
||||
; AVX512F-NEXT: vpternlogq {{.*#+}} zmm0 = zmm5 ^ (zmm4 & (zmm0 ^ zmm5))
|
||||
; AVX512F-NEXT: vextracti64x4 $1, %zmm0, %ymm1
|
||||
; AVX512F-NEXT: vpaddb %ymm3, %ymm1, %ymm1
|
||||
; AVX512F-NEXT: vpaddb %ymm2, %ymm0, %ymm0
|
||||
@ -904,7 +904,7 @@ define <64 x i8> @vec512_i8_signed_mem_reg(ptr %a1_addr, <64 x i8> %a2) nounwind
|
||||
; AVX512VL-FALLBACK-NEXT: vpand %ymm6, %ymm0, %ymm0
|
||||
; AVX512VL-FALLBACK-NEXT: vpsubb %ymm0, %ymm7, %ymm0
|
||||
; AVX512VL-FALLBACK-NEXT: vinserti64x4 $1, %ymm1, %zmm0, %zmm0
|
||||
; AVX512VL-FALLBACK-NEXT: vpternlogq $226, %zmm5, %zmm4, %zmm0
|
||||
; AVX512VL-FALLBACK-NEXT: vpternlogq {{.*#+}} zmm0 = zmm5 ^ (zmm4 & (zmm0 ^ zmm5))
|
||||
; AVX512VL-FALLBACK-NEXT: vextracti64x4 $1, %zmm0, %ymm1
|
||||
; AVX512VL-FALLBACK-NEXT: vpaddb %ymm3, %ymm1, %ymm1
|
||||
; AVX512VL-FALLBACK-NEXT: vpaddb %ymm2, %ymm0, %ymm0
|
||||
@ -962,7 +962,7 @@ define <64 x i8> @vec512_i8_signed_reg_mem(<64 x i8> %a1, ptr %a2_addr) nounwind
|
||||
; AVX512F-NEXT: vpand %ymm6, %ymm1, %ymm1
|
||||
; AVX512F-NEXT: vpsubb %ymm1, %ymm7, %ymm1
|
||||
; AVX512F-NEXT: vinserti64x4 $1, %ymm2, %zmm1, %zmm1
|
||||
; AVX512F-NEXT: vpternlogq $226, %zmm5, %zmm4, %zmm1
|
||||
; AVX512F-NEXT: vpternlogq {{.*#+}} zmm1 = zmm5 ^ (zmm4 & (zmm1 ^ zmm5))
|
||||
; AVX512F-NEXT: vextracti64x4 $1, %zmm1, %ymm2
|
||||
; AVX512F-NEXT: vpaddb %ymm3, %ymm2, %ymm2
|
||||
; AVX512F-NEXT: vpaddb %ymm0, %ymm1, %ymm0
|
||||
@ -994,7 +994,7 @@ define <64 x i8> @vec512_i8_signed_reg_mem(<64 x i8> %a1, ptr %a2_addr) nounwind
|
||||
; AVX512VL-FALLBACK-NEXT: vpand %ymm6, %ymm1, %ymm1
|
||||
; AVX512VL-FALLBACK-NEXT: vpsubb %ymm1, %ymm7, %ymm1
|
||||
; AVX512VL-FALLBACK-NEXT: vinserti64x4 $1, %ymm2, %zmm1, %zmm1
|
||||
; AVX512VL-FALLBACK-NEXT: vpternlogq $226, %zmm5, %zmm4, %zmm1
|
||||
; AVX512VL-FALLBACK-NEXT: vpternlogq {{.*#+}} zmm1 = zmm5 ^ (zmm4 & (zmm1 ^ zmm5))
|
||||
; AVX512VL-FALLBACK-NEXT: vextracti64x4 $1, %zmm1, %ymm2
|
||||
; AVX512VL-FALLBACK-NEXT: vpaddb %ymm3, %ymm2, %ymm2
|
||||
; AVX512VL-FALLBACK-NEXT: vpaddb %ymm0, %ymm1, %ymm0
|
||||
@ -1053,7 +1053,7 @@ define <64 x i8> @vec512_i8_signed_mem_mem(ptr %a1_addr, ptr %a2_addr) nounwind
|
||||
; AVX512F-NEXT: vpand %ymm6, %ymm0, %ymm0
|
||||
; AVX512F-NEXT: vpsubb %ymm0, %ymm7, %ymm0
|
||||
; AVX512F-NEXT: vinserti64x4 $1, %ymm1, %zmm0, %zmm0
|
||||
; AVX512F-NEXT: vpternlogq $226, %zmm5, %zmm4, %zmm0
|
||||
; AVX512F-NEXT: vpternlogq {{.*#+}} zmm0 = zmm5 ^ (zmm4 & (zmm0 ^ zmm5))
|
||||
; AVX512F-NEXT: vextracti64x4 $1, %zmm0, %ymm1
|
||||
; AVX512F-NEXT: vpaddb %ymm3, %ymm1, %ymm1
|
||||
; AVX512F-NEXT: vpaddb %ymm2, %ymm0, %ymm0
|
||||
@ -1086,7 +1086,7 @@ define <64 x i8> @vec512_i8_signed_mem_mem(ptr %a1_addr, ptr %a2_addr) nounwind
|
||||
; AVX512VL-FALLBACK-NEXT: vpand %ymm6, %ymm0, %ymm0
|
||||
; AVX512VL-FALLBACK-NEXT: vpsubb %ymm0, %ymm7, %ymm0
|
||||
; AVX512VL-FALLBACK-NEXT: vinserti64x4 $1, %ymm1, %zmm0, %zmm0
|
||||
; AVX512VL-FALLBACK-NEXT: vpternlogq $226, %zmm5, %zmm4, %zmm0
|
||||
; AVX512VL-FALLBACK-NEXT: vpternlogq {{.*#+}} zmm0 = zmm5 ^ (zmm4 & (zmm0 ^ zmm5))
|
||||
; AVX512VL-FALLBACK-NEXT: vextracti64x4 $1, %zmm0, %ymm1
|
||||
; AVX512VL-FALLBACK-NEXT: vpaddb %ymm3, %ymm1, %ymm1
|
||||
; AVX512VL-FALLBACK-NEXT: vpaddb %ymm2, %ymm0, %ymm0
|
||||
|
@ -918,13 +918,13 @@ define dso_local void @mul256(ptr %a, ptr %b, ptr %c) "min-legal-vector-width"="
|
||||
; CHECK-AVX512-NEXT: vpandn %ymm3, %ymm4, %ymm3
|
||||
; CHECK-AVX512-NEXT: vpmaddubsw %ymm3, %ymm1, %ymm1
|
||||
; CHECK-AVX512-NEXT: vpsllw $8, %ymm1, %ymm1
|
||||
; CHECK-AVX512-NEXT: vpternlogq $248, %ymm4, %ymm5, %ymm1
|
||||
; CHECK-AVX512-NEXT: vpternlogq {{.*#+}} ymm1 = ymm1 | (ymm5 & ymm4)
|
||||
; CHECK-AVX512-NEXT: vpand %ymm2, %ymm4, %ymm3
|
||||
; CHECK-AVX512-NEXT: vpmaddubsw %ymm3, %ymm0, %ymm3
|
||||
; CHECK-AVX512-NEXT: vpandn %ymm2, %ymm4, %ymm2
|
||||
; CHECK-AVX512-NEXT: vpmaddubsw %ymm2, %ymm0, %ymm0
|
||||
; CHECK-AVX512-NEXT: vpsllw $8, %ymm0, %ymm0
|
||||
; CHECK-AVX512-NEXT: vpternlogq $248, %ymm4, %ymm3, %ymm0
|
||||
; CHECK-AVX512-NEXT: vpternlogq {{.*#+}} ymm0 = ymm0 | (ymm3 & ymm4)
|
||||
; CHECK-AVX512-NEXT: vmovdqa %ymm0, (%rdx)
|
||||
; CHECK-AVX512-NEXT: vmovdqa %ymm1, 32(%rdx)
|
||||
; CHECK-AVX512-NEXT: vzeroupper
|
||||
@ -985,7 +985,7 @@ define dso_local void @mul512(ptr %a, ptr %b, ptr %c) "min-legal-vector-width"="
|
||||
; CHECK-AVX512-NEXT: vpandnq %zmm1, %zmm2, %zmm1
|
||||
; CHECK-AVX512-NEXT: vpmaddubsw %zmm1, %zmm0, %zmm0
|
||||
; CHECK-AVX512-NEXT: vpsllw $8, %zmm0, %zmm0
|
||||
; CHECK-AVX512-NEXT: vpternlogq $248, %zmm2, %zmm3, %zmm0
|
||||
; CHECK-AVX512-NEXT: vpternlogq {{.*#+}} zmm0 = zmm0 | (zmm3 & zmm2)
|
||||
; CHECK-AVX512-NEXT: vmovdqa64 %zmm0, (%rdx)
|
||||
; CHECK-AVX512-NEXT: vzeroupper
|
||||
; CHECK-AVX512-NEXT: retq
|
||||
@ -1993,21 +1993,21 @@ define <32 x i8> @splatconstant_rotate_v32i8(<32 x i8> %a) nounwind "min-legal-v
|
||||
; CHECK-SKX: # %bb.0:
|
||||
; CHECK-SKX-NEXT: vpsllw $4, %ymm0, %ymm1
|
||||
; CHECK-SKX-NEXT: vpsrlw $4, %ymm0, %ymm0
|
||||
; CHECK-SKX-NEXT: vpternlogd $216, {{\.?LCPI[0-9]+_[0-9]+}}(%rip){1to8}, %ymm1, %ymm0
|
||||
; CHECK-SKX-NEXT: vpternlogd {{.*#+}} ymm0 = ymm0 ^ (mem & (ymm0 ^ ymm1))
|
||||
; CHECK-SKX-NEXT: retq
|
||||
;
|
||||
; CHECK-AVX512-LABEL: splatconstant_rotate_v32i8:
|
||||
; CHECK-AVX512: # %bb.0:
|
||||
; CHECK-AVX512-NEXT: vpsllw $4, %ymm0, %ymm1
|
||||
; CHECK-AVX512-NEXT: vpsrlw $4, %ymm0, %ymm0
|
||||
; CHECK-AVX512-NEXT: vpternlogd $216, {{\.?LCPI[0-9]+_[0-9]+}}(%rip){1to8}, %ymm1, %ymm0
|
||||
; CHECK-AVX512-NEXT: vpternlogd {{.*#+}} ymm0 = ymm0 ^ (mem & (ymm0 ^ ymm1))
|
||||
; CHECK-AVX512-NEXT: retq
|
||||
;
|
||||
; CHECK-VBMI1-LABEL: splatconstant_rotate_v32i8:
|
||||
; CHECK-VBMI1: # %bb.0:
|
||||
; CHECK-VBMI1-NEXT: vpsllw $4, %ymm0, %ymm1
|
||||
; CHECK-VBMI1-NEXT: vpsrlw $4, %ymm0, %ymm0
|
||||
; CHECK-VBMI1-NEXT: vpternlogd $216, {{\.?LCPI[0-9]+_[0-9]+}}(%rip){1to8}, %ymm1, %ymm0
|
||||
; CHECK-VBMI1-NEXT: vpternlogd {{.*#+}} ymm0 = ymm0 ^ (mem & (ymm0 ^ ymm1))
|
||||
; CHECK-VBMI1-NEXT: retq
|
||||
;
|
||||
; CHECK-GFNI-LABEL: splatconstant_rotate_v32i8:
|
||||
@ -2025,7 +2025,7 @@ define <32 x i8> @splatconstant_rotate_mask_v32i8(<32 x i8> %a) nounwind "min-le
|
||||
; CHECK-SKX: # %bb.0:
|
||||
; CHECK-SKX-NEXT: vpsllw $4, %ymm0, %ymm1
|
||||
; CHECK-SKX-NEXT: vpsrlw $4, %ymm0, %ymm0
|
||||
; CHECK-SKX-NEXT: vpternlogd $216, {{\.?LCPI[0-9]+_[0-9]+}}(%rip){1to8}, %ymm1, %ymm0
|
||||
; CHECK-SKX-NEXT: vpternlogd {{.*#+}} ymm0 = ymm0 ^ (mem & (ymm0 ^ ymm1))
|
||||
; CHECK-SKX-NEXT: vpandd {{\.?LCPI[0-9]+_[0-9]+}}(%rip){1to8}, %ymm0, %ymm0
|
||||
; CHECK-SKX-NEXT: retq
|
||||
;
|
||||
@ -2033,7 +2033,7 @@ define <32 x i8> @splatconstant_rotate_mask_v32i8(<32 x i8> %a) nounwind "min-le
|
||||
; CHECK-AVX512: # %bb.0:
|
||||
; CHECK-AVX512-NEXT: vpsllw $4, %ymm0, %ymm1
|
||||
; CHECK-AVX512-NEXT: vpsrlw $4, %ymm0, %ymm0
|
||||
; CHECK-AVX512-NEXT: vpternlogd $216, {{\.?LCPI[0-9]+_[0-9]+}}(%rip){1to8}, %ymm1, %ymm0
|
||||
; CHECK-AVX512-NEXT: vpternlogd {{.*#+}} ymm0 = ymm0 ^ (mem & (ymm0 ^ ymm1))
|
||||
; CHECK-AVX512-NEXT: vpandd {{\.?LCPI[0-9]+_[0-9]+}}(%rip){1to8}, %ymm0, %ymm0
|
||||
; CHECK-AVX512-NEXT: retq
|
||||
;
|
||||
@ -2041,7 +2041,7 @@ define <32 x i8> @splatconstant_rotate_mask_v32i8(<32 x i8> %a) nounwind "min-le
|
||||
; CHECK-VBMI1: # %bb.0:
|
||||
; CHECK-VBMI1-NEXT: vpsllw $4, %ymm0, %ymm1
|
||||
; CHECK-VBMI1-NEXT: vpsrlw $4, %ymm0, %ymm0
|
||||
; CHECK-VBMI1-NEXT: vpternlogd $216, {{\.?LCPI[0-9]+_[0-9]+}}(%rip){1to8}, %ymm1, %ymm0
|
||||
; CHECK-VBMI1-NEXT: vpternlogd {{.*#+}} ymm0 = ymm0 ^ (mem & (ymm0 ^ ymm1))
|
||||
; CHECK-VBMI1-NEXT: vpandd {{\.?LCPI[0-9]+_[0-9]+}}(%rip){1to8}, %ymm0, %ymm0
|
||||
; CHECK-VBMI1-NEXT: retq
|
||||
;
|
||||
|
@ -833,7 +833,7 @@ define <64 x i8> @mul_v64i8c(<64 x i8> %i) nounwind {
|
||||
; AVX512F-NEXT: vpmaddubsw %ymm3, %ymm1, %ymm1
|
||||
; AVX512F-NEXT: vpsllw $8, %ymm1, %ymm1
|
||||
; AVX512F-NEXT: vinserti64x4 $1, %ymm1, %zmm0, %zmm0
|
||||
; AVX512F-NEXT: vpternlogd $248, {{\.?LCPI[0-9]+_[0-9]+}}(%rip){1to16}, %zmm2, %zmm0
|
||||
; AVX512F-NEXT: vpternlogd {{.*#+}} zmm0 = zmm0 | (zmm2 & mem)
|
||||
; AVX512F-NEXT: retq
|
||||
;
|
||||
; AVX512BW-LABEL: mul_v64i8c:
|
||||
@ -841,7 +841,7 @@ define <64 x i8> @mul_v64i8c(<64 x i8> %i) nounwind {
|
||||
; AVX512BW-NEXT: vpmaddubsw {{\.?LCPI[0-9]+_[0-9]+}}(%rip), %zmm0, %zmm1 # [117,0,117,0,117,0,117,0,117,0,117,0,117,0,117,0,117,0,117,0,117,0,117,0,117,0,117,0,117,0,117,0,117,0,117,0,117,0,117,0,117,0,117,0,117,0,117,0,117,0,117,0,117,0,117,0,117,0,117,0,117,0,117,0]
|
||||
; AVX512BW-NEXT: vpmaddubsw {{\.?LCPI[0-9]+_[0-9]+}}(%rip), %zmm0, %zmm0 # [0,117,0,117,0,117,0,117,0,117,0,117,0,117,0,117,0,117,0,117,0,117,0,117,0,117,0,117,0,117,0,117,0,117,0,117,0,117,0,117,0,117,0,117,0,117,0,117,0,117,0,117,0,117,0,117,0,117,0,117,0,117,0,117]
|
||||
; AVX512BW-NEXT: vpsllw $8, %zmm0, %zmm0
|
||||
; AVX512BW-NEXT: vpternlogd $248, {{\.?LCPI[0-9]+_[0-9]+}}(%rip){1to16}, %zmm1, %zmm0
|
||||
; AVX512BW-NEXT: vpternlogd {{.*#+}} zmm0 = zmm0 | (zmm1 & mem)
|
||||
; AVX512BW-NEXT: retq
|
||||
entry:
|
||||
%A = mul <64 x i8> %i, < i8 117, i8 117, i8 117, i8 117, i8 117, i8 117, i8 117, i8 117, i8 117, i8 117, i8 117, i8 117, i8 117, i8 117, i8 117, i8 117, i8 117, i8 117, i8 117, i8 117, i8 117, i8 117, i8 117, i8 117, i8 117, i8 117, i8 117, i8 117, i8 117, i8 117, i8 117, i8 117, i8 117, i8 117, i8 117, i8 117, i8 117, i8 117, i8 117, i8 117, i8 117, i8 117, i8 117, i8 117, i8 117, i8 117, i8 117, i8 117, i8 117, i8 117, i8 117, i8 117, i8 117, i8 117, i8 117, i8 117, i8 117, i8 117, i8 117, i8 117, i8 117, i8 117, i8 117, i8 117 >
|
||||
@ -978,7 +978,7 @@ define <64 x i8> @mul_v64i8(<64 x i8> %i, <64 x i8> %j) nounwind {
|
||||
; AVX512F-NEXT: vpmaddubsw %ymm1, %ymm5, %ymm1
|
||||
; AVX512F-NEXT: vpsllw $8, %ymm1, %ymm1
|
||||
; AVX512F-NEXT: vinserti64x4 $1, %ymm1, %zmm0, %zmm0
|
||||
; AVX512F-NEXT: vpternlogq $248, %zmm3, %zmm4, %zmm0
|
||||
; AVX512F-NEXT: vpternlogq {{.*#+}} zmm0 = zmm0 | (zmm4 & zmm3)
|
||||
; AVX512F-NEXT: retq
|
||||
;
|
||||
; AVX512BW-LABEL: mul_v64i8:
|
||||
@ -989,7 +989,7 @@ define <64 x i8> @mul_v64i8(<64 x i8> %i, <64 x i8> %j) nounwind {
|
||||
; AVX512BW-NEXT: vpandnq %zmm1, %zmm2, %zmm1
|
||||
; AVX512BW-NEXT: vpmaddubsw %zmm1, %zmm0, %zmm0
|
||||
; AVX512BW-NEXT: vpsllw $8, %zmm0, %zmm0
|
||||
; AVX512BW-NEXT: vpternlogq $248, %zmm2, %zmm3, %zmm0
|
||||
; AVX512BW-NEXT: vpternlogq {{.*#+}} zmm0 = zmm0 | (zmm3 & zmm2)
|
||||
; AVX512BW-NEXT: retq
|
||||
entry:
|
||||
%A = mul <64 x i8> %i, %j
|
||||
|
@ -62,7 +62,7 @@ define <16 x i8> @testv16i1_sext_v16i8(ptr %p, ptr %q) {
|
||||
; AVX512VL-NEXT: vmovdqa (%rsi), %ymm0
|
||||
; AVX512VL-NEXT: vptestnmd %ymm0, %ymm0, %k1
|
||||
; AVX512VL-NEXT: kunpckbw %k0, %k1, %k1
|
||||
; AVX512VL-NEXT: vpternlogd $255, %zmm0, %zmm0, %zmm0 {%k1} {z}
|
||||
; AVX512VL-NEXT: vpternlogd {{.*#+}} zmm0 {%k1} {z} = -1
|
||||
; AVX512VL-NEXT: vpmovdb %zmm0, %xmm0
|
||||
; AVX512VL-NEXT: vzeroupper
|
||||
; AVX512VL-NEXT: retq
|
||||
@ -74,7 +74,7 @@ define <16 x i8> @testv16i1_sext_v16i8(ptr %p, ptr %q) {
|
||||
; AVX512F-NEXT: vmovdqa (%rsi), %ymm0
|
||||
; AVX512F-NEXT: vptestnmd %zmm0, %zmm0, %k1
|
||||
; AVX512F-NEXT: kunpckbw %k0, %k1, %k1
|
||||
; AVX512F-NEXT: vpternlogd $255, %zmm0, %zmm0, %zmm0 {%k1} {z}
|
||||
; AVX512F-NEXT: vpternlogd {{.*#+}} zmm0 {%k1} {z} = -1
|
||||
; AVX512F-NEXT: vpmovdb %zmm0, %xmm0
|
||||
; AVX512F-NEXT: vzeroupper
|
||||
; AVX512F-NEXT: retq
|
||||
@ -109,7 +109,7 @@ define <16 x i16> @testv16i1_sext_v16i16(ptr %p, ptr %q) {
|
||||
; AVX512VL-NEXT: vmovdqa (%rsi), %ymm0
|
||||
; AVX512VL-NEXT: vptestnmd %ymm0, %ymm0, %k1
|
||||
; AVX512VL-NEXT: kunpckbw %k0, %k1, %k1
|
||||
; AVX512VL-NEXT: vpternlogd $255, %zmm0, %zmm0, %zmm0 {%k1} {z}
|
||||
; AVX512VL-NEXT: vpternlogd {{.*#+}} zmm0 {%k1} {z} = -1
|
||||
; AVX512VL-NEXT: vpmovdw %zmm0, %ymm0
|
||||
; AVX512VL-NEXT: retq
|
||||
;
|
||||
@ -120,7 +120,7 @@ define <16 x i16> @testv16i1_sext_v16i16(ptr %p, ptr %q) {
|
||||
; AVX512F-NEXT: vmovdqa (%rsi), %ymm0
|
||||
; AVX512F-NEXT: vptestnmd %zmm0, %zmm0, %k1
|
||||
; AVX512F-NEXT: kunpckbw %k0, %k1, %k1
|
||||
; AVX512F-NEXT: vpternlogd $255, %zmm0, %zmm0, %zmm0 {%k1} {z}
|
||||
; AVX512F-NEXT: vpternlogd {{.*#+}} zmm0 {%k1} {z} = -1
|
||||
; AVX512F-NEXT: vpmovdw %zmm0, %ymm0
|
||||
; AVX512F-NEXT: retq
|
||||
%in = load <8 x i32>, ptr %p
|
||||
@ -242,7 +242,7 @@ define <16 x i16> @testv16i1_zext_v16i16(ptr %p, ptr %q) {
|
||||
; AVX512VL-NEXT: vmovdqa (%rsi), %ymm0
|
||||
; AVX512VL-NEXT: vptestnmd %ymm0, %ymm0, %k1
|
||||
; AVX512VL-NEXT: kunpckbw %k0, %k1, %k1
|
||||
; AVX512VL-NEXT: vpternlogd $255, %zmm0, %zmm0, %zmm0 {%k1} {z}
|
||||
; AVX512VL-NEXT: vpternlogd {{.*#+}} zmm0 {%k1} {z} = -1
|
||||
; AVX512VL-NEXT: vpmovdw %zmm0, %ymm0
|
||||
; AVX512VL-NEXT: vpsrlw $15, %ymm0, %ymm0
|
||||
; AVX512VL-NEXT: retq
|
||||
@ -254,7 +254,7 @@ define <16 x i16> @testv16i1_zext_v16i16(ptr %p, ptr %q) {
|
||||
; AVX512F-NEXT: vmovdqa (%rsi), %ymm0
|
||||
; AVX512F-NEXT: vptestnmd %zmm0, %zmm0, %k1
|
||||
; AVX512F-NEXT: kunpckbw %k0, %k1, %k1
|
||||
; AVX512F-NEXT: vpternlogd $255, %zmm0, %zmm0, %zmm0 {%k1} {z}
|
||||
; AVX512F-NEXT: vpternlogd {{.*#+}} zmm0 {%k1} {z} = -1
|
||||
; AVX512F-NEXT: vpmovdw %zmm0, %ymm0
|
||||
; AVX512F-NEXT: vpsrlw $15, %ymm0, %ymm0
|
||||
; AVX512F-NEXT: retq
|
||||
|
@ -47,12 +47,12 @@ define <16 x i1> @shuf16i1_3_6_22_12_3_7_7_0_3_6_1_13_3_21_7_0(ptr %a, ptr %b) {
|
||||
; AVX512VL-NEXT: vmovdqa (%rsi), %ymm1
|
||||
; AVX512VL-NEXT: vptestnmd %ymm0, %ymm0, %k1
|
||||
; AVX512VL-NEXT: vptestnmd %ymm1, %ymm1, %k2
|
||||
; AVX512VL-NEXT: vpternlogd $255, %zmm0, %zmm0, %zmm0 {%k2} {z}
|
||||
; AVX512VL-NEXT: vpternlogd $255, %zmm1, %zmm1, %zmm1 {%k1} {z}
|
||||
; AVX512VL-NEXT: vpternlogd {{.*#+}} zmm0 {%k2} {z} = -1
|
||||
; AVX512VL-NEXT: vpternlogd {{.*#+}} zmm1 {%k1} {z} = -1
|
||||
; AVX512VL-NEXT: vpmovsxbd {{.*#+}} zmm2 = [3,6,18,20,3,7,7,0,3,6,1,21,3,19,7,0]
|
||||
; AVX512VL-NEXT: vpermi2d %zmm0, %zmm1, %zmm2
|
||||
; AVX512VL-NEXT: vptestmd %zmm2, %zmm2, %k1
|
||||
; AVX512VL-NEXT: vpternlogd $255, %zmm0, %zmm0, %zmm0 {%k1} {z}
|
||||
; AVX512VL-NEXT: vpternlogd {{.*#+}} zmm0 {%k1} {z} = -1
|
||||
; AVX512VL-NEXT: vpmovdb %zmm0, %xmm0
|
||||
; AVX512VL-NEXT: vzeroupper
|
||||
; AVX512VL-NEXT: retq
|
||||
@ -78,8 +78,8 @@ define <16 x i1> @shuf16i1_3_6_22_12_3_7_7_0_3_6_1_13_3_21_7_0(ptr %a, ptr %b) {
|
||||
; AVX512VLBW-NEXT: vmovdqa (%rsi), %ymm1
|
||||
; AVX512VLBW-NEXT: vptestnmd %ymm0, %ymm0, %k1
|
||||
; AVX512VLBW-NEXT: vptestnmd %ymm1, %ymm1, %k2
|
||||
; AVX512VLBW-NEXT: vpternlogd $255, %zmm0, %zmm0, %zmm0 {%k2} {z}
|
||||
; AVX512VLBW-NEXT: vpternlogd $255, %zmm1, %zmm1, %zmm1 {%k1} {z}
|
||||
; AVX512VLBW-NEXT: vpternlogd {{.*#+}} zmm0 {%k2} {z} = -1
|
||||
; AVX512VLBW-NEXT: vpternlogd {{.*#+}} zmm1 {%k1} {z} = -1
|
||||
; AVX512VLBW-NEXT: vpmovsxbd {{.*#+}} zmm2 = [3,6,18,20,3,7,7,0,3,6,1,21,3,19,7,0]
|
||||
; AVX512VLBW-NEXT: vpermi2d %zmm0, %zmm1, %zmm2
|
||||
; AVX512VLBW-NEXT: vptestmd %zmm2, %zmm2, %k0
|
||||
@ -93,12 +93,12 @@ define <16 x i1> @shuf16i1_3_6_22_12_3_7_7_0_3_6_1_13_3_21_7_0(ptr %a, ptr %b) {
|
||||
; AVX512F-NEXT: vmovdqa (%rsi), %ymm1
|
||||
; AVX512F-NEXT: vptestnmd %zmm0, %zmm0, %k1
|
||||
; AVX512F-NEXT: vptestnmd %zmm1, %zmm1, %k2
|
||||
; AVX512F-NEXT: vpternlogd $255, %zmm0, %zmm0, %zmm0 {%k2} {z}
|
||||
; AVX512F-NEXT: vpternlogd $255, %zmm1, %zmm1, %zmm1 {%k1} {z}
|
||||
; AVX512F-NEXT: vpternlogd {{.*#+}} zmm0 {%k2} {z} = -1
|
||||
; AVX512F-NEXT: vpternlogd {{.*#+}} zmm1 {%k1} {z} = -1
|
||||
; AVX512F-NEXT: vpmovsxbd {{.*#+}} zmm2 = [3,6,18,20,3,7,7,0,3,6,1,21,3,19,7,0]
|
||||
; AVX512F-NEXT: vpermi2d %zmm0, %zmm1, %zmm2
|
||||
; AVX512F-NEXT: vptestmd %zmm2, %zmm2, %k1
|
||||
; AVX512F-NEXT: vpternlogd $255, %zmm0, %zmm0, %zmm0 {%k1} {z}
|
||||
; AVX512F-NEXT: vpternlogd {{.*#+}} zmm0 {%k1} {z} = -1
|
||||
; AVX512F-NEXT: vpmovdb %zmm0, %xmm0
|
||||
; AVX512F-NEXT: vzeroupper
|
||||
; AVX512F-NEXT: retq
|
||||
@ -109,8 +109,8 @@ define <16 x i1> @shuf16i1_3_6_22_12_3_7_7_0_3_6_1_13_3_21_7_0(ptr %a, ptr %b) {
|
||||
; AVX512BW-NEXT: vmovdqa (%rsi), %ymm1
|
||||
; AVX512BW-NEXT: vptestnmd %zmm0, %zmm0, %k1
|
||||
; AVX512BW-NEXT: vptestnmd %zmm1, %zmm1, %k2
|
||||
; AVX512BW-NEXT: vpternlogd $255, %zmm0, %zmm0, %zmm0 {%k2} {z}
|
||||
; AVX512BW-NEXT: vpternlogd $255, %zmm1, %zmm1, %zmm1 {%k1} {z}
|
||||
; AVX512BW-NEXT: vpternlogd {{.*#+}} zmm0 {%k2} {z} = -1
|
||||
; AVX512BW-NEXT: vpternlogd {{.*#+}} zmm1 {%k1} {z} = -1
|
||||
; AVX512BW-NEXT: vpmovsxbd {{.*#+}} zmm2 = [3,6,18,20,3,7,7,0,3,6,1,21,3,19,7,0]
|
||||
; AVX512BW-NEXT: vpermi2d %zmm0, %zmm1, %zmm2
|
||||
; AVX512BW-NEXT: vptestmd %zmm2, %zmm2, %k0
|
||||
@ -152,7 +152,7 @@ define <32 x i1> @shuf32i1_3_6_22_12_3_7_7_0_3_6_1_13_3_21_7_0_3_6_22_12_3_7_7_0
|
||||
; AVX256VL-NEXT: vmovdqa32 %ymm0, %ymm2 {%k1} {z}
|
||||
; AVX256VL-NEXT: vpmovdw %ymm2, %xmm2
|
||||
; AVX256VL-NEXT: vpermq {{.*#+}} ymm2 = ymm2[1,1,1,1]
|
||||
; AVX256VL-NEXT: vpternlogq $220, {{\.?LCPI[0-9]+_[0-9]+}}(%rip), %ymm1, %ymm2
|
||||
; AVX256VL-NEXT: vpternlogq {{.*#+}} ymm2 = (ymm2 & ~mem) | ymm1
|
||||
; AVX256VL-NEXT: vpmovsxwd %xmm2, %ymm1
|
||||
; AVX256VL-NEXT: vpslld $31, %ymm1, %ymm1
|
||||
; AVX256VL-NEXT: vptestmd %ymm1, %ymm1, %k1
|
||||
@ -179,12 +179,12 @@ define <32 x i1> @shuf32i1_3_6_22_12_3_7_7_0_3_6_1_13_3_21_7_0_3_6_22_12_3_7_7_0
|
||||
; AVX512NOBW-NEXT: vextracti128 $1, %ymm0, %xmm0
|
||||
; AVX512NOBW-NEXT: vpmovsxbd %xmm0, %zmm0
|
||||
; AVX512NOBW-NEXT: vptestmd %zmm0, %zmm0, %k2
|
||||
; AVX512NOBW-NEXT: vpternlogd $255, %zmm0, %zmm0, %zmm0 {%k2} {z}
|
||||
; AVX512NOBW-NEXT: vpternlogd $255, %zmm1, %zmm1, %zmm1 {%k1} {z}
|
||||
; AVX512NOBW-NEXT: vpternlogd {{.*#+}} zmm0 {%k2} {z} = -1
|
||||
; AVX512NOBW-NEXT: vpternlogd {{.*#+}} zmm1 {%k1} {z} = -1
|
||||
; AVX512NOBW-NEXT: vpmovsxbd {{.*#+}} zmm2 = [3,6,22,12,3,7,7,0,3,6,1,13,3,21,7,0]
|
||||
; AVX512NOBW-NEXT: vpermi2d %zmm0, %zmm1, %zmm2
|
||||
; AVX512NOBW-NEXT: vptestmd %zmm2, %zmm2, %k1
|
||||
; AVX512NOBW-NEXT: vpternlogd $255, %zmm0, %zmm0, %zmm0 {%k1} {z}
|
||||
; AVX512NOBW-NEXT: vpternlogd {{.*#+}} zmm0 {%k1} {z} = -1
|
||||
; AVX512NOBW-NEXT: vpmovdb %zmm0, %xmm0
|
||||
; AVX512NOBW-NEXT: vinserti128 $1, %xmm0, %ymm0, %ymm0
|
||||
; AVX512NOBW-NEXT: retq
|
||||
|
@ -17,7 +17,7 @@ define <16 x i1> @smulo_v16i8(<16 x i8> %a0, <16 x i8> %a1, ptr %p2) nounwind {
|
||||
; AVX256-NEXT: vpxor %xmm2, %xmm2, %xmm2
|
||||
; AVX256-NEXT: vpcmpgtb %xmm0, %xmm2, %xmm2
|
||||
; AVX256-NEXT: vpcmpeqb %xmm1, %xmm2, %xmm1
|
||||
; AVX256-NEXT: vpternlogq $15, %xmm1, %xmm1, %xmm1
|
||||
; AVX256-NEXT: vpternlogq {{.*#+}} xmm1 = ~xmm1
|
||||
; AVX256-NEXT: vpshufd {{.*#+}} xmm2 = xmm1[2,3,2,3]
|
||||
; AVX256-NEXT: vpmovsxbd %xmm2, %ymm2
|
||||
; AVX256-NEXT: vptestmd %ymm2, %ymm2, %k1
|
||||
@ -46,7 +46,7 @@ define <16 x i1> @smulo_v16i8(<16 x i8> %a0, <16 x i8> %a1, ptr %p2) nounwind {
|
||||
; AVX512-NEXT: vpcmpneqd %zmm1, %zmm2, %k1
|
||||
; AVX512-NEXT: vpmovzxwd {{.*#+}} zmm0 = ymm0[0],zero,ymm0[1],zero,ymm0[2],zero,ymm0[3],zero,ymm0[4],zero,ymm0[5],zero,ymm0[6],zero,ymm0[7],zero,ymm0[8],zero,ymm0[9],zero,ymm0[10],zero,ymm0[11],zero,ymm0[12],zero,ymm0[13],zero,ymm0[14],zero,ymm0[15],zero
|
||||
; AVX512-NEXT: vpmovdb %zmm0, (%rdi)
|
||||
; AVX512-NEXT: vpternlogd $255, %zmm0, %zmm0, %zmm0 {%k1} {z}
|
||||
; AVX512-NEXT: vpternlogd {{.*#+}} zmm0 {%k1} {z} = -1
|
||||
; AVX512-NEXT: vpmovdb %zmm0, %xmm0
|
||||
; AVX512-NEXT: vzeroupper
|
||||
; AVX512-NEXT: retq
|
||||
@ -69,7 +69,7 @@ define <16 x i1> @umulo_v16i8(<16 x i8> %a0, <16 x i8> %a1, ptr %p2) nounwind {
|
||||
; AVX256-NEXT: vpackuswb %xmm2, %xmm1, %xmm1
|
||||
; AVX256-NEXT: vpxor %xmm2, %xmm2, %xmm2
|
||||
; AVX256-NEXT: vpcmpeqb %xmm2, %xmm1, %xmm1
|
||||
; AVX256-NEXT: vpternlogq $15, %xmm1, %xmm1, %xmm1
|
||||
; AVX256-NEXT: vpternlogq {{.*#+}} xmm1 = ~xmm1
|
||||
; AVX256-NEXT: vpshufd {{.*#+}} xmm2 = xmm1[2,3,2,3]
|
||||
; AVX256-NEXT: vpmovsxbd %xmm2, %ymm2
|
||||
; AVX256-NEXT: vptestmd %ymm2, %ymm2, %k1
|
||||
@ -98,7 +98,7 @@ define <16 x i1> @umulo_v16i8(<16 x i8> %a0, <16 x i8> %a1, ptr %p2) nounwind {
|
||||
; AVX512-NEXT: vptestmd %zmm1, %zmm1, %k1
|
||||
; AVX512-NEXT: vpmovzxwd {{.*#+}} zmm0 = ymm0[0],zero,ymm0[1],zero,ymm0[2],zero,ymm0[3],zero,ymm0[4],zero,ymm0[5],zero,ymm0[6],zero,ymm0[7],zero,ymm0[8],zero,ymm0[9],zero,ymm0[10],zero,ymm0[11],zero,ymm0[12],zero,ymm0[13],zero,ymm0[14],zero,ymm0[15],zero
|
||||
; AVX512-NEXT: vpmovdb %zmm0, (%rdi)
|
||||
; AVX512-NEXT: vpternlogd $255, %zmm0, %zmm0, %zmm0 {%k1} {z}
|
||||
; AVX512-NEXT: vpternlogd {{.*#+}} zmm0 {%k1} {z} = -1
|
||||
; AVX512-NEXT: vpmovdb %zmm0, %xmm0
|
||||
; AVX512-NEXT: vzeroupper
|
||||
; AVX512-NEXT: retq
|
||||
|
@ -64,7 +64,7 @@ define <32 x i8> @test_mul_32i8(<32 x i8> %a, <32 x i8> %b) {
|
||||
; AVX256BW-NEXT: vpandn %ymm1, %ymm2, %ymm1
|
||||
; AVX256BW-NEXT: vpmaddubsw %ymm1, %ymm0, %ymm0
|
||||
; AVX256BW-NEXT: vpsllw $8, %ymm0, %ymm0
|
||||
; AVX256BW-NEXT: vpternlogq $248, %ymm2, %ymm3, %ymm0
|
||||
; AVX256BW-NEXT: vpternlogq {{.*#+}} ymm0 = ymm0 | (ymm3 & ymm2)
|
||||
; AVX256BW-NEXT: retq
|
||||
;
|
||||
; AVX512BWVL-LABEL: test_mul_32i8:
|
||||
|
@ -55,10 +55,10 @@ define <64 x i8> @combine_pshufb_identity_mask(<64 x i8> %x0, i64 %m) {
|
||||
; X86-LABEL: combine_pshufb_identity_mask:
|
||||
; X86: # %bb.0:
|
||||
; X86-NEXT: kmovq {{[0-9]+}}(%esp), %k1
|
||||
; X86-NEXT: vpternlogd $255, %zmm1, %zmm1, %zmm1
|
||||
; X86-NEXT: vpternlogd {{.*#+}} zmm1 = -1
|
||||
; X86-NEXT: vbroadcasti32x4 {{.*#+}} zmm2 = [15,14,13,12,11,10,9,8,7,6,5,4,3,2,1,0,15,14,13,12,11,10,9,8,7,6,5,4,3,2,1,0,15,14,13,12,11,10,9,8,7,6,5,4,3,2,1,0,15,14,13,12,11,10,9,8,7,6,5,4,3,2,1,0]
|
||||
; X86-NEXT: # zmm2 = mem[0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3]
|
||||
; X86-NEXT: vpternlogd $255, %zmm3, %zmm3, %zmm3
|
||||
; X86-NEXT: vpternlogd {{.*#+}} zmm3 = -1
|
||||
; X86-NEXT: vpshufb %zmm2, %zmm0, %zmm3 {%k1}
|
||||
; X86-NEXT: vpshufb %zmm2, %zmm3, %zmm1 {%k1}
|
||||
; X86-NEXT: vmovdqa64 %zmm1, %zmm0
|
||||
@ -66,11 +66,11 @@ define <64 x i8> @combine_pshufb_identity_mask(<64 x i8> %x0, i64 %m) {
|
||||
;
|
||||
; X64-LABEL: combine_pshufb_identity_mask:
|
||||
; X64: # %bb.0:
|
||||
; X64-NEXT: vpternlogd $255, %zmm1, %zmm1, %zmm1
|
||||
; X64-NEXT: vpternlogd {{.*#+}} zmm1 = -1
|
||||
; X64-NEXT: vbroadcasti32x4 {{.*#+}} zmm2 = [15,14,13,12,11,10,9,8,7,6,5,4,3,2,1,0,15,14,13,12,11,10,9,8,7,6,5,4,3,2,1,0,15,14,13,12,11,10,9,8,7,6,5,4,3,2,1,0,15,14,13,12,11,10,9,8,7,6,5,4,3,2,1,0]
|
||||
; X64-NEXT: # zmm2 = mem[0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3]
|
||||
; X64-NEXT: kmovq %rdi, %k1
|
||||
; X64-NEXT: vpternlogd $255, %zmm3, %zmm3, %zmm3
|
||||
; X64-NEXT: vpternlogd {{.*#+}} zmm3 = -1
|
||||
; X64-NEXT: vpshufb %zmm2, %zmm0, %zmm3 {%k1}
|
||||
; X64-NEXT: vpshufb %zmm2, %zmm3, %zmm1 {%k1}
|
||||
; X64-NEXT: vmovdqa64 %zmm1, %zmm0
|
||||
|
Loading…
x
Reference in New Issue
Block a user