[AArch64] Fix miscompile of sdiv-by-power-of-2.
[oota-llvm.git] / lib / Target / AArch64 / AArch64ISelLowering.cpp
index 5cfd6645c656fd3cfc180502409f197bd7d8dd65..4d51c4f21d2675c0193b711158b8cd58871495f1 100644 (file)
@@ -6822,7 +6822,7 @@ AArch64TargetLowering::BuildSDIVPow2(SDNode *N, const APInt &Divisor,
   SDValue N0 = N->getOperand(0);
   unsigned Lg2 = Divisor.countTrailingZeros();
   SDValue Zero = DAG.getConstant(0, VT);
-  SDValue Pow2MinusOne = DAG.getConstant((1 << Lg2) - 1, VT);
+  SDValue Pow2MinusOne = DAG.getConstant((1ULL << Lg2) - 1, VT);
 
   // Add (N0 < 0) ? Pow2 - 1 : 0;
   SDValue CCVal;