2012-02-20 3 views
1

우분투 리눅스 시스템에서 SSE에 문제가 있습니다. SSE 명령은 어떻게 사용할 수 있습니까?

gcc -o test test.c -msse4.1 

리눅스

msdn(sse4) 사용 SSE4.1 작업에

예제 소스 코드를 다음 오류 메시지 :

error: request for member 'm128i_u16' in something not a structure or union 

가 어떻게이 예제 코드를 사용할 수 있습니까? 또는 예제 코드에서 사용할 수 있습니까?

+10

GCC에서 * Microsoft 컴파일러 * 내장 함수를 사용하는 데 문제가 있습니다. 너를 놀라게하니? –

답변

2

이것은 Microsoft 고유의 내장 함수가 아니며 데이터 유형에 관한 것입니다. 실제 내장 함수는 두 컴파일러에서 모두 100 % 동일하며 사실상 표준입니다 (Intel에서 파생 됨).

직면 한 문제는 __m128i 유형이 - m128i_u16과 같은 필드를 포함하는 MSVC의 경우 union 인 경우 편리하다는 것입니다. 링크 된 코드 샘플에서는이를 가정합니다.

gcc 미만, __m128i아니요,입니다. 따라서 놀랍지 않게도 이러한 필드가 없습니다. 이것은 정말 단점이 아닙니다. 이와 같은 유니온의 필드에 액세스하면 처음에는 SSE를 사용했을 때 얻을 수있는 이익이 없어지기 때문에 위와 같은 데모 스 니펫 이외에는 (거의) 이러한 유형의 맡은 일.

관련 문제