Home | History | Annotate | Download | only in InstCombine

Lines Matching refs:Or

83 /// to replace V with a constant or one of its operands. In such cases, this
158 // If either the LHS or the RHS are Zero, the result is zero.
178 } else if (I->getOpcode() == Instruction::Or) {
179 // We can simplify (X|Y) -> X or Y in the user's context if we know that
180 // only bits from X or Y are demanded.
182 // If either the LHS or the RHS are One, the result is One.
189 // other. These bits cannot contribute to the result of the 'or' in this
225 // If either the LHS or the RHS are Zero, the result is zero.
256 case Instruction::Or:
257 // If either the LHS or the RHS are One, the result is One.
267 // These bits cannot contribute to the result of the 'or'.
309 // If all of the demanded bits are known to be zero on one side or the
310 // other, turn this into an *inclusive* or.
313 Instruction *Or =
316 return InsertNewInstWith(Or, *I);
362 // Output known-0 bits are known if clear or set in both the LHS & RHS.
402 return 0; // vector->int or fp->int?
464 // If the sign bit of the input is known set or clear, then we know the
467 // If the input sign bit is known zero, or if the NewBits are not demanded
510 // Turn it into OR if input bits are zero.
512 Instruction *Or =
515 return InsertNewInstWith(Or, *I);
542 // the high bits of its LHS or RHS.
558 // the high bits of its LHS or RHS.
669 // If the input sign bit is known to be zero, or if none of the top bits
703 // If LHS is non-negative or has all low bits zero, then the upper bits
764 // Replace this with either a left or right shift to get the byte into
1061 case Instruction::Or: