@@ -52,7 +52,7 @@ void refoo1() {
5252// CIR: } catch [type #cir.all {
5353// CIR: %[[V3:.*]] = cir.catch_param -> !cir.ptr<!void>
5454// CIR: %[[V4:.*]] = cir.load %[[V0]] : !cir.ptr<!s32i>, !s32i
55- // CIR: %[[V5:.*]] = cir.unary(inc, %[[V4]]) : !s32i, !s32i
55+ // CIR: %[[V5:.*]] = cir.unary(inc, %[[V4]]) nsw : !s32i, !s32i
5656// CIR: cir.store %[[V5]], %[[V0]] : !s32i, !cir.ptr<!s32i>
5757// CIR: cir.yield
5858// CIR: }]
@@ -91,7 +91,7 @@ void refoo1() {
9191// LLVM: %[[V16:.*]] = phi ptr [ %[[V9]], %[[B7]] ], [ %[[V13]], %[[B11]] ]
9292// LLVM: %[[V17:.*]] = call ptr @__cxa_begin_catch(ptr %[[V16]])
9393// LLVM: %[[V18:.*]] = load i32, ptr %[[V2]], align 4
94- // LLVM: %[[V19:.*]] = add i32 %[[V18]], 1
94+ // LLVM: %[[V19:.*]] = add nsw i32 %[[V18]], 1
9595// LLVM: store i32 %[[V19]], ptr %[[V2]], align 4
9696// LLVM: call void @__cxa_end_catch()
9797
@@ -136,7 +136,7 @@ void refoo2() {
136136// CIR: cir.yield
137137// CIR: } step {
138138// CIR: %[[V5:.*]] = cir.load %[[V3]] : !cir.ptr<!s32i>, !s32i
139- // CIR: %[[V6:.*]] = cir.unary(inc, %[[V5]]) : !s32i, !s32i
139+ // CIR: %[[V6:.*]] = cir.unary(inc, %[[V5]]) nsw : !s32i, !s32i
140140// CIR: cir.store %[[V6]], %[[V3]] : !s32i, !cir.ptr<!s32i>
141141// CIR: cir.yield
142142// CIR: }
@@ -146,7 +146,7 @@ void refoo2() {
146146// CIR: } catch [type #cir.all {
147147// CIR: %[[V3:.*]] = cir.catch_param -> !cir.ptr<!void>
148148// CIR: %[[V4:.*]] = cir.load %[[V0]] : !cir.ptr<!s32i>, !s32i
149- // CIR: %[[V5:.*]] = cir.unary(inc, %[[V4]]) : !s32i, !s32i
149+ // CIR: %[[V5:.*]] = cir.unary(inc, %[[V4]]) nsw : !s32i, !s32i
150150// CIR: cir.store %[[V5]], %[[V0]] : !s32i, !cir.ptr<!s32i>
151151// CIR: cir.yield
152152// CIR: }]
@@ -166,7 +166,7 @@ void refoo2() {
166166// LLVM: br label %[[B16:.*]]
167167// LLVM: [[B16]]:
168168// LLVM: %[[V17]] = load i32, ptr {{.*}}, align 4
169- // LLVM: %[[V18]] = add i32 %[[V17]], 1
169+ // LLVM: %[[V18]] = add nsw i32 %[[V17]], 1
170170// LLVM: store i32 %[[V18]], ptr {{.*}}, align 4
171171// LLVM: br label {{.*}}
172172// LLVM: %[[B19:.*]]
@@ -198,7 +198,7 @@ void refoo2() {
198198// LLVM: %[[V35:.*]] = phi ptr [ %[[V32]], %[[B30]] ], [ %[[V24]], %[[B22]] ], [ %[[V28]], %[[B26]] ]
199199// LLVM: %[[V36:.*]] = call ptr @__cxa_begin_catch(ptr %[[V35]])
200200// LLVM: %[[V37:.*]] = load i32, ptr {{.*}}, align 4
201- // LLVM: %[[V38:.*]] = add i32 %[[V37]], 1
201+ // LLVM: %[[V38:.*]] = add nsw i32 %[[V37]], 1
202202// LLVM: store i32 %[[V38]], ptr {{.*}}, align 4
203203// LLVM: call void @__cxa_end_catch()
204204// LLVM: br label {{.*}}
@@ -228,7 +228,7 @@ void refoo3() {
228228// CIR: } catch [type #cir.all {
229229// CIR: %[[V3:.*]] = cir.catch_param -> !cir.ptr<!void>
230230// CIR: %[[V4:.*]] = cir.load %[[V0]] : !cir.ptr<!s32i>, !s32i
231- // CIR: %[[V5:.*]] = cir.unary(inc, %[[V4]]) : !s32i, !s32i
231+ // CIR: %[[V5:.*]] = cir.unary(inc, %[[V4]]) nsw : !s32i, !s32i
232232// CIR: cir.store %[[V5]], %[[V0]] : !s32i, !cir.ptr<!s32i>
233233// CIR: cir.yield
234234// CIR: }]
@@ -261,7 +261,7 @@ void refoo3() {
261261// LLVM: %[[V17:.*]] = phi ptr [ %[[V14]], %[[B12]] ], [ %[[V10]], %[[B8]] ]
262262// LLVM: %[[V18:.*]] = call ptr @__cxa_begin_catch(ptr %[[V17]])
263263// LLVM: %[[V19:.*]] = load i32, ptr {{.*}}, align 4
264- // LLVM: %[[V20:.*]] = add i32 %[[V19]], 1
264+ // LLVM: %[[V20:.*]] = add nsw i32 %[[V19]], 1
265265// LLVM: store i32 %[[V20]], ptr {{.*}}, align 4
266266// LLVM: call void @__cxa_end_catch()
267267// LLVM: br label %[[B21]]
0 commit comments