जीसीसी और क्लैंग में __int128_t
और 128-बिट पूर्णांक अंकगणितीय के लिए __uint128_t
एक्सटेंशन हैं।128-बिट पूर्णांक इंटेल सी कंपाइलर में +, -, *, /, और% का समर्थन करते हैं?
I was hopeful कि __m128i
इंटेल सी संकलक के लिए कुछ इसी तरह देना होगा, लेकिन (अगर यह भी संभव है) यह मेरे लिए लगता है जैसे मैं स्पष्ट 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 बिट पूर्णांक समर्थन है?
मैं आईसीसी (आईसीसी) 12.0.0 20101006 का उपयोग कर रहा हूं लेकिन मुझे आईसीसी के किसी भी संस्करण में दिलचस्पी होगी। मुझे इसका समर्थन करने वाले लिनक्स के लिए अन्य सी कंपाइलर्स में दिलचस्पी होगी। –
इसका उत्तर लगभग निश्चित रूप से 'नहीं' है। मैं बस [इंटेल डेवलपर फोरम पर क्रॉस-पोस्ट किया गया] (http://software.intel.com/en-us/forums/topic/392619)। –
एमएमएक्स, एसएसई और उनके उत्तराधिकारी एक समय में कई मानों के लिए उपयोग किए जाने वाले हैं, न कि 128-बिट संख्या के लिए। मुझे नहीं लगता कि 256-बिट एवीएक्स/एवीएक्स 2 में या यहां तक कि एवीएक्स -512 में भी 128 बिट गणित निर्देश हैं। यदि आपको 128 बिट गणित की आवश्यकता है, तो लाइब्रेरी का उपयोग करें या अपना खुद का –