blob: a1f2daf60cc7805de455f90e725080f949d5e8b7 [file]
# NOTE: Assertions have been autogenerated by utils/update_mir_test_checks.py UTC_ARGS: --version 6
# RUN: llc -mtriple x86_64-unknown-linux-gnu -passes=post-ra-pseudos -o - %s | FileCheck %s
# Check that we do post-RA pseudoinstruction expansion, even with optnone.
--- |
declare void @foo(i32)
; Function Attrs: noinline optnone
define i32 @test() #0 {
call void @foo(i32 1)
ret i32 0
}
attributes #0 = { noinline optnone }
...
---
name: test
body: |
bb.0 (%ir-block.0):
; CHECK-LABEL: name: test
; CHECK: frame-setup PUSH64r undef $rax, implicit-def $rsp, implicit $rsp
; CHECK-NEXT: frame-setup CFI_INSTRUCTION def_cfa_offset 16
; CHECK-NEXT: renamable $edi = MOV32ri 1
; CHECK-NEXT: CALL64pcrel32 target-flags(x86-plt) @foo, csr_64, implicit $rsp, implicit $ssp, implicit $edi
; CHECK-NEXT: renamable $eax = XOR32rr undef $eax, undef $eax, implicit-def dead $eflags
; CHECK-NEXT: $rcx = frame-destroy POP64r implicit-def $rsp, implicit $rsp
; CHECK-NEXT: frame-destroy CFI_INSTRUCTION def_cfa_offset 8
; CHECK-NEXT: RET64 implicit $eax
frame-setup PUSH64r undef $rax, implicit-def $rsp, implicit $rsp
frame-setup CFI_INSTRUCTION def_cfa_offset 16
renamable $edi = MOV32ri 1
CALL64pcrel32 target-flags(x86-plt) @foo, csr_64, implicit $rsp, implicit $ssp, implicit $edi
renamable $eax = MOV32r0 implicit-def dead $eflags
$rcx = frame-destroy POP64r implicit-def $rsp, implicit $rsp
frame-destroy CFI_INSTRUCTION def_cfa_offset 8
RET64 implicit $eax
...