MIR Serialization: Change MIR syntax - use custom syntax for MBBs.
[oota-llvm.git] / test / CodeGen / MIR / X86 / successor-basic-blocks.mir
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 basic block successors correctly.
3
4 --- |
5
6   define i32 @foo(i32 %a) {
7   entry:
8     %0 = icmp sle i32 %a, 10
9     br i1 %0, label %less, label %exit
10
11   less:
12     ret i32 0
13
14   exit:
15     ret i32 %a
16   }
17
18   define i32 @bar(i32 %a) {
19   entry:
20     %b = icmp sle i32 %a, 10
21     br i1 %b, label %0, label %1
22
23   ; <label>:0
24     ret i32 0
25
26   ; <label>:1
27     ret i32 %a
28   }
29
30 ...
31 ---
32 name:            foo
33 body: |
34   ; CHECK-LABEL: bb.0.entry:
35   ; CHECK:         successors: %bb.1.less, %bb.2.exit
36   ; CHECK-LABEL: bb.1.less:
37   bb.0.entry:
38     successors: %bb.1.less, %bb.2.exit
39     liveins: %edi
40
41     CMP32ri8 %edi, 10, implicit-def %eflags
42     JG_1 %bb.2.exit, implicit killed %eflags
43
44   bb.1.less:
45     %eax = MOV32r0 implicit-def dead %eflags
46     RETQ killed %eax
47
48   bb.2.exit:
49     liveins: %edi
50
51     %eax = COPY killed %edi
52     RETQ killed %eax
53 ...
54 ---
55 name:            bar
56 body: |
57   ; CHECK-LABEL: name: bar
58   ; Verify that we can have multiple lists of successors that will be merged
59   ; into one.
60   ; CHECK-LABEL: bb.0.entry:
61   ; CHECK:         successors: %bb.1, %bb.2
62   bb.0.entry:
63     liveins: %edi
64     successors: %bb.1
65     successors: %bb.2
66
67     CMP32ri8 %edi, 10, implicit-def %eflags
68     JG_1 %bb.2, implicit killed %eflags
69
70   ; Verify that we can have an empty list of successors.
71   ; CHECK-LABEL: bb.1:
72   ; CHECK-NEXT:  %eax = MOV32r0 implicit-def dead %eflags
73   bb.1:
74     successors:
75     %eax = MOV32r0 implicit-def dead %eflags
76     RETQ killed %eax
77
78   bb.2:
79     liveins: %edi
80
81     %eax = COPY killed %edi
82     RETQ killed %eax
83 ...