summaryrefslogtreecommitdiffstats
path: root/clang/lib
diff options
context:
space:
mode:
authorEkaterina Romanova <katya_romanova@playstation.sony.com>2016-01-22 06:50:50 +0000
committerEkaterina Romanova <katya_romanova@playstation.sony.com>2016-01-22 06:50:50 +0000
commit08d1f2431d9a421e77960350e3126559e41b2493 (patch)
treec292bd2b195ba5ab19bed3194bb0cd5d525998ba /clang/lib
parentd033ad21d027774f19699b88e5c54c8a3ddf9178 (diff)
downloadbcm5719-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.h19
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)
OpenPOWER on IntegriCloud