无法调用_mm_dp_ps

时间:2013-06-20 20:23:40

标签: c linux eclipse-cdt sse opensuse

我正在尝试将一些曾经在窗口上运行的代码移植到opensuse 12.1。但是我在编译使用SSE指令的代码部分时遇到问题。

opensuse在带有这些标志的intel Core i7上运行: fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe syscall nx pdpe1gb rdtscp lm constant_tsc arch_perfmon pebs bts rep_good nopl xtopology nonstop_tsc aperfmperf pni pclmulqdq dtes64 monitor ds_cpl vmx est tm2 ssse3 cx16 xtpr pdcm sse4_1 sse4_2 popcnt aes lahf_lm ida arat dts tpr_shadow vnmi flexpriority ept vpid

大多数SSE指令都很好,但编译器似乎无法知道:_mm_dp_ps。 它还抱怨__builtin_ia32_pshufd_mm_cvtepu8_epi32

任何人都可以帮助我吗?我错过了什么?

1 个答案:

答案 0 :(得分:1)

_mm_dp_ps_mm_cvtepu8_epi32都是SSE4.1 - 所以你需要:

#include <smmintrin.h> // SSE 4.1 intrinsics

你还需要编译:

$ gcc -msse4.1 ...