2013-02-24 110 views
0

我希望我的編譯器只使用指定版本的SSE指令。限制SSE指令集

現在看起來像-msse2 -mno-sse3 -mno-sse4 -mno-sse41 -mno-sse42這樣做,但我正在尋找類似-monly-sse2的東西。

+0

這是gcc嗎?如果是這樣你可以添加標籤,它將吸引合適的人羣... – rene 2013-02-24 13:25:05

+0

@rene解決方案應該與gcc和叮噹 – Kentzo 2013-02-24 13:30:36

回答

1

除非你指定-msse3/-march=<cpu-with-sse3>只有SSE2將用於x86-64(甚至更低的x86指令集)。

+0

但是,如果我指定-msse3?我如何告訴編譯器不要使用更新的指令? – Kentzo 2013-02-24 14:16:18

+1

它將使用SSE3,但不使用SSSE3,SSE4.1,SSE4A或任何新的例外。但是,它會使用SSE和SSE2。 – 2013-02-24 15:49:50

+0

不幸的是,這不是我所經歷的。例如。當我僅用'-msse3'編譯python時,結果二進制文件包含像'vroundsd'這樣的SSE4指令。但是,如果我通過附加'-mno-sse4'來明確禁用SSE4,則生成的二進制文件不包含這些指令。我的編譯器是'Apple LLVM 4.2版(clang-425.0.24)(基於LLVM 3.2svn)' – Kentzo 2013-02-24 16:36:28