Lines Matching defs:DemandedMask
70 APInt DemandedMask(APInt::getAllOnes(Known.getBitWidth()));
71 Value *V = SimplifyDemandedUseBits(&Inst, DemandedMask, Known,
90 const APInt &DemandedMask,
101 if (DemandedMask.isZero()) {
119 NewVal = SimplifyDemandedUseBits(VInst, DemandedMask, Known, Depth, Q);
124 SimplifyMultipleUseDemandedBits(VInst, DemandedMask, Known, Depth, Q);
136 /// set in DemandedMask of the result of V are ever used downstream.
148 /// are accurate even for bits not in DemandedMask. Note
149 /// also that the bitwidth of V, DemandedMask, Known.Zero and Known.One must all
158 const APInt &DemandedMask,
164 uint32_t BitWidth = DemandedMask.getBitWidth();
169 "Value *V, DemandedMask and Known must have same BitWidth");
190 unsigned NLZ = DemandedMask.countl_zero();
210 if (SimplifyDemandedBits(I, 1, DemandedMask, RHSKnown, Depth + 1, Q) ||
211 SimplifyDemandedBits(I, 0, DemandedMask & ~RHSKnown.Zero, LHSKnown,
220 if (DemandedMask.isSubsetOf(Known.Zero | Known.One))
225 if (DemandedMask.isSubsetOf(LHSKnown.Zero | RHSKnown.One))
227 if (DemandedMask.isSubsetOf(RHSKnown.Zero | LHSKnown.One))
231 if (ShrinkDemandedConstant(I, 1, DemandedMask & ~LHSKnown.Zero))
238 if (SimplifyDemandedBits(I, 1, DemandedMask, RHSKnown, Depth + 1, Q) ||
239 SimplifyDemandedBits(I, 0, DemandedMask & ~RHSKnown.One, LHSKnown,
251 if (DemandedMask.isSubsetOf(Known.Zero | Known.One))
256 if (DemandedMask.isSubsetOf(LHSKnown.One | RHSKnown.Zero))
258 if (DemandedMask.isSubsetOf(RHSKnown.One | LHSKnown.Zero))
262 if (ShrinkDemandedConstant(I, 1, DemandedMask))
278 if (SimplifyDemandedBits(I, 1, DemandedMask, RHSKnown, Depth + 1, Q) ||
279 SimplifyDemandedBits(I, 0, DemandedMask, LHSKnown, Depth + 1, Q))
282 if (DemandedMask == 1 &&
297 if (DemandedMask.isSubsetOf(Known.Zero | Known.One))
302 if (DemandedMask.isSubsetOf(RHSKnown.Zero))
304 if (DemandedMask.isSubsetOf(LHSKnown.Zero))
310 if (DemandedMask.isSubsetOf(RHSKnown.Zero | LHSKnown.Zero)) {
313 if (DemandedMask.isAllOnes())
323 if (DemandedMask.isSubsetOf(RHSKnown.Zero|RHSKnown.One) &&
326 ~RHSKnown.One & DemandedMask);
336 if ((*C | ~DemandedMask).isAllOnes()) {
342 if (ShrinkDemandedConstant(I, 1, DemandedMask))
355 (LHSKnown.One & RHSKnown.One & DemandedMask) != 0) {
356 APInt NewMask = ~(LHSKnown.One & RHSKnown.One & DemandedMask);
370 if (SimplifyDemandedBits(I, 2, DemandedMask, RHSKnown, Depth + 1, Q) ||
371 SimplifyDemandedBits(I, 1, DemandedMask, LHSKnown, Depth + 1, Q))
380 const APInt &DemandedMask) {
394 return ShrinkDemandedConstant(I, OpNo, DemandedMask);
401 if ((*CmpC & DemandedMask) == (*SelC & DemandedMask)) {
405 return ShrinkDemandedConstant(I, OpNo, DemandedMask);
407 if (CanonicalizeSelectConstant(I, 1, DemandedMask) ||
408 CanonicalizeSelectConstant(I, 2, DemandedMask))
428 C->ule(DemandedMask.countl_zero())) {
441 APInt InputDemandedMask = DemandedMask.zextOrTrunc(SrcBitWidth);
462 APInt InputDemandedBits = DemandedMask.trunc(SrcBitWidth);
466 if (DemandedMask.getActiveBits() > SrcBitWidth)
476 DemandedMask.getActiveBits() <= SrcBitWidth) {
489 if ((DemandedMask & 1) == 0) {
528 unsigned NLZ = DemandedMask.countl_zero();
537 unsigned NTZ = (~DemandedMask & RHSKnown.Zero).countr_one();
555 C->isOneBitSet(DemandedMask.getActiveBits() - 1)) {
571 unsigned NLZ = DemandedMask.countl_zero();
580 unsigned NTZ = (~DemandedMask & RHSKnown.Zero).countr_one();
607 if (DemandedMask.isPowerOf2()) {
611 unsigned CTZ = DemandedMask.countr_zero();
622 if (I->getOperand(0) == I->getOperand(1) && DemandedMask.ult(4)) {
638 DemandedMask, Known))
659 if (DemandedMask.countr_zero() >= ShiftAmt) {
661 unsigned NumHiDemandedBits = BitWidth - DemandedMask.countr_zero();
686 APInt DemandedMaskIn(DemandedMask.lshr(ShiftAmt));
706 if (unsigned CTLZ = DemandedMask.countl_zero()) {
740 if (DemandedMask.countl_zero() >= ShiftAmt) {
743 unsigned NumHiDemandedBits = BitWidth - DemandedMask.countr_zero();
768 APInt DemandedMaskIn(DemandedMask.shl(ShiftAmt));
788 unsigned NumHiDemandedBits = BitWidth - DemandedMask.countr_zero();
796 if (DemandedMask.isOne()) {
808 APInt DemandedMaskIn(DemandedMask.shl(ShiftAmt));
811 bool ShiftedInBitsDemanded = DemandedMask.countl_zero() < ShiftAmt;
869 if (DemandedMask.ult(RA)) // srem won't affect demanded bits
903 if (DemandedMask == 1)
912 if (DemandedMask == 1 && VTy->getScalarSizeInBits() % 2 == 0 &&
923 unsigned NLZ = DemandedMask.countl_zero();
924 unsigned NTZ = DemandedMask.countr_zero();
951 if (SimplifyDemandedBits(I, 0, DemandedMask, LHSKnown, Depth + 1, Q) ||
953 I, 1, (DemandedMask & ~LHSKnown.Zero).zextOrTrunc(MaskWidth),
967 if (DemandedMask.isSubsetOf(Known.Zero) &&
976 if (DemandedMask.isSubsetOf(RHSKnown.One | LHSKnown.Zero))
981 I, 1, (DemandedMask & ~LHSKnown.Zero).zextOrTrunc(MaskWidth)))
1037 APInt DemandedMaskLHS(DemandedMask.lshr(ShiftAmt));
1038 APInt DemandedMaskRHS(DemandedMask.shl(BitWidth - ShiftAmt));
1075 unsigned CTZ = DemandedMask.countr_zero();
1087 unsigned CTZ = DemandedMask.countr_zero();
1096 *II, DemandedMask, Known, KnownBitsComputed);
1120 DemandedMask.isSubsetOf(Known.Zero | Known.One))
1139 /// DemandedMask, but without modifying the Instruction.
1141 Instruction *I, const APInt &DemandedMask, KnownBits &Known, unsigned Depth,
1143 unsigned BitWidth = DemandedMask.getBitWidth();
1163 if (DemandedMask.isSubsetOf(Known.Zero | Known.One))
1168 if (DemandedMask.isSubsetOf(LHSKnown.Zero | RHSKnown.One))
1170 if (DemandedMask.isSubsetOf(RHSKnown.Zero | LHSKnown.One))
1184 if (DemandedMask.isSubsetOf(Known.Zero | Known.One))
1191 if (DemandedMask.isSubsetOf(LHSKnown.One | RHSKnown.Zero))
1193 if (DemandedMask.isSubsetOf(RHSKnown.One | LHSKnown.Zero))
1207 if (DemandedMask.isSubsetOf(Known.Zero | Known.One))
1213 if (DemandedMask.isSubsetOf(RHSKnown.Zero))
1215 if (DemandedMask.isSubsetOf(LHSKnown.Zero))
1221 unsigned NLZ = DemandedMask.countl_zero();
1242 unsigned NLZ = DemandedMask.countl_zero();
1265 if (DemandedMask.isSubsetOf(Known.Zero | Known.One))
1275 unsigned BitWidth = DemandedMask.getBitWidth();
1279 DemandedMask.isSubsetOf(APInt::getLowBitsSet(
1292 if (DemandedMask.isSubsetOf(Known.Zero|Known.One))
1310 /// 2) We don't care those bits in S, per the input DemandedMask.
1320 const APInt &ShlOp1, const APInt &DemandedMask, KnownBits &Known) {
1335 Known.Zero &= DemandedMask;
1352 if ((BitMask1 & DemandedMask) == (BitMask2 & DemandedMask)) {
1959 Value *V, const FPClassTest DemandedMask, KnownFPClass &Known,
1966 if (DemandedMask == fcNone)
1977 getFPClassConstant(VTy, DemandedMask & Known.KnownFPClasses);
1987 if (SimplifyDemandedFPClass(I, 0, llvm::fneg(DemandedMask), Known,
1997 if (SimplifyDemandedFPClass(I, 0, llvm::inverse_fabs(DemandedMask), Known,
2003 if (SimplifyDemandedFPClass(I, 0, DemandedMask, Known, Depth + 1))
2008 const FPClassTest DemandedMaskAnySign = llvm::unknown_sign(DemandedMask);
2012 if ((DemandedMask & fcPositive) == fcNone) {
2018 if ((DemandedMask & fcNegative) == fcNone) {
2030 Known = computeKnownFPClass(I, ~DemandedMask, CxtI, Depth + 1);
2038 if (SimplifyDemandedFPClass(I, 2, DemandedMask, KnownRHS, Depth + 1) ||
2039 SimplifyDemandedFPClass(I, 1, DemandedMask, KnownLHS, Depth + 1))
2042 if (KnownLHS.isKnownNever(DemandedMask))
2044 if (KnownRHS.isKnownNever(DemandedMask))
2052 Known = computeKnownFPClass(I, ~DemandedMask, CxtI, Depth + 1);
2056 return getFPClassConstant(VTy, DemandedMask & Known.KnownFPClasses);
2060 FPClassTest DemandedMask,
2065 SimplifyDemandedUseFPClass(U.get(), DemandedMask, Known, Depth, I);