Lines Matching refs:DemandedMask

70   APInt DemandedMask(APInt::getAllOnes(Known.getBitWidth()));  in SimplifyDemandedInstructionBits()  local
71 Value *V = SimplifyDemandedUseBits(&Inst, DemandedMask, Known, in SimplifyDemandedInstructionBits()
90 const APInt &DemandedMask, in SimplifyDemandedBits() argument
93 Value *NewVal = SimplifyDemandedUseBits(U.get(), DemandedMask, Known, in SimplifyDemandedBits()
126 Value *InstCombinerImpl::SimplifyDemandedUseBits(Value *V, APInt DemandedMask, in SimplifyDemandedUseBits() argument
132 uint32_t BitWidth = DemandedMask.getBitWidth(); in SimplifyDemandedUseBits()
145 if (DemandedMask.isZero()) // Not demanding any bits from V. in SimplifyDemandedUseBits()
161 return SimplifyMultipleUseDemandedBits(I, DemandedMask, Known, Depth, CxtI); in SimplifyDemandedUseBits()
169 DemandedMask.setAllBits(); in SimplifyDemandedUseBits()
188 unsigned NLZ = DemandedMask.countl_zero(); in SimplifyDemandedUseBits()
208 if (SimplifyDemandedBits(I, 1, DemandedMask, RHSKnown, Depth + 1) || in SimplifyDemandedUseBits()
209 SimplifyDemandedBits(I, 0, DemandedMask & ~RHSKnown.Zero, LHSKnown, in SimplifyDemandedUseBits()
220 if (DemandedMask.isSubsetOf(Known.Zero | Known.One)) in SimplifyDemandedUseBits()
225 if (DemandedMask.isSubsetOf(LHSKnown.Zero | RHSKnown.One)) in SimplifyDemandedUseBits()
227 if (DemandedMask.isSubsetOf(RHSKnown.Zero | LHSKnown.One)) in SimplifyDemandedUseBits()
231 if (ShrinkDemandedConstant(I, 1, DemandedMask & ~LHSKnown.Zero)) in SimplifyDemandedUseBits()
238 if (SimplifyDemandedBits(I, 1, DemandedMask, RHSKnown, Depth + 1) || in SimplifyDemandedUseBits()
239 SimplifyDemandedBits(I, 0, DemandedMask & ~RHSKnown.One, LHSKnown, in SimplifyDemandedUseBits()
253 if (DemandedMask.isSubsetOf(Known.Zero | Known.One)) in SimplifyDemandedUseBits()
258 if (DemandedMask.isSubsetOf(LHSKnown.One | RHSKnown.Zero)) in SimplifyDemandedUseBits()
260 if (DemandedMask.isSubsetOf(RHSKnown.One | LHSKnown.Zero)) in SimplifyDemandedUseBits()
264 if (ShrinkDemandedConstant(I, 1, DemandedMask)) in SimplifyDemandedUseBits()
280 if (SimplifyDemandedBits(I, 1, DemandedMask, RHSKnown, Depth + 1) || in SimplifyDemandedUseBits()
281 SimplifyDemandedBits(I, 0, DemandedMask, LHSKnown, Depth + 1)) in SimplifyDemandedUseBits()
284 if (DemandedMask == 1 && in SimplifyDemandedUseBits()
302 if (DemandedMask.isSubsetOf(Known.Zero | Known.One)) in SimplifyDemandedUseBits()
307 if (DemandedMask.isSubsetOf(RHSKnown.Zero)) in SimplifyDemandedUseBits()
309 if (DemandedMask.isSubsetOf(LHSKnown.Zero)) in SimplifyDemandedUseBits()
315 if (DemandedMask.isSubsetOf(RHSKnown.Zero | LHSKnown.Zero)) { in SimplifyDemandedUseBits()
318 if (DemandedMask.isAllOnes()) in SimplifyDemandedUseBits()
328 if (DemandedMask.isSubsetOf(RHSKnown.Zero|RHSKnown.One) && in SimplifyDemandedUseBits()
331 ~RHSKnown.One & DemandedMask); in SimplifyDemandedUseBits()
341 if ((*C | ~DemandedMask).isAllOnes()) { in SimplifyDemandedUseBits()
347 if (ShrinkDemandedConstant(I, 1, DemandedMask)) in SimplifyDemandedUseBits()
360 (LHSKnown.One & RHSKnown.One & DemandedMask) != 0) { in SimplifyDemandedUseBits()
361 APInt NewMask = ~(LHSKnown.One & RHSKnown.One & DemandedMask); in SimplifyDemandedUseBits()
375 if (SimplifyDemandedBits(I, 2, DemandedMask, RHSKnown, Depth + 1) || in SimplifyDemandedUseBits()
376 SimplifyDemandedBits(I, 1, DemandedMask, LHSKnown, Depth + 1)) in SimplifyDemandedUseBits()
387 const APInt &DemandedMask) { in SimplifyDemandedUseBits() argument
401 return ShrinkDemandedConstant(I, OpNo, DemandedMask); in SimplifyDemandedUseBits()
408 if ((*CmpC & DemandedMask) == (*SelC & DemandedMask)) { in SimplifyDemandedUseBits()
412 return ShrinkDemandedConstant(I, OpNo, DemandedMask); in SimplifyDemandedUseBits()
414 if (CanonicalizeSelectConstant(I, 1, DemandedMask) || in SimplifyDemandedUseBits()
415 CanonicalizeSelectConstant(I, 2, DemandedMask)) in SimplifyDemandedUseBits()
431 C->ule(DemandedMask.countl_zero())) { in SimplifyDemandedUseBits()
444 APInt InputDemandedMask = DemandedMask.zextOrTrunc(SrcBitWidth); in SimplifyDemandedUseBits()
465 APInt InputDemandedBits = DemandedMask.trunc(SrcBitWidth); in SimplifyDemandedUseBits()
469 if (DemandedMask.getActiveBits() > SrcBitWidth) in SimplifyDemandedUseBits()
479 DemandedMask.getActiveBits() <= SrcBitWidth) { in SimplifyDemandedUseBits()
493 if ((DemandedMask & 1) == 0) { in SimplifyDemandedUseBits()
532 unsigned NLZ = DemandedMask.countl_zero(); in SimplifyDemandedUseBits()
541 unsigned NTZ = (~DemandedMask & RHSKnown.Zero).countr_one(); in SimplifyDemandedUseBits()
559 C->isOneBitSet(DemandedMask.getActiveBits() - 1)) { in SimplifyDemandedUseBits()
574 unsigned NLZ = DemandedMask.countl_zero(); in SimplifyDemandedUseBits()
583 unsigned NTZ = (~DemandedMask & RHSKnown.Zero).countr_one(); in SimplifyDemandedUseBits()
609 if (DemandedMask.isPowerOf2()) { in SimplifyDemandedUseBits()
613 unsigned CTZ = DemandedMask.countr_zero(); in SimplifyDemandedUseBits()
624 if (I->getOperand(0) == I->getOperand(1) && DemandedMask.ult(4)) { in SimplifyDemandedUseBits()
640 DemandedMask, Known)) in SimplifyDemandedUseBits()
653 if (DemandedMask.countr_zero() >= ShiftAmt && in SimplifyDemandedUseBits()
665 APInt DemandedMaskIn(DemandedMask.lshr(ShiftAmt)); in SimplifyDemandedUseBits()
686 if (unsigned CTLZ = DemandedMask.countl_zero()) { in SimplifyDemandedUseBits()
705 if (DemandedMask.countl_zero() >= ShiftAmt) { in SimplifyDemandedUseBits()
708 unsigned NumHiDemandedBits = BitWidth - DemandedMask.countr_zero(); in SimplifyDemandedUseBits()
733 APInt DemandedMaskIn(DemandedMask.shl(ShiftAmt)); in SimplifyDemandedUseBits()
754 unsigned NumHiDemandedBits = BitWidth - DemandedMask.countr_zero(); in SimplifyDemandedUseBits()
762 if (DemandedMask.isOne()) { in SimplifyDemandedUseBits()
774 APInt DemandedMaskIn(DemandedMask.shl(ShiftAmt)); in SimplifyDemandedUseBits()
777 if (DemandedMask.countl_zero() <= ShiftAmt) in SimplifyDemandedUseBits()
797 !DemandedMask.intersects(HighBits)) { in SimplifyDemandedUseBits()
845 if (DemandedMask.ult(RA)) // srem won't affect demanded bits in SimplifyDemandedUseBits()
889 if (DemandedMask == 1) in SimplifyDemandedUseBits()
898 if (DemandedMask == 1 && VTy->getScalarSizeInBits() % 2 == 0 && in SimplifyDemandedUseBits()
909 unsigned NLZ = DemandedMask.countl_zero(); in SimplifyDemandedUseBits()
910 unsigned NTZ = DemandedMask.countr_zero(); in SimplifyDemandedUseBits()
937 if (SimplifyDemandedBits(I, 0, DemandedMask, LHSKnown, Depth + 1) || in SimplifyDemandedUseBits()
939 I, 1, (DemandedMask & ~LHSKnown.Zero).zextOrTrunc(MaskWidth), in SimplifyDemandedUseBits()
955 if (DemandedMask.isSubsetOf(Known.Zero) && in SimplifyDemandedUseBits()
964 if (DemandedMask.isSubsetOf(RHSKnown.One | LHSKnown.Zero)) in SimplifyDemandedUseBits()
969 I, 1, (DemandedMask & ~LHSKnown.Zero).zextOrTrunc(MaskWidth))) in SimplifyDemandedUseBits()
987 APInt DemandedMaskLHS(DemandedMask.lshr(ShiftAmt)); in SimplifyDemandedUseBits()
988 APInt DemandedMaskRHS(DemandedMask.shl(BitWidth - ShiftAmt)); in SimplifyDemandedUseBits()
1024 unsigned CTZ = DemandedMask.countr_zero(); in SimplifyDemandedUseBits()
1036 unsigned CTZ = DemandedMask.countr_zero(); in SimplifyDemandedUseBits()
1045 *II, DemandedMask, Known, KnownBitsComputed); in SimplifyDemandedUseBits()
1068 if (!V->getType()->isPointerTy() && DemandedMask.isSubsetOf(Known.Zero | Known.One)) in SimplifyDemandedUseBits()
1089 Instruction *I, const APInt &DemandedMask, KnownBits &Known, unsigned Depth, in SimplifyMultipleUseDemandedBits() argument
1091 unsigned BitWidth = DemandedMask.getBitWidth(); in SimplifyMultipleUseDemandedBits()
1111 if (DemandedMask.isSubsetOf(Known.Zero | Known.One)) in SimplifyMultipleUseDemandedBits()
1116 if (DemandedMask.isSubsetOf(LHSKnown.Zero | RHSKnown.One)) in SimplifyMultipleUseDemandedBits()
1118 if (DemandedMask.isSubsetOf(RHSKnown.Zero | LHSKnown.One)) in SimplifyMultipleUseDemandedBits()
1132 if (DemandedMask.isSubsetOf(Known.Zero | Known.One)) in SimplifyMultipleUseDemandedBits()
1139 if (DemandedMask.isSubsetOf(LHSKnown.One | RHSKnown.Zero)) in SimplifyMultipleUseDemandedBits()
1141 if (DemandedMask.isSubsetOf(RHSKnown.One | LHSKnown.Zero)) in SimplifyMultipleUseDemandedBits()
1155 if (DemandedMask.isSubsetOf(Known.Zero | Known.One)) in SimplifyMultipleUseDemandedBits()
1161 if (DemandedMask.isSubsetOf(RHSKnown.Zero)) in SimplifyMultipleUseDemandedBits()
1163 if (DemandedMask.isSubsetOf(LHSKnown.Zero)) in SimplifyMultipleUseDemandedBits()
1169 unsigned NLZ = DemandedMask.countl_zero(); in SimplifyMultipleUseDemandedBits()
1188 unsigned NLZ = DemandedMask.countl_zero(); in SimplifyMultipleUseDemandedBits()
1209 if (DemandedMask.isSubsetOf(Known.Zero | Known.One)) in SimplifyMultipleUseDemandedBits()
1219 unsigned BitWidth = DemandedMask.getBitWidth(); in SimplifyMultipleUseDemandedBits()
1223 DemandedMask.isSubsetOf(APInt::getLowBitsSet( in SimplifyMultipleUseDemandedBits()
1236 if (DemandedMask.isSubsetOf(Known.Zero|Known.One)) in SimplifyMultipleUseDemandedBits()
1264 const APInt &ShlOp1, const APInt &DemandedMask, KnownBits &Known) { in simplifyShrShlDemandedBits() argument
1279 Known.Zero &= DemandedMask; in simplifyShrShlDemandedBits()
1296 if ((BitMask1 & DemandedMask) == (BitMask2 & DemandedMask)) { in simplifyShrShlDemandedBits()