xref: /llvm-project/llvm/test/CodeGen/MIR/X86/undef-register-flag.mir (revision 40a4cbb0f200e5e0bafbd58d55c2da6daab9515d)
1# RUN: llc -mtriple=x86_64 -run-pass none -o - %s | FileCheck %s
2# This test ensures that the MIR parser parses the 'undef' register flags
3# correctly.
4
5--- |
6
7  define i32 @compute(i32 %a) #0 {
8  body:
9    %c = mul i32 %a, 11
10    ret i32 %c
11  }
12
13  define i32 @foo(i32 %a) #0 {
14  entry:
15    %b = call i32 @compute(i32 %a)
16    ret i32 %b
17  }
18
19  attributes #0 = { "frame-pointer"="none" }
20
21...
22---
23name:            compute
24body: |
25  bb.0.body:
26    $eax = IMUL32rri8 $edi, 11, implicit-def $eflags
27    RET64 $eax
28...
29---
30name:            foo
31body: |
32  bb.0.entry:
33    ; CHECK: PUSH64r undef $rax
34    PUSH64r undef $rax, implicit-def $rsp, implicit $rsp
35    CALL64pcrel32 @compute, csr_64, implicit $rsp, implicit $edi, implicit-def $rsp, implicit-def $eax
36    $rdx = POP64r implicit-def $rsp, implicit $rsp
37    RET64 $eax
38...
39