![]() |
1
8
你不一定会失去精确性
如果您有一段不希望GCC重新排序或简化计算的特定代码,可以使用
例如,以下代码对
在x86_64上,您可以使用这个
不幸的是,您需要为每个体系结构调整这一点。在PowerPC上使用
|
![]() |
2
2
很可能是因为矢量化意味着您可能有不同的结果,或者可能意味着您错过了浮点信号/异常。 如果您编译的是32位x86,那么gcc和g++默认使用x87进行浮点运算,而64位的gcc和g++默认使用sse,但是x87可以并且将为相同的计算生成不同的值,因此,如果不能保证得到相同的结果,那么g++不太可能考虑向量化,除非使用-ffast math或som它打开的标志中的e。 基本上,归根结底,矢量化代码的浮点环境可能与非矢量化代码的浮点环境不同,有时在一些重要的方面,如果差异对您不重要,比如
但首先要查找这些选项,确保它们不会影响程序的正确性。
|
![]() |
3
0
因为
|