1# RUN: llc -march=x86-64 -start-after branch-folder -stop-after branch-folder -o /dev/null %s | FileCheck %s
2# This test ensures that the MIR parser parses machine basic block operands.
3
4--- |
5
6  define i32 @foo(i32* %p) {
7  entry:
8    %a = load i32, i32* %p
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  define i32 @bar(i32* %p) {
20  entry:
21    %a = load i32, i32* %p
22    %b = icmp sle i32 %a, 10
23    br i1 %b, label %0, label %1
24
25  ; <label>:0
26    ret i32 0
27
28  ; <label>:1
29    ret i32 %a
30  }
31
32...
33---
34# CHECK: name: foo
35name:            foo
36body:
37 # CHECK: name: entry
38 - id:              0
39   name:            entry
40   instructions:
41     - '%eax = MOV32rm %rdi, 1, _, 0, _'
42     # CHECK:      - 'CMP32ri8 %eax, 10
43     # CHECK-NEXT: - 'JG_1 %bb.2.exit
44     - 'CMP32ri8 %eax, 10, implicit-def %eflags'
45     - 'JG_1 %bb.2.exit, implicit %eflags'
46 # CHECK: name: less
47 - id:              1
48   name:            less
49   instructions:
50     - '%eax = MOV32r0 implicit-def %eflags'
51 - id:              2
52   name:            exit
53   instructions:
54     - 'RETQ %eax'
55...
56---
57# CHECK: name: bar
58name:            bar
59body:
60 # CHECK: name: entry
61 - id: 0
62   name: entry
63   instructions:
64     - '%eax = MOV32rm %rdi, 1, _, 0, _'
65     # CHECK:      - 'CMP32ri8 %eax, 10
66     # CHECK-NEXT: - 'JG_1 %bb.2
67     - 'CMP32ri8 %eax, 10, implicit-def %eflags'
68     - 'JG_1 %bb.3, implicit %eflags'
69 - id: 1
70   instructions:
71     - '%eax = MOV32r0 implicit-def %eflags'
72 - id: 3
73   instructions:
74     - 'RETQ %eax'
75...
76