/* another form of movq */
static really_inline
m128 load_m128_from_u64a(const u64a *p) {
+#if defined(__GNUC__) && !defined(__INTEL_COMPILER)
+ /* unfortunately _mm_loadl_epi64() is best avoided as it seems to cause
+ * trouble on some older compilers, possibly because it is misdefined to
+ * take an m128 as its parameter */
+ return _mm_set_epi64((__m64)0ULL, (__m64)*p);
+#else
+ /* ICC doesn't like casting to __m64 */
return _mm_loadl_epi64((const m128 *)p);
+#endif
}
#define rshiftbyte_m128(a, count_immed) _mm_srli_si128(a, count_immed)