Lines Matching refs:DemandedMask
76 APInt DemandedMask(APInt::getAllOnes(Known.getBitWidth())); in SimplifyDemandedInstructionBits() local
77 Value *V = SimplifyDemandedUseBits(&Inst, DemandedMask, Known, in SimplifyDemandedInstructionBits()
96 const APInt &DemandedMask, in SimplifyDemandedBits() argument
108 if (DemandedMask.isZero()) { in SimplifyDemandedBits()
126 NewVal = SimplifyDemandedUseBits(VInst, DemandedMask, Known, Q, Depth); in SimplifyDemandedBits()
131 SimplifyMultipleUseDemandedBits(VInst, DemandedMask, Known, Q, Depth); in SimplifyDemandedBits()
165 const APInt &DemandedMask, in SimplifyDemandedUseBits() argument
171 uint32_t BitWidth = DemandedMask.getBitWidth(); in SimplifyDemandedUseBits()
197 unsigned NLZ = DemandedMask.countl_zero(); in SimplifyDemandedUseBits()
217 if (SimplifyDemandedBits(I, 1, DemandedMask, RHSKnown, Q, Depth + 1) || in SimplifyDemandedUseBits()
218 SimplifyDemandedBits(I, 0, DemandedMask & ~RHSKnown.Zero, LHSKnown, Q, in SimplifyDemandedUseBits()
227 if (DemandedMask.isSubsetOf(Known.Zero | Known.One)) in SimplifyDemandedUseBits()
232 if (DemandedMask.isSubsetOf(LHSKnown.Zero | RHSKnown.One)) in SimplifyDemandedUseBits()
234 if (DemandedMask.isSubsetOf(RHSKnown.Zero | LHSKnown.One)) in SimplifyDemandedUseBits()
238 if (ShrinkDemandedConstant(I, 1, DemandedMask & ~LHSKnown.Zero)) in SimplifyDemandedUseBits()
245 if (SimplifyDemandedBits(I, 1, DemandedMask, RHSKnown, Q, Depth + 1) || in SimplifyDemandedUseBits()
246 SimplifyDemandedBits(I, 0, DemandedMask & ~RHSKnown.One, LHSKnown, Q, in SimplifyDemandedUseBits()
258 if (DemandedMask.isSubsetOf(Known.Zero | Known.One)) in SimplifyDemandedUseBits()
263 if (DemandedMask.isSubsetOf(LHSKnown.One | RHSKnown.Zero)) in SimplifyDemandedUseBits()
265 if (DemandedMask.isSubsetOf(RHSKnown.One | LHSKnown.Zero)) in SimplifyDemandedUseBits()
269 if (ShrinkDemandedConstant(I, 1, DemandedMask)) in SimplifyDemandedUseBits()
285 if (SimplifyDemandedBits(I, 1, DemandedMask, RHSKnown, Q, Depth + 1) || in SimplifyDemandedUseBits()
286 SimplifyDemandedBits(I, 0, DemandedMask, LHSKnown, Q, Depth + 1)) in SimplifyDemandedUseBits()
289 if (DemandedMask == 1 && in SimplifyDemandedUseBits()
304 if (DemandedMask.isSubsetOf(Known.Zero | Known.One)) in SimplifyDemandedUseBits()
309 if (DemandedMask.isSubsetOf(RHSKnown.Zero)) in SimplifyDemandedUseBits()
311 if (DemandedMask.isSubsetOf(LHSKnown.Zero)) in SimplifyDemandedUseBits()
317 if (DemandedMask.isSubsetOf(RHSKnown.Zero | LHSKnown.Zero)) { in SimplifyDemandedUseBits()
320 if (DemandedMask.isAllOnes()) in SimplifyDemandedUseBits()
330 if (DemandedMask.isSubsetOf(RHSKnown.Zero|RHSKnown.One) && in SimplifyDemandedUseBits()
333 ~RHSKnown.One & DemandedMask); in SimplifyDemandedUseBits()
343 if ((*C | ~DemandedMask).isAllOnes()) { in SimplifyDemandedUseBits()
349 if (ShrinkDemandedConstant(I, 1, DemandedMask)) in SimplifyDemandedUseBits()
362 (LHSKnown.One & RHSKnown.One & DemandedMask) != 0) { in SimplifyDemandedUseBits()
363 APInt NewMask = ~(LHSKnown.One & RHSKnown.One & DemandedMask); in SimplifyDemandedUseBits()
377 if (SimplifyDemandedBits(I, 2, DemandedMask, RHSKnown, Q, Depth + 1) || in SimplifyDemandedUseBits()
378 SimplifyDemandedBits(I, 1, DemandedMask, LHSKnown, Q, Depth + 1)) in SimplifyDemandedUseBits()
387 const APInt &DemandedMask) { in SimplifyDemandedUseBits() argument
400 return ShrinkDemandedConstant(I, OpNo, DemandedMask); in SimplifyDemandedUseBits()
407 if ((*CmpC & DemandedMask) == (*SelC & DemandedMask)) { in SimplifyDemandedUseBits()
411 return ShrinkDemandedConstant(I, OpNo, DemandedMask); in SimplifyDemandedUseBits()
413 if (CanonicalizeSelectConstant(I, 1, DemandedMask) || in SimplifyDemandedUseBits()
414 CanonicalizeSelectConstant(I, 2, DemandedMask)) in SimplifyDemandedUseBits()
434 C->ule(DemandedMask.countl_zero())) { in SimplifyDemandedUseBits()
447 APInt InputDemandedMask = DemandedMask.zextOrTrunc(SrcBitWidth); in SimplifyDemandedUseBits()
468 APInt InputDemandedBits = DemandedMask.trunc(SrcBitWidth); in SimplifyDemandedUseBits()
472 if (DemandedMask.getActiveBits() > SrcBitWidth) in SimplifyDemandedUseBits()
482 DemandedMask.getActiveBits() <= SrcBitWidth) { in SimplifyDemandedUseBits()
495 if ((DemandedMask & 1) == 0) { in SimplifyDemandedUseBits()
534 unsigned NLZ = DemandedMask.countl_zero(); in SimplifyDemandedUseBits()
543 unsigned NTZ = (~DemandedMask & RHSKnown.Zero).countr_one(); in SimplifyDemandedUseBits()
561 C->isOneBitSet(DemandedMask.getActiveBits() - 1)) { in SimplifyDemandedUseBits()
577 unsigned NLZ = DemandedMask.countl_zero(); in SimplifyDemandedUseBits()
586 unsigned NTZ = (~DemandedMask & RHSKnown.Zero).countr_one(); in SimplifyDemandedUseBits()
622 if (DemandedMask.isPowerOf2()) { in SimplifyDemandedUseBits()
626 unsigned CTZ = DemandedMask.countr_zero(); in SimplifyDemandedUseBits()
637 if (I->getOperand(0) == I->getOperand(1) && DemandedMask.ult(4)) { in SimplifyDemandedUseBits()
653 DemandedMask, Known)) in SimplifyDemandedUseBits()
674 if (DemandedMask.countr_zero() >= ShiftAmt) { in SimplifyDemandedUseBits()
676 unsigned NumHiDemandedBits = BitWidth - DemandedMask.countr_zero(); in SimplifyDemandedUseBits()
701 APInt DemandedMaskIn(DemandedMask.lshr(ShiftAmt)); in SimplifyDemandedUseBits()
721 if (unsigned CTLZ = DemandedMask.countl_zero()) { in SimplifyDemandedUseBits()
755 if (DemandedMask.countl_zero() >= ShiftAmt) { in SimplifyDemandedUseBits()
758 unsigned NumHiDemandedBits = BitWidth - DemandedMask.countr_zero(); in SimplifyDemandedUseBits()
792 APInt DemandedMaskIn(DemandedMask.shl(ShiftAmt)); in SimplifyDemandedUseBits()
812 unsigned NumHiDemandedBits = BitWidth - DemandedMask.countr_zero(); in SimplifyDemandedUseBits()
820 if (DemandedMask.isOne()) { in SimplifyDemandedUseBits()
832 APInt DemandedMaskIn(DemandedMask.shl(ShiftAmt)); in SimplifyDemandedUseBits()
835 bool ShiftedInBitsDemanded = DemandedMask.countl_zero() < ShiftAmt; in SimplifyDemandedUseBits()
887 if (DemandedMask.ult(*Rem)) // srem won't affect demanded bits in SimplifyDemandedUseBits()
906 if (DemandedMask == 1) in SimplifyDemandedUseBits()
915 if (DemandedMask == 1 && VTy->getScalarSizeInBits() % 2 == 0 && in SimplifyDemandedUseBits()
926 unsigned NLZ = DemandedMask.countl_zero(); in SimplifyDemandedUseBits()
927 unsigned NTZ = DemandedMask.countr_zero(); in SimplifyDemandedUseBits()
954 if (SimplifyDemandedBits(I, 0, DemandedMask, LHSKnown, Q, Depth + 1) || in SimplifyDemandedUseBits()
956 I, 1, (DemandedMask & ~LHSKnown.Zero).zextOrTrunc(MaskWidth), in SimplifyDemandedUseBits()
970 if (DemandedMask.isSubsetOf(Known.Zero) && in SimplifyDemandedUseBits()
979 if (DemandedMask.isSubsetOf(RHSKnown.One | LHSKnown.Zero)) in SimplifyDemandedUseBits()
984 I, 1, (DemandedMask & ~LHSKnown.Zero).zextOrTrunc(MaskWidth))) in SimplifyDemandedUseBits()
1040 APInt DemandedMaskLHS(DemandedMask.lshr(ShiftAmt)); in SimplifyDemandedUseBits()
1041 APInt DemandedMaskRHS(DemandedMask.shl(BitWidth - ShiftAmt)); in SimplifyDemandedUseBits()
1081 unsigned CTZ = DemandedMask.countr_zero(); in SimplifyDemandedUseBits()
1093 unsigned CTZ = DemandedMask.countr_zero(); in SimplifyDemandedUseBits()
1102 *II, DemandedMask, Known, KnownBitsComputed); in SimplifyDemandedUseBits()
1126 DemandedMask.isSubsetOf(Known.Zero | Known.One)) in SimplifyDemandedUseBits()
1147 Instruction *I, const APInt &DemandedMask, KnownBits &Known, in SimplifyMultipleUseDemandedBits() argument
1149 unsigned BitWidth = DemandedMask.getBitWidth(); in SimplifyMultipleUseDemandedBits()
1169 if (DemandedMask.isSubsetOf(Known.Zero | Known.One)) in SimplifyMultipleUseDemandedBits()
1174 if (DemandedMask.isSubsetOf(LHSKnown.Zero | RHSKnown.One)) in SimplifyMultipleUseDemandedBits()
1176 if (DemandedMask.isSubsetOf(RHSKnown.Zero | LHSKnown.One)) in SimplifyMultipleUseDemandedBits()
1190 if (DemandedMask.isSubsetOf(Known.Zero | Known.One)) in SimplifyMultipleUseDemandedBits()
1197 if (DemandedMask.isSubsetOf(LHSKnown.One | RHSKnown.Zero)) in SimplifyMultipleUseDemandedBits()
1199 if (DemandedMask.isSubsetOf(RHSKnown.One | LHSKnown.Zero)) in SimplifyMultipleUseDemandedBits()
1213 if (DemandedMask.isSubsetOf(Known.Zero | Known.One)) in SimplifyMultipleUseDemandedBits()
1219 if (DemandedMask.isSubsetOf(RHSKnown.Zero)) in SimplifyMultipleUseDemandedBits()
1221 if (DemandedMask.isSubsetOf(LHSKnown.Zero)) in SimplifyMultipleUseDemandedBits()
1227 unsigned NLZ = DemandedMask.countl_zero(); in SimplifyMultipleUseDemandedBits()
1247 unsigned NLZ = DemandedMask.countl_zero(); in SimplifyMultipleUseDemandedBits()
1269 if (DemandedMask.isSubsetOf(Known.Zero | Known.One)) in SimplifyMultipleUseDemandedBits()
1279 unsigned BitWidth = DemandedMask.getBitWidth(); in SimplifyMultipleUseDemandedBits()
1283 DemandedMask.isSubsetOf(APInt::getLowBitsSet( in SimplifyMultipleUseDemandedBits()
1296 if (DemandedMask.isSubsetOf(Known.Zero|Known.One)) in SimplifyMultipleUseDemandedBits()
1324 const APInt &ShlOp1, const APInt &DemandedMask, KnownBits &Known) { in simplifyShrShlDemandedBits() argument
1339 Known.Zero &= DemandedMask; in simplifyShrShlDemandedBits()
1356 if ((BitMask1 & DemandedMask) == (BitMask2 & DemandedMask)) { in simplifyShrShlDemandedBits()
1969 FPClassTest DemandedMask, in SimplifyDemandedUseFPClass() argument
1978 if (DemandedMask == fcNone) in SimplifyDemandedUseFPClass()
1989 getFPClassConstant(VTy, DemandedMask & Known.KnownFPClasses); in SimplifyDemandedUseFPClass()
1998 DemandedMask &= ~fcNan; in SimplifyDemandedUseFPClass()
2000 DemandedMask &= ~fcInf; in SimplifyDemandedUseFPClass()
2004 if (SimplifyDemandedFPClass(I, 0, llvm::fneg(DemandedMask), Known, in SimplifyDemandedUseFPClass()
2014 if (SimplifyDemandedFPClass(I, 0, llvm::inverse_fabs(DemandedMask), Known, in SimplifyDemandedUseFPClass()
2020 if (SimplifyDemandedFPClass(I, 0, DemandedMask, Known, Depth + 1)) in SimplifyDemandedUseFPClass()
2025 const FPClassTest DemandedMaskAnySign = llvm::unknown_sign(DemandedMask); in SimplifyDemandedUseFPClass()
2029 if ((DemandedMask & fcNegative) == DemandedMask) { in SimplifyDemandedUseFPClass()
2035 if ((DemandedMask & fcPositive) == DemandedMask) { in SimplifyDemandedUseFPClass()
2047 Known = computeKnownFPClass(I, ~DemandedMask, CxtI, Depth + 1); in SimplifyDemandedUseFPClass()
2055 if (SimplifyDemandedFPClass(I, 2, DemandedMask, KnownRHS, Depth + 1) || in SimplifyDemandedUseFPClass()
2056 SimplifyDemandedFPClass(I, 1, DemandedMask, KnownLHS, Depth + 1)) in SimplifyDemandedUseFPClass()
2059 if (KnownLHS.isKnownNever(DemandedMask)) in SimplifyDemandedUseFPClass()
2061 if (KnownRHS.isKnownNever(DemandedMask)) in SimplifyDemandedUseFPClass()
2069 Known = computeKnownFPClass(I, ~DemandedMask, CxtI, Depth + 1); in SimplifyDemandedUseFPClass()
2073 return getFPClassConstant(VTy, DemandedMask & Known.KnownFPClasses); in SimplifyDemandedUseFPClass()
2077 FPClassTest DemandedMask, in SimplifyDemandedFPClass() argument
2082 SimplifyDemandedUseFPClass(U.get(), DemandedMask, Known, I, Depth); in SimplifyDemandedFPClass()