我正在尝试将一些在windows上运行的代码移植到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
有人能帮我吗?我错过了什么?

最佳答案

_mm_dp_ps_mm_cvtepu8_epi32都是SSE4.1-因此您需要:

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

您还需要使用:
$ gcc -msse4.1 ...

关于c - 无法拨打_mm_dp_ps,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/17223092/

10-11 15:25