Home | History | Annotate | Download | only in Scalar

Lines Matching defs:Pow

844 // 'pow*' Optimizations
858 if (Op1C->isExactlyValue(1.0)) // pow(1.0, x) -> 1.0
860 if (Op1C->isExactlyValue(2.0)) // pow(2.0, x) -> exp2(x)
867 if (Op2C->getValueAPF().isZero()) // pow(x, 0.0) -> 1.0
871 // Expand pow(x, 0.5) to (x == -infinity ? +infinity : fabs(sqrt(x))).
872 // This is faster than calling pow, and still handles negative zero
887 if (Op2C->isExactlyValue(1.0)) // pow(x, 1.0) -> x
889 if (Op2C->isExactlyValue(2.0)) // pow(x, 2.0) -> x*x
891 if (Op2C->isExactlyValue(-1.0)) // pow(x, -1.0) -> 1.0/x
1460 PowOpt Pow; Exp2Opt Exp2; UnaryDoubleFPOpt UnaryDoubleFP;
1538 Optimizations["powf"] = &Pow;
1539 Optimizations["pow"] = &Pow;
1540 Optimizations["powl"] = &Pow;
1541 Optimizations["llvm.pow.f32"] = &Pow;
1542 Optimizations["llvm.pow.f64"] = &Pow;
1543 Optimizations["llvm.pow.f80"] = &Pow;
1544 Optimizations["llvm.pow.f128"] = &Pow;
1545 Optimizations["llvm.pow.ppcf128"] = &Pow;
2348 // * cbrt(sqrt(x)) -> pow(x,1/6)
2349 // * cbrt(sqrt(x)) -> pow(x,1/9)
2364 // * log(pow(x,y)) -> y*log(x)
2369 // pow, powf, powl:
2370 // * pow(exp(x),y) -> exp(x*y)
2371 // * pow(sqrt(x),y) -> pow(x,y*0.5)
2372 // * pow(pow(x,y),z)-> pow
2383 // * sqrt(Nroot(x)) -> pow(x,1/(2*N))
2384 // * sqrt(pow(x,y)) -> pow(|x|,y*0.5)