मैं SSE2 intrinsics उपयोग कर रहा हूँ अपने आवेदन की बाधाओं का अनुकूलन और निम्नलिखित प्रश्न के लिए:SSE2 कोड अनुकूलन
ddata = _mm_xor_si128(_mm_xor_si128(
_mm_sll_epi32(xdata, 0x7u), _mm_srl_epi32(tdata, 0x19u)), xdata);
माइक्रोसॉफ्ट सी ++ संकलक पर इस संकलन नहीं करेगा क्योंकि प्रकार __m128i
और unsigned int
(_mm_sll_epi32
अनुदेश के लिए पारित) विनिमय नहीं कर सकते हैं।
ऐसा क्यों है और मुझे मनमाने ढंग से unsigned int
मान _mm_sll_epi32
पर कैसे गुजरना चाहिए?
_m128i
है:
typedef union __declspec(intrin_type) _CRT_ALIGN(16) __m128i {
__int8 m128i_i8[16];
__int16 m128i_i16[8];
__int32 m128i_i32[4];
__int64 m128i_i64[2];
unsigned __int8 m128i_u8[16];
unsigned __int16 m128i_u16[8];
unsigned __int32 m128i_u32[4];
unsigned __int64 m128i_u64[2];
} __m128i;