diff options
Diffstat (limited to 'llvm/lib/Target/ARM/ARMBaseInstrInfo.cpp')
| -rw-r--r-- | llvm/lib/Target/ARM/ARMBaseInstrInfo.cpp | 5 |
1 files changed, 2 insertions, 3 deletions
diff --git a/llvm/lib/Target/ARM/ARMBaseInstrInfo.cpp b/llvm/lib/Target/ARM/ARMBaseInstrInfo.cpp index 9981b0586d6..45724df9619 100644 --- a/llvm/lib/Target/ARM/ARMBaseInstrInfo.cpp +++ b/llvm/lib/Target/ARM/ARMBaseInstrInfo.cpp @@ -2736,7 +2736,7 @@ bool ARMBaseInstrInfo::optimizeCompareInstr( } I = CmpInstr; E = MI; - } else { + } else if (E != B) { // Allow the loop below to search E (which was initially MI). Since MI and // SubAdd have different tests, even if that instruction could not be MI, it // could still potentially be SubAdd. @@ -2763,8 +2763,7 @@ bool ARMBaseInstrInfo::optimizeCompareInstr( return false; if (I == B) - // The 'and' is below the comparison instruction. - return false; + break; } // Return false if no candidates exist. |

