내가 헤더 파일을 포함했다 _mm_clmulepi64_si128()
오류 : _mm_clmulepi64_si128은이 범위에서 선언되지 않은
새로운 인텔/AMD 프로세서에있는 올림이없는 곱셈 명령을 사용하려고하고 있는데이 -maes -msse4
옵션을 사용하여 컴파일하고 ...하지만 난 여전히 말하는 오류를 얻을 :
오류 : _mm_clmulepi64_si128이 범위
#include <immintrin.h>
#include <wmmintrin.h>
int main()
{
__m128i a;
__m128i b;
a.m128i_i64[1] = 2;
a.m128i_i64[0] = -1284;
b.m128i_i64[1] = 25;
b.m128i_i64[0] = 65535;
const int product1 = 0x11;
const int product2 = 0x00;
const int product3 = 0xF2;
int expect1 = int (a.m128i_i64[1] * b.m128i_i64[1]);
int expect2 = int (a.m128i_i64[0] * b.m128i_i64[0]);
int expect3 = int (a.m128i_i64[0] * b.m128i_i64[1]);
__m128i result1 = _mm_clmulepi64_si128(a, b, product1);
__m128i result2 = _mm_clmulepi64_si128(a, b, product2);
__m128i result3 = _mm_clmulepi64_si128(a, b, product3);
return 0;
}
어떤 운영 체제가 어떤 버전의 컴파일러입니까? 함수가 선언되어 있다면'immintrin.h '를 보았습니까? 사용하는 컴파일러 및 헤더 파일의 버전이이 명령을 지원하는지 확인하십시오? (컴파일러의 문서를보십시오). – Jesper
이것은 C++보다 C가 아닙니다. 유감스럽게도 pedant ... – Dennis
OS는 우분투 .. 컴파일러는 g ++ 4.6.1 .. 그리고 데니스, 네 말이 맞아 .. 그게 .. C ... 나는 틀린 것을 붙여 넣었다 ... 그 C 버전은 설명서 ... 내 버전에 문제가 있는지 확인하기 위해 컴파일 중이었습니다 ...하지만 두 파일에서 같은 오류가 발생했습니다 ... 또 다른 헤더 파일이 있는데, 그 이유는 무엇 때문에 int가 먼저 표시되지 않습니다. 게시물 ... (wmmintrin.h). – projection