| # RUN: not --crash llc -start-before=two-address-instruction -verify-machineinstrs -filetype=null %s 2>&1 | FileCheck %s | |
| # REQUIRES: aarch64-registered-target | |
| --- | | |
| target triple = "aarch64-unknown-linux" | |
| declare i32 @bar(i32) nounwind | |
| define i32 @foo() nounwind { | |
| call i32 @bar(i32 0) | |
| ret i32 0 | |
| } | |
| ... | |
| --- | |
| name: foo | |
| tracksRegLiveness: true | |
| registers: | |
| - { id: 0, class: gpr32 } | |
| body: | | |
| bb.0 (%ir-block.0): | |
| ADJCALLSTACKDOWN 0, 0, implicit-def dead $sp, implicit $sp | |
| %0 = COPY $wzr | |
| $w0 = COPY %0 | |
| BL @bar, csr_aarch64_aapcs, implicit-def dead $lr, implicit $sp, implicit $w0, implicit-def $sp, implicit-def $w0 | |
| ADJCALLSTACKUP 0, 0, implicit-def dead $sp, implicit $sp | |
| $w0 = COPY killed %0 | |
| RET_ReallyLR implicit $w0 | |
| ... | |
| # CHECK-LABEL: Bad machine code: AdjustsStack not set in presence of a frame pseudo instruction |