diff options
| author | Jan Vesely <jan.vesely@rutgers.edu> | 2018-02-06 18:44:47 +0000 |
|---|---|---|
| committer | Jan Vesely <jan.vesely@rutgers.edu> | 2018-02-06 18:44:47 +0000 |
| commit | f2d876ae83252f2598c03847fb95e03d9fafe1a2 (patch) | |
| tree | 7e502fb53ceba243f50c3a228b30426b7442d327 | |
| parent | 2655312c691a992bee0bff98d1b17543cd327394 (diff) | |
| download | bcm5719-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.h | 2 | ||||
| -rw-r--r-- | libclc/generic/lib/shared/vstore.cl | 11 |
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) |

