diff options
Diffstat (limited to 'contrib/llvm/tools/clang/lib/Headers/xmmintrin.h')
-rw-r--r-- | contrib/llvm/tools/clang/lib/Headers/xmmintrin.h | 21 |
1 files changed, 12 insertions, 9 deletions
diff --git a/contrib/llvm/tools/clang/lib/Headers/xmmintrin.h b/contrib/llvm/tools/clang/lib/Headers/xmmintrin.h index a0bc0bb..e616157 100644 --- a/contrib/llvm/tools/clang/lib/Headers/xmmintrin.h +++ b/contrib/llvm/tools/clang/lib/Headers/xmmintrin.h @@ -664,7 +664,7 @@ _mm_storer_ps(float *p, __m128 a) /* FIXME: We have to #define this because "sel" must be a constant integer, and Sema doesn't do any form of constant propagation yet. */ -#define _mm_prefetch(a, sel) (__builtin_prefetch((void *)(a), 0, sel)) +#define _mm_prefetch(a, sel) (__builtin_prefetch((void *)(a), 0, (sel))) static __inline__ void __attribute__((__always_inline__, __nodebug__)) _mm_stream_pi(__m64 *p, __m64 a) @@ -735,8 +735,9 @@ _mm_mulhi_pu16(__m64 a, __m64 b) return (__m64)__builtin_ia32_pmulhuw((__v4hi)a, (__v4hi)b); } -#define _mm_shuffle_pi16(a, n) \ - ((__m64)__builtin_ia32_pshufw(a, n)) +#define _mm_shuffle_pi16(a, n) __extension__ ({ \ + __m64 __a = (a); \ + (__m64)__builtin_ia32_pshufw((__v4hi)__a, (n)); }) static __inline__ void __attribute__((__always_inline__, __nodebug__)) _mm_maskmove_si64(__m64 d, __m64 n, char *p) @@ -774,11 +775,13 @@ _mm_setcsr(unsigned int i) __builtin_ia32_ldmxcsr(i); } -#define _mm_shuffle_ps(a, b, mask) \ - (__builtin_shufflevector((__v4sf)(a), (__v4sf)(b), \ - (mask) & 0x3, ((mask) & 0xc) >> 2, \ - (((mask) & 0x30) >> 4) + 4, \ - (((mask) & 0xc0) >> 6) + 4)) +#define _mm_shuffle_ps(a, b, mask) __extension__ ({ \ + __m128 __a = (a); \ + __m128 __b = (b); \ + (__m128)__builtin_shufflevector((__v4sf)__a, (__v4sf)__b, \ + (mask) & 0x3, ((mask) & 0xc) >> 2, \ + (((mask) & 0x30) >> 4) + 4, \ + (((mask) & 0xc0) >> 6) + 4); }) static __inline__ __m128 __attribute__((__always_inline__, __nodebug__)) _mm_unpackhi_ps(__m128 a, __m128 b) @@ -935,7 +938,7 @@ _mm_movemask_ps(__m128 a) #define _MM_FLUSH_ZERO_MASK (0x8000) #define _MM_FLUSH_ZERO_ON (0x8000) -#define _MM_FLUSH_ZERO_OFF (0x8000) +#define _MM_FLUSH_ZERO_OFF (0x0000) #define _MM_GET_EXCEPTION_MASK() (_mm_getcsr() & _MM_MASK_MASK) #define _MM_GET_EXCEPTION_STATE() (_mm_getcsr() & _MM_EXCEPT_MASK) |