Index: src/compiler/arm64/instruction-selector-arm64.cc |
diff --git a/src/compiler/arm64/instruction-selector-arm64.cc b/src/compiler/arm64/instruction-selector-arm64.cc |
index 06d8f1f7a214e129ab9fe17836e1c113b9525327..1a071cd2d872e1fdec67ad84d3fb50befc19e05f 100644 |
--- a/src/compiler/arm64/instruction-selector-arm64.cc |
+++ b/src/compiler/arm64/instruction-selector-arm64.cc |
@@ -1250,25 +1250,12 @@ void InstructionSelector::VisitBranch(Node* branch, BasicBlock* tbranch, |
FlagsContinuation cont(kNotEqual, tbranch, fbranch); |
// Try to combine with comparisons against 0 by simply inverting the branch. |
- while (CanCover(user, value)) { |
- if (value->opcode() == IrOpcode::kWord32Equal) { |
- Int32BinopMatcher m(value); |
- if (m.right().Is(0)) { |
- user = value; |
- value = m.left().node(); |
- cont.Negate(); |
- } else { |
- break; |
- } |
- } else if (value->opcode() == IrOpcode::kWord64Equal) { |
- Int64BinopMatcher m(value); |
- if (m.right().Is(0)) { |
- user = value; |
- value = m.left().node(); |
- cont.Negate(); |
- } else { |
- break; |
- } |
+ while (CanCover(user, value) && value->opcode() == IrOpcode::kWord32Equal) { |
+ Int32BinopMatcher m(value); |
+ if (m.right().Is(0)) { |
+ user = value; |
+ value = m.left().node(); |
+ cont.Negate(); |
} else { |
break; |
} |