2013-06-20 3 views
0

opensuse 12.1로 실행하는 데 사용했던 코드를 이식하려고합니다. 하지만 SSE 명령을 사용하는 코드 섹션을 컴파일하는 데 문제가 있습니다._mm_dp_ps를 호출 할 수 없음

opensuse는 인텔 코어 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에 대해서도 불평합니다.

아무도 도와 줄 수 있습니까? 내가 뭘 놓치고 있니?

+2

가 적절한 헤더를 포함 적이 있습니까? 또한 SSE4 지원을 사용하려면 컴파일러 플래그를 지정해야 할 수도 있습니다. –

답변

1

_mm_dp_ps_mm_cvtepu8_epi32 모두 SSE4.1입니다 - 그래서 당신이 필요합니다

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

당신은 또한 컴파일해야합니다

$ gcc -msse4.1 ... 
+0

Paul, 빠른 답변에 감사드립니다. 내가 포함 및 컴파일 플래그를 모두 가지고 있지만 컴파일러는 여전히 그것을 찾을 수 없습니다. – ABS

+0

내장 함수 오류가 발생하기 전에 다른 경고 또는 오류가 표시됩니까? 예 : #include 파일이 누락 되었습니까? –

+0

경고가 있지만 이러한 함수를 호출하는 함수에는 아무 것도 없습니다. – ABS