[llvm] [AArch64] Enable quad variant st1b/ld1b for callee-saved spills (PR #225100)

Benjamin Maxwell via llvm-commits llvm-commits at lists.llvm.org
Thu Oct 1 06:53:38 PDT 2026


================
@@ -171,14 +171,10 @@ define void @fbyte(<vscale x 16 x i8> %v){
 ; SPLIT-PAIR-NEXT:    sub sp, sp, #16
 ; SPLIT-PAIR-NEXT:    addvl sp, sp, #-16
 ; SPLIT-PAIR-NEXT:    ptrue pn8.b
-; SPLIT-PAIR-NEXT:    st1b { z22.b, z23.b }, pn8, [sp] // 32-byte Folded Spill
-; SPLIT-PAIR-NEXT:    st1b { z20.b, z21.b }, pn8, [sp, #2, mul vl] // 32-byte Folded Spill
-; SPLIT-PAIR-NEXT:    st1b { z18.b, z19.b }, pn8, [sp, #4, mul vl] // 32-byte Folded Spill
-; SPLIT-PAIR-NEXT:    st1b { z16.b, z17.b }, pn8, [sp, #6, mul vl] // 32-byte Folded Spill
-; SPLIT-PAIR-NEXT:    st1b { z14.b, z15.b }, pn8, [sp, #8, mul vl] // 32-byte Folded Spill
-; SPLIT-PAIR-NEXT:    st1b { z12.b, z13.b }, pn8, [sp, #10, mul vl] // 32-byte Folded Spill
-; SPLIT-PAIR-NEXT:    st1b { z10.b, z11.b }, pn8, [sp, #12, mul vl] // 32-byte Folded Spill
-; SPLIT-PAIR-NEXT:    st1b { z8.b, z9.b }, pn8, [sp, #14, mul vl] // 32-byte Folded Spill
+; SPLIT-PAIR-NEXT:    st1b { z20.b - z23.b }, pn8, [sp] // 64-byte Folded Spill
+; SPLIT-PAIR-NEXT:    st1b { z16.b - z19.b }, pn8, [sp, #4, mul vl] // 64-byte Folded Spill
+; SPLIT-PAIR-NEXT:    st1b { z12.b - z15.b }, pn8, [sp, #8, mul vl] // 64-byte Folded Spill
+; SPLIT-PAIR-NEXT:    st1b { z8.b - z11.b }, pn8, [sp, #12, mul vl] // 64-byte Folded Spill
----------------
MacDue wrote:

I think the fix looks reasonable :+1:  I think we should split this PR though. Could you first put up a patch to fix the frame indices for the paired case as a separate PR. 

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


More information about the llvm-commits mailing list