[X86] Use APInt::getLowBitsSet helper. NFCI.
authorSimon Pilgrim <llvm-dev@redking.me.uk>
Tue, 17 Sep 2019 10:51:30 +0000 (10:51 +0000)
committerSimon Pilgrim <llvm-dev@redking.me.uk>
Tue, 17 Sep 2019 10:51:30 +0000 (10:51 +0000)
Also avoids a static analyzer warning about out of range shifts.

llvm-svn: 372103

llvm/lib/Target/X86/X86ISelLowering.cpp

index 58b1d47..b0c64a1 100644 (file)
@@ -20301,7 +20301,8 @@ X86TargetLowering::BuildSDIVPow2(SDNode *N, const APInt &Divisor,
   SDLoc DL(N);
   SDValue N0 = N->getOperand(0);
   SDValue Zero = DAG.getConstant(0, DL, VT);
-  SDValue Pow2MinusOne = DAG.getConstant((1ULL << Lg2) - 1, DL, VT);
+  APInt Lg2Mask = APInt::getLowBitsSet(VT.getSizeInBits(), Lg2);
+  SDValue Pow2MinusOne = DAG.getConstant(Lg2Mask, DL, VT);
 
   // If N0 is negative, we need to add (Pow2 - 1) to it before shifting right.
   SDValue Cmp = DAG.getSetCC(DL, MVT::i8, N0, Zero, ISD::SETLT);