Bump version to 19.1.0-rc3
[llvm-project.git] / llvm / test / MachineVerifier / test_adjustsstack.mir
blobd333737e000cc60f14ea2235068177fd5081ad3a
1 # RUN: not --crash llc -o - -start-before=twoaddressinstruction -verify-machineinstrs %s 2>&1 \
2 # RUN:   | FileCheck %s
3 # REQUIRES: aarch64-registered-target
4 --- |
5   target triple = "aarch64-unknown-linux"
6   declare i32 @bar(i32) nounwind
7   define i32 @foo() nounwind {
8     call i32 @bar(i32 0)
9     ret i32 0
10   }
11 ...
12 ---
13 name: foo
14 registers:
15   - { id: 0, class: gpr32 }
16 body: |
17   bb.0 (%ir-block.0):
18     ADJCALLSTACKDOWN 0, 0, implicit-def dead $sp, implicit $sp
19     %0 = COPY $wzr
20     $w0 = COPY %0
21     BL @bar, csr_aarch64_aapcs, implicit-def dead $lr, implicit $sp, implicit $w0, implicit-def $sp, implicit-def $w0
22     ADJCALLSTACKUP 0, 0, implicit-def dead $sp, implicit $sp
23     $w0 = COPY killed %0
24     RET_ReallyLR implicit $w0
25 ...
26 # CHECK-LABEL: Bad machine code: AdjustsStack not set in presence of a frame pseudo instruction.