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
Showing
- libclc/generic/include/clc/clc.h 1 addition, 0 deletionslibclc/generic/include/clc/clc.h
- libclc/generic/include/clc/integer/hadd.h 2 additions, 0 deletionslibclc/generic/include/clc/integer/hadd.h
- libclc/generic/include/clc/integer/hadd.inc 1 addition, 0 deletionslibclc/generic/include/clc/integer/hadd.inc
- libclc/generic/lib/SOURCES 1 addition, 0 deletionslibclc/generic/lib/SOURCES
- libclc/generic/lib/integer/hadd.cl 4 additions, 0 deletionslibclc/generic/lib/integer/hadd.cl
- libclc/generic/lib/integer/hadd.inc 6 additions, 0 deletionslibclc/generic/lib/integer/hadd.inc
libclc/generic/include/clc/integer/hadd.h
0 → 100644
libclc/generic/include/clc/integer/hadd.inc
0 → 100644
libclc/generic/lib/integer/hadd.cl
0 → 100644
libclc/generic/lib/integer/hadd.inc
0 → 100644
Please register or sign in to comment