r258492 - 2 missing intrinsics _cvtss_sh and _mm_cvtps_ph were added to the intrinsics header f16intrin.h
Ekaterina Romanova via cfe-commits
cfe-commits at lists.llvm.org
Thu Jan 21 22:50:50 PST 2016
Author: kromanova
Date: Fri Jan 22 00:50:50 2016
New Revision: 258492
URL: http://llvm.org/viewvc/llvm-project?rev=258492&view=rev
Log:
2 missing intrinsics _cvtss_sh and _mm_cvtps_ph were added to the intrinsics header f16intrin.h
Differential Revision: http://reviews.llvm.org/D16177
Modified:
cfe/trunk/lib/Headers/f16cintrin.h
cfe/trunk/test/CodeGen/f16c-builtins.c
Modified: cfe/trunk/lib/Headers/f16cintrin.h
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/Headers/f16cintrin.h?rev=258492&r1=258491&r2=258492&view=diff
==============================================================================
--- cfe/trunk/lib/Headers/f16cintrin.h (original)
+++ cfe/trunk/lib/Headers/f16cintrin.h Fri Jan 22 00:50:50 2016
@@ -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)
Modified: cfe/trunk/test/CodeGen/f16c-builtins.c
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/test/CodeGen/f16c-builtins.c?rev=258492&r1=258491&r2=258492&view=diff
==============================================================================
--- cfe/trunk/test/CodeGen/f16c-builtins.c (original)
+++ cfe/trunk/test/CodeGen/f16c-builtins.c Fri Jan 22 00:50:50 2016
@@ -5,6 +5,18 @@
#include <x86intrin.h>
+float test_cvtsh_ss(unsigned short a) {
+ // CHECK-LABEL: test_cvtsh_ss
+ // CHECK: @llvm.x86.vcvtph2ps.128
+ return _cvtsh_ss(a);
+}
+
+unsigned short test_cvtss_sh(float a) {
+ // CHECK-LABEL: test_cvtss_sh
+ // CHECK: @llvm.x86.vcvtps2ph.128
+ return _cvtss_sh(a, 0);
+}
+
__m128 test_mm_cvtph_ps(__m128i a) {
// CHECK-LABEL: test_mm_cvtph_ps
// CHECK: @llvm.x86.vcvtph2ps.128
More information about the cfe-commits
mailing list