-freciprocal-math
在GCC改变了下面的代码
double a = b / c;
至
double tmp = 1/c;
double a = b * tmp;
在GCC手册,它说,这样的优化是不安全的,不粘连,IEEE标准。 但我想不出一个例子。 你能给这个例子吗?
-freciprocal-math
在GCC改变了下面的代码
double a = b / c;
至
double tmp = 1/c;
double a = b * tmp;
在GCC手册,它说,这样的优化是不安全的,不粘连,IEEE标准。 但我想不出一个例子。 你能给这个例子吗?
除以10,并通过0.1000000000000000055511151231257827021181583404541015625相乘是不一样的东西。
也许,我想不同的编译器标志,但...
某些处理器具有计算近似倒数指令。 RCPSS OM在x86(SIMD指令)想到的; 它具有一个相对误差1.5 * 2 ^ -12。 使用该标志可以让编译器来选择一个大约为倒数指令,这可能不是取决于你的应用程序做一个安全的事情。
希望这可以帮助。