diff options
author | Peter Collingbourne <peter@pcc.me.uk> | 2012-05-29 00:42:29 +0000 |
---|---|---|
committer | Peter Collingbourne <peter@pcc.me.uk> | 2012-05-29 00:42:29 +0000 |
commit | d3c242ae642e3a88b5e6421b5637e48a051e8a5c (patch) | |
tree | ba204f1adcedb2cea9f66e434510bce1606aa616 | |
parent | 8b3721b01d0a8f364309a5c2af411434dae6c484 (diff) | |
download | llvm-d3c242ae642e3a88b5e6421b5637e48a051e8a5c.zip llvm-d3c242ae642e3a88b5e6421b5637e48a051e8a5c.tar.gz llvm-d3c242ae642e3a88b5e6421b5637e48a051e8a5c.tar.bz2 |
Implement exp, exp2, log, log2, native_exp, native_exp2, native_log,
native_log2. Patch by Joshua Cranmer!
llvm-svn: 157598
-rw-r--r-- | libclc/generic/include/clc/clc.h | 8 | ||||
-rw-r--r-- | libclc/generic/include/clc/math/exp.h | 4 | ||||
-rw-r--r-- | libclc/generic/include/clc/math/exp2.h | 6 | ||||
-rw-r--r-- | libclc/generic/include/clc/math/log.h | 4 | ||||
-rw-r--r-- | libclc/generic/include/clc/math/log2.h | 6 | ||||
-rw-r--r-- | libclc/generic/include/clc/math/native_exp.h | 1 | ||||
-rw-r--r-- | libclc/generic/include/clc/math/native_exp2.h | 1 | ||||
-rw-r--r-- | libclc/generic/include/clc/math/native_log.h | 1 | ||||
-rw-r--r-- | libclc/generic/include/clc/math/native_log2.h | 1 |
9 files changed, 32 insertions, 0 deletions
diff --git a/libclc/generic/include/clc/clc.h b/libclc/generic/include/clc/clc.h index 72e2f23..0e640bad 100644 --- a/libclc/generic/include/clc/clc.h +++ b/libclc/generic/include/clc/clc.h @@ -33,11 +33,19 @@ /* 6.11.2 Math Functions */ #include <clc/math/cos.h> +#include <clc/math/exp.h> +#include <clc/math/exp2.h> #include <clc/math/fabs.h> +#include <clc/math/log.h> +#include <clc/math/log2.h> #include <clc/math/sin.h> #include <clc/math/sqrt.h> #include <clc/math/native_cos.h> #include <clc/math/native_divide.h> +#include <clc/math/native_exp.h> +#include <clc/math/native_exp2.h> +#include <clc/math/native_log.h> +#include <clc/math/native_log2.h> #include <clc/math/native_sin.h> #include <clc/math/native_sqrt.h> diff --git a/libclc/generic/include/clc/math/exp.h b/libclc/generic/include/clc/math/exp.h new file mode 100644 index 0000000..dbc4b84 --- /dev/null +++ b/libclc/generic/include/clc/math/exp.h @@ -0,0 +1,4 @@ +#undef exp + +// exp(x) = exp2(x * log2(e) +#define exp(val) (__clc_exp2((val) * 1.44269504f)) diff --git a/libclc/generic/include/clc/math/exp2.h b/libclc/generic/include/clc/math/exp2.h new file mode 100644 index 0000000..fe91633 --- /dev/null +++ b/libclc/generic/include/clc/math/exp2.h @@ -0,0 +1,6 @@ +#undef exp2 +#define exp2 __clc_exp2 + +#define FUNCTION __clc_exp2 +#define INTRINSIC "llvm.exp2" +#include <clc/math/unary_intrin.inc> diff --git a/libclc/generic/include/clc/math/log.h b/libclc/generic/include/clc/math/log.h new file mode 100644 index 0000000..644f857 --- /dev/null +++ b/libclc/generic/include/clc/math/log.h @@ -0,0 +1,4 @@ +#undef log + +// log(x) = log2(x) * (1/log2(e)) +#define log(val) (__clc_log2(val) * 0.693147181f) diff --git a/libclc/generic/include/clc/math/log2.h b/libclc/generic/include/clc/math/log2.h new file mode 100644 index 0000000..d8a8842 --- /dev/null +++ b/libclc/generic/include/clc/math/log2.h @@ -0,0 +1,6 @@ +#undef log2 +#define log2 __clc_log2 + +#define FUNCTION __clc_log2 +#define INTRINSIC "llvm.log2" +#include <clc/math/unary_intrin.inc> diff --git a/libclc/generic/include/clc/math/native_exp.h b/libclc/generic/include/clc/math/native_exp.h new file mode 100644 index 0000000..e206de6 --- /dev/null +++ b/libclc/generic/include/clc/math/native_exp.h @@ -0,0 +1 @@ +#define native_exp exp diff --git a/libclc/generic/include/clc/math/native_exp2.h b/libclc/generic/include/clc/math/native_exp2.h new file mode 100644 index 0000000..b675939 --- /dev/null +++ b/libclc/generic/include/clc/math/native_exp2.h @@ -0,0 +1 @@ +#define native_exp2 exp2 diff --git a/libclc/generic/include/clc/math/native_log.h b/libclc/generic/include/clc/math/native_log.h new file mode 100644 index 0000000..7805a39 --- /dev/null +++ b/libclc/generic/include/clc/math/native_log.h @@ -0,0 +1 @@ +#define native_log log diff --git a/libclc/generic/include/clc/math/native_log2.h b/libclc/generic/include/clc/math/native_log2.h new file mode 100644 index 0000000..0c692ee --- /dev/null +++ b/libclc/generic/include/clc/math/native_log2.h @@ -0,0 +1 @@ +#define native_log2 log2 |