@@ -35,14 +35,14 @@ define <2 x i64> @bitselect_v2i64_rr(<2 x i64>, <2 x i64>) {
35
35
; AVX512F-NEXT: # kill: def $xmm1 killed $xmm1 def $zmm1
36
36
; AVX512F-NEXT: # kill: def $xmm0 killed $xmm0 def $zmm0
37
37
; AVX512F-NEXT: vpmovsxbd {{.*#+}} xmm2 = [4294967295,4294967294,4294967293,4294967292]
38
- ; AVX512F-NEXT: vpternlogq $216, % zmm2, %zmm1, % zmm0
38
+ ; AVX512F-NEXT: vpternlogq {{.*#+}} zmm0 = zmm0 ^ ( zmm2 & ( zmm0 ^ zmm1))
39
39
; AVX512F-NEXT: # kill: def $xmm0 killed $xmm0 killed $zmm0
40
40
; AVX512F-NEXT: vzeroupper
41
41
; AVX512F-NEXT: retq
42
42
;
43
43
; AVX512VL-LABEL: bitselect_v2i64_rr:
44
44
; AVX512VL: # %bb.0:
45
- ; AVX512VL-NEXT: vpternlogq $216, {{\.?LCPI[0-9]+_[0-9]+}}(%rip), %xmm1, % xmm0
45
+ ; AVX512VL-NEXT: vpternlogq {{.*#+}} xmm0 = xmm0 ^ (mem & ( xmm0 ^ xmm1))
46
46
; AVX512VL-NEXT: retq
47
47
%3 = and <2 x i64 > %0 , <i64 4294967296 , i64 12884901890 >
48
48
%4 = and <2 x i64 > %1 , <i64 -4294967297 , i64 -12884901891 >
@@ -78,15 +78,15 @@ define <2 x i64> @bitselect_v2i64_rm(<2 x i64>, ptr nocapture readonly) {
78
78
; AVX512F-NEXT: # kill: def $xmm0 killed $xmm0 def $zmm0
79
79
; AVX512F-NEXT: vmovdqa (%rdi), %xmm1
80
80
; AVX512F-NEXT: vpmovsxbd {{.*#+}} xmm2 = [4294967294,4294967293,4294967292,4294967295]
81
- ; AVX512F-NEXT: vpternlogq $184, %zmm1, % zmm2, % zmm0
81
+ ; AVX512F-NEXT: vpternlogq {{.*#+}} zmm0 = zmm0 ^ ( zmm2 & ( zmm0 ^ zmm1))
82
82
; AVX512F-NEXT: # kill: def $xmm0 killed $xmm0 killed $zmm0
83
83
; AVX512F-NEXT: vzeroupper
84
84
; AVX512F-NEXT: retq
85
85
;
86
86
; AVX512VL-LABEL: bitselect_v2i64_rm:
87
87
; AVX512VL: # %bb.0:
88
88
; AVX512VL-NEXT: vmovdqa (%rdi), %xmm1
89
- ; AVX512VL-NEXT: vpternlogq $216, {{\.?LCPI[0-9]+_[0-9]+}}(%rip), %xmm1, % xmm0
89
+ ; AVX512VL-NEXT: vpternlogq {{.*#+}} xmm0 = xmm0 ^ (mem & ( xmm0 ^ xmm1))
90
90
; AVX512VL-NEXT: retq
91
91
%3 = load <2 x i64 >, ptr %1
92
92
%4 = and <2 x i64 > %0 , <i64 8589934593 , i64 3 >
@@ -123,15 +123,15 @@ define <2 x i64> @bitselect_v2i64_mr(ptr nocapture readonly, <2 x i64>) {
123
123
; AVX512F-NEXT: # kill: def $xmm0 killed $xmm0 def $zmm0
124
124
; AVX512F-NEXT: vmovdqa (%rdi), %xmm1
125
125
; AVX512F-NEXT: vpmovsxbd {{.*#+}} xmm2 = [2,3,0,1]
126
- ; AVX512F-NEXT: vpternlogq $184, %zmm1, % zmm2, % zmm0
126
+ ; AVX512F-NEXT: vpternlogq {{.*#+}} zmm0 = zmm0 ^ ( zmm2 & ( zmm0 ^ zmm1))
127
127
; AVX512F-NEXT: # kill: def $xmm0 killed $xmm0 killed $zmm0
128
128
; AVX512F-NEXT: vzeroupper
129
129
; AVX512F-NEXT: retq
130
130
;
131
131
; AVX512VL-LABEL: bitselect_v2i64_mr:
132
132
; AVX512VL: # %bb.0:
133
133
; AVX512VL-NEXT: vmovdqa (%rdi), %xmm1
134
- ; AVX512VL-NEXT: vpternlogq $216, {{\.?LCPI[0-9]+_[0-9]+}}(%rip), %xmm1, % xmm0
134
+ ; AVX512VL-NEXT: vpternlogq {{.*#+}} xmm0 = xmm0 ^ (mem & ( xmm0 ^ xmm1))
135
135
; AVX512VL-NEXT: retq
136
136
%3 = load <2 x i64 >, ptr %0
137
137
%4 = and <2 x i64 > %3 , <i64 12884901890 , i64 4294967296 >
@@ -171,7 +171,7 @@ define <2 x i64> @bitselect_v2i64_mm(ptr nocapture readonly, ptr nocapture reado
171
171
; AVX512F-NEXT: vmovdqa (%rdi), %xmm1
172
172
; AVX512F-NEXT: vmovdqa (%rsi), %xmm0
173
173
; AVX512F-NEXT: vpmovsxbd {{.*#+}} xmm2 = [4294967292,4294967295,4294967294,4294967293]
174
- ; AVX512F-NEXT: vpternlogq $226, % zmm1, % zmm2, % zmm0
174
+ ; AVX512F-NEXT: vpternlogq {{.*#+}} zmm0 = zmm1 ^ ( zmm2 & ( zmm0 ^ zmm1))
175
175
; AVX512F-NEXT: # kill: def $xmm0 killed $xmm0 killed $zmm0
176
176
; AVX512F-NEXT: vzeroupper
177
177
; AVX512F-NEXT: retq
@@ -180,7 +180,7 @@ define <2 x i64> @bitselect_v2i64_mm(ptr nocapture readonly, ptr nocapture reado
180
180
; AVX512VL: # %bb.0:
181
181
; AVX512VL-NEXT: vmovdqa (%rsi), %xmm1
182
182
; AVX512VL-NEXT: vpmovsxbd {{.*#+}} xmm0 = [4294967292,4294967295,4294967294,4294967293]
183
- ; AVX512VL-NEXT: vpternlogq $202, (%rdi), % xmm1, %xmm0
183
+ ; AVX512VL-NEXT: vpternlogq {{.*#+}} xmm0 = mem ^ (xmm0 & ( xmm1 ^ mem))
184
184
; AVX512VL-NEXT: retq
185
185
%3 = load <2 x i64 >, ptr %0
186
186
%4 = load <2 x i64 >, ptr %1
@@ -237,7 +237,7 @@ define <2 x i64> @bitselect_v2i64_broadcast_rrr(<2 x i64> %a0, <2 x i64> %a1, i6
237
237
; AVX512VL-LABEL: bitselect_v2i64_broadcast_rrr:
238
238
; AVX512VL: # %bb.0:
239
239
; AVX512VL-NEXT: vpbroadcastq %rdi, %xmm2
240
- ; AVX512VL-NEXT: vpternlogq $226, % xmm1, % xmm2, % xmm0
240
+ ; AVX512VL-NEXT: vpternlogq {{.*#+}} xmm0 = xmm1 ^ ( xmm2 & ( xmm0 ^ xmm1))
241
241
; AVX512VL-NEXT: retq
242
242
%1 = insertelement <2 x i64 > undef , i64 %a2 , i32 0
243
243
%2 = shufflevector <2 x i64 > %1 , <2 x i64 > undef , <2 x i32 > zeroinitializer
@@ -283,7 +283,7 @@ define <2 x i64> @bitselect_v2i64_broadcast_rrm(<2 x i64> %a0, <2 x i64> %a1, pt
283
283
;
284
284
; AVX512VL-LABEL: bitselect_v2i64_broadcast_rrm:
285
285
; AVX512VL: # %bb.0:
286
- ; AVX512VL-NEXT: vpternlogq $228, (%rdi){1to2}, % xmm1, % xmm0
286
+ ; AVX512VL-NEXT: vpternlogq {{.*#+}} xmm0 = xmm1 ^ (mem & ( xmm0 ^ xmm1))
287
287
; AVX512VL-NEXT: retq
288
288
%a2 = load i64 , ptr %p2
289
289
%1 = insertelement <2 x i64 > undef , i64 %a2 , i32 0
@@ -328,13 +328,13 @@ define <4 x i64> @bitselect_v4i64_rr(<4 x i64>, <4 x i64>) {
328
328
; AVX512F-NEXT: # kill: def $ymm1 killed $ymm1 def $zmm1
329
329
; AVX512F-NEXT: # kill: def $ymm0 killed $ymm0 def $zmm0
330
330
; AVX512F-NEXT: vpmovsxbd {{.*#+}} ymm2 = [4294967295,4294967294,4294967293,4294967292,4294967293,4294967292,4294967293,4294967292]
331
- ; AVX512F-NEXT: vpternlogq $216, % zmm2, %zmm1, % zmm0
331
+ ; AVX512F-NEXT: vpternlogq {{.*#+}} zmm0 = zmm0 ^ ( zmm2 & ( zmm0 ^ zmm1))
332
332
; AVX512F-NEXT: # kill: def $ymm0 killed $ymm0 killed $zmm0
333
333
; AVX512F-NEXT: retq
334
334
;
335
335
; AVX512VL-LABEL: bitselect_v4i64_rr:
336
336
; AVX512VL: # %bb.0:
337
- ; AVX512VL-NEXT: vpternlogq $216, {{\.?LCPI[0-9]+_[0-9]+}}(%rip), %ymm1, % ymm0
337
+ ; AVX512VL-NEXT: vpternlogq {{.*#+}} ymm0 = ymm0 ^ (mem & ( ymm0 ^ ymm1))
338
338
; AVX512VL-NEXT: retq
339
339
%3 = and <4 x i64 > %0 , <i64 4294967296 , i64 12884901890 , i64 12884901890 , i64 12884901890 >
340
340
%4 = and <4 x i64 > %1 , <i64 -4294967297 , i64 -12884901891 , i64 -12884901891 , i64 -12884901891 >
@@ -378,14 +378,14 @@ define <4 x i64> @bitselect_v4i64_rm(<4 x i64>, ptr nocapture readonly) {
378
378
; AVX512F-NEXT: # kill: def $ymm0 killed $ymm0 def $zmm0
379
379
; AVX512F-NEXT: vmovdqa (%rdi), %ymm1
380
380
; AVX512F-NEXT: vpmovsxbd {{.*#+}} ymm2 = [4294967294,4294967293,4294967292,4294967295,4294967294,4294967293,4294967292,4294967295]
381
- ; AVX512F-NEXT: vpternlogq $184, %zmm1, % zmm2, % zmm0
381
+ ; AVX512F-NEXT: vpternlogq {{.*#+}} zmm0 = zmm0 ^ ( zmm2 & ( zmm0 ^ zmm1))
382
382
; AVX512F-NEXT: # kill: def $ymm0 killed $ymm0 killed $zmm0
383
383
; AVX512F-NEXT: retq
384
384
;
385
385
; AVX512VL-LABEL: bitselect_v4i64_rm:
386
386
; AVX512VL: # %bb.0:
387
387
; AVX512VL-NEXT: vmovdqa (%rdi), %ymm1
388
- ; AVX512VL-NEXT: vpternlogq $216, {{\.?LCPI[0-9]+_[0-9]+}}(%rip), %ymm1, % ymm0
388
+ ; AVX512VL-NEXT: vpternlogq {{.*#+}} ymm0 = ymm0 ^ (mem & ( ymm0 ^ ymm1))
389
389
; AVX512VL-NEXT: retq
390
390
%3 = load <4 x i64 >, ptr %1
391
391
%4 = and <4 x i64 > %0 , <i64 8589934593 , i64 3 , i64 8589934593 , i64 3 >
@@ -430,14 +430,14 @@ define <4 x i64> @bitselect_v4i64_mr(ptr nocapture readonly, <4 x i64>) {
430
430
; AVX512F-NEXT: # kill: def $ymm0 killed $ymm0 def $zmm0
431
431
; AVX512F-NEXT: vmovdqa (%rdi), %ymm1
432
432
; AVX512F-NEXT: vpmovsxbd {{.*#+}} ymm2 = [2,3,0,1,2,3,0,1]
433
- ; AVX512F-NEXT: vpternlogq $184, %zmm1, % zmm2, % zmm0
433
+ ; AVX512F-NEXT: vpternlogq {{.*#+}} zmm0 = zmm0 ^ ( zmm2 & ( zmm0 ^ zmm1))
434
434
; AVX512F-NEXT: # kill: def $ymm0 killed $ymm0 killed $zmm0
435
435
; AVX512F-NEXT: retq
436
436
;
437
437
; AVX512VL-LABEL: bitselect_v4i64_mr:
438
438
; AVX512VL: # %bb.0:
439
439
; AVX512VL-NEXT: vmovdqa (%rdi), %ymm1
440
- ; AVX512VL-NEXT: vpternlogq $216, {{\.?LCPI[0-9]+_[0-9]+}}(%rip), %ymm1, % ymm0
440
+ ; AVX512VL-NEXT: vpternlogq {{.*#+}} ymm0 = ymm0 ^ (mem & ( ymm0 ^ ymm1))
441
441
; AVX512VL-NEXT: retq
442
442
%3 = load <4 x i64 >, ptr %0
443
443
%4 = and <4 x i64 > %3 , <i64 12884901890 , i64 4294967296 , i64 12884901890 , i64 4294967296 >
@@ -483,15 +483,15 @@ define <4 x i64> @bitselect_v4i64_mm(ptr nocapture readonly, ptr nocapture reado
483
483
; AVX512F-NEXT: vmovdqa (%rdi), %ymm1
484
484
; AVX512F-NEXT: vmovdqa (%rsi), %ymm0
485
485
; AVX512F-NEXT: vpmovsxbd {{.*#+}} ymm2 = [4294967292,4294967295,4294967294,4294967293,4294967292,4294967295,4294967294,4294967293]
486
- ; AVX512F-NEXT: vpternlogq $226, % zmm1, % zmm2, % zmm0
486
+ ; AVX512F-NEXT: vpternlogq {{.*#+}} zmm0 = zmm1 ^ ( zmm2 & ( zmm0 ^ zmm1))
487
487
; AVX512F-NEXT: # kill: def $ymm0 killed $ymm0 killed $zmm0
488
488
; AVX512F-NEXT: retq
489
489
;
490
490
; AVX512VL-LABEL: bitselect_v4i64_mm:
491
491
; AVX512VL: # %bb.0:
492
492
; AVX512VL-NEXT: vmovdqa (%rsi), %ymm1
493
493
; AVX512VL-NEXT: vpmovsxbd {{.*#+}} ymm0 = [4294967292,4294967295,4294967294,4294967293,4294967292,4294967295,4294967294,4294967293]
494
- ; AVX512VL-NEXT: vpternlogq $202, (%rdi), % ymm1, %ymm0
494
+ ; AVX512VL-NEXT: vpternlogq {{.*#+}} ymm0 = mem ^ (ymm0 & ( ymm1 ^ mem))
495
495
; AVX512VL-NEXT: retq
496
496
%3 = load <4 x i64 >, ptr %0
497
497
%4 = load <4 x i64 >, ptr %1
@@ -554,7 +554,7 @@ define <4 x i64> @bitselect_v4i64_broadcast_rrr(<4 x i64> %a0, <4 x i64> %a1, i6
554
554
; AVX512VL-LABEL: bitselect_v4i64_broadcast_rrr:
555
555
; AVX512VL: # %bb.0:
556
556
; AVX512VL-NEXT: vpbroadcastq %rdi, %ymm2
557
- ; AVX512VL-NEXT: vpternlogq $226, % ymm1, % ymm2, % ymm0
557
+ ; AVX512VL-NEXT: vpternlogq {{.*#+}} ymm0 = ymm1 ^ ( ymm2 & ( ymm0 ^ ymm1))
558
558
; AVX512VL-NEXT: retq
559
559
%1 = insertelement <4 x i64 > undef , i64 %a2 , i32 0
560
560
%2 = shufflevector <4 x i64 > %1 , <4 x i64 > undef , <4 x i32 > zeroinitializer
@@ -604,7 +604,7 @@ define <4 x i64> @bitselect_v4i64_broadcast_rrm(<4 x i64> %a0, <4 x i64> %a1, pt
604
604
;
605
605
; AVX512VL-LABEL: bitselect_v4i64_broadcast_rrm:
606
606
; AVX512VL: # %bb.0:
607
- ; AVX512VL-NEXT: vpternlogq $228, (%rdi){1to4}, % ymm1, % ymm0
607
+ ; AVX512VL-NEXT: vpternlogq {{.*#+}} ymm0 = ymm1 ^ (mem & ( ymm0 ^ ymm1))
608
608
; AVX512VL-NEXT: retq
609
609
%a2 = load i64 , ptr %p2
610
610
%1 = insertelement <4 x i64 > undef , i64 %a2 , i32 0
@@ -666,7 +666,7 @@ define <8 x i64> @bitselect_v8i64_rr(<8 x i64>, <8 x i64>) {
666
666
;
667
667
; AVX512-LABEL: bitselect_v8i64_rr:
668
668
; AVX512: # %bb.0:
669
- ; AVX512-NEXT: vpternlogq $216, {{\.?LCPI[0-9]+_[0-9]+}}(%rip), %zmm1, % zmm0
669
+ ; AVX512-NEXT: vpternlogq {{.*#+}} zmm0 = zmm0 ^ (mem & ( zmm0 ^ zmm1))
670
670
; AVX512-NEXT: retq
671
671
%3 = and <8 x i64 > %0 , <i64 4294967296 , i64 12884901890 , i64 12884901890 , i64 12884901890 , i64 4294967296 , i64 12884901890 , i64 12884901890 , i64 12884901890 >
672
672
%4 = and <8 x i64 > %1 , <i64 -4294967297 , i64 -12884901891 , i64 -12884901891 , i64 -12884901891 , i64 -4294967297 , i64 -12884901891 , i64 -12884901891 , i64 -12884901891 >
@@ -728,7 +728,7 @@ define <8 x i64> @bitselect_v8i64_rm(<8 x i64>, ptr nocapture readonly) {
728
728
; AVX512-LABEL: bitselect_v8i64_rm:
729
729
; AVX512: # %bb.0:
730
730
; AVX512-NEXT: vmovdqa64 (%rdi), %zmm1
731
- ; AVX512-NEXT: vpternlogq $216, {{\.?LCPI[0-9]+_[0-9]+}}(%rip), %zmm1, % zmm0
731
+ ; AVX512-NEXT: vpternlogq {{.*#+}} zmm0 = zmm0 ^ (mem & ( zmm0 ^ zmm1))
732
732
; AVX512-NEXT: retq
733
733
%3 = load <8 x i64 >, ptr %1
734
734
%4 = and <8 x i64 > %0 , <i64 8589934593 , i64 3 , i64 8589934593 , i64 3 , i64 8589934593 , i64 3 , i64 8589934593 , i64 3 >
@@ -791,7 +791,7 @@ define <8 x i64> @bitselect_v8i64_mr(ptr nocapture readonly, <8 x i64>) {
791
791
; AVX512-LABEL: bitselect_v8i64_mr:
792
792
; AVX512: # %bb.0:
793
793
; AVX512-NEXT: vmovdqa64 (%rdi), %zmm1
794
- ; AVX512-NEXT: vpternlogq $216, {{\.?LCPI[0-9]+_[0-9]+}}(%rip), %zmm1, % zmm0
794
+ ; AVX512-NEXT: vpternlogq {{.*#+}} zmm0 = zmm0 ^ (mem & ( zmm0 ^ zmm1))
795
795
; AVX512-NEXT: retq
796
796
%3 = load <8 x i64 >, ptr %0
797
797
%4 = and <8 x i64 > %3 , <i64 12884901890 , i64 4294967296 , i64 12884901890 , i64 4294967296 , i64 12884901890 , i64 4294967296 , i64 12884901890 , i64 4294967296 >
@@ -852,7 +852,7 @@ define <8 x i64> @bitselect_v8i64_mm(ptr nocapture readonly, ptr nocapture reado
852
852
; AVX512-NEXT: vmovdqa64 (%rsi), %zmm1
853
853
; AVX512-NEXT: vbroadcasti32x4 {{.*#+}} zmm0 = [18446744073709551612,18446744065119617022,18446744073709551612,18446744065119617022,18446744073709551612,18446744065119617022,18446744073709551612,18446744065119617022]
854
854
; AVX512-NEXT: # zmm0 = mem[0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3]
855
- ; AVX512-NEXT: vpternlogq $202, (%rdi), % zmm1, %zmm0
855
+ ; AVX512-NEXT: vpternlogq {{.*#+}} zmm0 = mem ^ (zmm0 & ( zmm1 ^ mem))
856
856
; AVX512-NEXT: retq
857
857
%3 = load <8 x i64 >, ptr %0
858
858
%4 = load <8 x i64 >, ptr %1
@@ -921,7 +921,7 @@ define <8 x i64> @bitselect_v8i64_broadcast_rrr(<8 x i64> %a0, <8 x i64> %a1, i6
921
921
; AVX512-LABEL: bitselect_v8i64_broadcast_rrr:
922
922
; AVX512: # %bb.0:
923
923
; AVX512-NEXT: vpbroadcastq %rdi, %zmm2
924
- ; AVX512-NEXT: vpternlogq $226, % zmm1, % zmm2, % zmm0
924
+ ; AVX512-NEXT: vpternlogq {{.*#+}} zmm0 = zmm1 ^ ( zmm2 & ( zmm0 ^ zmm1))
925
925
; AVX512-NEXT: retq
926
926
%1 = insertelement <8 x i64 > undef , i64 %a2 , i32 0
927
927
%2 = shufflevector <8 x i64 > %1 , <8 x i64 > undef , <8 x i32 > zeroinitializer
@@ -975,7 +975,7 @@ define <8 x i64> @bitselect_v8i64_broadcast_rrm(<8 x i64> %a0, <8 x i64> %a1, pt
975
975
;
976
976
; AVX512-LABEL: bitselect_v8i64_broadcast_rrm:
977
977
; AVX512: # %bb.0:
978
- ; AVX512-NEXT: vpternlogq $228, (%rdi){1to8}, % zmm1, % zmm0
978
+ ; AVX512-NEXT: vpternlogq {{.*#+}} zmm0 = zmm1 ^ (mem & ( zmm0 ^ zmm1))
979
979
; AVX512-NEXT: retq
980
980
%a2 = load i64 , ptr %p2
981
981
%1 = insertelement <8 x i64 > undef , i64 %a2 , i32 0
@@ -1040,7 +1040,7 @@ define <4 x i1> @bitselect_v4i1_loop(<4 x i32> %a0, <4 x i32> %a1) {
1040
1040
; AVX512F-NEXT: vptestnmd %zmm0, %zmm0, %k0 {%k2}
1041
1041
; AVX512F-NEXT: vptestmd %zmm0, %zmm0, %k1 {%k1}
1042
1042
; AVX512F-NEXT: korw %k0, %k1, %k1
1043
- ; AVX512F-NEXT: vpternlogd $255, % zmm0, %zmm0, %zmm0 {%k1} {z}
1043
+ ; AVX512F-NEXT: vpternlogd {{.*#+}} zmm0 {%k1} {z} = -1
1044
1044
; AVX512F-NEXT: # kill: def $xmm0 killed $xmm0 killed $zmm0
1045
1045
; AVX512F-NEXT: vzeroupper
1046
1046
; AVX512F-NEXT: retq
@@ -1147,7 +1147,7 @@ define void @constantfold_andn_mask() nounwind {
1147
1147
; AVX512F-NEXT: vpand %xmm2, %xmm0, %xmm0
1148
1148
; AVX512F-NEXT: vpavgb %xmm2, %xmm0, %xmm0
1149
1149
; AVX512F-NEXT: vpandn %xmm1, %xmm0, %xmm0
1150
- ; AVX512F-NEXT: vpternlogq $184, %zmm1, % zmm2, % zmm0
1150
+ ; AVX512F-NEXT: vpternlogq {{.*#+}} zmm0 = zmm0 ^ ( zmm2 & ( zmm0 ^ zmm1))
1151
1151
; AVX512F-NEXT: movabsq $87960930222080, %rax # imm = 0x500000000000
1152
1152
; AVX512F-NEXT: xorq d@GOTPCREL(%rip), %rax
1153
1153
; AVX512F-NEXT: vmovdqa %xmm0, (%rax)
@@ -1164,7 +1164,7 @@ define void @constantfold_andn_mask() nounwind {
1164
1164
; AVX512VL-NEXT: vpand %xmm2, %xmm0, %xmm0
1165
1165
; AVX512VL-NEXT: vpavgb %xmm2, %xmm0, %xmm0
1166
1166
; AVX512VL-NEXT: vpandn %xmm1, %xmm0, %xmm0
1167
- ; AVX512VL-NEXT: vpternlogq $216, % xmm2, %xmm1, % xmm0
1167
+ ; AVX512VL-NEXT: vpternlogq {{.*#+}} xmm0 = xmm0 ^ ( xmm2 & ( xmm0 ^ xmm1))
1168
1168
; AVX512VL-NEXT: movabsq $87960930222080, %rax # imm = 0x500000000000
1169
1169
; AVX512VL-NEXT: xorq d@GOTPCREL(%rip), %rax
1170
1170
; AVX512VL-NEXT: vmovdqa %xmm0, (%rax)
0 commit comments