[AArch64] NFC: Add test for access to fixed-width stack object when stack has SVE.

In this case, the access would benefit from being accessed from the SP, as that
would avoid the redundant ADDVL, since most of the offset can currently be
folded into the addressing mode.
This commit is contained in:
Sander de Smalen 2022-03-01 17:00:04 +00:00
parent 7a258c6a37
commit d363bddac5
1 changed files with 34 additions and 0 deletions

View File

@ -0,0 +1,34 @@
# NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py
# RUN: llc -mattr=+sve -mtriple=aarch64-none-linux-gnu -start-before=prologepilog %s -o - | FileCheck %s
--- |
define aarch64_sve_vector_pcs void @access_large_stack() nounwind { entry: unreachable }
; CHECK-LABEL: access_large_stack:
; CHECK: // %bb.0: // %entry
; CHECK-NEXT: stp x29, x30, [sp, #-16]! // 16-byte Folded Spill
; CHECK-NEXT: mov x29, sp
; CHECK-NEXT: addvl sp, sp, #-32
; CHECK-NEXT: addvl sp, sp, #-28
; CHECK-NEXT: sub sp, sp, #2064
; CHECK-NEXT: addvl x8, x29, #-32
; CHECK-NEXT: addvl x8, x8, #-28
; CHECK-NEXT: ldur x8, [x8, #-16]
; CHECK-NEXT: addvl sp, sp, #31
; CHECK-NEXT: addvl sp, sp, #29
; CHECK-NEXT: add sp, sp, #2064
; CHECK-NEXT: ldp x29, x30, [sp], #16 // 16-byte Folded Reload
; CHECK-NEXT: ret
...
name: access_large_stack
frameInfo:
maxAlignment: 16
isFrameAddressTaken: true
stack:
- { id: 0, stack-id: default, size: 16, alignment: 16 }
- { id: 1, stack-id: default, size: 2048, alignment: 16 }
- { id: 2, stack-id: scalable-vector, size: 960, alignment: 16 }
body: |
bb.0.entry:
$x8 = LDRXui %stack.0, 0
RET_ReallyLR
---