# 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 ...