Home | History | Annotate | Download | only in InstCombine

Lines Matching defs:Log2

407 /// Detect pattern log2(Y * 0.5) with corresponding fast math flags.
408 static void detectLog2OfHalf(Value *&Op, Value *&Y, IntrinsicInst *&Log2) {
415 if (II->getIntrinsicID() != Intrinsic::log2 || !II->hasUnsafeAlgebra())
417 Log2 = II;
636 // X * log2(0.5*Y) = X*log2(Y) - X
640 IntrinsicInst *Log2;
641 detectLog2OfHalf(Op0, OpY, Log2);
645 detectLog2OfHalf(Op1, OpY, Log2);
653 Builder->setFastMathFlags(Log2->getFastMathFlags());
654 Log2->setArgOperand(0, OpY);
655 Value *FMulVal = Builder->CreateFMul(OpX, Log2);
1148 // sdiv exact X, C --> ashr exact X, log2(C)