@@ -10,18 +10,18 @@ define void @test_wide_integer_induction(ptr noalias %a, i64 %N) {
10
10
; CHECK-NEXT: entry:
11
11
; CHECK-NEXT: [[TMP0:%.*]] = sub i64 -1, [[N]]
12
12
; 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
14
14
; CHECK-NEXT: [[TMP3:%.*]] = icmp ult i64 [[TMP0]], [[TMP2]]
15
15
; CHECK-NEXT: br i1 [[TMP3]], label [[SCALAR_PH:%.*]], label [[ENTRY:%.*]]
16
16
; CHECK: vector.ph:
17
17
; 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
19
19
; CHECK-NEXT: [[TMP6:%.*]] = sub i64 [[TMP5]], 1
20
20
; CHECK-NEXT: [[N_RND_UP:%.*]] = add i64 [[N]], [[TMP6]]
21
21
; CHECK-NEXT: [[N_MOD_VF:%.*]] = urem i64 [[N_RND_UP]], [[TMP5]]
22
22
; CHECK-NEXT: [[N_VEC:%.*]] = sub i64 [[N_RND_UP]], [[N_MOD_VF]]
23
23
; 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
25
25
; CHECK-NEXT: [[TMP9:%.*]] = call <vscale x 2 x i64> @llvm.stepvector.nxv2i64()
26
26
; CHECK-NEXT: [[TMP10:%.*]] = mul <vscale x 2 x i64> [[TMP9]], splat (i64 1)
27
27
; CHECK-NEXT: [[INDUCTION:%.*]] = add <vscale x 2 x i64> zeroinitializer, [[TMP10]]
0 commit comments