diff options
| author | Aaron Watry <awatry@gmail.com> | 2013-08-15 19:21:07 +0000 |
|---|---|---|
| committer | Aaron Watry <awatry@gmail.com> | 2013-08-15 19:21:07 +0000 |
| commit | 7659157f1b926321530a44ce8fc7a39a0360a08e (patch) | |
| tree | 11938d2dda1c9b05ea82dfa1add830f6d0d83e94 /libclc/generic/include/clc/integer | |
| parent | d18fcc7a227f299f6451e2f630e8a83524ac57b2 (diff) | |
| download | bcm5719-llvm-7659157f1b926321530a44ce8fc7a39a0360a08e.tar.gz bcm5719-llvm-7659157f1b926321530a44ce8fc7a39a0360a08e.zip | |
Add hadd builtin
(x + y) >> 1 gets changed to:
(x>>1) + (y>>1) + (x&y&1)
Saves us having to do any llvm assembly and overflow checking in the addition.
Reviewed-by: Tom Stellard <thomas.stellard@amd.com>
llvm-svn: 188476
Diffstat (limited to 'libclc/generic/include/clc/integer')
| -rw-r--r-- | libclc/generic/include/clc/integer/hadd.h | 2 | ||||
| -rw-r--r-- | libclc/generic/include/clc/integer/hadd.inc | 1 |
2 files changed, 3 insertions, 0 deletions
diff --git a/libclc/generic/include/clc/integer/hadd.h b/libclc/generic/include/clc/integer/hadd.h new file mode 100644 index 00000000000..37304e26cc2 --- /dev/null +++ b/libclc/generic/include/clc/integer/hadd.h @@ -0,0 +1,2 @@ +#define __CLC_BODY <clc/integer/hadd.inc> +#include <clc/integer/gentype.inc> diff --git a/libclc/generic/include/clc/integer/hadd.inc b/libclc/generic/include/clc/integer/hadd.inc new file mode 100644 index 00000000000..f698989cef2 --- /dev/null +++ b/libclc/generic/include/clc/integer/hadd.inc @@ -0,0 +1 @@ +_CLC_OVERLOAD _CLC_DECL __CLC_GENTYPE hadd(__CLC_GENTYPE x, __CLC_GENTYPE y); |

