Lines Matching full:rop
587 /// Return whether "X LOp (Y ROp Z)" is always equal to
588 /// "(X LOp Y) ROp (X LOp Z)".
590 Instruction::BinaryOps ROp) { in leftDistributesOverRight() argument
594 return ROp == Instruction::Or || ROp == Instruction::Xor; in leftDistributesOverRight()
598 return ROp == Instruction::And; in leftDistributesOverRight()
603 return ROp == Instruction::Add || ROp == Instruction::Sub; in leftDistributesOverRight()
608 /// Return whether "(X LOp Y) ROp Z" is always equal to
609 /// "(X ROp Z) LOp (Y ROp Z)".
611 Instruction::BinaryOps ROp) { in rightDistributesOverLeft() argument
612 if (Instruction::isCommutative(ROp)) in rightDistributesOverLeft()
613 return leftDistributesOverRight(ROp, LOp); in rightDistributesOverLeft()
616 return Instruction::isBitwiseLogicOp(LOp) && Instruction::isShift(ROp); in rightDistributesOverLeft()