Я пытаюсь проверить некоторые из Intel Intrinsics, чтобы увидеть, как они работают. Таким образом, я создал функцию, чтобы сделать это для меня, и это код:Проблема с __m256 типа intel intrinsics
void test_intel_256()
{
__m256 res,vec1,vec2;
__M256_MM_SET_PS(vec1, 7.0, 7.0, 7.0, 7.0, 7.0, 7.0, 7.0, 7.0);
__M256_MM_SET_PS(vec1, 2.0, 2.0, 2.0, 2.0, 2.0, 2.0, 2.0, 2.0);
__M256_MM_ADD_PS(res,vec1,vec2);
if (res[0] ==9 && res[1] ==9 && res[2] ==9 && res[3] ==9
&& res[4] ==9 && res[5] ==9 && res[6] ==9 && res[7] ==9)
printf("Addition : OK!\n");
else
printf("Addition : FAILED!\n");
}
Но тогда я получаю эти ошибки:
error: unknown type name ‘__m256’
error: subscripted value is neither array nor pointer nor vector
error: subscripted value is neither array nor pointer nor vector
error: subscripted value is neither array nor pointer nor vector
error: subscripted value is neither array nor pointer nor vector
error: subscripted value is neither array nor pointer nor vector
error: subscripted value is neither array nor pointer nor vector
error: subscripted value is neither array nor pointer nor vector
error: subscripted value is neither array nor pointer nor vector
error: subscripted value is neither array nor pointer nor vector
Это означает, что компилятор не распознает тип __m256 и вследствие этого он не может видеть res как массив поплавков. Я включаю эти библиотеки mmintrin.h, emmintrin.h, xmmintrin.h и я использую затмение Марс
Так что я хочу знать, является ли проблема с компилятором или аппаратное обеспечение или что-то еще? и как я могу его решить? Спасибо!
Вы уверены, что ваш процессор поддерживает AVX? Какой процессор вы используете? –
@ DanielMargosian: Даже если их процессор не поддерживает AVX, компилятор все равно должен его скомпилировать. (Cross сборник есть). – zindorsky
Мой процессор ** Intel® Core ™ i7-4700MQ CPU @ 2.40GHz × 8 ** и поддерживает ** SSE4.1/4.2, AVX 2.0 ** –