ОС: Linux (Debian 10)
CC: GCC 8.3
Процессор: i7-5775C
В GCC есть _1 _ / _ 2_, но есть ли способ иметь _3 _ / _ 4_ в GCC?
Я читал о __m256i
, похоже, от Intel. Есть ли какой-нибудь заголовок, который я могу добавить, чтобы получить его?
Это так же удобно, как гипотетический unsigned __int256
? Я имею в виду, если вы можете назначать от / к нему, сравнивать их, побитовые операции и т. Д.
Каков его знаковый эквивалент (если есть)?
ИЗМЕНИТЬ 1:
Я добился этого:
#include <immintrin.h>
typedef __m256i uint256_t;
и скомпилирован. Если я смогу поработать с ним, я обновлю его здесь.
ИЗМЕНИТЬ 2:
Обнаружены проблемы:
uint256_t m;
int l = 5;
m = ~((uint256_t)1 << l);
вывод:
error: can’t convert a value of type ‘int’ to vector type ‘__vector(4) long long int’ which has different size
m = ~((uint256_t)1 << l);
__m256i
как целочисленный тип, потому что это не целочисленный тип, а вектор, как упоминалось в выводе ошибки. См. Можно ли использовать SSE и SSE2 для создания целого числа шириной 128 бит?, Интегрированная инструкция SIMD AVX в C, возможно использование BigNum AVX / SSE на практике ? - person phuclv   schedule 23.04.2019