Home | History | Annotate | Download | only in InstCombine

Lines Matching refs:UDiv

10 // This file implements the visit functions for mul, fmul, sdiv, udiv, fdiv,
216 (BO->getOpcode() != Instruction::UDiv &&
224 (BO->getOpcode() == Instruction::UDiv ||
237 if (BO->getOpcode() == Instruction::UDiv)
669 /// instructions (udiv and sdiv). It is called by the visitors to those integer
698 if (!RHS->isZero()) { // avoid X udiv 0
765 // X udiv 2^C -> X >> C
775 // X udiv C, where C >= signbit
784 // X udiv (C1 << N), where C1 is "1<<C2" --> X >> (N+C2)
803 // \brief Recursively visits the possible right hand operands of a udiv
805 // replace the udiv with something simpler. If we find that an operand is not
806 // able to simplify the udiv, we abort the entire transformation.
818 // X udiv C, where C >= signbit
824 // X udiv (C1 << N), where C1 is "1<<C2" --> X >> (N+C2)
855 // (x lshr C1) udiv C2 --> x udiv (C2 << C1)
865 // (zext A) udiv (zext B) --> zext (A udiv B)
872 // (LHS udiv (select (select (...)))) -> (LHS >> (select (select (...))))
894 // Otherwise, we insert it before the UDiv and record it so that we may
937 // unsigned inputs), turn this into a udiv.
942 // X sdiv Y -> X udiv Y, iff X and Y don't have sign bit set
947 // X sdiv (1 << Y) -> X udiv (1 << Y) ( -> X u>> Y)
949 // INT_MIN, and X sdiv INT_MIN == X udiv INT_MIN == 0 if X doesn't have