@@ -140,7 +140,7 @@ define i64 @test_vectorize_select_smin_first_idx(ptr %src, i64 %n) {
140140; CHECK: [[LOOP]]:
141141; CHECK-NEXT: [[IV:%.*]] = phi i64 [ 0, %[[ENTRY]] ], [ [[IV_NEXT:%.*]], %[[LOOP]] ]
142142; CHECK-NEXT: [[MIN_IDX:%.*]] = phi i64 [ 0, %[[ENTRY]] ], [ [[MIN_IDX_NEXT:%.*]], %[[LOOP]] ]
143- ; CHECK-NEXT: [[MIN_VAL:%.*]] = phi i64 [ 100 , %[[ENTRY]] ], [ [[MIN_VAL_NEXT:%.*]], %[[LOOP]] ]
143+ ; CHECK-NEXT: [[MIN_VAL:%.*]] = phi i64 [ 0 , %[[ENTRY]] ], [ [[MIN_VAL_NEXT:%.*]], %[[LOOP]] ]
144144; CHECK-NEXT: [[GEP:%.*]] = getelementptr i64, ptr [[SRC]], i64 [[IV]]
145145; CHECK-NEXT: [[L:%.*]] = load i64, ptr [[GEP]], align 8
146146; CHECK-NEXT: [[CMP:%.*]] = icmp sgt i64 [[MIN_VAL]], [[L]]
@@ -159,7 +159,7 @@ entry:
159159loop:
160160 %iv = phi i64 [ 0 , %entry ], [ %iv.next , %loop ]
161161 %min.idx = phi i64 [ 0 , %entry ], [ %min.idx.next , %loop ]
162- %min.val = phi i64 [ 100 , %entry ], [ %min.val.next , %loop ]
162+ %min.val = phi i64 [ 0 , %entry ], [ %min.val.next , %loop ]
163163 %gep = getelementptr i64 , ptr %src , i64 %iv
164164 %l = load i64 , ptr %gep
165165 %cmp = icmp sgt i64 %min.val , %l
@@ -271,7 +271,7 @@ define i64 @test_vectorize_select_umax_first_idx(ptr %src, i64 %n) {
271271; CHECK: [[LOOP]]:
272272; CHECK-NEXT: [[IV:%.*]] = phi i64 [ 0, %[[ENTRY]] ], [ [[IV_NEXT:%.*]], %[[LOOP]] ]
273273; CHECK-NEXT: [[MIN_IDX:%.*]] = phi i64 [ 0, %[[ENTRY]] ], [ [[MIN_IDX_NEXT:%.*]], %[[LOOP]] ]
274- ; CHECK-NEXT: [[MIN_VAL:%.*]] = phi i64 [ 100 , %[[ENTRY]] ], [ [[MIN_VAL_NEXT:%.*]], %[[LOOP]] ]
274+ ; CHECK-NEXT: [[MIN_VAL:%.*]] = phi i64 [ 0 , %[[ENTRY]] ], [ [[MIN_VAL_NEXT:%.*]], %[[LOOP]] ]
275275; CHECK-NEXT: [[GEP:%.*]] = getelementptr i64, ptr [[SRC]], i64 [[IV]]
276276; CHECK-NEXT: [[L:%.*]] = load i64, ptr [[GEP]], align 8
277277; CHECK-NEXT: [[CMP:%.*]] = icmp ult i64 [[MIN_VAL]], [[L]]
@@ -290,7 +290,7 @@ entry:
290290loop:
291291 %iv = phi i64 [ 0 , %entry ], [ %iv.next , %loop ]
292292 %min.idx = phi i64 [ 0 , %entry ], [ %min.idx.next , %loop ]
293- %min.val = phi i64 [ 100 , %entry ], [ %min.val.next , %loop ]
293+ %min.val = phi i64 [ 0 , %entry ], [ %min.val.next , %loop ]
294294 %gep = getelementptr i64 , ptr %src , i64 %iv
295295 %l = load i64 , ptr %gep
296296 %cmp = icmp ult i64 %min.val , %l
@@ -320,8 +320,8 @@ define i64 @test_vectorize_select_umax_last_idx(ptr %src, i64 %n) {
320320; CHECK-NEXT: [[VEC_IND:%.*]] = phi <2 x i64> [ <i64 0, i64 1>, %[[VECTOR_PH]] ], [ [[VEC_IND_NEXT:%.*]], %[[VECTOR_BODY]] ]
321321; CHECK-NEXT: [[VEC_PHI:%.*]] = phi <2 x i64> [ splat (i64 -9223372036854775808), %[[VECTOR_PH]] ], [ [[TMP7:%.*]], %[[VECTOR_BODY]] ]
322322; CHECK-NEXT: [[VEC_PHI1:%.*]] = phi <2 x i64> [ splat (i64 -9223372036854775808), %[[VECTOR_PH]] ], [ [[TMP8:%.*]], %[[VECTOR_BODY]] ]
323- ; CHECK-NEXT: [[VEC_PHI2:%.*]] = phi <2 x i64> [ splat (i64 100) , %[[VECTOR_PH]] ], [ [[TMP5:%.*]], %[[VECTOR_BODY]] ]
324- ; CHECK-NEXT: [[VEC_PHI3:%.*]] = phi <2 x i64> [ splat (i64 100) , %[[VECTOR_PH]] ], [ [[TMP6:%.*]], %[[VECTOR_BODY]] ]
323+ ; CHECK-NEXT: [[VEC_PHI2:%.*]] = phi <2 x i64> [ zeroinitializer , %[[VECTOR_PH]] ], [ [[TMP5:%.*]], %[[VECTOR_BODY]] ]
324+ ; CHECK-NEXT: [[VEC_PHI3:%.*]] = phi <2 x i64> [ zeroinitializer , %[[VECTOR_PH]] ], [ [[TMP6:%.*]], %[[VECTOR_BODY]] ]
325325; CHECK-NEXT: [[STEP_ADD:%.*]] = add <2 x i64> [[VEC_IND]], splat (i64 2)
326326; CHECK-NEXT: [[GEP:%.*]] = getelementptr i64, ptr [[SRC]], i64 [[IV]]
327327; CHECK-NEXT: [[TMP2:%.*]] = getelementptr i64, ptr [[GEP]], i32 2
@@ -355,7 +355,7 @@ define i64 @test_vectorize_select_umax_last_idx(ptr %src, i64 %n) {
355355; CHECK: [[SCALAR_PH]]:
356356; CHECK-NEXT: [[BC_RESUME_VAL:%.*]] = phi i64 [ [[N_VEC]], %[[MIDDLE_BLOCK]] ], [ 0, %[[ENTRY]] ]
357357; CHECK-NEXT: [[BC_MERGE_RDX:%.*]] = phi i64 [ [[RDX_SELECT]], %[[MIDDLE_BLOCK]] ], [ 0, %[[ENTRY]] ]
358- ; CHECK-NEXT: [[BC_MERGE_RDX6:%.*]] = phi i64 [ [[TMP10]], %[[MIDDLE_BLOCK]] ], [ 100 , %[[ENTRY]] ]
358+ ; CHECK-NEXT: [[BC_MERGE_RDX6:%.*]] = phi i64 [ [[TMP10]], %[[MIDDLE_BLOCK]] ], [ 0 , %[[ENTRY]] ]
359359; CHECK-NEXT: br label %[[LOOP:.*]]
360360; CHECK: [[LOOP]]:
361361; CHECK-NEXT: [[IV1:%.*]] = phi i64 [ [[BC_RESUME_VAL]], %[[SCALAR_PH]] ], [ [[IV_NEXT:%.*]], %[[LOOP]] ]
@@ -379,7 +379,7 @@ entry:
379379loop:
380380 %iv = phi i64 [ 0 , %entry ], [ %iv.next , %loop ]
381381 %min.idx = phi i64 [ 0 , %entry ], [ %min.idx.next , %loop ]
382- %min.val = phi i64 [ 100 , %entry ], [ %min.val.next , %loop ]
382+ %min.val = phi i64 [ 0 , %entry ], [ %min.val.next , %loop ]
383383 %gep = getelementptr i64 , ptr %src , i64 %iv
384384 %l = load i64 , ptr %gep
385385 %cmp = icmp ule i64 %min.val , %l
@@ -402,7 +402,7 @@ define i64 @test_vectorize_select_smax_first_idx(ptr %src, i64 %n) {
402402; CHECK: [[LOOP]]:
403403; CHECK-NEXT: [[IV:%.*]] = phi i64 [ 0, %[[ENTRY]] ], [ [[IV_NEXT:%.*]], %[[LOOP]] ]
404404; CHECK-NEXT: [[MIN_IDX:%.*]] = phi i64 [ 0, %[[ENTRY]] ], [ [[MIN_IDX_NEXT:%.*]], %[[LOOP]] ]
405- ; CHECK-NEXT: [[MIN_VAL:%.*]] = phi i64 [ 100 , %[[ENTRY]] ], [ [[MIN_VAL_NEXT:%.*]], %[[LOOP]] ]
405+ ; CHECK-NEXT: [[MIN_VAL:%.*]] = phi i64 [ 0 , %[[ENTRY]] ], [ [[MIN_VAL_NEXT:%.*]], %[[LOOP]] ]
406406; CHECK-NEXT: [[GEP:%.*]] = getelementptr i64, ptr [[SRC]], i64 [[IV]]
407407; CHECK-NEXT: [[L:%.*]] = load i64, ptr [[GEP]], align 8
408408; CHECK-NEXT: [[CMP:%.*]] = icmp slt i64 [[MIN_VAL]], [[L]]
@@ -421,7 +421,7 @@ entry:
421421loop:
422422 %iv = phi i64 [ 0 , %entry ], [ %iv.next , %loop ]
423423 %min.idx = phi i64 [ 0 , %entry ], [ %min.idx.next , %loop ]
424- %min.val = phi i64 [ 100 , %entry ], [ %min.val.next , %loop ]
424+ %min.val = phi i64 [ 0 , %entry ], [ %min.val.next , %loop ]
425425 %gep = getelementptr i64 , ptr %src , i64 %iv
426426 %l = load i64 , ptr %gep
427427 %cmp = icmp slt i64 %min.val , %l
@@ -451,8 +451,8 @@ define i64 @test_vectorize_select_smax_last_idx(ptr %src, i64 %n) {
451451; CHECK-NEXT: [[VEC_IND:%.*]] = phi <2 x i64> [ <i64 0, i64 1>, %[[VECTOR_PH]] ], [ [[VEC_IND_NEXT:%.*]], %[[VECTOR_BODY]] ]
452452; CHECK-NEXT: [[VEC_PHI:%.*]] = phi <2 x i64> [ splat (i64 -9223372036854775808), %[[VECTOR_PH]] ], [ [[TMP7:%.*]], %[[VECTOR_BODY]] ]
453453; CHECK-NEXT: [[VEC_PHI1:%.*]] = phi <2 x i64> [ splat (i64 -9223372036854775808), %[[VECTOR_PH]] ], [ [[TMP8:%.*]], %[[VECTOR_BODY]] ]
454- ; CHECK-NEXT: [[VEC_PHI2:%.*]] = phi <2 x i64> [ splat (i64 100) , %[[VECTOR_PH]] ], [ [[TMP5:%.*]], %[[VECTOR_BODY]] ]
455- ; CHECK-NEXT: [[VEC_PHI3:%.*]] = phi <2 x i64> [ splat (i64 100) , %[[VECTOR_PH]] ], [ [[TMP6:%.*]], %[[VECTOR_BODY]] ]
454+ ; CHECK-NEXT: [[VEC_PHI2:%.*]] = phi <2 x i64> [ zeroinitializer , %[[VECTOR_PH]] ], [ [[TMP5:%.*]], %[[VECTOR_BODY]] ]
455+ ; CHECK-NEXT: [[VEC_PHI3:%.*]] = phi <2 x i64> [ zeroinitializer , %[[VECTOR_PH]] ], [ [[TMP6:%.*]], %[[VECTOR_BODY]] ]
456456; CHECK-NEXT: [[STEP_ADD:%.*]] = add <2 x i64> [[VEC_IND]], splat (i64 2)
457457; CHECK-NEXT: [[GEP:%.*]] = getelementptr i64, ptr [[SRC]], i64 [[IV]]
458458; CHECK-NEXT: [[TMP2:%.*]] = getelementptr i64, ptr [[GEP]], i32 2
@@ -486,7 +486,7 @@ define i64 @test_vectorize_select_smax_last_idx(ptr %src, i64 %n) {
486486; CHECK: [[SCALAR_PH]]:
487487; CHECK-NEXT: [[BC_RESUME_VAL:%.*]] = phi i64 [ [[N_VEC]], %[[MIDDLE_BLOCK]] ], [ 0, %[[ENTRY]] ]
488488; CHECK-NEXT: [[BC_MERGE_RDX:%.*]] = phi i64 [ [[RDX_SELECT]], %[[MIDDLE_BLOCK]] ], [ 0, %[[ENTRY]] ]
489- ; CHECK-NEXT: [[BC_MERGE_RDX6:%.*]] = phi i64 [ [[TMP10]], %[[MIDDLE_BLOCK]] ], [ 100 , %[[ENTRY]] ]
489+ ; CHECK-NEXT: [[BC_MERGE_RDX6:%.*]] = phi i64 [ [[TMP10]], %[[MIDDLE_BLOCK]] ], [ 0 , %[[ENTRY]] ]
490490; CHECK-NEXT: br label %[[LOOP:.*]]
491491; CHECK: [[LOOP]]:
492492; CHECK-NEXT: [[IV1:%.*]] = phi i64 [ [[BC_RESUME_VAL]], %[[SCALAR_PH]] ], [ [[IV_NEXT:%.*]], %[[LOOP]] ]
@@ -510,7 +510,7 @@ entry:
510510loop:
511511 %iv = phi i64 [ 0 , %entry ], [ %iv.next , %loop ]
512512 %min.idx = phi i64 [ 0 , %entry ], [ %min.idx.next , %loop ]
513- %min.val = phi i64 [ 100 , %entry ], [ %min.val.next , %loop ]
513+ %min.val = phi i64 [ 0 , %entry ], [ %min.val.next , %loop ]
514514 %gep = getelementptr i64 , ptr %src , i64 %iv
515515 %l = load i64 , ptr %gep
516516 %cmp = icmp sle i64 %min.val , %l
0 commit comments