Home | History | Annotate | Download | only in InstCombine

Lines Matching full:known

81 /// value based on the demanded bits.  When this function is called, it is known
86 /// returns false after analyzing the expression and setting KnownOne and known
87 /// to be one in the expression. KnownZero contains all the bits that are known
163 // If all of the demanded bits are known 1 on one side, return the other.
173 // If all of the demanded bits in the inputs are known zeros, return zero.
185 // If all of the demanded bits are known zero on one side, return the
195 // If all of the potentially set bits on one side are known to be set on
210 // If all of the demanded bits are known zero on one side, return the
241 assert(!(RHSKnownZero & RHSKnownOne) && "Bits known to be one AND zero?");
242 assert(!(LHSKnownZero & LHSKnownOne) && "Bits known to be one AND zero?");
244 // If all of the demanded bits are known 1 on one side, return the other.
253 // If all of the demanded bits in the inputs are known zeros, return zero.
261 // Output known-1 bits are only known if set in both the LHS & RHS.
263 // Output known-0 are known to be clear if zero in either the LHS | RHS.
273 assert(!(RHSKnownZero & RHSKnownOne) && "Bits known to be one AND zero?");
274 assert(!(LHSKnownZero & LHSKnownOne) && "Bits known to be one AND zero?");
276 // If all of the demanded bits are known zero on one side, return the other.
285 // If all of the potentially set bits on one side are known to be set on
298 // Output known-0 bits are only known if clear in both the LHS & RHS.
300 // Output known-1 are known to be set if set in either the LHS | RHS.
309 assert(!(RHSKnownZero & RHSKnownOne) && "Bits known to be one AND zero?");
310 assert(!(LHSKnownZero & LHSKnownOne) && "Bits known to be one AND zero?");
312 // If all of the demanded bits are known zero on one side, return the other.
319 // If all of the demanded bits are known to be zero on one side or the
329 // If all of the demanded bits on one side are known, and all of the set
330 // bits on that side are also known to be set on the other side, turn this
334 // all known
349 // are flipping are known to be set, then the xor is just resetting those
372 // Output known-0 bits are known if clear or set in both the LHS & RHS.
374 // Output known-1 are known to be set if set in only one of the LHS, RHS.
384 assert(!(RHSKnownZero & RHSKnownOne) && "Bits known to be one AND zero?");
385 assert(!(LHSKnownZero & LHSKnownOne) && "Bits known to be one AND zero?");
392 // Only known if known in both the LHS and RHS.
407 assert(!(KnownZero & KnownOne) && "Bits known to be one AND zero?");
430 assert(!(KnownZero & KnownOne) && "Bits known to be one AND zero?");
445 assert(!(KnownZero & KnownOne) && "Bits known to be one AND zero?");
446 // The top bits are known to be zero.
472 assert(!(KnownZero & KnownOne) && "Bits known to be one AND zero?");
474 // If the sign bit of the input is known set or clear, then we know the
477 // If the input sign bit is known zero, or if the NewBits are not demanded
483 } else if (KnownOne[SrcBitWidth-1]) { // Input sign bit known set
506 // Find information about known zero/one bits in the input.
528 // We can say something about the output known-zero and known-one bits,
530 // unknowns. For example if the LHS is known to have at most the 0x0F0F0
531 // bits set and the RHS constant is 0x01001, then we know we have a known
532 // one mask of 0x00001 and a known zero mask of 0xE0F0E.
540 // Now that we know which bits have carries, compute the known-1/0 sets.
542 // Bits are known one if they are known zero in one operand and one in the
547 // Bits are known zero if they are known zero in both operands and there
582 // the known zeros and ones.
585 // Turn this into a xor if LHS is 2^n-1 and the remaining bits are known
621 assert(!(KnownZero & KnownOne) && "Bits known to be one AND zero?");
624 // low bits known zero.
645 assert(!(KnownZero & KnownOne) && "Bits known to be one AND zero?");
651 KnownZero |= HighBits; // high bits known zero.
690 assert(!(KnownZero & KnownOne) && "Bits known to be one AND zero?");
701 // If the input sign bit is known to be zero, or if none of the top bits
710 } else if ((KnownOne & SignBit) != 0) { // New bits are known one.
746 assert(!(KnownZero & KnownOne) && "Bits known to be one AND zero?");
755 // If it's known zero, our sign bit is also zero.
808 // TODO: Could compute known zero/one bits based on the input.
821 // If the client is only demanding bits that we know, return the known
1197 // like undef&0. The result is known zero, not undef.
1273 // like undef&0. The result is known zero, not undef.