diff options
| author | Jan Vesely <jan.vesely@rutgers.edu> | 2018-01-17 21:22:03 +0000 |
|---|---|---|
| committer | Jan Vesely <jan.vesely@rutgers.edu> | 2018-01-17 21:22:03 +0000 |
| commit | 5efc8fe321d04a8645d2d6beb904f9eed0b94c98 (patch) | |
| tree | 345d7d1693d9e2d006aa3c2ae92263e98cd41ad2 /libclc/generic/include/clc/math | |
| parent | cc5c65b2c25e0a82fbad95f0ce3bb5262e29eeee (diff) | |
| download | bcm5719-llvm-5efc8fe321d04a8645d2d6beb904f9eed0b94c98.tar.gz bcm5719-llvm-5efc8fe321d04a8645d2d6beb904f9eed0b94c98.zip | |
pown: Port from amd_builtins
Passes piglit on turks and carrizo
fp64 passes CTS on carrizo
v2: fix formatting
check fp32 denormal support at runtime
Reviewer: Jeroen Ketema <j.ketema@xs4all.nl>
Signed-off-by: Jan Vesely <jan.vesely@rutgers.edu>
llvm-svn: 322761
Diffstat (limited to 'libclc/generic/include/clc/math')
| -rw-r--r-- | libclc/generic/include/clc/math/pown.h | 27 | ||||
| -rw-r--r-- | libclc/generic/include/clc/math/pown.inc | 1 |
2 files changed, 4 insertions, 24 deletions
diff --git a/libclc/generic/include/clc/math/pown.h b/libclc/generic/include/clc/math/pown.h index bdbf50c1de6..2ed8a6e269f 100644 --- a/libclc/generic/include/clc/math/pown.h +++ b/libclc/generic/include/clc/math/pown.h @@ -1,24 +1,3 @@ -#define _CLC_POWN_INTRINSIC "llvm.powi" - -#define _CLC_POWN_DECL(GENTYPE, INTTYPE) \ - _CLC_OVERLOAD _CLC_DECL GENTYPE pown(GENTYPE x, INTTYPE y); - -#define _CLC_VECTOR_POWN_DECL(GENTYPE, INTTYPE) \ - _CLC_POWN_DECL(GENTYPE##2, INTTYPE##2) \ - _CLC_POWN_DECL(GENTYPE##3, INTTYPE##3) \ - _CLC_POWN_DECL(GENTYPE##4, INTTYPE##4) \ - _CLC_POWN_DECL(GENTYPE##8, INTTYPE##8) \ - _CLC_POWN_DECL(GENTYPE##16, INTTYPE##16) - -_CLC_OVERLOAD float pown(float x, int y) __asm(_CLC_POWN_INTRINSIC ".f32"); - -_CLC_VECTOR_POWN_DECL(float, int) - -#ifdef cl_khr_fp64 -_CLC_OVERLOAD double pown(double x, int y) __asm(_CLC_POWN_INTRINSIC ".f64"); -_CLC_VECTOR_POWN_DECL(double, int) -#endif - -#undef _CLC_POWN_INTRINSIC -#undef _CLC_POWN_DECL -#undef _CLC_VECTOR_POWN_DECL +#define __CLC_BODY <clc/math/pown.inc> +#include <clc/math/gentype.inc> +#undef __CLC_BODY diff --git a/libclc/generic/include/clc/math/pown.inc b/libclc/generic/include/clc/math/pown.inc new file mode 100644 index 00000000000..cf0be4cc2ea --- /dev/null +++ b/libclc/generic/include/clc/math/pown.inc @@ -0,0 +1 @@ +_CLC_OVERLOAD _CLC_DECL __CLC_GENTYPE pown(__CLC_GENTYPE a, __CLC_INTN b); |

