[PATCH] D47216: [LV] Fix to pr37515, FP primary induction crashes LV
Hideki Saito via Phabricator via llvm-commits
llvm-commits at lists.llvm.org
Tue May 22 13:34:43 PDT 2018
hsaito updated this revision to Diff 148090.
hsaito added a comment.
LIT test added. ORE messaging doesn't seem to be working here (I see just "loop not vectorized" without the rest of the string), but that should be fixed separately.
https://reviews.llvm.org/D47216
Files:
lib/Transforms/Vectorize/LoopVectorizationLegality.cpp
test/Transforms/LoopVectorize/pr37515.ll
Index: lib/Transforms/Vectorize/LoopVectorizationLegality.cpp
===================================================================
--- lib/Transforms/Vectorize/LoopVectorizationLegality.cpp
+++ lib/Transforms/Vectorize/LoopVectorizationLegality.cpp
@@ -726,7 +726,7 @@
if (!PrimaryInduction) {
LLVM_DEBUG(dbgs() << "LV: Did not find one integer induction var.\n");
- if (Inductions.empty()) {
+ if (Inductions.empty() || !WidestIndTy) {
ORE->emit(createMissedAnalysis("NoInductionVariable")
<< "loop induction variable could not be identified");
return false;
Index: test/Transforms/LoopVectorize/pr37515.ll
===================================================================
--- test/Transforms/LoopVectorize/pr37515.ll
+++ test/Transforms/LoopVectorize/pr37515.ll
@@ -0,0 +1,20 @@
+; RUN: opt -passes='loop-vectorize' -S -pass-remarks-missed=loop-vectorize < %s 2>&1 | FileCheck %s
+;
+; FP primary induction is not supported in LV. Make sure Legal bails out.
+;
+; CHECK: loop not vectorized
+
+define void @PR37515() {
+entry:
+ br label %loop
+
+loop:
+ %p = phi float [ 19.0, %entry ], [ %a, %loop ]
+ %a = fadd fast float %p, -1.0
+ %m = fmul fast float %a, %a
+ %c = fcmp fast ugt float %a, 2.0
+ br i1 %c, label %loop, label %exit
+
+exit:
+ unreachable
+}
-------------- next part --------------
A non-text attachment was scrubbed...
Name: D47216.148090.patch
Type: text/x-patch
Size: 1319 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20180522/4d8e4d01/attachment.bin>
More information about the llvm-commits
mailing list