xref: /aosp_15_r20/external/llvm/test/CodeGen/MIR/X86/frame-setup-instruction-flag.mir (revision 9880d6810fe72a1726cb53787c6711e909410d58)
1*9880d681SAndroid Build Coastguard Worker# RUN: llc -march=x86-64 -start-after branch-folder -stop-after branch-folder -o - %s | FileCheck %s
2*9880d681SAndroid Build Coastguard Worker# This test ensures that the MIR parser parses the frame setup instruction flag.
3*9880d681SAndroid Build Coastguard Worker
4*9880d681SAndroid Build Coastguard Worker--- |
5*9880d681SAndroid Build Coastguard Worker
6*9880d681SAndroid Build Coastguard Worker  define i32 @compute(i32 %a) {
7*9880d681SAndroid Build Coastguard Worker  body:
8*9880d681SAndroid Build Coastguard Worker    %c = mul i32 %a, 11
9*9880d681SAndroid Build Coastguard Worker    ret i32 %c
10*9880d681SAndroid Build Coastguard Worker  }
11*9880d681SAndroid Build Coastguard Worker
12*9880d681SAndroid Build Coastguard Worker  define i32 @foo(i32 %a) {
13*9880d681SAndroid Build Coastguard Worker  entry:
14*9880d681SAndroid Build Coastguard Worker    %b = call i32 @compute(i32 %a)
15*9880d681SAndroid Build Coastguard Worker    ret i32 %b
16*9880d681SAndroid Build Coastguard Worker  }
17*9880d681SAndroid Build Coastguard Worker
18*9880d681SAndroid Build Coastguard Worker...
19*9880d681SAndroid Build Coastguard Worker---
20*9880d681SAndroid Build Coastguard Workername:            compute
21*9880d681SAndroid Build Coastguard Workerbody: |
22*9880d681SAndroid Build Coastguard Worker  bb.0.body:
23*9880d681SAndroid Build Coastguard Worker    %eax = IMUL32rri8 %edi, 11, implicit-def %eflags
24*9880d681SAndroid Build Coastguard Worker    RETQ %eax
25*9880d681SAndroid Build Coastguard Worker...
26*9880d681SAndroid Build Coastguard Worker---
27*9880d681SAndroid Build Coastguard Workername:            foo
28*9880d681SAndroid Build Coastguard Workerbody: |
29*9880d681SAndroid Build Coastguard Worker  bb.0.entry:
30*9880d681SAndroid Build Coastguard Worker    ; CHECK: frame-setup PUSH64r %rax
31*9880d681SAndroid Build Coastguard Worker    frame-setup PUSH64r %rax, implicit-def %rsp, implicit %rsp
32*9880d681SAndroid Build Coastguard Worker    CALL64pcrel32 @compute, csr_64, implicit %rsp, implicit %edi, implicit-def %rsp, implicit-def %eax
33*9880d681SAndroid Build Coastguard Worker    %rdx = POP64r implicit-def %rsp, implicit %rsp
34*9880d681SAndroid Build Coastguard Worker    RETQ %eax
35*9880d681SAndroid Build Coastguard Worker...
36