Я пытаюсь использовать инструкцию умножения без переноса, найденную на новом процессоре intel / amd _mm_clmulepi64_si128 ()
Я включил заголовочный файл, и я компилирую с параметрами -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;
}