From: Anders Carlsson Date: Mon, 22 Dec 2008 02:43:30 +0000 (+0000) Subject: Add load intrinsics X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=9770086950fae6d458e2c1cf397f1b6ec86506bb;p=clang Add load intrinsics git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@61320 91177308-0d34-0410-b5e6-96231b3b80d8 --- diff --git a/lib/Headers/xmmintrin.devel.h b/lib/Headers/xmmintrin.devel.h index 5ae6aeb85c..acb6e279be 100644 --- a/lib/Headers/xmmintrin.devel.h +++ b/lib/Headers/xmmintrin.devel.h @@ -419,6 +419,42 @@ static inline float __attribute__((__always_inline__)) _mm_cvtss_f32(__m128 a) return 0; } +static inline __m128 __attribute__((__always_inline__)) _mm_loadh_pi(__m128 a, __m64 const *p) +{ + return __builtin_ia32_loadhps(a, (__v2si *)p); +} + +static inline __m128 __attribute__((__always_inline__)) _mm_loadl_pi(__m128 a, __m64 const *p) +{ + return __builtin_ia32_loadlps(a, (__v2si *)p); +} + +static inline __m128 __attribute__((__always_inline__)) _mm_load_ss(float *p) +{ + return (__m128){ *p, 0, 0, 0 }; +} + +static inline __m128 __attribute__((__always_inline__)) _mm_load1_ps(float *p) +{ + return (__m128){ *p, *p, *p, *p }; +} + +static inline __m128 __attribute__((__always_inline__)) _mm_load_ps(float *p) +{ + return *(__m128*)p; +} + +static inline __m128 __attribute__((__always_inline__)) _mm_loadu_ps(float *p) +{ + return __builtin_ia32_loadups(p); +} + +static inline __m128 __attribute__((__always_inline__)) _mm_loadr_ps(float *p) +{ + __m128 a = _mm_load_ps(p); + return __builtin_shufflevector(a, a, 3, 2, 1, 0); +} + #endif /* __SSE__ */ #endif /* __XMMINTRIN_H */