xref: /llvm-project/llvm/test/tools/UpdateTestChecks/update_mir_test_checks/Inputs/x86-condbr.mir.expected (revision 490a867f16c064b774aeae9661dc699a65909ce2)
1# NOTE: Assertions have been autogenerated by utils/update_mir_test_checks.py
2# RUN: llc -mtriple=x86_64-linux-gnu -run-pass=instruction-select -verify-machineinstrs %s -o - | FileCheck %s --check-prefixes=CHECK
3
4--- |
5
6  define i32 @test(i32 %a) {
7  entry:
8    %cmp = trunc i32 %a to i1
9    br i1 %cmp, label %true, label %false
10
11  true:                                             ; preds = %entry
12    ret i32 0
13
14  false:                                            ; preds = %entry
15    ret i32 1
16  }
17
18...
19---
20name:            test
21alignment:       16
22legalized:       true
23regBankSelected: true
24registers:
25  - { id: 0, class: gpr, preferred-register: '' }
26  - { id: 1, class: gpr, preferred-register: '' }
27  - { id: 2, class: gpr, preferred-register: '' }
28  - { id: 3, class: gpr, preferred-register: '' }
29body:             |
30  ; CHECK-LABEL: name: test
31  ; CHECK: bb.0.entry:
32  ; CHECK-NEXT:   successors: %bb.1(0x40000000), %bb.2(0x40000000)
33  ; CHECK-NEXT:   liveins: $edi
34  ; CHECK-NEXT: {{  $}}
35  ; CHECK-NEXT:   [[COPY:%[0-9]+]]:gr32 = COPY $edi
36  ; CHECK-NEXT:   [[MOV32r0_:%[0-9]+]]:gr32 = MOV32r0 implicit-def dead $eflags
37  ; CHECK-NEXT:   [[MOV32ri:%[0-9]+]]:gr32 = MOV32ri 1
38  ; CHECK-NEXT:   [[COPY1:%[0-9]+]]:gr8 = COPY [[COPY]].sub_8bit
39  ; CHECK-NEXT:   TEST8ri [[COPY1]], 1, implicit-def $eflags
40  ; CHECK-NEXT:   JCC_1 %bb.1, 5, implicit $eflags
41  ; CHECK-NEXT:   JMP_1 %bb.2
42  ; CHECK-NEXT: {{  $}}
43  ; CHECK-NEXT: bb.1.true:
44  ; CHECK-NEXT:   $eax = COPY [[MOV32r0_]]
45  ; CHECK-NEXT:   RET 0, implicit $eax
46  ; CHECK-NEXT: {{  $}}
47  ; CHECK-NEXT: bb.2.false:
48  ; CHECK-NEXT:   $eax = COPY [[MOV32ri]]
49  ; CHECK-NEXT:   RET 0, implicit $eax
50  bb.1.entry:
51    successors: %bb.2(0x40000000), %bb.3(0x40000000)
52    liveins: $edi
53
54    %0(s32) = COPY $edi
55    %2(s32) = G_CONSTANT i32 0
56    %3(s32) = G_CONSTANT i32 1
57    %1(s1) = G_TRUNC %0(s32)
58    G_BRCOND %1(s1), %bb.2
59    G_BR %bb.3
60
61  bb.2.true:
62    $eax = COPY %2(s32)
63    RET 0, implicit $eax
64
65  bb.3.false:
66    $eax = COPY %3(s32)
67    RET 0, implicit $eax
68
69...
70