diff --git a/llvm/test/Transforms/LoopVectorize/fp-reduction-crash.ll b/llvm/test/Transforms/LoopVectorize/fp-reduction-crash.ll deleted file mode 100644 index 20d9655d3d9a..000000000000 --- a/llvm/test/Transforms/LoopVectorize/fp-reduction-crash.ll +++ /dev/null @@ -1,21 +0,0 @@ -; REQUIRES: asserts -; RUN: opt < %s -loop-vectorize -S | FileCheck %s - -; CHECK-LABEL: quux -define void @quux() { -bb: - br label %bb4 - -bb1: ; preds = %bb4 - %tmp = phi double [ %tmp6, %bb4 ] - br i1 undef, label %bb4, label %bb2 - -bb2: ; preds = %bb1 - %tmp3 = phi double [ %tmp, %bb1 ] - ret void - -bb4: ; preds = %bb1, %bb - %tmp5 = phi double [ 1.300000e+01, %bb ], [ %tmp, %bb1 ] - %tmp6 = fadd double %tmp5, 1.000000e+00 - br label %bb1 -} diff --git a/llvm/test/Transforms/LoopVectorize/reduction-order.ll b/llvm/test/Transforms/LoopVectorize/reduction-order.ll index f32df90c371d..07201c0dfd78 100644 --- a/llvm/test/Transforms/LoopVectorize/reduction-order.ll +++ b/llvm/test/Transforms/LoopVectorize/reduction-order.ll @@ -37,5 +37,27 @@ t31: ret i64 undef } +; Make sure we do not fail when checking for ordered reduction. This test just +; exercises the path and bails out without performing vectorization. +; CHECK-LABEL: quux +; CHECK-NOT: fadd <4 x +define void @quux() { +bb: + br label %header + +latch: ; preds = %header + %tmp = phi double [ %tmp6, %header ] + br i1 undef, label %header, label %bb2 + +bb2: ; preds = %latch + %tmp3 = phi double [ %tmp, %latch ] + ret void + +header: ; preds = %latch, %bb + %tmp5 = phi double [ 1.300000e+01, %bb ], [ %tmp, %latch ] + %tmp6 = fadd double %tmp5, 1.000000e+00 + br label %latch +} + !1 = !{!"function_entry_count", i64 801} !2 = !{!"branch_weights", i32 746, i32 1}