@@ -25,10 +25,12 @@ void l1() {
25
25
// CHECK-NEXT: %6 = cir.cmp(lt, %4, %5) : !s32i, !cir.bool
26
26
// CHECK-NEXT: cir.condition(%6)
27
27
// CHECK-NEXT: } body {
28
- // CHECK-NEXT: %4 = cir.load %0 : !cir.ptr<!s32i>, !s32i
29
- // CHECK-NEXT: %5 = cir.const #cir.int<1> : !s32i
30
- // CHECK-NEXT: %6 = cir.binop(add, %4, %5) nsw : !s32i
31
- // CHECK-NEXT: cir.store %6, %0 : !s32i, !cir.ptr<!s32i>
28
+ // CHECK-NEXT: cir.scope {
29
+ // CHECK-NEXT: %4 = cir.load %0 : !cir.ptr<!s32i>, !s32i
30
+ // CHECK-NEXT: %5 = cir.const #cir.int<1> : !s32i
31
+ // CHECK-NEXT: %6 = cir.binop(add, %4, %5) nsw : !s32i
32
+ // CHECK-NEXT: cir.store %6, %0 : !s32i, !cir.ptr<!s32i>
33
+ // CHECK-NEXT: }
32
34
// CHECK-NEXT: cir.yield
33
35
// CHECK-NEXT: } step {
34
36
// CHECK-NEXT: %4 = cir.load %2 : !cir.ptr<!s32i>, !s32i
@@ -57,10 +59,12 @@ void l2(bool cond) {
57
59
// CHECK-NEXT: %3 = cir.load %0 : !cir.ptr<!cir.bool>, !cir.bool
58
60
// CHECK-NEXT: cir.condition(%3)
59
61
// CHECK-NEXT: } do {
60
- // CHECK-NEXT: %3 = cir.load %1 : !cir.ptr<!s32i>, !s32i
61
- // CHECK-NEXT: %4 = cir.const #cir.int<1> : !s32i
62
- // CHECK-NEXT: %5 = cir.binop(add, %3, %4) nsw : !s32i
63
- // CHECK-NEXT: cir.store %5, %1 : !s32i, !cir.ptr<!s32i>
62
+ // CHECK-NEXT: cir.scope {
63
+ // CHECK-NEXT: %3 = cir.load %1 : !cir.ptr<!s32i>, !s32i
64
+ // CHECK-NEXT: %4 = cir.const #cir.int<1> : !s32i
65
+ // CHECK-NEXT: %5 = cir.binop(add, %3, %4) nsw : !s32i
66
+ // CHECK-NEXT: cir.store %5, %1 : !s32i, !cir.ptr<!s32i>
67
+ // CHECK-NEXT: }
64
68
// CHECK-NEXT: cir.yield
65
69
// CHECK-NEXT: }
66
70
// CHECK-NEXT: }
@@ -69,10 +73,12 @@ void l2(bool cond) {
69
73
// CHECK-NEXT: %[[#TRUE:]] = cir.const #true
70
74
// CHECK-NEXT: cir.condition(%[[#TRUE]])
71
75
// CHECK-NEXT: } do {
72
- // CHECK-NEXT: %3 = cir.load %1 : !cir.ptr<!s32i>, !s32i
73
- // CHECK-NEXT: %4 = cir.const #cir.int<1> : !s32i
74
- // CHECK-NEXT: %5 = cir.binop(add, %3, %4) nsw : !s32i
75
- // CHECK-NEXT: cir.store %5, %1 : !s32i, !cir.ptr<!s32i>
76
+ // CHECK-NEXT: cir.scope {
77
+ // CHECK-NEXT: %3 = cir.load %1 : !cir.ptr<!s32i>, !s32i
78
+ // CHECK-NEXT: %4 = cir.const #cir.int<1> : !s32i
79
+ // CHECK-NEXT: %5 = cir.binop(add, %3, %4) nsw : !s32i
80
+ // CHECK-NEXT: cir.store %5, %1 : !s32i, !cir.ptr<!s32i>
81
+ // CHECK-NEXT: }
76
82
// CHECK-NEXT: cir.yield
77
83
// CHECK-NEXT: }
78
84
// CHECK-NEXT: }
@@ -82,10 +88,12 @@ void l2(bool cond) {
82
88
// CHECK-NEXT: %4 = cir.cast(int_to_bool, %3 : !s32i), !cir.bool
83
89
// CHECK-NEXT: cir.condition(%4)
84
90
// CHECK-NEXT: } do {
85
- // CHECK-NEXT: %3 = cir.load %1 : !cir.ptr<!s32i>, !s32i
86
- // CHECK-NEXT: %4 = cir.const #cir.int<1> : !s32i
87
- // CHECK-NEXT: %5 = cir.binop(add, %3, %4) nsw : !s32i
88
- // CHECK-NEXT: cir.store %5, %1 : !s32i, !cir.ptr<!s32i>
91
+ // CHECK-NEXT: cir.scope {
92
+ // CHECK-NEXT: %3 = cir.load %1 : !cir.ptr<!s32i>, !s32i
93
+ // CHECK-NEXT: %4 = cir.const #cir.int<1> : !s32i
94
+ // CHECK-NEXT: %5 = cir.binop(add, %3, %4) nsw : !s32i
95
+ // CHECK-NEXT: cir.store %5, %1 : !s32i, !cir.ptr<!s32i>
96
+ // CHECK-NEXT: }
89
97
// CHECK-NEXT: cir.yield
90
98
// CHECK-NEXT: }
91
99
// CHECK-NEXT: }
@@ -106,10 +114,12 @@ void l3(bool cond) {
106
114
// CHECK: cir.func @_Z2l3b
107
115
// CHECK: cir.scope {
108
116
// CHECK-NEXT: cir.do {
109
- // CHECK-NEXT: %3 = cir.load %1 : !cir.ptr<!s32i>, !s32i
110
- // CHECK-NEXT: %4 = cir.const #cir.int<1> : !s32i
111
- // CHECK-NEXT: %5 = cir.binop(add, %3, %4) nsw : !s32i
112
- // CHECK-NEXT: cir.store %5, %1 : !s32i, !cir.ptr<!s32i>
117
+ // CHECK-NEXT: cir.scope {
118
+ // CHECK-NEXT: %3 = cir.load %1 : !cir.ptr<!s32i>, !s32i
119
+ // CHECK-NEXT: %4 = cir.const #cir.int<1> : !s32i
120
+ // CHECK-NEXT: %5 = cir.binop(add, %3, %4) nsw : !s32i
121
+ // CHECK-NEXT: cir.store %5, %1 : !s32i, !cir.ptr<!s32i>
122
+ // CHECK-NEXT: }
113
123
// CHECK-NEXT: cir.yield
114
124
// CHECK-NEXT: } while {
115
125
// CHECK-NEXT: %[[#TRUE:]] = cir.load %0 : !cir.ptr<!cir.bool>, !cir.bool
@@ -118,10 +128,12 @@ void l3(bool cond) {
118
128
// CHECK-NEXT: }
119
129
// CHECK-NEXT: cir.scope {
120
130
// CHECK-NEXT: cir.do {
121
- // CHECK-NEXT: %3 = cir.load %1 : !cir.ptr<!s32i>, !s32i
122
- // CHECK-NEXT: %4 = cir.const #cir.int<1> : !s32i
123
- // CHECK-NEXT: %5 = cir.binop(add, %3, %4) nsw : !s32i
124
- // CHECK-NEXT: cir.store %5, %1 : !s32i, !cir.ptr<!s32i>
131
+ // CHECK-NEXT: cir.scope {
132
+ // CHECK-NEXT: %3 = cir.load %1 : !cir.ptr<!s32i>, !s32i
133
+ // CHECK-NEXT: %4 = cir.const #cir.int<1> : !s32i
134
+ // CHECK-NEXT: %5 = cir.binop(add, %3, %4) nsw : !s32i
135
+ // CHECK-NEXT: cir.store %5, %1 : !s32i, !cir.ptr<!s32i>
136
+ // CHECK-NEXT: }
125
137
// CHECK-NEXT: cir.yield
126
138
// CHECK-NEXT: } while {
127
139
// CHECK-NEXT: %[[#TRUE:]] = cir.const #true
@@ -130,10 +142,12 @@ void l3(bool cond) {
130
142
// CHECK-NEXT: }
131
143
// CHECK-NEXT: cir.scope {
132
144
// CHECK-NEXT: cir.do {
133
- // CHECK-NEXT: %3 = cir.load %1 : !cir.ptr<!s32i>, !s32i
134
- // CHECK-NEXT: %4 = cir.const #cir.int<1> : !s32i
135
- // CHECK-NEXT: %5 = cir.binop(add, %3, %4) nsw : !s32i
136
- // CHECK-NEXT: cir.store %5, %1 : !s32i, !cir.ptr<!s32i>
145
+ // CHECK-NEXT: cir.scope {
146
+ // CHECK-NEXT: %3 = cir.load %1 : !cir.ptr<!s32i>, !s32i
147
+ // CHECK-NEXT: %4 = cir.const #cir.int<1> : !s32i
148
+ // CHECK-NEXT: %5 = cir.binop(add, %3, %4) nsw : !s32i
149
+ // CHECK-NEXT: cir.store %5, %1 : !s32i, !cir.ptr<!s32i>
150
+ // CHECK-NEXT: }
137
151
// CHECK-NEXT: cir.yield
138
152
// CHECK-NEXT: } while {
139
153
// CHECK-NEXT: %3 = cir.const #cir.int<1> : !s32i
@@ -157,18 +171,19 @@ void l4() {
157
171
// CHECK-NEXT: %[[#TRUE:]] = cir.const #true
158
172
// CHECK-NEXT: cir.condition(%[[#TRUE]])
159
173
// CHECK-NEXT: } do {
160
- // CHECK-NEXT: %4 = cir.load %0 : !cir.ptr<!s32i>, !s32i
161
- // CHECK-NEXT: %5 = cir.const #cir.int<1> : !s32i
162
- // CHECK-NEXT: %6 = cir.binop(add, %4, %5) nsw : !s32i
163
- // CHECK-NEXT: cir.store %6, %0 : !s32i, !cir.ptr<!s32i>
164
174
// CHECK-NEXT: cir.scope {
165
- // CHECK-NEXT: %10 = cir.load %0 : !cir.ptr<!s32i>, !s32i
166
- // CHECK-NEXT: %11 = cir.const #cir.int<10> : !s32i
167
- // CHECK-NEXT: %12 = cir.cmp(lt, %10, %11) : !s32i, !cir.bool
168
- // CHECK-NEXT: cir.if %12 {
169
- // CHECK-NEXT: cir.continue
175
+ // CHECK-NEXT: %4 = cir.load %0 : !cir.ptr<!s32i>, !s32i
176
+ // CHECK-NEXT: %5 = cir.const #cir.int<1> : !s32i
177
+ // CHECK-NEXT: %6 = cir.binop(add, %4, %5) nsw : !s32i
178
+ // CHECK-NEXT: cir.store %6, %0 : !s32i, !cir.ptr<!s32i>
179
+ // CHECK-NEXT: cir.scope {
180
+ // CHECK-NEXT: %10 = cir.load %0 : !cir.ptr<!s32i>, !s32i
181
+ // CHECK-NEXT: %11 = cir.const #cir.int<10> : !s32i
182
+ // CHECK-NEXT: %12 = cir.cmp(lt, %10, %11) : !s32i, !cir.bool
183
+ // CHECK-NEXT: cir.if %12 {
184
+ // CHECK-NEXT: cir.continue
185
+ // CHECK-NEXT: }
170
186
// CHECK-NEXT: }
171
- // CHECK-NEXT: }
172
187
173
188
void l5 () {
174
189
do {
@@ -200,7 +215,10 @@ void l6() {
200
215
// CHECK-NEXT: %[[#TRUE:]] = cir.const #true
201
216
// CHECK-NEXT: cir.condition(%[[#TRUE]])
202
217
// CHECK-NEXT: } do {
203
- // CHECK-NEXT: cir.return
218
+ // CHECK-NEXT: cir.scope {
219
+ // CHECK-NEXT: cir.return
220
+ // CHECK-NEXT: }
221
+ // CHECK-NEXT: cir.yield
204
222
// CHECK-NEXT: }
205
223
// CHECK-NEXT: }
206
224
// CHECK-NEXT: cir.return
@@ -215,15 +233,18 @@ void unreachable_after_break() {
215
233
216
234
// CHECK-NEXT: cir.func @_Z23unreachable_after_breakv()
217
235
// CHECK-NEXT: cir.scope {
218
- // CHECK-NEXT: %0 = cir.alloca !s32i, !cir.ptr<!s32i>, ["x", init] {alignment = 4 : i64}
219
236
// CHECK-NEXT: cir.for : cond {
220
- // CHECK-NEXT: %1 = cir.const #true
221
- // CHECK-NEXT: cir.condition(%1 )
237
+ // CHECK-NEXT: %0 = cir.const #true
238
+ // CHECK-NEXT: cir.condition(%0 )
222
239
// CHECK-NEXT: } body {
223
- // CHECK-NEXT: cir.break
224
- // CHECK-NEXT: ^bb1: // no predecessors
225
- // CHECK-NEXT: %1 = cir.const #cir.int<1> : !s32i
226
- // CHECK-NEXT: cir.store %1, %0 : !s32i, !cir.ptr<!s32i>
240
+ // CHECK-NEXT: cir.scope {
241
+ // CHECK-NEXT: %0 = cir.alloca !s32i, !cir.ptr<!s32i>, ["x", init] {alignment = 4 : i64}
242
+ // CHECK-NEXT: cir.break
243
+ // CHECK-NEXT: ^bb1: // no predecessors
244
+ // CHECK-NEXT: %1 = cir.const #cir.int<1> : !s32i
245
+ // CHECK-NEXT: cir.store %1, %0 : !s32i, !cir.ptr<!s32i>
246
+ // CHECK-NEXT: cir.yield
247
+ // CHECK-NEXT: }
227
248
// CHECK-NEXT: cir.yield
228
249
// CHECK-NEXT: } step {
229
250
// CHECK-NEXT: cir.yield
@@ -241,15 +262,18 @@ void unreachable_after_continue() {
241
262
242
263
// CHECK-NEXT: cir.func @_Z26unreachable_after_continuev()
243
264
// CHECK-NEXT: cir.scope {
244
- // CHECK-NEXT: %0 = cir.alloca !s32i, !cir.ptr<!s32i>, ["x", init] {alignment = 4 : i64}
245
265
// CHECK-NEXT: cir.for : cond {
246
- // CHECK-NEXT: %1 = cir.const #true
247
- // CHECK-NEXT: cir.condition(%1 )
266
+ // CHECK-NEXT: %0 = cir.const #true
267
+ // CHECK-NEXT: cir.condition(%0 )
248
268
// CHECK-NEXT: } body {
249
- // CHECK-NEXT: cir.continue
250
- // CHECK-NEXT: ^bb1: // no predecessors
251
- // CHECK-NEXT: %1 = cir.const #cir.int<1> : !s32i
252
- // CHECK-NEXT: cir.store %1, %0 : !s32i, !cir.ptr<!s32i>
269
+ // CHECK-NEXT: cir.scope {
270
+ // CHECK-NEXT: %0 = cir.alloca !s32i, !cir.ptr<!s32i>, ["x", init] {alignment = 4 : i64}
271
+ // CHECK-NEXT: cir.continue
272
+ // CHECK-NEXT: ^bb1: // no predecessors
273
+ // CHECK-NEXT: %1 = cir.const #cir.int<1> : !s32i
274
+ // CHECK-NEXT: cir.store %1, %0 : !s32i, !cir.ptr<!s32i>
275
+ // CHECK-NEXT: cir.yield
276
+ // CHECK-NEXT: }
253
277
// CHECK-NEXT: cir.yield
254
278
// CHECK-NEXT: } step {
255
279
// CHECK-NEXT: cir.yield
0 commit comments