[llvm] processtiedpairs (PR #65976)

Jay Foad via llvm-commits llvm-commits at lists.llvm.org
Tue Sep 12 02:12:28 PDT 2023


================
@@ -235,15 +236,26 @@ define <4 x i32> @test17(<4 x i32> %a, <4 x i32> %b) {
 
 
 define <4 x i32> @test18(<4 x i32> %a, <4 x i32> %b) {
-; CHECK-LABEL: test18:
-; CHECK:       # %bb.0:
-; CHECK-NEXT:    pxor %xmm2, %xmm2
-; CHECK-NEXT:    pblendw {{.*#+}} xmm0 = xmm0[0,1],xmm2[2,3,4,5,6,7]
-; CHECK-NEXT:    pshufd {{.*#+}} xmm0 = xmm0[1,0,1,1]
-; CHECK-NEXT:    pblendw {{.*#+}} xmm2 = xmm1[0,1],xmm2[2,3,4,5,6,7]
-; CHECK-NEXT:    por %xmm0, %xmm2
-; CHECK-NEXT:    movdqa %xmm2, %xmm0
-; CHECK-NEXT:    retq
+; CHECK-LV-LABEL: test18:
+; CHECK-LV:       # %bb.0:
+; CHECK-LV-NEXT:    pxor %xmm2, %xmm2
+; CHECK-LV-NEXT:    pblendw {{.*#+}} xmm0 = xmm0[0,1],xmm2[2,3,4,5,6,7]
+; CHECK-LV-NEXT:    pshufd {{.*#+}} xmm0 = xmm0[1,0,1,1]
+; CHECK-LV-NEXT:    pblendw {{.*#+}} xmm2 = xmm1[0,1],xmm2[2,3,4,5,6,7]
+; CHECK-LV-NEXT:    por %xmm0, %xmm2
+; CHECK-LV-NEXT:    movdqa %xmm2, %xmm0
+; CHECK-LV-NEXT:    retq
+;
+; CHECK-LIS-LABEL: test18:
+; CHECK-LIS:       # %bb.0:
+; CHECK-LIS-NEXT:    pxor %xmm2, %xmm2
+; CHECK-LIS-NEXT:    pxor %xmm3, %xmm3
+; CHECK-LIS-NEXT:    pblendw {{.*#+}} xmm3 = xmm0[0,1],xmm3[2,3,4,5,6,7]
+; CHECK-LIS-NEXT:    pshufd {{.*#+}} xmm0 = xmm3[1,0,1,1]
+; CHECK-LIS-NEXT:    pblendw {{.*#+}} xmm2 = xmm1[0,1],xmm2[2,3,4,5,6,7]
+; CHECK-LIS-NEXT:    por %xmm0, %xmm2
+; CHECK-LIS-NEXT:    movdqa %xmm2, %xmm0
----------------
jayfoad wrote:

I saw equal and opposite changes of this sort in `combine-or.ll` and `combine-rotates.ll` so I suspect it is neither better nor worse, but I'm not sure how to prove that.

https://github.com/llvm/llvm-project/pull/65976


More information about the llvm-commits mailing list