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?