1# RUN: llc -march=x86-64 -run-pass none -o - %s | FileCheck %s 2# This test ensures that the MIR parser parses the frame setup instruction flag. 3 4--- | 5 6 define i32 @compute(i32 %a) { 7 body: 8 %c = mul i32 %a, 11 9 ret i32 %c 10 } 11 12 define i32 @foo(i32 %a) { 13 entry: 14 %b = call i32 @compute(i32 %a) 15 ret i32 %b 16 } 17 18... 19--- 20name: compute 21body: | 22 bb.0.body: 23 $eax = IMUL32rri8 $edi, 11, implicit-def $eflags 24 RETQ $eax 25... 26--- 27name: foo 28body: | 29 bb.0.entry: 30 ; CHECK: frame-setup PUSH64r $rax 31 frame-setup PUSH64r $rax, implicit-def $rsp, implicit $rsp 32 CALL64pcrel32 @compute, csr_64, implicit $rsp, implicit $edi, implicit-def $rsp, implicit-def $eax 33 ; CHECK: $rdx = frame-destroy POP64r 34 $rdx = frame-destroy POP64r implicit-def $rsp, implicit $rsp 35 ; CHECK: $rdx = frame-setup frame-destroy POP64r 36 $rdx = frame-setup frame-destroy POP64r implicit-def $rsp, implicit $rsp 37 ; CHECK: $rdx = frame-setup frame-destroy POP64r 38 $rdx = frame-destroy frame-setup POP64r implicit-def $rsp, implicit $rsp 39 RETQ $eax 40... 41