Home | History | Annotate | Download | only in InstCombine

Lines Matching refs:Or

85 /// to replace V with a constant or one of its operands. In such cases, this
160 // 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.
187 // other. These bits cannot contribute to the result of the 'or' in this
205 // We can simplify (X^Y) -> X or Y in the user's context if we know that
206 // only bits from X or Y are demanded.
236 // If either the LHS or the RHS are Zero, the result is zero.
267 case Instruction::Or:
268 // If either the LHS or the RHS are One, the result is One.
278 // These bits cannot contribute to the result of the 'or'.
320 // If all of the demanded bits are known to be zero on one side or the
321 // other, turn this into an *inclusive* or.
324 Instruction *Or =
327 return InsertNewInstWith(Or, *I);
373 // Output known-0 bits are known if clear or set in both the LHS & RHS.
413 return nullptr; // vector->int or fp->int?
475 // If the sign bit of the input is known set or clear, then we know the
478 // If the input sign bit is known zero, or if the NewBits are not demanded
521 // Turn it into OR if input bits are zero.
523 Instruction *Or =
526 return InsertNewInstWith(Or, *I);
553 // the high bits of its LHS or RHS.
569 // the high bits of its LHS or RHS.
702 // If the input sign bit is known to be zero, or if none of the top bits
737 // If LHS is non-negative or has all low bits zero, then the upper bits
796 // Replace this with either a left or right shift to get the byte into
830 /// "E2 = X << (C2 - C1)" or "E2 = X >> (C1 - C2)", depending on the sign
1188 case Instruction::Or: