[X86] combineSetCCMOVMSK - use APInt::getLowBitsSet to create bitmask. NFC.
authorSimon Pilgrim <llvm-dev@redking.me.uk>
Tue, 4 Jan 2022 16:56:33 +0000 (16:56 +0000)
committerSimon Pilgrim <llvm-dev@redking.me.uk>
Tue, 4 Jan 2022 16:56:44 +0000 (16:56 +0000)
SelectionDAG::getConstant creates an APInt internally anyway, and getLowBitsSet helps assert for legal bitwidths. Plus it silences static analyzer out-of-bounds shift warnings.

llvm/lib/Target/X86/X86ISelLowering.cpp

index 7d14ed7..ab61a0a 100644 (file)
@@ -44117,7 +44117,7 @@ static SDValue combineSetCCMOVMSK(SDValue EFLAGS, X86::CondCode &CC,
         BCNumEltBits > NumEltBits &&
         DAG.ComputeNumSignBits(BC) > (BCNumEltBits - NumEltBits)) {
       SDLoc DL(EFLAGS);
-      unsigned CmpMask = IsAnyOf ? 0 : ((1 << BCNumElts) - 1);
+      APInt CmpMask = APInt::getLowBitsSet(32, IsAnyOf ? 0 : BCNumElts);
       return DAG.getNode(X86ISD::CMP, DL, MVT::i32,
                          DAG.getNode(X86ISD::MOVMSK, DL, MVT::i32, BC),
                          DAG.getConstant(CmpMask, DL, MVT::i32));