其實我有2個問題:如何測試,如果你的Linux支持SSE2
- 是SSE2兼容CPU一個問題,或者編譯器的問題?
- 如何檢查您的CPU或編譯器是否支持SSE2?
我使用的GCC版本:
gcc (GCC) 4.5.1
當我試圖編譯代碼,它給我這個錯誤:
$ gcc -O3 -msse2 -fno-strict-aliasing -DHAVE_SSE2=1 -DMEXP=19937 -o test-sse2-M19937 test.c
cc1: error: unrecognized command line option "-msse2"
而且cpuinfo
表明這一點:
processor : 0
vendor : GenuineIntel
arch : IA-64
family : 32
model : 1
model name : Dual-Core Intel(R) Itanium(R) Processor 9140M
revision : 1
archrev : 0
features : branchlong, 16-byte atomic ops
cpu number : 0
cpu regs : 4
cpu MHz : 1669.000503
itc MHz : 416.875000
BogoMIPS : 3325.95
siblings : 2
physical id: 0
core id : 0
thread id : 0
您使用的是默認情況下有針對性地IA64一個GCC。 IA64指令集與x86的指令集完全不同。如果你想爲x86編譯,你需要基本上交叉編譯你的二進制文件。 – thkala 2010-11-17 10:21:03
您還有一個Itanium2處理器,它沒有x86指令集的本機支持。即使你爲X86交叉編譯你的二進制文件,在這個系統上測試它也很困難,如果不是不可能的話。 – thkala 2010-11-17 10:24:40
你用什麼Linux發行版? – thkala 2010-11-17 10:36:55