Lines Matching refs:DemandedMask

58   APInt DemandedMask(APInt::getAllOnesValue(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.isNullValue()) // Not demanding any bits from V. in SimplifyDemandedUseBits()
146 return SimplifyMultipleUseDemandedBits(I, DemandedMask, Known, Depth, CxtI); in SimplifyDemandedUseBits()
155 DemandedMask.setAllBits(); in SimplifyDemandedUseBits()
163 if (SimplifyDemandedBits(I, 1, DemandedMask, RHSKnown, Depth + 1) || in SimplifyDemandedUseBits()
164 SimplifyDemandedBits(I, 0, DemandedMask & ~RHSKnown.Zero, LHSKnown, in SimplifyDemandedUseBits()
174 if (DemandedMask.isSubsetOf(Known.Zero | Known.One)) in SimplifyDemandedUseBits()
179 if (DemandedMask.isSubsetOf(LHSKnown.Zero | RHSKnown.One)) in SimplifyDemandedUseBits()
181 if (DemandedMask.isSubsetOf(RHSKnown.Zero | LHSKnown.One)) in SimplifyDemandedUseBits()
185 if (ShrinkDemandedConstant(I, 1, DemandedMask & ~LHSKnown.Zero)) in SimplifyDemandedUseBits()
192 if (SimplifyDemandedBits(I, 1, DemandedMask, RHSKnown, Depth + 1) || in SimplifyDemandedUseBits()
193 SimplifyDemandedBits(I, 0, DemandedMask & ~RHSKnown.One, LHSKnown, in SimplifyDemandedUseBits()
203 if (DemandedMask.isSubsetOf(Known.Zero | Known.One)) in SimplifyDemandedUseBits()
208 if (DemandedMask.isSubsetOf(LHSKnown.One | RHSKnown.Zero)) in SimplifyDemandedUseBits()
210 if (DemandedMask.isSubsetOf(RHSKnown.One | LHSKnown.Zero)) in SimplifyDemandedUseBits()
214 if (ShrinkDemandedConstant(I, 1, DemandedMask)) in SimplifyDemandedUseBits()
220 if (SimplifyDemandedBits(I, 1, DemandedMask, RHSKnown, Depth + 1) || in SimplifyDemandedUseBits()
221 SimplifyDemandedBits(I, 0, DemandedMask, LHSKnown, Depth + 1)) in SimplifyDemandedUseBits()
224 if (DemandedMask == 1 && in SimplifyDemandedUseBits()
241 if (DemandedMask.isSubsetOf(Known.Zero | Known.One)) in SimplifyDemandedUseBits()
246 if (DemandedMask.isSubsetOf(RHSKnown.Zero)) in SimplifyDemandedUseBits()
248 if (DemandedMask.isSubsetOf(LHSKnown.Zero)) in SimplifyDemandedUseBits()
254 if (DemandedMask.isSubsetOf(RHSKnown.Zero | LHSKnown.Zero)) { in SimplifyDemandedUseBits()
265 if (DemandedMask.isSubsetOf(RHSKnown.Zero|RHSKnown.One) && in SimplifyDemandedUseBits()
268 ~RHSKnown.One & DemandedMask); in SimplifyDemandedUseBits()
278 if ((*C | ~DemandedMask).isAllOnesValue()) { in SimplifyDemandedUseBits()
284 if (ShrinkDemandedConstant(I, 1, DemandedMask)) in SimplifyDemandedUseBits()
297 (LHSKnown.One & RHSKnown.One & DemandedMask) != 0) { in SimplifyDemandedUseBits()
298 APInt NewMask = ~(LHSKnown.One & RHSKnown.One & DemandedMask); in SimplifyDemandedUseBits()
321 unsigned CTZ = DemandedMask.countTrailingZeros(); in SimplifyDemandedUseBits()
330 unsigned CTZ = DemandedMask.countTrailingZeros(); in SimplifyDemandedUseBits()
341 if (SimplifyDemandedBits(I, 2, DemandedMask, RHSKnown, Depth + 1) || in SimplifyDemandedUseBits()
342 SimplifyDemandedBits(I, 1, DemandedMask, LHSKnown, Depth + 1)) in SimplifyDemandedUseBits()
353 const APInt &DemandedMask) { in SimplifyDemandedUseBits() argument
367 return ShrinkDemandedConstant(I, OpNo, DemandedMask); in SimplifyDemandedUseBits()
374 if ((*CmpC & DemandedMask) == (*SelC & DemandedMask)) { in SimplifyDemandedUseBits()
378 return ShrinkDemandedConstant(I, OpNo, DemandedMask); in SimplifyDemandedUseBits()
380 if (CanonicalizeSelectConstant(I, 1, DemandedMask) || in SimplifyDemandedUseBits()
381 CanonicalizeSelectConstant(I, 2, DemandedMask)) in SimplifyDemandedUseBits()
392 APInt InputDemandedMask = DemandedMask.zextOrTrunc(SrcBitWidth); in SimplifyDemandedUseBits()
419 if (SimplifyDemandedBits(I, 0, DemandedMask, Known, Depth + 1)) in SimplifyDemandedUseBits()
427 APInt InputDemandedBits = DemandedMask.trunc(SrcBitWidth); in SimplifyDemandedUseBits()
431 if (DemandedMask.getActiveBits() > SrcBitWidth) in SimplifyDemandedUseBits()
441 DemandedMask.getActiveBits() <= SrcBitWidth) { in SimplifyDemandedUseBits()
454 if ((DemandedMask & 1) == 0) { in SimplifyDemandedUseBits()
494 unsigned NLZ = DemandedMask.countLeadingZeros(); in SimplifyDemandedUseBits()
537 DemandedMask, Known)) in SimplifyDemandedUseBits()
541 APInt DemandedMaskIn(DemandedMask.lshr(ShiftAmt)); in SimplifyDemandedUseBits()
576 if (unsigned CTLZ = DemandedMask.countLeadingZeros()) { in SimplifyDemandedUseBits()
594 APInt DemandedMaskIn(DemandedMask.shl(ShiftAmt)); in SimplifyDemandedUseBits()
618 if (DemandedMask.isOneValue()) { in SimplifyDemandedUseBits()
627 if (DemandedMask.isSignMask()) in SimplifyDemandedUseBits()
635 APInt DemandedMaskIn(DemandedMask.shl(ShiftAmt)); in SimplifyDemandedUseBits()
638 if (DemandedMask.countLeadingZeros() <= ShiftAmt) in SimplifyDemandedUseBits()
662 !DemandedMask.intersects(HighBits)) { in SimplifyDemandedUseBits()
707 if (DemandedMask.ult(RA)) // srem won't affect demanded bits in SimplifyDemandedUseBits()
736 if (DemandedMask.isSignBitSet()) { in SimplifyDemandedUseBits()
752 Known.Zero = APInt::getHighBitsSet(BitWidth, Leaders) & DemandedMask; in SimplifyDemandedUseBits()
760 if (DemandedMask == 1) in SimplifyDemandedUseBits()
769 if (DemandedMask == 1 && VTy->getScalarSizeInBits() % 2 == 0 && in SimplifyDemandedUseBits()
780 unsigned NLZ = DemandedMask.countLeadingZeros(); in SimplifyDemandedUseBits()
781 unsigned NTZ = DemandedMask.countTrailingZeros(); in SimplifyDemandedUseBits()
819 APInt DemandedMaskLHS(DemandedMask.lshr(ShiftAmt)); in SimplifyDemandedUseBits()
820 APInt DemandedMaskRHS(DemandedMask.shl(BitWidth - ShiftAmt)); in SimplifyDemandedUseBits()
835 *II, DemandedMask, Known, KnownBitsComputed); in SimplifyDemandedUseBits()
851 if (DemandedMask.isSubsetOf(Known.Zero|Known.One)) in SimplifyDemandedUseBits()
860 Instruction *I, const APInt &DemandedMask, KnownBits &Known, unsigned Depth, in SimplifyMultipleUseDemandedBits() argument
862 unsigned BitWidth = DemandedMask.getBitWidth(); in SimplifyMultipleUseDemandedBits()
883 if (DemandedMask.isSubsetOf(Known.Zero | Known.One)) in SimplifyMultipleUseDemandedBits()
889 if (DemandedMask.isSubsetOf(LHSKnown.Zero | RHSKnown.One)) in SimplifyMultipleUseDemandedBits()
891 if (DemandedMask.isSubsetOf(RHSKnown.Zero | LHSKnown.One)) in SimplifyMultipleUseDemandedBits()
909 if (DemandedMask.isSubsetOf(Known.Zero | Known.One)) in SimplifyMultipleUseDemandedBits()
915 if (DemandedMask.isSubsetOf(LHSKnown.One | RHSKnown.Zero)) in SimplifyMultipleUseDemandedBits()
917 if (DemandedMask.isSubsetOf(RHSKnown.One | LHSKnown.Zero)) in SimplifyMultipleUseDemandedBits()
934 if (DemandedMask.isSubsetOf(Known.Zero | Known.One)) in SimplifyMultipleUseDemandedBits()
939 if (DemandedMask.isSubsetOf(RHSKnown.Zero)) in SimplifyMultipleUseDemandedBits()
941 if (DemandedMask.isSubsetOf(LHSKnown.Zero)) in SimplifyMultipleUseDemandedBits()
952 if (DemandedMask.isSubsetOf(Known.Zero | Known.One)) in SimplifyMultipleUseDemandedBits()
962 unsigned BitWidth = DemandedMask.getBitWidth(); in SimplifyMultipleUseDemandedBits()
966 DemandedMask.isSubsetOf(APInt::getLowBitsSet( in SimplifyMultipleUseDemandedBits()
979 if (DemandedMask.isSubsetOf(Known.Zero|Known.One)) in SimplifyMultipleUseDemandedBits()
1007 const APInt &ShlOp1, const APInt &DemandedMask, KnownBits &Known) { in simplifyShrShlDemandedBits() argument
1022 Known.Zero &= DemandedMask; in simplifyShrShlDemandedBits()
1039 if ((BitMask1 & DemandedMask) == (BitMask2 & DemandedMask)) { in simplifyShrShlDemandedBits()