为什么GCC更喜欢AVX版本的FP指令?

时间:2016-06-01 16:11:32

标签: gcc assembly x86-64

在编译具有AVX的CPU时(例如使用-march=sandy-bridge),GCC似乎总是优先于SSE版本的AVX版本的简单标量浮点指令。例如,它使用vmulsd代替mulsd

我想知道,是否存在任何与性能相关的特定原因,或者只是GCC的一些实现细节使其更容易/更自然地安排这些指令?从我所掌握的来源(主要是Agner的指令表)中可以看出,AVX和SSE指令的性能似乎相同。我意识到AVX指令是三操作数,但GCC似乎几乎总是只使用相同的目标寄存器作为源操作数之一。

0 个答案:

没有答案