Skip to content

Commit e57f686

Browse files
committed
[LV] Address review
1 parent 45df97b commit e57f686

File tree

1 file changed

+6
-20
lines changed

1 file changed

+6
-20
lines changed

llvm/test/Transforms/LoopVectorize/X86/reduction-crash.ll

+6-20
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
; NOTE: Assertions have been autogenerated by utils/update_test_checks.py UTC_ARGS: --version 5
1+
; NOTE: Assertions have been autogenerated by utils/update_test_checks.py UTC_ARGS: --check-globals none --version 5
22
; RUN: opt -S -aa-pipeline= -passes=loop-vectorize -mcpu=prescott < %s | FileCheck %s
33

44
target datalayout = "e-p:32:32:32-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:32:64-f32:32:32-f64:32:64-v64:64:64-v128:128:128-a0:0:64-f80:32:32-n8:16:32-S128"
@@ -10,7 +10,6 @@ define void @pr15344(ptr noalias %ar, ptr noalias %ar2, i32 %exit.limit, i1 %con
1010
; CHECK-NEXT: [[ENTRY:.*:]]
1111
; CHECK-NEXT: br label %[[PH:.*]]
1212
; CHECK: [[PH]]:
13-
; CHECK-NEXT: [[LD:%.*]] = load double, ptr null, align 8
1413
; CHECK-NEXT: br i1 [[COND]], label %[[LOOP_PREHEADER:.*]], label %[[EXIT:.*]]
1514
; CHECK: [[LOOP_PREHEADER]]:
1615
; CHECK-NEXT: [[MIN_ITERS_CHECK:%.*]] = icmp ult i32 [[EXIT_LIMIT]], 10
@@ -27,11 +26,10 @@ define void @pr15344(ptr noalias %ar, ptr noalias %ar2, i32 %exit.limit, i1 %con
2726
; CHECK: [[VECTOR_PH]]:
2827
; CHECK-NEXT: [[N_MOD_VF:%.*]] = urem i32 [[EXIT_LIMIT]], 4
2928
; CHECK-NEXT: [[N_VEC:%.*]] = sub i32 [[EXIT_LIMIT]], [[N_MOD_VF]]
30-
; CHECK-NEXT: [[TMP2:%.*]] = insertelement <2 x double> zeroinitializer, double [[LD]], i32 0
3129
; CHECK-NEXT: br label %[[VECTOR_BODY:.*]]
3230
; CHECK: [[VECTOR_BODY]]:
3331
; CHECK-NEXT: [[INDEX:%.*]] = phi i32 [ 0, %[[VECTOR_PH]] ], [ [[INDEX_NEXT:%.*]], %[[VECTOR_BODY]] ]
34-
; CHECK-NEXT: [[VEC_PHI:%.*]] = phi <2 x double> [ [[TMP2]], %[[VECTOR_PH]] ], [ [[TMP4:%.*]], %[[VECTOR_BODY]] ]
32+
; CHECK-NEXT: [[VEC_PHI:%.*]] = phi <2 x double> [ zeroinitializer, %[[VECTOR_PH]] ], [ [[TMP4:%.*]], %[[VECTOR_BODY]] ]
3533
; CHECK-NEXT: [[VEC_PHI2:%.*]] = phi <2 x double> [ zeroinitializer, %[[VECTOR_PH]] ], [ [[TMP5:%.*]], %[[VECTOR_BODY]] ]
3634
; CHECK-NEXT: [[TMP3:%.*]] = add i32 [[INDEX]], 0
3735
; CHECK-NEXT: [[TMP4]] = fadd fast <2 x double> [[VEC_PHI]], splat (double 1.000000e+00)
@@ -50,7 +48,7 @@ define void @pr15344(ptr noalias %ar, ptr noalias %ar2, i32 %exit.limit, i1 %con
5048
; CHECK-NEXT: [[CMP_N:%.*]] = icmp eq i32 [[EXIT_LIMIT]], [[N_VEC]]
5149
; CHECK-NEXT: br i1 [[CMP_N]], label %[[EXIT_LOOPEXIT:.*]], label %[[SCALAR_PH]]
5250
; CHECK: [[SCALAR_PH]]:
53-
; CHECK-NEXT: [[BC_MERGE_RDX:%.*]] = phi double [ [[TMP10]], %[[MIDDLE_BLOCK]] ], [ [[LD]], %[[LOOP_PREHEADER]] ], [ [[LD]], %[[VECTOR_MEMCHECK]] ]
51+
; CHECK-NEXT: [[BC_MERGE_RDX:%.*]] = phi double [ [[TMP10]], %[[MIDDLE_BLOCK]] ], [ 0.000000e+00, %[[LOOP_PREHEADER]] ], [ 0.000000e+00, %[[VECTOR_MEMCHECK]] ]
5452
; CHECK-NEXT: [[BC_RESUME_VAL:%.*]] = phi i32 [ [[N_VEC]], %[[MIDDLE_BLOCK]] ], [ 0, %[[LOOP_PREHEADER]] ], [ 0, %[[VECTOR_MEMCHECK]] ]
5553
; CHECK-NEXT: br label %[[LOOP:.*]]
5654
; CHECK: [[LOOP]]:
@@ -68,18 +66,17 @@ define void @pr15344(ptr noalias %ar, ptr noalias %ar2, i32 %exit.limit, i1 %con
6866
; CHECK-NEXT: [[FADD_LCSSA:%.*]] = phi double [ [[FADD]], %[[LOOP]] ], [ [[TMP10]], %[[MIDDLE_BLOCK]] ]
6967
; CHECK-NEXT: br label %[[EXIT]]
7068
; CHECK: [[EXIT]]:
71-
; CHECK-NEXT: [[RET:%.*]] = phi double [ [[LD]], %[[PH]] ], [ [[FADD_LCSSA]], %[[EXIT_LOOPEXIT]] ]
69+
; CHECK-NEXT: [[RET:%.*]] = phi double [ 0.000000e+00, %[[PH]] ], [ [[FADD_LCSSA]], %[[EXIT_LOOPEXIT]] ]
7270
; CHECK-NEXT: ret void
7371
;
7472
entry:
7573
br label %ph
7674

7775
ph:
78-
%ld = load double, ptr null, align 8
7976
br i1 %cond, label %loop, label %exit
8077

8178
loop:
82-
%rdx = phi double [ %fadd, %loop ], [ %ld, %ph ]
79+
%rdx = phi double [ %fadd, %loop ], [ 0.0, %ph ]
8380
%iv = phi i32 [ %iv.next, %loop ], [ 0, %ph ]
8481
%gep.ar = getelementptr inbounds [16 x double], ptr %ar, i32 0, i32 %iv
8582
%ld2 = load double, ptr %gep.ar, align 4
@@ -91,17 +88,6 @@ loop:
9188
br i1 %exit.cond, label %exit, label %loop
9289

9390
exit:
94-
%ret = phi double [ %ld, %ph ], [ %fadd, %loop ]
91+
%ret = phi double [ 0.0, %ph ], [ %fadd, %loop ]
9592
ret void
9693
}
97-
;.
98-
; CHECK: [[META0]] = !{[[META1:![0-9]+]]}
99-
; CHECK: [[META1]] = distinct !{[[META1]], [[META2:![0-9]+]]}
100-
; CHECK: [[META2]] = distinct !{[[META2]], !"LVerDomain"}
101-
; CHECK: [[META3]] = !{[[META4:![0-9]+]]}
102-
; CHECK: [[META4]] = distinct !{[[META4]], [[META2]]}
103-
; CHECK: [[LOOP5]] = distinct !{[[LOOP5]], [[META6:![0-9]+]], [[META7:![0-9]+]]}
104-
; CHECK: [[META6]] = !{!"llvm.loop.isvectorized", i32 1}
105-
; CHECK: [[META7]] = !{!"llvm.loop.unroll.runtime.disable"}
106-
; CHECK: [[LOOP8]] = distinct !{[[LOOP8]], [[META6]]}
107-
;.

0 commit comments

Comments
 (0)