Lines Matching full:one

29   APInt CarryKnownOne = PossibleSumOne ^ LHS.One ^ RHS.One;
32 APInt LHSKnownUnion = LHS.Zero | LHS.One;
33 APInt RHSKnownUnion = RHS.Zero | RHS.One;
40 KnownOut.One = std::move(PossibleSumOne) & Known;
48 LHS, RHS, Carry.Zero.getBoolValue(), Carry.One.getBoolValue());
69 std::swap(NotRHS.Zero, NotRHS.One);
86 KnownOut.One.setBits(BitWidth - 1 - NumBits, BitWidth - 1);
88 KnownOut.One.setHighBits(MinVal.countl_one());
120 KnownOut.One.setBits(BitWidth - 1 - NumBits, BitWidth - 1);
127 KnownOut.One.setSignBit();
143 std::swap(RHS.Zero, RHS.One);
145 /*CarryZero=*/Borrow.One.getBoolValue(),
159 Result.One = One << ExtBits;
161 Result.One.ashrInPlace(ExtBits);
175 return KnownBits(Zero, One | MaskedVal);
198 auto Flip = [](const KnownBits &Val) { return KnownBits(Val.One, Val.Zero); };
207 APInt One = Val.One;
208 Zero.setBitVal(SignBitPosition, Val.One[SignBitPosition]);
209 One.setBitVal(SignBitPosition, Val.Zero[SignBitPosition]);
210 return KnownBits(Zero, One);
219 APInt Zero = Val.One;
220 APInt One = Val.Zero;
222 One.setBitVal(SignBitPosition, Val.One[SignBitPosition]);
223 return KnownBits(Zero, One);
266 Arg->Zero.setBitVal(SignBitPosition, Arg->One[SignBitPosition]);
267 Arg->One.setBitVal(SignBitPosition, Tmp);
293 Known.One = LHS.One.ushl_ov(ShiftAmt, ShiftedOutOne);
338 Known.One.setSignBit();
350 unsigned ShiftAmtOneMask = RHS.One.zextOrTrunc(32).getZExtValue();
352 Known.One.setAllBits();
376 Known.One.lshrInPlace(ShiftAmt);
408 unsigned ShiftAmtOneMask = RHS.One.zextOrTrunc(32).getZExtValue();
410 Known.One.setAllBits();
434 Known.One.ashrInPlace(ShiftAmt);
468 unsigned ShiftAmtOneMask = RHS.One.zextOrTrunc(32).getZExtValue();
470 Known.One.setAllBits();
491 if (LHS.One.intersects(RHS.Zero) || RHS.One.intersects(LHS.Zero))
562 // all the rest of the bits except one to be zero. Since we have
563 // IntMinIsPoison, that final bit MUST be a one, as otherwise the input is
566 Tmp.One.setBit(countMinTrailingZeros());
572 // One more special case for IntMinIsPoison. If we don't know any ones other
575 // for certain those high-zero bits will end up as one. This is because,
581 Tmp.One.clearSignBit();
583 KnownAbs.One.setBits(getBitWidth() - Tmp.countMinLeadingZeros(),
594 KnownAbs.One.setBit(MaxTZ);
599 if (IntMinIsPoison || (!One.isZero() && !One.isMinSignedValue())) {
600 KnownAbs.One.clearSignBit();
617 return K.Zero[BitWidth - 1] || K.One[BitWidth - 1];
663 Res.One.clearSignBit();
668 Res.One.setSignBit();
674 Res.One.setSignBit();
678 Res.One.clearSignBit();
698 Res.One |= Mask;
702 Res.One &= ~Mask;
729 Res.One = C;
739 Res.One.clearLowBits(BitWidth - 1);
747 Res.One.clearAllBits();
807 // computes one more leading zero.
860 const APInt &Bottom0 = LHS.One;
861 const APInt &Bottom1 = RHS.One;
865 unsigned TrailBitsKnown0 = (LHS.Zero | LHS.One).countr_one();
866 unsigned TrailBitsKnown1 = (RHS.Zero | RHS.One).countr_one();
882 Res.One = BottomKnown.getLoBits(ResultBitsKnown);
886 assert(Res.One[1] == 0 &&
919 if (LHS.One[0])
920 Known.One.setBit(0);
931 Known.One.setBit(MinTZ);
994 Known.One.setHighBits(LeadO);
1035 APInt OnesMask = LHS.One & Mask;
1070 // the upper bits are all one.
1071 if (LHS.isNegative() && LowBits.intersects(LHS.One))
1072 Known.One |= ~LowBits;
1088 One &= RHS.One;
1096 One |= RHS.One;
1102 APInt Z = (Zero & RHS.Zero) | (One & RHS.One);
1103 // Result bit is 1 if one operand bit is 0 and the other is 1.
1104 One = (Zero & RHS.One) | (One & RHS.Zero);
1116 Known.One.setBit(Max);
1126 Known.One.setLowBits(std::min(Min + 1, BitWidth));
1134 if (Zero[N] && One[N])
1138 else if (One[N])