Lines Matching refs:Known
38 APInt Known = std::move(LHSKnownUnion) & RHSKnownUnion & CarryKnownUnion; in computeForAddCarry() local
40 assert((PossibleSumZero & Known) == (PossibleSumOne & Known) && in computeForAddCarry()
45 KnownOut.Zero = ~std::move(PossibleSumZero) & Known; in computeForAddCarry()
46 KnownOut.One = std::move(PossibleSumOne) & Known; in computeForAddCarry()
190 KnownBits Known; in shl() local
192 Known.Zero = LHS.Zero.ushl_ov(ShiftAmt, ShiftedOutZero); in shl()
193 Known.Zero.setLowBits(ShiftAmt); in shl()
194 Known.One = LHS.One.ushl_ov(ShiftAmt, ShiftedOutOne); in shl()
203 Known.makeNonNegative(); in shl()
205 Known.makeNegative(); in shl()
207 return Known; in shl()
211 KnownBits Known(BitWidth); in shl() local
216 Known.Zero.setLowBits(MinShiftAmount); in shl()
218 Known.makeNonNegative(); in shl()
219 return Known; in shl()
237 Known.Zero.setLowBits(LHS.countMinTrailingZeros()); in shl()
239 Known.One.setSignBit(); in shl()
242 Known.makeNonNegative(); in shl()
244 Known.makeNegative(); in shl()
246 return Known; in shl()
252 Known.Zero.setAllBits(); in shl()
253 Known.One.setAllBits(); in shl()
260 Known = Known.intersectWith(ShiftByConst(LHS, ShiftAmt)); in shl()
261 if (Known.isUnknown()) in shl()
266 if (Known.hasConflict()) in shl()
267 Known.setAllZero(); in shl()
268 return Known; in shl()
275 KnownBits Known = LHS; in lshr() local
276 Known.Zero.lshrInPlace(ShiftAmt); in lshr()
277 Known.One.lshrInPlace(ShiftAmt); in lshr()
279 Known.Zero.setHighBits(ShiftAmt); in lshr()
280 return Known; in lshr()
284 KnownBits Known(BitWidth); in lshr() local
289 Known.Zero.setHighBits(MinShiftAmount); in lshr()
290 return Known; in lshr()
298 Known.Zero.setAllBits(); in lshr()
299 Known.One.setAllBits(); in lshr()
306 Known = Known.intersectWith(ShiftByConst(LHS, ShiftAmt)); in lshr()
307 if (Known.isUnknown()) in lshr()
312 if (Known.hasConflict()) in lshr()
313 Known.setAllZero(); in lshr()
314 return Known; in lshr()
321 KnownBits Known = LHS; in ashr() local
322 Known.Zero.ashrInPlace(ShiftAmt); in ashr()
323 Known.One.ashrInPlace(ShiftAmt); in ashr()
324 return Known; in ashr()
328 KnownBits Known(BitWidth); in ashr() local
335 Known.setAllZero(); in ashr()
336 return Known; in ashr()
338 return Known; in ashr()
346 Known.Zero.setAllBits(); in ashr()
347 Known.One.setAllBits(); in ashr()
354 Known = Known.intersectWith(ShiftByConst(LHS, ShiftAmt)); in ashr()
355 if (Known.isUnknown()) in ashr()
360 if (Known.hasConflict()) in ashr()
361 Known.setAllZero(); in ashr()
362 return Known; in ashr()
763 static KnownBits divComputeLowBit(KnownBits Known, const KnownBits &LHS, in divComputeLowBit() argument
767 return Known; in divComputeLowBit()
773 Known.One.setBit(0); in divComputeLowBit()
781 Known.Zero.setLowBits(MinTZ); in divComputeLowBit()
784 Known.One.setBit(MinTZ); in divComputeLowBit()
788 Known.setAllZero(); in divComputeLowBit()
793 if (Known.hasConflict()) in divComputeLowBit()
794 Known.setAllZero(); in divComputeLowBit()
796 return Known; in divComputeLowBit()
807 KnownBits Known(BitWidth); in sdiv() local
812 Known.setAllZero(); in sdiv()
813 return Known; in sdiv()
845 Known.Zero.setHighBits(LeadZ); in sdiv()
848 Known.One.setHighBits(LeadO); in sdiv()
852 Known = divComputeLowBit(Known, LHS, RHS, Exact); in sdiv()
854 assert(!Known.hasConflict() && "Bad Output"); in sdiv()
855 return Known; in sdiv()
862 KnownBits Known(BitWidth); in udiv() local
867 Known.setAllZero(); in udiv()
868 return Known; in udiv()
880 Known.Zero.setHighBits(LeadZ); in udiv()
881 Known = divComputeLowBit(Known, LHS, RHS, Exact); in udiv()
883 assert(!Known.hasConflict() && "Bad Output"); in udiv()
884 return Known; in udiv()
903 KnownBits Known = remGetLowBits(LHS, RHS); in urem() local
907 Known.Zero |= HighBits; in urem()
908 return Known; in urem()
915 Known.Zero.setHighBits(Leaders); in urem()
916 return Known; in urem()
922 KnownBits Known = remGetLowBits(LHS, RHS); in srem() local
929 Known.Zero |= ~LowBits; in srem()
934 Known.One |= ~LowBits; in srem()
935 return Known; in srem()
942 Known.Zero.setHighBits(LHS.countMinLeadingZeros()); in srem()
943 return Known; in srem()
973 KnownBits Known(Zero, APInt(BitWidth, 0)); in blsi() local
975 Known.Zero.setBitsFrom(std::min(Max + 1, BitWidth)); in blsi()
978 Known.One.setBit(Max); in blsi()
979 return Known; in blsi()
984 KnownBits Known(BitWidth); in blsmsk() local
986 Known.Zero.setBitsFrom(std::min(Max + 1, BitWidth)); in blsmsk()
988 Known.One.setLowBits(std::min(Min + 1, BitWidth)); in blsmsk()
989 return Known; in blsmsk()