mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2025-02-19 23:29:20 +00:00
Disable an xform we've had for a long time, pow(x,0.5) -> sqrt.
This is not safe for all inputs. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@49458 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
parent
5d4ed3ba11
commit
0c1963099f
@ -1179,9 +1179,17 @@ public:
|
||||
// pow(x, 0.0) -> 1.0
|
||||
return ReplaceCallWith(CI, ConstantFP::get(CI->getType(), 1.0));
|
||||
} else if (Op2C->isExactlyValue(0.5)) {
|
||||
// FIXME: This is not safe for -0.0 and -inf. This can only be done when
|
||||
// 'unsafe' math optimizations are allowed.
|
||||
// x pow(x, 0.5) sqrt(x)
|
||||
// ---------------------------------------------
|
||||
// -0.0 +0.0 -0.0
|
||||
// -inf +inf NaN
|
||||
#if 0
|
||||
// pow(x, 0.5) -> sqrt(x)
|
||||
Value *Sqrt = CallInst::Create(SLC.get_sqrt(), Op1, "sqrt", CI);
|
||||
return ReplaceCallWith(CI, Sqrt);
|
||||
#endif
|
||||
} else if (Op2C->isExactlyValue(1.0)) {
|
||||
// pow(x, 1.0) -> x
|
||||
return ReplaceCallWith(CI, Op1);
|
||||
|
Loading…
x
Reference in New Issue
Block a user