[Xtensa] Implement Windowed Register Option. (#124656)
[llvm-project.git] / llvm / test / CodeGen / AArch64 / aarch64-large-stack-spbump.mir
blobf920813f2b42d577411834b6cabdf3a925a9e533
1 # RUN: llc -mtriple=aarch64 -run-pass=prologepilog %s -o - | FileCheck %s
2 --- |
3   define i32 @_Z4funcv() {
4   entry:
5     %array = alloca [1073741824 x i32], align 4
6     %arrayidx = getelementptr inbounds [1073741824 x i32], ptr %array, i64 0, i64 20
7     store i32 7, ptr %arrayidx, align 4
8     call void @_Z5func2v()
9     %arrayidx1 = getelementptr inbounds [1073741824 x i32], ptr %array, i64 0, i64 20
10     %0 = load i32, ptr %arrayidx1, align 4
11     ret i32 %0
12   }
14   declare void @_Z5func2v()
15 ...
16 ---
17 name:            _Z4funcv
18 alignment:       4
19 legalized:       true
20 regBankSelected: true
21 selected:        true
22 tracksRegLiveness: true
23 noPhis:          true
24 isSSA:           false
25 noVRegs:         true
26 hasFakeUses:     false
27 frameInfo:
28   maxAlignment:    4
29   adjustsStack:    true
30   hasCalls:        true
31   maxCallFrameSize: 0
32 stack:
33   - { id: 0, name: array, size: 4294967296, alignment: 4, local-offset: -4294967296 }
34 machineFunctionInfo: {}
35 body:             |
36   bb.1.entry:
37     renamable $w8 = MOVi32imm 7
38     STRWui killed renamable $w8, %stack.0.array, 20 :: (store (s32) into %ir.arrayidx)
39     ADJCALLSTACKDOWN 0, 0, implicit-def $sp, implicit $sp
40     BL @_Z5func2v, csr_aarch64_aapcs, implicit-def dead $lr, implicit $sp
41     ADJCALLSTACKUP 0, 0, implicit-def $sp, implicit $sp
42     renamable $w0 = LDRWui %stack.0.array, 20 :: (dereferenceable load (s32) from %ir.arrayidx1)
43     ; CHECK: early-clobber $sp, $fp, $lr = frame-destroy LDPXpost $sp, 2
44     RET_ReallyLR implicit killed $w0
46 ...