[llvm] [SelectionDAG] Use unaligned store to move AVX registers onto stack for `extractelement` (PR #78422)

Matt Arsenault via llvm-commits llvm-commits at lists.llvm.org
Thu Jan 25 07:15:27 PST 2024


================
@@ -437,8 +442,10 @@ define <2 x i64> @extract_fixed_v2i64_nxv2i64(<vscale x 2 x i64> %vec) nounwind
 ; CHECK-NEXT:    str x29, [sp, #-16]! // 8-byte Folded Spill
 ; CHECK-NEXT:    addvl sp, sp, #-1
 ; CHECK-NEXT:    ptrue p0.d
-; CHECK-NEXT:    st1d { z0.d }, p0, [sp]
-; CHECK-NEXT:    ldr q0, [sp, #16]
+; CHECK-NEXT:    mov z2.d, z0.d
+; CHECK-NEXT:    ldr q1, [sp, #16]
+; CHECK-NEXT:    mov v0.16b, v1.16b
+; CHECK-NEXT:    st1d { z2.d }, p0, [sp]
----------------
arsenm wrote:

This code all looks slightly worse to me but I know nothing about SVE 

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


More information about the llvm-commits mailing list