@@ -562,38 +562,19 @@ define void @deref_assumption_loop_access_start_variable(i8 %v, ptr noundef %P,
562
562
; CHECK-NEXT: [[TMP1:%.*]] = add i64 [[IV_START]], [[N_VEC]]
563
563
; CHECK-NEXT: br label %[[VECTOR_BODY:.*]]
564
564
; CHECK: [[VECTOR_BODY]]:
565
- ; CHECK-NEXT: [[INDEX:%.*]] = phi i64 [ 0, %[[VECTOR_PH]] ], [ [[INDEX_NEXT:%.*]], %[[PRED_LOAD_CONTINUE2:.* ]] ]
565
+ ; CHECK-NEXT: [[INDEX:%.*]] = phi i64 [ 0, %[[VECTOR_PH]] ], [ [[INDEX_NEXT:%.*]], %[[VECTOR_BODY ]] ]
566
566
; CHECK-NEXT: [[OFFSET_IDX:%.*]] = add i64 [[IV_START]], [[INDEX]]
567
- ; CHECK-NEXT: [[TMP6:%.*]] = getelementptr inbounds i32, ptr [[B]], i64 [[OFFSET_IDX]]
568
- ; CHECK-NEXT: [[WIDE_LOAD:%.*]] = load <2 x i32>, ptr [[TMP6]], align 1
569
- ; CHECK-NEXT: [[TMP8:%.*]] = icmp sge <2 x i32> [[WIDE_LOAD]], zeroinitializer
570
- ; CHECK-NEXT: [[TMP4:%.*]] = xor <2 x i1> [[TMP8]], splat (i1 true)
571
- ; CHECK-NEXT: [[TMP5:%.*]] = extractelement <2 x i1> [[TMP4]], i32 0
572
- ; CHECK-NEXT: br i1 [[TMP5]], label %[[PRED_LOAD_IF:.*]], label %[[PRED_LOAD_CONTINUE:.*]]
573
- ; CHECK: [[PRED_LOAD_IF]]:
574
- ; CHECK-NEXT: [[TMP16:%.*]] = add i64 [[OFFSET_IDX]], 0
575
- ; CHECK-NEXT: [[TMP7:%.*]] = getelementptr inbounds i32, ptr [[A]], i64 [[TMP16]]
576
- ; CHECK-NEXT: [[TMP19:%.*]] = load i32, ptr [[TMP7]], align 1
577
- ; CHECK-NEXT: [[TMP9:%.*]] = insertelement <2 x i32> poison, i32 [[TMP19]], i32 0
578
- ; CHECK-NEXT: br label %[[PRED_LOAD_CONTINUE]]
579
- ; CHECK: [[PRED_LOAD_CONTINUE]]:
580
- ; CHECK-NEXT: [[TMP10:%.*]] = phi <2 x i32> [ poison, %[[VECTOR_BODY]] ], [ [[TMP9]], %[[PRED_LOAD_IF]] ]
581
- ; CHECK-NEXT: [[TMP11:%.*]] = extractelement <2 x i1> [[TMP4]], i32 1
582
- ; CHECK-NEXT: br i1 [[TMP11]], label %[[PRED_LOAD_IF1:.*]], label %[[PRED_LOAD_CONTINUE2]]
583
- ; CHECK: [[PRED_LOAD_IF1]]:
584
- ; CHECK-NEXT: [[TMP12:%.*]] = add i64 [[OFFSET_IDX]], 1
585
- ; CHECK-NEXT: [[TMP13:%.*]] = getelementptr inbounds i32, ptr [[A]], i64 [[TMP12]]
586
- ; CHECK-NEXT: [[TMP14:%.*]] = load i32, ptr [[TMP13]], align 1
587
- ; CHECK-NEXT: [[TMP15:%.*]] = insertelement <2 x i32> [[TMP10]], i32 [[TMP14]], i32 1
588
- ; CHECK-NEXT: br label %[[PRED_LOAD_CONTINUE2]]
589
- ; CHECK: [[PRED_LOAD_CONTINUE2]]:
590
- ; CHECK-NEXT: [[WIDE_LOAD1:%.*]] = phi <2 x i32> [ [[TMP10]], %[[PRED_LOAD_CONTINUE]] ], [ [[TMP15]], %[[PRED_LOAD_IF1]] ]
591
- ; CHECK-NEXT: [[PREDPHI:%.*]] = select <2 x i1> [[TMP8]], <2 x i32> [[WIDE_LOAD]], <2 x i32> [[WIDE_LOAD1]]
592
- ; CHECK-NEXT: [[TMP17:%.*]] = getelementptr inbounds i32, ptr [[C]], i64 [[OFFSET_IDX]]
593
- ; CHECK-NEXT: store <2 x i32> [[PREDPHI]], ptr [[TMP17]], align 1
567
+ ; CHECK-NEXT: [[TMP2:%.*]] = getelementptr i32, ptr [[A]], i64 [[OFFSET_IDX]]
568
+ ; CHECK-NEXT: [[TMP7:%.*]] = getelementptr inbounds i32, ptr [[B]], i64 [[OFFSET_IDX]]
569
+ ; CHECK-NEXT: [[WIDE_LOAD:%.*]] = load <2 x i32>, ptr [[TMP7]], align 1
570
+ ; CHECK-NEXT: [[TMP4:%.*]] = icmp sge <2 x i32> [[WIDE_LOAD]], zeroinitializer
571
+ ; CHECK-NEXT: [[WIDE_LOAD1:%.*]] = load <2 x i32>, ptr [[TMP2]], align 1
572
+ ; CHECK-NEXT: [[PREDPHI:%.*]] = select <2 x i1> [[TMP4]], <2 x i32> [[WIDE_LOAD]], <2 x i32> [[WIDE_LOAD1]]
573
+ ; CHECK-NEXT: [[TMP5:%.*]] = getelementptr inbounds i32, ptr [[C]], i64 [[OFFSET_IDX]]
574
+ ; CHECK-NEXT: store <2 x i32> [[PREDPHI]], ptr [[TMP5]], align 1
594
575
; CHECK-NEXT: [[INDEX_NEXT]] = add nuw i64 [[INDEX]], 2
595
- ; CHECK-NEXT: [[TMP18 :%.*]] = icmp eq i64 [[INDEX_NEXT]], [[N_VEC]]
596
- ; CHECK-NEXT: br i1 [[TMP18 ]], label %[[MIDDLE_BLOCK:.*]], label %[[VECTOR_BODY]], !llvm.loop [[LOOP14:![0-9]+]]
576
+ ; CHECK-NEXT: [[TMP6 :%.*]] = icmp eq i64 [[INDEX_NEXT]], [[N_VEC]]
577
+ ; CHECK-NEXT: br i1 [[TMP6 ]], label %[[MIDDLE_BLOCK:.*]], label %[[VECTOR_BODY]], !llvm.loop [[LOOP14:![0-9]+]]
597
578
; CHECK: [[MIDDLE_BLOCK]]:
598
579
; CHECK-NEXT: [[CMP_N:%.*]] = icmp eq i64 [[TMP3]], [[N_VEC]]
599
580
; CHECK-NEXT: br i1 [[CMP_N]], label %[[EXIT:.*]], label %[[SCALAR_PH]]
@@ -620,7 +601,6 @@ define void @deref_assumption_loop_access_start_variable(i8 %v, ptr noundef %P,
620
601
; CHECK: [[EXIT]]:
621
602
; CHECK-NEXT: ret void
622
603
;
623
-
624
604
entry:
625
605
%a = getelementptr i8 , ptr %P , i64 16
626
606
%cmp = icmp slt i64 %iv.start , %N
0 commit comments