Lines Matching refs:DemandedMask
58 APInt DemandedMask(APInt::getAllOnes(BitWidth)); in SimplifyDemandedInstructionBits() local
60 Value *V = SimplifyDemandedUseBits(&Inst, DemandedMask, Known, in SimplifyDemandedInstructionBits()
72 const APInt &DemandedMask, in SimplifyDemandedBits() argument
75 Value *NewVal = SimplifyDemandedUseBits(U.get(), DemandedMask, Known, in SimplifyDemandedBits()
108 Value *InstCombinerImpl::SimplifyDemandedUseBits(Value *V, APInt DemandedMask, in SimplifyDemandedUseBits() argument
114 uint32_t BitWidth = DemandedMask.getBitWidth(); in SimplifyDemandedUseBits()
127 if (DemandedMask.isZero()) // Not demanding any bits from V. in SimplifyDemandedUseBits()
146 return SimplifyMultipleUseDemandedBits(I, DemandedMask, Known, Depth, CxtI); in SimplifyDemandedUseBits()
155 DemandedMask.setAllBits(); in SimplifyDemandedUseBits()
160 unsigned NLZ = DemandedMask.countLeadingZeros(); in SimplifyDemandedUseBits()
186 if (SimplifyDemandedBits(I, 1, DemandedMask, RHSKnown, Depth + 1) || in SimplifyDemandedUseBits()
187 SimplifyDemandedBits(I, 0, DemandedMask & ~RHSKnown.Zero, LHSKnown, in SimplifyDemandedUseBits()
197 if (DemandedMask.isSubsetOf(Known.Zero | Known.One)) in SimplifyDemandedUseBits()
202 if (DemandedMask.isSubsetOf(LHSKnown.Zero | RHSKnown.One)) in SimplifyDemandedUseBits()
204 if (DemandedMask.isSubsetOf(RHSKnown.Zero | LHSKnown.One)) in SimplifyDemandedUseBits()
208 if (ShrinkDemandedConstant(I, 1, DemandedMask & ~LHSKnown.Zero)) in SimplifyDemandedUseBits()
215 if (SimplifyDemandedBits(I, 1, DemandedMask, RHSKnown, Depth + 1) || in SimplifyDemandedUseBits()
216 SimplifyDemandedBits(I, 0, DemandedMask & ~RHSKnown.One, LHSKnown, in SimplifyDemandedUseBits()
226 if (DemandedMask.isSubsetOf(Known.Zero | Known.One)) in SimplifyDemandedUseBits()
231 if (DemandedMask.isSubsetOf(LHSKnown.One | RHSKnown.Zero)) in SimplifyDemandedUseBits()
233 if (DemandedMask.isSubsetOf(RHSKnown.One | LHSKnown.Zero)) in SimplifyDemandedUseBits()
237 if (ShrinkDemandedConstant(I, 1, DemandedMask)) in SimplifyDemandedUseBits()
243 if (SimplifyDemandedBits(I, 1, DemandedMask, RHSKnown, Depth + 1) || in SimplifyDemandedUseBits()
244 SimplifyDemandedBits(I, 0, DemandedMask, LHSKnown, Depth + 1)) in SimplifyDemandedUseBits()
247 if (DemandedMask == 1 && in SimplifyDemandedUseBits()
264 if (DemandedMask.isSubsetOf(Known.Zero | Known.One)) in SimplifyDemandedUseBits()
269 if (DemandedMask.isSubsetOf(RHSKnown.Zero)) in SimplifyDemandedUseBits()
271 if (DemandedMask.isSubsetOf(LHSKnown.Zero)) in SimplifyDemandedUseBits()
277 if (DemandedMask.isSubsetOf(RHSKnown.Zero | LHSKnown.Zero)) { in SimplifyDemandedUseBits()
288 if (DemandedMask.isSubsetOf(RHSKnown.Zero|RHSKnown.One) && in SimplifyDemandedUseBits()
291 ~RHSKnown.One & DemandedMask); in SimplifyDemandedUseBits()
301 if ((*C | ~DemandedMask).isAllOnes()) { in SimplifyDemandedUseBits()
307 if (ShrinkDemandedConstant(I, 1, DemandedMask)) in SimplifyDemandedUseBits()
320 (LHSKnown.One & RHSKnown.One & DemandedMask) != 0) { in SimplifyDemandedUseBits()
321 APInt NewMask = ~(LHSKnown.One & RHSKnown.One & DemandedMask); in SimplifyDemandedUseBits()
335 if (SimplifyDemandedBits(I, 2, DemandedMask, RHSKnown, Depth + 1) || in SimplifyDemandedUseBits()
336 SimplifyDemandedBits(I, 1, DemandedMask, LHSKnown, Depth + 1)) in SimplifyDemandedUseBits()
347 const APInt &DemandedMask) { in SimplifyDemandedUseBits() argument
361 return ShrinkDemandedConstant(I, OpNo, DemandedMask); in SimplifyDemandedUseBits()
368 if ((*CmpC & DemandedMask) == (*SelC & DemandedMask)) { in SimplifyDemandedUseBits()
372 return ShrinkDemandedConstant(I, OpNo, DemandedMask); in SimplifyDemandedUseBits()
374 if (CanonicalizeSelectConstant(I, 1, DemandedMask) || in SimplifyDemandedUseBits()
375 CanonicalizeSelectConstant(I, 2, DemandedMask)) in SimplifyDemandedUseBits()
391 C->ule(DemandedMask.countLeadingZeros())) { in SimplifyDemandedUseBits()
404 APInt InputDemandedMask = DemandedMask.zextOrTrunc(SrcBitWidth); in SimplifyDemandedUseBits()
430 if (SimplifyDemandedBits(I, 0, DemandedMask, Known, Depth + 1)) in SimplifyDemandedUseBits()
438 APInt InputDemandedBits = DemandedMask.trunc(SrcBitWidth); in SimplifyDemandedUseBits()
442 if (DemandedMask.getActiveBits() > SrcBitWidth) in SimplifyDemandedUseBits()
452 DemandedMask.getActiveBits() <= SrcBitWidth) { in SimplifyDemandedUseBits()
465 if ((DemandedMask & 1) == 0) { in SimplifyDemandedUseBits()
528 if (DemandedMask.isPowerOf2()) { in SimplifyDemandedUseBits()
532 unsigned CTZ = DemandedMask.countTrailingZeros(); in SimplifyDemandedUseBits()
544 if (I->getOperand(0) == I->getOperand(1) && DemandedMask.ult(4)) { in SimplifyDemandedUseBits()
560 DemandedMask, Known)) in SimplifyDemandedUseBits()
573 if (DemandedMask.countTrailingZeros() >= ShiftAmt && in SimplifyDemandedUseBits()
583 APInt DemandedMaskIn(DemandedMask.lshr(ShiftAmt)); in SimplifyDemandedUseBits()
618 if (unsigned CTLZ = DemandedMask.countLeadingZeros()) { in SimplifyDemandedUseBits()
637 if (DemandedMask.countLeadingZeros() >= ShiftAmt) { in SimplifyDemandedUseBits()
641 BitWidth - DemandedMask.countTrailingZeros(); in SimplifyDemandedUseBits()
664 APInt DemandedMaskIn(DemandedMask.shl(ShiftAmt)); in SimplifyDemandedUseBits()
688 unsigned NumHiDemandedBits = BitWidth - DemandedMask.countTrailingZeros(); in SimplifyDemandedUseBits()
696 if (DemandedMask.isOne()) { in SimplifyDemandedUseBits()
708 APInt DemandedMaskIn(DemandedMask.shl(ShiftAmt)); in SimplifyDemandedUseBits()
711 if (DemandedMask.countLeadingZeros() <= ShiftAmt) in SimplifyDemandedUseBits()
733 !DemandedMask.intersects(HighBits)) { in SimplifyDemandedUseBits()
778 if (DemandedMask.ult(RA)) // srem won't affect demanded bits in SimplifyDemandedUseBits()
807 if (DemandedMask.isSignBitSet()) { in SimplifyDemandedUseBits()
823 Known.Zero = APInt::getHighBitsSet(BitWidth, Leaders) & DemandedMask; in SimplifyDemandedUseBits()
831 if (DemandedMask == 1) in SimplifyDemandedUseBits()
840 if (DemandedMask == 1 && VTy->getScalarSizeInBits() % 2 == 0 && in SimplifyDemandedUseBits()
851 unsigned NLZ = DemandedMask.countLeadingZeros(); in SimplifyDemandedUseBits()
852 unsigned NTZ = DemandedMask.countTrailingZeros(); in SimplifyDemandedUseBits()
887 APInt DemandedMaskLHS(DemandedMask.lshr(ShiftAmt)); in SimplifyDemandedUseBits()
888 APInt DemandedMaskRHS(DemandedMask.shl(BitWidth - ShiftAmt)); in SimplifyDemandedUseBits()
905 unsigned CTZ = DemandedMask.countTrailingZeros(); in SimplifyDemandedUseBits()
917 unsigned CTZ = DemandedMask.countTrailingZeros(); in SimplifyDemandedUseBits()
926 *II, DemandedMask, Known, KnownBitsComputed); in SimplifyDemandedUseBits()
942 if (DemandedMask.isSubsetOf(Known.Zero|Known.One)) in SimplifyDemandedUseBits()
951 Instruction *I, const APInt &DemandedMask, KnownBits &Known, unsigned Depth, in SimplifyMultipleUseDemandedBits() argument
953 unsigned BitWidth = DemandedMask.getBitWidth(); in SimplifyMultipleUseDemandedBits()
974 if (DemandedMask.isSubsetOf(Known.Zero | Known.One)) in SimplifyMultipleUseDemandedBits()
980 if (DemandedMask.isSubsetOf(LHSKnown.Zero | RHSKnown.One)) in SimplifyMultipleUseDemandedBits()
982 if (DemandedMask.isSubsetOf(RHSKnown.Zero | LHSKnown.One)) in SimplifyMultipleUseDemandedBits()
1000 if (DemandedMask.isSubsetOf(Known.Zero | Known.One)) in SimplifyMultipleUseDemandedBits()
1006 if (DemandedMask.isSubsetOf(LHSKnown.One | RHSKnown.Zero)) in SimplifyMultipleUseDemandedBits()
1008 if (DemandedMask.isSubsetOf(RHSKnown.One | LHSKnown.Zero)) in SimplifyMultipleUseDemandedBits()
1025 if (DemandedMask.isSubsetOf(Known.Zero | Known.One)) in SimplifyMultipleUseDemandedBits()
1030 if (DemandedMask.isSubsetOf(RHSKnown.Zero)) in SimplifyMultipleUseDemandedBits()
1032 if (DemandedMask.isSubsetOf(LHSKnown.Zero)) in SimplifyMultipleUseDemandedBits()
1043 if (DemandedMask.isSubsetOf(Known.Zero | Known.One)) in SimplifyMultipleUseDemandedBits()
1053 unsigned BitWidth = DemandedMask.getBitWidth(); in SimplifyMultipleUseDemandedBits()
1057 DemandedMask.isSubsetOf(APInt::getLowBitsSet( in SimplifyMultipleUseDemandedBits()
1070 if (DemandedMask.isSubsetOf(Known.Zero|Known.One)) in SimplifyMultipleUseDemandedBits()
1098 const APInt &ShlOp1, const APInt &DemandedMask, KnownBits &Known) { in simplifyShrShlDemandedBits() argument
1113 Known.Zero &= DemandedMask; in simplifyShrShlDemandedBits()
1130 if ((BitMask1 & DemandedMask) == (BitMask2 & DemandedMask)) { in simplifyShrShlDemandedBits()