@@ -391,12 +391,12 @@ define <32 x i8> @var_rotate_v32i8(<32 x i8> %a, <32 x i8> %b) nounwind {
391391; AVX512F: # %bb.0:
392392; AVX512F-NEXT: vpsllw $4, %ymm0, %ymm2
393393; AVX512F-NEXT: vpsrlw $4, %ymm0, %ymm3
394- ; AVX512F-NEXT: vpternlogd $216, {{\.?LCPI[0-9]+_[0-9]+}}(%rip){1to16}, %zmm2, % zmm3
394+ ; AVX512F-NEXT: vpternlogd {{.*#+}} zmm3 = zmm3 ^ (mem & ( zmm3 ^ zmm2))
395395; AVX512F-NEXT: vpsllw $5, %ymm1, %ymm1
396396; AVX512F-NEXT: vpblendvb %ymm1, %ymm3, %ymm0, %ymm0
397397; AVX512F-NEXT: vpsllw $2, %ymm0, %ymm2
398398; AVX512F-NEXT: vpsrlw $6, %ymm0, %ymm3
399- ; AVX512F-NEXT: vpternlogd $216, {{\.?LCPI[0-9]+_[0-9]+}}(%rip){1to16}, %zmm2, % zmm3
399+ ; AVX512F-NEXT: vpternlogd {{.*#+}} zmm3 = zmm3 ^ (mem & ( zmm3 ^ zmm2))
400400; AVX512F-NEXT: vpaddb %ymm1, %ymm1, %ymm1
401401; AVX512F-NEXT: vpblendvb %ymm1, %ymm3, %ymm0, %ymm0
402402; AVX512F-NEXT: vpsrlw $7, %ymm0, %ymm2
@@ -411,17 +411,17 @@ define <32 x i8> @var_rotate_v32i8(<32 x i8> %a, <32 x i8> %b) nounwind {
411411; AVX512VL: # %bb.0:
412412; AVX512VL-NEXT: vpsllw $4, %ymm0, %ymm2
413413; AVX512VL-NEXT: vpsrlw $4, %ymm0, %ymm3
414- ; AVX512VL-NEXT: vpternlogd $216, {{\.?LCPI[0-9]+_[0-9]+}}(%rip){1to8}, %ymm2, % ymm3
414+ ; AVX512VL-NEXT: vpternlogd {{.*#+}} ymm3 = ymm3 ^ (mem & ( ymm3 ^ ymm2))
415415; AVX512VL-NEXT: vpsllw $5, %ymm1, %ymm1
416416; AVX512VL-NEXT: vpblendvb %ymm1, %ymm3, %ymm0, %ymm0
417417; AVX512VL-NEXT: vpsllw $2, %ymm0, %ymm2
418418; AVX512VL-NEXT: vpsrlw $6, %ymm0, %ymm3
419- ; AVX512VL-NEXT: vpternlogd $216, {{\.?LCPI[0-9]+_[0-9]+}}(%rip){1to8}, %ymm2, % ymm3
419+ ; AVX512VL-NEXT: vpternlogd {{.*#+}} ymm3 = ymm3 ^ (mem & ( ymm3 ^ ymm2))
420420; AVX512VL-NEXT: vpaddb %ymm1, %ymm1, %ymm1
421421; AVX512VL-NEXT: vpblendvb %ymm1, %ymm3, %ymm0, %ymm0
422422; AVX512VL-NEXT: vpsrlw $7, %ymm0, %ymm2
423423; AVX512VL-NEXT: vpaddb %ymm0, %ymm0, %ymm3
424- ; AVX512VL-NEXT: vpternlogd $248, {{\.?LCPI[0-9]+_[0-9]+}}(%rip){1to8}, %ymm2, % ymm3
424+ ; AVX512VL-NEXT: vpternlogd {{.*#+}} ymm3 = ymm3 | (ymm2 & mem)
425425; AVX512VL-NEXT: vpaddb %ymm1, %ymm1, %ymm1
426426; AVX512VL-NEXT: vpblendvb %ymm1, %ymm3, %ymm0, %ymm0
427427; AVX512VL-NEXT: retq
@@ -1402,15 +1402,15 @@ define <32 x i8> @splatconstant_rotate_v32i8(<32 x i8> %a) nounwind {
14021402; AVX512NOVLX: # %bb.0:
14031403; AVX512NOVLX-NEXT: vpsllw $4, %ymm0, %ymm1
14041404; AVX512NOVLX-NEXT: vpsrlw $4, %ymm0, %ymm0
1405- ; AVX512NOVLX-NEXT: vpternlogd $216, {{\.?LCPI[0-9]+_[0-9]+}}(%rip){1to16}, %zmm1, % zmm0
1405+ ; AVX512NOVLX-NEXT: vpternlogd {{.*#+}} zmm0 = zmm0 ^ (mem & ( zmm0 ^ zmm1))
14061406; AVX512NOVLX-NEXT: # kill: def $ymm0 killed $ymm0 killed $zmm0
14071407; AVX512NOVLX-NEXT: retq
14081408;
14091409; AVX512VLX-LABEL: splatconstant_rotate_v32i8:
14101410; AVX512VLX: # %bb.0:
14111411; AVX512VLX-NEXT: vpsllw $4, %ymm0, %ymm1
14121412; AVX512VLX-NEXT: vpsrlw $4, %ymm0, %ymm0
1413- ; AVX512VLX-NEXT: vpternlogd $216, {{\.?LCPI[0-9]+_[0-9]+}}(%rip){1to8}, %ymm1, % ymm0
1413+ ; AVX512VLX-NEXT: vpternlogd {{.*#+}} ymm0 = ymm0 ^ (mem & ( ymm0 ^ ymm1))
14141414; AVX512VLX-NEXT: retq
14151415;
14161416; XOPAVX1-LABEL: splatconstant_rotate_v32i8:
@@ -1576,7 +1576,7 @@ define <16 x i16> @splatconstant_rotate_mask_v16i16(<16 x i16> %a) nounwind {
15761576; AVX512VL: # %bb.0:
15771577; AVX512VL-NEXT: vpsllw $5, %ymm0, %ymm1
15781578; AVX512VL-NEXT: vpsrlw $11, %ymm0, %ymm0
1579- ; AVX512VL-NEXT: vpternlogd $168, {{\.?LCPI[0-9]+_[0-9]+}}(%rip){1to8}, %ymm1, % ymm0
1579+ ; AVX512VL-NEXT: vpternlogd {{.*#+}} ymm0 = mem & ( ymm0 | ymm1)
15801580; AVX512VL-NEXT: retq
15811581;
15821582; AVX512BW-LABEL: splatconstant_rotate_mask_v16i16:
@@ -1591,7 +1591,7 @@ define <16 x i16> @splatconstant_rotate_mask_v16i16(<16 x i16> %a) nounwind {
15911591; AVX512VLBW: # %bb.0:
15921592; AVX512VLBW-NEXT: vpsllw $5, %ymm0, %ymm1
15931593; AVX512VLBW-NEXT: vpsrlw $11, %ymm0, %ymm0
1594- ; AVX512VLBW-NEXT: vpternlogd $168, {{\.?LCPI[0-9]+_[0-9]+}}(%rip){1to8}, %ymm1, % ymm0
1594+ ; AVX512VLBW-NEXT: vpternlogd {{.*#+}} ymm0 = mem & ( ymm0 | ymm1)
15951595; AVX512VLBW-NEXT: retq
15961596;
15971597; AVX512VBMI2-LABEL: splatconstant_rotate_mask_v16i16:
@@ -1665,15 +1665,15 @@ define <32 x i8> @splatconstant_rotate_mask_v32i8(<32 x i8> %a) nounwind {
16651665; AVX512NOVLX: # %bb.0:
16661666; AVX512NOVLX-NEXT: vpsllw $4, %ymm0, %ymm1
16671667; AVX512NOVLX-NEXT: vpsrlw $4, %ymm0, %ymm0
1668- ; AVX512NOVLX-NEXT: vpternlogd $216, {{\.?LCPI[0-9]+_[0-9]+}}(%rip){1to16}, %zmm1, % zmm0
1668+ ; AVX512NOVLX-NEXT: vpternlogd {{.*#+}} zmm0 = zmm0 ^ (mem & ( zmm0 ^ zmm1))
16691669; AVX512NOVLX-NEXT: vpand {{\.?LCPI[0-9]+_[0-9]+}}(%rip), %ymm0, %ymm0
16701670; AVX512NOVLX-NEXT: retq
16711671;
16721672; AVX512VLX-LABEL: splatconstant_rotate_mask_v32i8:
16731673; AVX512VLX: # %bb.0:
16741674; AVX512VLX-NEXT: vpsllw $4, %ymm0, %ymm1
16751675; AVX512VLX-NEXT: vpsrlw $4, %ymm0, %ymm0
1676- ; AVX512VLX-NEXT: vpternlogd $216, {{\.?LCPI[0-9]+_[0-9]+}}(%rip){1to8}, %ymm1, % ymm0
1676+ ; AVX512VLX-NEXT: vpternlogd {{.*#+}} ymm0 = ymm0 ^ (mem & ( ymm0 ^ ymm1))
16771677; AVX512VLX-NEXT: vpandd {{\.?LCPI[0-9]+_[0-9]+}}(%rip){1to8}, %ymm0, %ymm0
16781678; AVX512VLX-NEXT: retq
16791679;
0 commit comments