diff options
Diffstat (limited to 'llvm/lib/Transforms')
-rw-r--r-- | llvm/lib/Transforms/Vectorize/LoopVectorizationLegality.cpp | 4 | ||||
-rw-r--r-- | llvm/lib/Transforms/Vectorize/LoopVectorize.cpp | 1 |
2 files changed, 5 insertions, 0 deletions
diff --git a/llvm/lib/Transforms/Vectorize/LoopVectorizationLegality.cpp b/llvm/lib/Transforms/Vectorize/LoopVectorizationLegality.cpp index b77108d598f..9c81cdc9083 100644 --- a/llvm/lib/Transforms/Vectorize/LoopVectorizationLegality.cpp +++ b/llvm/lib/Transforms/Vectorize/LoopVectorizationLegality.cpp @@ -789,6 +789,10 @@ bool LoopVectorizationLegality::canVectorizeInstrs() { ORE->emit(createMissedAnalysis("NoInductionVariable") << "loop induction variable could not be identified"); return false; + } else if (!WidestIndTy) { + ORE->emit(createMissedAnalysis("NoIntegerInductionVariable") + << "integer loop induction variable could not be identified"); + return false; } } diff --git a/llvm/lib/Transforms/Vectorize/LoopVectorize.cpp b/llvm/lib/Transforms/Vectorize/LoopVectorize.cpp index d5708d0c8f0..e1795c5e056 100644 --- a/llvm/lib/Transforms/Vectorize/LoopVectorize.cpp +++ b/llvm/lib/Transforms/Vectorize/LoopVectorize.cpp @@ -2303,6 +2303,7 @@ Value *InnerLoopVectorizer::getOrCreateTripCount(Loop *L) { "Invalid loop count"); Type *IdxTy = Legal->getWidestInductionType(); + assert(IdxTy && "No type for induction"); // The exit count might have the type of i64 while the phi is i32. This can // happen if we have an induction variable that is sign extended before the |