xref: /aosp_15_r20/external/llvm/test/CodeGen/MIR/X86/register-mask-operands.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 register mask operands correctly.
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) #0 {
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) #0 {
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  attributes #0 = { "no-frame-pointer-elim"="false" }
19*9880d681SAndroid Build Coastguard Worker
20*9880d681SAndroid Build Coastguard Worker...
21*9880d681SAndroid Build Coastguard Worker---
22*9880d681SAndroid Build Coastguard Workername:            compute
23*9880d681SAndroid Build Coastguard Workerbody: |
24*9880d681SAndroid Build Coastguard Worker  bb.0.body:
25*9880d681SAndroid Build Coastguard Worker    %eax = IMUL32rri8 %edi, 11, implicit-def %eflags
26*9880d681SAndroid Build Coastguard Worker    RETQ %eax
27*9880d681SAndroid Build Coastguard Worker...
28*9880d681SAndroid Build Coastguard Worker---
29*9880d681SAndroid Build Coastguard Worker# CHECK: name: foo
30*9880d681SAndroid Build Coastguard Workername:            foo
31*9880d681SAndroid Build Coastguard Workerbody: |
32*9880d681SAndroid Build Coastguard Worker  bb.0.entry:
33*9880d681SAndroid Build Coastguard Worker    ; CHECK:      PUSH64r %rax
34*9880d681SAndroid Build Coastguard Worker    ; CHECK-NEXT: CALL64pcrel32 @compute, csr_64, implicit %rsp, implicit %edi, implicit-def %rsp, implicit-def %eax
35*9880d681SAndroid Build Coastguard Worker    PUSH64r %rax, implicit-def %rsp, implicit %rsp
36*9880d681SAndroid Build Coastguard Worker    CALL64pcrel32 @compute, csr_64, implicit %rsp, implicit %edi, implicit-def %rsp, implicit-def %eax
37*9880d681SAndroid Build Coastguard Worker    %rdx = POP64r implicit-def %rsp, implicit %rsp
38*9880d681SAndroid Build Coastguard Worker    RETQ %eax
39*9880d681SAndroid Build Coastguard Worker...
40