在Free中,您可以通过https://www.freepascal.org/docs-html/current/prog/prog.html#QQ2-333-379中的条件定义确定代码是否使用SSE2/3/64指令编译,表G.3:使用FPC编译时可能定义
FPUSSE2 SSE 2 instructions on Intel I386 and higher.
FPUSSE3 SSE 3 instructions on Intel I386 and higher, AMD64.
FPUSSE64 SSE64 FPU on Intel I386 and higher, AMD64. 我知道Delphi 64位编译器在Win RTL中使用SSE,但我的问题是:
在Delphi中是否有已知的方法在编译时检查,如果一个单元是用SSE指令编译的,特别是如果
a*b + c是用硬件fma指令计算的?
发布于 2017-10-30 20:37:44
在Delphi中是否有已知的方法在编译时检查一个单元是否使用SSE指令编译?
在Intel平台上,如果定义了CPUX64条件,则编译器使用SSE指令生成浮点代码。否则,生成x87指令。
没有Delphi编译器使用FMA指令生成代码。自dcc64首次在XE2中发布以来,它使用的浮点码元没有发生实质性的变化。
https://stackoverflow.com/questions/47023549
复制相似问题