xref: /llvm-project/llvm/test/CodeGen/MIR/X86/killed-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 'killed' register flags
3# correctly.
4
5--- |
6
7  define i32 @foo(i32 %a) {
8  entry:
9    %0 = icmp sle i32 %a, 10
10    br i1 %0, label %less, label %exit
11
12  less:
13    ret i32 0
14
15  exit:
16    ret i32 %a
17  }
18
19...
20---
21name:            foo
22body: |
23  bb.0.entry:
24    successors: %bb.1.less, %bb.2.exit
25
26    CMP32ri8 $edi, 10, implicit-def $eflags
27    JCC_1 %bb.2.exit, 15, implicit $eflags
28
29  bb.1.less:
30    ; CHECK:      $eax = MOV32r0
31    ; CHECK-NEXT: RET64 killed $eax
32    $eax = MOV32r0 implicit-def $eflags
33    RET64 killed $eax
34
35  bb.2.exit:
36    ; CHECK:      $eax = COPY killed $edi
37    ; CHECK-NEXT: RET64 killed $eax
38    $eax = COPY killed $edi
39    RET64 killed $eax
40...
41