@@ -6,8 +6,8 @@ define double @test_mul_fast_flags(ptr %arr_d) {
66; CHECK-NEXT: br label [[FOR_BODY:%.*]]
77; CHECK: for.body:
88; CHECK-NEXT: [[I_02:%.*]] = phi i64 [ 0, [[ENTRY:%.*]] ], [ [[INC:%.*]], [[FOR_BODY]] ]
9- ; CHECK-NEXT: [[INC]] = add i64 [[I_02]], 1
10- ; CHECK-NEXT: [[CMP:%.*]] = icmp ult i64 [[INC ]], 1000
9+ ; CHECK-NEXT: [[INC]] = add nuw nsw i64 [[I_02]], 1
10+ ; CHECK-NEXT: [[CMP:%.*]] = icmp ult i64 [[I_02 ]], 999
1111; CHECK-NEXT: br i1 [[CMP]], label [[FOR_BODY]], label [[END:%.*]]
1212; CHECK: end:
1313; CHECK-NEXT: ret double 0.000000e+00
@@ -36,8 +36,8 @@ define double @test_nsz_nnan_flags_enabled(ptr %arr_d) {
3636; CHECK-NEXT: br label [[FOR_BODY:%.*]]
3737; CHECK: for.body:
3838; CHECK-NEXT: [[I_02:%.*]] = phi i64 [ 0, [[ENTRY:%.*]] ], [ [[INC:%.*]], [[FOR_BODY]] ]
39- ; CHECK-NEXT: [[INC]] = add i64 [[I_02]], 1
40- ; CHECK-NEXT: [[CMP:%.*]] = icmp ult i64 [[INC ]], 1000
39+ ; CHECK-NEXT: [[INC]] = add nuw nsw i64 [[I_02]], 1
40+ ; CHECK-NEXT: [[CMP:%.*]] = icmp ult i64 [[I_02 ]], 999
4141; CHECK-NEXT: br i1 [[CMP]], label [[FOR_BODY]], label [[END:%.*]]
4242; CHECK: end:
4343; CHECK-NEXT: ret double 0.000000e+00
@@ -70,8 +70,8 @@ define double @test_nnan_flag_enabled(ptr %arr_d) {
7070; CHECK-NEXT: [[ARRAYIDX:%.*]] = getelementptr inbounds [1000 x double], ptr [[ARR_D:%.*]], i64 0, i64 [[I_02]]
7171; CHECK-NEXT: [[TMP0:%.*]] = load double, ptr [[ARRAYIDX]], align 8
7272; CHECK-NEXT: [[MUL]] = fmul nnan double [[F_PROD_01]], [[TMP0]]
73- ; CHECK-NEXT: [[INC]] = add i64 [[I_02]], 1
74- ; CHECK-NEXT: [[CMP:%.*]] = icmp ult i64 [[INC ]], 1000
73+ ; CHECK-NEXT: [[INC]] = add nuw nsw i64 [[I_02]], 1
74+ ; CHECK-NEXT: [[CMP:%.*]] = icmp ult i64 [[I_02 ]], 999
7575; CHECK-NEXT: br i1 [[CMP]], label [[FOR_BODY]], label [[END:%.*]]
7676; CHECK: end:
7777; CHECK-NEXT: ret double [[MUL]]
@@ -104,8 +104,8 @@ define double @test_ninf_flag_enabled(ptr %arr_d) {
104104; CHECK-NEXT: [[ARRAYIDX:%.*]] = getelementptr inbounds [1000 x double], ptr [[ARR_D:%.*]], i64 0, i64 [[I_02]]
105105; CHECK-NEXT: [[TMP0:%.*]] = load double, ptr [[ARRAYIDX]], align 8
106106; CHECK-NEXT: [[MUL]] = fmul ninf double [[F_PROD_01]], [[TMP0]]
107- ; CHECK-NEXT: [[INC]] = add i64 [[I_02]], 1
108- ; CHECK-NEXT: [[CMP:%.*]] = icmp ult i64 [[INC ]], 1000
107+ ; CHECK-NEXT: [[INC]] = add nuw nsw i64 [[I_02]], 1
108+ ; CHECK-NEXT: [[CMP:%.*]] = icmp ult i64 [[I_02 ]], 999
109109; CHECK-NEXT: br i1 [[CMP]], label [[FOR_BODY]], label [[END:%.*]]
110110; CHECK: end:
111111; CHECK-NEXT: ret double [[MUL]]
@@ -138,8 +138,8 @@ define double @test_nsz_flag_enabled(ptr %arr_d) {
138138; CHECK-NEXT: [[ARRAYIDX:%.*]] = getelementptr inbounds [1000 x double], ptr [[ARR_D:%.*]], i64 0, i64 [[I_02]]
139139; CHECK-NEXT: [[TMP0:%.*]] = load double, ptr [[ARRAYIDX]], align 8
140140; CHECK-NEXT: [[MUL]] = fmul nsz double [[F_PROD_01]], [[TMP0]]
141- ; CHECK-NEXT: [[INC]] = add i64 [[I_02]], 1
142- ; CHECK-NEXT: [[CMP:%.*]] = icmp ult i64 [[INC ]], 1000
141+ ; CHECK-NEXT: [[INC]] = add nuw nsw i64 [[I_02]], 1
142+ ; CHECK-NEXT: [[CMP:%.*]] = icmp ult i64 [[I_02 ]], 999
143143; CHECK-NEXT: br i1 [[CMP]], label [[FOR_BODY]], label [[END:%.*]]
144144; CHECK: end:
145145; CHECK-NEXT: ret double [[MUL]]
@@ -172,8 +172,8 @@ define double @test_phi_initalise_to_non_zero(ptr %arr_d) {
172172; CHECK-NEXT: [[ARRAYIDX:%.*]] = getelementptr inbounds [1000 x double], ptr [[ARR_D:%.*]], i64 0, i64 [[I_02]]
173173; CHECK-NEXT: [[TMP0:%.*]] = load double, ptr [[ARRAYIDX]], align 8
174174; CHECK-NEXT: [[MUL]] = fmul fast double [[F_PROD_01]], [[TMP0]]
175- ; CHECK-NEXT: [[INC]] = add i64 [[I_02]], 1
176- ; CHECK-NEXT: [[CMP:%.*]] = icmp ult i64 [[INC ]], 1000
175+ ; CHECK-NEXT: [[INC]] = add nuw nsw i64 [[I_02]], 1
176+ ; CHECK-NEXT: [[CMP:%.*]] = icmp ult i64 [[I_02 ]], 999
177177; CHECK-NEXT: br i1 [[CMP]], label [[FOR_BODY]], label [[END:%.*]]
178178; CHECK: end:
179179; CHECK-NEXT: ret double [[MUL]]
@@ -284,8 +284,8 @@ define i32 @test_int_phi_operands(ptr %arr_d) {
284284; CHECK-NEXT: [[ARRAYIDX:%.*]] = getelementptr inbounds i32, ptr [[ARR_D:%.*]], i64 [[I_02]]
285285; CHECK-NEXT: [[TMP0:%.*]] = load i32, ptr [[ARRAYIDX]], align 4
286286; CHECK-NEXT: [[MUL]] = mul nsw i32 [[F_PROD_01]], [[TMP0]]
287- ; CHECK-NEXT: [[INC]] = add i64 [[I_02]], 1
288- ; CHECK-NEXT: [[CMP:%.*]] = icmp ult i64 [[INC ]], 1000
287+ ; CHECK-NEXT: [[INC]] = add nuw nsw i64 [[I_02]], 1
288+ ; CHECK-NEXT: [[CMP:%.*]] = icmp ult i64 [[I_02 ]], 999
289289; CHECK-NEXT: br i1 [[CMP]], label [[FOR_BODY]], label [[END:%.*]]
290290; CHECK: end:
291291; CHECK-NEXT: ret i32 [[MUL]]
@@ -318,8 +318,8 @@ define i32 @test_int_phi_operands_initalise_to_non_zero(ptr %arr_d) {
318318; CHECK-NEXT: [[ARRAYIDX:%.*]] = getelementptr inbounds i32, ptr [[ARR_D:%.*]], i64 [[I_02]]
319319; CHECK-NEXT: [[TMP0:%.*]] = load i32, ptr [[ARRAYIDX]], align 4
320320; CHECK-NEXT: [[MUL]] = mul i32 [[F_PROD_01]], [[TMP0]]
321- ; CHECK-NEXT: [[INC]] = add i64 [[I_02]], 1
322- ; CHECK-NEXT: [[CMP:%.*]] = icmp ult i64 [[INC ]], 1000
321+ ; CHECK-NEXT: [[INC]] = add nuw nsw i64 [[I_02]], 1
322+ ; CHECK-NEXT: [[CMP:%.*]] = icmp ult i64 [[I_02 ]], 999
323323; CHECK-NEXT: br i1 [[CMP]], label [[FOR_BODY]], label [[END:%.*]]
324324; CHECK: end:
325325; CHECK-NEXT: ret i32 [[MUL]]
0 commit comments