summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJan Vesely <jan.vesely@rutgers.edu>2018-02-06 18:44:47 +0000
committerJan Vesely <jan.vesely@rutgers.edu>2018-02-06 18:44:47 +0000
commitf2d876ae83252f2598c03847fb95e03d9fafe1a2 (patch)
tree7e502fb53ceba243f50c3a228b30426b7442d327
parent2655312c691a992bee0bff98d1b17543cd327394 (diff)
downloadbcm5719-llvm-f2d876ae83252f2598c03847fb95e03d9fafe1a2.tar.gz
bcm5719-llvm-f2d876ae83252f2598c03847fb95e03d9fafe1a2.zip
Add vstore_half_rtp implementation
Passes CTS on carrizo Reviewer: Jeroen Ketema <j.ketema@xs4all.nl> Signed-off-by: Jan Vesely <jan.vesely@rutgers.edu> llvm-svn: 324375
-rw-r--r--libclc/generic/include/clc/shared/vstore.h2
-rw-r--r--libclc/generic/lib/shared/vstore.cl11
2 files changed, 12 insertions, 1 deletions
diff --git a/libclc/generic/include/clc/shared/vstore.h b/libclc/generic/include/clc/shared/vstore.h
index 8639be707e5..b510e0a4300 100644
--- a/libclc/generic/include/clc/shared/vstore.h
+++ b/libclc/generic/include/clc/shared/vstore.h
@@ -39,12 +39,14 @@ _CLC_VECTOR_VSTORE_PRIM1(float)
_CLC_VECTOR_VSTORE_HALF_PRIM1(float,)
_CLC_VECTOR_VSTORE_HALF_PRIM1(float, _rtz)
_CLC_VECTOR_VSTORE_HALF_PRIM1(float, _rtn)
+_CLC_VECTOR_VSTORE_HALF_PRIM1(float, _rtp)
#ifdef cl_khr_fp64
_CLC_VECTOR_VSTORE_PRIM1(double)
_CLC_VECTOR_VSTORE_HALF_PRIM1(double,)
_CLC_VECTOR_VSTORE_HALF_PRIM1(double, _rtz)
_CLC_VECTOR_VSTORE_HALF_PRIM1(double, _rtn)
+ _CLC_VECTOR_VSTORE_HALF_PRIM1(double, _rtp)
#endif
#ifdef cl_khr_fp16
diff --git a/libclc/generic/lib/shared/vstore.cl b/libclc/generic/lib/shared/vstore.cl
index 243c2f2810c..2bfb369e6d0 100644
--- a/libclc/generic/lib/shared/vstore.cl
+++ b/libclc/generic/lib/shared/vstore.cl
@@ -143,6 +143,10 @@ _CLC_DEF _CLC_OVERLOAD float __clc_rtn(float x)
{
return ((as_uint(x) & 0x80000000) == 0) ? __clc_rtz(x) : __clc_rti(x);
}
+_CLC_DEF _CLC_OVERLOAD float __clc_rtp(float x)
+{
+ return ((as_uint(x) & 0x80000000) == 0) ? __clc_rti(x) : __clc_rtz(x);
+}
#ifdef cl_khr_fp64
_CLC_DEF _CLC_OVERLOAD double __clc_noop(double x)
@@ -184,12 +188,17 @@ _CLC_DEF _CLC_OVERLOAD double __clc_rtn(double x)
{
return ((as_ulong(x) & 0x8000000000000000UL) == 0) ? __clc_rtz(x) : __clc_rti(x);
}
+_CLC_DEF _CLC_OVERLOAD double __clc_rtp(double x)
+{
+ return ((as_ulong(x) & 0x8000000000000000UL) == 0) ? __clc_rti(x) : __clc_rtz(x);
+}
#endif
#define __XFUNC(SUFFIX, VEC_SIZE, OFFSET, TYPE, STYPE, AS) \
__FUNC(SUFFIX, VEC_SIZE, OFFSET, TYPE, STYPE, AS, __clc_noop) \
__FUNC(SUFFIX ## _rtz, VEC_SIZE, OFFSET, TYPE, STYPE, AS, __clc_rtz) \
- __FUNC(SUFFIX ## _rtn, VEC_SIZE, OFFSET, TYPE, STYPE, AS, __clc_rtn)
+ __FUNC(SUFFIX ## _rtn, VEC_SIZE, OFFSET, TYPE, STYPE, AS, __clc_rtn) \
+ __FUNC(SUFFIX ## _rtp, VEC_SIZE, OFFSET, TYPE, STYPE, AS, __clc_rtp)
#define FUNC(SUFFIX, VEC_SIZE, OFFSET, TYPE, STYPE, AS) \
__XFUNC(SUFFIX, VEC_SIZE, OFFSET, TYPE, STYPE, AS)
OpenPOWER on IntegriCloud