diff options
author | Anders Carlsson <andersca@mac.com> | 2008-12-22 02:43:30 +0000 |
---|---|---|
committer | Anders Carlsson <andersca@mac.com> | 2008-12-22 02:43:30 +0000 |
commit | 9770086950fae6d458e2c1cf397f1b6ec86506bb (patch) | |
tree | 47102ff7714e2d05bb5108c5eedbc53793135bcb | |
parent | ff944a8c481d6c0f1ad2633e4be9bf8b1dd2a09f (diff) |
Add load intrinsics
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@61320 91177308-0d34-0410-b5e6-96231b3b80d8
-rw-r--r-- | lib/Headers/xmmintrin.devel.h | 36 |
1 files changed, 36 insertions, 0 deletions
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 */ |