b5ed3b7f27e1a8286cbd1b86250d62c7cbf5f476
[oota-llvm.git] / test / CodeGen / MIR / X86 / newline-handling.mir
1 # RUN: llc -march=x86-64 -start-after branch-folder -stop-after branch-folder -o /dev/null %s | FileCheck %s
2
3 --- |
4
5   define i32 @foo(i32 %a) {
6   entry:
7     %0 = icmp sle i32 %a, 10
8     br i1 %0, label %less, label %exit
9
10   less:
11     ret i32 0
12
13   exit:
14     ret i32 %a
15   }
16
17   define i32 @bar(i32 %a) {
18   entry:
19     %0 = icmp sle i32 %a, 10
20     br i1 %0, label %less, label %exit
21
22   less:
23     ret i32 0
24
25   exit:
26     ret i32 %a
27   }
28
29 ...
30 ---
31 name:            foo
32 tracksRegLiveness: true
33 liveins:
34   - { reg: '%edi' }
35 # CHECK-LABEL: name: foo
36 # CHECK: body: |
37 # CHECK-NEXT: bb.0.entry:
38 # CHECK-NEXT: successors: %bb.1.less(0), %bb.2.exit(0)
39 # CHECK-NEXT: liveins: %edi
40 # CHECK:      CMP32ri8 %edi, 10, implicit-def %eflags
41 # CHECK-NEXT: JG_1 %bb.2.exit, implicit killed %eflags
42
43 # CHECK:      bb.1.less:
44 # CHECK-NEXT: %eax = MOV32r0 implicit-def dead %eflags
45 # CHECK-NEXT: RETQ killed %eax
46
47 # CHECK:      bb.2.exit:
48 # CHECK-NEXT: liveins: %edi
49 # CHECK:      %eax = COPY killed %edi
50 # CHECK-NEXT: RETQ killed %eax
51 body: |
52   bb.0.entry:
53     successors: %bb.1.less, %bb.2.exit
54
55     liveins: %edi
56
57     CMP32ri8 %edi, 10, implicit-def %eflags
58
59     JG_1 %bb.2.exit, implicit killed %eflags
60
61   bb.1.less:
62
63
64     %eax = MOV32r0 implicit-def dead %eflags
65     RETQ killed %eax
66   bb.2.exit:
67
68
69     liveins: %edi
70     %eax = COPY killed %edi
71     RETQ killed %eax
72
73 ...
74 ---
75 name:            bar
76 tracksRegLiveness: true
77 liveins:
78   - { reg: '%edi' }
79 # CHECK-LABEL: name: bar
80 # CHECK: body: |
81 # CHECK-NEXT: bb.0.entry:
82 # CHECK-NEXT: successors: %bb.1.less(0), %bb.2.exit(0)
83 # CHECK-NEXT: liveins: %edi
84 # CHECK:      CMP32ri8 %edi, 10, implicit-def %eflags
85 # CHECK-NEXT: JG_1 %bb.2.exit, implicit killed %eflags
86
87 # CHECK:      bb.1.less:
88 # CHECK-NEXT: %eax = MOV32r0 implicit-def dead %eflags
89 # CHECK-NEXT: RETQ killed %eax
90
91 # CHECK:      bb.2.exit:
92 # CHECK-NEXT: liveins: %edi
93 # CHECK:      %eax = COPY killed %edi
94 # CHECK-NEXT: RETQ killed %eax
95 body: |
96
97   bb.0.entry:
98     successors: %bb.1.less, %bb.2.exit
99     liveins: %edi
100     CMP32ri8 %edi, 10, implicit-def %eflags
101     JG_1 %bb.2.exit, implicit killed %eflags
102   bb.1.less:  %eax = MOV32r0 implicit-def dead %eflags
103               RETQ killed %eax
104
105   bb.2.exit:  liveins: %edi
106     %eax = COPY killed %edi
107     RETQ killed %eax
108
109 ...