diff options
author | Krzysztof Parzyszek <kparzysz@codeaurora.org> | 2017-06-13 13:51:49 +0000 |
---|---|---|
committer | Krzysztof Parzyszek <kparzysz@codeaurora.org> | 2017-06-13 13:51:49 +0000 |
commit | 9bd4d91037bf0ce824a1b759ddcdaed84ec341a8 (patch) | |
tree | 62a8ad8104fb152268e5635fa5af056703cca1ff /llvm/lib | |
parent | 852fbd2feac45628ad7f7ac2212ee4d78bc18173 (diff) | |
download | bcm5719-llvm-9bd4d91037bf0ce824a1b759ddcdaed84ec341a8.tar.gz bcm5719-llvm-9bd4d91037bf0ce824a1b759ddcdaed84ec341a8.zip |
[Hexagon] Stop pmpy recognition when shift conversion fails
The conversion of shifts from right shifts to left shifts may fail.
In such case, the pmpy recognition cannot proceed.
llvm-svn: 305289
Diffstat (limited to 'llvm/lib')
-rw-r--r-- | llvm/lib/Target/Hexagon/HexagonLoopIdiomRecognition.cpp | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/llvm/lib/Target/Hexagon/HexagonLoopIdiomRecognition.cpp b/llvm/lib/Target/Hexagon/HexagonLoopIdiomRecognition.cpp index b748b58bc0a..f82ad6cb3da 100644 --- a/llvm/lib/Target/Hexagon/HexagonLoopIdiomRecognition.cpp +++ b/llvm/lib/Target/Hexagon/HexagonLoopIdiomRecognition.cpp @@ -1744,7 +1744,8 @@ bool PolynomialMultiplyRecognize::recognize() { // wide as the target's pmpy instruction. if (!promoteTypes(LoopB, ExitB)) return false; - convertShiftsToLeft(LoopB, ExitB, IterCount); + if (!convertShiftsToLeft(LoopB, ExitB, IterCount)) + return false; cleanupLoopBody(LoopB); } |