@@ -69,7 +69,7 @@ define <64 x i8> @f1(ptr %p0) {
69
69
; AVX512F-NEXT: vpshufb {{.*#+}} ymm5 = ymm5[u,u,u,u,u,u,u,u,u,u,u,1,5,7,11,13,17,19,23,25,29,31,u,u,u,u,u,u,u,u,u,u]
70
70
; AVX512F-NEXT: vpblendw {{.*#+}} ymm2 = ymm5[0,1,2],ymm2[3,4,5,6,7],ymm5[8,9,10],ymm2[11,12,13,14,15]
71
71
; AVX512F-NEXT: vpblendd {{.*#+}} ymm2 = ymm5[0,1,2,3],ymm2[4,5,6,7]
72
- ; AVX512F-NEXT: vpternlogq $228, {{\.?LCPI[0-9]+_[0-9]+}}(%rip), % ymm0, % ymm2
72
+ ; AVX512F-NEXT: vpternlogq {{.*#+}} ymm2 = ymm0 ^ (mem & ( ymm2 ^ ymm0))
73
73
; AVX512F-NEXT: vmovdqa 80(%rdi), %xmm0
74
74
; AVX512F-NEXT: vpshufb %xmm4, %xmm0, %xmm0
75
75
; AVX512F-NEXT: vmovdqa 64(%rdi), %xmm4
@@ -83,7 +83,7 @@ define <64 x i8> @f1(ptr %p0) {
83
83
; AVX512F-NEXT: vpor %xmm1, %xmm3, %xmm1
84
84
; AVX512F-NEXT: vmovdqa 32(%rdi), %ymm3
85
85
; AVX512F-NEXT: vpshufb {{.*#+}} ymm3 = zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,ymm3[1,5,7,11,13,17,19,23,25,29,31],zero,zero,zero,zero,zero,zero,zero,zero,zero,zero
86
- ; AVX512F-NEXT: vpternlogq $248, {{\.?LCPI[0-9]+_[0-9]+}}(%rip), %ymm1, % ymm3
86
+ ; AVX512F-NEXT: vpternlogq {{.*#+}} ymm3 = ymm3 | (ymm1 & mem)
87
87
; AVX512F-NEXT: vpblendw {{.*#+}} ymm0 = ymm3[0,1,2],ymm0[3,4,5,6,7],ymm3[8,9,10],ymm0[11,12,13,14,15]
88
88
; AVX512F-NEXT: vpblendd {{.*#+}} ymm0 = ymm3[0,1,2,3],ymm0[4,5,6,7]
89
89
; AVX512F-NEXT: vinserti64x4 $1, %ymm2, %zmm0, %zmm0
@@ -214,7 +214,7 @@ define <64 x i8> @f2(ptr %p0) {
214
214
; AVX512F-NEXT: vmovdqa 128(%rdi), %ymm4
215
215
; AVX512F-NEXT: vpshufb {{.*#+}} ymm4 = ymm4[u,u,u,u,u,u,u,u,u,u,u,3,5,9,11,15,17,21,23,27,29],zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero
216
216
; AVX512F-NEXT: vinserti64x4 $1, %ymm4, %zmm2, %zmm2
217
- ; AVX512F-NEXT: vpternlogq $248, {{\.?LCPI[0-9]+_[0-9]+}}(%rip), %zmm0, % zmm2
217
+ ; AVX512F-NEXT: vpternlogq {{.*#+}} zmm2 = zmm2 | (zmm0 & mem)
218
218
; AVX512F-NEXT: vmovdqa 96(%rdi), %xmm0
219
219
; AVX512F-NEXT: vpshufb %xmm5, %xmm0, %xmm0
220
220
; AVX512F-NEXT: vmovdqa 112(%rdi), %xmm4
@@ -228,7 +228,7 @@ define <64 x i8> @f2(ptr %p0) {
228
228
; AVX512F-NEXT: vpor %xmm1, %xmm3, %xmm1
229
229
; AVX512F-NEXT: vinserti128 $1, %xmm1, %ymm0, %ymm1
230
230
; AVX512F-NEXT: vshufi64x2 {{.*#+}} zmm0 = zmm1[0,1,2,3],zmm0[4,5,6,7]
231
- ; AVX512F-NEXT: vpternlogd $216, {{\.?LCPI[0-9]+_[0-9]+}}(%rip), %zmm2, % zmm0
231
+ ; AVX512F-NEXT: vpternlogd {{.*#+}} zmm0 = zmm0 ^ (mem & ( zmm0 ^ zmm2))
232
232
; AVX512F-NEXT: retq
233
233
;
234
234
; AVX512BW-LABEL: f2:
@@ -344,7 +344,7 @@ define <64 x i8> @f3(ptr %p0) {
344
344
; AVX512F-NEXT: # ymm4 = mem[0,1,0,1]
345
345
; AVX512F-NEXT: vpshufb %ymm4, %ymm2, %ymm2
346
346
; AVX512F-NEXT: vpmovsxwd {{.*#+}} ymm5 = [4294967295,4294967295,4294967295,4294967295,4294967295,255,0,0]
347
- ; AVX512F-NEXT: vpternlogq $216, % ymm5, %ymm2, % ymm0
347
+ ; AVX512F-NEXT: vpternlogq {{.*#+}} ymm0 = ymm0 ^ ( ymm5 & ( ymm0 ^ ymm2))
348
348
; AVX512F-NEXT: vmovdqa 112(%rdi), %xmm6
349
349
; AVX512F-NEXT: vmovdqa {{.*#+}} xmm7 = [128,128,128,128,128,0,4,6,10,12,u,u,u,u,u,u]
350
350
; AVX512F-NEXT: vpshufb %xmm7, %xmm6, %xmm6
@@ -369,7 +369,7 @@ define <64 x i8> @f3(ptr %p0) {
369
369
; AVX512F-NEXT: vpshufb %ymm4, %ymm3, %ymm3
370
370
; AVX512F-NEXT: vpblendw {{.*#+}} xmm2 = xmm2[0,1,2,3,4],xmm3[5,6,7]
371
371
; AVX512F-NEXT: vpblendd {{.*#+}} ymm2 = ymm2[0,1,2,3],ymm3[4,5,6,7]
372
- ; AVX512F-NEXT: vpternlogq $226, % ymm1, % ymm5, % ymm2
372
+ ; AVX512F-NEXT: vpternlogq {{.*#+}} ymm2 = ymm1 ^ ( ymm5 & ( ymm2 ^ ymm1))
373
373
; AVX512F-NEXT: vinserti64x4 $1, %ymm0, %zmm2, %zmm0
374
374
; AVX512F-NEXT: retq
375
375
;
@@ -497,7 +497,7 @@ define <64 x i8> @f4(ptr %p0) {
497
497
; AVX512F-NEXT: vmovdqa 128(%rdi), %ymm4
498
498
; AVX512F-NEXT: vpshufb {{.*#+}} ymm4 = ymm4[u,u,u,u,u,u,u,u,u,u,u,2,4,8,10,14,16,20,22,26,28],zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero
499
499
; AVX512F-NEXT: vinserti64x4 $1, %ymm4, %zmm2, %zmm2
500
- ; AVX512F-NEXT: vpternlogq $248, {{\.?LCPI[0-9]+_[0-9]+}}(%rip), %zmm0, % zmm2
500
+ ; AVX512F-NEXT: vpternlogq {{.*#+}} zmm2 = zmm2 | (zmm0 & mem)
501
501
; AVX512F-NEXT: vmovdqa 96(%rdi), %xmm0
502
502
; AVX512F-NEXT: vpshufb %xmm5, %xmm0, %xmm0
503
503
; AVX512F-NEXT: vmovdqa 112(%rdi), %xmm4
@@ -511,7 +511,7 @@ define <64 x i8> @f4(ptr %p0) {
511
511
; AVX512F-NEXT: vpor %xmm1, %xmm3, %xmm1
512
512
; AVX512F-NEXT: vinserti128 $1, %xmm1, %ymm0, %ymm1
513
513
; AVX512F-NEXT: vshufi64x2 {{.*#+}} zmm0 = zmm1[0,1,2,3],zmm0[4,5,6,7]
514
- ; AVX512F-NEXT: vpternlogd $216, {{\.?LCPI[0-9]+_[0-9]+}}(%rip), %zmm2, % zmm0
514
+ ; AVX512F-NEXT: vpternlogd {{.*#+}} zmm0 = zmm0 ^ (mem & ( zmm0 ^ zmm2))
515
515
; AVX512F-NEXT: retq
516
516
;
517
517
; AVX512BW-LABEL: f4:
0 commit comments