|  | # RUN: llc -march=x86-64 -run-pass none -o - %s | FileCheck %s | 
|  | # This test ensures that the MIR parser parses the frame setup instruction flag. | 
|  |  | 
|  | --- | | 
|  |  | 
|  | define i32 @compute(i32 %a) { | 
|  | body: | 
|  | %c = mul i32 %a, 11 | 
|  | ret i32 %c | 
|  | } | 
|  |  | 
|  | define i32 @foo(i32 %a) { | 
|  | entry: | 
|  | %b = call i32 @compute(i32 %a) | 
|  | ret i32 %b | 
|  | } | 
|  |  | 
|  | ... | 
|  | --- | 
|  | name:            compute | 
|  | body: | | 
|  | bb.0.body: | 
|  | $eax = IMUL32rri8 $edi, 11, implicit-def $eflags | 
|  | RET64 $eax | 
|  | ... | 
|  | --- | 
|  | name:            foo | 
|  | body: | | 
|  | bb.0.entry: | 
|  | ; CHECK: frame-setup PUSH64r $rax | 
|  | frame-setup PUSH64r $rax, implicit-def $rsp, implicit $rsp | 
|  | CALL64pcrel32 @compute, csr_64, implicit $rsp, implicit $edi, implicit-def $rsp, implicit-def $eax | 
|  | ; CHECK: $rdx = frame-destroy POP64r | 
|  | $rdx = frame-destroy POP64r implicit-def $rsp, implicit $rsp | 
|  | ; CHECK: $rdx = frame-setup frame-destroy POP64r | 
|  | $rdx = frame-setup frame-destroy POP64r implicit-def $rsp, implicit $rsp | 
|  | ; CHECK: $rdx = frame-setup frame-destroy POP64r | 
|  | $rdx = frame-destroy frame-setup POP64r implicit-def $rsp, implicit $rsp | 
|  | RET64 $eax | 
|  | ... |