diff options
| author | Ekaterina Romanova <katya_romanova@playstation.sony.com> | 2016-01-22 06:50:50 +0000 |
|---|---|---|
| committer | Ekaterina Romanova <katya_romanova@playstation.sony.com> | 2016-01-22 06:50:50 +0000 |
| commit | 08d1f2431d9a421e77960350e3126559e41b2493 (patch) | |
| tree | c292bd2b195ba5ab19bed3194bb0cd5d525998ba /clang/lib | |
| parent | d033ad21d027774f19699b88e5c54c8a3ddf9178 (diff) | |
| download | bcm5719-llvm-08d1f2431d9a421e77960350e3126559e41b2493.tar.gz bcm5719-llvm-08d1f2431d9a421e77960350e3126559e41b2493.zip | |
2 missing intrinsics _cvtss_sh and _mm_cvtps_ph were added to the intrinsics header f16intrin.h
Differential Revision: http://reviews.llvm.org/D16177
llvm-svn: 258492
Diffstat (limited to 'clang/lib')
| -rw-r--r-- | clang/lib/Headers/f16cintrin.h | 19 |
1 files changed, 16 insertions, 3 deletions
diff --git a/clang/lib/Headers/f16cintrin.h b/clang/lib/Headers/f16cintrin.h index c655d98ee9a..0ed966abbce 100644 --- a/clang/lib/Headers/f16cintrin.h +++ b/clang/lib/Headers/f16cintrin.h @@ -29,10 +29,23 @@ #define __F16CINTRIN_H /* Define the default attributes for the functions in this file. */ -#define __DEFAULT_FN_ATTRS __attribute__((__always_inline__, __nodebug__, __target__("f16c"))) +#define __DEFAULT_FN_ATTRS \ + __attribute__((__always_inline__, __nodebug__, __target__("f16c"))) -#define _mm_cvtps_ph(a, imm) __extension__ ({ \ - (__m128i)__builtin_ia32_vcvtps2ph((__v4sf)(__m128)(a), (imm)); }) +static __inline float __DEFAULT_FN_ATTRS +_cvtsh_ss(unsigned short a) +{ + __v8hi v = {(short)a, 0, 0, 0, 0, 0, 0, 0}; + __v4sf r = __builtin_ia32_vcvtph2ps(v); + return r[0]; +} + +#define _cvtss_sh(a, imm) \ + ((unsigned short)(((__v8hi)__builtin_ia32_vcvtps2ph((__v4sf){a, 0, 0, 0}, \ + (imm)))[0])) + +#define _mm_cvtps_ph(a, imm) \ + ((__m128i)__builtin_ia32_vcvtps2ph((__v4sf)(__m128)(a), (imm))) static __inline __m128 __DEFAULT_FN_ATTRS _mm_cvtph_ps(__m128i __a) |

