@@ -856,7 +856,7 @@ entry:
856856define <16 x i32 > @ternlog_and_andn (<16 x i32 > %x , <16 x i32 > %y , <16 x i32 > %z ) {
857857; ALL-LABEL: ternlog_and_andn:
858858; ALL: ## %bb.0:
859- ; ALL-NEXT: vpternlogd $8, %zmm1, % zmm2, % zmm0
859+ ; ALL-NEXT: vpternlogd {{.*#+}} zmm0 = zmm2 & zmm1 & ~ zmm0
860860; ALL-NEXT: retq
861861 %a = xor <16 x i32 > %x , <i32 -1 , i32 -1 , i32 -1 , i32 -1 , i32 -1 , i32 -1 , i32 -1 , i32 -1 , i32 -1 , i32 -1 , i32 -1 , i32 -1 , i32 -1 , i32 -1 , i32 -1 , i32 -1 >
862862 %b = and <16 x i32 > %y , %a
@@ -867,7 +867,7 @@ define <16 x i32> @ternlog_and_andn(<16 x i32> %x, <16 x i32> %y, <16 x i32> %z)
867867define <16 x i32 > @ternlog_or_andn (<16 x i32 > %x , <16 x i32 > %y , <16 x i32 > %z ) {
868868; ALL-LABEL: ternlog_or_andn:
869869; ALL: ## %bb.0:
870- ; ALL-NEXT: vpternlogd $206, % zmm1, %zmm2, % zmm0
870+ ; ALL-NEXT: vpternlogd {{.*#+}} zmm0 = ( zmm1 & ~ zmm0) | zmm2
871871; ALL-NEXT: retq
872872 %a = xor <16 x i32 > %x , <i32 -1 , i32 -1 , i32 -1 , i32 -1 , i32 -1 , i32 -1 , i32 -1 , i32 -1 , i32 -1 , i32 -1 , i32 -1 , i32 -1 , i32 -1 , i32 -1 , i32 -1 , i32 -1 >
873873 %b = and <16 x i32 > %y , %a
@@ -878,7 +878,7 @@ define <16 x i32> @ternlog_or_andn(<16 x i32> %x, <16 x i32> %y, <16 x i32> %z)
878878define <16 x i32 > @ternlog_xor_andn (<16 x i32 > %x , <16 x i32 > %y , <16 x i32 > %z ) {
879879; ALL-LABEL: ternlog_xor_andn:
880880; ALL: ## %bb.0:
881- ; ALL-NEXT: vpternlogd $198, %zmm1, % zmm2, % zmm0
881+ ; ALL-NEXT: vpternlogd {{.*#+}} zmm0 = zmm2 ^ (zmm1 & ~ zmm0)
882882; ALL-NEXT: retq
883883 %a = xor <16 x i32 > %x , <i32 -1 , i32 -1 , i32 -1 , i32 -1 , i32 -1 , i32 -1 , i32 -1 , i32 -1 , i32 -1 , i32 -1 , i32 -1 , i32 -1 , i32 -1 , i32 -1 , i32 -1 , i32 -1 >
884884 %b = and <16 x i32 > %y , %a
@@ -889,7 +889,7 @@ define <16 x i32> @ternlog_xor_andn(<16 x i32> %x, <16 x i32> %y, <16 x i32> %z)
889889define <16 x i32 > @ternlog_or_and_mask (<16 x i32 > %x , <16 x i32 > %y ) {
890890; ALL-LABEL: ternlog_or_and_mask:
891891; ALL: ## %bb.0:
892- ; ALL-NEXT: vpternlogd $236, {{\.?LCPI[0-9]+_[0-9]+}}(%rip){1to16}, %zmm1, %zmm0
892+ ; ALL-NEXT: vpternlogd {{.*#+}} zmm0 = (zmm0 & mem) | zmm1
893893; ALL-NEXT: retq
894894 %a = and <16 x i32 > %x , <i32 255 , i32 255 , i32 255 , i32 255 , i32 255 , i32 255 , i32 255 , i32 255 , i32 255 , i32 255 , i32 255 , i32 255 , i32 255 , i32 255 , i32 255 , i32 255 >
895895 %b = or <16 x i32 > %a , %y
@@ -899,7 +899,7 @@ define <16 x i32> @ternlog_or_and_mask(<16 x i32> %x, <16 x i32> %y) {
899899define <8 x i64 > @ternlog_xor_and_mask (<8 x i64 > %x , <8 x i64 > %y ) {
900900; ALL-LABEL: ternlog_xor_and_mask:
901901; ALL: ## %bb.0:
902- ; ALL-NEXT: vpternlogq $108, {{\.?LCPI[0-9]+_[0-9]+}}(%rip){1to8}, % zmm1, % zmm0
902+ ; ALL-NEXT: vpternlogq {{.*#+}} zmm0 = zmm1 ^ ( zmm0 & mem)
903903; ALL-NEXT: retq
904904 %a = and <8 x i64 > %x , <i64 4294967295 , i64 4294967295 , i64 4294967295 , i64 4294967295 , i64 4294967295 , i64 4294967295 , i64 4294967295 , i64 4294967295 >
905905 %b = xor <8 x i64 > %a , %y
@@ -911,7 +911,7 @@ define <16 x i32> @ternlog_maskz_or_and_mask(<16 x i32> %x, <16 x i32> %y, <16 x
911911; ALL: ## %bb.0:
912912; ALL-NEXT: vpandd {{\.?LCPI[0-9]+_[0-9]+}}(%rip){1to16}, %zmm0, %zmm3
913913; ALL-NEXT: vpsrad $31, %zmm2, %zmm0
914- ; ALL-NEXT: vpternlogd $224, %zmm1, %zmm3, % zmm0
914+ ; ALL-NEXT: vpternlogd {{.*#+}} zmm0 = zmm0 & (zmm3 | zmm1)
915915; ALL-NEXT: retq
916916 %m = icmp slt <16 x i32 > %mask , zeroinitializer
917917 %a = and <16 x i32 > %x , <i32 255 , i32 255 , i32 255 , i32 255 , i32 255 , i32 255 , i32 255 , i32 255 , i32 255 , i32 255 , i32 255 , i32 255 , i32 255 , i32 255 , i32 255 , i32 255 >
@@ -925,7 +925,7 @@ define <8 x i64> @ternlog_maskz_xor_and_mask(<8 x i64> %x, <8 x i64> %y, <8 x i6
925925; ALL: ## %bb.0:
926926; ALL-NEXT: vpandq {{\.?LCPI[0-9]+_[0-9]+}}(%rip){1to8}, %zmm0, %zmm3
927927; ALL-NEXT: vpsraq $63, %zmm2, %zmm0
928- ; ALL-NEXT: vpternlogq $96, %zmm1, %zmm3, % zmm0
928+ ; ALL-NEXT: vpternlogq {{.*#+}} zmm0 = zmm0 & (zmm3 ^ zmm1)
929929; ALL-NEXT: retq
930930 %m = icmp slt <8 x i64 > %mask , zeroinitializer
931931 %a = and <8 x i64 > %x , <i64 4294967295 , i64 4294967295 , i64 4294967295 , i64 4294967295 , i64 4294967295 , i64 4294967295 , i64 4294967295 , i64 4294967295 >
0 commit comments