diff --git a/llvm/lib/Target/AArch64/AArch64ISelDAGToDAG.cpp b/llvm/lib/Target/AArch64/AArch64ISelDAGToDAG.cpp --- a/llvm/lib/Target/AArch64/AArch64ISelDAGToDAG.cpp +++ b/llvm/lib/Target/AArch64/AArch64ISelDAGToDAG.cpp @@ -207,7 +207,7 @@ if (CN->isZero()) return true; if (auto CN = dyn_cast(Opnd0)) - if (CN->isZero()) + if (CN->isZero() && !CN->isNegative()) return true; break; }