Lines Matching full:lop
587 /// Return whether "X LOp (Y ROp Z)" is always equal to
588 /// "(X LOp Y) ROp (X LOp Z)".
589 static bool leftDistributesOverRight(Instruction::BinaryOps LOp, in leftDistributesOverRight() argument
593 if (LOp == Instruction::And) in leftDistributesOverRight()
597 if (LOp == Instruction::Or) in leftDistributesOverRight()
602 if (LOp == Instruction::Mul) in leftDistributesOverRight()
608 /// Return whether "(X LOp Y) ROp Z" is always equal to
609 /// "(X ROp Z) LOp (Y ROp Z)".
610 static bool rightDistributesOverLeft(Instruction::BinaryOps LOp, in rightDistributesOverLeft() argument
613 return leftDistributesOverRight(ROp, LOp); in rightDistributesOverLeft()
616 return Instruction::isBitwiseLogicOp(LOp) && Instruction::isShift(ROp); in rightDistributesOverLeft()