GCC и Clang имеют расширения __int128_t
и __uint128_t
для 128-разрядной целочисленной арифметики.
Я надеялся, что __m128i
даст что-то подобное для компилятора Intel C, но (если это возможно) мне кажется например, мне пришлось бы писать явные вызовы функций SSE2, чтобы использовать __m128i
вместо использования "встроенных" операторов, таких как +
, -
, *
, /
и %
. Я надеялся сделать что-то подобное (это не работает):
#if defined(__INTEL_COMPILER) && defined(__SSE2__)
#include "xmmintrin.h"
typedef __u128 uint128_t;
#elif defined (__GNUC__)
typedef __uint128_t uint128_t;
#else
#error For 128-bit arithmetic we need GCC or ICC, or uint128_t
#endif
Есть ли 128-битная целочисленная поддержка с операторами +
, -
, *
, /
и %
где-то похоронен в icc?