@@ -25,10 +25,12 @@ void l1() {
2525// CHECK-NEXT: %6 = cir.cmp(lt, %4, %5) : !s32i, !cir.bool
2626// CHECK-NEXT: cir.condition(%6)
2727// 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: }
3234// CHECK-NEXT: cir.yield
3335// CHECK-NEXT: } step {
3436// CHECK-NEXT: %4 = cir.load %2 : !cir.ptr<!s32i>, !s32i
@@ -57,10 +59,12 @@ void l2(bool cond) {
5759// CHECK-NEXT: %3 = cir.load %0 : !cir.ptr<!cir.bool>, !cir.bool
5860// CHECK-NEXT: cir.condition(%3)
5961// 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: }
6468// CHECK-NEXT: cir.yield
6569// CHECK-NEXT: }
6670// CHECK-NEXT: }
@@ -69,10 +73,12 @@ void l2(bool cond) {
6973// CHECK-NEXT: %[[#TRUE:]] = cir.const #true
7074// CHECK-NEXT: cir.condition(%[[#TRUE]])
7175// 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: }
7682// CHECK-NEXT: cir.yield
7783// CHECK-NEXT: }
7884// CHECK-NEXT: }
@@ -82,10 +88,12 @@ void l2(bool cond) {
8288// CHECK-NEXT: %4 = cir.cast(int_to_bool, %3 : !s32i), !cir.bool
8389// CHECK-NEXT: cir.condition(%4)
8490// 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: }
8997// CHECK-NEXT: cir.yield
9098// CHECK-NEXT: }
9199// CHECK-NEXT: }
@@ -106,10 +114,12 @@ void l3(bool cond) {
106114// CHECK: cir.func @_Z2l3b
107115// CHECK: cir.scope {
108116// 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: }
113123// CHECK-NEXT: cir.yield
114124// CHECK-NEXT: } while {
115125// CHECK-NEXT: %[[#TRUE:]] = cir.load %0 : !cir.ptr<!cir.bool>, !cir.bool
@@ -118,10 +128,12 @@ void l3(bool cond) {
118128// CHECK-NEXT: }
119129// CHECK-NEXT: cir.scope {
120130// 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: }
125137// CHECK-NEXT: cir.yield
126138// CHECK-NEXT: } while {
127139// CHECK-NEXT: %[[#TRUE:]] = cir.const #true
@@ -130,10 +142,12 @@ void l3(bool cond) {
130142// CHECK-NEXT: }
131143// CHECK-NEXT: cir.scope {
132144// 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: }
137151// CHECK-NEXT: cir.yield
138152// CHECK-NEXT: } while {
139153// CHECK-NEXT: %3 = cir.const #cir.int<1> : !s32i
@@ -157,18 +171,19 @@ void l4() {
157171// CHECK-NEXT: %[[#TRUE:]] = cir.const #true
158172// CHECK-NEXT: cir.condition(%[[#TRUE]])
159173// 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>
164174// 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: }
170186// CHECK-NEXT: }
171- // CHECK-NEXT: }
172187
173188void l5 () {
174189 do {
@@ -200,7 +215,10 @@ void l6() {
200215// CHECK-NEXT: %[[#TRUE:]] = cir.const #true
201216// CHECK-NEXT: cir.condition(%[[#TRUE]])
202217// 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
204222// CHECK-NEXT: }
205223// CHECK-NEXT: }
206224// CHECK-NEXT: cir.return
@@ -215,15 +233,18 @@ void unreachable_after_break() {
215233
216234// CHECK-NEXT: cir.func @_Z23unreachable_after_breakv()
217235// CHECK-NEXT: cir.scope {
218- // CHECK-NEXT: %0 = cir.alloca !s32i, !cir.ptr<!s32i>, ["x", init] {alignment = 4 : i64}
219236// 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 )
222239// 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: }
227248// CHECK-NEXT: cir.yield
228249// CHECK-NEXT: } step {
229250// CHECK-NEXT: cir.yield
@@ -241,15 +262,18 @@ void unreachable_after_continue() {
241262
242263// CHECK-NEXT: cir.func @_Z26unreachable_after_continuev()
243264// CHECK-NEXT: cir.scope {
244- // CHECK-NEXT: %0 = cir.alloca !s32i, !cir.ptr<!s32i>, ["x", init] {alignment = 4 : i64}
245265// 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 )
248268// 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: }
253277// CHECK-NEXT: cir.yield
254278// CHECK-NEXT: } step {
255279// CHECK-NEXT: cir.yield
0 commit comments