Lines Matching refs:LHSKnown
163 KnownBits LHSKnown(BitWidth), RHSKnown(BitWidth); in SimplifyDemandedUseBits() local
193 SimplifyDemandedBits(I, 0, DemandedFromOps, LHSKnown, Depth + 1) || in SimplifyDemandedUseBits()
209 SimplifyDemandedBits(I, 0, DemandedMask & ~RHSKnown.Zero, LHSKnown, in SimplifyDemandedUseBits()
213 assert(!LHSKnown.hasConflict() && "Bits known to be one AND zero?"); in SimplifyDemandedUseBits()
215 Known = analyzeKnownBitsFromAndXorOr(cast<Operator>(I), LHSKnown, RHSKnown, 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()
239 SimplifyDemandedBits(I, 0, DemandedMask & ~RHSKnown.One, LHSKnown, in SimplifyDemandedUseBits()
246 assert(!LHSKnown.hasConflict() && "Bits known to be one AND zero?"); in SimplifyDemandedUseBits()
248 Known = analyzeKnownBitsFromAndXorOr(cast<Operator>(I), LHSKnown, RHSKnown, in SimplifyDemandedUseBits()
258 if (DemandedMask.isSubsetOf(LHSKnown.One | RHSKnown.Zero)) in SimplifyDemandedUseBits()
260 if (DemandedMask.isSubsetOf(RHSKnown.One | LHSKnown.Zero)) in SimplifyDemandedUseBits()
269 WithCache<const Value *> LHSCache(I->getOperand(0), LHSKnown), in SimplifyDemandedUseBits()
281 SimplifyDemandedBits(I, 0, DemandedMask, LHSKnown, Depth + 1)) in SimplifyDemandedUseBits()
295 assert(!LHSKnown.hasConflict() && "Bits known to be one AND zero?"); in SimplifyDemandedUseBits()
297 Known = analyzeKnownBitsFromAndXorOr(cast<Operator>(I), LHSKnown, RHSKnown, in SimplifyDemandedUseBits()
309 if (DemandedMask.isSubsetOf(LHSKnown.Zero)) in SimplifyDemandedUseBits()
315 if (DemandedMask.isSubsetOf(RHSKnown.Zero | LHSKnown.Zero)) { in SimplifyDemandedUseBits()
329 RHSKnown.One.isSubsetOf(LHSKnown.One)) { in SimplifyDemandedUseBits()
360 (LHSKnown.One & RHSKnown.One & DemandedMask) != 0) { in SimplifyDemandedUseBits()
361 APInt NewMask = ~(LHSKnown.One & RHSKnown.One & DemandedMask); in SimplifyDemandedUseBits()
376 SimplifyDemandedBits(I, 1, DemandedMask, LHSKnown, Depth + 1)) in SimplifyDemandedUseBits()
379 assert(!LHSKnown.hasConflict() && "Bits known to be one AND zero?"); in SimplifyDemandedUseBits()
419 Known = LHSKnown.intersectWith(RHSKnown); in SimplifyDemandedUseBits()
545 SimplifyDemandedBits(I, 0, DemandedFromLHS, LHSKnown, Depth + 1)) in SimplifyDemandedUseBits()
552 if (DemandedFromOps.isSubsetOf(LHSKnown.Zero)) in SimplifyDemandedUseBits()
568 Known = KnownBits::computeForAddSub(true, NSW, LHSKnown, RHSKnown); in SimplifyDemandedUseBits()
587 SimplifyDemandedBits(I, 0, DemandedFromLHS, LHSKnown, Depth + 1)) in SimplifyDemandedUseBits()
596 if (DemandedFromOps.isOne() && DemandedFromOps.isSubsetOf(LHSKnown.Zero)) in SimplifyDemandedUseBits()
601 Known = KnownBits::computeForAddSub(false, NSW, LHSKnown, RHSKnown); in SimplifyDemandedUseBits()
822 if (SimplifyDemandedBits(I, 0, DemandedMaskIn, LHSKnown, Depth + 1)) { in SimplifyDemandedUseBits()
829 Known = KnownBits::udiv(LHSKnown, KnownBits::makeConstant(*SA), in SimplifyDemandedUseBits()
850 if (SimplifyDemandedBits(I, 0, Mask2, LHSKnown, Depth + 1)) in SimplifyDemandedUseBits()
854 Known.Zero = LHSKnown.Zero & LowBits; in SimplifyDemandedUseBits()
855 Known.One = LHSKnown.One & LowBits; in SimplifyDemandedUseBits()
859 if (LHSKnown.isNonNegative() || LowBits.isSubsetOf(LHSKnown.Zero)) in SimplifyDemandedUseBits()
864 if (LHSKnown.isNegative() && LowBits.intersects(LHSKnown.One)) in SimplifyDemandedUseBits()
877 if (SimplifyDemandedBits(I, 0, AllOnes, LHSKnown, Depth + 1) || in SimplifyDemandedUseBits()
881 Known = KnownBits::urem(LHSKnown, RHSKnown); in SimplifyDemandedUseBits()
937 if (SimplifyDemandedBits(I, 0, DemandedMask, LHSKnown, Depth + 1) || in SimplifyDemandedUseBits()
939 I, 1, (DemandedMask & ~LHSKnown.Zero).zextOrTrunc(MaskWidth), in SimplifyDemandedUseBits()
946 assert(!LHSKnown.hasConflict() && "Bits known to be one AND zero?"); in SimplifyDemandedUseBits()
948 Known = LHSKnown & RHSKnown; in SimplifyDemandedUseBits()
964 if (DemandedMask.isSubsetOf(RHSKnown.One | LHSKnown.Zero)) in SimplifyDemandedUseBits()
969 I, 1, (DemandedMask & ~LHSKnown.Zero).zextOrTrunc(MaskWidth))) in SimplifyDemandedUseBits()
990 if (SimplifyDemandedBits(I, 0, DemandedMaskLHS, LHSKnown, in SimplifyDemandedUseBits()
997 LHSKnown = computeKnownBits(I->getOperand(0), Depth + 1, I); in SimplifyDemandedUseBits()
998 if (DemandedMaskLHS.isSubsetOf(LHSKnown.Zero | LHSKnown.One) && in SimplifyDemandedUseBits()
999 !match(I->getOperand(0), m_SpecificInt(LHSKnown.One))) { in SimplifyDemandedUseBits()
1000 replaceOperand(*I, 0, Constant::getIntegerValue(VTy, LHSKnown.One)); in SimplifyDemandedUseBits()
1012 Known.Zero = LHSKnown.Zero.shl(ShiftAmt) | in SimplifyDemandedUseBits()
1014 Known.One = LHSKnown.One.shl(ShiftAmt) | in SimplifyDemandedUseBits()
1094 KnownBits LHSKnown(BitWidth); in SimplifyMultipleUseDemandedBits() local
1104 computeKnownBits(I->getOperand(0), LHSKnown, Depth + 1, CxtI); in SimplifyMultipleUseDemandedBits()
1105 Known = analyzeKnownBitsFromAndXorOr(cast<Operator>(I), LHSKnown, RHSKnown, in SimplifyMultipleUseDemandedBits()
1116 if (DemandedMask.isSubsetOf(LHSKnown.Zero | RHSKnown.One)) in SimplifyMultipleUseDemandedBits()
1118 if (DemandedMask.isSubsetOf(RHSKnown.Zero | LHSKnown.One)) in SimplifyMultipleUseDemandedBits()
1125 computeKnownBits(I->getOperand(0), LHSKnown, Depth + 1, CxtI); in SimplifyMultipleUseDemandedBits()
1126 Known = analyzeKnownBitsFromAndXorOr(cast<Operator>(I), LHSKnown, RHSKnown, in SimplifyMultipleUseDemandedBits()
1139 if (DemandedMask.isSubsetOf(LHSKnown.One | RHSKnown.Zero)) in SimplifyMultipleUseDemandedBits()
1141 if (DemandedMask.isSubsetOf(RHSKnown.One | LHSKnown.Zero)) in SimplifyMultipleUseDemandedBits()
1148 computeKnownBits(I->getOperand(0), LHSKnown, Depth + 1, CxtI); in SimplifyMultipleUseDemandedBits()
1149 Known = analyzeKnownBitsFromAndXorOr(cast<Operator>(I), LHSKnown, RHSKnown, in SimplifyMultipleUseDemandedBits()
1163 if (DemandedMask.isSubsetOf(LHSKnown.Zero)) in SimplifyMultipleUseDemandedBits()
1178 computeKnownBits(I->getOperand(0), LHSKnown, Depth + 1, CxtI); in SimplifyMultipleUseDemandedBits()
1179 if (DemandedFromOps.isSubsetOf(LHSKnown.Zero)) in SimplifyMultipleUseDemandedBits()
1183 Known = KnownBits::computeForAddSub(/*Add*/ true, NSW, LHSKnown, RHSKnown); in SimplifyMultipleUseDemandedBits()
1198 computeKnownBits(I->getOperand(0), LHSKnown, Depth + 1, CxtI); in SimplifyMultipleUseDemandedBits()
1199 Known = KnownBits::computeForAddSub(/*Add*/ false, NSW, LHSKnown, RHSKnown); in SimplifyMultipleUseDemandedBits()