[llvm] [AArch64][GlobalISel] Combine G_EXTRACT_VECTOR_ELT and G_BUILD_VECTOR sequences into G_SHUFFLE_VECTOR (PR #110545)

via llvm-commits llvm-commits at lists.llvm.org
Fri Oct 11 05:53:05 PDT 2024


================
@@ -397,13 +397,10 @@ define void @test_vrev64(ptr nocapture %source, ptr nocapture %dst) nounwind ssp
 ;
 ; CHECK-GI-LABEL: test_vrev64:
 ; CHECK-GI:       // %bb.0: // %entry
-; CHECK-GI-NEXT:    adrp x8, .LCPI27_0
 ; CHECK-GI-NEXT:    ldr q0, [x0]
-; CHECK-GI-NEXT:    ldr q2, [x8, :lo12:.LCPI27_0]
-; CHECK-GI-NEXT:    tbl.16b v0, { v0, v1 }, v2
-; CHECK-GI-NEXT:    mov h1, v0[1]
-; CHECK-GI-NEXT:    str h0, [x1]
-; CHECK-GI-NEXT:    str h1, [x1, #2]
+; CHECK-GI-NEXT:    add x8, x1, #2
+; CHECK-GI-NEXT:    st1.h { v0 }[6], [x1]
+; CHECK-GI-NEXT:    st1.h { v0 }[5], [x8]
----------------
ValentijnvdBeek wrote:

This is inline with @aemerson comment about `tbl`, it no longer turns non-optimizable sequences into shufflevectors so it keeps previous iteration of the code. 

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


More information about the llvm-commits mailing list