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

Sander de Smalen via llvm-commits llvm-commits at lists.llvm.org
Fri Mar 4 01:35:19 PST 2022


Author: Sander de Smalen
Date: 2022-03-04T09:33:59Z
New Revision: d363bddac5ef538b87423a78be9450a94e36e0d8

URL: https://github.com/llvm/llvm-project/commit/d363bddac5ef538b87423a78be9450a94e36e0d8
DIFF: https://github.com/llvm/llvm-project/commit/d363bddac5ef538b87423a78be9450a94e36e0d8.diff

LOG: [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.

Added: 
    llvm/test/CodeGen/AArch64/framelayout-sve-fixed-width-access.mir

Modified: 
    

Removed: 
    


################################################################################
diff  --git a/llvm/test/CodeGen/AArch64/framelayout-sve-fixed-width-access.mir b/llvm/test/CodeGen/AArch64/framelayout-sve-fixed-width-access.mir
new file mode 100644
index 0000000000000..4de5ceb232d5e
--- /dev/null
+++ b/llvm/test/CodeGen/AArch64/framelayout-sve-fixed-width-access.mir
@@ -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
+---


        


More information about the llvm-commits mailing list