GCC and Clang have the __int128_t
and __uint128_t
extensions for 128-bit integer arithmetic.
I was hopeful that __m128i
would give something similar for the Intel C Compiler, but (if it's even possible) it looks to me like I'd have to write explicit SSE2 function calls in order to use __m128i
, instead of using "built-in" operators like +
, -
, *
, /
, and %
. I was hoping to do something like this (this doesn't work):
#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
Is there 128-bit integer support with the operators +
, -
, *
, /
, and %
somewhere buried in icc?