Mercurial > hg > CbC > CbC_llvm
comparison test/CodeGen/AArch64/analyze-branch.ll @ 134:3a76565eade5 LLVM5.0.1
update 5.0.1
author | mir3636 |
---|---|
date | Sat, 17 Feb 2018 09:57:20 +0900 |
parents | 60c9769439b8 |
children |
comparison
equal
deleted
inserted
replaced
133:c60214abe0e8 | 134:3a76565eade5 |
---|---|
16 br i1 %tst, label %true, label %false, !prof !0 | 16 br i1 %tst, label %true, label %false, !prof !0 |
17 | 17 |
18 ; CHECK: cmp {{w[0-9]+}}, #42 | 18 ; CHECK: cmp {{w[0-9]+}}, #42 |
19 | 19 |
20 ; CHECK: b.ne [[FALSE:.LBB[0-9]+_[0-9]+]] | 20 ; CHECK: b.ne [[FALSE:.LBB[0-9]+_[0-9]+]] |
21 ; CHECK-NEXT: // BB# | 21 ; CHECK-NEXT: // %bb. |
22 ; CHECK-NEXT: bl test_true | 22 ; CHECK-NEXT: bl test_true |
23 | 23 |
24 ; CHECK: [[FALSE]]: | 24 ; CHECK: [[FALSE]]: |
25 ; CHECK: bl test_false | 25 ; CHECK: bl test_false |
26 | 26 |
39 br i1 %tst, label %true, label %false, !prof !1 | 39 br i1 %tst, label %true, label %false, !prof !1 |
40 | 40 |
41 ; CHECK: cmp {{w[0-9]+}}, #42 | 41 ; CHECK: cmp {{w[0-9]+}}, #42 |
42 | 42 |
43 ; CHECK: b.eq [[TRUE:.LBB[0-9]+_[0-9]+]] | 43 ; CHECK: b.eq [[TRUE:.LBB[0-9]+_[0-9]+]] |
44 ; CHECK-NEXT: // BB# | 44 ; CHECK-NEXT: // %bb. |
45 ; CHECK-NEXT: bl test_false | 45 ; CHECK-NEXT: bl test_false |
46 | 46 |
47 ; CHECK: [[TRUE]]: | 47 ; CHECK: [[TRUE]]: |
48 ; CHECK: bl test_true | 48 ; CHECK: bl test_true |
49 | 49 |
60 ; CHECK-LABEL: test_CBZ_fallthrough_taken: | 60 ; CHECK-LABEL: test_CBZ_fallthrough_taken: |
61 %tst = icmp eq i32 %in, 0 | 61 %tst = icmp eq i32 %in, 0 |
62 br i1 %tst, label %true, label %false, !prof !0 | 62 br i1 %tst, label %true, label %false, !prof !0 |
63 | 63 |
64 ; CHECK: cbnz {{w[0-9]+}}, [[FALSE:.LBB[0-9]+_[0-9]+]] | 64 ; CHECK: cbnz {{w[0-9]+}}, [[FALSE:.LBB[0-9]+_[0-9]+]] |
65 ; CHECK-NEXT: // BB# | 65 ; CHECK-NEXT: // %bb. |
66 ; CHECK-NEXT: bl test_true | 66 ; CHECK-NEXT: bl test_true |
67 | 67 |
68 ; CHECK: [[FALSE]]: | 68 ; CHECK: [[FALSE]]: |
69 ; CHECK: bl test_false | 69 ; CHECK: bl test_false |
70 | 70 |
81 ; CHECK-LABEL: test_CBZ_fallthrough_nottaken: | 81 ; CHECK-LABEL: test_CBZ_fallthrough_nottaken: |
82 %tst = icmp eq i64 %in, 0 | 82 %tst = icmp eq i64 %in, 0 |
83 br i1 %tst, label %true, label %false, !prof !1 | 83 br i1 %tst, label %true, label %false, !prof !1 |
84 | 84 |
85 ; CHECK: cbz {{x[0-9]+}}, [[TRUE:.LBB[0-9]+_[0-9]+]] | 85 ; CHECK: cbz {{x[0-9]+}}, [[TRUE:.LBB[0-9]+_[0-9]+]] |
86 ; CHECK-NEXT: // BB# | 86 ; CHECK-NEXT: // %bb. |
87 ; CHECK-NEXT: bl test_false | 87 ; CHECK-NEXT: bl test_false |
88 | 88 |
89 ; CHECK: [[TRUE]]: | 89 ; CHECK: [[TRUE]]: |
90 ; CHECK: bl test_true | 90 ; CHECK: bl test_true |
91 | 91 |
102 ; CHECK-LABEL: test_CBNZ_fallthrough_taken: | 102 ; CHECK-LABEL: test_CBNZ_fallthrough_taken: |
103 %tst = icmp ne i32 %in, 0 | 103 %tst = icmp ne i32 %in, 0 |
104 br i1 %tst, label %true, label %false, !prof !0 | 104 br i1 %tst, label %true, label %false, !prof !0 |
105 | 105 |
106 ; CHECK: cbz {{w[0-9]+}}, [[FALSE:.LBB[0-9]+_[0-9]+]] | 106 ; CHECK: cbz {{w[0-9]+}}, [[FALSE:.LBB[0-9]+_[0-9]+]] |
107 ; CHECK-NEXT: // BB# | 107 ; CHECK-NEXT: // %bb. |
108 ; CHECK-NEXT: bl test_true | 108 ; CHECK-NEXT: bl test_true |
109 | 109 |
110 ; CHECK: [[FALSE]]: | 110 ; CHECK: [[FALSE]]: |
111 ; CHECK: bl test_false | 111 ; CHECK: bl test_false |
112 | 112 |
123 ; CHECK-LABEL: test_CBNZ_fallthrough_nottaken: | 123 ; CHECK-LABEL: test_CBNZ_fallthrough_nottaken: |
124 %tst = icmp ne i64 %in, 0 | 124 %tst = icmp ne i64 %in, 0 |
125 br i1 %tst, label %true, label %false, !prof !1 | 125 br i1 %tst, label %true, label %false, !prof !1 |
126 | 126 |
127 ; CHECK: cbnz {{x[0-9]+}}, [[TRUE:.LBB[0-9]+_[0-9]+]] | 127 ; CHECK: cbnz {{x[0-9]+}}, [[TRUE:.LBB[0-9]+_[0-9]+]] |
128 ; CHECK-NEXT: // BB# | 128 ; CHECK-NEXT: // %bb. |
129 ; CHECK-NEXT: bl test_false | 129 ; CHECK-NEXT: bl test_false |
130 | 130 |
131 ; CHECK: [[TRUE]]: | 131 ; CHECK: [[TRUE]]: |
132 ; CHECK: bl test_true | 132 ; CHECK: bl test_true |
133 | 133 |
145 %bit = and i32 %in, 32768 | 145 %bit = and i32 %in, 32768 |
146 %tst = icmp eq i32 %bit, 0 | 146 %tst = icmp eq i32 %bit, 0 |
147 br i1 %tst, label %true, label %false, !prof !0 | 147 br i1 %tst, label %true, label %false, !prof !0 |
148 | 148 |
149 ; CHECK: tbnz {{w[0-9]+}}, #15, [[FALSE:.LBB[0-9]+_[0-9]+]] | 149 ; CHECK: tbnz {{w[0-9]+}}, #15, [[FALSE:.LBB[0-9]+_[0-9]+]] |
150 ; CHECK-NEXT: // BB# | 150 ; CHECK-NEXT: // %bb. |
151 ; CHECK-NEXT: bl test_true | 151 ; CHECK-NEXT: bl test_true |
152 | 152 |
153 ; CHECK: [[FALSE]]: | 153 ; CHECK: [[FALSE]]: |
154 ; CHECK: bl test_false | 154 ; CHECK: bl test_false |
155 | 155 |
167 %bit = and i64 %in, 32768 | 167 %bit = and i64 %in, 32768 |
168 %tst = icmp eq i64 %bit, 0 | 168 %tst = icmp eq i64 %bit, 0 |
169 br i1 %tst, label %true, label %false, !prof !1 | 169 br i1 %tst, label %true, label %false, !prof !1 |
170 | 170 |
171 ; CHECK: tbz {{[wx][0-9]+}}, #15, [[TRUE:.LBB[0-9]+_[0-9]+]] | 171 ; CHECK: tbz {{[wx][0-9]+}}, #15, [[TRUE:.LBB[0-9]+_[0-9]+]] |
172 ; CHECK-NEXT: // BB# | 172 ; CHECK-NEXT: // %bb. |
173 ; CHECK-NEXT: bl test_false | 173 ; CHECK-NEXT: bl test_false |
174 | 174 |
175 ; CHECK: [[TRUE]]: | 175 ; CHECK: [[TRUE]]: |
176 ; CHECK: bl test_true | 176 ; CHECK: bl test_true |
177 | 177 |
190 %bit = and i32 %in, 32768 | 190 %bit = and i32 %in, 32768 |
191 %tst = icmp ne i32 %bit, 0 | 191 %tst = icmp ne i32 %bit, 0 |
192 br i1 %tst, label %true, label %false, !prof !0 | 192 br i1 %tst, label %true, label %false, !prof !0 |
193 | 193 |
194 ; CHECK: tbz {{w[0-9]+}}, #15, [[FALSE:.LBB[0-9]+_[0-9]+]] | 194 ; CHECK: tbz {{w[0-9]+}}, #15, [[FALSE:.LBB[0-9]+_[0-9]+]] |
195 ; CHECK-NEXT: // BB# | 195 ; CHECK-NEXT: // %bb. |
196 ; CHECK-NEXT: bl test_true | 196 ; CHECK-NEXT: bl test_true |
197 | 197 |
198 ; CHECK: [[FALSE]]: | 198 ; CHECK: [[FALSE]]: |
199 ; CHECK: bl test_false | 199 ; CHECK: bl test_false |
200 | 200 |
212 %bit = and i64 %in, 32768 | 212 %bit = and i64 %in, 32768 |
213 %tst = icmp ne i64 %bit, 0 | 213 %tst = icmp ne i64 %bit, 0 |
214 br i1 %tst, label %true, label %false, !prof !1 | 214 br i1 %tst, label %true, label %false, !prof !1 |
215 | 215 |
216 ; CHECK: tbnz {{[wx][0-9]+}}, #15, [[TRUE:.LBB[0-9]+_[0-9]+]] | 216 ; CHECK: tbnz {{[wx][0-9]+}}, #15, [[TRUE:.LBB[0-9]+_[0-9]+]] |
217 ; CHECK-NEXT: // BB# | 217 ; CHECK-NEXT: // %bb. |
218 ; CHECK-NEXT: bl test_false | 218 ; CHECK-NEXT: bl test_false |
219 | 219 |
220 ; CHECK: [[TRUE]]: | 220 ; CHECK: [[TRUE]]: |
221 ; CHECK: bl test_true | 221 ; CHECK: bl test_true |
222 | 222 |
223 true: | 223 true: |
224 call void @test_true() | 224 call void @test_true() |
225 ret void | 225 ret void |
226 | 226 |
227 false: | 227 false: |
228 call void @test_false() | 228 call void @test_false() |
229 ret void | 229 ret void |
230 } | 230 } |
231 | 231 |