[llvm] [AArch64] Generalize integer FPR lane stores for all types (PR #134117)

Paul Walker via llvm-commits llvm-commits at lists.llvm.org
Thu Apr 10 05:51:18 PDT 2025


================
@@ -263,10 +262,10 @@ define void @v3i16(ptr %p1, ptr %p2) {
 ; CHECK-SD:       // %bb.0: // %entry
 ; CHECK-SD-NEXT:    ldr d0, [x0]
 ; CHECK-SD-NEXT:    ldr d1, [x1]
-; CHECK-SD-NEXT:    add x8, x0, #4
 ; CHECK-SD-NEXT:    add v0.4h, v0.4h, v1.4h
-; CHECK-SD-NEXT:    st1 { v0.h }[2], [x8]
+; CHECK-SD-NEXT:    mov v1.h[0], v0.h[2]
 ; CHECK-SD-NEXT:    str s0, [x0]
+; CHECK-SD-NEXT:    str h1, [x0, #4]
----------------
paulwalker-arm wrote:

This looks like a negative change because the original integer add is likely to be cheaper than the vector mov.

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


More information about the llvm-commits mailing list