GCC와 Clang은 128 비트 정수 산술을위한 __int128_t
과 __uint128_t
확장을 가지고 있습니다. (그것도 가능하다면) 내가 명시 적 SSE2 함수를 작성해야 할 것 같은 __m128i
이 나에게 보이는 인텔 C 컴파일러에 대한 비슷한주고 있지만 것이라고인텔 C 컴파일러에서 +, -, *,/및 %를 지원하는 128 비트 정수입니까?
I was hopeful 내장 "를 사용하는 대신, __m128i
를 사용하기 위해 호출 -in "연산자는 +
, -
, *
, /
및 %
과 같습니다. 나는 (이 작동하지 않습니다)이 같은 뭔가를 기대했다 : 운영자 +
, -
는, *
, /
및 %
어딘가에 ICC에 묻혀 128 비트 정수 지원
#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
있습니까?
저는 ICC (ICC) 12.0.0 20101006을 사용하고 있습니다 만 ICC의 모든 버전에 관심이 있습니다. 나는 이것을지지하는 리눅스 용 다른 C 컴파일러에도 관심이있다. –
이 답변은 거의 확실합니다. 나는 [Intel 개발자 포럼] (http://software.intel.com/en-us/forums/topic/392619)에 크로스 게시했습니다. –
MMX, SSE 및 그 후속 제품은 128 비트가 아닌 한 번에 여러 값으로 사용됩니다. 256 비트 AVX/AVX2 또는 앞으로 AVX-512에 128 비트 수학 명령어가 있다고 생각하지 않습니다. 128 비트 수학이 필요하다면 라이브러리를 사용하거나 자신 만의 –