Im учится использовать intrinsics вместо asm-inlining. Вчера они работали, но сегодня я всегда получаю ошибку. Ничего не изменил.C++ Внутренний не объявлен
#include <iostream>
#include <intrin.h> // immintrin.h, smmintrin.h ... tried all, never worked
using namespace std;
int main()
{
_m256_zeroupper(); // __mm256_zeroupper(); does not work too
_mm128 x; // __mm128 x; does not work too
_mm256 y; // __mm256 y; does not work too
_m256_zeroupper(); // __mm256_zeroupper(); does not work too
cout << "Hello world!" << endl;
return 0;
}
Вот ошибки. Я пробовал все файлы заголовков для разных встроенных функций, но ошибки были одинаковыми. Также переустановил gcc, но не работал.
Где я ошибаюсь? Что мне нужно добавить, чтобы фактически объявить эти внутренние переменные и функции?
C:\indirmeDenemesi\hello_intrin\main.cpp||In function 'int main()':|
C:\indirmeDenemesi\hello_intrin\main.cpp|8|error: '_mm256_zeroupper' was not declared in this scope|
C:\indirmeDenemesi\hello_intrin\main.cpp|9|error: '_mm128' was not declared in this scope|
C:\indirmeDenemesi\hello_intrin\main.cpp|9|error: expected ';' before 'x'|
C:\indirmeDenemesi\hello_intrin\main.cpp|10|error: '_mm256' was not declared in this scope|
C:\indirmeDenemesi\hello_intrin\main.cpp|10|error: expected ';' before 'y'|
||=== Build finished: 5 errors, 0 warnings (0 minutes, 0 seconds) ===|
Использование 64-разрядной последней версии gcc на 64-битном процессоре с 64-битными окнами. Процессор FX8150. Tried -march = bdver1 -mtune = bdver1, и это вызвало сотни ошибок нежелательной почты.
Все это означает, что мой процессор умирает?
Редактировать: Некоторые другие проекты работают сейчас, но я ничего не менял. Это должно быть специфическое для проекта. Использование кода :: блоков, и когда я нажимаю правой кнопкой мыши на заголовок и выбираю «открывать», он дает ошибку «не удалось найти», но не дает никакой ошибки при компиляции, связанной с этим, просто ошибка для команд intrinsinc. То же самое для рабочих проектов (они компилируют все и работают, но не находят файлы заголовков при щелчке правой кнопкой мыши и открытии). Может быть, некоторые другие сервисы Windows вмешивались? Я не знаю, но ошибки компилятора исчезают и приходят снова, время от времени. Повторная установка также кодовых блоков не решила. Только некоторые проекты могут использовать встроенные функции, в то время как другие проекты не могут (даже если все проекты имеют одинаковые заголовки.)
Этот код не работает.
#include <iostream>
#include <immintrin.h>
using namespace std;
int main()
{
_m256_zeroupper();
__mm128 x;
__mm256 y;
_m256_zeroupper();
cout << "Hello world!" << endl;
return 0;
}
Какие опции компилятора вы используете? Включили ли вы подходящий тип процессора? –
Помните, что внутренняя среда компилятора очень специфична для компилятора. Проверьте [онлайн-документацию] (http://gcc.gnu.org/onlinedocs/gcc-4.8.1/gcc/Target-Builtins.html#Target-Builtins) на функциональность, доступную в GCC для своих целей. –
FX-8150 Tried -march = bdver1 -mtune = bdver1, и это вызвало сотни ошибок нежелательной почты. –