@@ -10,18 +10,18 @@ define void @test_wide_integer_induction(ptr noalias %a, i64 %N) {
1010; CHECK-NEXT: entry:
1111; CHECK-NEXT: [[TMP0:%.*]] = sub i64 -1, [[N]]
1212; CHECK-NEXT: [[TMP1:%.*]] = call i64 @llvm.vscale.i64()
13- ; CHECK-NEXT: [[TMP2:%.*]] = mul i64 [[TMP1]], 2
13+ ; CHECK-NEXT: [[TMP2:%.*]] = mul nuw i64 [[TMP1]], 2
1414; CHECK-NEXT: [[TMP3:%.*]] = icmp ult i64 [[TMP0]], [[TMP2]]
1515; CHECK-NEXT: br i1 [[TMP3]], label [[SCALAR_PH:%.*]], label [[ENTRY:%.*]]
1616; CHECK: vector.ph:
1717; CHECK-NEXT: [[TMP4:%.*]] = call i64 @llvm.vscale.i64()
18- ; CHECK-NEXT: [[TMP5:%.*]] = mul i64 [[TMP4]], 2
18+ ; CHECK-NEXT: [[TMP5:%.*]] = mul nuw i64 [[TMP4]], 2
1919; CHECK-NEXT: [[TMP6:%.*]] = sub i64 [[TMP5]], 1
2020; CHECK-NEXT: [[N_RND_UP:%.*]] = add i64 [[N]], [[TMP6]]
2121; CHECK-NEXT: [[N_MOD_VF:%.*]] = urem i64 [[N_RND_UP]], [[TMP5]]
2222; CHECK-NEXT: [[N_VEC:%.*]] = sub i64 [[N_RND_UP]], [[N_MOD_VF]]
2323; CHECK-NEXT: [[TMP7:%.*]] = call i64 @llvm.vscale.i64()
24- ; CHECK-NEXT: [[TMP8:%.*]] = mul i64 [[TMP7]], 2
24+ ; CHECK-NEXT: [[TMP8:%.*]] = mul nuw i64 [[TMP7]], 2
2525; CHECK-NEXT: [[TMP9:%.*]] = call <vscale x 2 x i64> @llvm.stepvector.nxv2i64()
2626; CHECK-NEXT: [[TMP10:%.*]] = mul <vscale x 2 x i64> [[TMP9]], splat (i64 1)
2727; CHECK-NEXT: [[INDUCTION:%.*]] = add <vscale x 2 x i64> zeroinitializer, [[TMP10]]
0 commit comments