0

我正在尝试将一些曾经在 window 上运行的代码移植到 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

谁能帮帮我吗?我错过了什么?

4

1 回答 1

1

_mm_dp_ps并且_mm_cvtepu8_epi32都是 SSE4.1 - 所以你需要:

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

你还需要编译:

$ gcc -msse4.1 ...
于 2013-06-20T21:13:22.067 回答