[libclc] r332324 - rootn: Use denormal path only
Author: jvesely Date: Mon May 14 21:22:43 2018 New Revision: 332324 URL: http://llvm.org/viewvc/llvm-project?rev=332324&view=rev Log: rootn: Use denormal path only It's OK to either flush to 0 or return denormal result if the device does not support denormals. See sec 7.2 and 7.5.3 of OCL specs Use 0.0f explicitly intead of relying on GPU to flush it. Fixes CTS on carrizo and turks Signed-off-by: Jan Vesely Acked-by: Aaron Watry Tested-by: Aaron Watry Modified: libclc/trunk/generic/lib/math/clc_rootn.cl Modified: libclc/trunk/generic/lib/math/clc_rootn.cl URL: http://llvm.org/viewvc/llvm-project/libclc/trunk/generic/lib/math/clc_rootn.cl?rev=332324&r1=332323&r2=332324&view=diff == --- libclc/trunk/generic/lib/math/clc_rootn.cl (original) +++ libclc/trunk/generic/lib/math/clc_rootn.cl Mon May 14 21:22:43 2018 @@ -170,16 +170,7 @@ _CLC_DEF _CLC_OVERLOAD float __clc_rootn tv = USE_TABLE(exp_tbl_ep, j); float expylogx = mad(tv.s0, poly, mad(tv.s1, poly, tv.s1)) + tv.s0; -float sexpylogx; -if (!__clc_fp32_subnormals_supported()) { - int explg = ((as_uint(expylogx) & EXPBITS_SP32 >> 23) - 127); - m = (23-(m + 149)) == 0 ? 1: m; - uint mantissa = ((as_uint(expylogx) & MANTBITS_SP32)|IMPBIT_SP32) >> (23-(m + 149)); - sexpylogx = as_float(mantissa); -} else { - sexpylogx = expylogx * as_float(0x1 << (m + 149)); -} - +float sexpylogx = __clc_fp32_subnormals_supported() ? expylogx * as_float(0x1 << (m + 149)) : 0.0f; float texpylogx = as_float(as_int(expylogx) + m2); expylogx = m < -125 ? sexpylogx : texpylogx; ___ cfe-commits mailing list cfe-commits@lists.llvm.org http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
[libclc] r332677 - Add initial support for half precision builtins
Author: jvesely Date: Thu May 17 15:55:30 2018 New Revision: 332677 URL: http://llvm.org/viewvc/llvm-project?rev=332677&view=rev Log: Add initial support for half precision builtins v2: fix fmax implementation use consistent checks for __CLC_FP_SIZE add missing TODOs fix whitespace in definitions.h v3: undef ZERO in modf.inc Signed-off-by: Jan Vesely reviewer: Jeroen Ketema Reviewed-by: Aaron Watry Tested-by: Aaron Watry Modified: libclc/trunk/amdgcn/lib/math/fmax.cl libclc/trunk/amdgcn/lib/math/fmin.cl libclc/trunk/amdgpu/lib/math/nextafter.cl libclc/trunk/amdgpu/lib/math/sqrt.cl libclc/trunk/generic/include/clc/as_type.h libclc/trunk/generic/include/clc/async/gentype.inc libclc/trunk/generic/include/clc/float/definitions.h libclc/trunk/generic/include/clc/geometric/floatn.inc libclc/trunk/generic/include/clc/math/binary_intrin.inc libclc/trunk/generic/include/clc/math/gentype.inc libclc/trunk/generic/include/clc/math/nan.inc libclc/trunk/generic/include/clc/math/ternary_intrin.inc libclc/trunk/generic/include/clc/math/unary_intrin.inc libclc/trunk/generic/include/clc/relational/floatn.inc libclc/trunk/generic/include/clc/relational/isequal.h libclc/trunk/generic/include/clc/relational/isinf.h libclc/trunk/generic/include/clc/relational/isnan.h libclc/trunk/generic/include/math/clc_ldexp.h libclc/trunk/generic/lib/geometric/dot.cl libclc/trunk/generic/lib/geometric/length.cl libclc/trunk/generic/lib/math/acos.inc libclc/trunk/generic/lib/math/asin.inc libclc/trunk/generic/lib/math/clc_nextafter.cl libclc/trunk/generic/lib/math/clc_sqrt_impl.inc libclc/trunk/generic/lib/math/clc_sw_binary.inc libclc/trunk/generic/lib/math/clc_sw_unary.inc libclc/trunk/generic/lib/math/copysign.cl libclc/trunk/generic/lib/math/fmax.cl libclc/trunk/generic/lib/math/fmax.inc libclc/trunk/generic/lib/math/fmin.cl libclc/trunk/generic/lib/math/fmin.inc libclc/trunk/generic/lib/math/fract.inc libclc/trunk/generic/lib/math/ldexp.cl libclc/trunk/generic/lib/math/ldexp.inc libclc/trunk/generic/lib/math/lgamma_r.inc libclc/trunk/generic/lib/math/modf.inc libclc/trunk/generic/lib/math/nan.inc libclc/trunk/generic/lib/math/pown.inc libclc/trunk/generic/lib/math/remquo.inc libclc/trunk/generic/lib/math/rootn.inc libclc/trunk/generic/lib/math/sincos.inc libclc/trunk/generic/lib/math/sqrt.cl libclc/trunk/generic/lib/relational/isequal.cl libclc/trunk/generic/lib/relational/isfinite.cl libclc/trunk/generic/lib/relational/isgreater.cl libclc/trunk/generic/lib/relational/isgreaterequal.cl libclc/trunk/generic/lib/relational/isinf.cl libclc/trunk/generic/lib/relational/isless.cl libclc/trunk/generic/lib/relational/islessequal.cl libclc/trunk/generic/lib/relational/islessgreater.cl libclc/trunk/generic/lib/relational/isnan.cl libclc/trunk/generic/lib/relational/isnormal.cl libclc/trunk/generic/lib/relational/isnotequal.cl libclc/trunk/generic/lib/relational/isordered.cl libclc/trunk/generic/lib/relational/isunordered.cl libclc/trunk/generic/lib/relational/signbit.cl libclc/trunk/generic/lib/shared/vstore_half.inc Modified: libclc/trunk/amdgcn/lib/math/fmax.cl URL: http://llvm.org/viewvc/llvm-project/libclc/trunk/amdgcn/lib/math/fmax.cl?rev=332677&r1=332676&r2=332677&view=diff == --- libclc/trunk/amdgcn/lib/math/fmax.cl (original) +++ libclc/trunk/amdgcn/lib/math/fmax.cl Thu May 17 15:55:30 2018 @@ -26,6 +26,21 @@ _CLC_DEF _CLC_OVERLOAD double fmax(doubl _CLC_BINARY_VECTORIZE(_CLC_OVERLOAD _CLC_DEF, double, fmax, double, double) #endif +#ifdef cl_khr_fp16 + +#pragma OPENCL EXTENSION cl_khr_fp16 : enable + +_CLC_DEF _CLC_OVERLOAD half fmax(half x, half y) +{ + if (isnan(x)) + return y; + if (isnan(y)) + return x; + return (y < x) ? x : y; +} +_CLC_BINARY_VECTORIZE(_CLC_OVERLOAD _CLC_DEF, half, fmax, half, half) + +#endif #define __CLC_BODY <../../../generic/lib/math/fmax.inc> #include Modified: libclc/trunk/amdgcn/lib/math/fmin.cl URL: http://llvm.org/viewvc/llvm-project/libclc/trunk/amdgcn/lib/math/fmin.cl?rev=332677&r1=332676&r2=332677&view=diff == --- libclc/trunk/amdgcn/lib/math/fmin.cl (original) +++ libclc/trunk/amdgcn/lib/math/fmin.cl Thu May 17 15:55:30 2018 @@ -26,6 +26,21 @@ _CLC_DEF _CLC_OVERLOAD double fmin(doubl _CLC_BINARY_VECTORIZE(_CLC_OVERLOAD _CLC_DEF, double, fmin, double, double) #endif +#ifdef cl_khr_fp16 + +#pragma OPENCL EXTENSION cl_khr_fp16 : enable + +_CLC_DEF _CLC_OVERLOAD half fmin(half x, half y) +{ + if (isnan(x)) + return y; + if (isnan(y)) + return x; + return (y < x) ? y : x; +} +_CLC_BINARY_VECTORIZE(_CLC_OVERLOAD _CLC_DEF, half, fmin, half, half) + +#endif #define __
[libclc] r314111 - prepare_builtins: Fix compile breakage with older LLVM
Author: jvesely Date: Mon Sep 25 09:04:37 2017 New Revision: 314111 URL: http://llvm.org/viewvc/llvm-project?rev=314111&view=rev Log: prepare_builtins: Fix compile breakage with older LLVM Fixes r314050 reviewer: Tom Stellard Signed-off-by: Jan Vesely Modified: libclc/trunk/utils/prepare-builtins.cpp Modified: libclc/trunk/utils/prepare-builtins.cpp URL: http://llvm.org/viewvc/llvm-project/libclc/trunk/utils/prepare-builtins.cpp?rev=314111&r1=314110&r2=314111&view=diff == --- libclc/trunk/utils/prepare-builtins.cpp (original) +++ libclc/trunk/utils/prepare-builtins.cpp Mon Sep 25 09:04:37 2017 @@ -84,8 +84,13 @@ int main(int argc, char **argv) { } std::error_code EC; +#if HAVE_LLVM >= 0x0600 std::unique_ptr Out( new ToolOutputFile(OutputFilename, EC, sys::fs::F_None)); +#else + std::unique_ptr Out( + new tool_output_file(OutputFilename, EC, sys::fs::F_None)); +#endif if (EC) { errs() << EC.message() << '\n'; exit(1); ___ cfe-commits mailing list cfe-commits@lists.llvm.org http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
[libclc] r314112 - Rework atomic ops to use clang builtins rather than llvm asm
Author: jvesely Date: Mon Sep 25 09:07:34 2017 New Revision: 314112 URL: http://llvm.org/viewvc/llvm-project?rev=314112&view=rev Log: Rework atomic ops to use clang builtins rather than llvm asm reviewer: Aaron Watry Signed-off-by: Jan Vesely Added: libclc/trunk/generic/lib/atomic/atomic_add.cl libclc/trunk/generic/lib/atomic/atomic_and.cl libclc/trunk/generic/lib/atomic/atomic_cmpxchg.cl libclc/trunk/generic/lib/atomic/atomic_max.cl libclc/trunk/generic/lib/atomic/atomic_min.cl libclc/trunk/generic/lib/atomic/atomic_or.cl libclc/trunk/generic/lib/atomic/atomic_sub.cl libclc/trunk/generic/lib/atomic/atomic_xor.cl Removed: libclc/trunk/amdgpu/lib/atomic/atomic.cl libclc/trunk/generic/lib/atomic/atomic_impl.ll Modified: libclc/trunk/amdgpu/lib/SOURCES libclc/trunk/generic/lib/SOURCES libclc/trunk/generic/lib/atomic/atomic_xchg.cl Modified: libclc/trunk/amdgpu/lib/SOURCES URL: http://llvm.org/viewvc/llvm-project/libclc/trunk/amdgpu/lib/SOURCES?rev=314112&r1=314111&r2=314112&view=diff == --- libclc/trunk/amdgpu/lib/SOURCES (original) +++ libclc/trunk/amdgpu/lib/SOURCES Mon Sep 25 09:07:34 2017 @@ -1,4 +1,3 @@ -atomic/atomic.cl math/nextafter.cl math/sqrt.cl image/get_image_width.cl Removed: libclc/trunk/amdgpu/lib/atomic/atomic.cl URL: http://llvm.org/viewvc/llvm-project/libclc/trunk/amdgpu/lib/atomic/atomic.cl?rev=314111&view=auto == --- libclc/trunk/amdgpu/lib/atomic/atomic.cl (original) +++ libclc/trunk/amdgpu/lib/atomic/atomic.cl (removed) @@ -1,65 +0,0 @@ -#include - -#define ATOMIC_FUNC_DEFINE(RET_SIGN, ARG_SIGN, TYPE, CL_FUNCTION, CLC_FUNCTION, CL_ADDRSPACE, LLVM_ADDRSPACE) \ -_CLC_OVERLOAD _CLC_DEF RET_SIGN TYPE CL_FUNCTION (volatile CL_ADDRSPACE RET_SIGN TYPE *p, RET_SIGN TYPE val) { \ - return (RET_SIGN TYPE)__clc_##CLC_FUNCTION##_addr##LLVM_ADDRSPACE((volatile CL_ADDRSPACE ARG_SIGN TYPE*)p, (ARG_SIGN TYPE)val); \ -} - -/* For atomic functions that don't need different bitcode dependending on argument signedness */ -#define ATOMIC_FUNC_SIGN(TYPE, FUNCTION, CL_ADDRSPACE, LLVM_ADDRSPACE) \ - _CLC_DECL signed TYPE __clc_##FUNCTION##_addr##LLVM_ADDRSPACE(volatile CL_ADDRSPACE signed TYPE*, signed TYPE); \ - ATOMIC_FUNC_DEFINE(signed, signed, TYPE, FUNCTION, FUNCTION, CL_ADDRSPACE, LLVM_ADDRSPACE) \ - ATOMIC_FUNC_DEFINE(unsigned, signed, TYPE, FUNCTION, FUNCTION, CL_ADDRSPACE, LLVM_ADDRSPACE) - -#define ATOMIC_FUNC_ADDRSPACE(TYPE, FUNCTION) \ - ATOMIC_FUNC_SIGN(TYPE, FUNCTION, global, 1) \ - ATOMIC_FUNC_SIGN(TYPE, FUNCTION, local, 3) - -#define ATOMIC_FUNC(FUNCTION) \ - ATOMIC_FUNC_ADDRSPACE(int, FUNCTION) - -#define ATOMIC_FUNC_DEFINE_3_ARG(RET_SIGN, ARG_SIGN, TYPE, CL_FUNCTION, CLC_FUNCTION, CL_ADDRSPACE, LLVM_ADDRSPACE) \ -_CLC_OVERLOAD _CLC_DEF RET_SIGN TYPE CL_FUNCTION (volatile CL_ADDRSPACE RET_SIGN TYPE *p, RET_SIGN TYPE cmp, RET_SIGN TYPE val) { \ - return (RET_SIGN TYPE)__clc_##CLC_FUNCTION##_addr##LLVM_ADDRSPACE((volatile CL_ADDRSPACE ARG_SIGN TYPE*)p, (ARG_SIGN TYPE)cmp, (ARG_SIGN TYPE)val); \ -} - -/* For atomic functions that don't need different bitcode dependending on argument signedness */ -#define ATOMIC_FUNC_SIGN_3_ARG(TYPE, FUNCTION, CL_ADDRSPACE, LLVM_ADDRSPACE) \ - _CLC_DECL signed TYPE __clc_##FUNCTION##_addr##LLVM_ADDRSPACE(volatile CL_ADDRSPACE signed TYPE*, signed TYPE, signed TYPE); \ - ATOMIC_FUNC_DEFINE_3_ARG(signed, signed, TYPE, FUNCTION, FUNCTION, CL_ADDRSPACE, LLVM_ADDRSPACE) \ - ATOMIC_FUNC_DEFINE_3_ARG(unsigned, signed, TYPE, FUNCTION, FUNCTION, CL_ADDRSPACE, LLVM_ADDRSPACE) - -#define ATOMIC_FUNC_ADDRSPACE_3_ARG(TYPE, FUNCTION) \ - ATOMIC_FUNC_SIGN_3_ARG(TYPE, FUNCTION, global, 1) \ - ATOMIC_FUNC_SIGN_3_ARG(TYPE, FUNCTION, local, 3) - -#define ATOMIC_FUNC_3_ARG(FUNCTION) \ - ATOMIC_FUNC_ADDRSPACE_3_ARG(int, FUNCTION) - -ATOMIC_FUNC(atomic_add) -ATOMIC_FUNC(atomic_and) -ATOMIC_FUNC(atomic_or) -ATOMIC_FUNC(atomic_sub) -ATOMIC_FUNC(atomic_xchg) -ATOMIC_FUNC(atomic_xor) -ATOMIC_FUNC_3_ARG(atomic_cmpxchg) - -_CLC_DECL signed int __clc_atomic_max_addr1(volatile global signed int*, signed int); -_CLC_DECL signed int __clc_atomic_max_addr3(volatile local signed int*, signed int); -_CLC_DECL uint __clc_atomic_umax_addr1(volatile global uint*, uint); -_CLC_DECL uint __clc_atomic_umax_addr3(volatile local uint*, uint); - -ATOMIC_FUNC_DEFINE(signed, signed, int, atomic_max, atomic_max, global, 1) -ATOMIC_FUNC_DEFINE(signed, signed, int, atomic_max, atomic_max, local, 3) -ATOMIC_FUNC_DEFINE(unsigned, unsigned, int, atomic_max, atomic_umax, global, 1) -ATOMIC_FUNC_DEFINE(unsigned, unsigned, int, atomic_max, atomic_umax, local, 3) - -_CLC_DECL signed int __clc_atomic_min_addr1(volatile global signed int*, signed int); -_CLC_DECL signed int __clc_atomic_min_addr3(volatile
[libclc] r314261 - Add missing HAVE_LLVM define to fix build with latest llvm
Author: jvesely Date: Tue Sep 26 16:15:54 2017 New Revision: 314261 URL: http://llvm.org/viewvc/llvm-project?rev=314261&view=rev Log: Add missing HAVE_LLVM define to fix build with latest llvm Broken since r314111 V2: pointed out by Jan Vesely - Use format() instead of % formating Patch-by: Pavel Ondračka Signed-off-by: Pavel Ondračka Reviewed-by: Jan Vesely Modified: libclc/trunk/configure.py Modified: libclc/trunk/configure.py URL: http://llvm.org/viewvc/llvm-project/libclc/trunk/configure.py?rev=314261&r1=314260&r2=314261&view=diff == --- libclc/trunk/configure.py (original) +++ libclc/trunk/configure.py Tue Sep 26 16:15:54 2017 @@ -81,7 +81,8 @@ llvm_bindir = llvm_config(['--bindir']) llvm_core_libs = llvm_config(['--libs', 'core', 'bitreader', 'bitwriter']) + ' ' + \ llvm_system_libs + ' ' + \ llvm_config(['--ldflags']) -llvm_cxxflags = llvm_config(['--cxxflags']) + ' -fno-exceptions -fno-rtti' +llvm_cxxflags = llvm_config(['--cxxflags']) + ' -fno-exceptions -fno-rtti ' + \ +'-DHAVE_LLVM=0x{:0=4}'.format(llvm_int_version) llvm_libdir = llvm_config(['--libdir']) llvm_clang = os.path.join(llvm_bindir, 'clang') ___ cfe-commits mailing list cfe-commits@lists.llvm.org http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
[libclc] r314547 - travis: Check built libraries on llvm-3.9
Author: jvesely Date: Fri Sep 29 12:06:50 2017 New Revision: 314547 URL: http://llvm.org/viewvc/llvm-project?rev=314547&view=rev Log: travis: Check built libraries on llvm-3.9 Signed-off-by: Jan Vesely Acked-by: Aaron Watry Modified: libclc/trunk/.travis.yml Modified: libclc/trunk/.travis.yml URL: http://llvm.org/viewvc/llvm-project/libclc/trunk/.travis.yml?rev=314547&r1=314546&r2=314547&view=diff == --- libclc/trunk/.travis.yml (original) +++ libclc/trunk/.travis.yml Fri Sep 29 12:06:50 2017 @@ -13,6 +13,7 @@ matrix: - LABEL="make gcc LLVM-3.9" - LLVM_VERSION=3.9 - LLVM_CONFIG="llvm-config-${LLVM_VERSION}" +- CHECK_FILES="barts-r600--.bc cayman-r600--.bc cedar-r600--.bc cypress-r600--.bc tahiti-amdgcn--.bc" addons: apt: sources: @@ -54,3 +55,6 @@ matrix: script: - $PYTHON ./configure.py --with-llvm-config=$LLVM_CONFIG --with-cxx-compiler=$CXX && make -j4 + - for f in $CHECK_FILES; do +./check_external_calls.sh built_libs/$f; +done ___ cfe-commits mailing list cfe-commits@lists.llvm.org http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
[libclc] r314544 - travis: add build using llvm-3.9
Author: jvesely Date: Fri Sep 29 12:06:45 2017 New Revision: 314544 URL: http://llvm.org/viewvc/llvm-project?rev=314544&view=rev Log: travis: add build using llvm-3.9 Signed-off-by: Jan Vesely Acked-by: Aaron Watry Modified: libclc/trunk/.travis.yml Modified: libclc/trunk/.travis.yml URL: http://llvm.org/viewvc/llvm-project/libclc/trunk/.travis.yml?rev=314544&r1=314543&r2=314544&view=diff == --- libclc/trunk/.travis.yml (original) +++ libclc/trunk/.travis.yml Fri Sep 29 12:06:45 2017 @@ -10,6 +10,20 @@ cache: matrix: include: - env: +- LABEL="make gcc LLVM-3.9" +- LLVM_VERSION=3.9 +- LLVM_CONFIG="llvm-config-${LLVM_VERSION}" + addons: +apt: + sources: +- llvm-toolchain-trusty-3.9 + packages: +- libedit-dev +- g++-4.8 +# From sources above +- llvm-3.9-dev +- clang-3.9 +- env: - LABEL="make gcc LLVM-4.0" - LLVM_VERSION=4.0 - LLVM_CONFIG="llvm-config-${LLVM_VERSION}" ___ cfe-commits mailing list cfe-commits@lists.llvm.org http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
[libclc] r314545 - geometric: geometric functions are only supported for vector lengths <=4
Author: jvesely Date: Fri Sep 29 12:06:47 2017 New Revision: 314545 URL: http://llvm.org/viewvc/llvm-project?rev=314545&view=rev Log: geometric: geometric functions are only supported for vector lengths <=4 Signed-off-by: Jan Vesely Reviewed-by: Aaron Watry Modified: libclc/trunk/generic/include/clc/geometric/floatn.inc Modified: libclc/trunk/generic/include/clc/geometric/floatn.inc URL: http://llvm.org/viewvc/llvm-project/libclc/trunk/generic/include/clc/geometric/floatn.inc?rev=314545&r1=314544&r2=314545&view=diff == --- libclc/trunk/generic/include/clc/geometric/floatn.inc (original) +++ libclc/trunk/generic/include/clc/geometric/floatn.inc Fri Sep 29 12:06:47 2017 @@ -19,14 +19,6 @@ #include __CLC_BODY #undef __CLC_FLOATN -#define __CLC_FLOATN float8 -#include __CLC_BODY -#undef __CLC_FLOATN - -#define __CLC_FLOATN float16 -#include __CLC_BODY -#undef __CLC_FLOATN - #undef __CLC_FLOAT #undef __CLC_FPSIZE @@ -54,14 +46,6 @@ #include __CLC_BODY #undef __CLC_FLOATN -#define __CLC_FLOATN double8 -#include __CLC_BODY -#undef __CLC_FLOATN - -#define __CLC_FLOATN double16 -#include __CLC_BODY -#undef __CLC_FLOATN - #undef __CLC_FLOAT #undef __CLC_FPSIZE ___ cfe-commits mailing list cfe-commits@lists.llvm.org http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
[libclc] r314548 - Fix amdgcn-amdhsa on llvm-3.9
Author: jvesely Date: Fri Sep 29 12:06:52 2017 New Revision: 314548 URL: http://llvm.org/viewvc/llvm-project?rev=314548&view=rev Log: Fix amdgcn-amdhsa on llvm-3.9 Signed-off-by: Jan Vesely Acked-by: Aaron Watry Added: libclc/trunk/amdgcn-amdhsa/lib/OVERRIDES_3.9 libclc/trunk/amdgcn-amdhsa/lib/SOURCES_3.9 - copied, changed from r314547, libclc/trunk/amdgcn-amdhsa/lib/OVERRIDES libclc/trunk/amdgcn-amdhsa/lib/workitem/get_global_size.39.ll libclc/trunk/amdgcn-amdhsa/lib/workitem/get_local_size.39.ll Modified: libclc/trunk/.travis.yml libclc/trunk/amdgcn-amdhsa/lib/OVERRIDES Modified: libclc/trunk/.travis.yml URL: http://llvm.org/viewvc/llvm-project/libclc/trunk/.travis.yml?rev=314548&r1=314547&r2=314548&view=diff == --- libclc/trunk/.travis.yml (original) +++ libclc/trunk/.travis.yml Fri Sep 29 12:06:52 2017 @@ -13,7 +13,7 @@ matrix: - LABEL="make gcc LLVM-3.9" - LLVM_VERSION=3.9 - LLVM_CONFIG="llvm-config-${LLVM_VERSION}" -- CHECK_FILES="barts-r600--.bc cayman-r600--.bc cedar-r600--.bc cypress-r600--.bc tahiti-amdgcn--.bc" +- CHECK_FILES="barts-r600--.bc cayman-r600--.bc cedar-r600--.bc cypress-r600--.bc tahiti-amdgcn--.bc amdgcn--amdhsa.bc" addons: apt: sources: Modified: libclc/trunk/amdgcn-amdhsa/lib/OVERRIDES URL: http://llvm.org/viewvc/llvm-project/libclc/trunk/amdgcn-amdhsa/lib/OVERRIDES?rev=314548&r1=314547&r2=314548&view=diff == --- libclc/trunk/amdgcn-amdhsa/lib/OVERRIDES (original) +++ libclc/trunk/amdgcn-amdhsa/lib/OVERRIDES Fri Sep 29 12:06:52 2017 @@ -1,4 +1 @@ workitem/get_num_groups.ll -workitem/get_global_size.39.ll -workitem/get_local_size.39.ll -workitem/get_num_groups.39.ll Added: libclc/trunk/amdgcn-amdhsa/lib/OVERRIDES_3.9 URL: http://llvm.org/viewvc/llvm-project/libclc/trunk/amdgcn-amdhsa/lib/OVERRIDES_3.9?rev=314548&view=auto == --- libclc/trunk/amdgcn-amdhsa/lib/OVERRIDES_3.9 (added) +++ libclc/trunk/amdgcn-amdhsa/lib/OVERRIDES_3.9 Fri Sep 29 12:06:52 2017 @@ -0,0 +1,3 @@ +workitem/get_global_size.ll +workitem/get_local_size.ll +workitem/get_num_groups.39.ll Copied: libclc/trunk/amdgcn-amdhsa/lib/SOURCES_3.9 (from r314547, libclc/trunk/amdgcn-amdhsa/lib/OVERRIDES) URL: http://llvm.org/viewvc/llvm-project/libclc/trunk/amdgcn-amdhsa/lib/SOURCES_3.9?p2=libclc/trunk/amdgcn-amdhsa/lib/SOURCES_3.9&p1=libclc/trunk/amdgcn-amdhsa/lib/OVERRIDES&r1=314547&r2=314548&rev=314548&view=diff == --- libclc/trunk/amdgcn-amdhsa/lib/OVERRIDES (original) +++ libclc/trunk/amdgcn-amdhsa/lib/SOURCES_3.9 Fri Sep 29 12:06:52 2017 @@ -1,4 +1,2 @@ -workitem/get_num_groups.ll workitem/get_global_size.39.ll workitem/get_local_size.39.ll -workitem/get_num_groups.39.ll Added: libclc/trunk/amdgcn-amdhsa/lib/workitem/get_global_size.39.ll URL: http://llvm.org/viewvc/llvm-project/libclc/trunk/amdgcn-amdhsa/lib/workitem/get_global_size.39.ll?rev=314548&view=auto == --- libclc/trunk/amdgcn-amdhsa/lib/workitem/get_global_size.39.ll (added) +++ libclc/trunk/amdgcn-amdhsa/lib/workitem/get_global_size.39.ll Fri Sep 29 12:06:52 2017 @@ -0,0 +1,36 @@ +declare i8 addrspace(2)* @llvm.amdgcn.dispatch.ptr() #0 + +define i32 @get_global_size(i32 %dim) #1 { + %dispatch_ptr = call noalias nonnull dereferenceable(64) i8 addrspace(2)* @llvm.amdgcn.dispatch.ptr() + switch i32 %dim, label %default [ +i32 0, label %x +i32 1, label %y +i32 2, label %z + ] + +x: + %ptr_x = getelementptr inbounds i8, i8 addrspace(2)* %dispatch_ptr, i32 12 + %ptr_x32 = bitcast i8 addrspace(2)* %ptr_x to i32 addrspace(2)* + %x32 = load i32, i32 addrspace(2)* %ptr_x32, align 4, !invariant.load !0 + ret i32 %x32 + +y: + %ptr_y = getelementptr inbounds i8, i8 addrspace(2)* %dispatch_ptr, i32 16 + %ptr_y32 = bitcast i8 addrspace(2)* %ptr_y to i32 addrspace(2)* + %y32 = load i32, i32 addrspace(2)* %ptr_y32, align 4, !invariant.load !0 + ret i32 %y32 + +z: + %ptr_z = getelementptr inbounds i8, i8 addrspace(2)* %dispatch_ptr, i32 20 + %ptr_z32 = bitcast i8 addrspace(2)* %ptr_z to i32 addrspace(2)* + %z32 = load i32, i32 addrspace(2)* %ptr_z32, align 4, !invariant.load !0 + ret i32 %z32 + +default: + ret i32 1 +} + +attributes #0 = { nounwind readnone } +attributes #1 = { alwaysinline norecurse nounwind readonly } + +!0 = !{} Added: libclc/trunk/amdgcn-amdhsa/lib/workitem/get_local_size.39.ll URL: http://llvm.org/viewvc/llvm-project/libclc/trunk/amdgcn-amdhsa/lib/workitem/get_local_size.39.ll?rev=314548&view=auto == --- libclc/trunk/amdgcn-amdhsa/lib/workitem/get_local_s
[libclc] r314546 - Add script to check for unresolved function calls
Author: jvesely Date: Fri Sep 29 12:06:48 2017 New Revision: 314546 URL: http://llvm.org/viewvc/llvm-project?rev=314546&view=rev Log: Add script to check for unresolved function calls v2: add shell shebang improve error checks and reporting v3: fix typo Signed-off-by: Jan Vesely Reviewed-by: Aaron Watry Added: libclc/trunk/check_external_calls.sh (with props) Added: libclc/trunk/check_external_calls.sh URL: http://llvm.org/viewvc/llvm-project/libclc/trunk/check_external_calls.sh?rev=314546&view=auto == --- libclc/trunk/check_external_calls.sh (added) +++ libclc/trunk/check_external_calls.sh Fri Sep 29 12:06:48 2017 @@ -0,0 +1,35 @@ +#!/bin/sh + +FILE=$1 +if [ ! -f $FILE ]; then + echo "ERROR: Not a file: $FILE" + exit 3 +fi +ret=0 +if [ "x$LLVM_CONFIG" = "x" ]; then + LLVM_CONFIG=llvm-config + echo 'WARNING: $LLVM_CONFIG not set, falling back to $PATH llvm-config' + ret=2 +fi + + +BIN_DIR=$($LLVM_CONFIG --bindir) +DIS="$BIN_DIR/llvm-dis" +if [ ! -x $DIS ]; then + echo "ERROR: Disassembler '$DIS' is not executable" + exit 3 +fi + +TMP_FILE=$(mktemp) + +# Check for calls. Calls to llvm intrinsics are OK +$DIS < $FILE | grep ' call ' | grep -v '@llvm' > "$TMP_FILE" + +if [ $(wc -l < "$TMP_FILE") -ne "0" ]; then + echo "ERROR: unresolved calls detected" + cat $TMP_FILE + ret=1 +else + echo "File $FILE is OK" +fi +exit $ret Propchange: libclc/trunk/check_external_calls.sh -- svn:executable = * ___ cfe-commits mailing list cfe-commits@lists.llvm.org http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
[libclc] r314543 - Restore support for llvm-3.9
Author: jvesely Date: Fri Sep 29 12:06:41 2017 New Revision: 314543 URL: http://llvm.org/viewvc/llvm-project?rev=314543&view=rev Log: Restore support for llvm-3.9 Signed-off-by: Jan Vesely Acked-by: Aaron Watry Added: libclc/trunk/amdgcn/lib/OVERRIDES_3.9 libclc/trunk/amdgcn/lib/SOURCES_3.9 libclc/trunk/amdgcn/lib/workitem/get_global_size.39.ll libclc/trunk/amdgcn/lib/workitem/get_local_size.39.ll libclc/trunk/amdgcn/lib/workitem/get_num_groups.39.ll libclc/trunk/amdgpu/lib/SOURCES_3.9 Modified: libclc/trunk/amdgcn-amdhsa/lib/OVERRIDES libclc/trunk/configure.py libclc/trunk/utils/prepare-builtins.cpp Modified: libclc/trunk/amdgcn-amdhsa/lib/OVERRIDES URL: http://llvm.org/viewvc/llvm-project/libclc/trunk/amdgcn-amdhsa/lib/OVERRIDES?rev=314543&r1=314542&r2=314543&view=diff == --- libclc/trunk/amdgcn-amdhsa/lib/OVERRIDES (original) +++ libclc/trunk/amdgcn-amdhsa/lib/OVERRIDES Fri Sep 29 12:06:41 2017 @@ -1 +1,4 @@ workitem/get_num_groups.ll +workitem/get_global_size.39.ll +workitem/get_local_size.39.ll +workitem/get_num_groups.39.ll Added: libclc/trunk/amdgcn/lib/OVERRIDES_3.9 URL: http://llvm.org/viewvc/llvm-project/libclc/trunk/amdgcn/lib/OVERRIDES_3.9?rev=314543&view=auto == --- libclc/trunk/amdgcn/lib/OVERRIDES_3.9 (added) +++ libclc/trunk/amdgcn/lib/OVERRIDES_3.9 Fri Sep 29 12:06:41 2017 @@ -0,0 +1,3 @@ +workitem/get_global_size.ll +workitem/get_local_size.ll +workitem/get_num_groups.ll Added: libclc/trunk/amdgcn/lib/SOURCES_3.9 URL: http://llvm.org/viewvc/llvm-project/libclc/trunk/amdgcn/lib/SOURCES_3.9?rev=314543&view=auto == --- libclc/trunk/amdgcn/lib/SOURCES_3.9 (added) +++ libclc/trunk/amdgcn/lib/SOURCES_3.9 Fri Sep 29 12:06:41 2017 @@ -0,0 +1,3 @@ +workitem/get_global_size.39.ll +workitem/get_local_size.39.ll +workitem/get_num_groups.39.ll Added: libclc/trunk/amdgcn/lib/workitem/get_global_size.39.ll URL: http://llvm.org/viewvc/llvm-project/libclc/trunk/amdgcn/lib/workitem/get_global_size.39.ll?rev=314543&view=auto == --- libclc/trunk/amdgcn/lib/workitem/get_global_size.39.ll (added) +++ libclc/trunk/amdgcn/lib/workitem/get_global_size.39.ll Fri Sep 29 12:06:41 2017 @@ -0,0 +1,18 @@ +declare i32 @llvm.r600.read.global.size.x() nounwind readnone +declare i32 @llvm.r600.read.global.size.y() nounwind readnone +declare i32 @llvm.r600.read.global.size.z() nounwind readnone + +define i32 @get_global_size(i32 %dim) nounwind readnone alwaysinline { + switch i32 %dim, label %default [i32 0, label %x_dim i32 1, label %y_dim i32 2, label %z_dim] +x_dim: + %x = call i32 @llvm.r600.read.global.size.x() + ret i32 %x +y_dim: + %y = call i32 @llvm.r600.read.global.size.y() + ret i32 %y +z_dim: + %z = call i32 @llvm.r600.read.global.size.z() + ret i32 %z +default: + ret i32 1 +} Added: libclc/trunk/amdgcn/lib/workitem/get_local_size.39.ll URL: http://llvm.org/viewvc/llvm-project/libclc/trunk/amdgcn/lib/workitem/get_local_size.39.ll?rev=314543&view=auto == --- libclc/trunk/amdgcn/lib/workitem/get_local_size.39.ll (added) +++ libclc/trunk/amdgcn/lib/workitem/get_local_size.39.ll Fri Sep 29 12:06:41 2017 @@ -0,0 +1,18 @@ +declare i32 @llvm.r600.read.local.size.x() nounwind readnone +declare i32 @llvm.r600.read.local.size.y() nounwind readnone +declare i32 @llvm.r600.read.local.size.z() nounwind readnone + +define i32 @get_local_size(i32 %dim) nounwind readnone alwaysinline { + switch i32 %dim, label %default [i32 0, label %x_dim i32 1, label %y_dim i32 2, label %z_dim] +x_dim: + %x = call i32 @llvm.r600.read.local.size.x() + ret i32 %x +y_dim: + %y = call i32 @llvm.r600.read.local.size.y() + ret i32 %y +z_dim: + %z = call i32 @llvm.r600.read.local.size.z() + ret i32 %z +default: + ret i32 1 +} Added: libclc/trunk/amdgcn/lib/workitem/get_num_groups.39.ll URL: http://llvm.org/viewvc/llvm-project/libclc/trunk/amdgcn/lib/workitem/get_num_groups.39.ll?rev=314543&view=auto == --- libclc/trunk/amdgcn/lib/workitem/get_num_groups.39.ll (added) +++ libclc/trunk/amdgcn/lib/workitem/get_num_groups.39.ll Fri Sep 29 12:06:41 2017 @@ -0,0 +1,18 @@ +declare i32 @llvm.r600.read.ngroups.x() nounwind readnone +declare i32 @llvm.r600.read.ngroups.y() nounwind readnone +declare i32 @llvm.r600.read.ngroups.z() nounwind readnone + +define i32 @get_num_groups(i32 %dim) nounwind readnone alwaysinline { + switch i32 %dim, label %default [i32 0, label %x_dim i32 1, label %y_dim i32 2, label %z_dim] +x_dim: + %x = call i32 @llvm.r600.read.ngroups.x() + ret i32 %x +y_dim: + %y = call i32 @llvm.r600.read.ngroups.y() + r
[libclc] r314703 - integer/sub_sat: Use clang builtin instead of llvm asm
Author: jvesely Date: Mon Oct 2 11:39:03 2017 New Revision: 314703 URL: http://llvm.org/viewvc/llvm-project?rev=314703&view=rev Log: integer/sub_sat: Use clang builtin instead of llvm asm reviewer: Tom Stellard Signed-off-by: Jan Vesely Removed: libclc/trunk/generic/lib/integer/sub_sat_if.ll libclc/trunk/generic/lib/integer/sub_sat_impl.ll libclc/trunk/ptx/lib/OVERRIDES libclc/trunk/ptx/lib/SOURCES libclc/trunk/ptx/lib/integer/sub_sat.ll Modified: libclc/trunk/generic/lib/SOURCES libclc/trunk/generic/lib/integer/sub_sat.cl Modified: libclc/trunk/generic/lib/SOURCES URL: http://llvm.org/viewvc/llvm-project/libclc/trunk/generic/lib/SOURCES?rev=314703&r1=314702&r2=314703&view=diff == --- libclc/trunk/generic/lib/SOURCES (original) +++ libclc/trunk/generic/lib/SOURCES Mon Oct 2 11:39:03 2017 @@ -73,8 +73,6 @@ integer/mul_hi.cl integer/rhadd.cl integer/rotate.cl integer/sub_sat.cl -integer/sub_sat_if.ll -integer/sub_sat_impl.ll integer/upsample.cl math/acos.cl math/acosh.cl Modified: libclc/trunk/generic/lib/integer/sub_sat.cl URL: http://llvm.org/viewvc/llvm-project/libclc/trunk/generic/lib/integer/sub_sat.cl?rev=314703&r1=314702&r2=314703&view=diff == --- libclc/trunk/generic/lib/integer/sub_sat.cl (original) +++ libclc/trunk/generic/lib/integer/sub_sat.cl Mon Oct 2 11:39:03 2017 @@ -1,46 +1,54 @@ #include #include "../clcmacro.h" -// From sub_sat.ll -_CLC_DECL char __clc_sub_sat_s8(char, char); -_CLC_DECL uchar __clc_sub_sat_u8(uchar, uchar); -_CLC_DECL short __clc_sub_sat_s16(short, short); -_CLC_DECL ushort __clc_sub_sat_u16(ushort, ushort); -_CLC_DECL int__clc_sub_sat_s32(int, int); -_CLC_DECL uint __clc_sub_sat_u32(uint, uint); -_CLC_DECL long __clc_sub_sat_s64(long, long); -_CLC_DECL ulong __clc_sub_sat_u64(ulong, ulong); - _CLC_OVERLOAD _CLC_DEF char sub_sat(char x, char y) { - return __clc_sub_sat_s8(x, y); + short r = x - y; + return convert_char_sat(r); } _CLC_OVERLOAD _CLC_DEF uchar sub_sat(uchar x, uchar y) { - return __clc_sub_sat_u8(x, y); + short r = x - y; + return convert_uchar_sat(r); } _CLC_OVERLOAD _CLC_DEF short sub_sat(short x, short y) { - return __clc_sub_sat_s16(x, y); + int r = x - y; + return convert_short_sat(r); } _CLC_OVERLOAD _CLC_DEF ushort sub_sat(ushort x, ushort y) { - return __clc_sub_sat_u16(x, y); + int r = x - y; + return convert_ushort_sat(r); } _CLC_OVERLOAD _CLC_DEF int sub_sat(int x, int y) { - return __clc_sub_sat_s32(x, y); + int r; + if (__builtin_ssub_overflow(x, y, &r)) +// The oveflow can only occur in the direction of the first operand +return x > 0 ? INT_MAX : INT_MIN; + return r; } _CLC_OVERLOAD _CLC_DEF uint sub_sat(uint x, uint y) { - return __clc_sub_sat_u32(x, y); + uint r; + if (__builtin_usub_overflow(x, y, &r)) + return 0; + return r; } _CLC_OVERLOAD _CLC_DEF long sub_sat(long x, long y) { - return __clc_sub_sat_s64(x, y); + long r; + if (__builtin_ssubl_overflow(x, y, &r)) +// The oveflow can only occur in the direction of the first operand +return x > 0 ? LONG_MAX : LONG_MIN; + return r; } _CLC_OVERLOAD _CLC_DEF ulong sub_sat(ulong x, ulong y) { - return __clc_sub_sat_u64(x, y); + ulong r; + if (__builtin_usubl_overflow(x, y, &r)) + return 0; + return r; } _CLC_BINARY_VECTORIZE(_CLC_OVERLOAD _CLC_DEF, char, sub_sat, char, char) Removed: libclc/trunk/generic/lib/integer/sub_sat_if.ll URL: http://llvm.org/viewvc/llvm-project/libclc/trunk/generic/lib/integer/sub_sat_if.ll?rev=314702&view=auto == --- libclc/trunk/generic/lib/integer/sub_sat_if.ll (original) +++ libclc/trunk/generic/lib/integer/sub_sat_if.ll (removed) @@ -1,55 +0,0 @@ -declare i8 @__clc_sub_sat_impl_s8(i8 %x, i8 %y) - -define i8 @__clc_sub_sat_s8(i8 %x, i8 %y) nounwind readnone alwaysinline { - %call = call i8 @__clc_sub_sat_impl_s8(i8 %x, i8 %y) - ret i8 %call -} - -declare i8 @__clc_sub_sat_impl_u8(i8 %x, i8 %y) - -define i8 @__clc_sub_sat_u8(i8 %x, i8 %y) nounwind readnone alwaysinline { - %call = call i8 @__clc_sub_sat_impl_u8(i8 %x, i8 %y) - ret i8 %call -} - -declare i16 @__clc_sub_sat_impl_s16(i16 %x, i16 %y) - -define i16 @__clc_sub_sat_s16(i16 %x, i16 %y) nounwind readnone alwaysinline { - %call = call i16 @__clc_sub_sat_impl_s16(i16 %x, i16 %y) - ret i16 %call -} - -declare i16 @__clc_sub_sat_impl_u16(i16 %x, i16 %y) - -define i16 @__clc_sub_sat_u16(i16 %x, i16 %y) nounwind readnone alwaysinline { - %call = call i16 @__clc_sub_sat_impl_u16(i16 %x, i16 %y) - ret i16 %call -} - -declare i32 @__clc_sub_sat_impl_s32(i32 %x, i32 %y) - -define i32 @__clc_sub_sat_s32(i32 %x, i32 %y) nounwind readnone alwaysinline { - %call = call i32 @__clc_sub_sat_impl_s32(i32 %x, i32 %y) - ret i32 %call -} - -decl
[libclc] r314701 - integer/clz: Use clang builtin instead of llvm asm
Author: jvesely Date: Mon Oct 2 11:38:57 2017 New Revision: 314701 URL: http://llvm.org/viewvc/llvm-project?rev=314701&view=rev Log: integer/clz: Use clang builtin instead of llvm asm The generated llvm IR mostly identical. char/uchar case is a bit worse. reviewer: Tom Stellard Signed-off-by: Jan Vesely Removed: libclc/trunk/generic/lib/integer/clz_if.ll libclc/trunk/generic/lib/integer/clz_impl.ll Modified: libclc/trunk/generic/lib/SOURCES libclc/trunk/generic/lib/integer/clz.cl Modified: libclc/trunk/generic/lib/SOURCES URL: http://llvm.org/viewvc/llvm-project/libclc/trunk/generic/lib/SOURCES?rev=314701&r1=314700&r2=314701&view=diff == --- libclc/trunk/generic/lib/SOURCES (original) +++ libclc/trunk/generic/lib/SOURCES Mon Oct 2 11:38:57 2017 @@ -67,8 +67,6 @@ integer/add_sat.cl integer/add_sat_if.ll integer/add_sat_impl.ll integer/clz.cl -integer/clz_if.ll -integer/clz_impl.ll integer/hadd.cl integer/mad24.cl integer/mad_sat.cl Modified: libclc/trunk/generic/lib/integer/clz.cl URL: http://llvm.org/viewvc/llvm-project/libclc/trunk/generic/lib/integer/clz.cl?rev=314701&r1=314700&r2=314701&view=diff == --- libclc/trunk/generic/lib/integer/clz.cl (original) +++ libclc/trunk/generic/lib/integer/clz.cl Mon Oct 2 11:38:57 2017 @@ -1,46 +1,36 @@ #include #include "../clcmacro.h" -// From clz.ll -_CLC_DECL char __clc_clz_s8(char); -_CLC_DECL uchar __clc_clz_u8(uchar); -_CLC_DECL short __clc_clz_s16(short); -_CLC_DECL ushort __clc_clz_u16(ushort); -_CLC_DECL int__clc_clz_s32(int); -_CLC_DECL uint __clc_clz_u32(uint); -_CLC_DECL long __clc_clz_s64(long); -_CLC_DECL ulong __clc_clz_u64(ulong); - _CLC_OVERLOAD _CLC_DEF char clz(char x) { - return __clc_clz_s8(x); + return clz((ushort)(uchar)x) - 8; } _CLC_OVERLOAD _CLC_DEF uchar clz(uchar x) { - return __clc_clz_u8(x); + return clz((ushort)x) - 8; } _CLC_OVERLOAD _CLC_DEF short clz(short x) { - return __clc_clz_s16(x); + return x ? __builtin_clzs(x) : 16; } _CLC_OVERLOAD _CLC_DEF ushort clz(ushort x) { - return __clc_clz_u16(x); + return x ? __builtin_clzs(x) : 16; } _CLC_OVERLOAD _CLC_DEF int clz(int x) { - return __clc_clz_s32(x); + return x ? __builtin_clz(x) : 32; } _CLC_OVERLOAD _CLC_DEF uint clz(uint x) { - return __clc_clz_u32(x); + return x ? __builtin_clz(x) : 32; } _CLC_OVERLOAD _CLC_DEF long clz(long x) { - return __clc_clz_s64(x); + return x ? __builtin_clzl(x) : 64; } _CLC_OVERLOAD _CLC_DEF ulong clz(ulong x) { - return __clc_clz_u64(x); + return x ? __builtin_clzl(x) : 64; } _CLC_UNARY_VECTORIZE(_CLC_OVERLOAD _CLC_DEF, char, clz, char) Removed: libclc/trunk/generic/lib/integer/clz_if.ll URL: http://llvm.org/viewvc/llvm-project/libclc/trunk/generic/lib/integer/clz_if.ll?rev=314700&view=auto == --- libclc/trunk/generic/lib/integer/clz_if.ll (original) +++ libclc/trunk/generic/lib/integer/clz_if.ll (removed) @@ -1,55 +0,0 @@ -declare i8 @__clc_clz_impl_s8(i8 %x) - -define i8 @__clc_clz_s8(i8 %x) nounwind readnone alwaysinline { - %call = call i8 @__clc_clz_impl_s8(i8 %x) - ret i8 %call -} - -declare i8 @__clc_clz_impl_u8(i8 %x) - -define i8 @__clc_clz_u8(i8 %x) nounwind readnone alwaysinline { - %call = call i8 @__clc_clz_impl_u8(i8 %x) - ret i8 %call -} - -declare i16 @__clc_clz_impl_s16(i16 %x) - -define i16 @__clc_clz_s16(i16 %x) nounwind readnone alwaysinline { - %call = call i16 @__clc_clz_impl_s16(i16 %x) - ret i16 %call -} - -declare i16 @__clc_clz_impl_u16(i16 %x) - -define i16 @__clc_clz_u16(i16 %x) nounwind readnone alwaysinline { - %call = call i16 @__clc_clz_impl_u16(i16 %x) - ret i16 %call -} - -declare i32 @__clc_clz_impl_s32(i32 %x) - -define i32 @__clc_clz_s32(i32 %x) nounwind readnone alwaysinline { - %call = call i32 @__clc_clz_impl_s32(i32 %x) - ret i32 %call -} - -declare i32 @__clc_clz_impl_u32(i32 %x) - -define i32 @__clc_clz_u32(i32 %x) nounwind readnone alwaysinline { - %call = call i32 @__clc_clz_impl_u32(i32 %x) - ret i32 %call -} - -declare i64 @__clc_clz_impl_s64(i64 %x) - -define i64 @__clc_clz_s64(i64 %x) nounwind readnone alwaysinline { - %call = call i64 @__clc_clz_impl_s64(i64 %x) - ret i64 %call -} - -declare i64 @__clc_clz_impl_u64(i64 %x) - -define i64 @__clc_clz_u64(i64 %x) nounwind readnone alwaysinline { - %call = call i64 @__clc_clz_impl_u64(i64 %x) - ret i64 %call -} Removed: libclc/trunk/generic/lib/integer/clz_impl.ll URL: http://llvm.org/viewvc/llvm-project/libclc/trunk/generic/lib/integer/clz_impl.ll?rev=314700&view=auto == --- libclc/trunk/generic/lib/integer/clz_impl.ll (original) +++ libclc/trunk/generic/lib/integer/clz_impl.ll (removed) @@ -1,44 +0,0 @@ -declare i8 @llvm.ctlz.i8(i8, i1) -d
[libclc] r314702 - integer/add_sat: Use clang builtin instead of llvm asm
Author: jvesely Date: Mon Oct 2 11:39:00 2017 New Revision: 314702 URL: http://llvm.org/viewvc/llvm-project?rev=314702&view=rev Log: integer/add_sat: Use clang builtin instead of llvm asm reviewer: Tom Stellard Signed-off-by: Jan Vesely Removed: libclc/trunk/generic/lib/integer/add_sat_if.ll libclc/trunk/generic/lib/integer/add_sat_impl.ll libclc/trunk/ptx/lib/integer/add_sat.ll Modified: libclc/trunk/generic/lib/SOURCES libclc/trunk/generic/lib/integer/add_sat.cl libclc/trunk/ptx/lib/OVERRIDES libclc/trunk/ptx/lib/SOURCES Modified: libclc/trunk/generic/lib/SOURCES URL: http://llvm.org/viewvc/llvm-project/libclc/trunk/generic/lib/SOURCES?rev=314702&r1=314701&r2=314702&view=diff == --- libclc/trunk/generic/lib/SOURCES (original) +++ libclc/trunk/generic/lib/SOURCES Mon Oct 2 11:39:00 2017 @@ -64,8 +64,6 @@ geometric/normalize.cl integer/abs.cl integer/abs_diff.cl integer/add_sat.cl -integer/add_sat_if.ll -integer/add_sat_impl.ll integer/clz.cl integer/hadd.cl integer/mad24.cl Modified: libclc/trunk/generic/lib/integer/add_sat.cl URL: http://llvm.org/viewvc/llvm-project/libclc/trunk/generic/lib/integer/add_sat.cl?rev=314702&r1=314701&r2=314702&view=diff == --- libclc/trunk/generic/lib/integer/add_sat.cl (original) +++ libclc/trunk/generic/lib/integer/add_sat.cl Mon Oct 2 11:39:00 2017 @@ -12,35 +12,55 @@ _CLC_DECL long __clc_add_sat_s64(long, _CLC_DECL ulong __clc_add_sat_u64(ulong, ulong); _CLC_OVERLOAD _CLC_DEF char add_sat(char x, char y) { - return __clc_add_sat_s8(x, y); + short r = x + y; + return convert_char_sat(r); } _CLC_OVERLOAD _CLC_DEF uchar add_sat(uchar x, uchar y) { - return __clc_add_sat_u8(x, y); + ushort r = x + y; + return convert_uchar_sat(r); } _CLC_OVERLOAD _CLC_DEF short add_sat(short x, short y) { - return __clc_add_sat_s16(x, y); + int r = x + y; + return convert_short_sat(r); } _CLC_OVERLOAD _CLC_DEF ushort add_sat(ushort x, ushort y) { - return __clc_add_sat_u16(x, y); + uint r = x + y; + return convert_ushort_sat(r); } _CLC_OVERLOAD _CLC_DEF int add_sat(int x, int y) { - return __clc_add_sat_s32(x, y); + int r; + if (__builtin_sadd_overflow(x, y, &r)) +// The oveflow can only occur if both are pos or both are neg, +// thus we only need to check one operand +return x > 0 ? INT_MAX : INT_MIN; + return r; } _CLC_OVERLOAD _CLC_DEF uint add_sat(uint x, uint y) { - return __clc_add_sat_u32(x, y); + uint r; + if (__builtin_uadd_overflow(x, y, &r)) + return UINT_MAX; + return r; } _CLC_OVERLOAD _CLC_DEF long add_sat(long x, long y) { - return __clc_add_sat_s64(x, y); + long r; + if (__builtin_saddl_overflow(x, y, &r)) +// The oveflow can only occur if both are pos or both are neg, +// thus we only need to check one operand +return x > 0 ? LONG_MAX : LONG_MIN; + return r; } _CLC_OVERLOAD _CLC_DEF ulong add_sat(ulong x, ulong y) { - return __clc_add_sat_u64(x, y); + ulong r; + if (__builtin_uaddl_overflow(x, y, &r)) + return ULONG_MAX; + return r; } _CLC_BINARY_VECTORIZE(_CLC_OVERLOAD _CLC_DEF, char, add_sat, char, char) Removed: libclc/trunk/generic/lib/integer/add_sat_if.ll URL: http://llvm.org/viewvc/llvm-project/libclc/trunk/generic/lib/integer/add_sat_if.ll?rev=314701&view=auto == --- libclc/trunk/generic/lib/integer/add_sat_if.ll (original) +++ libclc/trunk/generic/lib/integer/add_sat_if.ll (removed) @@ -1,55 +0,0 @@ -declare i8 @__clc_add_sat_impl_s8(i8 %x, i8 %y) - -define i8 @__clc_add_sat_s8(i8 %x, i8 %y) nounwind readnone alwaysinline { - %call = call i8 @__clc_add_sat_impl_s8(i8 %x, i8 %y) - ret i8 %call -} - -declare i8 @__clc_add_sat_impl_u8(i8 %x, i8 %y) - -define i8 @__clc_add_sat_u8(i8 %x, i8 %y) nounwind readnone alwaysinline { - %call = call i8 @__clc_add_sat_impl_u8(i8 %x, i8 %y) - ret i8 %call -} - -declare i16 @__clc_add_sat_impl_s16(i16 %x, i16 %y) - -define i16 @__clc_add_sat_s16(i16 %x, i16 %y) nounwind readnone alwaysinline { - %call = call i16 @__clc_add_sat_impl_s16(i16 %x, i16 %y) - ret i16 %call -} - -declare i16 @__clc_add_sat_impl_u16(i16 %x, i16 %y) - -define i16 @__clc_add_sat_u16(i16 %x, i16 %y) nounwind readnone alwaysinline { - %call = call i16 @__clc_add_sat_impl_u16(i16 %x, i16 %y) - ret i16 %call -} - -declare i32 @__clc_add_sat_impl_s32(i32 %x, i32 %y) - -define i32 @__clc_add_sat_s32(i32 %x, i32 %y) nounwind readnone alwaysinline { - %call = call i32 @__clc_add_sat_impl_s32(i32 %x, i32 %y) - ret i32 %call -} - -declare i32 @__clc_add_sat_impl_u32(i32 %x, i32 %y) - -define i32 @__clc_add_sat_u32(i32 %x, i32 %y) nounwind readnone alwaysinline { - %call = call i32 @__clc_add_sat_impl_u32(i32 %x, i32 %y) - ret i32 %call -} - -declare i64 @__clc_add_sat_impl_s64(i64 %x,
[libclc] r315018 - configure: Fix handling of directories with compats only source lists
Author: jvesely Date: Thu Oct 5 13:16:28 2017 New Revision: 315018 URL: http://llvm.org/viewvc/llvm-project?rev=315018&view=rev Log: configure: Fix handling of directories with compats only source lists Reviewer: Jeroen Ketema Signed-off-by: Jan Vesely Modified: libclc/trunk/configure.py Modified: libclc/trunk/configure.py URL: http://llvm.org/viewvc/llvm-project/libclc/trunk/configure.py?rev=315018&r1=315017&r2=315018&view=diff == --- libclc/trunk/configure.py (original) +++ libclc/trunk/configure.py Thu Oct 5 13:16:28 2017 @@ -185,7 +185,8 @@ for target in targets: incdirs = filter(os.path.isdir, [os.path.join(srcdir, subdir, 'include') for subdir in subdirs]) - libdirs = filter(lambda d: os.path.isfile(os.path.join(d, 'SOURCES')), + libdirs = filter(lambda d: os.path.isfile(os.path.join(d, 'SOURCES')) or + os.path.isfile(os.path.join(d, 'SOURCES_' + llvm_string_version)), [os.path.join(srcdir, subdir, 'lib') for subdir in subdirs]) # The above are iterables in python3 but we might use them multiple times @@ -218,7 +219,8 @@ for target in targets: for libdir in libdirs: subdir_list_file = os.path.join(libdir, 'SOURCES') - manifest_deps.add(subdir_list_file) + if os.path.exists(subdir_list_file): +manifest_deps.add(subdir_list_file) override_list_file = os.path.join(libdir, 'OVERRIDES') compat_list_file = os.path.join(libdir, 'SOURCES_' + llvm_string_version) @@ -227,6 +229,7 @@ for target in targets: # Build compat list if os.path.exists(compat_list_file): +manifest_deps.add(compat_list_file) for compat in open(compat_list_file).readlines(): compat = compat.rstrip() compats.append(compat) @@ -243,7 +246,8 @@ for target in targets: override = override.rstrip() sources_seen.add(override) - for src in open(subdir_list_file).readlines() + compats: + files = open(subdir_list_file).readlines() if os.path.exists(subdir_list_file) else [] + for src in files + compats: src = src.rstrip() if src not in sources_seen: sources_seen.add(src) ___ cfe-commits mailing list cfe-commits@lists.llvm.org http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
[libclc] r315170 - ldexp: Fix double precision function return type
Author: jvesely Date: Sat Oct 7 23:56:14 2017 New Revision: 315170 URL: http://llvm.org/viewvc/llvm-project?rev=315170&view=rev Log: ldexp: Fix double precision function return type Fixes ~1200 external calls from nvtpx library. Reviewer: Jeroen Ketema Signed-off-by: Jan Vesely Modified: libclc/trunk/generic/include/math/clc_ldexp.h Modified: libclc/trunk/generic/include/math/clc_ldexp.h URL: http://llvm.org/viewvc/llvm-project/libclc/trunk/generic/include/math/clc_ldexp.h?rev=315170&r1=315169&r2=315170&view=diff == --- libclc/trunk/generic/include/math/clc_ldexp.h (original) +++ libclc/trunk/generic/include/math/clc_ldexp.h Sat Oct 7 23:56:14 2017 @@ -2,5 +2,5 @@ _CLC_DEF _CLC_OVERLOAD float __clc_ldexp #ifdef cl_khr_fp64 #pragma OPENCL EXTENSION cl_khr_fp64 : enable - _CLC_DEF _CLC_OVERLOAD float __clc_ldexp(double, int); + _CLC_DEF _CLC_OVERLOAD double __clc_ldexp(double, int); #endif ___ cfe-commits mailing list cfe-commits@lists.llvm.org http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
[libclc] r315189 - math/nextafter: Use custom declaration inc file
Author: jvesely Date: Sun Oct 8 12:33:55 2017 New Revision: 315189 URL: http://llvm.org/viewvc/llvm-project?rev=315189&view=rev Log: math/nextafter: Use custom declaration inc file Reviewer: Jeroen Ketema Signed-off-by: Jan Vesely Added: libclc/trunk/generic/include/clc/math/nextafter.inc Modified: libclc/trunk/generic/include/clc/math/nextafter.h Modified: libclc/trunk/generic/include/clc/math/nextafter.h URL: http://llvm.org/viewvc/llvm-project/libclc/trunk/generic/include/clc/math/nextafter.h?rev=315189&r1=315188&r2=315189&view=diff == --- libclc/trunk/generic/include/clc/math/nextafter.h (original) +++ libclc/trunk/generic/include/clc/math/nextafter.h Sun Oct 8 12:33:55 2017 @@ -1,5 +1,2 @@ -#define __CLC_BODY -#define __CLC_FUNCTION nextafter +#define __CLC_BODY #include -#undef __CLC_FUNCTION -#undef __CLC_BODY Added: libclc/trunk/generic/include/clc/math/nextafter.inc URL: http://llvm.org/viewvc/llvm-project/libclc/trunk/generic/include/clc/math/nextafter.inc?rev=315189&view=auto == --- libclc/trunk/generic/include/clc/math/nextafter.inc (added) +++ libclc/trunk/generic/include/clc/math/nextafter.inc Sun Oct 8 12:33:55 2017 @@ -0,0 +1 @@ +_CLC_OVERLOAD _CLC_DECL __CLC_GENTYPE nextafter(__CLC_GENTYPE a, __CLC_GENTYPE b); ___ cfe-commits mailing list cfe-commits@lists.llvm.org http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
[libclc] r315191 - ptx: Use __clc_nextafter to implement nextafter
Author: jvesely Date: Sun Oct 8 12:34:00 2017 New Revision: 315191 URL: http://llvm.org/viewvc/llvm-project?rev=315191&view=rev Log: ptx: Use __clc_nextafter to implement nextafter using clang builtin results in external library call Reviewer: Jeroen Ketema Signed-off-by: Jan Vesely Added: libclc/trunk/ptx/lib/SOURCES libclc/trunk/ptx/lib/math/ libclc/trunk/ptx/lib/math/nextafter.cl Added: libclc/trunk/ptx/lib/SOURCES URL: http://llvm.org/viewvc/llvm-project/libclc/trunk/ptx/lib/SOURCES?rev=315191&view=auto == --- libclc/trunk/ptx/lib/SOURCES (added) +++ libclc/trunk/ptx/lib/SOURCES Sun Oct 8 12:34:00 2017 @@ -0,0 +1 @@ +math/nextafter.cl Added: libclc/trunk/ptx/lib/math/nextafter.cl URL: http://llvm.org/viewvc/llvm-project/libclc/trunk/ptx/lib/math/nextafter.cl?rev=315191&view=auto == --- libclc/trunk/ptx/lib/math/nextafter.cl (added) +++ libclc/trunk/ptx/lib/math/nextafter.cl Sun Oct 8 12:34:00 2017 @@ -0,0 +1,10 @@ +#include +#include "../lib/clcmacro.h" +#include + +_CLC_DEFINE_BINARY_BUILTIN(float, nextafter, __clc_nextafter, float, float) + +#ifdef cl_khr_fp64 +#pragma OPENCL EXTENSION cl_khr_fp64 : enable +_CLC_DEFINE_BINARY_BUILTIN(double, nextafter, __clc_nextafter, double, double) +#endif ___ cfe-commits mailing list cfe-commits@lists.llvm.org http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
[libclc] r315190 - Do not include clc_nextafter header globally
Author: jvesely Date: Sun Oct 8 12:33:58 2017 New Revision: 315190 URL: http://llvm.org/viewvc/llvm-project?rev=315190&view=rev Log: Do not include clc_nextafter header globally Drop unused clc/math/clc_nextafter.h header Reviewer: Jeroen Ketema Signed-off-by: Jan Vesely Removed: libclc/trunk/generic/include/clc/math/clc_nextafter.h Modified: libclc/trunk/amdgpu/lib/math/nextafter.cl libclc/trunk/generic/include/clc/clc.h libclc/trunk/generic/include/clc/math/gentype.inc Modified: libclc/trunk/amdgpu/lib/math/nextafter.cl URL: http://llvm.org/viewvc/llvm-project/libclc/trunk/amdgpu/lib/math/nextafter.cl?rev=315190&r1=315189&r2=315190&view=diff == --- libclc/trunk/amdgpu/lib/math/nextafter.cl (original) +++ libclc/trunk/amdgpu/lib/math/nextafter.cl Sun Oct 8 12:33:58 2017 @@ -1,5 +1,6 @@ #include #include "../lib/clcmacro.h" +#include _CLC_DEFINE_BINARY_BUILTIN(float, nextafter, __clc_nextafter, float, float) Modified: libclc/trunk/generic/include/clc/clc.h URL: http://llvm.org/viewvc/llvm-project/libclc/trunk/generic/include/clc/clc.h?rev=315190&r1=315189&r2=315190&view=diff == --- libclc/trunk/generic/include/clc/clc.h (original) +++ libclc/trunk/generic/include/clc/clc.h Sun Oct 8 12:33:58 2017 @@ -264,9 +264,4 @@ #include #include -/* libclc internal defintions */ -#ifdef __CLC_INTERNAL -#include -#endif - #pragma OPENCL EXTENSION all : disable Removed: libclc/trunk/generic/include/clc/math/clc_nextafter.h URL: http://llvm.org/viewvc/llvm-project/libclc/trunk/generic/include/clc/math/clc_nextafter.h?rev=315189&view=auto == --- libclc/trunk/generic/include/clc/math/clc_nextafter.h (original) +++ libclc/trunk/generic/include/clc/math/clc_nextafter.h (removed) @@ -1,11 +0,0 @@ -#define __CLC_BODY - -#define __CLC_FUNCTION nextafter -#include -#undef __CLC_FUNCTION - -#define __CLC_FUNCTION __clc_nextafter -#include -#undef __CLC_FUNCTION - -#undef __CLC_BODY Modified: libclc/trunk/generic/include/clc/math/gentype.inc URL: http://llvm.org/viewvc/llvm-project/libclc/trunk/generic/include/clc/math/gentype.inc?rev=315190&r1=315189&r2=315190&view=diff == --- libclc/trunk/generic/include/clc/math/gentype.inc (original) +++ libclc/trunk/generic/include/clc/math/gentype.inc Sun Oct 8 12:33:58 2017 @@ -54,6 +54,8 @@ #ifndef __FLOAT_ONLY #ifdef cl_khr_fp64 +#pragma OPENCL EXTENSION cl_khr_fp64 : enable + #define __CLC_SCALAR_GENTYPE double #define __CLC_FPSIZE 64 ___ cfe-commits mailing list cfe-commits@lists.llvm.org http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
[libclc] r315188 - math/binary_decl.inc: Do not declare mixed float/double functions
Author: jvesely Date: Sun Oct 8 12:33:53 2017 New Revision: 315188 URL: http://llvm.org/viewvc/llvm-project?rev=315188&view=rev Log: math/binary_decl.inc: Do not declare mixed float/double functions fmin/fmax only need vector/scalar mix Reviewer: Jeroen Ketema Signed-off-by: Jan Vesely Modified: libclc/trunk/generic/include/clc/math/binary_decl.inc Modified: libclc/trunk/generic/include/clc/math/binary_decl.inc URL: http://llvm.org/viewvc/llvm-project/libclc/trunk/generic/include/clc/math/binary_decl.inc?rev=315188&r1=315187&r2=315188&view=diff == --- libclc/trunk/generic/include/clc/math/binary_decl.inc (original) +++ libclc/trunk/generic/include/clc/math/binary_decl.inc Sun Oct 8 12:33:53 2017 @@ -1,6 +1,2 @@ _CLC_OVERLOAD _CLC_DECL __CLC_GENTYPE __CLC_FUNCTION(__CLC_GENTYPE a, __CLC_GENTYPE b); -_CLC_OVERLOAD _CLC_DECL __CLC_GENTYPE __CLC_FUNCTION(__CLC_GENTYPE a, float b); - -#ifdef cl_khr_fp64 -_CLC_OVERLOAD _CLC_DECL __CLC_GENTYPE __CLC_FUNCTION(__CLC_GENTYPE a, double b); -#endif +_CLC_OVERLOAD _CLC_DECL __CLC_GENTYPE __CLC_FUNCTION(__CLC_GENTYPE a, __CLC_SCALAR_GENTYPE b); ___ cfe-commits mailing list cfe-commits@lists.llvm.org http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
[libclc] r315193 - travis: Make sure we report failure even if only earlier checked files fail
Author: jvesely Date: Sun Oct 8 13:07:58 2017 New Revision: 315193 URL: http://llvm.org/viewvc/llvm-project?rev=315193&view=rev Log: travis: Make sure we report failure even if only earlier checked files fail for loop would only report status of the last command v2: return '1' call test instead of '[' Reviewer: Jeroen Ketema Signed-off-by: Jan Vesely Modified: libclc/trunk/.travis.yml Modified: libclc/trunk/.travis.yml URL: http://llvm.org/viewvc/llvm-project/libclc/trunk/.travis.yml?rev=315193&r1=315192&r2=315193&view=diff == --- libclc/trunk/.travis.yml (original) +++ libclc/trunk/.travis.yml Sun Oct 8 13:07:58 2017 @@ -55,6 +55,8 @@ matrix: script: - $PYTHON ./configure.py --with-llvm-config=$LLVM_CONFIG --with-cxx-compiler=$CXX && make -j4 - - for f in $CHECK_FILES; do -./check_external_calls.sh built_libs/$f; -done + - ret=0; +for f in $CHECK_FILES; do +./check_external_calls.sh built_libs/$f || ret=1; +done; +test $ret -eq 0 ___ cfe-commits mailing list cfe-commits@lists.llvm.org http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
[libclc] r315192 - check_external_calls.sh: Print number of calls in tested file.
Author: jvesely Date: Sun Oct 8 13:07:56 2017 New Revision: 315192 URL: http://llvm.org/viewvc/llvm-project?rev=315192&view=rev Log: check_external_calls.sh: Print number of calls in tested file. Reviewer: Jeroen Ketema Signed-off-by: Jan Vesely Modified: libclc/trunk/check_external_calls.sh Modified: libclc/trunk/check_external_calls.sh URL: http://llvm.org/viewvc/llvm-project/libclc/trunk/check_external_calls.sh?rev=315192&r1=315191&r2=315192&view=diff == --- libclc/trunk/check_external_calls.sh (original) +++ libclc/trunk/check_external_calls.sh Sun Oct 8 13:07:56 2017 @@ -24,9 +24,10 @@ TMP_FILE=$(mktemp) # Check for calls. Calls to llvm intrinsics are OK $DIS < $FILE | grep ' call ' | grep -v '@llvm' > "$TMP_FILE" +COUNT=$(wc -l < "$TMP_FILE") -if [ $(wc -l < "$TMP_FILE") -ne "0" ]; then - echo "ERROR: unresolved calls detected" +if [ "$COUNT" -ne "0" ]; then + echo "ERROR: $COUNT unresolved calls detected in $FILE" cat $TMP_FILE ret=1 else ___ cfe-commits mailing list cfe-commits@lists.llvm.org http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
[libclc] r315341 - Make image builtins r600/llvm-3.9 only
Author: jvesely Date: Tue Oct 10 11:10:21 2017 New Revision: 315341 URL: http://llvm.org/viewvc/llvm-project?rev=315341&view=rev Log: Make image builtins r600/llvm-3.9 only The implementation uses r600 sepcific intrinsics LLVM-4 switched to _ro_t and _rw_t image types Portions of the code can be moved back as more targets/llvm versions add image support Reviewer: Aaron Watry Signed-off-by: Jan Vesely Added: libclc/trunk/r600/lib/SOURCES_3.9 - copied, changed from r315235, libclc/trunk/amdgpu/lib/SOURCES libclc/trunk/r600/lib/image/get_image_attributes_impl.ll - copied, changed from r315235, libclc/trunk/amdgpu/lib/image/get_image_attributes_impl.ll libclc/trunk/r600/lib/image/get_image_channel_data_type.cl - copied, changed from r315235, libclc/trunk/amdgpu/lib/image/get_image_channel_data_type.cl libclc/trunk/r600/lib/image/get_image_channel_order.cl - copied, changed from r315235, libclc/trunk/amdgpu/lib/image/get_image_channel_order.cl libclc/trunk/r600/lib/image/get_image_depth.cl - copied, changed from r315235, libclc/trunk/amdgpu/lib/image/get_image_depth.cl libclc/trunk/r600/lib/image/get_image_dim.cl - copied, changed from r315235, libclc/trunk/generic/lib/image/get_image_dim.cl libclc/trunk/r600/lib/image/get_image_height.cl - copied, changed from r315235, libclc/trunk/amdgpu/lib/image/get_image_height.cl libclc/trunk/r600/lib/image/get_image_width.cl - copied, changed from r315235, libclc/trunk/amdgpu/lib/image/get_image_width.cl libclc/trunk/r600/lib/image/read_image_impl.ll - copied, changed from r315235, libclc/trunk/amdgpu/lib/image/read_image_impl.ll libclc/trunk/r600/lib/image/read_imagef.cl - copied, changed from r315235, libclc/trunk/amdgpu/lib/image/read_imagef.cl libclc/trunk/r600/lib/image/read_imagei.cl - copied, changed from r315235, libclc/trunk/amdgpu/lib/image/read_imagei.cl libclc/trunk/r600/lib/image/read_imageui.cl - copied, changed from r315235, libclc/trunk/amdgpu/lib/image/read_imageui.cl libclc/trunk/r600/lib/image/write_image_impl.ll - copied, changed from r315235, libclc/trunk/amdgpu/lib/image/write_image_impl.ll libclc/trunk/r600/lib/image/write_imagef.cl - copied, changed from r315235, libclc/trunk/amdgpu/lib/image/write_imagef.cl libclc/trunk/r600/lib/image/write_imagei.cl - copied, changed from r315235, libclc/trunk/amdgpu/lib/image/write_imagei.cl libclc/trunk/r600/lib/image/write_imageui.cl - copied, changed from r315235, libclc/trunk/amdgpu/lib/image/write_imageui.cl Removed: libclc/trunk/amdgpu/lib/image/get_image_attributes_impl.ll libclc/trunk/amdgpu/lib/image/get_image_channel_data_type.cl libclc/trunk/amdgpu/lib/image/get_image_channel_order.cl libclc/trunk/amdgpu/lib/image/get_image_depth.cl libclc/trunk/amdgpu/lib/image/get_image_height.cl libclc/trunk/amdgpu/lib/image/get_image_width.cl libclc/trunk/amdgpu/lib/image/read_image_impl.ll libclc/trunk/amdgpu/lib/image/read_imagef.cl libclc/trunk/amdgpu/lib/image/read_imagei.cl libclc/trunk/amdgpu/lib/image/read_imageui.cl libclc/trunk/amdgpu/lib/image/write_image_impl.ll libclc/trunk/amdgpu/lib/image/write_imagef.cl libclc/trunk/amdgpu/lib/image/write_imagei.cl libclc/trunk/amdgpu/lib/image/write_imageui.cl libclc/trunk/generic/lib/image/get_image_dim.cl Modified: libclc/trunk/amdgpu/lib/SOURCES libclc/trunk/generic/lib/SOURCES Modified: libclc/trunk/amdgpu/lib/SOURCES URL: http://llvm.org/viewvc/llvm-project/libclc/trunk/amdgpu/lib/SOURCES?rev=315341&r1=315340&r2=315341&view=diff == --- libclc/trunk/amdgpu/lib/SOURCES (original) +++ libclc/trunk/amdgpu/lib/SOURCES Tue Oct 10 11:10:21 2017 @@ -1,16 +1,2 @@ math/nextafter.cl math/sqrt.cl -image/get_image_width.cl -image/get_image_height.cl -image/get_image_depth.cl -image/get_image_channel_data_type.cl -image/get_image_channel_order.cl -image/get_image_attributes_impl.ll -image/read_imagef.cl -image/read_imagei.cl -image/read_imageui.cl -image/read_image_impl.ll -image/write_imagef.cl -image/write_imagei.cl -image/write_imageui.cl -image/write_image_impl.ll Removed: libclc/trunk/amdgpu/lib/image/get_image_attributes_impl.ll URL: http://llvm.org/viewvc/llvm-project/libclc/trunk/amdgpu/lib/image/get_image_attributes_impl.ll?rev=315340&view=auto == --- libclc/trunk/amdgpu/lib/image/get_image_attributes_impl.ll (original) +++ libclc/trunk/amdgpu/lib/image/get_image_attributes_impl.ll (removed) @@ -1,87 +0,0 @@ -%opencl.image2d_t = type opaque -%opencl.image3d_t = type opaque - -declare i32 @llvm.OpenCL.image.get.resource.id.2d( - %opencl.image2d_t addrspace(1)*) nounwind readnone -declare i32 @llvm.OpenCL.image.get.resource.id.3d( - %opencl.image3d_t addrspace(1)*)
[libclc] r315343 - travis: enable checks of nvptx libraries
Author: jvesely Date: Tue Oct 10 11:10:25 2017 New Revision: 315343 URL: http://llvm.org/viewvc/llvm-project?rev=315343&view=rev Log: travis: enable checks of nvptx libraries Reviewer: Jeroen Ketema Signed-off-by: Jan Vesely Modified: libclc/trunk/.travis.yml Modified: libclc/trunk/.travis.yml URL: http://llvm.org/viewvc/llvm-project/libclc/trunk/.travis.yml?rev=315343&r1=315342&r2=315343&view=diff == --- libclc/trunk/.travis.yml (original) +++ libclc/trunk/.travis.yml Tue Oct 10 11:10:25 2017 @@ -13,7 +13,7 @@ matrix: - LABEL="make gcc LLVM-3.9" - LLVM_VERSION=3.9 - LLVM_CONFIG="llvm-config-${LLVM_VERSION}" -- CHECK_FILES="barts-r600--.bc cayman-r600--.bc cedar-r600--.bc cypress-r600--.bc tahiti-amdgcn--.bc amdgcn--amdhsa.bc" +- CHECK_FILES="barts-r600--.bc cayman-r600--.bc cedar-r600--.bc cypress-r600--.bc tahiti-amdgcn--.bc amdgcn--amdhsa.bc nvptx--nvidiacl.bc nvptx64--nvidiacl.bc" addons: apt: sources: @@ -28,7 +28,7 @@ matrix: - LABEL="make gcc LLVM-4.0" - LLVM_VERSION=4.0 - LLVM_CONFIG="llvm-config-${LLVM_VERSION}" -- CHECK_FILES="barts-r600--.bc cayman-r600--.bc cedar-r600--.bc cypress-r600--.bc tahiti-amdgcn--.bc amdgcn--amdhsa.bc" +- CHECK_FILES="barts-r600--.bc cayman-r600--.bc cedar-r600--.bc cypress-r600--.bc tahiti-amdgcn--.bc amdgcn--amdhsa.bc nvptx--nvidiacl.bc nvptx64--nvidiacl.bc" addons: apt: sources: @@ -43,7 +43,7 @@ matrix: - LABEL="make gcc LLVM-5.0" - LLVM_VERSION=5.0 - LLVM_CONFIG="llvm-config-${LLVM_VERSION}" -- CHECK_FILES="barts-r600--.bc cayman-r600--.bc cedar-r600--.bc cypress-r600--.bc tahiti-amdgcn--.bc amdgcn--amdhsa.bc" +- CHECK_FILES="barts-r600--.bc cayman-r600--.bc cedar-r600--.bc cypress-r600--.bc tahiti-amdgcn--.bc amdgcn--amdhsa.bc nvptx--nvidiacl.bc nvptx64--nvidiacl.bc" addons: apt: sources: ___ cfe-commits mailing list cfe-commits@lists.llvm.org http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
[libclc] r315342 - travis: Enable external function call checks on llvm-{4, 5}
Author: jvesely Date: Tue Oct 10 11:10:24 2017 New Revision: 315342 URL: http://llvm.org/viewvc/llvm-project?rev=315342&view=rev Log: travis: Enable external function call checks on llvm-{4,5} Reviewer: Aaron Watry Signed-off-by: Jan Vesely Modified: libclc/trunk/.travis.yml Modified: libclc/trunk/.travis.yml URL: http://llvm.org/viewvc/llvm-project/libclc/trunk/.travis.yml?rev=315342&r1=315341&r2=315342&view=diff == --- libclc/trunk/.travis.yml (original) +++ libclc/trunk/.travis.yml Tue Oct 10 11:10:24 2017 @@ -28,6 +28,7 @@ matrix: - LABEL="make gcc LLVM-4.0" - LLVM_VERSION=4.0 - LLVM_CONFIG="llvm-config-${LLVM_VERSION}" +- CHECK_FILES="barts-r600--.bc cayman-r600--.bc cedar-r600--.bc cypress-r600--.bc tahiti-amdgcn--.bc amdgcn--amdhsa.bc" addons: apt: sources: @@ -42,6 +43,7 @@ matrix: - LABEL="make gcc LLVM-5.0" - LLVM_VERSION=5.0 - LLVM_CONFIG="llvm-config-${LLVM_VERSION}" +- CHECK_FILES="barts-r600--.bc cayman-r600--.bc cedar-r600--.bc cypress-r600--.bc tahiti-amdgcn--.bc amdgcn--amdhsa.bc" addons: apt: sources: ___ cfe-commits mailing list cfe-commits@lists.llvm.org http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
r316181 - AMDGPU: Parse r600 CPU name early and expose FMAF capability
Author: jvesely Date: Thu Oct 19 13:40:13 2017 New Revision: 316181 URL: http://llvm.org/viewvc/llvm-project?rev=316181&view=rev Log: AMDGPU: Parse r600 CPU name early and expose FMAF capability Improve amdgcn macro test Differential Revision: https://reviews.llvm.org/D38667 Modified: cfe/trunk/lib/Basic/Targets/AMDGPU.cpp cfe/trunk/test/Preprocessor/predefined-arch-macros.c Modified: cfe/trunk/lib/Basic/Targets/AMDGPU.cpp URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/Basic/Targets/AMDGPU.cpp?rev=316181&r1=316180&r2=316181&view=diff == --- cfe/trunk/lib/Basic/Targets/AMDGPU.cpp (original) +++ cfe/trunk/lib/Basic/Targets/AMDGPU.cpp Thu Oct 19 13:40:13 2017 @@ -308,7 +308,8 @@ void AMDGPUTargetInfo::setAddressSpaceMa AMDGPUTargetInfo::AMDGPUTargetInfo(const llvm::Triple &Triple, const TargetOptions &Opts) -: TargetInfo(Triple), GPU(isAMDGCN(Triple) ? GK_GFX6 : GK_R600), +: TargetInfo(Triple), + GPU(isAMDGCN(Triple) ? GK_GFX6 : parseR600Name(Opts.CPU)), hasFP64(false), hasFMAF(false), hasLDEXPF(false), AS(isGenericZero(Triple)) { if (getTriple().getArch() == llvm::Triple::amdgcn) { @@ -316,6 +317,11 @@ AMDGPUTargetInfo::AMDGPUTargetInfo(const hasFMAF = true; hasLDEXPF = true; } + if (getTriple().getArch() == llvm::Triple::r600) { +if (GPU == GK_EVERGREEN_DOUBLE_OPS || GPU == GK_CAYMAN) { + hasFMAF = true; +} + } auto IsGenericZero = isGenericZero(Triple); resetDataLayout(getTriple().getArch() == llvm::Triple::amdgcn ? (IsGenericZero ? DataLayoutStringSIGenericIsZero Modified: cfe/trunk/test/Preprocessor/predefined-arch-macros.c URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/test/Preprocessor/predefined-arch-macros.c?rev=316181&r1=316180&r2=316181&view=diff == --- cfe/trunk/test/Preprocessor/predefined-arch-macros.c (original) +++ cfe/trunk/test/Preprocessor/predefined-arch-macros.c Thu Oct 19 13:40:13 2017 @@ -2378,6 +2378,9 @@ // RUN: -target amdgcn-unknown-unknown \ // RUN: | FileCheck -match-full-lines %s -check-prefix=CHECK_AMDGCN // CHECK_AMDGCN: #define __AMDGCN__ 1 +// CHECK_AMDGCN: #define __HAS_FMAF__ 1 +// CHECK_AMDGCN: #define __HAS_FP64__ 1 +// CHECK_AMDGCN: #define __HAS_LDEXPF__ 1 // Begin r600 tests // @@ -2385,3 +2388,10 @@ // RUN: -target r600-unknown-unknown \ // RUN: | FileCheck -match-full-lines %s -check-prefix=CHECK_R600 // CHECK_R600: #define __R600__ 1 +// CHECK_R600-NOT: #define __HAS_FMAF__ 1 + +// RUN: %clang -march=amdgcn -mcpu=cypress -E -dM %s -o - 2>&1 \ +// RUN: -target r600-unknown-unknown \ +// RUN: | FileCheck -match-full-lines %s -check-prefix=CHECK_R600_FP64 +// CHECK_R600_FP64-DAG: #define __R600__ 1 +// CHECK_R600_FP64-DAG: #define __HAS_FMAF__ 1 ___ cfe-commits mailing list cfe-commits@lists.llvm.org http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
[libclc] r316238 - r600: Add missing datalayout to .ll files
Author: jvesely Date: Fri Oct 20 14:00:31 2017 New Revision: 316238 URL: http://llvm.org/viewvc/llvm-project?rev=316238&view=rev Log: r600: Add missing datalayout to .ll files Signed-off-by: Jan Vesely Acked-by: Aaron Watry Modified: libclc/trunk/r600/lib/synchronization/barrier_impl.ll libclc/trunk/r600/lib/workitem/get_global_size.ll libclc/trunk/r600/lib/workitem/get_local_size.ll libclc/trunk/r600/lib/workitem/get_num_groups.ll Modified: libclc/trunk/r600/lib/synchronization/barrier_impl.ll URL: http://llvm.org/viewvc/llvm-project/libclc/trunk/r600/lib/synchronization/barrier_impl.ll?rev=316238&r1=316237&r2=316238&view=diff == --- libclc/trunk/r600/lib/synchronization/barrier_impl.ll (original) +++ libclc/trunk/r600/lib/synchronization/barrier_impl.ll Fri Oct 20 14:00:31 2017 @@ -1,5 +1,7 @@ declare void @llvm.r600.group.barrier() #0 +target datalayout = "e-p:32:32-i64:64-v16:16-v24:32-v32:32-v48:64-v96:128-v192:256-v256:256-v512:512-v1024:1024-v2048:2048-n32:64" + define void @barrier(i32 %flags) #1 { entry: ; We should call mem_fence here, but that is not implemented for r600 yet Modified: libclc/trunk/r600/lib/workitem/get_global_size.ll URL: http://llvm.org/viewvc/llvm-project/libclc/trunk/r600/lib/workitem/get_global_size.ll?rev=316238&r1=316237&r2=316238&view=diff == --- libclc/trunk/r600/lib/workitem/get_global_size.ll (original) +++ libclc/trunk/r600/lib/workitem/get_global_size.ll Fri Oct 20 14:00:31 2017 @@ -2,6 +2,8 @@ declare i32 @llvm.r600.read.global.size. declare i32 @llvm.r600.read.global.size.y() nounwind readnone declare i32 @llvm.r600.read.global.size.z() nounwind readnone +target datalayout = "e-p:32:32-i64:64-v16:16-v24:32-v32:32-v48:64-v96:128-v192:256-v256:256-v512:512-v1024:1024-v2048:2048-n32:64" + define i32 @get_global_size(i32 %dim) nounwind readnone alwaysinline { switch i32 %dim, label %default [i32 0, label %x_dim i32 1, label %y_dim i32 2, label %z_dim] x_dim: Modified: libclc/trunk/r600/lib/workitem/get_local_size.ll URL: http://llvm.org/viewvc/llvm-project/libclc/trunk/r600/lib/workitem/get_local_size.ll?rev=316238&r1=316237&r2=316238&view=diff == --- libclc/trunk/r600/lib/workitem/get_local_size.ll (original) +++ libclc/trunk/r600/lib/workitem/get_local_size.ll Fri Oct 20 14:00:31 2017 @@ -2,6 +2,8 @@ declare i32 @llvm.r600.read.local.size.x declare i32 @llvm.r600.read.local.size.y() nounwind readnone declare i32 @llvm.r600.read.local.size.z() nounwind readnone +target datalayout = "e-p:32:32-i64:64-v16:16-v24:32-v32:32-v48:64-v96:128-v192:256-v256:256-v512:512-v1024:1024-v2048:2048-n32:64" + define i32 @get_local_size(i32 %dim) nounwind readnone alwaysinline { switch i32 %dim, label %default [i32 0, label %x_dim i32 1, label %y_dim i32 2, label %z_dim] x_dim: Modified: libclc/trunk/r600/lib/workitem/get_num_groups.ll URL: http://llvm.org/viewvc/llvm-project/libclc/trunk/r600/lib/workitem/get_num_groups.ll?rev=316238&r1=316237&r2=316238&view=diff == --- libclc/trunk/r600/lib/workitem/get_num_groups.ll (original) +++ libclc/trunk/r600/lib/workitem/get_num_groups.ll Fri Oct 20 14:00:31 2017 @@ -2,6 +2,8 @@ declare i32 @llvm.r600.read.ngroups.x() declare i32 @llvm.r600.read.ngroups.y() nounwind readnone declare i32 @llvm.r600.read.ngroups.z() nounwind readnone +target datalayout = "e-p:32:32-i64:64-v16:16-v24:32-v32:32-v48:64-v96:128-v192:256-v256:256-v512:512-v1024:1024-v2048:2048-n32:64" + define i32 @get_num_groups(i32 %dim) nounwind readnone alwaysinline { switch i32 %dim, label %default [i32 0, label %x_dim i32 1, label %y_dim i32 2, label %z_dim] x_dim: ___ cfe-commits mailing list cfe-commits@lists.llvm.org http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
[libclc] r316239 - amdgcn: Add missing datalayout info to .ll files
Author: jvesely Date: Fri Oct 20 14:10:18 2017 New Revision: 316239 URL: http://llvm.org/viewvc/llvm-project?rev=316239&view=rev Log: amdgcn: Add missing datalayout info to .ll files Signed-off-by: Jan Vesely Acked-by: Aaron Watry Modified: libclc/trunk/amdgcn/lib/cl_khr_int64_extended_atomics/minmax_helpers.ll libclc/trunk/amdgcn/lib/workitem/get_global_size.39.ll libclc/trunk/amdgcn/lib/workitem/get_global_size.ll libclc/trunk/amdgcn/lib/workitem/get_local_size.39.ll libclc/trunk/amdgcn/lib/workitem/get_local_size.ll libclc/trunk/amdgcn/lib/workitem/get_num_groups.39.ll libclc/trunk/amdgcn/lib/workitem/get_num_groups.ll Modified: libclc/trunk/amdgcn/lib/cl_khr_int64_extended_atomics/minmax_helpers.ll URL: http://llvm.org/viewvc/llvm-project/libclc/trunk/amdgcn/lib/cl_khr_int64_extended_atomics/minmax_helpers.ll?rev=316239&r1=316238&r2=316239&view=diff == --- libclc/trunk/amdgcn/lib/cl_khr_int64_extended_atomics/minmax_helpers.ll (original) +++ libclc/trunk/amdgcn/lib/cl_khr_int64_extended_atomics/minmax_helpers.ll Fri Oct 20 14:10:18 2017 @@ -1,3 +1,5 @@ +target datalayout = "e-p:32:32-p1:64:64-p2:64:64-p3:32:32-p4:64:64-p5:32:32-i64:64-v16:16-v24:32-v32:32-v48:64-v96:128-v192:256-v256:256-v512:512-v1024:1024-v2048:2048-n32:64" + define i64 @__clc__sync_fetch_and_min_global_8(i64 addrspace(1)* nocapture %ptr, i64 %value) nounwind alwaysinline { entry: %0 = atomicrmw volatile min i64 addrspace(1)* %ptr, i64 %value seq_cst Modified: libclc/trunk/amdgcn/lib/workitem/get_global_size.39.ll URL: http://llvm.org/viewvc/llvm-project/libclc/trunk/amdgcn/lib/workitem/get_global_size.39.ll?rev=316239&r1=316238&r2=316239&view=diff == --- libclc/trunk/amdgcn/lib/workitem/get_global_size.39.ll (original) +++ libclc/trunk/amdgcn/lib/workitem/get_global_size.39.ll Fri Oct 20 14:10:18 2017 @@ -2,6 +2,8 @@ declare i32 @llvm.r600.read.global.size. declare i32 @llvm.r600.read.global.size.y() nounwind readnone declare i32 @llvm.r600.read.global.size.z() nounwind readnone +target datalayout = "e-p:32:32-p1:64:64-p2:64:64-p3:32:32-p4:64:64-p5:32:32-i64:64-v16:16-v24:32-v32:32-v48:64-v96:128-v192:256-v256:256-v512:512-v1024:1024-v2048:2048-n32:64" + define i32 @get_global_size(i32 %dim) nounwind readnone alwaysinline { switch i32 %dim, label %default [i32 0, label %x_dim i32 1, label %y_dim i32 2, label %z_dim] x_dim: Modified: libclc/trunk/amdgcn/lib/workitem/get_global_size.ll URL: http://llvm.org/viewvc/llvm-project/libclc/trunk/amdgcn/lib/workitem/get_global_size.ll?rev=316239&r1=316238&r2=316239&view=diff == --- libclc/trunk/amdgcn/lib/workitem/get_global_size.ll (original) +++ libclc/trunk/amdgcn/lib/workitem/get_global_size.ll Fri Oct 20 14:10:18 2017 @@ -2,6 +2,8 @@ declare i32 @llvm.r600.read.global.size. declare i32 @llvm.r600.read.global.size.y() nounwind readnone declare i32 @llvm.r600.read.global.size.z() nounwind readnone +target datalayout = "e-p:32:32-p1:64:64-p2:64:64-p3:32:32-p4:64:64-p5:32:32-i64:64-v16:16-v24:32-v32:32-v48:64-v96:128-v192:256-v256:256-v512:512-v1024:1024-v2048:2048-n32:64" + define i64 @get_global_size(i32 %dim) nounwind readnone alwaysinline { switch i32 %dim, label %default [i32 0, label %x_dim i32 1, label %y_dim i32 2, label %z_dim] x_dim: Modified: libclc/trunk/amdgcn/lib/workitem/get_local_size.39.ll URL: http://llvm.org/viewvc/llvm-project/libclc/trunk/amdgcn/lib/workitem/get_local_size.39.ll?rev=316239&r1=316238&r2=316239&view=diff == --- libclc/trunk/amdgcn/lib/workitem/get_local_size.39.ll (original) +++ libclc/trunk/amdgcn/lib/workitem/get_local_size.39.ll Fri Oct 20 14:10:18 2017 @@ -2,6 +2,8 @@ declare i32 @llvm.r600.read.local.size.x declare i32 @llvm.r600.read.local.size.y() nounwind readnone declare i32 @llvm.r600.read.local.size.z() nounwind readnone +target datalayout = "e-p:32:32-p1:64:64-p2:64:64-p3:32:32-p4:64:64-p5:32:32-i64:64-v16:16-v24:32-v32:32-v48:64-v96:128-v192:256-v256:256-v512:512-v1024:1024-v2048:2048-n32:64" + define i32 @get_local_size(i32 %dim) nounwind readnone alwaysinline { switch i32 %dim, label %default [i32 0, label %x_dim i32 1, label %y_dim i32 2, label %z_dim] x_dim: Modified: libclc/trunk/amdgcn/lib/workitem/get_local_size.ll URL: http://llvm.org/viewvc/llvm-project/libclc/trunk/amdgcn/lib/workitem/get_local_size.ll?rev=316239&r1=316238&r2=316239&view=diff == --- libclc/trunk/amdgcn/lib/workitem/get_local_size.ll (original) +++ libclc/trunk/amdgcn/lib/workitem/get_local_size.ll Fri Oct 20 14:10:18 2017 @@ -2,6 +2,8 @@ declare i32 @llvm.r600.read.local.size.x declare i32 @llvm.r600.read.l
[libclc] r316290 - shared: Implement aligned vector loads (vloada_half)
Author: jvesely Date: Sun Oct 22 07:21:56 2017 New Revision: 316290 URL: http://llvm.org/viewvc/llvm-project?rev=316290&view=rev Log: shared: Implement aligned vector loads (vloada_half) Passes newly posted piglits on turks and carrizo v2: add scalar vloada_half v3: fix typo Reviewer: Aaron Watry Signed-off-by: Jan Vesely Modified: libclc/trunk/generic/include/clc/shared/vload.h libclc/trunk/generic/lib/shared/vload.cl libclc/trunk/generic/lib/shared/vload_half.inc Modified: libclc/trunk/generic/include/clc/shared/vload.h URL: http://llvm.org/viewvc/llvm-project/libclc/trunk/generic/include/clc/shared/vload.h?rev=316290&r1=316289&r2=316290&view=diff == --- libclc/trunk/generic/include/clc/shared/vload.h (original) +++ libclc/trunk/generic/include/clc/shared/vload.h Sun Oct 22 07:21:56 2017 @@ -12,22 +12,24 @@ _CLC_VECTOR_VLOAD_DECL(SUFFIX, MEM_TYPE, PRIM_TYPE, __private) \ _CLC_VECTOR_VLOAD_DECL(SUFFIX, MEM_TYPE, PRIM_TYPE, __local) \ _CLC_VECTOR_VLOAD_DECL(SUFFIX, MEM_TYPE, PRIM_TYPE, __constant) \ - _CLC_VECTOR_VLOAD_DECL(SUFFIX, MEM_TYPE, PRIM_TYPE, __global) \ + _CLC_VECTOR_VLOAD_DECL(SUFFIX, MEM_TYPE, PRIM_TYPE, __global) #define _CLC_VECTOR_VLOAD_PRIM1(PRIM_TYPE) \ - _CLC_VECTOR_VLOAD_PRIM3(, PRIM_TYPE, PRIM_TYPE) \ + _CLC_VECTOR_VLOAD_PRIM3(, PRIM_TYPE, PRIM_TYPE) -#define _CLC_VECTOR_VLOAD_PRIM() \ -_CLC_VECTOR_VLOAD_PRIM1(char) \ -_CLC_VECTOR_VLOAD_PRIM1(uchar) \ -_CLC_VECTOR_VLOAD_PRIM1(short) \ -_CLC_VECTOR_VLOAD_PRIM1(ushort) \ -_CLC_VECTOR_VLOAD_PRIM1(int) \ -_CLC_VECTOR_VLOAD_PRIM1(uint) \ -_CLC_VECTOR_VLOAD_PRIM1(long) \ -_CLC_VECTOR_VLOAD_PRIM1(ulong) \ -_CLC_VECTOR_VLOAD_PRIM1(float) \ -_CLC_VECTOR_VLOAD_PRIM3(_half, half, float) +// Declare vector load prototypes +_CLC_VECTOR_VLOAD_PRIM1(char) +_CLC_VECTOR_VLOAD_PRIM1(uchar) +_CLC_VECTOR_VLOAD_PRIM1(short) +_CLC_VECTOR_VLOAD_PRIM1(ushort) +_CLC_VECTOR_VLOAD_PRIM1(int) +_CLC_VECTOR_VLOAD_PRIM1(uint) +_CLC_VECTOR_VLOAD_PRIM1(long) +_CLC_VECTOR_VLOAD_PRIM1(ulong) +_CLC_VECTOR_VLOAD_PRIM1(float) +_CLC_VECTOR_VLOAD_PRIM3(_half, half, float) +// Use suffix to declare aligned vloada_halfN +_CLC_VECTOR_VLOAD_PRIM3(a_half, half, float) #ifdef cl_khr_fp64 #pragma OPENCL EXTENSION cl_khr_fp64: enable @@ -38,15 +40,19 @@ _CLC_VECTOR_VLOAD_PRIM1(half) #endif -_CLC_VECTOR_VLOAD_PRIM() -// Plain vload_half also needs to be declared +// Scalar vload_half also needs to be declared _CLC_VLOAD_DECL(_half, half, float, , __constant) _CLC_VLOAD_DECL(_half, half, float, , __global) _CLC_VLOAD_DECL(_half, half, float, , __local) _CLC_VLOAD_DECL(_half, half, float, , __private) +// Scalar vloada_half is not part of the specs but CTS expects it +_CLC_VLOAD_DECL(a_half, half, float, , __constant) +_CLC_VLOAD_DECL(a_half, half, float, , __global) +_CLC_VLOAD_DECL(a_half, half, float, , __local) +_CLC_VLOAD_DECL(a_half, half, float, , __private) + #undef _CLC_VLOAD_DECL #undef _CLC_VECTOR_VLOAD_DECL #undef _CLC_VECTOR_VLOAD_PRIM3 #undef _CLC_VECTOR_VLOAD_PRIM1 -#undef _CLC_VECTOR_VLOAD_PRIM Modified: libclc/trunk/generic/lib/shared/vload.cl URL: http://llvm.org/viewvc/llvm-project/libclc/trunk/generic/lib/shared/vload.cl?rev=316290&r1=316289&r2=316290&view=diff == --- libclc/trunk/generic/lib/shared/vload.cl (original) +++ libclc/trunk/generic/lib/shared/vload.cl Sun Oct 22 07:21:56 2017 @@ -85,15 +85,21 @@ float __clc_vload_half_float_helper__pri VEC_LOAD8(val.lo, AS) \ VEC_LOAD8(val.hi, AS) -#define __FUNC(SUFFIX, VEC_SIZE, TYPE, AS) \ +#define __FUNC(SUFFIX, VEC_SIZE, OFFSET_SIZE, TYPE, AS) \ _CLC_OVERLOAD _CLC_DEF TYPE vload_half##SUFFIX(size_t offset, const AS half *mem) { \ offset *= VEC_SIZE; \ TYPE __tmp; \ VEC_LOAD##VEC_SIZE(__tmp, AS) \ return __tmp; \ + } \ + _CLC_OVERLOAD _CLC_DEF TYPE vloada_half##SUFFIX(size_t offset, const AS half *mem) { \ +offset *= OFFSET_SIZE; \ +TYPE __tmp; \ +VEC_LOAD##VEC_SIZE(__tmp, AS) \ +return __tmp; \ } -#define FUNC(SUFFIX, VEC_SIZE, TYPE, AS) __FUNC(SUFFIX, VEC_SIZE, TYPE, AS) +#define FUNC(SUFFIX, VEC_SIZE, OFFSET_SIZE, TYPE, AS) __FUNC(SUFFIX, VEC_SIZE, OFFSET_SIZE, TYPE, AS) #define __CLC_BODY "vload_half.inc" #include Modified: libclc/trunk/generic/lib/shared/vload_half.inc URL: http://llvm.org/viewvc/llvm-project/libclc/trunk/generic/lib/shared/vload_half.inc?rev=316290&r1=316289&r2=316290&view=diff == --- libclc/trunk/generic/lib/shared/vload_half.inc (original) +++ libclc/trunk/generic/lib/shared/vload_half.inc Sun Oct 22 07:21:56 2017 @@ -1,13 +1,23 @@ #if __CLC_FPSIZE == 32 + #ifdef __CLC_VECSIZE - FUNC(__CLC_VECSIZE, __CLC_VECSIZE, __CLC_GENTYPE, __private); - FUNC(__CLC_VECSIZE, __CLC_VECSIZE, __CLC_GENTYPE, __lo
[libclc] r316291 - shared: Implement aligned vector stores (vstorea_half)
Author: jvesely Date: Sun Oct 22 07:21:59 2017 New Revision: 316291 URL: http://llvm.org/viewvc/llvm-project?rev=316291&view=rev Log: shared: Implement aligned vector stores (vstorea_half) Float version passes newly posted piglit tests on turks, float and double pass on carrizo. v2: scalar vstorea_half v3: fix typo Reviewer: Aaron Watry Signed-off-by: Jan Vesely Modified: libclc/trunk/generic/include/clc/shared/vstore.h libclc/trunk/generic/lib/shared/vstore.cl libclc/trunk/generic/lib/shared/vstore_half.inc Modified: libclc/trunk/generic/include/clc/shared/vstore.h URL: http://llvm.org/viewvc/llvm-project/libclc/trunk/generic/include/clc/shared/vstore.h?rev=316291&r1=316290&r2=316291&view=diff == --- libclc/trunk/generic/include/clc/shared/vstore.h (original) +++ libclc/trunk/generic/include/clc/shared/vstore.h Sun Oct 22 07:21:59 2017 @@ -16,37 +16,52 @@ #define _CLC_VECTOR_VSTORE_PRIM1(PRIM_TYPE) \ _CLC_VECTOR_VSTORE_PRIM3(,PRIM_TYPE, PRIM_TYPE) \ -#define _CLC_VECTOR_VSTORE_PRIM() \ -_CLC_VECTOR_VSTORE_PRIM1(char) \ -_CLC_VECTOR_VSTORE_PRIM1(uchar) \ -_CLC_VECTOR_VSTORE_PRIM1(short) \ -_CLC_VECTOR_VSTORE_PRIM1(ushort) \ -_CLC_VECTOR_VSTORE_PRIM1(int) \ -_CLC_VECTOR_VSTORE_PRIM1(uint) \ -_CLC_VECTOR_VSTORE_PRIM1(long) \ -_CLC_VECTOR_VSTORE_PRIM1(ulong) \ -_CLC_VECTOR_VSTORE_PRIM1(float) \ -_CLC_VECTOR_VSTORE_PRIM3(_half, half, float) +_CLC_VECTOR_VSTORE_PRIM1(char) +_CLC_VECTOR_VSTORE_PRIM1(uchar) +_CLC_VECTOR_VSTORE_PRIM1(short) +_CLC_VECTOR_VSTORE_PRIM1(ushort) +_CLC_VECTOR_VSTORE_PRIM1(int) +_CLC_VECTOR_VSTORE_PRIM1(uint) +_CLC_VECTOR_VSTORE_PRIM1(long) +_CLC_VECTOR_VSTORE_PRIM1(ulong) +_CLC_VECTOR_VSTORE_PRIM1(float) +_CLC_VECTOR_VSTORE_PRIM3(_half, half, float) +// Use suffix to declare aligned vstorea_halfN +_CLC_VECTOR_VSTORE_PRIM3(a_half, half, float) #ifdef cl_khr_fp64 _CLC_VECTOR_VSTORE_PRIM1(double) _CLC_VECTOR_VSTORE_PRIM3(_half, half, double) + // Use suffix to declare aligned vstorea_halfN + _CLC_VECTOR_VSTORE_PRIM3(a_half, half, double) + + // Scalar vstore_half also needs to be declared _CLC_VSTORE_DECL(_half, half, double, , __private) _CLC_VSTORE_DECL(_half, half, double, , __local) _CLC_VSTORE_DECL(_half, half, double, , __global) + + // Scalar vstorea_half is not part of the specs but CTS expects it + _CLC_VSTORE_DECL(a_half, half, double, , __private) + _CLC_VSTORE_DECL(a_half, half, double, , __local) + _CLC_VSTORE_DECL(a_half, half, double, , __global) #endif #ifdef cl_khr_fp16 _CLC_VECTOR_VSTORE_PRIM1(half) #endif -_CLC_VECTOR_VSTORE_PRIM() +// Scalar vstore_half also needs to be declared _CLC_VSTORE_DECL(_half, half, float, , __private) _CLC_VSTORE_DECL(_half, half, float, , __local) _CLC_VSTORE_DECL(_half, half, float, , __global) +// Scalar vstorea_half is not part of the specs but CTS expects it +_CLC_VSTORE_DECL(a_half, half, float, , __private) +_CLC_VSTORE_DECL(a_half, half, float, , __local) +_CLC_VSTORE_DECL(a_half, half, float, , __global) + + #undef _CLC_VSTORE_DECL #undef _CLC_VECTOR_VSTORE_DECL #undef _CLC_VECTOR_VSTORE_PRIM3 #undef _CLC_VECTOR_VSTORE_PRIM1 -#undef _CLC_VECTOR_VSTORE_PRIM Modified: libclc/trunk/generic/lib/shared/vstore.cl URL: http://llvm.org/viewvc/llvm-project/libclc/trunk/generic/lib/shared/vstore.cl?rev=316291&r1=316290&r2=316291&view=diff == --- libclc/trunk/generic/lib/shared/vstore.cl (original) +++ libclc/trunk/generic/lib/shared/vstore.cl Sun Oct 22 07:21:59 2017 @@ -33,23 +33,22 @@ VSTORE_VECTORIZE(__CLC_SCALAR___CLC_GENTYPE, __local) \ VSTORE_VECTORIZE(__CLC_SCALAR___CLC_GENTYPE, __global) \ -#define VSTORE_TYPES() \ -VSTORE_ADDR_SPACES(char) \ -VSTORE_ADDR_SPACES(uchar) \ -VSTORE_ADDR_SPACES(short) \ -VSTORE_ADDR_SPACES(ushort) \ -VSTORE_ADDR_SPACES(int) \ -VSTORE_ADDR_SPACES(uint) \ -VSTORE_ADDR_SPACES(long) \ -VSTORE_ADDR_SPACES(ulong) \ -VSTORE_ADDR_SPACES(float) \ +VSTORE_ADDR_SPACES(char) +VSTORE_ADDR_SPACES(uchar) +VSTORE_ADDR_SPACES(short) +VSTORE_ADDR_SPACES(ushort) +VSTORE_ADDR_SPACES(int) +VSTORE_ADDR_SPACES(uint) +VSTORE_ADDR_SPACES(long) +VSTORE_ADDR_SPACES(ulong) +VSTORE_ADDR_SPACES(float) -VSTORE_TYPES() #ifdef cl_khr_fp64 #pragma OPENCL EXTENSION cl_khr_fp64 : enable VSTORE_ADDR_SPACES(double) #endif + #ifdef cl_khr_fp16 #pragma OPENCL EXTENSION cl_khr_fp16 : enable VSTORE_ADDR_SPACES(half) @@ -95,13 +94,17 @@ DECLARE_HELPER(double, __local, __builti VEC_STORE8(STYPE, AS, val.lo) \ VEC_STORE8(STYPE, AS, val.hi) -#define __FUNC(SUFFIX, VEC_SIZE, TYPE, STYPE, AS) \ +#define __FUNC(SUFFIX, VEC_SIZE, OFFSET, TYPE, STYPE, AS) \ _CLC_OVERLOAD _CLC_DEF void vstore_half##SUFFIX(TYPE vec, size_t offset, AS half *mem) { \ offset *= VEC_SIZE; \ VEC_STORE##VEC_SIZE(STYPE, AS, ve
[libclc] r316588 - math: Implement native_log10
Author: jvesely Date: Wed Oct 25 09:49:22 2017 New Revision: 316588 URL: http://llvm.org/viewvc/llvm-project?rev=316588&view=rev Log: math: Implement native_log10 Use llvm instrinsic by default Provide amdgpu workaround v2: drop old amd copyrights Reviewer: Aaron Watry Reviewed-by: Vedran Miletić Signed-off-by: Jan Vesely Added: libclc/trunk/amdgpu/lib/math/native_log10.cl libclc/trunk/amdgpu/lib/math/native_log10.inc libclc/trunk/generic/include/clc/math/native_log10.h libclc/trunk/generic/include/clc/math/native_log10.inc libclc/trunk/generic/lib/math/native_log10.cl libclc/trunk/generic/lib/math/native_log10.inc Modified: libclc/trunk/amdgpu/lib/SOURCES libclc/trunk/generic/include/clc/clc.h libclc/trunk/generic/lib/SOURCES Modified: libclc/trunk/amdgpu/lib/SOURCES URL: http://llvm.org/viewvc/llvm-project/libclc/trunk/amdgpu/lib/SOURCES?rev=316588&r1=316587&r2=316588&view=diff == --- libclc/trunk/amdgpu/lib/SOURCES (original) +++ libclc/trunk/amdgpu/lib/SOURCES Wed Oct 25 09:49:22 2017 @@ -1,3 +1,4 @@ math/native_log.cl +math/native_log10.cl math/nextafter.cl math/sqrt.cl Added: libclc/trunk/amdgpu/lib/math/native_log10.cl URL: http://llvm.org/viewvc/llvm-project/libclc/trunk/amdgpu/lib/math/native_log10.cl?rev=316588&view=auto == --- libclc/trunk/amdgpu/lib/math/native_log10.cl (added) +++ libclc/trunk/amdgpu/lib/math/native_log10.cl Wed Oct 25 09:49:22 2017 @@ -0,0 +1,5 @@ +#include + +#define __CLC_BODY +#define __FLOAT_ONLY +#include Added: libclc/trunk/amdgpu/lib/math/native_log10.inc URL: http://llvm.org/viewvc/llvm-project/libclc/trunk/amdgpu/lib/math/native_log10.inc?rev=316588&view=auto == --- libclc/trunk/amdgpu/lib/math/native_log10.inc (added) +++ libclc/trunk/amdgpu/lib/math/native_log10.inc Wed Oct 25 09:49:22 2017 @@ -0,0 +1,3 @@ +_CLC_OVERLOAD _CLC_DEF __CLC_GENTYPE native_log10(__CLC_GENTYPE val) { + return native_log2(val) * (M_LN2_F / M_LN10_F); +} Modified: libclc/trunk/generic/include/clc/clc.h URL: http://llvm.org/viewvc/llvm-project/libclc/trunk/generic/include/clc/clc.h?rev=316588&r1=316587&r2=316588&view=diff == --- libclc/trunk/generic/include/clc/clc.h (original) +++ libclc/trunk/generic/include/clc/clc.h Wed Oct 25 09:49:22 2017 @@ -104,6 +104,7 @@ #include #include #include +#include #include #include #include Added: libclc/trunk/generic/include/clc/math/native_log10.h URL: http://llvm.org/viewvc/llvm-project/libclc/trunk/generic/include/clc/math/native_log10.h?rev=316588&view=auto == --- libclc/trunk/generic/include/clc/math/native_log10.h (added) +++ libclc/trunk/generic/include/clc/math/native_log10.h Wed Oct 25 09:49:22 2017 @@ -0,0 +1,5 @@ +#define __CLC_BODY +#define __FLOAT_ONLY +#include +#undef __CLC_BODY +#undef __FLOAT_ONLY Added: libclc/trunk/generic/include/clc/math/native_log10.inc URL: http://llvm.org/viewvc/llvm-project/libclc/trunk/generic/include/clc/math/native_log10.inc?rev=316588&view=auto == --- libclc/trunk/generic/include/clc/math/native_log10.inc (added) +++ libclc/trunk/generic/include/clc/math/native_log10.inc Wed Oct 25 09:49:22 2017 @@ -0,0 +1 @@ +_CLC_OVERLOAD _CLC_DECL __CLC_GENTYPE native_log10(__CLC_GENTYPE a); Modified: libclc/trunk/generic/lib/SOURCES URL: http://llvm.org/viewvc/llvm-project/libclc/trunk/generic/lib/SOURCES?rev=316588&r1=316587&r2=316588&view=diff == --- libclc/trunk/generic/lib/SOURCES (original) +++ libclc/trunk/generic/lib/SOURCES Wed Oct 25 09:49:22 2017 @@ -120,6 +120,7 @@ math/logb.cl math/mad.cl math/modf.cl math/native_log.cl +math/native_log10.cl math/native_log2.cl math/tables.cl math/clc_nextafter.cl Added: libclc/trunk/generic/lib/math/native_log10.cl URL: http://llvm.org/viewvc/llvm-project/libclc/trunk/generic/lib/math/native_log10.cl?rev=316588&view=auto == --- libclc/trunk/generic/lib/math/native_log10.cl (added) +++ libclc/trunk/generic/lib/math/native_log10.cl Wed Oct 25 09:49:22 2017 @@ -0,0 +1,10 @@ +#include + +#define __CLC_FUNCTION __clc_native_log10 +#define __CLC_INTRINSIC "llvm.log10" +#undef cl_khr_fp64 +#include + +#define __CLC_BODY +#define __FLOAT_ONLY +#include Added: libclc/trunk/generic/lib/math/native_log10.inc URL: http://llvm.org/viewvc/llvm-project/libclc/trunk/generic/lib/math/native_log10.inc?rev=316588&view=auto == ---
[libclc] r316587 - amdgpu/math: Don't use llvm instrinsic for native_log
Author: jvesely Date: Wed Oct 25 09:49:17 2017 New Revision: 316587 URL: http://llvm.org/viewvc/llvm-project?rev=316587&view=rev Log: amdgpu/math: Don't use llvm instrinsic for native_log AMDGPU targets don't have insturction for it, so it'll be expanded to C * log2 anyway. v2: use native_log2 instead of the more precise sw implementation v3: move to amdgpu v4: drop old AMD copyright Reviewer: Aaron Watry Signed-off-by: Jan Vesely Added: libclc/trunk/amdgpu/lib/math/native_log.cl libclc/trunk/amdgpu/lib/math/native_log.inc Modified: libclc/trunk/amdgpu/lib/SOURCES Modified: libclc/trunk/amdgpu/lib/SOURCES URL: http://llvm.org/viewvc/llvm-project/libclc/trunk/amdgpu/lib/SOURCES?rev=316587&r1=316586&r2=316587&view=diff == --- libclc/trunk/amdgpu/lib/SOURCES (original) +++ libclc/trunk/amdgpu/lib/SOURCES Wed Oct 25 09:49:17 2017 @@ -1,2 +1,3 @@ +math/native_log.cl math/nextafter.cl math/sqrt.cl Added: libclc/trunk/amdgpu/lib/math/native_log.cl URL: http://llvm.org/viewvc/llvm-project/libclc/trunk/amdgpu/lib/math/native_log.cl?rev=316587&view=auto == --- libclc/trunk/amdgpu/lib/math/native_log.cl (added) +++ libclc/trunk/amdgpu/lib/math/native_log.cl Wed Oct 25 09:49:17 2017 @@ -0,0 +1,5 @@ +#include + +#define __CLC_BODY +#define __FLOAT_ONLY +#include Added: libclc/trunk/amdgpu/lib/math/native_log.inc URL: http://llvm.org/viewvc/llvm-project/libclc/trunk/amdgpu/lib/math/native_log.inc?rev=316587&view=auto == --- libclc/trunk/amdgpu/lib/math/native_log.inc (added) +++ libclc/trunk/amdgpu/lib/math/native_log.inc Wed Oct 25 09:49:17 2017 @@ -0,0 +1,3 @@ +_CLC_OVERLOAD _CLC_DEF __CLC_GENTYPE native_log(__CLC_GENTYPE val) { + return native_log2(val) * (1.0f / M_LOG2E_F); +} ___ cfe-commits mailing list cfe-commits@lists.llvm.org http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
[libclc] r338898 - amdgcn: Use __constant AS for amdgcn builtins.
Author: jvesely Date: Fri Aug 3 08:14:08 2018 New Revision: 338898 URL: http://llvm.org/viewvc/llvm-project?rev=338898&view=rev Log: amdgcn: Use __constant AS for amdgcn builtins. Fixes build after clang r338707. Reviewer: matthew.arsena...@amd.com Signed-off-by: Jan Vesely Modified: libclc/trunk/amdgcn-amdhsa/lib/workitem/get_global_size.cl libclc/trunk/amdgcn-amdhsa/lib/workitem/get_local_size.cl libclc/trunk/amdgcn/lib/workitem/get_global_offset.cl libclc/trunk/amdgcn/lib/workitem/get_work_dim.cl Modified: libclc/trunk/amdgcn-amdhsa/lib/workitem/get_global_size.cl URL: http://llvm.org/viewvc/llvm-project/libclc/trunk/amdgcn-amdhsa/lib/workitem/get_global_size.cl?rev=338898&r1=338897&r2=338898&view=diff == --- libclc/trunk/amdgcn-amdhsa/lib/workitem/get_global_size.cl (original) +++ libclc/trunk/amdgcn-amdhsa/lib/workitem/get_global_size.cl Fri Aug 3 08:14:08 2018 @@ -1,6 +1,8 @@ #include -#if __clang_major__ >= 7 +#if __clang_major__ >= 8 +#define CONST_AS __constant +#elif __clang_major__ >= 7 #define CONST_AS __attribute__((address_space(4))) #else #define CONST_AS __attribute__((address_space(2))) Modified: libclc/trunk/amdgcn-amdhsa/lib/workitem/get_local_size.cl URL: http://llvm.org/viewvc/llvm-project/libclc/trunk/amdgcn-amdhsa/lib/workitem/get_local_size.cl?rev=338898&r1=338897&r2=338898&view=diff == --- libclc/trunk/amdgcn-amdhsa/lib/workitem/get_local_size.cl (original) +++ libclc/trunk/amdgcn-amdhsa/lib/workitem/get_local_size.cl Fri Aug 3 08:14:08 2018 @@ -1,6 +1,8 @@ #include -#if __clang_major__ >= 7 +#if __clang_major__ >= 8 +#define CONST_AS __constant +#elif __clang_major__ >= 7 #define CONST_AS __attribute__((address_space(4))) #else #define CONST_AS __attribute__((address_space(2))) Modified: libclc/trunk/amdgcn/lib/workitem/get_global_offset.cl URL: http://llvm.org/viewvc/llvm-project/libclc/trunk/amdgcn/lib/workitem/get_global_offset.cl?rev=338898&r1=338897&r2=338898&view=diff == --- libclc/trunk/amdgcn/lib/workitem/get_global_offset.cl (original) +++ libclc/trunk/amdgcn/lib/workitem/get_global_offset.cl Fri Aug 3 08:14:08 2018 @@ -1,6 +1,8 @@ #include -#if __clang_major__ >= 7 +#if __clang_major__ >= 8 +#define CONST_AS __constant +#elif __clang_major__ >= 7 #define CONST_AS __attribute__((address_space(4))) #else #define CONST_AS __attribute__((address_space(2))) Modified: libclc/trunk/amdgcn/lib/workitem/get_work_dim.cl URL: http://llvm.org/viewvc/llvm-project/libclc/trunk/amdgcn/lib/workitem/get_work_dim.cl?rev=338898&r1=338897&r2=338898&view=diff == --- libclc/trunk/amdgcn/lib/workitem/get_work_dim.cl (original) +++ libclc/trunk/amdgcn/lib/workitem/get_work_dim.cl Fri Aug 3 08:14:08 2018 @@ -1,6 +1,8 @@ #include -#if __clang_major__ >= 7 +#if __clang_major__ >= 8 +#define CONST_AS __constant +#elif __clang_major__ >= 7 #define CONST_AS __attribute__((address_space(4))) #else #define CONST_AS __attribute__((address_space(2))) ___ cfe-commits mailing list cfe-commits@lists.llvm.org http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
[libclc] r324371 - vstore_half: Add support for custom rounding functions
Author: jvesely Date: Tue Feb 6 10:44:39 2018 New Revision: 324371 URL: http://llvm.org/viewvc/llvm-project?rev=324371&view=rev Log: vstore_half: Add support for custom rounding functions Add another layer of indirection This will be used for specific rounding modes Reviewer: Jeroen Ketema Signed-off-by: Jan Vesely Modified: libclc/trunk/generic/lib/shared/vstore.cl Modified: libclc/trunk/generic/lib/shared/vstore.cl URL: http://llvm.org/viewvc/llvm-project/libclc/trunk/generic/lib/shared/vstore.cl?rev=324371&r1=324370&r2=324371&view=diff == --- libclc/trunk/generic/lib/shared/vstore.cl (original) +++ libclc/trunk/generic/lib/shared/vstore.cl Tue Feb 6 10:44:39 2018 @@ -75,41 +75,57 @@ DECLARE_HELPER(double, __global, __built DECLARE_HELPER(double, __local, __builtin_store_half); #endif -#define VEC_STORE1(STYPE, AS, val) __clc_vstore_half_##STYPE##_helper##AS (val, &mem[offset++]); +#define VEC_STORE1(STYPE, AS, val, ROUNDF) __clc_vstore_half_##STYPE##_helper##AS (ROUNDF(val), &mem[offset++]); -#define VEC_STORE2(STYPE, AS, val) \ - VEC_STORE1(STYPE, AS, val.lo) \ - VEC_STORE1(STYPE, AS, val.hi) -#define VEC_STORE3(STYPE, AS, val) \ - VEC_STORE1(STYPE, AS, val.s0) \ - VEC_STORE1(STYPE, AS, val.s1) \ - VEC_STORE1(STYPE, AS, val.s2) -#define VEC_STORE4(STYPE, AS, val) \ - VEC_STORE2(STYPE, AS, val.lo) \ - VEC_STORE2(STYPE, AS, val.hi) -#define VEC_STORE8(STYPE, AS, val) \ - VEC_STORE4(STYPE, AS, val.lo) \ - VEC_STORE4(STYPE, AS, val.hi) -#define VEC_STORE16(STYPE, AS, val) \ - VEC_STORE8(STYPE, AS, val.lo) \ - VEC_STORE8(STYPE, AS, val.hi) +#define VEC_STORE2(STYPE, AS, val, ROUNDF) \ + VEC_STORE1(STYPE, AS, val.lo, ROUNDF) \ + VEC_STORE1(STYPE, AS, val.hi, ROUNDF) +#define VEC_STORE3(STYPE, AS, val, ROUNDF) \ + VEC_STORE1(STYPE, AS, val.s0, ROUNDF) \ + VEC_STORE1(STYPE, AS, val.s1, ROUNDF) \ + VEC_STORE1(STYPE, AS, val.s2, ROUNDF) +#define VEC_STORE4(STYPE, AS, val, ROUNDF) \ + VEC_STORE2(STYPE, AS, val.lo, ROUNDF) \ + VEC_STORE2(STYPE, AS, val.hi, ROUNDF) +#define VEC_STORE8(STYPE, AS, val, ROUNDF) \ + VEC_STORE4(STYPE, AS, val.lo, ROUNDF) \ + VEC_STORE4(STYPE, AS, val.hi, ROUNDF) +#define VEC_STORE16(STYPE, AS, val, ROUNDF) \ + VEC_STORE8(STYPE, AS, val.lo, ROUNDF) \ + VEC_STORE8(STYPE, AS, val.hi, ROUNDF) -#define __FUNC(SUFFIX, VEC_SIZE, OFFSET, TYPE, STYPE, AS) \ +#define __FUNC(SUFFIX, VEC_SIZE, OFFSET, TYPE, STYPE, AS, ROUNDF) \ _CLC_OVERLOAD _CLC_DEF void vstore_half##SUFFIX(TYPE vec, size_t offset, AS half *mem) { \ offset *= VEC_SIZE; \ -VEC_STORE##VEC_SIZE(STYPE, AS, vec) \ +VEC_STORE##VEC_SIZE(STYPE, AS, vec, ROUNDF) \ } \ _CLC_OVERLOAD _CLC_DEF void vstorea_half##SUFFIX(TYPE vec, size_t offset, AS half *mem) { \ offset *= OFFSET; \ -VEC_STORE##VEC_SIZE(STYPE, AS, vec) \ +VEC_STORE##VEC_SIZE(STYPE, AS, vec, ROUNDF) \ } -#define FUNC(SUFFIX, VEC_SIZE, OFFSET, TYPE, STYPE, AS) __FUNC(SUFFIX, VEC_SIZE, OFFSET, TYPE, STYPE, AS) +_CLC_DEF _CLC_OVERLOAD float __clc_noop(float x) +{ + return x; +} +#ifdef cl_khr_fp64 +_CLC_DEF _CLC_OVERLOAD double __clc_noop(double x) +{ + return x; +} +#endif + +#define __XFUNC(SUFFIX, VEC_SIZE, OFFSET, TYPE, STYPE, AS) \ + __FUNC(SUFFIX, VEC_SIZE, OFFSET, TYPE, STYPE, AS, __clc_noop) + +#define FUNC(SUFFIX, VEC_SIZE, OFFSET, TYPE, STYPE, AS) \ + __XFUNC(SUFFIX, VEC_SIZE, OFFSET, TYPE, STYPE, AS) #define __CLC_BODY "vstore_half.inc" #include #undef __CLC_BODY #undef FUNC +#undef __XFUNC #undef __FUNC #undef VEC_LOAD16 #undef VEC_LOAD8 ___ cfe-commits mailing list cfe-commits@lists.llvm.org http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
[libclc] r324372 - vstore_half: Consolidate declarations
Author: jvesely Date: Tue Feb 6 10:44:41 2018 New Revision: 324372 URL: http://llvm.org/viewvc/llvm-project?rev=324372&view=rev Log: vstore_half: Consolidate declarations Add support for rounding suffix Reviewer: Jeroen Ketema Signed-off-by: Jan Vesely Modified: libclc/trunk/generic/include/clc/shared/vstore.h Modified: libclc/trunk/generic/include/clc/shared/vstore.h URL: http://llvm.org/viewvc/llvm-project/libclc/trunk/generic/include/clc/shared/vstore.h?rev=324372&r1=324371&r2=324372&view=diff == --- libclc/trunk/generic/include/clc/shared/vstore.h (original) +++ libclc/trunk/generic/include/clc/shared/vstore.h Tue Feb 6 10:44:41 2018 @@ -1,20 +1,30 @@ -#define _CLC_VSTORE_DECL(SUFFIX, PRIM_TYPE, VEC_TYPE, WIDTH, ADDR_SPACE) \ - _CLC_OVERLOAD _CLC_DECL void vstore##SUFFIX##WIDTH(VEC_TYPE vec, size_t offset, ADDR_SPACE PRIM_TYPE *out); +#define _CLC_VSTORE_DECL(SUFFIX, PRIM_TYPE, VEC_TYPE, WIDTH, ADDR_SPACE, RND) \ + _CLC_OVERLOAD _CLC_DECL void vstore##SUFFIX##WIDTH##RND(VEC_TYPE vec, size_t offset, ADDR_SPACE PRIM_TYPE *out); -#define _CLC_VECTOR_VSTORE_DECL(SUFFIX, MEM_TYPE, PRIM_TYPE, ADDR_SPACE) \ - _CLC_VSTORE_DECL(SUFFIX, MEM_TYPE, PRIM_TYPE##2, 2, ADDR_SPACE) \ - _CLC_VSTORE_DECL(SUFFIX, MEM_TYPE, PRIM_TYPE##3, 3, ADDR_SPACE) \ - _CLC_VSTORE_DECL(SUFFIX, MEM_TYPE, PRIM_TYPE##4, 4, ADDR_SPACE) \ - _CLC_VSTORE_DECL(SUFFIX, MEM_TYPE, PRIM_TYPE##8, 8, ADDR_SPACE) \ - _CLC_VSTORE_DECL(SUFFIX, MEM_TYPE, PRIM_TYPE##16, 16, ADDR_SPACE) - -#define _CLC_VECTOR_VSTORE_PRIM3(SUFFIX, MEM_TYPE, PRIM_TYPE) \ - _CLC_VECTOR_VSTORE_DECL(SUFFIX, MEM_TYPE, PRIM_TYPE, __private) \ - _CLC_VECTOR_VSTORE_DECL(SUFFIX, MEM_TYPE, PRIM_TYPE, __local) \ - _CLC_VECTOR_VSTORE_DECL(SUFFIX, MEM_TYPE, PRIM_TYPE, __global) \ +#define _CLC_VECTOR_VSTORE_DECL(SUFFIX, MEM_TYPE, PRIM_TYPE, ADDR_SPACE, RND) \ + _CLC_VSTORE_DECL(SUFFIX, MEM_TYPE, PRIM_TYPE##2, 2, ADDR_SPACE, RND) \ + _CLC_VSTORE_DECL(SUFFIX, MEM_TYPE, PRIM_TYPE##3, 3, ADDR_SPACE, RND) \ + _CLC_VSTORE_DECL(SUFFIX, MEM_TYPE, PRIM_TYPE##4, 4, ADDR_SPACE, RND) \ + _CLC_VSTORE_DECL(SUFFIX, MEM_TYPE, PRIM_TYPE##8, 8, ADDR_SPACE, RND) \ + _CLC_VSTORE_DECL(SUFFIX, MEM_TYPE, PRIM_TYPE##16, 16, ADDR_SPACE, RND) + +#define _CLC_VECTOR_VSTORE_PRIM3(SUFFIX, MEM_TYPE, PRIM_TYPE, RND) \ + _CLC_VECTOR_VSTORE_DECL(SUFFIX, MEM_TYPE, PRIM_TYPE, __private, RND) \ + _CLC_VECTOR_VSTORE_DECL(SUFFIX, MEM_TYPE, PRIM_TYPE, __local, RND) \ + _CLC_VECTOR_VSTORE_DECL(SUFFIX, MEM_TYPE, PRIM_TYPE, __global, RND) #define _CLC_VECTOR_VSTORE_PRIM1(PRIM_TYPE) \ - _CLC_VECTOR_VSTORE_PRIM3(,PRIM_TYPE, PRIM_TYPE) \ + _CLC_VECTOR_VSTORE_PRIM3(,PRIM_TYPE, PRIM_TYPE, ) + +#define _CLC_VECTOR_VSTORE_HALF_PRIM1(PRIM_TYPE, RND) \ + _CLC_VSTORE_DECL(_half, half, PRIM_TYPE, , __private, RND) \ + _CLC_VSTORE_DECL(_half, half, PRIM_TYPE, , __local, RND) \ + _CLC_VSTORE_DECL(_half, half, PRIM_TYPE, , __global, RND) \ + _CLC_VECTOR_VSTORE_PRIM3(_half, half, PRIM_TYPE, RND) \ + _CLC_VSTORE_DECL(a_half, half, PRIM_TYPE, , __private, RND) \ + _CLC_VSTORE_DECL(a_half, half, PRIM_TYPE, , __local, RND) \ + _CLC_VSTORE_DECL(a_half, half, PRIM_TYPE, , __global, RND) \ + _CLC_VECTOR_VSTORE_PRIM3(a_half, half, PRIM_TYPE, RND) _CLC_VECTOR_VSTORE_PRIM1(char) _CLC_VECTOR_VSTORE_PRIM1(uchar) @@ -25,41 +35,18 @@ _CLC_VECTOR_VSTORE_PRIM1(uint) _CLC_VECTOR_VSTORE_PRIM1(long) _CLC_VECTOR_VSTORE_PRIM1(ulong) _CLC_VECTOR_VSTORE_PRIM1(float) -_CLC_VECTOR_VSTORE_PRIM3(_half, half, float) -// Use suffix to declare aligned vstorea_halfN -_CLC_VECTOR_VSTORE_PRIM3(a_half, half, float) + +_CLC_VECTOR_VSTORE_HALF_PRIM1(float,) #ifdef cl_khr_fp64 _CLC_VECTOR_VSTORE_PRIM1(double) - _CLC_VECTOR_VSTORE_PRIM3(_half, half, double) - // Use suffix to declare aligned vstorea_halfN - _CLC_VECTOR_VSTORE_PRIM3(a_half, half, double) - - // Scalar vstore_half also needs to be declared - _CLC_VSTORE_DECL(_half, half, double, , __private) - _CLC_VSTORE_DECL(_half, half, double, , __local) - _CLC_VSTORE_DECL(_half, half, double, , __global) - - // Scalar vstorea_half is not part of the specs but CTS expects it - _CLC_VSTORE_DECL(a_half, half, double, , __private) - _CLC_VSTORE_DECL(a_half, half, double, , __local) - _CLC_VSTORE_DECL(a_half, half, double, , __global) + _CLC_VECTOR_VSTORE_HALF_PRIM1(double,) #endif #ifdef cl_khr_fp16 _CLC_VECTOR_VSTORE_PRIM1(half) #endif -// Scalar vstore_half also needs to be declared -_CLC_VSTORE_DECL(_half, half, float, , __private) -_CLC_VSTORE_DECL(_half, half, float, , __local) -_CLC_VSTORE_DECL(_half, half, float, , __global) - -// Scalar vstorea_half is not part of the specs but CTS expects it -_CLC_VSTORE_DECL(a_half, half, float, , __private) -_CLC_VSTORE_DECL(a_half, half, float, , __local) -_CLC_VSTORE_DECL(a_half, half, float, , __global) - #undef _CLC_VSTORE_DECL #undef _CLC_VECTOR_VSTORE_DECL _
[libclc] r324373 - Add vstore_half_rtz implementation
Author: jvesely Date: Tue Feb 6 10:44:43 2018 New Revision: 324373 URL: http://llvm.org/viewvc/llvm-project?rev=324373&view=rev Log: Add vstore_half_rtz implementation Passes CTS on carrizo Reviewer: Jeroen Ketema Signed-off-by: Jan Vesely Modified: libclc/trunk/generic/include/clc/shared/vstore.h libclc/trunk/generic/lib/shared/vstore.cl Modified: libclc/trunk/generic/include/clc/shared/vstore.h URL: http://llvm.org/viewvc/llvm-project/libclc/trunk/generic/include/clc/shared/vstore.h?rev=324373&r1=324372&r2=324373&view=diff == --- libclc/trunk/generic/include/clc/shared/vstore.h (original) +++ libclc/trunk/generic/include/clc/shared/vstore.h Tue Feb 6 10:44:43 2018 @@ -37,10 +37,12 @@ _CLC_VECTOR_VSTORE_PRIM1(ulong) _CLC_VECTOR_VSTORE_PRIM1(float) _CLC_VECTOR_VSTORE_HALF_PRIM1(float,) +_CLC_VECTOR_VSTORE_HALF_PRIM1(float, _rtz) #ifdef cl_khr_fp64 _CLC_VECTOR_VSTORE_PRIM1(double) _CLC_VECTOR_VSTORE_HALF_PRIM1(double,) + _CLC_VECTOR_VSTORE_HALF_PRIM1(double, _rtz) #endif #ifdef cl_khr_fp16 Modified: libclc/trunk/generic/lib/shared/vstore.cl URL: http://llvm.org/viewvc/llvm-project/libclc/trunk/generic/lib/shared/vstore.cl?rev=324373&r1=324372&r2=324373&view=diff == --- libclc/trunk/generic/lib/shared/vstore.cl (original) +++ libclc/trunk/generic/lib/shared/vstore.cl Tue Feb 6 10:44:43 2018 @@ -108,15 +108,48 @@ _CLC_DEF _CLC_OVERLOAD float __clc_noop( { return x; } +_CLC_DEF _CLC_OVERLOAD float __clc_rtz(float x) +{ + /* Remove lower 13 bits to make sure the number is rounded down */ + int mask = 0xe000; + const int exp = (as_uint(x) >> 23 & 0xff) - 127; + /* Denormals cannot be flushed, and they use different bit for rounding */ + if (exp < -14) + mask <<= min(-(exp + 14), 10); + /* RTZ does not produce Inf for large numbers */ + if (fabs(x) > 65504.0f && !isinf(x)) + return copysign(65504.0f, x); + /* Handle nan corner case */ + if (isnan(x)) + return x; + return as_float(as_uint(x) & mask); +} #ifdef cl_khr_fp64 _CLC_DEF _CLC_OVERLOAD double __clc_noop(double x) { return x; } +_CLC_DEF _CLC_OVERLOAD double __clc_rtz(double x) +{ + /* Remove lower 42 bits to make sure the number is rounded down */ + ulong mask = 0xfc00UL; + const int exp = (as_ulong(x) >> 52 & 0x7ff) - 1023; + /* Denormals cannot be flushed, and they use different bit for rounding */ + if (exp < -14) + mask <<= min(-(exp + 14), 10); + /* RTZ does not produce Inf for large numbers */ + if (fabs(x) > 65504.0 && !isinf(x)) + return copysign(65504.0, x); + /* Handle nan corner case */ + if (isnan(x)) + return x; + return as_double(as_ulong(x) & mask); +} #endif #define __XFUNC(SUFFIX, VEC_SIZE, OFFSET, TYPE, STYPE, AS) \ - __FUNC(SUFFIX, VEC_SIZE, OFFSET, TYPE, STYPE, AS, __clc_noop) + __FUNC(SUFFIX, VEC_SIZE, OFFSET, TYPE, STYPE, AS, __clc_noop) \ + __FUNC(SUFFIX ## _rtz, VEC_SIZE, OFFSET, TYPE, STYPE, AS, __clc_rtz) #define FUNC(SUFFIX, VEC_SIZE, OFFSET, TYPE, STYPE, AS) \ __XFUNC(SUFFIX, VEC_SIZE, OFFSET, TYPE, STYPE, AS) ___ cfe-commits mailing list cfe-commits@lists.llvm.org http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
[libclc] r324370 - vstore_half: Make sure the helper function is always inline
Author: jvesely Date: Tue Feb 6 10:44:35 2018 New Revision: 324370 URL: http://llvm.org/viewvc/llvm-project?rev=324370&view=rev Log: vstore_half: Make sure the helper function is always inline Reviewer: Jeroen Ketema Signed-off-by: Jan Vesely Modified: libclc/trunk/generic/lib/shared/vstore.cl Modified: libclc/trunk/generic/lib/shared/vstore.cl URL: http://llvm.org/viewvc/llvm-project/libclc/trunk/generic/lib/shared/vstore.cl?rev=324370&r1=324369&r2=324370&view=diff == --- libclc/trunk/generic/lib/shared/vstore.cl (original) +++ libclc/trunk/generic/lib/shared/vstore.cl Tue Feb 6 10:44:35 2018 @@ -59,7 +59,7 @@ VSTORE_ADDR_SPACES(float) #define DECLARE_HELPER(STYPE, AS, builtin) void __clc_vstore_half_##STYPE##_helper##AS(STYPE, AS half *); #else #define DECLARE_HELPER(STYPE, AS, __builtin) \ -inline void __clc_vstore_half_##STYPE##_helper##AS(STYPE s, AS half *d) \ +_CLC_DEF void __clc_vstore_half_##STYPE##_helper##AS(STYPE s, AS half *d) \ { \ __builtin(s, d); \ } ___ cfe-commits mailing list cfe-commits@lists.llvm.org http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
[libclc] r324374 - Add vstore_half_rtn implementation
Author: jvesely Date: Tue Feb 6 10:44:45 2018 New Revision: 324374 URL: http://llvm.org/viewvc/llvm-project?rev=324374&view=rev Log: Add vstore_half_rtn implementation Passes CTS on carrizo Reviewer: Jeroen Ketema Signed-off-by: Jan Vesely Modified: libclc/trunk/generic/include/clc/shared/vstore.h libclc/trunk/generic/lib/shared/vstore.cl Modified: libclc/trunk/generic/include/clc/shared/vstore.h URL: http://llvm.org/viewvc/llvm-project/libclc/trunk/generic/include/clc/shared/vstore.h?rev=324374&r1=324373&r2=324374&view=diff == --- libclc/trunk/generic/include/clc/shared/vstore.h (original) +++ libclc/trunk/generic/include/clc/shared/vstore.h Tue Feb 6 10:44:45 2018 @@ -38,11 +38,13 @@ _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) #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) #endif #ifdef cl_khr_fp16 Modified: libclc/trunk/generic/lib/shared/vstore.cl URL: http://llvm.org/viewvc/llvm-project/libclc/trunk/generic/lib/shared/vstore.cl?rev=324374&r1=324373&r2=324374&view=diff == --- libclc/trunk/generic/lib/shared/vstore.cl (original) +++ libclc/trunk/generic/lib/shared/vstore.cl Tue Feb 6 10:44:45 2018 @@ -124,6 +124,26 @@ _CLC_DEF _CLC_OVERLOAD float __clc_rtz(f return x; return as_float(as_uint(x) & mask); } +_CLC_DEF _CLC_OVERLOAD float __clc_rti(float x) +{ + const float inf = copysign(INFINITY, x); + /* Set lower 13 bits */ + int mask = (1 << 13) - 1; + const int exp = (as_uint(x) >> 23 & 0xff) - 127; + /* Denormals cannot be flushed, and they use different bit for rounding */ + if (exp < -14) + mask = (1 << (13 + min(-(exp + 14), 10))) - 1; + /* Handle nan corner case */ + if (isnan(x)) + return x; + const float next = nextafter(as_float(as_uint(x) | mask), inf); + return ((as_uint(x) & mask) == 0) ? x : next; +} +_CLC_DEF _CLC_OVERLOAD float __clc_rtn(float x) +{ + return ((as_uint(x) & 0x8000) == 0) ? __clc_rtz(x) : __clc_rti(x); +} + #ifdef cl_khr_fp64 _CLC_DEF _CLC_OVERLOAD double __clc_noop(double x) { @@ -145,11 +165,31 @@ _CLC_DEF _CLC_OVERLOAD double __clc_rtz( return x; return as_double(as_ulong(x) & mask); } +_CLC_DEF _CLC_OVERLOAD double __clc_rti(double x) +{ + const double inf = copysign((double)INFINITY, x); + /* Set lower 42 bits */ + long mask = (1UL << 42UL) - 1UL; + const int exp = (as_ulong(x) >> 52 & 0x7ff) - 1023; + /* Denormals cannot be flushed, and they use different bit for rounding */ + if (exp < -14) + mask = (1UL << (42UL + min(-(exp + 14), 10))) - 1; + /* Handle nan corner case */ + if (isnan(x)) + return x; + const double next = nextafter(as_double(as_ulong(x) | mask), inf); + return ((as_ulong(x) & mask) == 0) ? x : next; +} +_CLC_DEF _CLC_OVERLOAD double __clc_rtn(double x) +{ + return ((as_ulong(x) & 0x8000UL) == 0) ? __clc_rtz(x) : __clc_rti(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 ## _rtz, VEC_SIZE, OFFSET, TYPE, STYPE, AS, __clc_rtz) \ + __FUNC(SUFFIX ## _rtn, VEC_SIZE, OFFSET, TYPE, STYPE, AS, __clc_rtn) #define FUNC(SUFFIX, VEC_SIZE, OFFSET, TYPE, STYPE, AS) \ __XFUNC(SUFFIX, VEC_SIZE, OFFSET, TYPE, STYPE, AS) ___ cfe-commits mailing list cfe-commits@lists.llvm.org http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
[libclc] r324375 - Add vstore_half_rtp implementation
Author: jvesely Date: Tue Feb 6 10:44:47 2018 New Revision: 324375 URL: http://llvm.org/viewvc/llvm-project?rev=324375&view=rev Log: Add vstore_half_rtp implementation Passes CTS on carrizo Reviewer: Jeroen Ketema Signed-off-by: Jan Vesely Modified: libclc/trunk/generic/include/clc/shared/vstore.h libclc/trunk/generic/lib/shared/vstore.cl Modified: libclc/trunk/generic/include/clc/shared/vstore.h URL: http://llvm.org/viewvc/llvm-project/libclc/trunk/generic/include/clc/shared/vstore.h?rev=324375&r1=324374&r2=324375&view=diff == --- libclc/trunk/generic/include/clc/shared/vstore.h (original) +++ libclc/trunk/generic/include/clc/shared/vstore.h Tue Feb 6 10:44:47 2018 @@ -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 Modified: libclc/trunk/generic/lib/shared/vstore.cl URL: http://llvm.org/viewvc/llvm-project/libclc/trunk/generic/lib/shared/vstore.cl?rev=324375&r1=324374&r2=324375&view=diff == --- libclc/trunk/generic/lib/shared/vstore.cl (original) +++ libclc/trunk/generic/lib/shared/vstore.cl Tue Feb 6 10:44:47 2018 @@ -143,6 +143,10 @@ _CLC_DEF _CLC_OVERLOAD float __clc_rtn(f { return ((as_uint(x) & 0x8000) == 0) ? __clc_rtz(x) : __clc_rti(x); } +_CLC_DEF _CLC_OVERLOAD float __clc_rtp(float x) +{ + return ((as_uint(x) & 0x8000) == 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( { return ((as_ulong(x) & 0x8000UL) == 0) ? __clc_rtz(x) : __clc_rti(x); } +_CLC_DEF _CLC_OVERLOAD double __clc_rtp(double x) +{ + return ((as_ulong(x) & 0x8000UL) == 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) ___ cfe-commits mailing list cfe-commits@lists.llvm.org http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
[libclc] r324376 - Add vstore_half_rte implementation
Author: jvesely Date: Tue Feb 6 10:44:50 2018 New Revision: 324376 URL: http://llvm.org/viewvc/llvm-project?rev=324376&view=rev Log: Add vstore_half_rte implementation Passes CTS on carrizo Reviewer: Jeroen Ketema Signed-off-by: Jan Vesely Modified: libclc/trunk/generic/include/clc/shared/vstore.h libclc/trunk/generic/lib/shared/vstore.cl Modified: libclc/trunk/generic/include/clc/shared/vstore.h URL: http://llvm.org/viewvc/llvm-project/libclc/trunk/generic/include/clc/shared/vstore.h?rev=324376&r1=324375&r2=324376&view=diff == --- libclc/trunk/generic/include/clc/shared/vstore.h (original) +++ libclc/trunk/generic/include/clc/shared/vstore.h Tue Feb 6 10:44:50 2018 @@ -40,6 +40,7 @@ _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) +_CLC_VECTOR_VSTORE_HALF_PRIM1(float, _rte) #ifdef cl_khr_fp64 _CLC_VECTOR_VSTORE_PRIM1(double) @@ -47,6 +48,7 @@ _CLC_VECTOR_VSTORE_HALF_PRIM1(float, _rt _CLC_VECTOR_VSTORE_HALF_PRIM1(double, _rtz) _CLC_VECTOR_VSTORE_HALF_PRIM1(double, _rtn) _CLC_VECTOR_VSTORE_HALF_PRIM1(double, _rtp) + _CLC_VECTOR_VSTORE_HALF_PRIM1(double, _rte) #endif #ifdef cl_khr_fp16 Modified: libclc/trunk/generic/lib/shared/vstore.cl URL: http://llvm.org/viewvc/llvm-project/libclc/trunk/generic/lib/shared/vstore.cl?rev=324376&r1=324375&r2=324376&view=diff == --- libclc/trunk/generic/lib/shared/vstore.cl (original) +++ libclc/trunk/generic/lib/shared/vstore.cl Tue Feb 6 10:44:50 2018 @@ -147,6 +147,27 @@ _CLC_DEF _CLC_OVERLOAD float __clc_rtp(f { return ((as_uint(x) & 0x8000) == 0) ? __clc_rti(x) : __clc_rtz(x); } +_CLC_DEF _CLC_OVERLOAD float __clc_rte(float x) +{ + /* Mantisa + implicit bit */ + const uint mantissa = (as_uint(x) & 0x7f) | (1u << 23); + const int exp = (as_uint(x) >> 23 & 0xff) - 127; + int shift = 13; + if (exp < -14) { + /* The default assumes lower 13 bits are rounded, +* but it might be more for denormals. +* Shifting beyond last == 0b, and qr == 00b is not necessary */ + shift += min(-(exp + 14), 15); + } + int mask = (1 << shift) - 1; + const uint grs = mantissa & mask; + const uint last = mantissa & (1 << shift); + /* IEEE round up rule is: grs > 101b or grs == 100b and last == 1. +* exp > 15 should round to inf. */ + bool roundup = (grs > (1 << (shift - 1))) || + (grs == (1 << (shift - 1)) && last != 0) || (exp > 15); + return roundup ? __clc_rti(x) : __clc_rtz(x); +} #ifdef cl_khr_fp64 _CLC_DEF _CLC_OVERLOAD double __clc_noop(double x) @@ -192,13 +213,35 @@ _CLC_DEF _CLC_OVERLOAD double __clc_rtp( { return ((as_ulong(x) & 0x8000UL) == 0) ? __clc_rti(x) : __clc_rtz(x); } +_CLC_DEF _CLC_OVERLOAD double __clc_rte(double x) +{ + /* Mantisa + implicit bit */ + const ulong mantissa = (as_ulong(x) & 0xf) | (1UL << 52); + const int exp = (as_ulong(x) >> 52 & 0x7ff) - 1023; + int shift = 42; + if (exp < -14) { + /* The default assumes lower 13 bits are rounded, +* but it might be more for denormals. +* Shifting beyond last == 0b, and qr == 00b is not necessary */ + shift += min(-(exp + 14), 15); + } + ulong mask = (1UL << shift) - 1UL; + const ulong grs = mantissa & mask; + const ulong last = mantissa & (1UL << shift); + /* IEEE round up rule is: grs > 101b or grs == 100b and last == 1. +* exp > 15 should round to inf. */ + bool roundup = (grs > (1UL << (shift - 1UL))) || + (grs == (1UL << (shift - 1UL)) && last != 0) || (exp > 15); + return roundup ? __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 ## _rtp, VEC_SIZE, OFFSET, TYPE, STYPE, AS, __clc_rtp) + __FUNC(SUFFIX ## _rtp, VEC_SIZE, OFFSET, TYPE, STYPE, AS, __clc_rtp) \ + __FUNC(SUFFIX ## _rte, VEC_SIZE, OFFSET, TYPE, STYPE, AS, __clc_rte) #define FUNC(SUFFIX, VEC_SIZE, OFFSET, TYPE, STYPE, AS) \ __XFUNC(SUFFIX, VEC_SIZE, OFFSET, TYPE, STYPE, AS) ___ cfe-commits mailing list cfe-commits@lists.llvm.org http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
[libclc] r325054 - amdgpu/half_sqrt: Switch implementation to native_sqrt
Author: jvesely Date: Tue Feb 13 14:09:33 2018 New Revision: 325054 URL: http://llvm.org/viewvc/llvm-project?rev=325054&view=rev Log: amdgpu/half_sqrt: Switch implementation to native_sqrt Reviewer: Tom Stellard Signed-off-by: Jan Vesely Added: libclc/trunk/amdgpu/lib/math/half_sqrt.cl Modified: libclc/trunk/amdgpu/lib/SOURCES Modified: libclc/trunk/amdgpu/lib/SOURCES URL: http://llvm.org/viewvc/llvm-project/libclc/trunk/amdgpu/lib/SOURCES?rev=325054&r1=325053&r2=325054&view=diff == --- libclc/trunk/amdgpu/lib/SOURCES (original) +++ libclc/trunk/amdgpu/lib/SOURCES Tue Feb 13 14:09:33 2018 @@ -2,5 +2,6 @@ math/native_exp.cl math/native_log.cl math/native_log10.cl math/half_rsqrt.cl +math/half_sqrt.cl math/nextafter.cl math/sqrt.cl Added: libclc/trunk/amdgpu/lib/math/half_sqrt.cl URL: http://llvm.org/viewvc/llvm-project/libclc/trunk/amdgpu/lib/math/half_sqrt.cl?rev=325054&view=auto == --- libclc/trunk/amdgpu/lib/math/half_sqrt.cl (added) +++ libclc/trunk/amdgpu/lib/math/half_sqrt.cl Tue Feb 13 14:09:33 2018 @@ -0,0 +1,6 @@ +#include + +#define __CLC_FUNC sqrt +#define __FLOAT_ONLY +#define __CLC_BODY +#include ___ cfe-commits mailing list cfe-commits@lists.llvm.org http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
[libclc] r325056 - amdgpu/half_exp10: Switch implementation to native_exp10
Author: jvesely Date: Tue Feb 13 14:09:37 2018 New Revision: 325056 URL: http://llvm.org/viewvc/llvm-project?rev=325056&view=rev Log: amdgpu/half_exp10: Switch implementation to native_exp10 Reviewer: Tom Stellard Signed-off-by: Jan Vesely Added: libclc/trunk/amdgpu/lib/math/half_exp10.cl Modified: libclc/trunk/amdgpu/lib/SOURCES Modified: libclc/trunk/amdgpu/lib/SOURCES URL: http://llvm.org/viewvc/llvm-project/libclc/trunk/amdgpu/lib/SOURCES?rev=325056&r1=325055&r2=325056&view=diff == --- libclc/trunk/amdgpu/lib/SOURCES (original) +++ libclc/trunk/amdgpu/lib/SOURCES Tue Feb 13 14:09:37 2018 @@ -2,6 +2,7 @@ math/native_exp.cl math/native_log.cl math/native_log10.cl math/half_exp.cl +math/half_exp10.cl math/half_rsqrt.cl math/half_sqrt.cl math/nextafter.cl Added: libclc/trunk/amdgpu/lib/math/half_exp10.cl URL: http://llvm.org/viewvc/llvm-project/libclc/trunk/amdgpu/lib/math/half_exp10.cl?rev=325056&view=auto == --- libclc/trunk/amdgpu/lib/math/half_exp10.cl (added) +++ libclc/trunk/amdgpu/lib/math/half_exp10.cl Tue Feb 13 14:09:37 2018 @@ -0,0 +1,6 @@ +#include + +#define __CLC_FUNC exp10 +#define __FLOAT_ONLY +#define __CLC_BODY +#include ___ cfe-commits mailing list cfe-commits@lists.llvm.org http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
[libclc] r325057 - amdgpu/half_exp2: Switch implementation to native_exp2
Author: jvesely Date: Tue Feb 13 14:09:38 2018 New Revision: 325057 URL: http://llvm.org/viewvc/llvm-project?rev=325057&view=rev Log: amdgpu/half_exp2: Switch implementation to native_exp2 Reviewer: Tom Stellard Signed-off-by: Jan Vesely Added: libclc/trunk/amdgpu/lib/math/half_exp2.cl Modified: libclc/trunk/amdgpu/lib/SOURCES Modified: libclc/trunk/amdgpu/lib/SOURCES URL: http://llvm.org/viewvc/llvm-project/libclc/trunk/amdgpu/lib/SOURCES?rev=325057&r1=325056&r2=325057&view=diff == --- libclc/trunk/amdgpu/lib/SOURCES (original) +++ libclc/trunk/amdgpu/lib/SOURCES Tue Feb 13 14:09:38 2018 @@ -3,6 +3,7 @@ math/native_log.cl math/native_log10.cl math/half_exp.cl math/half_exp10.cl +math/half_exp2.cl math/half_rsqrt.cl math/half_sqrt.cl math/nextafter.cl Added: libclc/trunk/amdgpu/lib/math/half_exp2.cl URL: http://llvm.org/viewvc/llvm-project/libclc/trunk/amdgpu/lib/math/half_exp2.cl?rev=325057&view=auto == --- libclc/trunk/amdgpu/lib/math/half_exp2.cl (added) +++ libclc/trunk/amdgpu/lib/math/half_exp2.cl Tue Feb 13 14:09:38 2018 @@ -0,0 +1,6 @@ +#include + +#define __CLC_FUNC exp2 +#define __FLOAT_ONLY +#define __CLC_BODY +#include ___ cfe-commits mailing list cfe-commits@lists.llvm.org http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
[libclc] r325059 - amdgpu/half_log10: Switch implementation to native_log10
Author: jvesely Date: Tue Feb 13 14:09:42 2018 New Revision: 325059 URL: http://llvm.org/viewvc/llvm-project?rev=325059&view=rev Log: amdgpu/half_log10: Switch implementation to native_log10 Reviewer: Tom Stellard Signed-off-by: Jan Vesely Added: libclc/trunk/amdgpu/lib/math/half_log10.cl Modified: libclc/trunk/amdgpu/lib/SOURCES Modified: libclc/trunk/amdgpu/lib/SOURCES URL: http://llvm.org/viewvc/llvm-project/libclc/trunk/amdgpu/lib/SOURCES?rev=325059&r1=325058&r2=325059&view=diff == --- libclc/trunk/amdgpu/lib/SOURCES (original) +++ libclc/trunk/amdgpu/lib/SOURCES Tue Feb 13 14:09:42 2018 @@ -5,6 +5,7 @@ math/half_exp.cl math/half_exp10.cl math/half_exp2.cl math/half_log.cl +math/half_log10.cl math/half_rsqrt.cl math/half_sqrt.cl math/nextafter.cl Added: libclc/trunk/amdgpu/lib/math/half_log10.cl URL: http://llvm.org/viewvc/llvm-project/libclc/trunk/amdgpu/lib/math/half_log10.cl?rev=325059&view=auto == --- libclc/trunk/amdgpu/lib/math/half_log10.cl (added) +++ libclc/trunk/amdgpu/lib/math/half_log10.cl Tue Feb 13 14:09:42 2018 @@ -0,0 +1,6 @@ +#include + +#define __CLC_FUNC log10 +#define __FLOAT_ONLY +#define __CLC_BODY +#include ___ cfe-commits mailing list cfe-commits@lists.llvm.org http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
[libclc] r325053 - amdgpu/half_rsqrt: Switch implementation to native_rsqrt
Author: jvesely Date: Tue Feb 13 14:09:31 2018 New Revision: 325053 URL: http://llvm.org/viewvc/llvm-project?rev=325053&view=rev Log: amdgpu/half_rsqrt: Switch implementation to native_rsqrt Reviewer: Tom Stellard Signed-off-by: Jan Vesely Added: libclc/trunk/amdgpu/lib/math/half_native_unary.inc libclc/trunk/amdgpu/lib/math/half_rsqrt.cl Modified: libclc/trunk/amdgpu/lib/SOURCES Modified: libclc/trunk/amdgpu/lib/SOURCES URL: http://llvm.org/viewvc/llvm-project/libclc/trunk/amdgpu/lib/SOURCES?rev=325053&r1=325052&r2=325053&view=diff == --- libclc/trunk/amdgpu/lib/SOURCES (original) +++ libclc/trunk/amdgpu/lib/SOURCES Tue Feb 13 14:09:31 2018 @@ -1,5 +1,6 @@ math/native_exp.cl math/native_log.cl math/native_log10.cl +math/half_rsqrt.cl math/nextafter.cl math/sqrt.cl Added: libclc/trunk/amdgpu/lib/math/half_native_unary.inc URL: http://llvm.org/viewvc/llvm-project/libclc/trunk/amdgpu/lib/math/half_native_unary.inc?rev=325053&view=auto == --- libclc/trunk/amdgpu/lib/math/half_native_unary.inc (added) +++ libclc/trunk/amdgpu/lib/math/half_native_unary.inc Tue Feb 13 14:09:31 2018 @@ -0,0 +1,11 @@ +#include + +#define __CLC_HALF_FUNC(x) __CLC_CONCAT(half_, x) +#define __CLC_NATIVE_FUNC(x) __CLC_CONCAT(native_, x) + +_CLC_OVERLOAD _CLC_DEF __CLC_GENTYPE __CLC_HALF_FUNC(__CLC_FUNC)(__CLC_GENTYPE val) { + return __CLC_NATIVE_FUNC(__CLC_FUNC)(val); +} + +#undef __CLC_NATIVE_FUNC +#undef __CLC_HALF_FUNC Added: libclc/trunk/amdgpu/lib/math/half_rsqrt.cl URL: http://llvm.org/viewvc/llvm-project/libclc/trunk/amdgpu/lib/math/half_rsqrt.cl?rev=325053&view=auto == --- libclc/trunk/amdgpu/lib/math/half_rsqrt.cl (added) +++ libclc/trunk/amdgpu/lib/math/half_rsqrt.cl Tue Feb 13 14:09:31 2018 @@ -0,0 +1,6 @@ +#include + +#define __CLC_FUNC rsqrt +#define __FLOAT_ONLY +#define __CLC_BODY +#include ___ cfe-commits mailing list cfe-commits@lists.llvm.org http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
[libclc] r325058 - amdgpu/half_log: Switch implementation to native_log
Author: jvesely Date: Tue Feb 13 14:09:41 2018 New Revision: 325058 URL: http://llvm.org/viewvc/llvm-project?rev=325058&view=rev Log: amdgpu/half_log: Switch implementation to native_log Reviewer: Tom Stellard Signed-off-by: Jan Vesely Added: libclc/trunk/amdgpu/lib/math/half_log.cl Modified: libclc/trunk/amdgpu/lib/SOURCES Modified: libclc/trunk/amdgpu/lib/SOURCES URL: http://llvm.org/viewvc/llvm-project/libclc/trunk/amdgpu/lib/SOURCES?rev=325058&r1=325057&r2=325058&view=diff == --- libclc/trunk/amdgpu/lib/SOURCES (original) +++ libclc/trunk/amdgpu/lib/SOURCES Tue Feb 13 14:09:41 2018 @@ -4,6 +4,7 @@ math/native_log10.cl math/half_exp.cl math/half_exp10.cl math/half_exp2.cl +math/half_log.cl math/half_rsqrt.cl math/half_sqrt.cl math/nextafter.cl Added: libclc/trunk/amdgpu/lib/math/half_log.cl URL: http://llvm.org/viewvc/llvm-project/libclc/trunk/amdgpu/lib/math/half_log.cl?rev=325058&view=auto == --- libclc/trunk/amdgpu/lib/math/half_log.cl (added) +++ libclc/trunk/amdgpu/lib/math/half_log.cl Tue Feb 13 14:09:41 2018 @@ -0,0 +1,6 @@ +#include + +#define __CLC_FUNC log +#define __FLOAT_ONLY +#define __CLC_BODY +#include ___ cfe-commits mailing list cfe-commits@lists.llvm.org http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
[libclc] r325055 - amdgpu/half_exp: Switch implementation to native_exp
Author: jvesely Date: Tue Feb 13 14:09:35 2018 New Revision: 325055 URL: http://llvm.org/viewvc/llvm-project?rev=325055&view=rev Log: amdgpu/half_exp: Switch implementation to native_exp Reviewer: Tom Stellard Signed-off-by: Jan Vesely Added: libclc/trunk/amdgpu/lib/math/half_exp.cl Modified: libclc/trunk/amdgpu/lib/SOURCES Modified: libclc/trunk/amdgpu/lib/SOURCES URL: http://llvm.org/viewvc/llvm-project/libclc/trunk/amdgpu/lib/SOURCES?rev=325055&r1=325054&r2=325055&view=diff == --- libclc/trunk/amdgpu/lib/SOURCES (original) +++ libclc/trunk/amdgpu/lib/SOURCES Tue Feb 13 14:09:35 2018 @@ -1,6 +1,7 @@ math/native_exp.cl math/native_log.cl math/native_log10.cl +math/half_exp.cl math/half_rsqrt.cl math/half_sqrt.cl math/nextafter.cl Added: libclc/trunk/amdgpu/lib/math/half_exp.cl URL: http://llvm.org/viewvc/llvm-project/libclc/trunk/amdgpu/lib/math/half_exp.cl?rev=325055&view=auto == --- libclc/trunk/amdgpu/lib/math/half_exp.cl (added) +++ libclc/trunk/amdgpu/lib/math/half_exp.cl Tue Feb 13 14:09:35 2018 @@ -0,0 +1,6 @@ +#include + +#define __CLC_FUNC exp +#define __FLOAT_ONLY +#define __CLC_BODY +#include ___ cfe-commits mailing list cfe-commits@lists.llvm.org http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
[libclc] r325060 - amdgpu/half_log2: Switch implementation to native_log2
Author: jvesely Date: Tue Feb 13 14:09:44 2018 New Revision: 325060 URL: http://llvm.org/viewvc/llvm-project?rev=325060&view=rev Log: amdgpu/half_log2: Switch implementation to native_log2 Reviewer: Tom Stellard Signed-off-by: Jan Vesely Added: libclc/trunk/amdgpu/lib/math/half_log2.cl Modified: libclc/trunk/amdgpu/lib/SOURCES Modified: libclc/trunk/amdgpu/lib/SOURCES URL: http://llvm.org/viewvc/llvm-project/libclc/trunk/amdgpu/lib/SOURCES?rev=325060&r1=325059&r2=325060&view=diff == --- libclc/trunk/amdgpu/lib/SOURCES (original) +++ libclc/trunk/amdgpu/lib/SOURCES Tue Feb 13 14:09:44 2018 @@ -6,6 +6,7 @@ math/half_exp10.cl math/half_exp2.cl math/half_log.cl math/half_log10.cl +math/half_log2.cl math/half_rsqrt.cl math/half_sqrt.cl math/nextafter.cl Added: libclc/trunk/amdgpu/lib/math/half_log2.cl URL: http://llvm.org/viewvc/llvm-project/libclc/trunk/amdgpu/lib/math/half_log2.cl?rev=325060&view=auto == --- libclc/trunk/amdgpu/lib/math/half_log2.cl (added) +++ libclc/trunk/amdgpu/lib/math/half_log2.cl Tue Feb 13 14:09:44 2018 @@ -0,0 +1,6 @@ +#include + +#define __CLC_FUNC log2 +#define __FLOAT_ONLY +#define __CLC_BODY +#include ___ cfe-commits mailing list cfe-commits@lists.llvm.org http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
[libclc] r325061 - amdgpu/half_recip: Switch implementation to native_recip
Author: jvesely Date: Tue Feb 13 14:09:46 2018 New Revision: 325061 URL: http://llvm.org/viewvc/llvm-project?rev=325061&view=rev Log: amdgpu/half_recip: Switch implementation to native_recip Reviewer: Tom Stellard Signed-off-by: Jan Vesely Added: libclc/trunk/amdgpu/lib/math/half_recip.cl Modified: libclc/trunk/amdgpu/lib/SOURCES Modified: libclc/trunk/amdgpu/lib/SOURCES URL: http://llvm.org/viewvc/llvm-project/libclc/trunk/amdgpu/lib/SOURCES?rev=325061&r1=325060&r2=325061&view=diff == --- libclc/trunk/amdgpu/lib/SOURCES (original) +++ libclc/trunk/amdgpu/lib/SOURCES Tue Feb 13 14:09:46 2018 @@ -7,6 +7,7 @@ math/half_exp2.cl math/half_log.cl math/half_log10.cl math/half_log2.cl +math/half_recip.cl math/half_rsqrt.cl math/half_sqrt.cl math/nextafter.cl Added: libclc/trunk/amdgpu/lib/math/half_recip.cl URL: http://llvm.org/viewvc/llvm-project/libclc/trunk/amdgpu/lib/math/half_recip.cl?rev=325061&view=auto == --- libclc/trunk/amdgpu/lib/math/half_recip.cl (added) +++ libclc/trunk/amdgpu/lib/math/half_recip.cl Tue Feb 13 14:09:46 2018 @@ -0,0 +1,6 @@ +#include + +#define __CLC_FUNC recip +#define __FLOAT_ONLY +#define __CLC_BODY +#include ___ cfe-commits mailing list cfe-commits@lists.llvm.org http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
Re: r325203 - Reapply r325193
On Thu, 2018-02-15 at 02:37 +, Konstantin Zhuravlyov via cfe- commits wrote: > Author: kzhuravl > Date: Wed Feb 14 18:37:04 2018 > New Revision: 325203 > > URL: http://llvm.org/viewvc/llvm-project?rev=325203&view=rev > Log: > Reapply r325193 Ca you please not do that ? Is it that difficult to have an actual readable commit message? maybe describing the change and explaining what has changed to fix the problems that got it reverted the first time? thanks, Jan > > Added: > cfe/trunk/test/Driver/amdgpu-macros.cl > - copied unchanged from r325199, cfe/trunk/test/Driver/amdgpu-macros.cl > Modified: > cfe/trunk/lib/Basic/Targets/AMDGPU.cpp > cfe/trunk/lib/Basic/Targets/AMDGPU.h > > Modified: cfe/trunk/lib/Basic/Targets/AMDGPU.cpp > URL: > http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/Basic/Targets/AMDGPU.cpp?rev=325203&r1=325202&r2=325203&view=diff > == > --- cfe/trunk/lib/Basic/Targets/AMDGPU.cpp (original) > +++ cfe/trunk/lib/Basic/Targets/AMDGPU.cpp Wed Feb 14 18:37:04 2018 > @@ -161,7 +161,7 @@ bool AMDGPUTargetInfo::initFeatureMap( > if (CPU.empty()) >CPU = "tahiti"; > > -switch (parseAMDGCNName(CPU)) { > +switch (parseAMDGCNName(CPU).Kind) { > case GK_GFX6: > case GK_GFX7: >break; > @@ -184,7 +184,7 @@ bool AMDGPUTargetInfo::initFeatureMap( > if (CPU.empty()) >CPU = "r600"; > > -switch (parseR600Name(CPU)) { > +switch (parseR600Name(CPU).Kind) { > case GK_R600: > case GK_R700: > case GK_EVERGREEN: > @@ -229,36 +229,36 @@ void AMDGPUTargetInfo::adjustTargetOptio > } > > constexpr AMDGPUTargetInfo::GPUInfo AMDGPUTargetInfo::InvalidGPU; > -constexpr AMDGPUTargetInfo::NameGPUKind AMDGPUTargetInfo::R600Names[]; > -constexpr AMDGPUTargetInfo::NameGPUKind AMDGPUTargetInfo::AMDGCNNames[]; > -AMDGPUTargetInfo::GPUKind AMDGPUTargetInfo::parseR600Name(StringRef Name) { > +constexpr AMDGPUTargetInfo::GPUInfo AMDGPUTargetInfo::R600Names[]; > +constexpr AMDGPUTargetInfo::GPUInfo AMDGPUTargetInfo::AMDGCNNames[]; > +AMDGPUTargetInfo::GPUInfo AMDGPUTargetInfo::parseR600Name(StringRef Name) { >const auto *Result = llvm::find_if( > - R600Names, [Name](const NameGPUKind &Kind) { return Kind.Name == Name; > }); > + R600Names, [Name](const GPUInfo &GPU) { return GPU.Name == Name; }); > >if (Result == std::end(R600Names)) > -return GK_NONE; > - return Result->Kind; > +return InvalidGPU; > + return *Result; > } > > -AMDGPUTargetInfo::GPUKind AMDGPUTargetInfo::parseAMDGCNName(StringRef Name) { > +AMDGPUTargetInfo::GPUInfo AMDGPUTargetInfo::parseAMDGCNName(StringRef Name) { >const auto *Result = > - llvm::find_if(AMDGCNNames, [Name](const NameGPUKind &Kind) { > -return Kind.Name == Name; > + llvm::find_if(AMDGCNNames, [Name](const GPUInfo &GPU) { > +return GPU.Name == Name; >}); > >if (Result == std::end(AMDGCNNames)) > -return GK_NONE; > - return Result->Kind; > +return InvalidGPU; > + return *Result; > } > > void AMDGPUTargetInfo::fillValidCPUList( > SmallVectorImpl &Values) const { >if (getTriple().getArch() == llvm::Triple::amdgcn) > -llvm::for_each(AMDGCNNames, [&Values](const NameGPUKind &Kind) { > - Values.emplace_back(Kind.Name);}); > +llvm::for_each(AMDGCNNames, [&Values](const GPUInfo &GPU) { > + Values.emplace_back(GPU.Name);}); >else > -llvm::for_each(R600Names, [&Values](const NameGPUKind &Kind) { > - Values.emplace_back(Kind.Name);}); > +llvm::for_each(R600Names, [&Values](const GPUInfo &GPU) { > + Values.emplace_back(GPU.Name);}); > } > > void AMDGPUTargetInfo::setAddressSpaceMap(bool DefaultIsPrivate) { > @@ -273,17 +273,17 @@ void AMDGPUTargetInfo::setAddressSpaceMa > > AMDGPUTargetInfo::AMDGPUTargetInfo(const llvm::Triple &Triple, > const TargetOptions &Opts) > -: TargetInfo(Triple), > - GPU(isAMDGCN(Triple) ? GK_GFX6 : parseR600Name(Opts.CPU)), > - hasFP64(false), hasFMAF(false), hasLDEXPF(false), > - AS(isGenericZero(Triple)) { > + : TargetInfo(Triple), > +GPU(isAMDGCN(Triple) ? AMDGCNNames[0] : parseR600Name(Opts.CPU)), > +hasFP64(false), hasFMAF(false), hasLDEXPF(false), > +AS(isGenericZero(Triple)) { >if (getTriple().getArch() == llvm::Triple::amdgcn) { > hasFP64 = true; > hasFMAF = true; > hasLDEXPF = true; >} >if (getTriple().getArch() == llvm::Triple::r600) { > -if (GPU == GK_EVERGREEN_DOUBLE_OPS || GPU == GK_CAYMAN) { > +if (GPU.Kind == GK_EVERGREEN_DOUBLE_OPS || GPU.Kind == GK_CAYMAN) { >hasFMAF = true; > } >} > @@ -324,11 +324,17 @@ ArrayRef AMDGPUTargetInfo > > void AMDGPUTargetInfo::getTargetDefines(const LangOptions &Opts, > MacroBuilder &Builder) con
[libclc] r325863 - amdgcn: Fix datalayout after clang r324101
Author: jvesely Date: Thu Feb 22 23:36:39 2018 New Revision: 325863 URL: http://llvm.org/viewvc/llvm-project?rev=325863&view=rev Log: amdgcn: Fix datalayout after clang r324101 r324101 switched around AS numbering Acked-by: Aaron Watry Signed-off-by: Jan Vesely Added: libclc/trunk/amdgcn/lib/OVERRIDES_4.0 - copied, changed from r325061, libclc/trunk/amdgcn/lib/OVERRIDES_3.9 libclc/trunk/amdgcn/lib/OVERRIDES_5.0 - copied, changed from r325061, libclc/trunk/amdgcn/lib/OVERRIDES_3.9 libclc/trunk/amdgcn/lib/OVERRIDES_6.0 - copied, changed from r325061, libclc/trunk/amdgcn/lib/OVERRIDES_3.9 libclc/trunk/amdgcn/lib/SOURCES_4.0 libclc/trunk/amdgcn/lib/SOURCES_5.0 libclc/trunk/amdgcn/lib/SOURCES_6.0 libclc/trunk/amdgcn/lib/cl_khr_int64_extended_atomics/minmax_helpers.39.ll - copied, changed from r325061, libclc/trunk/amdgcn/lib/cl_khr_int64_extended_atomics/minmax_helpers.ll libclc/trunk/amdgcn/lib/workitem/get_global_size.40.ll - copied, changed from r325061, libclc/trunk/amdgcn/lib/workitem/get_global_size.ll libclc/trunk/amdgcn/lib/workitem/get_local_size.40.ll - copied, changed from r325061, libclc/trunk/amdgcn/lib/workitem/get_local_size.ll libclc/trunk/amdgcn/lib/workitem/get_num_groups.40.ll - copied, changed from r325061, libclc/trunk/amdgcn/lib/workitem/get_num_groups.ll Modified: libclc/trunk/amdgcn-amdhsa/lib/OVERRIDES libclc/trunk/amdgcn/lib/OVERRIDES_3.9 libclc/trunk/amdgcn/lib/SOURCES libclc/trunk/amdgcn/lib/SOURCES_3.9 libclc/trunk/amdgcn/lib/cl_khr_int64_extended_atomics/minmax_helpers.ll libclc/trunk/amdgcn/lib/workitem/get_global_size.ll libclc/trunk/amdgcn/lib/workitem/get_local_size.ll libclc/trunk/amdgcn/lib/workitem/get_num_groups.ll Modified: libclc/trunk/amdgcn-amdhsa/lib/OVERRIDES URL: http://llvm.org/viewvc/llvm-project/libclc/trunk/amdgcn-amdhsa/lib/OVERRIDES?rev=325863&r1=325862&r2=325863&view=diff == --- libclc/trunk/amdgcn-amdhsa/lib/OVERRIDES (original) +++ libclc/trunk/amdgcn-amdhsa/lib/OVERRIDES Thu Feb 22 23:36:39 2018 @@ -1 +1,4 @@ workitem/get_num_groups.ll +workitem/get_num_groups.40.ll +workitem/get_global_size.40.ll +workitem/get_local_size.40.ll Modified: libclc/trunk/amdgcn/lib/OVERRIDES_3.9 URL: http://llvm.org/viewvc/llvm-project/libclc/trunk/amdgcn/lib/OVERRIDES_3.9?rev=325863&r1=325862&r2=325863&view=diff == --- libclc/trunk/amdgcn/lib/OVERRIDES_3.9 (original) +++ libclc/trunk/amdgcn/lib/OVERRIDES_3.9 Thu Feb 22 23:36:39 2018 @@ -1,3 +1,4 @@ +cl_khr_int64_extended_atomics/minmax_helpers.ll workitem/get_global_size.ll workitem/get_local_size.ll workitem/get_num_groups.ll Copied: libclc/trunk/amdgcn/lib/OVERRIDES_4.0 (from r325061, libclc/trunk/amdgcn/lib/OVERRIDES_3.9) URL: http://llvm.org/viewvc/llvm-project/libclc/trunk/amdgcn/lib/OVERRIDES_4.0?p2=libclc/trunk/amdgcn/lib/OVERRIDES_4.0&p1=libclc/trunk/amdgcn/lib/OVERRIDES_3.9&r1=325061&r2=325863&rev=325863&view=diff == --- libclc/trunk/amdgcn/lib/OVERRIDES_3.9 (original) +++ libclc/trunk/amdgcn/lib/OVERRIDES_4.0 Thu Feb 22 23:36:39 2018 @@ -1,3 +1,4 @@ +cl_khr_int64_extended_atomics/minmax_helpers.ll workitem/get_global_size.ll workitem/get_local_size.ll workitem/get_num_groups.ll Copied: libclc/trunk/amdgcn/lib/OVERRIDES_5.0 (from r325061, libclc/trunk/amdgcn/lib/OVERRIDES_3.9) URL: http://llvm.org/viewvc/llvm-project/libclc/trunk/amdgcn/lib/OVERRIDES_5.0?p2=libclc/trunk/amdgcn/lib/OVERRIDES_5.0&p1=libclc/trunk/amdgcn/lib/OVERRIDES_3.9&r1=325061&r2=325863&rev=325863&view=diff == --- libclc/trunk/amdgcn/lib/OVERRIDES_3.9 (original) +++ libclc/trunk/amdgcn/lib/OVERRIDES_5.0 Thu Feb 22 23:36:39 2018 @@ -1,3 +1,4 @@ +cl_khr_int64_extended_atomics/minmax_helpers.ll workitem/get_global_size.ll workitem/get_local_size.ll workitem/get_num_groups.ll Copied: libclc/trunk/amdgcn/lib/OVERRIDES_6.0 (from r325061, libclc/trunk/amdgcn/lib/OVERRIDES_3.9) URL: http://llvm.org/viewvc/llvm-project/libclc/trunk/amdgcn/lib/OVERRIDES_6.0?p2=libclc/trunk/amdgcn/lib/OVERRIDES_6.0&p1=libclc/trunk/amdgcn/lib/OVERRIDES_3.9&r1=325061&r2=325863&rev=325863&view=diff == --- libclc/trunk/amdgcn/lib/OVERRIDES_3.9 (original) +++ libclc/trunk/amdgcn/lib/OVERRIDES_6.0 Thu Feb 22 23:36:39 2018 @@ -1,3 +1,4 @@ +cl_khr_int64_extended_atomics/minmax_helpers.ll workitem/get_global_size.ll workitem/get_local_size.ll workitem/get_num_groups.ll Modified: libclc/trunk/amdgcn/lib/SOURCES URL: http://llvm.org/viewvc/llvm-project/libclc/trunk/amdgcn/lib/SOURCES?rev=325863&r1=325862&r2=325863&view=diff ===
[libclc] r325865 - amdgcn: Fix datalayout after addition of 32bit const AS in r324747
Author: jvesely Date: Thu Feb 22 23:36:54 2018 New Revision: 325865 URL: http://llvm.org/viewvc/llvm-project?rev=325865&view=rev Log: amdgcn: Fix datalayout after addition of 32bit const AS in r324747 Acked-by: Aaron Watry Signed-off-by: Jan Vesely Modified: libclc/trunk/amdgcn/lib/cl_khr_int64_extended_atomics/minmax_helpers.ll libclc/trunk/amdgcn/lib/workitem/get_global_size.ll libclc/trunk/amdgcn/lib/workitem/get_local_size.ll libclc/trunk/amdgcn/lib/workitem/get_num_groups.ll Modified: libclc/trunk/amdgcn/lib/cl_khr_int64_extended_atomics/minmax_helpers.ll URL: http://llvm.org/viewvc/llvm-project/libclc/trunk/amdgcn/lib/cl_khr_int64_extended_atomics/minmax_helpers.ll?rev=325865&r1=325864&r2=325865&view=diff == --- libclc/trunk/amdgcn/lib/cl_khr_int64_extended_atomics/minmax_helpers.ll (original) +++ libclc/trunk/amdgcn/lib/cl_khr_int64_extended_atomics/minmax_helpers.ll Thu Feb 22 23:36:54 2018 @@ -1,4 +1,4 @@ -target datalayout = "e-p:64:64-p1:64:64-p2:64:64-p3:32:32-p4:32:32-p5:32:32-i64:64-v16:16-v24:32-v32:32-v48:64-v96:128-v192:256-v256:256-v512:512-v1024:1024-v2048:2048-n32:64-A5" +target datalayout = "e-p:64:64-p1:64:64-p2:64:64-p3:32:32-p4:32:32-p5:32:32-p6:32:32-i64:64-v16:16-v24:32-v32:32-v48:64-v96:128-v192:256-v256:256-v512:512-v1024:1024-v2048:2048-n32:64-A5" define i64 @__clc__sync_fetch_and_min_global_8(i64 addrspace(1)* nocapture %ptr, i64 %value) nounwind alwaysinline { entry: Modified: libclc/trunk/amdgcn/lib/workitem/get_global_size.ll URL: http://llvm.org/viewvc/llvm-project/libclc/trunk/amdgcn/lib/workitem/get_global_size.ll?rev=325865&r1=325864&r2=325865&view=diff == --- libclc/trunk/amdgcn/lib/workitem/get_global_size.ll (original) +++ libclc/trunk/amdgcn/lib/workitem/get_global_size.ll Thu Feb 22 23:36:54 2018 @@ -2,7 +2,7 @@ declare i32 @llvm.r600.read.global.size. declare i32 @llvm.r600.read.global.size.y() nounwind readnone declare i32 @llvm.r600.read.global.size.z() nounwind readnone -target datalayout = "e-p:64:64-p1:64:64-p2:64:64-p3:32:32-p4:32:32-p5:32:32-i64:64-v16:16-v24:32-v32:32-v48:64-v96:128-v192:256-v256:256-v512:512-v1024:1024-v2048:2048-n32:64-A5" +target datalayout = "e-p:64:64-p1:64:64-p2:64:64-p3:32:32-p4:32:32-p5:32:32-p6:32:32-i64:64-v16:16-v24:32-v32:32-v48:64-v96:128-v192:256-v256:256-v512:512-v1024:1024-v2048:2048-n32:64-A5" define i64 @get_global_size(i32 %dim) nounwind readnone alwaysinline { switch i32 %dim, label %default [i32 0, label %x_dim i32 1, label %y_dim i32 2, label %z_dim] Modified: libclc/trunk/amdgcn/lib/workitem/get_local_size.ll URL: http://llvm.org/viewvc/llvm-project/libclc/trunk/amdgcn/lib/workitem/get_local_size.ll?rev=325865&r1=325864&r2=325865&view=diff == --- libclc/trunk/amdgcn/lib/workitem/get_local_size.ll (original) +++ libclc/trunk/amdgcn/lib/workitem/get_local_size.ll Thu Feb 22 23:36:54 2018 @@ -2,7 +2,7 @@ declare i32 @llvm.r600.read.local.size.x declare i32 @llvm.r600.read.local.size.y() nounwind readnone declare i32 @llvm.r600.read.local.size.z() nounwind readnone -target datalayout = "e-p:64:64-p1:64:64-p2:64:64-p3:32:32-p4:32:32-p5:32:32-i64:64-v16:16-v24:32-v32:32-v48:64-v96:128-v192:256-v256:256-v512:512-v1024:1024-v2048:2048-n32:64-A5" +target datalayout = "e-p:64:64-p1:64:64-p2:64:64-p3:32:32-p4:32:32-p5:32:32-p6:32:32-i64:64-v16:16-v24:32-v32:32-v48:64-v96:128-v192:256-v256:256-v512:512-v1024:1024-v2048:2048-n32:64-A5" define i64 @get_local_size(i32 %dim) nounwind readnone alwaysinline { switch i32 %dim, label %default [i32 0, label %x_dim i32 1, label %y_dim i32 2, label %z_dim] Modified: libclc/trunk/amdgcn/lib/workitem/get_num_groups.ll URL: http://llvm.org/viewvc/llvm-project/libclc/trunk/amdgcn/lib/workitem/get_num_groups.ll?rev=325865&r1=325864&r2=325865&view=diff == --- libclc/trunk/amdgcn/lib/workitem/get_num_groups.ll (original) +++ libclc/trunk/amdgcn/lib/workitem/get_num_groups.ll Thu Feb 22 23:36:54 2018 @@ -2,7 +2,7 @@ declare i32 @llvm.r600.read.ngroups.x() declare i32 @llvm.r600.read.ngroups.y() nounwind readnone declare i32 @llvm.r600.read.ngroups.z() nounwind readnone -target datalayout = "e-p:64:64-p1:64:64-p2:64:64-p3:32:32-p4:32:32-p5:32:32-i64:64-v16:16-v24:32-v32:32-v48:64-v96:128-v192:256-v256:256-v512:512-v1024:1024-v2048:2048-n32:64-A5" +target datalayout = "e-p:64:64-p1:64:64-p2:64:64-p3:32:32-p4:32:32-p5:32:32-p6:32:32-i64:64-v16:16-v24:32-v32:32-v48:64-v96:128-v192:256-v256:256-v512:512-v1024:1024-v2048:2048-n32:64-A5" define i64 @get_num_groups(i32 %dim) nounwind readnone alwaysinline { switch i32 %dim, label %default [i32 0, label %x_dim i32 1, label %y_dim i32 2, label %z_dim] _
[libclc] r325864 - r600: Fix datalayout after clang r324101
Author: jvesely Date: Thu Feb 22 23:36:51 2018 New Revision: 325864 URL: http://llvm.org/viewvc/llvm-project?rev=325864&view=rev Log: r600: Fix datalayout after clang r324101 r324101 switched around AS numbering Acked-by: Aaron Watry Signed-off-by: Jan Vesely Added: libclc/trunk/r600/lib/OVERRIDES_3.9 libclc/trunk/r600/lib/OVERRIDES_4.0 libclc/trunk/r600/lib/OVERRIDES_5.0 libclc/trunk/r600/lib/OVERRIDES_6.0 libclc/trunk/r600/lib/SOURCES_4.0 libclc/trunk/r600/lib/SOURCES_5.0 libclc/trunk/r600/lib/SOURCES_6.0 libclc/trunk/r600/lib/synchronization/barrier_impl.39.ll - copied, changed from r325863, libclc/trunk/r600/lib/synchronization/barrier_impl.ll libclc/trunk/r600/lib/workitem/get_global_size.39.ll - copied, changed from r325863, libclc/trunk/r600/lib/workitem/get_global_size.ll libclc/trunk/r600/lib/workitem/get_local_size.39.ll - copied, changed from r325863, libclc/trunk/r600/lib/workitem/get_local_size.ll libclc/trunk/r600/lib/workitem/get_num_groups.39.ll - copied, changed from r325863, libclc/trunk/r600/lib/workitem/get_num_groups.ll Modified: libclc/trunk/r600/lib/SOURCES_3.9 libclc/trunk/r600/lib/synchronization/barrier_impl.ll libclc/trunk/r600/lib/workitem/get_global_size.ll libclc/trunk/r600/lib/workitem/get_local_size.ll libclc/trunk/r600/lib/workitem/get_num_groups.ll Added: libclc/trunk/r600/lib/OVERRIDES_3.9 URL: http://llvm.org/viewvc/llvm-project/libclc/trunk/r600/lib/OVERRIDES_3.9?rev=325864&view=auto == --- libclc/trunk/r600/lib/OVERRIDES_3.9 (added) +++ libclc/trunk/r600/lib/OVERRIDES_3.9 Thu Feb 22 23:36:51 2018 @@ -0,0 +1,4 @@ +synchronization/barrier_impl.ll +workitem/get_global_size.ll +workitem/get_local_size.ll +workitem/get_num_groups.ll Added: libclc/trunk/r600/lib/OVERRIDES_4.0 URL: http://llvm.org/viewvc/llvm-project/libclc/trunk/r600/lib/OVERRIDES_4.0?rev=325864&view=auto == --- libclc/trunk/r600/lib/OVERRIDES_4.0 (added) +++ libclc/trunk/r600/lib/OVERRIDES_4.0 Thu Feb 22 23:36:51 2018 @@ -0,0 +1,4 @@ +synchronization/barrier_impl.ll +workitem/get_global_size.ll +workitem/get_local_size.ll +workitem/get_num_groups.ll Added: libclc/trunk/r600/lib/OVERRIDES_5.0 URL: http://llvm.org/viewvc/llvm-project/libclc/trunk/r600/lib/OVERRIDES_5.0?rev=325864&view=auto == --- libclc/trunk/r600/lib/OVERRIDES_5.0 (added) +++ libclc/trunk/r600/lib/OVERRIDES_5.0 Thu Feb 22 23:36:51 2018 @@ -0,0 +1,4 @@ +synchronization/barrier_impl.ll +workitem/get_global_size.ll +workitem/get_local_size.ll +workitem/get_num_groups.ll Added: libclc/trunk/r600/lib/OVERRIDES_6.0 URL: http://llvm.org/viewvc/llvm-project/libclc/trunk/r600/lib/OVERRIDES_6.0?rev=325864&view=auto == --- libclc/trunk/r600/lib/OVERRIDES_6.0 (added) +++ libclc/trunk/r600/lib/OVERRIDES_6.0 Thu Feb 22 23:36:51 2018 @@ -0,0 +1,4 @@ +synchronization/barrier_impl.ll +workitem/get_global_size.ll +workitem/get_local_size.ll +workitem/get_num_groups.ll Modified: libclc/trunk/r600/lib/SOURCES_3.9 URL: http://llvm.org/viewvc/llvm-project/libclc/trunk/r600/lib/SOURCES_3.9?rev=325864&r1=325863&r2=325864&view=diff == --- libclc/trunk/r600/lib/SOURCES_3.9 (original) +++ libclc/trunk/r600/lib/SOURCES_3.9 Thu Feb 22 23:36:51 2018 @@ -13,3 +13,7 @@ image/write_imagef.cl image/write_imagei.cl image/write_imageui.cl image/write_image_impl.ll +synchronization/barrier_impl.39.ll +workitem/get_global_size.39.ll +workitem/get_local_size.39.ll +workitem/get_num_groups.39.ll Added: libclc/trunk/r600/lib/SOURCES_4.0 URL: http://llvm.org/viewvc/llvm-project/libclc/trunk/r600/lib/SOURCES_4.0?rev=325864&view=auto == --- libclc/trunk/r600/lib/SOURCES_4.0 (added) +++ libclc/trunk/r600/lib/SOURCES_4.0 Thu Feb 22 23:36:51 2018 @@ -0,0 +1,4 @@ +synchronization/barrier_impl.39.ll +workitem/get_global_size.39.ll +workitem/get_local_size.39.ll +workitem/get_num_groups.39.ll Added: libclc/trunk/r600/lib/SOURCES_5.0 URL: http://llvm.org/viewvc/llvm-project/libclc/trunk/r600/lib/SOURCES_5.0?rev=325864&view=auto == --- libclc/trunk/r600/lib/SOURCES_5.0 (added) +++ libclc/trunk/r600/lib/SOURCES_5.0 Thu Feb 22 23:36:51 2018 @@ -0,0 +1,4 @@ +synchronization/barrier_impl.39.ll +workitem/get_global_size.39.ll +workitem/get_local_size.39.ll +workitem/get_num_groups.39.ll Added: libclc/trunk/r600/lib/SOURCES_6.0 URL: http://llvm.org/viewvc/llvm-project/libclc/trunk/r600/lib/SOURCES_6.0?rev=325864&view=auto
[libclc] r325866 - amdgcn: Fix build after GDS/const AS swap in r325030
Author: jvesely Date: Thu Feb 22 23:37:01 2018 New Revision: 325866 URL: http://llvm.org/viewvc/llvm-project?rev=325866&view=rev Log: amdgcn: Fix build after GDS/const AS swap in r325030 Acked-by: Aaron Watry Signed-off-by: Jan Vesely Added: libclc/trunk/amdgcn-amdhsa/lib/OVERRIDES_4.0 libclc/trunk/amdgcn-amdhsa/lib/OVERRIDES_5.0 libclc/trunk/amdgcn-amdhsa/lib/SOURCES_4.0 libclc/trunk/amdgcn-amdhsa/lib/SOURCES_5.0 libclc/trunk/amdgcn-amdhsa/lib/workitem/get_global_size.50.ll - copied, changed from r325865, libclc/trunk/amdgcn-amdhsa/lib/workitem/get_global_size.ll libclc/trunk/amdgcn-amdhsa/lib/workitem/get_global_size.cl libclc/trunk/amdgcn-amdhsa/lib/workitem/get_local_size.50.ll - copied, changed from r325865, libclc/trunk/amdgcn-amdhsa/lib/workitem/get_local_size.ll libclc/trunk/amdgcn-amdhsa/lib/workitem/get_local_size.cl Removed: libclc/trunk/amdgcn-amdhsa/lib/workitem/get_global_size.ll libclc/trunk/amdgcn-amdhsa/lib/workitem/get_local_size.ll Modified: libclc/trunk/amdgcn-amdhsa/lib/OVERRIDES libclc/trunk/amdgcn-amdhsa/lib/OVERRIDES_3.9 libclc/trunk/amdgcn-amdhsa/lib/SOURCES libclc/trunk/amdgcn/lib/cl_khr_int64_extended_atomics/minmax_helpers.ll libclc/trunk/amdgcn/lib/workitem/get_global_offset.cl libclc/trunk/amdgcn/lib/workitem/get_global_size.ll libclc/trunk/amdgcn/lib/workitem/get_local_size.ll libclc/trunk/amdgcn/lib/workitem/get_num_groups.ll libclc/trunk/amdgcn/lib/workitem/get_work_dim.cl Modified: libclc/trunk/amdgcn-amdhsa/lib/OVERRIDES URL: http://llvm.org/viewvc/llvm-project/libclc/trunk/amdgcn-amdhsa/lib/OVERRIDES?rev=325866&r1=325865&r2=325866&view=diff == --- libclc/trunk/amdgcn-amdhsa/lib/OVERRIDES (original) +++ libclc/trunk/amdgcn-amdhsa/lib/OVERRIDES Thu Feb 22 23:37:01 2018 @@ -1,4 +1,6 @@ workitem/get_num_groups.ll +workitem/get_global_size.ll +workitem/get_local_size.ll workitem/get_num_groups.40.ll workitem/get_global_size.40.ll workitem/get_local_size.40.ll Modified: libclc/trunk/amdgcn-amdhsa/lib/OVERRIDES_3.9 URL: http://llvm.org/viewvc/llvm-project/libclc/trunk/amdgcn-amdhsa/lib/OVERRIDES_3.9?rev=325866&r1=325865&r2=325866&view=diff == --- libclc/trunk/amdgcn-amdhsa/lib/OVERRIDES_3.9 (original) +++ libclc/trunk/amdgcn-amdhsa/lib/OVERRIDES_3.9 Thu Feb 22 23:37:01 2018 @@ -1,3 +1,3 @@ -workitem/get_global_size.ll -workitem/get_local_size.ll +workitem/get_global_size.cl +workitem/get_local_size.cl workitem/get_num_groups.39.ll Added: libclc/trunk/amdgcn-amdhsa/lib/OVERRIDES_4.0 URL: http://llvm.org/viewvc/llvm-project/libclc/trunk/amdgcn-amdhsa/lib/OVERRIDES_4.0?rev=325866&view=auto == --- libclc/trunk/amdgcn-amdhsa/lib/OVERRIDES_4.0 (added) +++ libclc/trunk/amdgcn-amdhsa/lib/OVERRIDES_4.0 Thu Feb 22 23:37:01 2018 @@ -0,0 +1,2 @@ +workitem/get_global_size.cl +workitem/get_local_size.cl Added: libclc/trunk/amdgcn-amdhsa/lib/OVERRIDES_5.0 URL: http://llvm.org/viewvc/llvm-project/libclc/trunk/amdgcn-amdhsa/lib/OVERRIDES_5.0?rev=325866&view=auto == --- libclc/trunk/amdgcn-amdhsa/lib/OVERRIDES_5.0 (added) +++ libclc/trunk/amdgcn-amdhsa/lib/OVERRIDES_5.0 Thu Feb 22 23:37:01 2018 @@ -0,0 +1,2 @@ +workitem/get_global_size.cl +workitem/get_local_size.cl Modified: libclc/trunk/amdgcn-amdhsa/lib/SOURCES URL: http://llvm.org/viewvc/llvm-project/libclc/trunk/amdgcn-amdhsa/lib/SOURCES?rev=325866&r1=325865&r2=325866&view=diff == --- libclc/trunk/amdgcn-amdhsa/lib/SOURCES (original) +++ libclc/trunk/amdgcn-amdhsa/lib/SOURCES Thu Feb 22 23:37:01 2018 @@ -1,3 +1,3 @@ -workitem/get_global_size.ll -workitem/get_local_size.ll +workitem/get_global_size.cl +workitem/get_local_size.cl workitem/get_num_groups.cl Added: libclc/trunk/amdgcn-amdhsa/lib/SOURCES_4.0 URL: http://llvm.org/viewvc/llvm-project/libclc/trunk/amdgcn-amdhsa/lib/SOURCES_4.0?rev=325866&view=auto == --- libclc/trunk/amdgcn-amdhsa/lib/SOURCES_4.0 (added) +++ libclc/trunk/amdgcn-amdhsa/lib/SOURCES_4.0 Thu Feb 22 23:37:01 2018 @@ -0,0 +1,2 @@ +workitem/get_global_size.50.ll +workitem/get_local_size.50.ll Added: libclc/trunk/amdgcn-amdhsa/lib/SOURCES_5.0 URL: http://llvm.org/viewvc/llvm-project/libclc/trunk/amdgcn-amdhsa/lib/SOURCES_5.0?rev=325866&view=auto == --- libclc/trunk/amdgcn-amdhsa/lib/SOURCES_5.0 (added) +++ libclc/trunk/amdgcn-amdhsa/lib/SOURCES_5.0 Thu Feb 22 23:37:01 2018 @@ -0,0 +1,2 @@ +workitem/get_global_size.50.ll +workitem/get_local_size.50.ll Copied: libclc/trunk/amdgcn-amdhsa/li
[libclc] r325867 - utils: Adapt to llvm r325155
Author: jvesely Date: Thu Feb 22 23:37:03 2018 New Revision: 325867 URL: http://llvm.org/viewvc/llvm-project?rev=325867&view=rev Log: utils: Adapt to llvm r325155 r325155 ("Pass a reference to a module to the bitcode writer.") changed bit writer interface from pointer to reference Reviewer: Aaron Watry Signed-off-by: Jan Vesely Modified: libclc/trunk/utils/prepare-builtins.cpp Modified: libclc/trunk/utils/prepare-builtins.cpp URL: http://llvm.org/viewvc/llvm-project/libclc/trunk/utils/prepare-builtins.cpp?rev=325867&r1=325866&r2=325867&view=diff == --- libclc/trunk/utils/prepare-builtins.cpp (original) +++ libclc/trunk/utils/prepare-builtins.cpp Thu Feb 22 23:37:03 2018 @@ -105,7 +105,11 @@ int main(int argc, char **argv) { exit(1); } +#if HAVE_LLVM >= 0x0700 + WriteBitcodeToFile(*M, Out->os()); +#else WriteBitcodeToFile(M, Out->os()); +#endif // Declare success. Out->keep(); ___ cfe-commits mailing list cfe-commits@lists.llvm.org http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
[libclc] r304556 - generic: add missing get_work_dim include
Author: jvesely Date: Fri Jun 2 10:58:35 2017 New Revision: 304556 URL: http://llvm.org/viewvc/llvm-project?rev=304556&view=rev Log: generic: add missing get_work_dim include Fixes few piglits since clang r304193 Signed-off-by: Jan Vesely Reviewed-by: Aaron Watry Modified: libclc/trunk/generic/include/clc/clc.h Modified: libclc/trunk/generic/include/clc/clc.h URL: http://llvm.org/viewvc/llvm-project/libclc/trunk/generic/include/clc/clc.h?rev=304556&r1=304555&r2=304556&view=diff == --- libclc/trunk/generic/include/clc/clc.h (original) +++ libclc/trunk/generic/include/clc/clc.h Fri Jun 2 10:58:35 2017 @@ -31,6 +31,7 @@ #include #include #include +#include /* 6.11.2 Math Functions */ #include ___ cfe-commits mailing list cfe-commits@lists.llvm.org http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
[libclc] r326816 - Move cl_khr_fp64 exntension enablement to gentype include lists
Author: jvesely Date: Tue Mar 6 09:48:35 2018 New Revision: 326816 URL: http://llvm.org/viewvc/llvm-project?rev=326816&view=rev Log: Move cl_khr_fp64 exntension enablement to gentype include lists This will make adding cl_khr_fp16 support easier Reviewed-by: Aaron Watry Signed-off-by: Jan Vesely Modified: libclc/trunk/generic/include/clc/async/gentype.inc libclc/trunk/generic/include/clc/geometric/floatn.inc libclc/trunk/generic/include/clc/math/binary_intrin.inc libclc/trunk/generic/include/clc/math/ternary_intrin.inc libclc/trunk/generic/include/clc/math/unary_intrin.inc libclc/trunk/generic/lib/async/async_work_group_copy.cl libclc/trunk/generic/lib/async/async_work_group_strided_copy.cl libclc/trunk/generic/lib/async/prefetch.cl libclc/trunk/generic/lib/common/mix.cl libclc/trunk/generic/lib/geometric/distance.cl libclc/trunk/generic/lib/math/acos.cl libclc/trunk/generic/lib/math/asin.cl libclc/trunk/generic/lib/math/clc_sqrt.cl libclc/trunk/generic/lib/math/exp10.cl libclc/trunk/generic/lib/math/fdim.cl libclc/trunk/generic/lib/math/fract.cl libclc/trunk/generic/lib/math/frexp.cl libclc/trunk/generic/lib/math/hypot.cl libclc/trunk/generic/lib/math/lgamma_r.cl libclc/trunk/generic/lib/math/log10.cl libclc/trunk/generic/lib/math/mad.cl libclc/trunk/generic/lib/math/modf.cl libclc/trunk/generic/lib/math/sincos.cl libclc/trunk/generic/lib/shared/clamp.cl libclc/trunk/generic/lib/shared/max.cl libclc/trunk/generic/lib/shared/min.cl Modified: libclc/trunk/generic/include/clc/async/gentype.inc URL: http://llvm.org/viewvc/llvm-project/libclc/trunk/generic/include/clc/async/gentype.inc?rev=326816&r1=326815&r2=326816&view=diff == --- libclc/trunk/generic/include/clc/async/gentype.inc (original) +++ libclc/trunk/generic/include/clc/async/gentype.inc Tue Mar 6 09:48:35 2018 @@ -180,6 +180,7 @@ #undef __CLC_GENTYPE #ifdef cl_khr_fp64 +#pragma OPENCL EXTENSION cl_khr_fp64 : enable #define __CLC_GENTYPE double #include __CLC_BODY @@ -202,3 +203,5 @@ #undef __CLC_GENTYPE #endif + +#undef __CLC_BODY Modified: libclc/trunk/generic/include/clc/geometric/floatn.inc URL: http://llvm.org/viewvc/llvm-project/libclc/trunk/generic/include/clc/geometric/floatn.inc?rev=326816&r1=326815&r2=326816&view=diff == --- libclc/trunk/generic/include/clc/geometric/floatn.inc (original) +++ libclc/trunk/generic/include/clc/geometric/floatn.inc Tue Mar 6 09:48:35 2018 @@ -24,6 +24,7 @@ #ifndef __FLOAT_ONLY #ifdef cl_khr_fp64 +#pragma OPENCL EXTENSION cl_khr_fp64 : enable #define __CLC_FLOAT double #define __CLC_FPSIZE 64 Modified: libclc/trunk/generic/include/clc/math/binary_intrin.inc URL: http://llvm.org/viewvc/llvm-project/libclc/trunk/generic/include/clc/math/binary_intrin.inc?rev=326816&r1=326815&r2=326816&view=diff == --- libclc/trunk/generic/include/clc/math/binary_intrin.inc (original) +++ libclc/trunk/generic/include/clc/math/binary_intrin.inc Tue Mar 6 09:48:35 2018 @@ -6,6 +6,7 @@ _CLC_OVERLOAD float8 __CLC_FUNCTION(floa _CLC_OVERLOAD float16 __CLC_FUNCTION(float16, float16) __asm(__CLC_INTRINSIC ".v16f32"); #ifdef cl_khr_fp64 +#pragma OPENCL EXTENSION cl_khr_fp64 : enable _CLC_OVERLOAD double __CLC_FUNCTION(double, double) __asm(__CLC_INTRINSIC ".f64"); _CLC_OVERLOAD double2 __CLC_FUNCTION(double2, double2) __asm(__CLC_INTRINSIC ".v2f64"); _CLC_OVERLOAD double3 __CLC_FUNCTION(double3, double3) __asm(__CLC_INTRINSIC ".v3f64"); Modified: libclc/trunk/generic/include/clc/math/ternary_intrin.inc URL: http://llvm.org/viewvc/llvm-project/libclc/trunk/generic/include/clc/math/ternary_intrin.inc?rev=326816&r1=326815&r2=326816&view=diff == --- libclc/trunk/generic/include/clc/math/ternary_intrin.inc (original) +++ libclc/trunk/generic/include/clc/math/ternary_intrin.inc Tue Mar 6 09:48:35 2018 @@ -6,6 +6,7 @@ _CLC_OVERLOAD float8 __CLC_FUNCTION(floa _CLC_OVERLOAD float16 __CLC_FUNCTION(float16, float16, float16) __asm(__CLC_INTRINSIC ".v16f32"); #ifdef cl_khr_fp64 +#pragma OPENCL EXTENSION cl_khr_fp64 : enable _CLC_OVERLOAD double __CLC_FUNCTION(double, double, double) __asm(__CLC_INTRINSIC ".f64"); _CLC_OVERLOAD double2 __CLC_FUNCTION(double2, double2, double2) __asm(__CLC_INTRINSIC ".v2f64"); _CLC_OVERLOAD double3 __CLC_FUNCTION(double3, double3, double3) __asm(__CLC_INTRINSIC ".v3f64"); Modified: libclc/trunk/generic/include/clc/math/unary_intrin.inc URL: http://llvm.org/viewvc/llvm-project/libclc/trunk/generic/include/clc/math/unary_intrin.inc?rev=326816&r1=326815&r2=326816&view=diff == --- li
[libclc] r326817 - maxmag: Condition variable needs to be the same bitwidth as operands
Author: jvesely Date: Tue Mar 6 09:48:38 2018 New Revision: 326817 URL: http://llvm.org/viewvc/llvm-project?rev=326817&view=rev Log: maxmag: Condition variable needs to be the same bitwidth as operands No changes wrt CTS Reviewed-by: Aaron Watry Signed-off-by: Jan Vesely Modified: libclc/trunk/generic/lib/math/maxmag.cl libclc/trunk/generic/lib/math/maxmag.inc Modified: libclc/trunk/generic/lib/math/maxmag.cl URL: http://llvm.org/viewvc/llvm-project/libclc/trunk/generic/lib/math/maxmag.cl?rev=326817&r1=326816&r2=326817&view=diff == --- libclc/trunk/generic/lib/math/maxmag.cl (original) +++ libclc/trunk/generic/lib/math/maxmag.cl Tue Mar 6 09:48:38 2018 @@ -1,4 +1,5 @@ #include +#include #define __CLC_BODY #include Modified: libclc/trunk/generic/lib/math/maxmag.inc URL: http://llvm.org/viewvc/llvm-project/libclc/trunk/generic/lib/math/maxmag.inc?rev=326817&r1=326816&r2=326817&view=diff == --- libclc/trunk/generic/lib/math/maxmag.inc (original) +++ libclc/trunk/generic/lib/math/maxmag.inc Tue Mar 6 09:48:38 2018 @@ -1,4 +1,22 @@ +#ifdef __CLC_SCALAR +#define __CLC_VECSIZE +#endif + +#if __CLC_FPSIZE == 64 +#define __CLC_CONVERT_NATN __CLC_XCONCAT(convert_long, __CLC_VECSIZE) +#elif __CLC_FPSIZE == 32 +#define __CLC_CONVERT_NATN __CLC_XCONCAT(convert_int, __CLC_VECSIZE) +#elif __CLC_FPSIZE == 16 +#define __CLC_CONVERT_NATN __CLC_XCONCAT(convert_short, __CLC_VECSIZE) +#endif + _CLC_OVERLOAD _CLC_DEF __CLC_GENTYPE maxmag(__CLC_GENTYPE x, __CLC_GENTYPE y) { - const __CLC_GENTYPE res = select(y, x, isgreater(fabs(x), fabs(y))); - return select(res, fmax(x, y), isnan(x) | isnan(y) | isequal(fabs(x), fabs(y))); + const __CLC_GENTYPE res = select(y, x, __CLC_CONVERT_NATN(isgreater(fabs(x), fabs(y; + return select(res, fmax(x, y), __CLC_CONVERT_NATN(isnan(x) | isnan(y) | isequal(fabs(x), fabs(y; } + +#undef __CLC_CONVERT_NATN + +#ifdef __CLC_SCALAR +#undef __CLC_VECSIZE +#endif ___ cfe-commits mailing list cfe-commits@lists.llvm.org http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
[libclc] r326818 - minmag: Condition variable needs to be the same bitwidth as operands
Author: jvesely Date: Tue Mar 6 09:48:40 2018 New Revision: 326818 URL: http://llvm.org/viewvc/llvm-project?rev=326818&view=rev Log: minmag: Condition variable needs to be the same bitwidth as operands No changes wrt CTS Reviewed-by: Aaron Watry Signed-off-by: Jan Vesely Modified: libclc/trunk/generic/lib/math/minmag.cl libclc/trunk/generic/lib/math/minmag.inc Modified: libclc/trunk/generic/lib/math/minmag.cl URL: http://llvm.org/viewvc/llvm-project/libclc/trunk/generic/lib/math/minmag.cl?rev=326818&r1=326817&r2=326818&view=diff == --- libclc/trunk/generic/lib/math/minmag.cl (original) +++ libclc/trunk/generic/lib/math/minmag.cl Tue Mar 6 09:48:40 2018 @@ -1,4 +1,5 @@ #include +#include #define __CLC_BODY #include Modified: libclc/trunk/generic/lib/math/minmag.inc URL: http://llvm.org/viewvc/llvm-project/libclc/trunk/generic/lib/math/minmag.inc?rev=326818&r1=326817&r2=326818&view=diff == --- libclc/trunk/generic/lib/math/minmag.inc (original) +++ libclc/trunk/generic/lib/math/minmag.inc Tue Mar 6 09:48:40 2018 @@ -1,4 +1,22 @@ +#ifdef __CLC_SCALAR +#define __CLC_VECSIZE +#endif + +#if __CLC_FPSIZE == 64 +#define __CLC_CONVERT_NATN __CLC_XCONCAT(convert_long, __CLC_VECSIZE) +#elif __CLC_FPSIZE == 32 +#define __CLC_CONVERT_NATN __CLC_XCONCAT(convert_int, __CLC_VECSIZE) +#elif __CLC_FPSIZE == 16 +#define __CLC_CONVERT_NATN __CLC_XCONCAT(convert_short, __CLC_VECSIZE) +#endif + _CLC_OVERLOAD _CLC_DEF __CLC_GENTYPE minmag(__CLC_GENTYPE x, __CLC_GENTYPE y) { - const __CLC_GENTYPE res = select(y, x, isless(fabs(x), fabs(y))); - return select(res, fmin(x, y), isnan(x) | isnan(y) | isequal(fabs(x), fabs(y))); + const __CLC_GENTYPE res = select(y, x, __CLC_CONVERT_NATN(isless(fabs(x), fabs(y; + return select(res, fmin(x, y), __CLC_CONVERT_NATN(isnan(x) | isnan(y) | isequal(fabs(x), fabs(y; } + +#undef __CLC_CONVERT_NATN + +#ifdef __CLC_SCALAR +#undef __CLC_VECSIZE +#endif ___ cfe-commits mailing list cfe-commits@lists.llvm.org http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
[libclc] r326819 - select: Add vector implementation
Author: jvesely Date: Tue Mar 6 09:48:43 2018 New Revision: 326819 URL: http://llvm.org/viewvc/llvm-project?rev=326819&view=rev Log: select: Add vector implementation Passes CTS on Carrizo Reviewed-by: Aaron Watry Signed-off-by: Jan Vesely Added: libclc/trunk/generic/include/clc/relational/select.inc libclc/trunk/generic/lib/relational/select.cl libclc/trunk/generic/lib/relational/select.inc Modified: libclc/trunk/generic/include/clc/relational/select.h libclc/trunk/generic/lib/SOURCES Modified: libclc/trunk/generic/include/clc/relational/select.h URL: http://llvm.org/viewvc/llvm-project/libclc/trunk/generic/include/clc/relational/select.h?rev=326819&r1=326818&r2=326819&view=diff == --- libclc/trunk/generic/include/clc/relational/select.h (original) +++ libclc/trunk/generic/include/clc/relational/select.h Tue Mar 6 09:48:43 2018 @@ -1 +1,11 @@ -#define select(a, b, c) ((c) ? (b) : (a)) +/* Duplciate these so we don't have to distribute utils.h */ +#define __CLC_CONCAT(x, y) x ## y +#define __CLC_XCONCAT(x, y) __CLC_CONCAT(x, y) + +#define __CLC_BODY +#include +#define __CLC_BODY +#include + +#undef __CLC_CONCAT +#undef __CLC_XCONCAT Added: libclc/trunk/generic/include/clc/relational/select.inc URL: http://llvm.org/viewvc/llvm-project/libclc/trunk/generic/include/clc/relational/select.inc?rev=326819&view=auto == --- libclc/trunk/generic/include/clc/relational/select.inc (added) +++ libclc/trunk/generic/include/clc/relational/select.inc Tue Mar 6 09:48:43 2018 @@ -0,0 +1,25 @@ +#ifdef __CLC_SCALAR +#define __CLC_VECSIZE +#endif + +#if __CLC_FPSIZE == 64 +#define __CLC_S_GENTYPE __CLC_XCONCAT(long, __CLC_VECSIZE) +#define __CLC_U_GENTYPE __CLC_XCONCAT(ulong, __CLC_VECSIZE) +#elif __CLC_FPSIZE == 32 +#define __CLC_S_GENTYPE __CLC_XCONCAT(int, __CLC_VECSIZE) +#define __CLC_U_GENTYPE __CLC_XCONCAT(uint, __CLC_VECSIZE) +#elif __CLC_FPSIZE == 16 +#define __CLC_S_GENTYPE __CLC_XCONCAT(char, __CLC_VECSIZE) +#define __CLC_U_GENTYPE __CLC_XCONCAT(uchar, __CLC_VECSIZE) +#endif + +_CLC_OVERLOAD _CLC_DECL __CLC_GENTYPE select(__CLC_GENTYPE x, __CLC_GENTYPE y, __CLC_S_GENTYPE z); +_CLC_OVERLOAD _CLC_DECL __CLC_GENTYPE select(__CLC_GENTYPE x, __CLC_GENTYPE y, __CLC_U_GENTYPE z); + +#ifdef __CLC_FPSIZE +#undef __CLC_S_GENTYPE +#undef __CLC_U_GENTYPE +#endif +#ifdef __CLC_SCALAR +#undef __CLC_VECSIZE +#endif Modified: libclc/trunk/generic/lib/SOURCES URL: http://llvm.org/viewvc/llvm-project/libclc/trunk/generic/lib/SOURCES?rev=326819&r1=326818&r2=326819&view=diff == --- libclc/trunk/generic/lib/SOURCES (original) +++ libclc/trunk/generic/lib/SOURCES Tue Mar 6 09:48:43 2018 @@ -189,6 +189,7 @@ relational/isnormal.cl relational/isnotequal.cl relational/isordered.cl relational/isunordered.cl +relational/select.cl relational/signbit.cl shared/clamp.cl shared/max.cl Added: libclc/trunk/generic/lib/relational/select.cl URL: http://llvm.org/viewvc/llvm-project/libclc/trunk/generic/lib/relational/select.cl?rev=326819&view=auto == --- libclc/trunk/generic/lib/relational/select.cl (added) +++ libclc/trunk/generic/lib/relational/select.cl Tue Mar 6 09:48:43 2018 @@ -0,0 +1,7 @@ +#include +#include + +#define __CLC_BODY +#include +#define __CLC_BODY +#include Added: libclc/trunk/generic/lib/relational/select.inc URL: http://llvm.org/viewvc/llvm-project/libclc/trunk/generic/lib/relational/select.inc?rev=326819&view=auto == --- libclc/trunk/generic/lib/relational/select.inc (added) +++ libclc/trunk/generic/lib/relational/select.inc Tue Mar 6 09:48:43 2018 @@ -0,0 +1,47 @@ +#ifdef __CLC_SCALAR +#define __CLC_VECSIZE +#endif + +#if __CLC_FPSIZE == 64 +#define __CLC_S_GENTYPE __CLC_XCONCAT(long, __CLC_VECSIZE) +#define __CLC_U_GENTYPE __CLC_XCONCAT(ulong, __CLC_VECSIZE) +#elif __CLC_FPSIZE == 32 +#define __CLC_S_GENTYPE __CLC_XCONCAT(int, __CLC_VECSIZE) +#define __CLC_U_GENTYPE __CLC_XCONCAT(uint, __CLC_VECSIZE) +#elif __CLC_FPSIZE == 16 +#define __CLC_S_GENTYPE __CLC_XCONCAT(char, __CLC_VECSIZE) +#define __CLC_U_GENTYPE __CLC_XCONCAT(uchar, __CLC_VECSIZE) +#endif +#ifdef __CLC_FPSIZE +#define __CLC_GENSIZE __CLC_FPSIZE +#endif + +#define __CLC_AS_S_GENTYPE __CLC_XCONCAT(as_, __CLC_S_GENTYPE) +#define __CLC_AS_GENTYPE __CLC_XCONCAT(as_, __CLC_GENTYPE) + +_CLC_OVERLOAD _CLC_DEF __CLC_GENTYPE select(__CLC_GENTYPE x, __CLC_GENTYPE y, __CLC_S_GENTYPE z) +{ +#ifdef __CLC_SCALAR + return z ? y : x; +#else + __CLC_S_GENTYPE bitmask = z >> (__CLC_GENSIZE - 1); + return __CLC_AS_GENTYPE(bitselect(__CLC_AS_S_GENTYPE(x), __CLC_AS_S_GENTYPE(y), bitmask)); +#endif +} + +_CLC_OVERLOAD _CLC_DEF __CLC_
[libclc] r326820 - frexp: Reuse types provided by gentype.inc
Author: jvesely Date: Tue Mar 6 09:48:45 2018 New Revision: 326820 URL: http://llvm.org/viewvc/llvm-project?rev=326820&view=rev Log: frexp: Reuse types provided by gentype.inc v2: Use select instead of bitselect to consolidate scalar and vector versions Passes CTS on Carrizo Reviewed-by: Aaron Watry Signed-off-by: Jan Vesely Modified: libclc/trunk/generic/lib/math/frexp.cl libclc/trunk/generic/lib/math/frexp.inc Modified: libclc/trunk/generic/lib/math/frexp.cl URL: http://llvm.org/viewvc/llvm-project/libclc/trunk/generic/lib/math/frexp.cl?rev=326820&r1=326819&r2=326820&view=diff == --- libclc/trunk/generic/lib/math/frexp.cl (original) +++ libclc/trunk/generic/lib/math/frexp.cl Tue Mar 6 09:48:45 2018 @@ -1,6 +1,17 @@ #include +#include -#include "math.h" +#define __CLC_BODY +#define __CLC_ADDRESS_SPACE private +#include +#undef __CLC_ADDRESS_SPACE + +#define __CLC_BODY +#define __CLC_ADDRESS_SPACE global +#include +#undef __CLC_ADDRESS_SPACE #define __CLC_BODY +#define __CLC_ADDRESS_SPACE local #include +#undef __CLC_ADDRESS_SPACE Modified: libclc/trunk/generic/lib/math/frexp.inc URL: http://llvm.org/viewvc/llvm-project/libclc/trunk/generic/lib/math/frexp.inc?rev=326820&r1=326819&r2=326820&view=diff == --- libclc/trunk/generic/lib/math/frexp.inc (original) +++ libclc/trunk/generic/lib/math/frexp.inc Tue Mar 6 09:48:45 2018 @@ -20,91 +20,55 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ + +#define __CLC_AS_GENTYPE __CLC_XCONCAT(as_, __CLC_GENTYPE) +#define __CLC_AS_INTN __CLC_XCONCAT(as_, __CLC_INTN) + #if __CLC_FPSIZE == 32 -#ifdef __CLC_SCALAR -_CLC_OVERLOAD _CLC_DEF __CLC_GENTYPE frexp(float x, private int *ep) { -int i = as_int(x); -int ai = i & 0x7fff; -int d = ai > 0 & ai < 0x0080; -// scale subnormal by 2^26 without multiplying -float s = as_float(ai | 0x0d80) - 0x1.0p-100F; -ai = d ? as_int(s) : ai; -int e = (ai >> 23) - 126 - (d ? 26 : 0); -int t = ai == 0 | e == 129; -i = (i & 0x8000) | 0x3f00 | (ai & 0x007f); -*ep = t ? 0 : e; -return t ? x : as_float(i); +_CLC_OVERLOAD _CLC_DEF __CLC_GENTYPE frexp(__CLC_GENTYPE x, __CLC_ADDRESS_SPACE __CLC_INTN *ep) { +__CLC_INTN i = __CLC_AS_INTN(x); +__CLC_INTN ai = i & 0x7fff; +__CLC_INTN d = ai > 0 & ai < 0x0080; +/* scale subnormal by 2^26 without multiplying */ +__CLC_GENTYPE s = __CLC_AS_GENTYPE(ai | 0x0d80) - 0x1.0p-100f; +ai = select(ai, __CLC_AS_INTN(s), d); +__CLC_INTN e = (ai >> 23) - 126 - select((__CLC_INTN)0, (__CLC_INTN)26, d); +__CLC_INTN t = ai == (__CLC_INTN)0 | e == (__CLC_INTN)129; +i = (i & (__CLC_INTN)0x8000) | (__CLC_INTN)0x3f00 | (ai & 0x007f); +*ep = select(e, (__CLC_INTN)0, t); +return select(__CLC_AS_GENTYPE(i), x, t); } -#define __CLC_FREXP_VEC(width) \ -_CLC_OVERLOAD _CLC_DEF float##width frexp(float##width x, private int##width *ep) { \ -int##width i = as_int##width(x); \ -int##width ai = i & 0x7fff; \ -int##width d = ai > 0 & ai < 0x0080; \ -/* scale subnormal by 2^26 without multiplying */ \ -float##width s = as_float##width(ai | 0x0d80) - 0x1.0p-100F; \ -ai = bitselect(ai, as_int##width(s), d); \ -int##width e = (ai >> 23) - 126 - bitselect((int##width)0, (int##width)26, d); \ -int##width t = ai == (int##width)0 | e == (int##width)129; \ -i = (i & (int##width)0x8000) | (int##width)0x3f00 | (ai & 0x007f); \ -*ep = bitselect(e, (int##width)0, t); \ -return bitselect(as_float##width(i), x, as_float##width(t)); \ -} -__CLC_FREXP_VEC(2) -__CLC_FREXP_VEC(3) -__CLC_FREXP_VEC(4) -__CLC_FREXP_VEC(8) -__CLC_FREXP_VEC(16) -#undef __CLC_FREXP_VEC -#endif #endif #if __CLC_FPSIZE == 64 #ifdef __CLC_SCALAR -_CLC_OVERLOAD _CLC_DEF __CLC_GENTYPE frexp(__CLC_GENTYPE x, private __CLC_INTN *ep) { -long i = as_long(x); -long ai = i & 0x7fffL; -int d = ai > 0 & ai < 0x0010L; -// scale subnormal by 2^54 without multiplying -double s = as_double(ai | 0x0370L) - 0x1.0p-968; -ai = d ? as_long(s) : ai; -int e = (int)(ai >> 52) - 1022 - (d ? 54 : 0); -int t = ai == 0 | e == 1025; -i = (i & 0x8000L) | 0x3fe0L | (ai & 0x000fL); -*ep = t ? 0 : e; -return t ? x : as_double(i); -} -#define __CLC_FREXP_VEC(width) \ -_CLC_OVERLOAD _CLC_DEF double##width frexp(double##width x, private int##width *ep) { \ -long##width i = as_long##width(x); \ -long##width ai = i & 0x7fffL; \ -long##width d = ai > 0 & ai < 0x0010L; \ -/* scale subnormal by 2^54 without multiplying */ \ -double##width s = as_double##width(ai | 0x0370L) - 0x1.0p-968; \ -a
[libclc] r326821 - lgamma_r: Move code from .inc to .cl file
Author: jvesely Date: Tue Mar 6 09:48:47 2018 New Revision: 326821 URL: http://llvm.org/viewvc/llvm-project?rev=326821&view=rev Log: lgamma_r: Move code from .inc to .cl file Reviewed-by: Aaron Watry Signed-off-by: Jan Vesely Modified: libclc/trunk/generic/lib/math/lgamma_r.cl libclc/trunk/generic/lib/math/lgamma_r.inc Modified: libclc/trunk/generic/lib/math/lgamma_r.cl URL: http://llvm.org/viewvc/llvm-project/libclc/trunk/generic/lib/math/lgamma_r.cl?rev=326821&r1=326820&r2=326821&view=diff == --- libclc/trunk/generic/lib/math/lgamma_r.cl (original) +++ libclc/trunk/generic/lib/math/lgamma_r.cl Tue Mar 6 09:48:47 2018 @@ -1,7 +1,498 @@ +/* + * Copyright (c) 2014 Advanced Micro Devices, Inc. + * Copyright (c) 2016 Aaron Watry + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in + * all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN + * THE SOFTWARE. + */ + #include #include "../clcmacro.h" #include "math.h" +/* + * + * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved. + * + * Developed at SunPro, a Sun Microsystems, Inc. business. + * Permission to use, copy, modify, and distribute this + * software is freely granted, provided that this notice + * is preserved. + * + */ + +#define pi_f 3.1415927410e+00f/* 0x40490fdb */ + +#define a0_f 7.7215664089e-02f/* 0x3d9e233f */ +#define a1_f 3.2246702909e-01f/* 0x3ea51a66 */ +#define a2_f 6.7352302372e-02f/* 0x3d89f001 */ +#define a3_f 2.0580807701e-02f/* 0x3ca89915 */ +#define a4_f 7.3855509982e-03f/* 0x3bf2027e */ +#define a5_f 2.8905137442e-03f/* 0x3b3d6ec6 */ +#define a6_f 1.1927076848e-03f/* 0x3a9c54a1 */ +#define a7_f 5.1006977446e-04f/* 0x3a05b634 */ +#define a8_f 2.2086278477e-04f/* 0x39679767 */ +#define a9_f 1.0801156895e-04f/* 0x38e28445 */ +#define a10_f 2.5214456400e-05f/* 0x37d383a2 */ +#define a11_f 4.4864096708e-05f/* 0x383c2c75 */ + +#define tc_f 1.4616321325e+00f/* 0x3fbb16c3 */ + +#define tf_f -1.2148628384e-01f/* 0xbdf8cdcd */ +/* tt -(tail of tf) */ +#define tt_f 6.6971006518e-09f/* 0x31e61c52 */ + +#define t0_f 4.8383611441e-01f/* 0x3ef7b95e */ +#define t1_f -1.4758771658e-01f/* 0xbe17213c */ +#define t2_f 6.4624942839e-02f/* 0x3d845a15 */ +#define t3_f -3.2788541168e-02f/* 0xbd064d47 */ +#define t4_f 1.7970675603e-02f/* 0x3c93373d */ +#define t5_f -1.0314224288e-02f/* 0xbc28fcfe */ +#define t6_f 6.1005386524e-03f/* 0x3bc7e707 */ +#define t7_f -3.6845202558e-03f/* 0xbb7177fe */ +#define t8_f 2.2596477065e-03f/* 0x3b141699 */ +#define t9_f -1.4034647029e-03f/* 0xbab7f476 */ +#define t10_f 8.8108185446e-04f/* 0x3a66f867 */ +#define t11_f -5.3859531181e-04f/* 0xba0d3085 */ +#define t12_f 3.1563205994e-04f/* 0x39a57b6b */ +#define t13_f -3.1275415677e-04f/* 0xb9a3f927 */ +#define t14_f 3.3552918467e-04f/* 0x39afe9f7 */ + +#define u0_f -7.7215664089e-02f/* 0xbd9e233f */ +#define u1_f 6.3282704353e-01f/* 0x3f2200f4 */ +#define u2_f 1.4549225569e+00f/* 0x3fba3ae7 */ +#define u3_f 9.7771751881e-01f/* 0x3f7a4bb2 */ +#define u4_f 2.2896373272e-01f/* 0x3e6a7578 */ +#define u5_f 1.3381091878e-02f/* 0x3c5b3c5e */ + +#define v1_f 2.4559779167e+00f/* 0x401d2ebe */ +#define v2_f 2.1284897327e+00f/* 0x4008392d */ +#define v3_f 7.6928514242e-01f/* 0x3f44efdf */ +#define v4_f 1.0422264785e-01f/* 0x3dd572af */ +#define v5_f 3.2170924824e-03f/* 0x3b52d5db */ + +#define s0_f -7.7215664089e-02f/* 0xbd9e233f */ +#define s1_f 2.1498242021e-01f/* 0x3e5c245a */ +#define s2_f 3.2577878
[libclc] r327042 - popcount: Provide function implementation rather than intrinsic redirect
Author: jvesely Date: Thu Mar 8 10:58:00 2018 New Revision: 327042 URL: http://llvm.org/viewvc/llvm-project?rev=327042&view=rev Log: popcount: Provide function implementation rather than intrinsic redirect amdgcn will need to override this Reviewer: Aaron Watry Signed-off-by: Jan Vesely Added: libclc/trunk/generic/include/clc/integer/unary.inc libclc/trunk/generic/include/integer/ libclc/trunk/generic/include/integer/popcount.h libclc/trunk/generic/include/integer/unary_intrin.inc - copied, changed from r326821, libclc/trunk/generic/include/clc/integer/unary_intrin.inc libclc/trunk/generic/lib/clc_unary.inc libclc/trunk/generic/lib/integer/popcount.cl Removed: libclc/trunk/generic/include/clc/integer/unary_intrin.inc Modified: libclc/trunk/generic/include/clc/integer/popcount.h libclc/trunk/generic/lib/SOURCES Modified: libclc/trunk/generic/include/clc/integer/popcount.h URL: http://llvm.org/viewvc/llvm-project/libclc/trunk/generic/include/clc/integer/popcount.h?rev=327042&r1=327041&r2=327042&view=diff == --- libclc/trunk/generic/include/clc/integer/popcount.h (original) +++ libclc/trunk/generic/include/clc/integer/popcount.h Thu Mar 8 10:58:00 2018 @@ -1,6 +1,5 @@ -#undef popcount -#define popcount __clc_popcount - -#define __CLC_FUNCTION __clc_popcount -#define __CLC_INTRINSIC "llvm.ctpop" -#include +#define __CLC_FUNCTION popcount +#define __CLC_BODY +#include +#undef __CLC_FUNCTION +#undef __CLC_BODY Added: libclc/trunk/generic/include/clc/integer/unary.inc URL: http://llvm.org/viewvc/llvm-project/libclc/trunk/generic/include/clc/integer/unary.inc?rev=327042&view=auto == --- libclc/trunk/generic/include/clc/integer/unary.inc (added) +++ libclc/trunk/generic/include/clc/integer/unary.inc Thu Mar 8 10:58:00 2018 @@ -0,0 +1 @@ +_CLC_OVERLOAD _CLC_DECL __CLC_GENTYPE __CLC_FUNCTION(__CLC_GENTYPE x); Removed: libclc/trunk/generic/include/clc/integer/unary_intrin.inc URL: http://llvm.org/viewvc/llvm-project/libclc/trunk/generic/include/clc/integer/unary_intrin.inc?rev=327041&view=auto == --- libclc/trunk/generic/include/clc/integer/unary_intrin.inc (original) +++ libclc/trunk/generic/include/clc/integer/unary_intrin.inc (removed) @@ -1,20 +0,0 @@ -#define __CLC_INTRINSIC_DEF(SCALAR_TYPE, BIT_SIZE) \ -_CLC_OVERLOAD SCALAR_TYPE __CLC_FUNCTION(SCALAR_TYPE x) __asm(__CLC_INTRINSIC ".i" BIT_SIZE); \ -_CLC_OVERLOAD SCALAR_TYPE##2 __CLC_FUNCTION(SCALAR_TYPE##2 x) __asm(__CLC_INTRINSIC ".v2i" BIT_SIZE); \ -_CLC_OVERLOAD SCALAR_TYPE##3 __CLC_FUNCTION(SCALAR_TYPE##3 x) __asm(__CLC_INTRINSIC ".v3i" BIT_SIZE); \ -_CLC_OVERLOAD SCALAR_TYPE##4 __CLC_FUNCTION(SCALAR_TYPE##4 x) __asm(__CLC_INTRINSIC ".v4i" BIT_SIZE); \ -_CLC_OVERLOAD SCALAR_TYPE##8 __CLC_FUNCTION(SCALAR_TYPE##8 x) __asm(__CLC_INTRINSIC ".v8i" BIT_SIZE); \ -_CLC_OVERLOAD SCALAR_TYPE##16 __CLC_FUNCTION(SCALAR_TYPE##16 x) __asm(__CLC_INTRINSIC ".v16i" BIT_SIZE); - -__CLC_INTRINSIC_DEF(char, "8") -__CLC_INTRINSIC_DEF(uchar, "8") -__CLC_INTRINSIC_DEF(short, "16") -__CLC_INTRINSIC_DEF(ushort, "16") -__CLC_INTRINSIC_DEF(int, "32") -__CLC_INTRINSIC_DEF(uint, "32") -__CLC_INTRINSIC_DEF(long, "64") -__CLC_INTRINSIC_DEF(ulong, "64") - -#undef __CLC_FUNCTION -#undef __CLC_INTRINSIC -#undef __CLC_INTRINSIC_DEF Added: libclc/trunk/generic/include/integer/popcount.h URL: http://llvm.org/viewvc/llvm-project/libclc/trunk/generic/include/integer/popcount.h?rev=327042&view=auto == --- libclc/trunk/generic/include/integer/popcount.h (added) +++ libclc/trunk/generic/include/integer/popcount.h Thu Mar 8 10:58:00 2018 @@ -0,0 +1,3 @@ +#define __CLC_FUNCTION __clc_native_popcount +#define __CLC_INTRINSIC "llvm.ctpop" +#include Copied: libclc/trunk/generic/include/integer/unary_intrin.inc (from r326821, libclc/trunk/generic/include/clc/integer/unary_intrin.inc) URL: http://llvm.org/viewvc/llvm-project/libclc/trunk/generic/include/integer/unary_intrin.inc?p2=libclc/trunk/generic/include/integer/unary_intrin.inc&p1=libclc/trunk/generic/include/clc/integer/unary_intrin.inc&r1=326821&r2=327042&rev=327042&view=diff == (empty) Modified: libclc/trunk/generic/lib/SOURCES URL: http://llvm.org/viewvc/llvm-project/libclc/trunk/generic/lib/SOURCES?rev=327042&r1=327041&r2=327042&view=diff == --- libclc/trunk/generic/lib/SOURCES (original) +++ libclc/trunk/generic/lib/SOURCES Thu Mar 8 10:58:00 2018 @@ -70,6 +70,7 @@ integer/mad24.cl integer/mad_sat.cl integer/mul24.cl integer/mul_hi.cl +integer/popcount.cl integer/rhadd.cl integer/rotate.cl integer/sub_sat.cl Ad
[libclc] r327043 - integer/gentype: Add __CLC_VECSIZE macro
Author: jvesely Date: Thu Mar 8 10:58:05 2018 New Revision: 327043 URL: http://llvm.org/viewvc/llvm-project?rev=327043&view=rev Log: integer/gentype: Add __CLC_VECSIZE macro Reviewer: Aaron Watry Signed-off-by: Jan Vesely Modified: libclc/trunk/generic/include/clc/integer/gentype.inc Modified: libclc/trunk/generic/include/clc/integer/gentype.inc URL: http://llvm.org/viewvc/llvm-project/libclc/trunk/generic/include/clc/integer/gentype.inc?rev=327043&r1=327042&r2=327043&view=diff == --- libclc/trunk/generic/include/clc/integer/gentype.inc (original) +++ libclc/trunk/generic/include/clc/integer/gentype.inc Thu Mar 8 10:58:05 2018 @@ -7,7 +7,9 @@ #define __CLC_U_GENTYPE uchar #define __CLC_S_GENTYPE char #define __CLC_SCALAR 1 +#define __CLC_VECSIZE #include __CLC_BODY +#undef __CLC_VECSIZE #undef __CLC_SCALAR #undef __CLC_GENTYPE #undef __CLC_U_GENTYPE @@ -16,7 +18,9 @@ #define __CLC_GENTYPE char2 #define __CLC_U_GENTYPE uchar2 #define __CLC_S_GENTYPE char2 +#define __CLC_VECSIZE 2 #include __CLC_BODY +#undef __CLC_VECSIZE #undef __CLC_GENTYPE #undef __CLC_U_GENTYPE #undef __CLC_S_GENTYPE @@ -24,7 +28,9 @@ #define __CLC_GENTYPE char3 #define __CLC_U_GENTYPE uchar3 #define __CLC_S_GENTYPE char3 +#define __CLC_VECSIZE 3 #include __CLC_BODY +#undef __CLC_VECSIZE #undef __CLC_GENTYPE #undef __CLC_U_GENTYPE #undef __CLC_S_GENTYPE @@ -32,7 +38,9 @@ #define __CLC_GENTYPE char4 #define __CLC_U_GENTYPE uchar4 #define __CLC_S_GENTYPE char4 +#define __CLC_VECSIZE 4 #include __CLC_BODY +#undef __CLC_VECSIZE #undef __CLC_GENTYPE #undef __CLC_U_GENTYPE #undef __CLC_S_GENTYPE @@ -40,7 +48,9 @@ #define __CLC_GENTYPE char8 #define __CLC_U_GENTYPE uchar8 #define __CLC_S_GENTYPE char8 +#define __CLC_VECSIZE 8 #include __CLC_BODY +#undef __CLC_VECSIZE #undef __CLC_GENTYPE #undef __CLC_U_GENTYPE #undef __CLC_S_GENTYPE @@ -48,7 +58,9 @@ #define __CLC_GENTYPE char16 #define __CLC_U_GENTYPE uchar16 #define __CLC_S_GENTYPE char16 +#define __CLC_VECSIZE 16 #include __CLC_BODY +#undef __CLC_VECSIZE #undef __CLC_GENTYPE #undef __CLC_U_GENTYPE #undef __CLC_S_GENTYPE @@ -60,7 +72,9 @@ #define __CLC_U_GENTYPE uchar #define __CLC_S_GENTYPE char #define __CLC_SCALAR 1 +#define __CLC_VECSIZE #include __CLC_BODY +#undef __CLC_VECSIZE #undef __CLC_SCALAR #undef __CLC_GENTYPE #undef __CLC_U_GENTYPE @@ -69,7 +83,9 @@ #define __CLC_GENTYPE uchar2 #define __CLC_U_GENTYPE uchar2 #define __CLC_S_GENTYPE char2 +#define __CLC_VECSIZE 2 #include __CLC_BODY +#undef __CLC_VECSIZE #undef __CLC_GENTYPE #undef __CLC_U_GENTYPE #undef __CLC_S_GENTYPE @@ -77,7 +93,9 @@ #define __CLC_GENTYPE uchar3 #define __CLC_U_GENTYPE uchar3 #define __CLC_S_GENTYPE char3 +#define __CLC_VECSIZE 3 #include __CLC_BODY +#undef __CLC_VECSIZE #undef __CLC_GENTYPE #undef __CLC_U_GENTYPE #undef __CLC_S_GENTYPE @@ -85,7 +103,9 @@ #define __CLC_GENTYPE uchar4 #define __CLC_U_GENTYPE uchar4 #define __CLC_S_GENTYPE char4 +#define __CLC_VECSIZE 4 #include __CLC_BODY +#undef __CLC_VECSIZE #undef __CLC_GENTYPE #undef __CLC_U_GENTYPE #undef __CLC_S_GENTYPE @@ -93,7 +113,9 @@ #define __CLC_GENTYPE uchar8 #define __CLC_U_GENTYPE uchar8 #define __CLC_S_GENTYPE char8 +#define __CLC_VECSIZE 8 #include __CLC_BODY +#undef __CLC_VECSIZE #undef __CLC_GENTYPE #undef __CLC_U_GENTYPE #undef __CLC_S_GENTYPE @@ -101,7 +123,9 @@ #define __CLC_GENTYPE uchar16 #define __CLC_U_GENTYPE uchar16 #define __CLC_S_GENTYPE char16 +#define __CLC_VECSIZE 16 #include __CLC_BODY +#undef __CLC_VECSIZE #undef __CLC_GENTYPE #undef __CLC_U_GENTYPE #undef __CLC_S_GENTYPE @@ -115,7 +139,9 @@ #define __CLC_U_GENTYPE ushort #define __CLC_S_GENTYPE short #define __CLC_SCALAR 1 +#define __CLC_VECSIZE #include __CLC_BODY +#undef __CLC_VECSIZE #undef __CLC_SCALAR #undef __CLC_GENTYPE #undef __CLC_U_GENTYPE @@ -124,7 +150,9 @@ #define __CLC_GENTYPE short2 #define __CLC_U_GENTYPE ushort2 #define __CLC_S_GENTYPE short2 +#define __CLC_VECSIZE 2 #include __CLC_BODY +#undef __CLC_VECSIZE #undef __CLC_GENTYPE #undef __CLC_U_GENTYPE #undef __CLC_S_GENTYPE @@ -132,7 +160,9 @@ #define __CLC_GENTYPE short3 #define __CLC_U_GENTYPE ushort3 #define __CLC_S_GENTYPE short3 +#define __CLC_VECSIZE 3 #include __CLC_BODY +#undef __CLC_VECSIZE #undef __CLC_GENTYPE #undef __CLC_U_GENTYPE #undef __CLC_S_GENTYPE @@ -140,7 +170,9 @@ #define __CLC_GENTYPE short4 #define __CLC_U_GENTYPE ushort4 #define __CLC_S_GENTYPE short4 +#define __CLC_VECSIZE 4 #include __CLC_BODY +#undef __CLC_VECSIZE #undef __CLC_GENTYPE #undef __CLC_U_GENTYPE #undef __CLC_S_GENTYPE @@ -148,7 +180,9 @@ #define __CLC_GENTYPE short8 #define __CLC_U_GENTYPE ushort8 #define __CLC_S_GENTYPE short8 +#define __CLC_VECSIZE 8 #include __CLC_BODY +#undef __CLC_VECSIZE #undef __CLC_GENTYPE #undef __CLC_U_GENTYPE #undef __CLC_S_GENTYPE @@ -156,7 +190,9 @@ #define __CLC_GENTYPE short16 #de
[libclc] r327044 - amdgcn, popcount: Workaround broken llvm.ctpop intrinsic on some GCN ASICs
Author: jvesely Date: Thu Mar 8 10:58:07 2018 New Revision: 327044 URL: http://llvm.org/viewvc/llvm-project?rev=327044&view=rev Log: amdgcn,popcount: Workaround broken llvm.ctpop intrinsic on some GCN ASICs This is only really needed for VI+ ASICs. However, llvm would cast the value to i32 for older asics anyway. The proper fix is in LLVM-7 (r326535). Fixes CTS popcount on carrizo. Reviewer: Aaron Watry Signed-off-by: Jan Vesely Added: libclc/trunk/amdgcn/lib/integer/ libclc/trunk/amdgcn/lib/integer/popcount.cl libclc/trunk/amdgcn/lib/integer/popcount.inc Modified: libclc/trunk/amdgcn/lib/SOURCES Modified: libclc/trunk/amdgcn/lib/SOURCES URL: http://llvm.org/viewvc/llvm-project/libclc/trunk/amdgcn/lib/SOURCES?rev=327044&r1=327043&r2=327044&view=diff == --- libclc/trunk/amdgcn/lib/SOURCES (original) +++ libclc/trunk/amdgcn/lib/SOURCES Thu Mar 8 10:58:07 2018 @@ -1,4 +1,5 @@ cl_khr_int64_extended_atomics/minmax_helpers.ll +integer/popcount.cl math/ldexp.cl mem_fence/fence.cl synchronization/barrier.cl Added: libclc/trunk/amdgcn/lib/integer/popcount.cl URL: http://llvm.org/viewvc/llvm-project/libclc/trunk/amdgcn/lib/integer/popcount.cl?rev=327044&view=auto == --- libclc/trunk/amdgcn/lib/integer/popcount.cl (added) +++ libclc/trunk/amdgcn/lib/integer/popcount.cl Thu Mar 8 10:58:07 2018 @@ -0,0 +1,6 @@ +#include +#include +#include + +#define __CLC_BODY "popcount.inc" +#include Added: libclc/trunk/amdgcn/lib/integer/popcount.inc URL: http://llvm.org/viewvc/llvm-project/libclc/trunk/amdgcn/lib/integer/popcount.inc?rev=327044&view=auto == --- libclc/trunk/amdgcn/lib/integer/popcount.inc (added) +++ libclc/trunk/amdgcn/lib/integer/popcount.inc Thu Mar 8 10:58:07 2018 @@ -0,0 +1,17 @@ +_CLC_OVERLOAD _CLC_DEF __CLC_GENTYPE popcount(__CLC_GENTYPE x) { +/* LLVM-4+ implements i16 ops for VI+ ASICs. However, ctpop implementation + * is missing until r326535. Therefore we have to convert sub i32 types to uint + * as a workaround. */ +#if __clang_major__ < 7 && __clang_major__ > 3 && __CLC_GENSIZE < 32 + /* Prevent sign extension on uint conversion */ + const __CLC_U_GENTYPE y = __CLC_XCONCAT(as_, __CLC_U_GENTYPE)(x); + /* Convert to uintX */ + const __CLC_XCONCAT(uint, __CLC_VECSIZE) z = __CLC_XCONCAT(convert_uint, __CLC_VECSIZE)(y); + /* Call popcount on uintX type */ + const __CLC_XCONCAT(uint, __CLC_VECSIZE) res = __clc_native_popcount(z); + /* Convert the result back to gentype. */ + return __CLC_XCONCAT(convert_, __CLC_GENTYPE)(res); +#else + return __clc_native_popcount(x); +#endif +} ___ cfe-commits mailing list cfe-commits@lists.llvm.org http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
[libclc] r327075 - amdgcn/fmin: fcanonicalize operands
Author: jvesely Date: Thu Mar 8 15:00:58 2018 New Revision: 327075 URL: http://llvm.org/viewvc/llvm-project?rev=327075&view=rev Log: amdgcn/fmin: fcanonicalize operands v_min instruction needs canonicalized operands. Passes CTS on carrizo Reviewer: Aaron Watry Signed-off-by: Jan Vesely Added: libclc/trunk/amdgcn/lib/math/fmin.cl Modified: libclc/trunk/amdgcn/lib/SOURCES Modified: libclc/trunk/amdgcn/lib/SOURCES URL: http://llvm.org/viewvc/llvm-project/libclc/trunk/amdgcn/lib/SOURCES?rev=327075&r1=327074&r2=327075&view=diff == --- libclc/trunk/amdgcn/lib/SOURCES (original) +++ libclc/trunk/amdgcn/lib/SOURCES Thu Mar 8 15:00:58 2018 @@ -1,5 +1,6 @@ cl_khr_int64_extended_atomics/minmax_helpers.ll integer/popcount.cl +math/fmin.cl math/ldexp.cl mem_fence/fence.cl synchronization/barrier.cl Added: libclc/trunk/amdgcn/lib/math/fmin.cl URL: http://llvm.org/viewvc/llvm-project/libclc/trunk/amdgcn/lib/math/fmin.cl?rev=327075&view=auto == --- libclc/trunk/amdgcn/lib/math/fmin.cl (added) +++ libclc/trunk/amdgcn/lib/math/fmin.cl Thu Mar 8 15:00:58 2018 @@ -0,0 +1,31 @@ +#include + +#include "../../../generic/lib/clcmacro.h" + +_CLC_DEF _CLC_OVERLOAD float fmin(float x, float y) +{ + /* fcanonicalize removes sNaNs and flushes denormals if not enabled. +* Otherwise fmin instruction flushes the values for comparison, +* but outputs original denormal */ + x = __builtin_canonicalizef(x); + y = __builtin_canonicalizef(y); + return __builtin_fminf(x, y); +} +_CLC_BINARY_VECTORIZE(_CLC_OVERLOAD _CLC_DEF, float, fmin, float, float) + +#ifdef cl_khr_fp64 + +#pragma OPENCL EXTENSION cl_khr_fp64 : enable + +_CLC_DEF _CLC_OVERLOAD double fmin(double x, double y) +{ + x = __builtin_canonicalizef(x); + y = __builtin_canonicalizef(y); + return __builtin_fminf(x, y); +} +_CLC_BINARY_VECTORIZE(_CLC_OVERLOAD _CLC_DEF, double, fmin, double, double) + +#endif + +#define __CLC_BODY <../../../generic/lib/math/fmin.inc> +#include ___ cfe-commits mailing list cfe-commits@lists.llvm.org http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
[libclc] r327076 - amdgcn/fmax: fcanonicalize operands
Author: jvesely Date: Thu Mar 8 15:01:01 2018 New Revision: 327076 URL: http://llvm.org/viewvc/llvm-project?rev=327076&view=rev Log: amdgcn/fmax: fcanonicalize operands v_max instruction needs canonicalized operands. Passes CTS on carrizo Reviewer: Aaron Watry Signed-off-by: Jan Vesely Added: libclc/trunk/amdgcn/lib/math/fmax.cl Modified: libclc/trunk/amdgcn/lib/SOURCES Modified: libclc/trunk/amdgcn/lib/SOURCES URL: http://llvm.org/viewvc/llvm-project/libclc/trunk/amdgcn/lib/SOURCES?rev=327076&r1=327075&r2=327076&view=diff == --- libclc/trunk/amdgcn/lib/SOURCES (original) +++ libclc/trunk/amdgcn/lib/SOURCES Thu Mar 8 15:01:01 2018 @@ -1,5 +1,6 @@ cl_khr_int64_extended_atomics/minmax_helpers.ll integer/popcount.cl +math/fmax.cl math/fmin.cl math/ldexp.cl mem_fence/fence.cl Added: libclc/trunk/amdgcn/lib/math/fmax.cl URL: http://llvm.org/viewvc/llvm-project/libclc/trunk/amdgcn/lib/math/fmax.cl?rev=327076&view=auto == --- libclc/trunk/amdgcn/lib/math/fmax.cl (added) +++ libclc/trunk/amdgcn/lib/math/fmax.cl Thu Mar 8 15:01:01 2018 @@ -0,0 +1,31 @@ +#include + +#include "../../../generic/lib/clcmacro.h" + +_CLC_DEF _CLC_OVERLOAD float fmax(float x, float y) +{ + /* fcanonicalize removes sNaNs and flushes denormals if not enabled. +* Otherwise fmax instruction flushes the values for comparison, +* but outputs original denormal */ + x = __builtin_canonicalizef(x); + y = __builtin_canonicalizef(y); + return __builtin_fmaxf(x, y); +} +_CLC_BINARY_VECTORIZE(_CLC_OVERLOAD _CLC_DEF, float, fmax, float, float) + +#ifdef cl_khr_fp64 + +#pragma OPENCL EXTENSION cl_khr_fp64 : enable + +_CLC_DEF _CLC_OVERLOAD double fmax(double x, double y) +{ + x = __builtin_canonicalize(x); + y = __builtin_canonicalize(y); + return __builtin_fmax(x, y); +} +_CLC_BINARY_VECTORIZE(_CLC_OVERLOAD _CLC_DEF, double, fmax, double, double) + +#endif + +#define __CLC_BODY <../../../generic/lib/math/fmax.inc> +#include ___ cfe-commits mailing list cfe-commits@lists.llvm.org http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
[libclc] r327323 - travis: Add build using llvm-6
Author: jvesely Date: Mon Mar 12 12:46:48 2018 New Revision: 327323 URL: http://llvm.org/viewvc/llvm-project?rev=327323&view=rev Log: travis: Add build using llvm-6 Acked-by: Aaron Watry Signed-off-by: Jan Vesely Modified: libclc/trunk/.travis.yml Modified: libclc/trunk/.travis.yml URL: http://llvm.org/viewvc/llvm-project/libclc/trunk/.travis.yml?rev=327323&r1=327322&r2=327323&view=diff == --- libclc/trunk/.travis.yml (original) +++ libclc/trunk/.travis.yml Mon Mar 12 12:46:48 2018 @@ -54,6 +54,28 @@ matrix: # From sources above - llvm-5.0-dev - clang-5.0 +- env: +- LABEL="make gcc LLVM-6.0" +- LLVM_VERSION=6.0 +- LLVM_CONFIG="llvm-config-${LLVM_VERSION}" +- CHECK_FILES="barts-r600--.bc cayman-r600--.bc cedar-r600--.bc cypress-r600--.bc tahiti-amdgcn--.bc amdgcn--amdhsa.bc nvptx--nvidiacl.bc nvptx64--nvidiacl.bc" +# llvm passes -Werror=date-time which is only supported in gcc-4.9+ +- MATRIX_EVAL="CC=gcc-4.9 && CXX=g++-4.9" + addons: +apt: + sources: +- sourceline: 'deb http://apt.llvm.org/trusty/ llvm-toolchain-trusty-6.0 main' +- ubuntu-toolchain-r-test + packages: +- libedit-dev +# LLVM-6 needs libstdc++4.9 +- g++-4.9 +# From sources above +- llvm-6.0-dev +- clang-6.0 + +before_install: +- eval "${MATRIX_EVAL}" script: - $PYTHON ./configure.py --with-llvm-config=$LLVM_CONFIG --with-cxx-compiler=$CXX && make -j4 ___ cfe-commits mailing list cfe-commits@lists.llvm.org http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
[libclc] r327324 - nan: Implement
Author: jvesely Date: Mon Mar 12 12:46:52 2018 New Revision: 327324 URL: http://llvm.org/viewvc/llvm-project?rev=327324&view=rev Log: nan: Implement Passes CTS on carrizo and turks Reviewer: Aaron Watry Signed-off-by: Jan Vesely Added: libclc/trunk/generic/include/clc/math/nan.h libclc/trunk/generic/include/clc/math/nan.inc libclc/trunk/generic/lib/math/nan.cl libclc/trunk/generic/lib/math/nan.inc Modified: libclc/trunk/generic/include/clc/clc.h libclc/trunk/generic/lib/SOURCES Modified: libclc/trunk/generic/include/clc/clc.h URL: http://llvm.org/viewvc/llvm-project/libclc/trunk/generic/include/clc/clc.h?rev=327324&r1=327323&r2=327324&view=diff == --- libclc/trunk/generic/include/clc/clc.h (original) +++ libclc/trunk/generic/include/clc/clc.h Mon Mar 12 12:46:52 2018 @@ -98,6 +98,7 @@ #include #include #include +#include #include #include #include Added: libclc/trunk/generic/include/clc/math/nan.h URL: http://llvm.org/viewvc/llvm-project/libclc/trunk/generic/include/clc/math/nan.h?rev=327324&view=auto == --- libclc/trunk/generic/include/clc/math/nan.h (added) +++ libclc/trunk/generic/include/clc/math/nan.h Mon Mar 12 12:46:52 2018 @@ -0,0 +1,8 @@ +#define __CLC_CONCAT(x, y) x ## y +#define __CLC_XCONCAT(x, y) __CLC_CONCAT(x, y) + +#define __CLC_BODY +#include + +#undef __CLC_XCONCAT +#undef __CLC_CONCAT Added: libclc/trunk/generic/include/clc/math/nan.inc URL: http://llvm.org/viewvc/llvm-project/libclc/trunk/generic/include/clc/math/nan.inc?rev=327324&view=auto == --- libclc/trunk/generic/include/clc/math/nan.inc (added) +++ libclc/trunk/generic/include/clc/math/nan.inc Mon Mar 12 12:46:52 2018 @@ -0,0 +1,16 @@ +#ifdef __CLC_SCALAR +#define __CLC_VECSIZE +#endif + +#if __CLC_FPSIZE == 64 +#define __CLC_NATN __CLC_XCONCAT(ulong, __CLC_VECSIZE) +#else +#define __CLC_NATN __CLC_XCONCAT(uint, __CLC_VECSIZE) +#endif + +_CLC_OVERLOAD _CLC_DECL __CLC_GENTYPE nan(__CLC_NATN code); + +#undef __CLC_NATN +#ifdef __CLC_SCALAR +#undef __CLC_VECSIZE +#endif Modified: libclc/trunk/generic/lib/SOURCES URL: http://llvm.org/viewvc/llvm-project/libclc/trunk/generic/lib/SOURCES?rev=327324&r1=327323&r2=327324&view=diff == --- libclc/trunk/generic/lib/SOURCES (original) +++ libclc/trunk/generic/lib/SOURCES Mon Mar 12 12:46:52 2018 @@ -134,6 +134,7 @@ math/mad.cl math/maxmag.cl math/minmag.cl math/modf.cl +math/nan.cl math/native_cos.cl math/native_divide.cl math/native_exp.cl Added: libclc/trunk/generic/lib/math/nan.cl URL: http://llvm.org/viewvc/llvm-project/libclc/trunk/generic/lib/math/nan.cl?rev=327324&view=auto == --- libclc/trunk/generic/lib/math/nan.cl (added) +++ libclc/trunk/generic/lib/math/nan.cl Mon Mar 12 12:46:52 2018 @@ -0,0 +1,6 @@ +#include +#include "utils.h" + +#define __CLC_AS_GENTYPE __CLC_XCONCAT(as_, __CLC_GENTYPE) +#define __CLC_BODY +#include Added: libclc/trunk/generic/lib/math/nan.inc URL: http://llvm.org/viewvc/llvm-project/libclc/trunk/generic/lib/math/nan.inc?rev=327324&view=auto == --- libclc/trunk/generic/lib/math/nan.inc (added) +++ libclc/trunk/generic/lib/math/nan.inc Mon Mar 12 12:46:52 2018 @@ -0,0 +1,20 @@ +#ifdef __CLC_SCALAR +#define __CLC_VECSIZE +#endif + +#if __CLC_FPSIZE == 64 +_CLC_OVERLOAD _CLC_DEF __CLC_GENTYPE nan(__CLC_XCONCAT(ulong, __CLC_VECSIZE) code) +{ + return __CLC_AS_GENTYPE(code | 0x7ff0ul); +} +#else +_CLC_OVERLOAD _CLC_DEF __CLC_GENTYPE nan(__CLC_XCONCAT(uint, __CLC_VECSIZE) code) +{ + return __CLC_AS_GENTYPE(code | 0x7fc0); +} +#endif + + +#ifdef __CLC_SCALAR +#undef __CLC_VECSIZE +#endif ___ cfe-commits mailing list cfe-commits@lists.llvm.org http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
[libclc] r327818 - remainder: Port from amd builtins
Author: jvesely Date: Sun Mar 18 18:01:10 2018 New Revision: 327818 URL: http://llvm.org/viewvc/llvm-project?rev=327818&view=rev Log: remainder: Port from amd builtins Mostly ported from amd_builtins, uses only denormal path for fp32. Passes CTS on carrizo and turks Reviewer: Aaron Watry Signed-off-by: Jan Vesely Added: libclc/trunk/generic/include/clc/math/remainder.h libclc/trunk/generic/include/math/clc_remainder.h libclc/trunk/generic/lib/math/clc_remainder.cl libclc/trunk/generic/lib/math/remainder.cl Modified: libclc/trunk/generic/include/clc/clc.h libclc/trunk/generic/lib/SOURCES Modified: libclc/trunk/generic/include/clc/clc.h URL: http://llvm.org/viewvc/llvm-project/libclc/trunk/generic/include/clc/clc.h?rev=327818&r1=327817&r2=327818&view=diff == --- libclc/trunk/generic/include/clc/clc.h (original) +++ libclc/trunk/generic/include/clc/clc.h Sun Mar 18 18:01:10 2018 @@ -103,6 +103,7 @@ #include #include #include +#include #include #include #include Added: libclc/trunk/generic/include/clc/math/remainder.h URL: http://llvm.org/viewvc/llvm-project/libclc/trunk/generic/include/clc/math/remainder.h?rev=327818&view=auto == --- libclc/trunk/generic/include/clc/math/remainder.h (added) +++ libclc/trunk/generic/include/clc/math/remainder.h Sun Mar 18 18:01:10 2018 @@ -0,0 +1,4 @@ +#define __CLC_FUNCTION remainder +#define __CLC_BODY +#include +#undef __CLC_FUNCTION Added: libclc/trunk/generic/include/math/clc_remainder.h URL: http://llvm.org/viewvc/llvm-project/libclc/trunk/generic/include/math/clc_remainder.h?rev=327818&view=auto == --- libclc/trunk/generic/include/math/clc_remainder.h (added) +++ libclc/trunk/generic/include/math/clc_remainder.h Sun Mar 18 18:01:10 2018 @@ -0,0 +1,4 @@ +#define __CLC_FUNCTION __clc_remainder +#define __CLC_BODY +#include +#undef __CLC_FUNCTION Modified: libclc/trunk/generic/lib/SOURCES URL: http://llvm.org/viewvc/llvm-project/libclc/trunk/generic/lib/SOURCES?rev=327818&r1=327817&r2=327818&view=diff == --- libclc/trunk/generic/lib/SOURCES (original) +++ libclc/trunk/generic/lib/SOURCES Sun Mar 18 18:01:10 2018 @@ -158,6 +158,8 @@ math/clc_pown.cl math/pown.cl math/clc_powr.cl math/powr.cl +math/clc_remainder.cl +math/remainder.cl math/clc_rootn.cl math/rootn.cl math/sin.cl Added: libclc/trunk/generic/lib/math/clc_remainder.cl URL: http://llvm.org/viewvc/llvm-project/libclc/trunk/generic/lib/math/clc_remainder.cl?rev=327818&view=auto == --- libclc/trunk/generic/lib/math/clc_remainder.cl (added) +++ libclc/trunk/generic/lib/math/clc_remainder.cl Sun Mar 18 18:01:10 2018 @@ -0,0 +1,218 @@ +/* + * Copyright (c) 2014 Advanced Micro Devices, Inc. + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in + * all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN + * THE SOFTWARE. + */ + +#include + +#include +#include "../clcmacro.h" +#include "config.h" +#include "math.h" + +_CLC_DEF _CLC_OVERLOAD float __clc_remainder(float x, float y) +{ +int ux = as_int(x); +int ax = ux & EXSIGNBIT_SP32; +float xa = as_float(ax); +int sx = ux ^ ax; +int ex = ax >> EXPSHIFTBITS_SP32; + +int uy = as_int(y); +int ay = uy & EXSIGNBIT_SP32; +float ya = as_float(ay); +int ey = ay >> EXPSHIFTBITS_SP32; + +float xr = as_float(0x3f80 | (ax & 0x007f)); +float yr = as_float(0x3f80 | (ay & 0x007f)); +int c; +int k = ex - ey; + +uint q = 0; + +while (k > 0) { +c = xr >= yr; +q = (q << 1) | c; +xr -= c ? yr : 0.0f; +xr += xr; + --k; +} + +c = xr > yr; +q = (q << 1) | c; +xr -= c ? yr : 0.0f; + +
[libclc] r334226 - math/fma: Add fp32 software implementation
Author: jvesely Date: Thu Jun 7 13:27:43 2018 New Revision: 334226 URL: http://llvm.org/viewvc/llvm-project?rev=334226&view=rev Log: math/fma: Add fp32 software implementation Passes CTS on carrizo (when forced to use sw fma) and turks. Reviewer: Tom Stellard Signed-off-by: Jan Vesely Added: libclc/trunk/generic/include/clc/math/ternary_decl.inc libclc/trunk/generic/include/math/clc_fma.h libclc/trunk/generic/lib/math/clc_fma.cl libclc/trunk/generic/lib/math/fma.cl libclc/trunk/generic/lib/math/fma.inc Modified: libclc/trunk/generic/include/clc/math/fma.h libclc/trunk/generic/lib/SOURCES Modified: libclc/trunk/generic/include/clc/math/fma.h URL: http://llvm.org/viewvc/llvm-project/libclc/trunk/generic/include/clc/math/fma.h?rev=334226&r1=334225&r2=334226&view=diff == --- libclc/trunk/generic/include/clc/math/fma.h (original) +++ libclc/trunk/generic/include/clc/math/fma.h Thu Jun 7 13:27:43 2018 @@ -1,6 +1,7 @@ -#undef fma -#define fma __clc_fma +#define __CLC_BODY +#define __CLC_FUNCTION fma -#define __CLC_FUNCTION __clc_fma -#define __CLC_INTRINSIC "llvm.fma" -#include +#include + +#undef __CLC_BODY +#undef __CLC_FUNCTION Added: libclc/trunk/generic/include/clc/math/ternary_decl.inc URL: http://llvm.org/viewvc/llvm-project/libclc/trunk/generic/include/clc/math/ternary_decl.inc?rev=334226&view=auto == --- libclc/trunk/generic/include/clc/math/ternary_decl.inc (added) +++ libclc/trunk/generic/include/clc/math/ternary_decl.inc Thu Jun 7 13:27:43 2018 @@ -0,0 +1 @@ +_CLC_OVERLOAD _CLC_DECL __CLC_GENTYPE __CLC_FUNCTION(__CLC_GENTYPE a, __CLC_GENTYPE b, __CLC_GENTYPE c); Added: libclc/trunk/generic/include/math/clc_fma.h URL: http://llvm.org/viewvc/llvm-project/libclc/trunk/generic/include/math/clc_fma.h?rev=334226&view=auto == --- libclc/trunk/generic/include/math/clc_fma.h (added) +++ libclc/trunk/generic/include/math/clc_fma.h Thu Jun 7 13:27:43 2018 @@ -0,0 +1,11 @@ +#define __CLC_FUNCTION __clc_fma +#define __CLC_INTRINSIC "llvm.fma" +#include + +#define __FLOAT_ONLY +#define __CLC_FUNCTION __clc_sw_fma +#define __CLC_BODY +#include +#undef __CLC_BODY +#undef __CLC_FUNCTION +#undef __FLOAT_ONLY Modified: libclc/trunk/generic/lib/SOURCES URL: http://llvm.org/viewvc/llvm-project/libclc/trunk/generic/lib/SOURCES?rev=334226&r1=334225&r2=334226&view=diff == --- libclc/trunk/generic/lib/SOURCES (original) +++ libclc/trunk/generic/lib/SOURCES Thu Jun 7 13:27:43 2018 @@ -101,6 +101,8 @@ math/exp2.cl math/clc_exp10.cl math/exp10.cl math/fdim.cl +math/clc_fma.cl +math/fma.cl math/fmax.cl math/fmin.cl math/clc_fmod.cl Added: libclc/trunk/generic/lib/math/clc_fma.cl URL: http://llvm.org/viewvc/llvm-project/libclc/trunk/generic/lib/math/clc_fma.cl?rev=334226&view=auto == --- libclc/trunk/generic/lib/math/clc_fma.cl (added) +++ libclc/trunk/generic/lib/math/clc_fma.cl Thu Jun 7 13:27:43 2018 @@ -0,0 +1,158 @@ +/* + * Copyright (c) 2014 Advanced Micro Devices, Inc. + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in + * all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN + * THE SOFTWARE. + */ + +#include + +#include "config.h" +#include "math.h" +#include "../clcmacro.h" + +struct fp { + ulong mantissa; + int exponent; + uint sign; +}; + +_CLC_DEF _CLC_OVERLOAD float __clc_sw_fma(float a, float b, float c) +{ + /* special cases */ + if (isnan(a) || isnan(b) || isnan(c) || isinf(a) || isinf(b)) + return mad(a, b, c); + + /* If only c is inf, and both a,b are regular numbers, the result is c*/ + if (isinf(c)) + return c; + + a = __clc_flush_denormal_if_not_su
[libclc] r334227 - r600/fmax: Flush denormals before calling builtin.
Author: jvesely Date: Thu Jun 7 13:27:56 2018 New Revision: 334227 URL: http://llvm.org/viewvc/llvm-project?rev=334227&view=rev Log: r600/fmax: Flush denormals before calling builtin. Same reason as amdgcn. Fixes fmax, maxmag CTS on turks. Reviewer: Tom Stellard Signed-off-by: Jan Vesely Added: libclc/trunk/r600/lib/math/fmax.cl Modified: libclc/trunk/r600/lib/SOURCES Modified: libclc/trunk/r600/lib/SOURCES URL: http://llvm.org/viewvc/llvm-project/libclc/trunk/r600/lib/SOURCES?rev=334227&r1=334226&r2=334227&view=diff == --- libclc/trunk/r600/lib/SOURCES (original) +++ libclc/trunk/r600/lib/SOURCES Thu Jun 7 13:27:56 2018 @@ -1,3 +1,4 @@ +math/fmax.cl synchronization/barrier_impl.ll workitem/get_global_offset.cl workitem/get_group_id.cl Added: libclc/trunk/r600/lib/math/fmax.cl URL: http://llvm.org/viewvc/llvm-project/libclc/trunk/r600/lib/math/fmax.cl?rev=334227&view=auto == --- libclc/trunk/r600/lib/math/fmax.cl (added) +++ libclc/trunk/r600/lib/math/fmax.cl Thu Jun 7 13:27:56 2018 @@ -0,0 +1,29 @@ +#include + +#include "../../../generic/lib/clcmacro.h" +#include "../../../generic/lib/math/math.h" + +_CLC_DEF _CLC_OVERLOAD float fmax(float x, float y) +{ + /* Flush denormals if not enabled. Otherwise fmax instruction flushes +* the values for comparison, but outputs original denormal */ + x = __clc_flush_denormal_if_not_supported(x); + y = __clc_flush_denormal_if_not_supported(y); + return __builtin_fmaxf(x, y); +} +_CLC_BINARY_VECTORIZE(_CLC_OVERLOAD _CLC_DEF, float, fmax, float, float) + +#ifdef cl_khr_fp64 + +#pragma OPENCL EXTENSION cl_khr_fp64 : enable + +_CLC_DEF _CLC_OVERLOAD double fmax(double x, double y) +{ + return __builtin_fmax(x, y); +} +_CLC_BINARY_VECTORIZE(_CLC_OVERLOAD _CLC_DEF, double, fmax, double, double) + +#endif + +#define __CLC_BODY <../../../generic/lib/math/fmax.inc> +#include ___ cfe-commits mailing list cfe-commits@lists.llvm.org http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
[libclc] r334228 - r600/fmin: Flush denormals before calling builtin.
Author: jvesely Date: Thu Jun 7 13:27:58 2018 New Revision: 334228 URL: http://llvm.org/viewvc/llvm-project?rev=334228&view=rev Log: r600/fmin: Flush denormals before calling builtin. Same reason as amdgcn. Fixes fmin, minmag CTS on turks. Reviewer: Tom Stellard Signed-off-by: Jan Vesely Added: libclc/trunk/r600/lib/math/fmin.cl Modified: libclc/trunk/r600/lib/SOURCES Modified: libclc/trunk/r600/lib/SOURCES URL: http://llvm.org/viewvc/llvm-project/libclc/trunk/r600/lib/SOURCES?rev=334228&r1=334227&r2=334228&view=diff == --- libclc/trunk/r600/lib/SOURCES (original) +++ libclc/trunk/r600/lib/SOURCES Thu Jun 7 13:27:58 2018 @@ -1,4 +1,5 @@ math/fmax.cl +math/fmin.cl synchronization/barrier_impl.ll workitem/get_global_offset.cl workitem/get_group_id.cl Added: libclc/trunk/r600/lib/math/fmin.cl URL: http://llvm.org/viewvc/llvm-project/libclc/trunk/r600/lib/math/fmin.cl?rev=334228&view=auto == --- libclc/trunk/r600/lib/math/fmin.cl (added) +++ libclc/trunk/r600/lib/math/fmin.cl Thu Jun 7 13:27:58 2018 @@ -0,0 +1,30 @@ +#include + +#include "../../../generic/lib/clcmacro.h" +#include "../../../generic/lib/math/math.h" + +_CLC_DEF _CLC_OVERLOAD float fmin(float x, float y) +{ + /* fcanonicalize removes sNaNs and flushes denormals if not enabled. +* Otherwise fmin instruction flushes the values for comparison, +* but outputs original denormal */ + x = __clc_flush_denormal_if_not_supported(x); + y = __clc_flush_denormal_if_not_supported(y); + return __builtin_fminf(x, y); +} +_CLC_BINARY_VECTORIZE(_CLC_OVERLOAD _CLC_DEF, float, fmin, float, float) + +#ifdef cl_khr_fp64 + +#pragma OPENCL EXTENSION cl_khr_fp64 : enable + +_CLC_DEF _CLC_OVERLOAD double fmin(double x, double y) +{ + return __builtin_fmin(x, y); +} +_CLC_BINARY_VECTORIZE(_CLC_OVERLOAD _CLC_DEF, double, fmin, double, double) + +#endif + +#define __CLC_BODY <../../../generic/lib/math/fmin.inc> +#include ___ cfe-commits mailing list cfe-commits@lists.llvm.org http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
[libclc] r335277 - atom: Consolidate cl_khr_int64_{base, extended}_atomics declarations
Author: jvesely Date: Thu Jun 21 12:27:23 2018 New Revision: 335277 URL: http://llvm.org/viewvc/llvm-project?rev=335277&view=rev Log: atom: Consolidate cl_khr_int64_{base,extended}_atomics declarations Reviewed-By: Aaron Watry Tested-By: Aaron Watry Signed-off-by: Jan Vesely Added: libclc/trunk/generic/include/clc/atom_decl_int64.inc Modified: libclc/trunk/generic/include/clc/cl_khr_int64_base_atomics/atom_add.h libclc/trunk/generic/include/clc/cl_khr_int64_base_atomics/atom_sub.h libclc/trunk/generic/include/clc/cl_khr_int64_base_atomics/atom_xchg.h libclc/trunk/generic/include/clc/cl_khr_int64_extended_atomics/atom_and.h libclc/trunk/generic/include/clc/cl_khr_int64_extended_atomics/atom_max.h libclc/trunk/generic/include/clc/cl_khr_int64_extended_atomics/atom_min.h libclc/trunk/generic/include/clc/cl_khr_int64_extended_atomics/atom_or.h libclc/trunk/generic/include/clc/cl_khr_int64_extended_atomics/atom_xor.h Added: libclc/trunk/generic/include/clc/atom_decl_int64.inc URL: http://llvm.org/viewvc/llvm-project/libclc/trunk/generic/include/clc/atom_decl_int64.inc?rev=335277&view=auto == --- libclc/trunk/generic/include/clc/atom_decl_int64.inc (added) +++ libclc/trunk/generic/include/clc/atom_decl_int64.inc Thu Jun 21 12:27:23 2018 @@ -0,0 +1,11 @@ +#define __CLC_DECLARE_ATOM(ADDRSPACE, TYPE) \ + _CLC_OVERLOAD _CLC_DECL TYPE __CLC_FUNCTION (volatile ADDRSPACE TYPE *, TYPE); + +__CLC_DECLARE_ATOM(local, long) +__CLC_DECLARE_ATOM(local, ulong) +__CLC_DECLARE_ATOM(global, long) +__CLC_DECLARE_ATOM(global, ulong) + +#undef __CLC_DECLARE_ATOM + +#undef __CLC_FUNCTION Modified: libclc/trunk/generic/include/clc/cl_khr_int64_base_atomics/atom_add.h URL: http://llvm.org/viewvc/llvm-project/libclc/trunk/generic/include/clc/cl_khr_int64_base_atomics/atom_add.h?rev=335277&r1=335276&r2=335277&view=diff == --- libclc/trunk/generic/include/clc/cl_khr_int64_base_atomics/atom_add.h (original) +++ libclc/trunk/generic/include/clc/cl_khr_int64_base_atomics/atom_add.h Thu Jun 21 12:27:23 2018 @@ -1,4 +1,2 @@ -_CLC_OVERLOAD _CLC_DECL long atom_add(volatile global long *p, long val); -_CLC_OVERLOAD _CLC_DECL unsigned long atom_add(volatile global unsigned long *p, unsigned long val); -_CLC_OVERLOAD _CLC_DECL long atom_add(volatile local long *p, long val); -_CLC_OVERLOAD _CLC_DECL unsigned long atom_add(volatile local unsigned long *p, unsigned long val); +#define __CLC_FUNCTION atom_add +#include Modified: libclc/trunk/generic/include/clc/cl_khr_int64_base_atomics/atom_sub.h URL: http://llvm.org/viewvc/llvm-project/libclc/trunk/generic/include/clc/cl_khr_int64_base_atomics/atom_sub.h?rev=335277&r1=335276&r2=335277&view=diff == --- libclc/trunk/generic/include/clc/cl_khr_int64_base_atomics/atom_sub.h (original) +++ libclc/trunk/generic/include/clc/cl_khr_int64_base_atomics/atom_sub.h Thu Jun 21 12:27:23 2018 @@ -1,4 +1,2 @@ -_CLC_OVERLOAD _CLC_DECL long atom_sub(volatile global long *p, long val); -_CLC_OVERLOAD _CLC_DECL unsigned long atom_sub(volatile global unsigned long *p, unsigned long val); -_CLC_OVERLOAD _CLC_DECL long atom_sub(volatile local long *p, long val); -_CLC_OVERLOAD _CLC_DECL unsigned long atom_sub(volatile local unsigned long *p, unsigned long val); +#define __CLC_FUNCTION atom_sub +#include Modified: libclc/trunk/generic/include/clc/cl_khr_int64_base_atomics/atom_xchg.h URL: http://llvm.org/viewvc/llvm-project/libclc/trunk/generic/include/clc/cl_khr_int64_base_atomics/atom_xchg.h?rev=335277&r1=335276&r2=335277&view=diff == --- libclc/trunk/generic/include/clc/cl_khr_int64_base_atomics/atom_xchg.h (original) +++ libclc/trunk/generic/include/clc/cl_khr_int64_base_atomics/atom_xchg.h Thu Jun 21 12:27:23 2018 @@ -1,4 +1,2 @@ -_CLC_OVERLOAD _CLC_DECL long atom_xchg(volatile global long *p, long val); -_CLC_OVERLOAD _CLC_DECL unsigned long atom_xchg(volatile global unsigned long *p, unsigned long val); -_CLC_OVERLOAD _CLC_DECL long atom_xchg(volatile local long *p, long val); -_CLC_OVERLOAD _CLC_DECL unsigned long atom_xchg(volatile local unsigned long *p, unsigned long val); +#define __CLC_FUNCTION atom_xchg +#include Modified: libclc/trunk/generic/include/clc/cl_khr_int64_extended_atomics/atom_and.h URL: http://llvm.org/viewvc/llvm-project/libclc/trunk/generic/include/clc/cl_khr_int64_extended_atomics/atom_and.h?rev=335277&r1=335276&r2=335277&view=diff == --- libclc/trunk/generic/include/clc/cl_khr_int64_extended_atomics/atom_and.h (original) +++ libclc/trunk/generic/include/clc/cl_khr_int64_extended_atomics/atom_and.h Thu Jun 21 12:27:23 2018 @@ -1,4 +1,2 @@ -_C
[libclc] r335275 - atomic: Cleanup atomic_cmpxchg header
Author: jvesely Date: Thu Jun 21 12:27:12 2018 New Revision: 335275 URL: http://llvm.org/viewvc/llvm-project?rev=335275&view=rev Log: atomic: Cleanup atomic_cmpxchg header It's easier to just list the four function declarations Reviewed-By: Aaron Watry Tested-By: Aaron Watry Signed-off-by: Jan Vesely Modified: libclc/trunk/generic/include/clc/atomic/atomic_cmpxchg.h Modified: libclc/trunk/generic/include/clc/atomic/atomic_cmpxchg.h URL: http://llvm.org/viewvc/llvm-project/libclc/trunk/generic/include/clc/atomic/atomic_cmpxchg.h?rev=335275&r1=335274&r2=335275&view=diff == --- libclc/trunk/generic/include/clc/atomic/atomic_cmpxchg.h (original) +++ libclc/trunk/generic/include/clc/atomic/atomic_cmpxchg.h Thu Jun 21 12:27:12 2018 @@ -1,15 +1,4 @@ -#define __CLC_FUNCTION atomic_cmpxchg - -#define __CLC_DECLARE_ATOMIC_3_ARG(ADDRSPACE, TYPE) \ - _CLC_OVERLOAD _CLC_DECL TYPE __CLC_FUNCTION (volatile ADDRSPACE TYPE *, TYPE, TYPE); - -#define __CLC_DECLARE_ATOMIC_ADDRSPACE_3_ARG(TYPE) \ - __CLC_DECLARE_ATOMIC_3_ARG(global, TYPE) \ - __CLC_DECLARE_ATOMIC_3_ARG(local, TYPE) - -__CLC_DECLARE_ATOMIC_ADDRSPACE_3_ARG(int) -__CLC_DECLARE_ATOMIC_ADDRSPACE_3_ARG(uint) - -#undef __CLC_FUNCTION -#undef __CLC_DECLARE_ATOMIC_3_ARG -#undef __CLC_DECLARE_ATOMIC_ADDRESS_SPACE_3_ARG +_CLC_OVERLOAD _CLC_DECL int atomic_cmpxchg (volatile local int *, int, int); +_CLC_OVERLOAD _CLC_DECL int atomic_cmpxchg (volatile global int *, int, int); +_CLC_OVERLOAD _CLC_DECL uint atomic_cmpxchg (volatile local uint *, uint, uint); +_CLC_OVERLOAD _CLC_DECL uint atomic_cmpxchg (volatile global uint *, uint, uint); ___ cfe-commits mailing list cfe-commits@lists.llvm.org http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
[libclc] r335276 - atom: Consolidate cl_khr_{local, global}_int32_{base, extended}_atomics declarations
Author: jvesely Date: Thu Jun 21 12:27:18 2018 New Revision: 335276 URL: http://llvm.org/viewvc/llvm-project?rev=335276&view=rev Log: atom: Consolidate cl_khr_{local,global}_int32_{base,extended}_atomics declarations Reviewed-By: Aaron Watry Tested-By: Aaron Watry Signed-off-by: Jan Vesely Added: libclc/trunk/generic/include/clc/atom_decl_int32.inc Modified: libclc/trunk/generic/include/clc/cl_khr_global_int32_base_atomics/atom_add.h libclc/trunk/generic/include/clc/cl_khr_global_int32_base_atomics/atom_sub.h libclc/trunk/generic/include/clc/cl_khr_global_int32_base_atomics/atom_xchg.h libclc/trunk/generic/include/clc/cl_khr_global_int32_extended_atomics/atom_and.h libclc/trunk/generic/include/clc/cl_khr_global_int32_extended_atomics/atom_max.h libclc/trunk/generic/include/clc/cl_khr_global_int32_extended_atomics/atom_min.h libclc/trunk/generic/include/clc/cl_khr_global_int32_extended_atomics/atom_or.h libclc/trunk/generic/include/clc/cl_khr_global_int32_extended_atomics/atom_xor.h libclc/trunk/generic/include/clc/cl_khr_local_int32_base_atomics/atom_add.h libclc/trunk/generic/include/clc/cl_khr_local_int32_base_atomics/atom_sub.h libclc/trunk/generic/include/clc/cl_khr_local_int32_base_atomics/atom_xchg.h libclc/trunk/generic/include/clc/cl_khr_local_int32_extended_atomics/atom_and.h libclc/trunk/generic/include/clc/cl_khr_local_int32_extended_atomics/atom_max.h libclc/trunk/generic/include/clc/cl_khr_local_int32_extended_atomics/atom_min.h libclc/trunk/generic/include/clc/cl_khr_local_int32_extended_atomics/atom_or.h libclc/trunk/generic/include/clc/cl_khr_local_int32_extended_atomics/atom_xor.h Added: libclc/trunk/generic/include/clc/atom_decl_int32.inc URL: http://llvm.org/viewvc/llvm-project/libclc/trunk/generic/include/clc/atom_decl_int32.inc?rev=335276&view=auto == --- libclc/trunk/generic/include/clc/atom_decl_int32.inc (added) +++ libclc/trunk/generic/include/clc/atom_decl_int32.inc Thu Jun 21 12:27:18 2018 @@ -0,0 +1,10 @@ +#define __CLC_DECLARE_ATOM(ADDRSPACE, TYPE) \ + _CLC_OVERLOAD _CLC_DECL TYPE __CLC_FUNCTION (ADDRSPACE TYPE *, TYPE); + +__CLC_DECLARE_ATOM(__CLC_ADDRESS_SPACE, int) +__CLC_DECLARE_ATOM(__CLC_ADDRESS_SPACE, uint) + +#undef __CLC_DECLARE_ATOM + +#undef __CLC_FUNCTION +#undef __CLC_ADDRESS_SPACE Modified: libclc/trunk/generic/include/clc/cl_khr_global_int32_base_atomics/atom_add.h URL: http://llvm.org/viewvc/llvm-project/libclc/trunk/generic/include/clc/cl_khr_global_int32_base_atomics/atom_add.h?rev=335276&r1=335275&r2=335276&view=diff == --- libclc/trunk/generic/include/clc/cl_khr_global_int32_base_atomics/atom_add.h (original) +++ libclc/trunk/generic/include/clc/cl_khr_global_int32_base_atomics/atom_add.h Thu Jun 21 12:27:18 2018 @@ -1,2 +1,3 @@ -_CLC_OVERLOAD _CLC_DECL int atom_add(global int *p, int val); -_CLC_OVERLOAD _CLC_DECL unsigned int atom_add(global unsigned int *p, unsigned int val); +#define __CLC_FUNCTION atom_add +#define __CLC_ADDRESS_SPACE global +#include Modified: libclc/trunk/generic/include/clc/cl_khr_global_int32_base_atomics/atom_sub.h URL: http://llvm.org/viewvc/llvm-project/libclc/trunk/generic/include/clc/cl_khr_global_int32_base_atomics/atom_sub.h?rev=335276&r1=335275&r2=335276&view=diff == --- libclc/trunk/generic/include/clc/cl_khr_global_int32_base_atomics/atom_sub.h (original) +++ libclc/trunk/generic/include/clc/cl_khr_global_int32_base_atomics/atom_sub.h Thu Jun 21 12:27:18 2018 @@ -1,2 +1,3 @@ -_CLC_OVERLOAD _CLC_DECL int atom_sub(global int *p, int val); -_CLC_OVERLOAD _CLC_DECL unsigned int atom_sub(global unsigned int *p, unsigned int val); +#define __CLC_FUNCTION atom_sub +#define __CLC_ADDRESS_SPACE global +#include Modified: libclc/trunk/generic/include/clc/cl_khr_global_int32_base_atomics/atom_xchg.h URL: http://llvm.org/viewvc/llvm-project/libclc/trunk/generic/include/clc/cl_khr_global_int32_base_atomics/atom_xchg.h?rev=335276&r1=335275&r2=335276&view=diff == --- libclc/trunk/generic/include/clc/cl_khr_global_int32_base_atomics/atom_xchg.h (original) +++ libclc/trunk/generic/include/clc/cl_khr_global_int32_base_atomics/atom_xchg.h Thu Jun 21 12:27:18 2018 @@ -1,2 +1,3 @@ -_CLC_OVERLOAD _CLC_DECL int atom_xchg(global int *p, int val); -_CLC_OVERLOAD _CLC_DECL unsigned int atom_xchg(global unsigned int *p, unsigned int val); +#define __CLC_FUNCTION atom_xchg +#define __CLC_ADDRESS_SPACE global +#include Modified: libclc/trunk/generic/include/clc/cl_khr_global_int32_extended_atomics/atom_and.h URL: http://llvm.org/viewvc/llvm-project/libclc/trunk/generic/include/clc/cl_khr_global_int32_extended_atomics/atom_and.h?re
[libclc] r335278 - atomic: Provide function implementation of atomic_{dec, inc}
Author: jvesely Date: Thu Jun 21 12:27:26 2018 New Revision: 335278 URL: http://llvm.org/viewvc/llvm-project?rev=335278&view=rev Log: atomic: Provide function implementation of atomic_{dec,inc} Reviewed-By: Aaron Watry Tested-By: Aaron Watry Signed-off-by: Jan Vesely Added: libclc/trunk/generic/lib/atomic/atomic_dec.cl libclc/trunk/generic/lib/atomic/atomic_inc.cl Modified: libclc/trunk/generic/include/clc/atomic/atomic_dec.h libclc/trunk/generic/include/clc/atomic/atomic_inc.h libclc/trunk/generic/lib/SOURCES Modified: libclc/trunk/generic/include/clc/atomic/atomic_dec.h URL: http://llvm.org/viewvc/llvm-project/libclc/trunk/generic/include/clc/atomic/atomic_dec.h?rev=335278&r1=335277&r2=335278&view=diff == --- libclc/trunk/generic/include/clc/atomic/atomic_dec.h (original) +++ libclc/trunk/generic/include/clc/atomic/atomic_dec.h Thu Jun 21 12:27:26 2018 @@ -1 +1,4 @@ -#define atomic_dec(p) atomic_sub(p, 1) +_CLC_OVERLOAD _CLC_DECL int atomic_dec (volatile local int *); +_CLC_OVERLOAD _CLC_DECL int atomic_dec (volatile global int *); +_CLC_OVERLOAD _CLC_DECL uint atomic_dec (volatile local uint *); +_CLC_OVERLOAD _CLC_DECL uint atomic_dec (volatile global uint *); Modified: libclc/trunk/generic/include/clc/atomic/atomic_inc.h URL: http://llvm.org/viewvc/llvm-project/libclc/trunk/generic/include/clc/atomic/atomic_inc.h?rev=335278&r1=335277&r2=335278&view=diff == --- libclc/trunk/generic/include/clc/atomic/atomic_inc.h (original) +++ libclc/trunk/generic/include/clc/atomic/atomic_inc.h Thu Jun 21 12:27:26 2018 @@ -1 +1,4 @@ -#define atomic_inc(p) atomic_add(p, 1) +_CLC_OVERLOAD _CLC_DECL int atomic_inc (volatile local int *); +_CLC_OVERLOAD _CLC_DECL int atomic_inc (volatile global int *); +_CLC_OVERLOAD _CLC_DECL uint atomic_inc (volatile local uint *); +_CLC_OVERLOAD _CLC_DECL uint atomic_inc (volatile global uint *); Modified: libclc/trunk/generic/lib/SOURCES URL: http://llvm.org/viewvc/llvm-project/libclc/trunk/generic/lib/SOURCES?rev=335278&r1=335277&r2=335278&view=diff == --- libclc/trunk/generic/lib/SOURCES (original) +++ libclc/trunk/generic/lib/SOURCES Thu Jun 21 12:27:26 2018 @@ -7,6 +7,8 @@ async/wait_group_events.cl atomic/atomic_add.cl atomic/atomic_and.cl atomic/atomic_cmpxchg.cl +atomic/atomic_dec.cl +atomic/atomic_inc.cl atomic/atomic_max.cl atomic/atomic_min.cl atomic/atomic_or.cl Added: libclc/trunk/generic/lib/atomic/atomic_dec.cl URL: http://llvm.org/viewvc/llvm-project/libclc/trunk/generic/lib/atomic/atomic_dec.cl?rev=335278&view=auto == --- libclc/trunk/generic/lib/atomic/atomic_dec.cl (added) +++ libclc/trunk/generic/lib/atomic/atomic_dec.cl Thu Jun 21 12:27:26 2018 @@ -0,0 +1,12 @@ +#include + +#define IMPL(TYPE, AS) \ +_CLC_OVERLOAD _CLC_DEF TYPE atomic_dec(volatile AS TYPE *p) { \ + return __sync_fetch_and_sub(p, (TYPE)1); \ +} + +IMPL(int, global) +IMPL(unsigned int, global) +IMPL(int, local) +IMPL(unsigned int, local) +#undef IMPL Added: libclc/trunk/generic/lib/atomic/atomic_inc.cl URL: http://llvm.org/viewvc/llvm-project/libclc/trunk/generic/lib/atomic/atomic_inc.cl?rev=335278&view=auto == --- libclc/trunk/generic/lib/atomic/atomic_inc.cl (added) +++ libclc/trunk/generic/lib/atomic/atomic_inc.cl Thu Jun 21 12:27:26 2018 @@ -0,0 +1,12 @@ +#include + +#define IMPL(TYPE, AS) \ +_CLC_OVERLOAD _CLC_DEF TYPE atomic_inc(volatile AS TYPE *p) { \ + return __sync_fetch_and_add(p, (TYPE)1); \ +} + +IMPL(int, global) +IMPL(unsigned int, global) +IMPL(int, local) +IMPL(unsigned int, local) +#undef IMPL ___ cfe-commits mailing list cfe-commits@lists.llvm.org http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
[libclc] r335274 - atomic: Move define cleanup to shared include
Author: jvesely Date: Thu Jun 21 12:27:07 2018 New Revision: 335274 URL: http://llvm.org/viewvc/llvm-project?rev=335274&view=rev Log: atomic: Move define cleanup to shared include Reviewed-By: Aaron Watry Tested-By: Aaron Watry Signed-off-by: Jan Vesely Modified: libclc/trunk/generic/include/clc/atomic/atomic_add.h libclc/trunk/generic/include/clc/atomic/atomic_and.h libclc/trunk/generic/include/clc/atomic/atomic_decl.inc libclc/trunk/generic/include/clc/atomic/atomic_max.h libclc/trunk/generic/include/clc/atomic/atomic_min.h libclc/trunk/generic/include/clc/atomic/atomic_or.h libclc/trunk/generic/include/clc/atomic/atomic_sub.h libclc/trunk/generic/include/clc/atomic/atomic_xchg.h libclc/trunk/generic/include/clc/atomic/atomic_xor.h Modified: libclc/trunk/generic/include/clc/atomic/atomic_add.h URL: http://llvm.org/viewvc/llvm-project/libclc/trunk/generic/include/clc/atomic/atomic_add.h?rev=335274&r1=335273&r2=335274&view=diff == --- libclc/trunk/generic/include/clc/atomic/atomic_add.h (original) +++ libclc/trunk/generic/include/clc/atomic/atomic_add.h Thu Jun 21 12:27:07 2018 @@ -1,5 +1,2 @@ #define __CLC_FUNCTION atomic_add #include -#undef __CLC_FUNCTION -#undef __CLC_DECLARE_ATOMIC -#undef __CLC_DECLARE_ATOMIC_ADDRSPACE Modified: libclc/trunk/generic/include/clc/atomic/atomic_and.h URL: http://llvm.org/viewvc/llvm-project/libclc/trunk/generic/include/clc/atomic/atomic_and.h?rev=335274&r1=335273&r2=335274&view=diff == --- libclc/trunk/generic/include/clc/atomic/atomic_and.h (original) +++ libclc/trunk/generic/include/clc/atomic/atomic_and.h Thu Jun 21 12:27:07 2018 @@ -1,5 +1,2 @@ #define __CLC_FUNCTION atomic_and #include -#undef __CLC_FUNCTION -#undef __CLC_DECLARE_ATOMIC -#undef __CLC_DECLARE_ATOMIC_ADDRSPACE Modified: libclc/trunk/generic/include/clc/atomic/atomic_decl.inc URL: http://llvm.org/viewvc/llvm-project/libclc/trunk/generic/include/clc/atomic/atomic_decl.inc?rev=335274&r1=335273&r2=335274&view=diff == --- libclc/trunk/generic/include/clc/atomic/atomic_decl.inc (original) +++ libclc/trunk/generic/include/clc/atomic/atomic_decl.inc Thu Jun 21 12:27:07 2018 @@ -1,4 +1,3 @@ - #define __CLC_DECLARE_ATOMIC(ADDRSPACE, TYPE) \ _CLC_OVERLOAD _CLC_DECL TYPE __CLC_FUNCTION (volatile ADDRSPACE TYPE *, TYPE); @@ -8,3 +7,8 @@ __CLC_DECLARE_ATOMIC_ADDRSPACE(int) __CLC_DECLARE_ATOMIC_ADDRSPACE(uint) + +#undef __CLC_DECLARE_ATOMIC_ADDRSPACE +#undef __CLC_DECLARE_ATOMIC + +#undef __CLC_FUNCTION Modified: libclc/trunk/generic/include/clc/atomic/atomic_max.h URL: http://llvm.org/viewvc/llvm-project/libclc/trunk/generic/include/clc/atomic/atomic_max.h?rev=335274&r1=335273&r2=335274&view=diff == --- libclc/trunk/generic/include/clc/atomic/atomic_max.h (original) +++ libclc/trunk/generic/include/clc/atomic/atomic_max.h Thu Jun 21 12:27:07 2018 @@ -1,5 +1,2 @@ #define __CLC_FUNCTION atomic_max #include -#undef __CLC_FUNCTION -#undef __CLC_DECLARE_ATOMIC -#undef __CLC_DECLARE_ATOMIC_ADDRSPACE Modified: libclc/trunk/generic/include/clc/atomic/atomic_min.h URL: http://llvm.org/viewvc/llvm-project/libclc/trunk/generic/include/clc/atomic/atomic_min.h?rev=335274&r1=335273&r2=335274&view=diff == --- libclc/trunk/generic/include/clc/atomic/atomic_min.h (original) +++ libclc/trunk/generic/include/clc/atomic/atomic_min.h Thu Jun 21 12:27:07 2018 @@ -1,5 +1,2 @@ #define __CLC_FUNCTION atomic_min #include -#undef __CLC_FUNCTION -#undef __CLC_DECLARE_ATOMIC -#undef __CLC_DECLARE_ATOMIC_ADDRSPACE Modified: libclc/trunk/generic/include/clc/atomic/atomic_or.h URL: http://llvm.org/viewvc/llvm-project/libclc/trunk/generic/include/clc/atomic/atomic_or.h?rev=335274&r1=335273&r2=335274&view=diff == --- libclc/trunk/generic/include/clc/atomic/atomic_or.h (original) +++ libclc/trunk/generic/include/clc/atomic/atomic_or.h Thu Jun 21 12:27:07 2018 @@ -1,5 +1,2 @@ #define __CLC_FUNCTION atomic_or #include -#undef __CLC_FUNCTION -#undef __CLC_DECLARE_ATOMIC -#undef __CLC_DECLARE_ATOMIC_ADDRSPACE Modified: libclc/trunk/generic/include/clc/atomic/atomic_sub.h URL: http://llvm.org/viewvc/llvm-project/libclc/trunk/generic/include/clc/atomic/atomic_sub.h?rev=335274&r1=335273&r2=335274&view=diff == --- libclc/trunk/generic/include/clc/atomic/atomic_sub.h (original) +++ libclc/trunk/generic/include/clc/atomic/atomic_sub.h Thu Jun 21 12:27:07 2018 @@ -1,5 +1,2 @@ #define __CLC_FUNCTION atomic_sub #include -#undef __CLC_FUNCTION -#
[libclc] r335279 - atom: Consolidate cl_khr_{local, global}_int32_{base, extended}_atomics implementation
Author: jvesely Date: Thu Jun 21 12:27:33 2018 New Revision: 335279 URL: http://llvm.org/viewvc/llvm-project?rev=335279&view=rev Log: atom: Consolidate cl_khr_{local,global}_int32_{base,extended}_atomics implementation These are just atomic_* wrappers. Switch inc, dec to use atomic_* wrappers as well. Reviewed-By: Aaron Watry Tested-By: Aaron Watry Signed-off-by: Jan Vesely Added: libclc/trunk/generic/lib/atom_int32_binary.inc Modified: libclc/trunk/generic/lib/cl_khr_global_int32_base_atomics/atom_add.cl libclc/trunk/generic/lib/cl_khr_global_int32_base_atomics/atom_dec.cl libclc/trunk/generic/lib/cl_khr_global_int32_base_atomics/atom_inc.cl libclc/trunk/generic/lib/cl_khr_global_int32_base_atomics/atom_sub.cl libclc/trunk/generic/lib/cl_khr_global_int32_base_atomics/atom_xchg.cl libclc/trunk/generic/lib/cl_khr_global_int32_extended_atomics/atom_and.cl libclc/trunk/generic/lib/cl_khr_global_int32_extended_atomics/atom_max.cl libclc/trunk/generic/lib/cl_khr_global_int32_extended_atomics/atom_min.cl libclc/trunk/generic/lib/cl_khr_global_int32_extended_atomics/atom_or.cl libclc/trunk/generic/lib/cl_khr_global_int32_extended_atomics/atom_xor.cl libclc/trunk/generic/lib/cl_khr_local_int32_base_atomics/atom_add.cl libclc/trunk/generic/lib/cl_khr_local_int32_base_atomics/atom_dec.cl libclc/trunk/generic/lib/cl_khr_local_int32_base_atomics/atom_inc.cl libclc/trunk/generic/lib/cl_khr_local_int32_base_atomics/atom_sub.cl libclc/trunk/generic/lib/cl_khr_local_int32_base_atomics/atom_xchg.cl libclc/trunk/generic/lib/cl_khr_local_int32_extended_atomics/atom_and.cl libclc/trunk/generic/lib/cl_khr_local_int32_extended_atomics/atom_max.cl libclc/trunk/generic/lib/cl_khr_local_int32_extended_atomics/atom_min.cl libclc/trunk/generic/lib/cl_khr_local_int32_extended_atomics/atom_or.cl libclc/trunk/generic/lib/cl_khr_local_int32_extended_atomics/atom_xor.cl Added: libclc/trunk/generic/lib/atom_int32_binary.inc URL: http://llvm.org/viewvc/llvm-project/libclc/trunk/generic/lib/atom_int32_binary.inc?rev=335279&view=auto == --- libclc/trunk/generic/lib/atom_int32_binary.inc (added) +++ libclc/trunk/generic/lib/atom_int32_binary.inc Thu Jun 21 12:27:33 2018 @@ -0,0 +1,14 @@ +#include +#include "utils.h" + +#define __CLC_ATOM_IMPL(AS, TYPE) \ +_CLC_OVERLOAD _CLC_DEF TYPE __CLC_XCONCAT(atom_, __CLC_ATOMIC_OP) (AS TYPE *p, TYPE val) { \ + return __CLC_XCONCAT(atomic_, __CLC_ATOMIC_OP) (p, val); \ +} + +__CLC_ATOM_IMPL(__CLC_ATOMIC_ADDRESS_SPACE, int) +__CLC_ATOM_IMPL(__CLC_ATOMIC_ADDRESS_SPACE, uint) + +#undef __CLC_ATOM_IMPL +#undef __CLC_ATOMIC_OP +#undef __CLC_ATOMIC_ADDRESS_SPACE Modified: libclc/trunk/generic/lib/cl_khr_global_int32_base_atomics/atom_add.cl URL: http://llvm.org/viewvc/llvm-project/libclc/trunk/generic/lib/cl_khr_global_int32_base_atomics/atom_add.cl?rev=335279&r1=335278&r2=335279&view=diff == --- libclc/trunk/generic/lib/cl_khr_global_int32_base_atomics/atom_add.cl (original) +++ libclc/trunk/generic/lib/cl_khr_global_int32_base_atomics/atom_add.cl Thu Jun 21 12:27:33 2018 @@ -1,9 +1,3 @@ -#include - -#define IMPL(TYPE) \ -_CLC_OVERLOAD _CLC_DEF TYPE atom_add(global TYPE *p, TYPE val) { \ - return atomic_add(p, val); \ -} - -IMPL(int) -IMPL(unsigned int) +#define __CLC_ATOMIC_OP add +#define __CLC_ATOMIC_ADDRESS_SPACE global +#include "../atom_int32_binary.inc" Modified: libclc/trunk/generic/lib/cl_khr_global_int32_base_atomics/atom_dec.cl URL: http://llvm.org/viewvc/llvm-project/libclc/trunk/generic/lib/cl_khr_global_int32_base_atomics/atom_dec.cl?rev=335279&r1=335278&r2=335279&view=diff == --- libclc/trunk/generic/lib/cl_khr_global_int32_base_atomics/atom_dec.cl (original) +++ libclc/trunk/generic/lib/cl_khr_global_int32_base_atomics/atom_dec.cl Thu Jun 21 12:27:33 2018 @@ -2,7 +2,7 @@ #define IMPL(TYPE) \ _CLC_OVERLOAD _CLC_DEF TYPE atom_dec(global TYPE *p) { \ - return atom_sub(p, (TYPE)1); \ + return atomic_dec(p); \ } IMPL(int) Modified: libclc/trunk/generic/lib/cl_khr_global_int32_base_atomics/atom_inc.cl URL: http://llvm.org/viewvc/llvm-project/libclc/trunk/generic/lib/cl_khr_global_int32_base_atomics/atom_inc.cl?rev=335279&r1=335278&r2=335279&view=diff == --- libclc/trunk/generic/lib/cl_khr_global_int32_base_atomics/atom_inc.cl (original) +++ libclc/trunk/generic/lib/cl_khr_global_int32_base_atomics/atom_inc.cl Thu Jun 21 12:27:33 2018 @@ -2,7 +2,7 @@ #define IMPL(TYPE) \ _CLC_OVERLOAD _CLC_DEF TYPE atom_inc(global TYPE *p) { \ - return atom_add(p, (TYPE)1); \ + return atomic_inc(p); \ } IMPL(int) Modified: libclc/trunk/generic/lib/cl_khr_global_int32_base_atomics/atom_sub.c
[libclc] r335280 - atom: Use volatile pointers for cl_khr_{global, local}_int32_{base, extended}_atomics
Author: jvesely Date: Thu Jun 21 12:27:39 2018 New Revision: 335280 URL: http://llvm.org/viewvc/llvm-project?rev=335280&view=rev Log: atom: Use volatile pointers for cl_khr_{global,local}_int32_{base,extended}_atomics int64 versions were switched to volatile pointers in cl1.1 cl1.1 also renamed atom_ functions to atomic_ that use volatile pointers. CTS and applications use volatile pointers. Passes CTS on carrizo no return piglit tests still pass on turks. Reviewed-By: Aaron Watry Tested-By: Aaron Watry Signed-off-by: Jan Vesely Modified: libclc/trunk/generic/include/clc/atom_decl_int32.inc libclc/trunk/generic/include/clc/cl_khr_global_int32_base_atomics/atom_cmpxchg.h libclc/trunk/generic/include/clc/cl_khr_global_int32_base_atomics/atom_dec.h libclc/trunk/generic/include/clc/cl_khr_global_int32_base_atomics/atom_inc.h libclc/trunk/generic/include/clc/cl_khr_local_int32_base_atomics/atom_cmpxchg.h libclc/trunk/generic/include/clc/cl_khr_local_int32_base_atomics/atom_dec.h libclc/trunk/generic/include/clc/cl_khr_local_int32_base_atomics/atom_inc.h libclc/trunk/generic/lib/atom_int32_binary.inc libclc/trunk/generic/lib/cl_khr_global_int32_base_atomics/atom_cmpxchg.cl libclc/trunk/generic/lib/cl_khr_global_int32_base_atomics/atom_dec.cl libclc/trunk/generic/lib/cl_khr_global_int32_base_atomics/atom_inc.cl libclc/trunk/generic/lib/cl_khr_local_int32_base_atomics/atom_cmpxchg.cl libclc/trunk/generic/lib/cl_khr_local_int32_base_atomics/atom_dec.cl libclc/trunk/generic/lib/cl_khr_local_int32_base_atomics/atom_inc.cl Modified: libclc/trunk/generic/include/clc/atom_decl_int32.inc URL: http://llvm.org/viewvc/llvm-project/libclc/trunk/generic/include/clc/atom_decl_int32.inc?rev=335280&r1=335279&r2=335280&view=diff == --- libclc/trunk/generic/include/clc/atom_decl_int32.inc (original) +++ libclc/trunk/generic/include/clc/atom_decl_int32.inc Thu Jun 21 12:27:39 2018 @@ -1,5 +1,5 @@ #define __CLC_DECLARE_ATOM(ADDRSPACE, TYPE) \ - _CLC_OVERLOAD _CLC_DECL TYPE __CLC_FUNCTION (ADDRSPACE TYPE *, TYPE); + _CLC_OVERLOAD _CLC_DECL TYPE __CLC_FUNCTION (volatile ADDRSPACE TYPE *, TYPE); __CLC_DECLARE_ATOM(__CLC_ADDRESS_SPACE, int) __CLC_DECLARE_ATOM(__CLC_ADDRESS_SPACE, uint) Modified: libclc/trunk/generic/include/clc/cl_khr_global_int32_base_atomics/atom_cmpxchg.h URL: http://llvm.org/viewvc/llvm-project/libclc/trunk/generic/include/clc/cl_khr_global_int32_base_atomics/atom_cmpxchg.h?rev=335280&r1=335279&r2=335280&view=diff == --- libclc/trunk/generic/include/clc/cl_khr_global_int32_base_atomics/atom_cmpxchg.h (original) +++ libclc/trunk/generic/include/clc/cl_khr_global_int32_base_atomics/atom_cmpxchg.h Thu Jun 21 12:27:39 2018 @@ -1,2 +1,2 @@ -_CLC_OVERLOAD _CLC_DECL int atom_cmpxchg(global int *p, int cmp, int val); -_CLC_OVERLOAD _CLC_DECL unsigned int atom_cmpxchg(global unsigned int *p, unsigned int cmp, unsigned int val); +_CLC_OVERLOAD _CLC_DECL int atom_cmpxchg(volatile global int *p, int cmp, int val); +_CLC_OVERLOAD _CLC_DECL unsigned int atom_cmpxchg(volatile global unsigned int *p, unsigned int cmp, unsigned int val); Modified: libclc/trunk/generic/include/clc/cl_khr_global_int32_base_atomics/atom_dec.h URL: http://llvm.org/viewvc/llvm-project/libclc/trunk/generic/include/clc/cl_khr_global_int32_base_atomics/atom_dec.h?rev=335280&r1=335279&r2=335280&view=diff == --- libclc/trunk/generic/include/clc/cl_khr_global_int32_base_atomics/atom_dec.h (original) +++ libclc/trunk/generic/include/clc/cl_khr_global_int32_base_atomics/atom_dec.h Thu Jun 21 12:27:39 2018 @@ -1,2 +1,2 @@ -_CLC_OVERLOAD _CLC_DECL int atom_dec(global int *p); -_CLC_OVERLOAD _CLC_DECL unsigned int atom_dec(global unsigned int *p); +_CLC_OVERLOAD _CLC_DECL int atom_dec(volatile global int *p); +_CLC_OVERLOAD _CLC_DECL unsigned int atom_dec(volatile global unsigned int *p); Modified: libclc/trunk/generic/include/clc/cl_khr_global_int32_base_atomics/atom_inc.h URL: http://llvm.org/viewvc/llvm-project/libclc/trunk/generic/include/clc/cl_khr_global_int32_base_atomics/atom_inc.h?rev=335280&r1=335279&r2=335280&view=diff == --- libclc/trunk/generic/include/clc/cl_khr_global_int32_base_atomics/atom_inc.h (original) +++ libclc/trunk/generic/include/clc/cl_khr_global_int32_base_atomics/atom_inc.h Thu Jun 21 12:27:39 2018 @@ -1,2 +1,2 @@ -_CLC_OVERLOAD _CLC_DECL int atom_inc(global int *p); -_CLC_OVERLOAD _CLC_DECL unsigned int atom_inc(global unsigned int *p); +_CLC_OVERLOAD _CLC_DECL int atom_inc(volatile global int *p); +_CLC_OVERLOAD _CLC_DECL unsigned int atom_inc(volatile global unsigned int *p); Modified: libclc/trunk/generic/include/clc/cl_kh
Re: r345866 - Reapply Logging: make os_log buffer size an integer constant expression.
Hi, this patch seems to cause a build failure: /usr/bin/ld: CMakeFiles/clangAST.dir/OSLog.cpp.o: in function `(anonymous namespace)::OSLogFormatStringHandler::~OSLogFormatStringHandler()': /home/jvesely/llvm/tools/clang/lib/AST/OSLog.cpp:18: undefined reference to `clang::analyze_format_string::FormatStringHandler::~FormatStringHandler()' /usr/bin/ld: CMakeFiles/clangAST.dir/OSLog.cpp.o: in function `(anonymous namespace)::OSLogFormatStringHandler::~OSLogFormatStringHandler()': /home/jvesely/llvm/tools/clang/lib/AST/OSLog.cpp:18: undefined reference to `clang::analyze_format_string::FormatStringHandler::~FormatStringHandler()' /usr/bin/ld: CMakeFiles/clangAST.dir/OSLog.cpp.o: in function `clang::analyze_os_log::computeOSLogBufferLayout(clang::ASTContext&, clang::CallExpr const*, clang::analyze_os_log::OSLogBufferLayout&)': /home/jvesely/llvm/tools/clang/lib/AST/OSLog.cpp:198: undefined reference to `clang::analyze_format_string::ParsePrintfString(clang::analyze_format_string::FormatStringHandler&, char const*, char const*, clang::LangOptions const&, clang::TargetInfo const&, bool)' /usr/bin/ld: /home/jvesely/llvm/tools/clang/lib/AST/OSLog.cpp:18: undefined reference to `clang::analyze_format_string::FormatStringHandler::~FormatStringHandler()' collect2: error: ld returned 1 exit status thanks, Jan On Thu, Nov 1, 2018 at 2:06 PM Tim Northover via cfe-commits < cfe-commits@lists.llvm.org> wrote: > Author: tnorthover > Date: Thu Nov 1 11:04:49 2018 > New Revision: 345866 > > URL: http://llvm.org/viewvc/llvm-project?rev=345866&view=rev > Log: > Reapply Logging: make os_log buffer size an integer constant expression. > > The size of an os_log buffer is known at any stage of compilation, so > making it > a constant expression means that the common idiom of declaring a buffer > for it > won't result in a VLA. That allows the compiler to skip saving and > restoring > the stack pointer around such buffers. > > This also moves the OSLog helpers from libclangAnalysis to libclangAST > to avoid a circular dependency. > > Added: > cfe/trunk/include/clang/AST/OSLog.h > cfe/trunk/lib/AST/OSLog.cpp > Removed: > cfe/trunk/include/clang/Analysis/Analyses/OSLog.h > cfe/trunk/lib/Analysis/OSLog.cpp > Modified: > cfe/trunk/lib/AST/CMakeLists.txt > cfe/trunk/lib/AST/ExprConstant.cpp > cfe/trunk/lib/Analysis/CMakeLists.txt > cfe/trunk/lib/Analysis/PrintfFormatString.cpp > cfe/trunk/lib/CodeGen/CGBuiltin.cpp > cfe/trunk/test/CodeGen/builtins.c > > Added: cfe/trunk/include/clang/AST/OSLog.h > URL: > http://llvm.org/viewvc/llvm-project/cfe/trunk/include/clang/AST/OSLog.h?rev=345866&view=auto > > == > --- cfe/trunk/include/clang/AST/OSLog.h (added) > +++ cfe/trunk/include/clang/AST/OSLog.h Thu Nov 1 11:04:49 2018 > @@ -0,0 +1,155 @@ > +//= OSLog.h - Analysis of calls to os_log builtins --*- C++ > -*-===// > +// > +// The LLVM Compiler Infrastructure > +// > +// This file is distributed under the University of Illinois Open Source > +// License. See LICENSE.TXT for details. > +// > > +//===--===// > +// > +// This file defines APIs for determining the layout of the data buffer > for > +// os_log() and os_trace(). > +// > > +//===--===// > + > +#ifndef LLVM_CLANG_ANALYSIS_ANALYSES_OSLOG_H > +#define LLVM_CLANG_ANALYSIS_ANALYSES_OSLOG_H > + > +#include "clang/AST/ASTContext.h" > +#include "clang/AST/Expr.h" > + > +namespace clang { > +namespace analyze_os_log { > + > +/// An OSLogBufferItem represents a single item in the data written by a > call > +/// to os_log() or os_trace(). > +class OSLogBufferItem { > +public: > + enum Kind { > +// The item is a scalar (int, float, raw pointer, etc.). No further > copying > +// is required. This is the only kind allowed by os_trace(). > +ScalarKind = 0, > + > +// The item is a count, which describes the length of the following > item to > +// be copied. A count may only be followed by an item of kind > StringKind, > +// WideStringKind, or PointerKind. > +CountKind, > + > +// The item is a pointer to a C string. If preceded by a count 'n', > +// os_log() will copy at most 'n' bytes from the pointer. > +StringKind, > + > +// The item is a pointer to a block of raw data. This item must be > preceded > +// by a count 'n'. os_log() will copy exactly 'n' bytes from the > pointer. > +PointerKind, > + > +// The item is a pointer to an Objective-C object. os_log() may > retain the > +// object for later processing. > +ObjCObjKind, > + > +// The item is a pointer to wide-char string. > +WideStringKind, > + > +// The item is corresponding to the '%m' format specifier, no value is > +// populated in the buffer and the runtime is loading the er
Re: r345866 - Reapply Logging: make os_log buffer size an integer constant expression.
On Thu, 2018-11-01 at 18:40 +, Tim Northover via cfe-commits wrote: > On 1 Nov 2018, at 18:36, Jan Vesely wrote: > > this patch seems to cause a build failure: > > Ugh. Reverted as r345871. > > Do you know what linker and other options you’re using? The only > failure I’ve been able to reproduce locally is when I introduced a > circular dependency. I'm using standard fedora 29 setup (with distcc but that is not involved in linking). I use BUILD_SHARED_LIBS=ON which I think might trigger the issue. thanks, Jan > > Cheers. > > Tim. > ___ > cfe-commits mailing list > cfe-commits@lists.llvm.org > http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits signature.asc Description: This is a digitally signed message part ___ cfe-commits mailing list cfe-commits@lists.llvm.org http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
[libclc] r346076 - r600: Convert get_global_size to clc
Author: jvesely Date: Sat Nov 3 17:35:08 2018 New Revision: 346076 URL: http://llvm.org/viewvc/llvm-project?rev=346076&view=rev Log: r600: Convert get_global_size to clc Signed-off-by: Jan Vesely Reviewer: Aaron Watry Added: libclc/trunk/r600/lib/workitem/get_global_size.cl Removed: libclc/trunk/r600/lib/workitem/get_global_size.39.ll libclc/trunk/r600/lib/workitem/get_global_size.ll Modified: libclc/trunk/r600/lib/OVERRIDES_3.9 libclc/trunk/r600/lib/OVERRIDES_4.0 libclc/trunk/r600/lib/OVERRIDES_5.0 libclc/trunk/r600/lib/OVERRIDES_6.0 libclc/trunk/r600/lib/SOURCES libclc/trunk/r600/lib/SOURCES_3.9 libclc/trunk/r600/lib/SOURCES_4.0 libclc/trunk/r600/lib/SOURCES_5.0 libclc/trunk/r600/lib/SOURCES_6.0 Modified: libclc/trunk/r600/lib/OVERRIDES_3.9 URL: http://llvm.org/viewvc/llvm-project/libclc/trunk/r600/lib/OVERRIDES_3.9?rev=346076&r1=346075&r2=346076&view=diff == --- libclc/trunk/r600/lib/OVERRIDES_3.9 (original) +++ libclc/trunk/r600/lib/OVERRIDES_3.9 Sat Nov 3 17:35:08 2018 @@ -1,3 +1,2 @@ synchronization/barrier_impl.ll -workitem/get_global_size.ll workitem/get_num_groups.ll Modified: libclc/trunk/r600/lib/OVERRIDES_4.0 URL: http://llvm.org/viewvc/llvm-project/libclc/trunk/r600/lib/OVERRIDES_4.0?rev=346076&r1=346075&r2=346076&view=diff == --- libclc/trunk/r600/lib/OVERRIDES_4.0 (original) +++ libclc/trunk/r600/lib/OVERRIDES_4.0 Sat Nov 3 17:35:08 2018 @@ -1,3 +1,2 @@ synchronization/barrier_impl.ll -workitem/get_global_size.ll workitem/get_num_groups.ll Modified: libclc/trunk/r600/lib/OVERRIDES_5.0 URL: http://llvm.org/viewvc/llvm-project/libclc/trunk/r600/lib/OVERRIDES_5.0?rev=346076&r1=346075&r2=346076&view=diff == --- libclc/trunk/r600/lib/OVERRIDES_5.0 (original) +++ libclc/trunk/r600/lib/OVERRIDES_5.0 Sat Nov 3 17:35:08 2018 @@ -1,3 +1,2 @@ synchronization/barrier_impl.ll -workitem/get_global_size.ll workitem/get_num_groups.ll Modified: libclc/trunk/r600/lib/OVERRIDES_6.0 URL: http://llvm.org/viewvc/llvm-project/libclc/trunk/r600/lib/OVERRIDES_6.0?rev=346076&r1=346075&r2=346076&view=diff == --- libclc/trunk/r600/lib/OVERRIDES_6.0 (original) +++ libclc/trunk/r600/lib/OVERRIDES_6.0 Sat Nov 3 17:35:08 2018 @@ -1,3 +1,2 @@ synchronization/barrier_impl.ll -workitem/get_global_size.ll workitem/get_num_groups.ll Modified: libclc/trunk/r600/lib/SOURCES URL: http://llvm.org/viewvc/llvm-project/libclc/trunk/r600/lib/SOURCES?rev=346076&r1=346075&r2=346076&view=diff == --- libclc/trunk/r600/lib/SOURCES (original) +++ libclc/trunk/r600/lib/SOURCES Sat Nov 3 17:35:08 2018 @@ -3,7 +3,7 @@ math/fmin.cl synchronization/barrier_impl.ll workitem/get_global_offset.cl workitem/get_group_id.cl -workitem/get_global_size.ll +workitem/get_global_size.cl workitem/get_local_id.cl workitem/get_local_size.cl workitem/get_num_groups.ll Modified: libclc/trunk/r600/lib/SOURCES_3.9 URL: http://llvm.org/viewvc/llvm-project/libclc/trunk/r600/lib/SOURCES_3.9?rev=346076&r1=346075&r2=346076&view=diff == --- libclc/trunk/r600/lib/SOURCES_3.9 (original) +++ libclc/trunk/r600/lib/SOURCES_3.9 Sat Nov 3 17:35:08 2018 @@ -14,5 +14,4 @@ image/write_imagei.cl image/write_imageui.cl image/write_image_impl.ll synchronization/barrier_impl.39.ll -workitem/get_global_size.39.ll workitem/get_num_groups.39.ll Modified: libclc/trunk/r600/lib/SOURCES_4.0 URL: http://llvm.org/viewvc/llvm-project/libclc/trunk/r600/lib/SOURCES_4.0?rev=346076&r1=346075&r2=346076&view=diff == --- libclc/trunk/r600/lib/SOURCES_4.0 (original) +++ libclc/trunk/r600/lib/SOURCES_4.0 Sat Nov 3 17:35:08 2018 @@ -1,3 +1,2 @@ synchronization/barrier_impl.39.ll -workitem/get_global_size.39.ll workitem/get_num_groups.39.ll Modified: libclc/trunk/r600/lib/SOURCES_5.0 URL: http://llvm.org/viewvc/llvm-project/libclc/trunk/r600/lib/SOURCES_5.0?rev=346076&r1=346075&r2=346076&view=diff == --- libclc/trunk/r600/lib/SOURCES_5.0 (original) +++ libclc/trunk/r600/lib/SOURCES_5.0 Sat Nov 3 17:35:08 2018 @@ -1,3 +1,2 @@ synchronization/barrier_impl.39.ll -workitem/get_global_size.39.ll workitem/get_num_groups.39.ll Modified: libclc/trunk/r600/lib/SOURCES_6.0 URL: http://llvm.org/viewvc/llvm-project/libclc/trunk/r600/lib/SOURCES_6.0?rev=346076&r1=346075&r2=346076&view=diff == --- libclc/trunk/r600/lib/SOURCES_6.0 (original) +++ li
[libclc] r346075 - r600: Convert get_local_size to clc
Author: jvesely Date: Sat Nov 3 17:35:03 2018 New Revision: 346075 URL: http://llvm.org/viewvc/llvm-project?rev=346075&view=rev Log: r600: Convert get_local_size to clc Signed-off-by: Jan Vesely Reviewer: Aaron Watry Added: libclc/trunk/r600/lib/workitem/get_local_size.cl Removed: libclc/trunk/r600/lib/workitem/get_local_size.39.ll libclc/trunk/r600/lib/workitem/get_local_size.ll Modified: libclc/trunk/r600/lib/OVERRIDES_3.9 libclc/trunk/r600/lib/OVERRIDES_4.0 libclc/trunk/r600/lib/OVERRIDES_5.0 libclc/trunk/r600/lib/OVERRIDES_6.0 libclc/trunk/r600/lib/SOURCES libclc/trunk/r600/lib/SOURCES_3.9 libclc/trunk/r600/lib/SOURCES_4.0 libclc/trunk/r600/lib/SOURCES_5.0 libclc/trunk/r600/lib/SOURCES_6.0 Modified: libclc/trunk/r600/lib/OVERRIDES_3.9 URL: http://llvm.org/viewvc/llvm-project/libclc/trunk/r600/lib/OVERRIDES_3.9?rev=346075&r1=346074&r2=346075&view=diff == --- libclc/trunk/r600/lib/OVERRIDES_3.9 (original) +++ libclc/trunk/r600/lib/OVERRIDES_3.9 Sat Nov 3 17:35:03 2018 @@ -1,4 +1,3 @@ synchronization/barrier_impl.ll workitem/get_global_size.ll -workitem/get_local_size.ll workitem/get_num_groups.ll Modified: libclc/trunk/r600/lib/OVERRIDES_4.0 URL: http://llvm.org/viewvc/llvm-project/libclc/trunk/r600/lib/OVERRIDES_4.0?rev=346075&r1=346074&r2=346075&view=diff == --- libclc/trunk/r600/lib/OVERRIDES_4.0 (original) +++ libclc/trunk/r600/lib/OVERRIDES_4.0 Sat Nov 3 17:35:03 2018 @@ -1,4 +1,3 @@ synchronization/barrier_impl.ll workitem/get_global_size.ll -workitem/get_local_size.ll workitem/get_num_groups.ll Modified: libclc/trunk/r600/lib/OVERRIDES_5.0 URL: http://llvm.org/viewvc/llvm-project/libclc/trunk/r600/lib/OVERRIDES_5.0?rev=346075&r1=346074&r2=346075&view=diff == --- libclc/trunk/r600/lib/OVERRIDES_5.0 (original) +++ libclc/trunk/r600/lib/OVERRIDES_5.0 Sat Nov 3 17:35:03 2018 @@ -1,4 +1,3 @@ synchronization/barrier_impl.ll workitem/get_global_size.ll -workitem/get_local_size.ll workitem/get_num_groups.ll Modified: libclc/trunk/r600/lib/OVERRIDES_6.0 URL: http://llvm.org/viewvc/llvm-project/libclc/trunk/r600/lib/OVERRIDES_6.0?rev=346075&r1=346074&r2=346075&view=diff == --- libclc/trunk/r600/lib/OVERRIDES_6.0 (original) +++ libclc/trunk/r600/lib/OVERRIDES_6.0 Sat Nov 3 17:35:03 2018 @@ -1,4 +1,3 @@ synchronization/barrier_impl.ll workitem/get_global_size.ll -workitem/get_local_size.ll workitem/get_num_groups.ll Modified: libclc/trunk/r600/lib/SOURCES URL: http://llvm.org/viewvc/llvm-project/libclc/trunk/r600/lib/SOURCES?rev=346075&r1=346074&r2=346075&view=diff == --- libclc/trunk/r600/lib/SOURCES (original) +++ libclc/trunk/r600/lib/SOURCES Sat Nov 3 17:35:03 2018 @@ -5,6 +5,6 @@ workitem/get_global_offset.cl workitem/get_group_id.cl workitem/get_global_size.ll workitem/get_local_id.cl -workitem/get_local_size.ll +workitem/get_local_size.cl workitem/get_num_groups.ll workitem/get_work_dim.cl Modified: libclc/trunk/r600/lib/SOURCES_3.9 URL: http://llvm.org/viewvc/llvm-project/libclc/trunk/r600/lib/SOURCES_3.9?rev=346075&r1=346074&r2=346075&view=diff == --- libclc/trunk/r600/lib/SOURCES_3.9 (original) +++ libclc/trunk/r600/lib/SOURCES_3.9 Sat Nov 3 17:35:03 2018 @@ -15,5 +15,4 @@ image/write_imageui.cl image/write_image_impl.ll synchronization/barrier_impl.39.ll workitem/get_global_size.39.ll -workitem/get_local_size.39.ll workitem/get_num_groups.39.ll Modified: libclc/trunk/r600/lib/SOURCES_4.0 URL: http://llvm.org/viewvc/llvm-project/libclc/trunk/r600/lib/SOURCES_4.0?rev=346075&r1=346074&r2=346075&view=diff == --- libclc/trunk/r600/lib/SOURCES_4.0 (original) +++ libclc/trunk/r600/lib/SOURCES_4.0 Sat Nov 3 17:35:03 2018 @@ -1,4 +1,3 @@ synchronization/barrier_impl.39.ll workitem/get_global_size.39.ll -workitem/get_local_size.39.ll workitem/get_num_groups.39.ll Modified: libclc/trunk/r600/lib/SOURCES_5.0 URL: http://llvm.org/viewvc/llvm-project/libclc/trunk/r600/lib/SOURCES_5.0?rev=346075&r1=346074&r2=346075&view=diff == --- libclc/trunk/r600/lib/SOURCES_5.0 (original) +++ libclc/trunk/r600/lib/SOURCES_5.0 Sat Nov 3 17:35:03 2018 @@ -1,4 +1,3 @@ synchronization/barrier_impl.39.ll workitem/get_global_size.39.ll -workitem/get_local_size.39.ll workitem/get_num_groups.39.ll Modified: libclc/trunk/r600/lib/SOURCES_6.0 URL: http://llvm.org/viewvc/llvm-project/libclc/trunk/r600/lib/SOURCES_6.0?rev=346075&r1=34607
[libclc] r346078 - r600: Convert barrier to clc
Author: jvesely Date: Sat Nov 3 17:35:15 2018 New Revision: 346078 URL: http://llvm.org/viewvc/llvm-project?rev=346078&view=rev Log: r600: Convert barrier to clc Signed-off-by: Jan Vesely Reviewer: Aaron Watry Added: libclc/trunk/r600/lib/synchronization/barrier.cl Removed: libclc/trunk/r600/lib/OVERRIDES_3.9 libclc/trunk/r600/lib/OVERRIDES_4.0 libclc/trunk/r600/lib/OVERRIDES_5.0 libclc/trunk/r600/lib/OVERRIDES_6.0 libclc/trunk/r600/lib/SOURCES_4.0 libclc/trunk/r600/lib/SOURCES_5.0 libclc/trunk/r600/lib/SOURCES_6.0 libclc/trunk/r600/lib/synchronization/barrier_impl.39.ll libclc/trunk/r600/lib/synchronization/barrier_impl.ll Modified: libclc/trunk/r600/lib/SOURCES libclc/trunk/r600/lib/SOURCES_3.9 Removed: libclc/trunk/r600/lib/OVERRIDES_3.9 URL: http://llvm.org/viewvc/llvm-project/libclc/trunk/r600/lib/OVERRIDES_3.9?rev=346077&view=auto == --- libclc/trunk/r600/lib/OVERRIDES_3.9 (original) +++ libclc/trunk/r600/lib/OVERRIDES_3.9 (removed) @@ -1 +0,0 @@ -synchronization/barrier_impl.ll Removed: libclc/trunk/r600/lib/OVERRIDES_4.0 URL: http://llvm.org/viewvc/llvm-project/libclc/trunk/r600/lib/OVERRIDES_4.0?rev=346077&view=auto == --- libclc/trunk/r600/lib/OVERRIDES_4.0 (original) +++ libclc/trunk/r600/lib/OVERRIDES_4.0 (removed) @@ -1 +0,0 @@ -synchronization/barrier_impl.ll Removed: libclc/trunk/r600/lib/OVERRIDES_5.0 URL: http://llvm.org/viewvc/llvm-project/libclc/trunk/r600/lib/OVERRIDES_5.0?rev=346077&view=auto == --- libclc/trunk/r600/lib/OVERRIDES_5.0 (original) +++ libclc/trunk/r600/lib/OVERRIDES_5.0 (removed) @@ -1 +0,0 @@ -synchronization/barrier_impl.ll Removed: libclc/trunk/r600/lib/OVERRIDES_6.0 URL: http://llvm.org/viewvc/llvm-project/libclc/trunk/r600/lib/OVERRIDES_6.0?rev=346077&view=auto == --- libclc/trunk/r600/lib/OVERRIDES_6.0 (original) +++ libclc/trunk/r600/lib/OVERRIDES_6.0 (removed) @@ -1 +0,0 @@ -synchronization/barrier_impl.ll Modified: libclc/trunk/r600/lib/SOURCES URL: http://llvm.org/viewvc/llvm-project/libclc/trunk/r600/lib/SOURCES?rev=346078&r1=346077&r2=346078&view=diff == --- libclc/trunk/r600/lib/SOURCES (original) +++ libclc/trunk/r600/lib/SOURCES Sat Nov 3 17:35:15 2018 @@ -1,6 +1,6 @@ math/fmax.cl math/fmin.cl -synchronization/barrier_impl.ll +synchronization/barrier.cl workitem/get_global_offset.cl workitem/get_group_id.cl workitem/get_global_size.cl Modified: libclc/trunk/r600/lib/SOURCES_3.9 URL: http://llvm.org/viewvc/llvm-project/libclc/trunk/r600/lib/SOURCES_3.9?rev=346078&r1=346077&r2=346078&view=diff == --- libclc/trunk/r600/lib/SOURCES_3.9 (original) +++ libclc/trunk/r600/lib/SOURCES_3.9 Sat Nov 3 17:35:15 2018 @@ -13,4 +13,3 @@ image/write_imagef.cl image/write_imagei.cl image/write_imageui.cl image/write_image_impl.ll -synchronization/barrier_impl.39.ll Removed: libclc/trunk/r600/lib/SOURCES_4.0 URL: http://llvm.org/viewvc/llvm-project/libclc/trunk/r600/lib/SOURCES_4.0?rev=346077&view=auto == --- libclc/trunk/r600/lib/SOURCES_4.0 (original) +++ libclc/trunk/r600/lib/SOURCES_4.0 (removed) @@ -1 +0,0 @@ -synchronization/barrier_impl.39.ll Removed: libclc/trunk/r600/lib/SOURCES_5.0 URL: http://llvm.org/viewvc/llvm-project/libclc/trunk/r600/lib/SOURCES_5.0?rev=346077&view=auto == --- libclc/trunk/r600/lib/SOURCES_5.0 (original) +++ libclc/trunk/r600/lib/SOURCES_5.0 (removed) @@ -1 +0,0 @@ -synchronization/barrier_impl.39.ll Removed: libclc/trunk/r600/lib/SOURCES_6.0 URL: http://llvm.org/viewvc/llvm-project/libclc/trunk/r600/lib/SOURCES_6.0?rev=346077&view=auto == --- libclc/trunk/r600/lib/SOURCES_6.0 (original) +++ libclc/trunk/r600/lib/SOURCES_6.0 (removed) @@ -1 +0,0 @@ -synchronization/barrier_impl.39.ll Added: libclc/trunk/r600/lib/synchronization/barrier.cl URL: http://llvm.org/viewvc/llvm-project/libclc/trunk/r600/lib/synchronization/barrier.cl?rev=346078&view=auto == --- libclc/trunk/r600/lib/synchronization/barrier.cl (added) +++ libclc/trunk/r600/lib/synchronization/barrier.cl Sat Nov 3 17:35:15 2018 @@ -0,0 +1,9 @@ +#include + +_CLC_DEF void __clc_r600_barrier(void) __asm("llvm.r600.group.barrier"); + +_CLC_DEF void barrier(uint flags) +{ + // We should call mem_fence here, but that is not implemented for r600 yet + __clc_r60
[libclc] r346077 - r600: Convert get_num_groups to clc
Author: jvesely Date: Sat Nov 3 17:35:12 2018 New Revision: 346077 URL: http://llvm.org/viewvc/llvm-project?rev=346077&view=rev Log: r600: Convert get_num_groups to clc Signed-off-by: Jan Vesely Reviewer: Aaron Watry Added: libclc/trunk/r600/lib/workitem/get_num_groups.cl Removed: libclc/trunk/r600/lib/workitem/get_num_groups.39.ll libclc/trunk/r600/lib/workitem/get_num_groups.ll Modified: libclc/trunk/r600/lib/OVERRIDES_3.9 libclc/trunk/r600/lib/OVERRIDES_4.0 libclc/trunk/r600/lib/OVERRIDES_5.0 libclc/trunk/r600/lib/OVERRIDES_6.0 libclc/trunk/r600/lib/SOURCES libclc/trunk/r600/lib/SOURCES_3.9 libclc/trunk/r600/lib/SOURCES_4.0 libclc/trunk/r600/lib/SOURCES_5.0 libclc/trunk/r600/lib/SOURCES_6.0 Modified: libclc/trunk/r600/lib/OVERRIDES_3.9 URL: http://llvm.org/viewvc/llvm-project/libclc/trunk/r600/lib/OVERRIDES_3.9?rev=346077&r1=346076&r2=346077&view=diff == --- libclc/trunk/r600/lib/OVERRIDES_3.9 (original) +++ libclc/trunk/r600/lib/OVERRIDES_3.9 Sat Nov 3 17:35:12 2018 @@ -1,2 +1 @@ synchronization/barrier_impl.ll -workitem/get_num_groups.ll Modified: libclc/trunk/r600/lib/OVERRIDES_4.0 URL: http://llvm.org/viewvc/llvm-project/libclc/trunk/r600/lib/OVERRIDES_4.0?rev=346077&r1=346076&r2=346077&view=diff == --- libclc/trunk/r600/lib/OVERRIDES_4.0 (original) +++ libclc/trunk/r600/lib/OVERRIDES_4.0 Sat Nov 3 17:35:12 2018 @@ -1,2 +1 @@ synchronization/barrier_impl.ll -workitem/get_num_groups.ll Modified: libclc/trunk/r600/lib/OVERRIDES_5.0 URL: http://llvm.org/viewvc/llvm-project/libclc/trunk/r600/lib/OVERRIDES_5.0?rev=346077&r1=346076&r2=346077&view=diff == --- libclc/trunk/r600/lib/OVERRIDES_5.0 (original) +++ libclc/trunk/r600/lib/OVERRIDES_5.0 Sat Nov 3 17:35:12 2018 @@ -1,2 +1 @@ synchronization/barrier_impl.ll -workitem/get_num_groups.ll Modified: libclc/trunk/r600/lib/OVERRIDES_6.0 URL: http://llvm.org/viewvc/llvm-project/libclc/trunk/r600/lib/OVERRIDES_6.0?rev=346077&r1=346076&r2=346077&view=diff == --- libclc/trunk/r600/lib/OVERRIDES_6.0 (original) +++ libclc/trunk/r600/lib/OVERRIDES_6.0 Sat Nov 3 17:35:12 2018 @@ -1,2 +1 @@ synchronization/barrier_impl.ll -workitem/get_num_groups.ll Modified: libclc/trunk/r600/lib/SOURCES URL: http://llvm.org/viewvc/llvm-project/libclc/trunk/r600/lib/SOURCES?rev=346077&r1=346076&r2=346077&view=diff == --- libclc/trunk/r600/lib/SOURCES (original) +++ libclc/trunk/r600/lib/SOURCES Sat Nov 3 17:35:12 2018 @@ -6,5 +6,5 @@ workitem/get_group_id.cl workitem/get_global_size.cl workitem/get_local_id.cl workitem/get_local_size.cl -workitem/get_num_groups.ll +workitem/get_num_groups.cl workitem/get_work_dim.cl Modified: libclc/trunk/r600/lib/SOURCES_3.9 URL: http://llvm.org/viewvc/llvm-project/libclc/trunk/r600/lib/SOURCES_3.9?rev=346077&r1=346076&r2=346077&view=diff == --- libclc/trunk/r600/lib/SOURCES_3.9 (original) +++ libclc/trunk/r600/lib/SOURCES_3.9 Sat Nov 3 17:35:12 2018 @@ -14,4 +14,3 @@ image/write_imagei.cl image/write_imageui.cl image/write_image_impl.ll synchronization/barrier_impl.39.ll -workitem/get_num_groups.39.ll Modified: libclc/trunk/r600/lib/SOURCES_4.0 URL: http://llvm.org/viewvc/llvm-project/libclc/trunk/r600/lib/SOURCES_4.0?rev=346077&r1=346076&r2=346077&view=diff == --- libclc/trunk/r600/lib/SOURCES_4.0 (original) +++ libclc/trunk/r600/lib/SOURCES_4.0 Sat Nov 3 17:35:12 2018 @@ -1,2 +1 @@ synchronization/barrier_impl.39.ll -workitem/get_num_groups.39.ll Modified: libclc/trunk/r600/lib/SOURCES_5.0 URL: http://llvm.org/viewvc/llvm-project/libclc/trunk/r600/lib/SOURCES_5.0?rev=346077&r1=346076&r2=346077&view=diff == --- libclc/trunk/r600/lib/SOURCES_5.0 (original) +++ libclc/trunk/r600/lib/SOURCES_5.0 Sat Nov 3 17:35:12 2018 @@ -1,2 +1 @@ synchronization/barrier_impl.39.ll -workitem/get_num_groups.39.ll Modified: libclc/trunk/r600/lib/SOURCES_6.0 URL: http://llvm.org/viewvc/llvm-project/libclc/trunk/r600/lib/SOURCES_6.0?rev=346077&r1=346076&r2=346077&view=diff == --- libclc/trunk/r600/lib/SOURCES_6.0 (original) +++ libclc/trunk/r600/lib/SOURCES_6.0 Sat Nov 3 17:35:12 2018 @@ -1,2 +1 @@ synchronization/barrier_impl.39.ll -workitem/get_num_groups.39.ll Removed: libclc/trunk/r600/lib/workitem/get_num_groups.39.ll URL: http://llvm.org/viewvc/llvm-project/libclc/trunk/r600/lib/workitem/get_num_
[libclc] r346080 - amdgcn: Convert get_global_size to clc
Author: jvesely Date: Sat Nov 3 17:39:20 2018 New Revision: 346080 URL: http://llvm.org/viewvc/llvm-project?rev=346080&view=rev Log: amdgcn: Convert get_global_size to clc Signed-off-by: Jan Vesely Reviewed-By: Aaron Watry Added: libclc/trunk/amdgcn/lib/workitem/get_global_size.cl Removed: libclc/trunk/amdgcn/lib/workitem/get_global_size.39.ll libclc/trunk/amdgcn/lib/workitem/get_global_size.40.ll libclc/trunk/amdgcn/lib/workitem/get_global_size.ll Modified: libclc/trunk/amdgcn/lib/OVERRIDES_3.9 libclc/trunk/amdgcn/lib/OVERRIDES_4.0 libclc/trunk/amdgcn/lib/OVERRIDES_5.0 libclc/trunk/amdgcn/lib/OVERRIDES_6.0 libclc/trunk/amdgcn/lib/SOURCES libclc/trunk/amdgcn/lib/SOURCES_3.9 libclc/trunk/amdgcn/lib/SOURCES_4.0 libclc/trunk/amdgcn/lib/SOURCES_5.0 libclc/trunk/amdgcn/lib/SOURCES_6.0 Modified: libclc/trunk/amdgcn/lib/OVERRIDES_3.9 URL: http://llvm.org/viewvc/llvm-project/libclc/trunk/amdgcn/lib/OVERRIDES_3.9?rev=346080&r1=346079&r2=346080&view=diff == --- libclc/trunk/amdgcn/lib/OVERRIDES_3.9 (original) +++ libclc/trunk/amdgcn/lib/OVERRIDES_3.9 Sat Nov 3 17:39:20 2018 @@ -1,3 +1,2 @@ cl_khr_int64_extended_atomics/minmax_helpers.ll -workitem/get_global_size.ll workitem/get_num_groups.ll Modified: libclc/trunk/amdgcn/lib/OVERRIDES_4.0 URL: http://llvm.org/viewvc/llvm-project/libclc/trunk/amdgcn/lib/OVERRIDES_4.0?rev=346080&r1=346079&r2=346080&view=diff == --- libclc/trunk/amdgcn/lib/OVERRIDES_4.0 (original) +++ libclc/trunk/amdgcn/lib/OVERRIDES_4.0 Sat Nov 3 17:39:20 2018 @@ -1,3 +1,2 @@ cl_khr_int64_extended_atomics/minmax_helpers.ll -workitem/get_global_size.ll workitem/get_num_groups.ll Modified: libclc/trunk/amdgcn/lib/OVERRIDES_5.0 URL: http://llvm.org/viewvc/llvm-project/libclc/trunk/amdgcn/lib/OVERRIDES_5.0?rev=346080&r1=346079&r2=346080&view=diff == --- libclc/trunk/amdgcn/lib/OVERRIDES_5.0 (original) +++ libclc/trunk/amdgcn/lib/OVERRIDES_5.0 Sat Nov 3 17:39:20 2018 @@ -1,3 +1,2 @@ cl_khr_int64_extended_atomics/minmax_helpers.ll -workitem/get_global_size.ll workitem/get_num_groups.ll Modified: libclc/trunk/amdgcn/lib/OVERRIDES_6.0 URL: http://llvm.org/viewvc/llvm-project/libclc/trunk/amdgcn/lib/OVERRIDES_6.0?rev=346080&r1=346079&r2=346080&view=diff == --- libclc/trunk/amdgcn/lib/OVERRIDES_6.0 (original) +++ libclc/trunk/amdgcn/lib/OVERRIDES_6.0 Sat Nov 3 17:39:20 2018 @@ -1,3 +1,2 @@ cl_khr_int64_extended_atomics/minmax_helpers.ll -workitem/get_global_size.ll workitem/get_num_groups.ll Modified: libclc/trunk/amdgcn/lib/SOURCES URL: http://llvm.org/viewvc/llvm-project/libclc/trunk/amdgcn/lib/SOURCES?rev=346080&r1=346079&r2=346080&view=diff == --- libclc/trunk/amdgcn/lib/SOURCES (original) +++ libclc/trunk/amdgcn/lib/SOURCES Sat Nov 3 17:39:20 2018 @@ -7,7 +7,7 @@ mem_fence/fence.cl synchronization/barrier.cl workitem/get_global_offset.cl workitem/get_group_id.cl -workitem/get_global_size.ll +workitem/get_global_size.cl workitem/get_local_id.cl workitem/get_local_size.cl workitem/get_num_groups.ll Modified: libclc/trunk/amdgcn/lib/SOURCES_3.9 URL: http://llvm.org/viewvc/llvm-project/libclc/trunk/amdgcn/lib/SOURCES_3.9?rev=346080&r1=346079&r2=346080&view=diff == --- libclc/trunk/amdgcn/lib/SOURCES_3.9 (original) +++ libclc/trunk/amdgcn/lib/SOURCES_3.9 Sat Nov 3 17:39:20 2018 @@ -1,4 +1,3 @@ cl_khr_int64_extended_atomics/minmax_helpers.39.ll mem_fence/waitcnt.ll -workitem/get_global_size.39.ll workitem/get_num_groups.39.ll Modified: libclc/trunk/amdgcn/lib/SOURCES_4.0 URL: http://llvm.org/viewvc/llvm-project/libclc/trunk/amdgcn/lib/SOURCES_4.0?rev=346080&r1=346079&r2=346080&view=diff == --- libclc/trunk/amdgcn/lib/SOURCES_4.0 (original) +++ libclc/trunk/amdgcn/lib/SOURCES_4.0 Sat Nov 3 17:39:20 2018 @@ -1,4 +1,3 @@ cl_khr_int64_extended_atomics/minmax_helpers.39.ll mem_fence/waitcnt.ll -workitem/get_global_size.40.ll workitem/get_num_groups.40.ll Modified: libclc/trunk/amdgcn/lib/SOURCES_5.0 URL: http://llvm.org/viewvc/llvm-project/libclc/trunk/amdgcn/lib/SOURCES_5.0?rev=346080&r1=346079&r2=346080&view=diff == --- libclc/trunk/amdgcn/lib/SOURCES_5.0 (original) +++ libclc/trunk/amdgcn/lib/SOURCES_5.0 Sat Nov 3 17:39:20 2018 @@ -1,3 +1,2 @@ cl_khr_int64_extended_atomics/minmax_helpers.39.ll -workitem/get_global_size.40.ll workitem/get_num_groups.40.ll Modified: libclc/trunk/amdgcn/lib/SOURCES_6.0 URL: http://l
[libclc] r346079 - amdgcn: Convert get_local_size to clc
Author: jvesely Date: Sat Nov 3 17:39:16 2018 New Revision: 346079 URL: http://llvm.org/viewvc/llvm-project?rev=346079&view=rev Log: amdgcn: Convert get_local_size to clc Signed-off-by: Jan Vesely Reviewed-By: Aaron Watry Added: libclc/trunk/amdgcn/lib/workitem/get_local_size.cl Removed: libclc/trunk/amdgcn/lib/workitem/get_local_size.39.ll libclc/trunk/amdgcn/lib/workitem/get_local_size.40.ll libclc/trunk/amdgcn/lib/workitem/get_local_size.ll Modified: libclc/trunk/amdgcn/lib/OVERRIDES_3.9 libclc/trunk/amdgcn/lib/OVERRIDES_4.0 libclc/trunk/amdgcn/lib/OVERRIDES_5.0 libclc/trunk/amdgcn/lib/OVERRIDES_6.0 libclc/trunk/amdgcn/lib/SOURCES libclc/trunk/amdgcn/lib/SOURCES_3.9 libclc/trunk/amdgcn/lib/SOURCES_4.0 libclc/trunk/amdgcn/lib/SOURCES_5.0 libclc/trunk/amdgcn/lib/SOURCES_6.0 Modified: libclc/trunk/amdgcn/lib/OVERRIDES_3.9 URL: http://llvm.org/viewvc/llvm-project/libclc/trunk/amdgcn/lib/OVERRIDES_3.9?rev=346079&r1=346078&r2=346079&view=diff == --- libclc/trunk/amdgcn/lib/OVERRIDES_3.9 (original) +++ libclc/trunk/amdgcn/lib/OVERRIDES_3.9 Sat Nov 3 17:39:16 2018 @@ -1,4 +1,3 @@ cl_khr_int64_extended_atomics/minmax_helpers.ll workitem/get_global_size.ll -workitem/get_local_size.ll workitem/get_num_groups.ll Modified: libclc/trunk/amdgcn/lib/OVERRIDES_4.0 URL: http://llvm.org/viewvc/llvm-project/libclc/trunk/amdgcn/lib/OVERRIDES_4.0?rev=346079&r1=346078&r2=346079&view=diff == --- libclc/trunk/amdgcn/lib/OVERRIDES_4.0 (original) +++ libclc/trunk/amdgcn/lib/OVERRIDES_4.0 Sat Nov 3 17:39:16 2018 @@ -1,4 +1,3 @@ cl_khr_int64_extended_atomics/minmax_helpers.ll workitem/get_global_size.ll -workitem/get_local_size.ll workitem/get_num_groups.ll Modified: libclc/trunk/amdgcn/lib/OVERRIDES_5.0 URL: http://llvm.org/viewvc/llvm-project/libclc/trunk/amdgcn/lib/OVERRIDES_5.0?rev=346079&r1=346078&r2=346079&view=diff == --- libclc/trunk/amdgcn/lib/OVERRIDES_5.0 (original) +++ libclc/trunk/amdgcn/lib/OVERRIDES_5.0 Sat Nov 3 17:39:16 2018 @@ -1,4 +1,3 @@ cl_khr_int64_extended_atomics/minmax_helpers.ll workitem/get_global_size.ll -workitem/get_local_size.ll workitem/get_num_groups.ll Modified: libclc/trunk/amdgcn/lib/OVERRIDES_6.0 URL: http://llvm.org/viewvc/llvm-project/libclc/trunk/amdgcn/lib/OVERRIDES_6.0?rev=346079&r1=346078&r2=346079&view=diff == --- libclc/trunk/amdgcn/lib/OVERRIDES_6.0 (original) +++ libclc/trunk/amdgcn/lib/OVERRIDES_6.0 Sat Nov 3 17:39:16 2018 @@ -1,4 +1,3 @@ cl_khr_int64_extended_atomics/minmax_helpers.ll workitem/get_global_size.ll -workitem/get_local_size.ll workitem/get_num_groups.ll Modified: libclc/trunk/amdgcn/lib/SOURCES URL: http://llvm.org/viewvc/llvm-project/libclc/trunk/amdgcn/lib/SOURCES?rev=346079&r1=346078&r2=346079&view=diff == --- libclc/trunk/amdgcn/lib/SOURCES (original) +++ libclc/trunk/amdgcn/lib/SOURCES Sat Nov 3 17:39:16 2018 @@ -9,6 +9,6 @@ workitem/get_global_offset.cl workitem/get_group_id.cl workitem/get_global_size.ll workitem/get_local_id.cl -workitem/get_local_size.ll +workitem/get_local_size.cl workitem/get_num_groups.ll workitem/get_work_dim.cl Modified: libclc/trunk/amdgcn/lib/SOURCES_3.9 URL: http://llvm.org/viewvc/llvm-project/libclc/trunk/amdgcn/lib/SOURCES_3.9?rev=346079&r1=346078&r2=346079&view=diff == --- libclc/trunk/amdgcn/lib/SOURCES_3.9 (original) +++ libclc/trunk/amdgcn/lib/SOURCES_3.9 Sat Nov 3 17:39:16 2018 @@ -1,5 +1,4 @@ cl_khr_int64_extended_atomics/minmax_helpers.39.ll mem_fence/waitcnt.ll workitem/get_global_size.39.ll -workitem/get_local_size.39.ll workitem/get_num_groups.39.ll Modified: libclc/trunk/amdgcn/lib/SOURCES_4.0 URL: http://llvm.org/viewvc/llvm-project/libclc/trunk/amdgcn/lib/SOURCES_4.0?rev=346079&r1=346078&r2=346079&view=diff == --- libclc/trunk/amdgcn/lib/SOURCES_4.0 (original) +++ libclc/trunk/amdgcn/lib/SOURCES_4.0 Sat Nov 3 17:39:16 2018 @@ -1,5 +1,4 @@ cl_khr_int64_extended_atomics/minmax_helpers.39.ll mem_fence/waitcnt.ll workitem/get_global_size.40.ll -workitem/get_local_size.40.ll workitem/get_num_groups.40.ll Modified: libclc/trunk/amdgcn/lib/SOURCES_5.0 URL: http://llvm.org/viewvc/llvm-project/libclc/trunk/amdgcn/lib/SOURCES_5.0?rev=346079&r1=346078&r2=346079&view=diff == --- libclc/trunk/amdgcn/lib/SOURCES_5.0 (original) +++ libclc/trunk/amdgcn/lib/SOURCES_5.0 Sat Nov 3 17:39:16 2018 @@ -1,4 +1,3 @@ cl_khr_int64_extended_atomics
[libclc] r346082 - amdgcn: Move __clc_amdgcn_s_waitcnt definition to clc file
Author: jvesely Date: Sat Nov 3 17:39:27 2018 New Revision: 346082 URL: http://llvm.org/viewvc/llvm-project?rev=346082&view=rev Log: amdgcn: Move __clc_amdgcn_s_waitcnt definition to clc file Signed-off-by: Jan Vesely Reviewed-By: Aaron Watry Removed: libclc/trunk/amdgcn/lib/mem_fence/waitcnt.ll Modified: libclc/trunk/amdgcn/lib/SOURCES_3.9 libclc/trunk/amdgcn/lib/SOURCES_4.0 libclc/trunk/amdgcn/lib/mem_fence/fence.cl Modified: libclc/trunk/amdgcn/lib/SOURCES_3.9 URL: http://llvm.org/viewvc/llvm-project/libclc/trunk/amdgcn/lib/SOURCES_3.9?rev=346082&r1=346081&r2=346082&view=diff == --- libclc/trunk/amdgcn/lib/SOURCES_3.9 (original) +++ libclc/trunk/amdgcn/lib/SOURCES_3.9 Sat Nov 3 17:39:27 2018 @@ -1,2 +1 @@ cl_khr_int64_extended_atomics/minmax_helpers.39.ll -mem_fence/waitcnt.ll Modified: libclc/trunk/amdgcn/lib/SOURCES_4.0 URL: http://llvm.org/viewvc/llvm-project/libclc/trunk/amdgcn/lib/SOURCES_4.0?rev=346082&r1=346081&r2=346082&view=diff == --- libclc/trunk/amdgcn/lib/SOURCES_4.0 (original) +++ libclc/trunk/amdgcn/lib/SOURCES_4.0 Sat Nov 3 17:39:27 2018 @@ -1,2 +1 @@ cl_khr_int64_extended_atomics/minmax_helpers.39.ll -mem_fence/waitcnt.ll Modified: libclc/trunk/amdgcn/lib/mem_fence/fence.cl URL: http://llvm.org/viewvc/llvm-project/libclc/trunk/amdgcn/lib/mem_fence/fence.cl?rev=346082&r1=346081&r2=346082&view=diff == --- libclc/trunk/amdgcn/lib/mem_fence/fence.cl (original) +++ libclc/trunk/amdgcn/lib/mem_fence/fence.cl Sat Nov 3 17:39:27 2018 @@ -14,6 +14,7 @@ void __clc_amdgcn_s_waitcnt(unsigned fla # define __waitcnt(x) __builtin_amdgcn_s_waitcnt(x) #else # define __waitcnt(x) __clc_amdgcn_s_waitcnt(x) +_CLC_DEF void __clc_amdgcn_s_waitcnt(unsigned) __asm("llvm.amdgcn.s.waitcnt"); #endif _CLC_DEF void mem_fence(cl_mem_fence_flags flags) Removed: libclc/trunk/amdgcn/lib/mem_fence/waitcnt.ll URL: http://llvm.org/viewvc/llvm-project/libclc/trunk/amdgcn/lib/mem_fence/waitcnt.ll?rev=346081&view=auto == --- libclc/trunk/amdgcn/lib/mem_fence/waitcnt.ll (original) +++ libclc/trunk/amdgcn/lib/mem_fence/waitcnt.ll (removed) @@ -1,13 +0,0 @@ -declare void @llvm.amdgcn.s.waitcnt(i32) #0 - -target datalayout = "e-p:32:32-p1:64:64-p2:64:64-p3:32:32-p4:64:64-p5:32:32-i64:64-v16:16-v24:32-v32:32-v48:64-v96:128-v192:256-v256:256-v512:512-v1024:1024-v2048:2048-n32:64" - -; Export waitcnt intrinsic for clang < 5 -define void @__clc_amdgcn_s_waitcnt(i32 %flags) #1 { -entry: - tail call void @llvm.amdgcn.s.waitcnt(i32 %flags) - ret void -} - -attributes #0 = { nounwind } -attributes #1 = { nounwind alwaysinline } ___ cfe-commits mailing list cfe-commits@lists.llvm.org http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
[libclc] r346083 - amdgcn-amdhsa: Convert get_{global, local}_size to clc for all llvm versions
Author: jvesely Date: Sat Nov 3 17:39:30 2018 New Revision: 346083 URL: http://llvm.org/viewvc/llvm-project?rev=346083&view=rev Log: amdgcn-amdhsa: Convert get_{global,local}_size to clc for all llvm versions Signed-off-by: Jan Vesely Acked-By: Aaron Watry Removed: libclc/trunk/amdgcn-amdhsa/lib/OVERRIDES libclc/trunk/amdgcn-amdhsa/lib/OVERRIDES_3.9 libclc/trunk/amdgcn-amdhsa/lib/OVERRIDES_4.0 libclc/trunk/amdgcn-amdhsa/lib/OVERRIDES_5.0 libclc/trunk/amdgcn-amdhsa/lib/SOURCES_3.9 libclc/trunk/amdgcn-amdhsa/lib/SOURCES_4.0 libclc/trunk/amdgcn-amdhsa/lib/SOURCES_5.0 libclc/trunk/amdgcn-amdhsa/lib/workitem/get_global_size.39.ll libclc/trunk/amdgcn-amdhsa/lib/workitem/get_global_size.50.ll libclc/trunk/amdgcn-amdhsa/lib/workitem/get_local_size.39.ll libclc/trunk/amdgcn-amdhsa/lib/workitem/get_local_size.50.ll Modified: libclc/trunk/amdgcn-amdhsa/lib/workitem/get_global_size.cl libclc/trunk/amdgcn-amdhsa/lib/workitem/get_local_size.cl Removed: libclc/trunk/amdgcn-amdhsa/lib/OVERRIDES URL: http://llvm.org/viewvc/llvm-project/libclc/trunk/amdgcn-amdhsa/lib/OVERRIDES?rev=346082&view=auto == --- libclc/trunk/amdgcn-amdhsa/lib/OVERRIDES (original) +++ libclc/trunk/amdgcn-amdhsa/lib/OVERRIDES (removed) @@ -1,6 +0,0 @@ -workitem/get_num_groups.ll -workitem/get_global_size.ll -workitem/get_local_size.ll -workitem/get_num_groups.40.ll -workitem/get_global_size.40.ll -workitem/get_local_size.40.ll Removed: libclc/trunk/amdgcn-amdhsa/lib/OVERRIDES_3.9 URL: http://llvm.org/viewvc/llvm-project/libclc/trunk/amdgcn-amdhsa/lib/OVERRIDES_3.9?rev=346082&view=auto == --- libclc/trunk/amdgcn-amdhsa/lib/OVERRIDES_3.9 (original) +++ libclc/trunk/amdgcn-amdhsa/lib/OVERRIDES_3.9 (removed) @@ -1,3 +0,0 @@ -workitem/get_global_size.cl -workitem/get_local_size.cl -workitem/get_num_groups.39.ll Removed: libclc/trunk/amdgcn-amdhsa/lib/OVERRIDES_4.0 URL: http://llvm.org/viewvc/llvm-project/libclc/trunk/amdgcn-amdhsa/lib/OVERRIDES_4.0?rev=346082&view=auto == --- libclc/trunk/amdgcn-amdhsa/lib/OVERRIDES_4.0 (original) +++ libclc/trunk/amdgcn-amdhsa/lib/OVERRIDES_4.0 (removed) @@ -1,2 +0,0 @@ -workitem/get_global_size.cl -workitem/get_local_size.cl Removed: libclc/trunk/amdgcn-amdhsa/lib/OVERRIDES_5.0 URL: http://llvm.org/viewvc/llvm-project/libclc/trunk/amdgcn-amdhsa/lib/OVERRIDES_5.0?rev=346082&view=auto == --- libclc/trunk/amdgcn-amdhsa/lib/OVERRIDES_5.0 (original) +++ libclc/trunk/amdgcn-amdhsa/lib/OVERRIDES_5.0 (removed) @@ -1,2 +0,0 @@ -workitem/get_global_size.cl -workitem/get_local_size.cl Removed: libclc/trunk/amdgcn-amdhsa/lib/SOURCES_3.9 URL: http://llvm.org/viewvc/llvm-project/libclc/trunk/amdgcn-amdhsa/lib/SOURCES_3.9?rev=346082&view=auto == --- libclc/trunk/amdgcn-amdhsa/lib/SOURCES_3.9 (original) +++ libclc/trunk/amdgcn-amdhsa/lib/SOURCES_3.9 (removed) @@ -1,2 +0,0 @@ -workitem/get_global_size.39.ll -workitem/get_local_size.39.ll Removed: libclc/trunk/amdgcn-amdhsa/lib/SOURCES_4.0 URL: http://llvm.org/viewvc/llvm-project/libclc/trunk/amdgcn-amdhsa/lib/SOURCES_4.0?rev=346082&view=auto == --- libclc/trunk/amdgcn-amdhsa/lib/SOURCES_4.0 (original) +++ libclc/trunk/amdgcn-amdhsa/lib/SOURCES_4.0 (removed) @@ -1,2 +0,0 @@ -workitem/get_global_size.50.ll -workitem/get_local_size.50.ll Removed: libclc/trunk/amdgcn-amdhsa/lib/SOURCES_5.0 URL: http://llvm.org/viewvc/llvm-project/libclc/trunk/amdgcn-amdhsa/lib/SOURCES_5.0?rev=346082&view=auto == --- libclc/trunk/amdgcn-amdhsa/lib/SOURCES_5.0 (original) +++ libclc/trunk/amdgcn-amdhsa/lib/SOURCES_5.0 (removed) @@ -1,2 +0,0 @@ -workitem/get_global_size.50.ll -workitem/get_local_size.50.ll Removed: libclc/trunk/amdgcn-amdhsa/lib/workitem/get_global_size.39.ll URL: http://llvm.org/viewvc/llvm-project/libclc/trunk/amdgcn-amdhsa/lib/workitem/get_global_size.39.ll?rev=346082&view=auto == --- libclc/trunk/amdgcn-amdhsa/lib/workitem/get_global_size.39.ll (original) +++ libclc/trunk/amdgcn-amdhsa/lib/workitem/get_global_size.39.ll (removed) @@ -1,36 +0,0 @@ -declare i8 addrspace(2)* @llvm.amdgcn.dispatch.ptr() #0 - -define i32 @get_global_size(i32 %dim) #1 { - %dispatch_ptr = call noalias nonnull dereferenceable(64) i8 addrspace(2)* @llvm.amdgcn.dispatch.ptr() - switch i32 %dim, label %default [ -i32 0, label %x -i32 1, label %y -i32 2, label %z - ] - -x: - %ptr_x = getelementptr inbounds i8, i8 addrspace(2)* %dispa
[libclc] r346081 - amdgcn: Convert get_num_groups to clc
Author: jvesely Date: Sat Nov 3 17:39:25 2018 New Revision: 346081 URL: http://llvm.org/viewvc/llvm-project?rev=346081&view=rev Log: amdgcn: Convert get_num_groups to clc Signed-off-by: Jan Vesely Reviewed-By: Aaron Watry Added: libclc/trunk/amdgcn/lib/workitem/get_num_groups.cl Removed: libclc/trunk/amdgcn/lib/workitem/get_num_groups.39.ll libclc/trunk/amdgcn/lib/workitem/get_num_groups.40.ll libclc/trunk/amdgcn/lib/workitem/get_num_groups.ll Modified: libclc/trunk/amdgcn/lib/OVERRIDES_3.9 libclc/trunk/amdgcn/lib/OVERRIDES_4.0 libclc/trunk/amdgcn/lib/OVERRIDES_5.0 libclc/trunk/amdgcn/lib/OVERRIDES_6.0 libclc/trunk/amdgcn/lib/SOURCES libclc/trunk/amdgcn/lib/SOURCES_3.9 libclc/trunk/amdgcn/lib/SOURCES_4.0 libclc/trunk/amdgcn/lib/SOURCES_5.0 libclc/trunk/amdgcn/lib/SOURCES_6.0 Modified: libclc/trunk/amdgcn/lib/OVERRIDES_3.9 URL: http://llvm.org/viewvc/llvm-project/libclc/trunk/amdgcn/lib/OVERRIDES_3.9?rev=346081&r1=346080&r2=346081&view=diff == --- libclc/trunk/amdgcn/lib/OVERRIDES_3.9 (original) +++ libclc/trunk/amdgcn/lib/OVERRIDES_3.9 Sat Nov 3 17:39:25 2018 @@ -1,2 +1 @@ cl_khr_int64_extended_atomics/minmax_helpers.ll -workitem/get_num_groups.ll Modified: libclc/trunk/amdgcn/lib/OVERRIDES_4.0 URL: http://llvm.org/viewvc/llvm-project/libclc/trunk/amdgcn/lib/OVERRIDES_4.0?rev=346081&r1=346080&r2=346081&view=diff == --- libclc/trunk/amdgcn/lib/OVERRIDES_4.0 (original) +++ libclc/trunk/amdgcn/lib/OVERRIDES_4.0 Sat Nov 3 17:39:25 2018 @@ -1,2 +1 @@ cl_khr_int64_extended_atomics/minmax_helpers.ll -workitem/get_num_groups.ll Modified: libclc/trunk/amdgcn/lib/OVERRIDES_5.0 URL: http://llvm.org/viewvc/llvm-project/libclc/trunk/amdgcn/lib/OVERRIDES_5.0?rev=346081&r1=346080&r2=346081&view=diff == --- libclc/trunk/amdgcn/lib/OVERRIDES_5.0 (original) +++ libclc/trunk/amdgcn/lib/OVERRIDES_5.0 Sat Nov 3 17:39:25 2018 @@ -1,2 +1 @@ cl_khr_int64_extended_atomics/minmax_helpers.ll -workitem/get_num_groups.ll Modified: libclc/trunk/amdgcn/lib/OVERRIDES_6.0 URL: http://llvm.org/viewvc/llvm-project/libclc/trunk/amdgcn/lib/OVERRIDES_6.0?rev=346081&r1=346080&r2=346081&view=diff == --- libclc/trunk/amdgcn/lib/OVERRIDES_6.0 (original) +++ libclc/trunk/amdgcn/lib/OVERRIDES_6.0 Sat Nov 3 17:39:25 2018 @@ -1,2 +1 @@ cl_khr_int64_extended_atomics/minmax_helpers.ll -workitem/get_num_groups.ll Modified: libclc/trunk/amdgcn/lib/SOURCES URL: http://llvm.org/viewvc/llvm-project/libclc/trunk/amdgcn/lib/SOURCES?rev=346081&r1=346080&r2=346081&view=diff == --- libclc/trunk/amdgcn/lib/SOURCES (original) +++ libclc/trunk/amdgcn/lib/SOURCES Sat Nov 3 17:39:25 2018 @@ -10,5 +10,5 @@ workitem/get_group_id.cl workitem/get_global_size.cl workitem/get_local_id.cl workitem/get_local_size.cl -workitem/get_num_groups.ll +workitem/get_num_groups.cl workitem/get_work_dim.cl Modified: libclc/trunk/amdgcn/lib/SOURCES_3.9 URL: http://llvm.org/viewvc/llvm-project/libclc/trunk/amdgcn/lib/SOURCES_3.9?rev=346081&r1=346080&r2=346081&view=diff == --- libclc/trunk/amdgcn/lib/SOURCES_3.9 (original) +++ libclc/trunk/amdgcn/lib/SOURCES_3.9 Sat Nov 3 17:39:25 2018 @@ -1,3 +1,2 @@ cl_khr_int64_extended_atomics/minmax_helpers.39.ll mem_fence/waitcnt.ll -workitem/get_num_groups.39.ll Modified: libclc/trunk/amdgcn/lib/SOURCES_4.0 URL: http://llvm.org/viewvc/llvm-project/libclc/trunk/amdgcn/lib/SOURCES_4.0?rev=346081&r1=346080&r2=346081&view=diff == --- libclc/trunk/amdgcn/lib/SOURCES_4.0 (original) +++ libclc/trunk/amdgcn/lib/SOURCES_4.0 Sat Nov 3 17:39:25 2018 @@ -1,3 +1,2 @@ cl_khr_int64_extended_atomics/minmax_helpers.39.ll mem_fence/waitcnt.ll -workitem/get_num_groups.40.ll Modified: libclc/trunk/amdgcn/lib/SOURCES_5.0 URL: http://llvm.org/viewvc/llvm-project/libclc/trunk/amdgcn/lib/SOURCES_5.0?rev=346081&r1=346080&r2=346081&view=diff == --- libclc/trunk/amdgcn/lib/SOURCES_5.0 (original) +++ libclc/trunk/amdgcn/lib/SOURCES_5.0 Sat Nov 3 17:39:25 2018 @@ -1,2 +1 @@ cl_khr_int64_extended_atomics/minmax_helpers.39.ll -workitem/get_num_groups.40.ll Modified: libclc/trunk/amdgcn/lib/SOURCES_6.0 URL: http://llvm.org/viewvc/llvm-project/libclc/trunk/amdgcn/lib/SOURCES_6.0?rev=346081&r1=346080&r2=346081&view=diff == --- libclc/trunk/amdgcn/lib/SOURCES_6.0 (original) +++ libclc/trunk/amdgcn/lib/SOURCES_6.0 Sat
[libclc] r346084 - travis: Check tahiti-amdgcn-mesa-mesa3d.bc
Author: jvesely Date: Sat Nov 3 17:54:43 2018 New Revision: 346084 URL: http://llvm.org/viewvc/llvm-project?rev=346084&view=rev Log: travis: Check tahiti-amdgcn-mesa-mesa3d.bc Signed-off-by: Jan Vesely Reviewed-By: Aaron Watry Modified: libclc/trunk/.travis.yml Modified: libclc/trunk/.travis.yml URL: http://llvm.org/viewvc/llvm-project/libclc/trunk/.travis.yml?rev=346084&r1=346083&r2=346084&view=diff == --- libclc/trunk/.travis.yml (original) +++ libclc/trunk/.travis.yml Sat Nov 3 17:54:43 2018 @@ -28,7 +28,7 @@ matrix: - LABEL="make gcc LLVM-4.0" - LLVM_VERSION=4.0 - LLVM_CONFIG="llvm-config-${LLVM_VERSION}" -- CHECK_FILES="barts-r600--.bc cayman-r600--.bc cedar-r600--.bc cypress-r600--.bc tahiti-amdgcn--.bc amdgcn--amdhsa.bc nvptx--nvidiacl.bc nvptx64--nvidiacl.bc" +- CHECK_FILES="barts-r600--.bc cayman-r600--.bc cedar-r600--.bc cypress-r600--.bc tahiti-amdgcn--.bc amdgcn--amdhsa.bc tahiti-amdgcn-mesa-mesa3d.bc nvptx--nvidiacl.bc nvptx64--nvidiacl.bc" addons: apt: sources: @@ -43,7 +43,7 @@ matrix: - LABEL="make gcc LLVM-5.0" - LLVM_VERSION=5.0 - LLVM_CONFIG="llvm-config-${LLVM_VERSION}" -- CHECK_FILES="barts-r600--.bc cayman-r600--.bc cedar-r600--.bc cypress-r600--.bc tahiti-amdgcn--.bc amdgcn--amdhsa.bc nvptx--nvidiacl.bc nvptx64--nvidiacl.bc" +- CHECK_FILES="barts-r600--.bc cayman-r600--.bc cedar-r600--.bc cypress-r600--.bc tahiti-amdgcn--.bc amdgcn--amdhsa.bc tahiti-amdgcn-mesa-mesa3d.bc nvptx--nvidiacl.bc nvptx64--nvidiacl.bc" addons: apt: sources: @@ -58,7 +58,7 @@ matrix: - LABEL="make gcc LLVM-6.0" - LLVM_VERSION=6.0 - LLVM_CONFIG="llvm-config-${LLVM_VERSION}" -- CHECK_FILES="barts-r600--.bc cayman-r600--.bc cedar-r600--.bc cypress-r600--.bc tahiti-amdgcn--.bc amdgcn--amdhsa.bc nvptx--nvidiacl.bc nvptx64--nvidiacl.bc" +- CHECK_FILES="barts-r600--.bc cayman-r600--.bc cedar-r600--.bc cypress-r600--.bc tahiti-amdgcn--.bc amdgcn--amdhsa.bc tahiti-amdgcn-mesa-mesa3d.bc nvptx--nvidiacl.bc nvptx64--nvidiacl.bc" # llvm passes -Werror=date-time which is only supported in gcc-4.9+ - MATRIX_EVAL="CC=gcc-4.9 && CXX=g++-4.9" addons: @@ -77,7 +77,7 @@ matrix: - LABEL="make gcc LLVM-7" - LLVM_VERSION=7 - LLVM_CONFIG="llvm-config-${LLVM_VERSION}" -- CHECK_FILES="barts-r600--.bc cayman-r600--.bc cedar-r600--.bc cypress-r600--.bc tahiti-amdgcn--.bc amdgcn--amdhsa.bc nvptx--nvidiacl.bc nvptx64--nvidiacl.bc" +- CHECK_FILES="barts-r600--.bc cayman-r600--.bc cedar-r600--.bc cypress-r600--.bc tahiti-amdgcn--.bc amdgcn--amdhsa.bc tahiti-amdgcn-mesa-mesa3d.bc nvptx--nvidiacl.bc nvptx64--nvidiacl.bc" # llvm passes -Werror=date-time which is only supported in gcc-4.9+ - MATRIX_EVAL="CC=gcc-4.9 && CXX=g++-4.9" addons: ___ cfe-commits mailing list cfe-commits@lists.llvm.org http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
[libclc] r346085 - configure: Provide symlink for amdgcn-mesa3d instead of configure hack
Author: jvesely Date: Sat Nov 3 17:54:45 2018 New Revision: 346085 URL: http://llvm.org/viewvc/llvm-project?rev=346085&view=rev Log: configure: Provide symlink for amdgcn-mesa3d instead of configure hack Signed-off-by: Jan Vesely Reviewed-By: Aaron Watry Added: libclc/trunk/amdgcn-mesa3d (with props) Modified: libclc/trunk/configure.py Added: libclc/trunk/amdgcn-mesa3d URL: http://llvm.org/viewvc/llvm-project/libclc/trunk/amdgcn-mesa3d?rev=346085&view=auto == --- libclc/trunk/amdgcn-mesa3d (added) +++ libclc/trunk/amdgcn-mesa3d Sat Nov 3 17:54:45 2018 @@ -0,0 +1 @@ +link amdgcn-amdhsa \ No newline at end of file Propchange: libclc/trunk/amdgcn-mesa3d -- svn:special = * Modified: libclc/trunk/configure.py URL: http://llvm.org/viewvc/llvm-project/libclc/trunk/configure.py?rev=346085&r1=346084&r2=346085&view=diff == --- libclc/trunk/configure.py (original) +++ libclc/trunk/configure.py Sat Nov 3 17:54:45 2018 @@ -187,8 +187,6 @@ for target in targets: for arch in archs: subdirs.append("%s-%s-%s" % (arch, t_vendor, t_os)) subdirs.append("%s-%s" % (arch, t_os)) -if t_os == 'mesa3d': -subdirs.append('amdgcn-amdhsa') subdirs.append(arch) if arch == 'amdgcn' or arch == 'r600': subdirs.append('amdgpu') ___ cfe-commits mailing list cfe-commits@lists.llvm.org http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
[libclc] r346086 - Remove redundant OVERRRIDES file
Author: jvesely Date: Sat Nov 3 17:54:46 2018 New Revision: 346086 URL: http://llvm.org/viewvc/llvm-project?rev=346086&view=rev Log: Remove redundant OVERRRIDES file Signed-off-by: Jan Vesely Reviewed-By: Aaron Watry Removed: libclc/trunk/amdgpu/lib/OVERRIDES Removed: libclc/trunk/amdgpu/lib/OVERRIDES URL: http://llvm.org/viewvc/llvm-project/libclc/trunk/amdgpu/lib/OVERRIDES?rev=346085&view=auto == --- libclc/trunk/amdgpu/lib/OVERRIDES (original) +++ libclc/trunk/amdgpu/lib/OVERRIDES (removed) @@ -1,2 +0,0 @@ -workitem/get_group_id.cl -workitem/get_global_size.cl ___ cfe-commits mailing list cfe-commits@lists.llvm.org http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
[libclc] r346597 - r600: Add datalayout to image builtin implementation
Author: jvesely Date: Sat Nov 10 13:43:40 2018 New Revision: 346597 URL: http://llvm.org/viewvc/llvm-project?rev=346597&view=rev Log: r600: Add datalayout to image builtin implementation Signed-off-by: Jan Vesely Reviewer: Aaron Watry Modified: libclc/trunk/r600/lib/image/get_image_attributes_impl.ll libclc/trunk/r600/lib/image/read_image_impl.ll libclc/trunk/r600/lib/image/write_image_impl.ll Modified: libclc/trunk/r600/lib/image/get_image_attributes_impl.ll URL: http://llvm.org/viewvc/llvm-project/libclc/trunk/r600/lib/image/get_image_attributes_impl.ll?rev=346597&r1=346596&r2=346597&view=diff == --- libclc/trunk/r600/lib/image/get_image_attributes_impl.ll (original) +++ libclc/trunk/r600/lib/image/get_image_attributes_impl.ll Sat Nov 10 13:43:40 2018 @@ -1,3 +1,5 @@ +target datalayout = "e-p:32:32-i64:64-v16:16-v24:32-v32:32-v48:64-v96:128-v192:256-v256:256-v512:512-v1024:1024-v2048:2048-n32:64" + %opencl.image2d_t = type opaque %opencl.image3d_t = type opaque Modified: libclc/trunk/r600/lib/image/read_image_impl.ll URL: http://llvm.org/viewvc/llvm-project/libclc/trunk/r600/lib/image/read_image_impl.ll?rev=346597&r1=346596&r2=346597&view=diff == --- libclc/trunk/r600/lib/image/read_image_impl.ll (original) +++ libclc/trunk/r600/lib/image/read_image_impl.ll Sat Nov 10 13:43:40 2018 @@ -1,3 +1,5 @@ +target datalayout = "e-p:32:32-i64:64-v16:16-v24:32-v32:32-v48:64-v96:128-v192:256-v256:256-v512:512-v1024:1024-v2048:2048-n32:64" + %opencl.image2d_t = type opaque declare <4 x float> @llvm.R600.tex(<4 x float>, i32, i32, i32, i32, i32, i32, Modified: libclc/trunk/r600/lib/image/write_image_impl.ll URL: http://llvm.org/viewvc/llvm-project/libclc/trunk/r600/lib/image/write_image_impl.ll?rev=346597&r1=346596&r2=346597&view=diff == --- libclc/trunk/r600/lib/image/write_image_impl.ll (original) +++ libclc/trunk/r600/lib/image/write_image_impl.ll Sat Nov 10 13:43:40 2018 @@ -1,3 +1,5 @@ +target datalayout = "e-p:32:32-i64:64-v16:16-v24:32-v32:32-v48:64-v96:128-v192:256-v256:256-v512:512-v1024:1024-v2048:2048-n32:64" + %opencl.image2d_t = type opaque %opencl.image3d_t = type opaque ___ cfe-commits mailing list cfe-commits@lists.llvm.org http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
[libclc] r347665 - amdgcn: Consolidate atomic minmax helpers
Author: jvesely Date: Tue Nov 27 08:01:13 2018 New Revision: 347665 URL: http://llvm.org/viewvc/llvm-project?rev=347665&view=rev Log: amdgcn: Consolidate atomic minmax helpers Removes most overrides Signed-off-by: Jan Vesely Reviewer: Aaron Watry Removed: libclc/trunk/amdgcn/lib/OVERRIDES libclc/trunk/amdgcn/lib/OVERRIDES_3.9 libclc/trunk/amdgcn/lib/OVERRIDES_4.0 libclc/trunk/amdgcn/lib/OVERRIDES_5.0 libclc/trunk/amdgcn/lib/OVERRIDES_6.0 libclc/trunk/amdgcn/lib/SOURCES_3.9 libclc/trunk/amdgcn/lib/SOURCES_4.0 libclc/trunk/amdgcn/lib/SOURCES_5.0 libclc/trunk/amdgcn/lib/SOURCES_6.0 libclc/trunk/amdgcn/lib/cl_khr_int64_extended_atomics/minmax_helpers.39.ll Modified: libclc/trunk/amdgcn/lib/cl_khr_int64_extended_atomics/minmax_helpers.ll Removed: libclc/trunk/amdgcn/lib/OVERRIDES URL: http://llvm.org/viewvc/llvm-project/libclc/trunk/amdgcn/lib/OVERRIDES?rev=347664&view=auto == (empty) Removed: libclc/trunk/amdgcn/lib/OVERRIDES_3.9 URL: http://llvm.org/viewvc/llvm-project/libclc/trunk/amdgcn/lib/OVERRIDES_3.9?rev=347664&view=auto == --- libclc/trunk/amdgcn/lib/OVERRIDES_3.9 (original) +++ libclc/trunk/amdgcn/lib/OVERRIDES_3.9 (removed) @@ -1 +0,0 @@ -cl_khr_int64_extended_atomics/minmax_helpers.ll Removed: libclc/trunk/amdgcn/lib/OVERRIDES_4.0 URL: http://llvm.org/viewvc/llvm-project/libclc/trunk/amdgcn/lib/OVERRIDES_4.0?rev=347664&view=auto == --- libclc/trunk/amdgcn/lib/OVERRIDES_4.0 (original) +++ libclc/trunk/amdgcn/lib/OVERRIDES_4.0 (removed) @@ -1 +0,0 @@ -cl_khr_int64_extended_atomics/minmax_helpers.ll Removed: libclc/trunk/amdgcn/lib/OVERRIDES_5.0 URL: http://llvm.org/viewvc/llvm-project/libclc/trunk/amdgcn/lib/OVERRIDES_5.0?rev=347664&view=auto == --- libclc/trunk/amdgcn/lib/OVERRIDES_5.0 (original) +++ libclc/trunk/amdgcn/lib/OVERRIDES_5.0 (removed) @@ -1 +0,0 @@ -cl_khr_int64_extended_atomics/minmax_helpers.ll Removed: libclc/trunk/amdgcn/lib/OVERRIDES_6.0 URL: http://llvm.org/viewvc/llvm-project/libclc/trunk/amdgcn/lib/OVERRIDES_6.0?rev=347664&view=auto == --- libclc/trunk/amdgcn/lib/OVERRIDES_6.0 (original) +++ libclc/trunk/amdgcn/lib/OVERRIDES_6.0 (removed) @@ -1 +0,0 @@ -cl_khr_int64_extended_atomics/minmax_helpers.ll Removed: libclc/trunk/amdgcn/lib/SOURCES_3.9 URL: http://llvm.org/viewvc/llvm-project/libclc/trunk/amdgcn/lib/SOURCES_3.9?rev=347664&view=auto == --- libclc/trunk/amdgcn/lib/SOURCES_3.9 (original) +++ libclc/trunk/amdgcn/lib/SOURCES_3.9 (removed) @@ -1 +0,0 @@ -cl_khr_int64_extended_atomics/minmax_helpers.39.ll Removed: libclc/trunk/amdgcn/lib/SOURCES_4.0 URL: http://llvm.org/viewvc/llvm-project/libclc/trunk/amdgcn/lib/SOURCES_4.0?rev=347664&view=auto == --- libclc/trunk/amdgcn/lib/SOURCES_4.0 (original) +++ libclc/trunk/amdgcn/lib/SOURCES_4.0 (removed) @@ -1 +0,0 @@ -cl_khr_int64_extended_atomics/minmax_helpers.39.ll Removed: libclc/trunk/amdgcn/lib/SOURCES_5.0 URL: http://llvm.org/viewvc/llvm-project/libclc/trunk/amdgcn/lib/SOURCES_5.0?rev=347664&view=auto == --- libclc/trunk/amdgcn/lib/SOURCES_5.0 (original) +++ libclc/trunk/amdgcn/lib/SOURCES_5.0 (removed) @@ -1 +0,0 @@ -cl_khr_int64_extended_atomics/minmax_helpers.39.ll Removed: libclc/trunk/amdgcn/lib/SOURCES_6.0 URL: http://llvm.org/viewvc/llvm-project/libclc/trunk/amdgcn/lib/SOURCES_6.0?rev=347664&view=auto == --- libclc/trunk/amdgcn/lib/SOURCES_6.0 (original) +++ libclc/trunk/amdgcn/lib/SOURCES_6.0 (removed) @@ -1 +0,0 @@ -cl_khr_int64_extended_atomics/minmax_helpers.39.ll Removed: libclc/trunk/amdgcn/lib/cl_khr_int64_extended_atomics/minmax_helpers.39.ll URL: http://llvm.org/viewvc/llvm-project/libclc/trunk/amdgcn/lib/cl_khr_int64_extended_atomics/minmax_helpers.39.ll?rev=347664&view=auto == --- libclc/trunk/amdgcn/lib/cl_khr_int64_extended_atomics/minmax_helpers.39.ll (original) +++ libclc/trunk/amdgcn/lib/cl_khr_int64_extended_atomics/minmax_helpers.39.ll (removed) @@ -1,49 +0,0 @@ -target datalayout = "e-p:32:32-p1:64:64-p2:64:64-p3:32:32-p4:64:64-p5:32:32-i64:64-v16:16-v24:32-v32:32-v48:64-v96:128-v192:256-v256:256-v512:512-v1024:1024-v2048:2048-n32:64" - -define i64 @__clc__sync_fetch_and_min_global_8(i64 addrspace(1)* nocapture %ptr, i64 %value) nounwind alwaysinline { -entry: - %0 = atomicrmw vo
[libclc] r347664 - configure: Add target specific asm rule.
Author: jvesely Date: Tue Nov 27 08:01:10 2018 New Revision: 347664 URL: http://llvm.org/viewvc/llvm-project?rev=347664&view=rev Log: configure: Add target specific asm rule. Run the file through target specific preprocessing stage. Signed-off-by: Jan Vesely Reviewer: Aaron Watry Modified: libclc/trunk/configure.py Modified: libclc/trunk/configure.py URL: http://llvm.org/viewvc/llvm-project/libclc/trunk/configure.py?rev=347664&r1=347663&r2=347664&view=diff == --- libclc/trunk/configure.py (original) +++ libclc/trunk/configure.py Tue Nov 27 08:01:10 2018 @@ -213,6 +213,8 @@ for target in targets: clang_bc_flags += ' -mcpu=' + device['gpu'] clang_bc_rule = "CLANG_CL_BC_" + target + "_" + device['gpu'] c_compiler_rule(b, clang_bc_rule, "LLVM-CC", llvm_clang, clang_bc_flags) +as_bc_rule = "LLVM_AS_BC_" + target + "_" + device['gpu'] +b.rule(as_bc_rule, "%s -E -P %s -x cl $in -o - | %s -o $out" % (llvm_clang, clang_bc_flags, llvm_as), 'LLVM-AS $out') objects = [] sources_seen = set() @@ -265,7 +267,7 @@ for target in targets: src_file = os.path.join(src_path, src) ext = os.path.splitext(src)[1] if ext == '.ll': -b.build(obj, 'LLVM_AS', src_file) +b.build(obj, as_bc_rule, src_file) else: b.build(obj, clang_bc_rule, src_file) ___ cfe-commits mailing list cfe-commits@lists.llvm.org http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
[libclc] r347663 - configure: provide llvm_as helper variable
Author: jvesely Date: Tue Nov 27 08:01:01 2018 New Revision: 347663 URL: http://llvm.org/viewvc/llvm-project?rev=347663&view=rev Log: configure: provide llvm_as helper variable Signed-off-by: Jan Vesely Reviewer: Aaron Watry Modified: libclc/trunk/configure.py Modified: libclc/trunk/configure.py URL: http://llvm.org/viewvc/llvm-project/libclc/trunk/configure.py?rev=347663&r1=347662&r2=347663&view=diff == --- libclc/trunk/configure.py (original) +++ libclc/trunk/configure.py Tue Nov 27 08:01:01 2018 @@ -86,6 +86,7 @@ llvm_cxxflags = llvm_config(['--cxxflags llvm_libdir = llvm_config(['--libdir']) llvm_clang = os.path.join(llvm_bindir, 'clang') +llvm_as = os.path.join(llvm_bindir, 'llvm-as') llvm_link = os.path.join(llvm_bindir, 'llvm-link') llvm_opt = os.path.join(llvm_bindir, 'opt') @@ -133,8 +134,7 @@ if not targets: b = metabuild.from_name(options.g) -b.rule("LLVM_AS", "%s -o $out $in" % os.path.join(llvm_bindir, "llvm-as"), - 'LLVM-AS $out') +b.rule("LLVM_AS", "%s -o $out $in" % llvm_as, 'LLVM-AS $out') b.rule("LLVM_LINK", command = llvm_link + " -o $out $in", description = 'LLVM-LINK $out') b.rule("OPT", command = llvm_opt + " -O3 -o $out $in", ___ cfe-commits mailing list cfe-commits@lists.llvm.org http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
[libclc] r347666 - r600: Remove empty OVERRIDES file
Author: jvesely Date: Tue Nov 27 08:01:16 2018 New Revision: 347666 URL: http://llvm.org/viewvc/llvm-project?rev=347666&view=rev Log: r600: Remove empty OVERRIDES file Signed-off-by: Jan Vesely Reviewer: Aaron Watry Removed: libclc/trunk/r600/lib/OVERRIDES Removed: libclc/trunk/r600/lib/OVERRIDES URL: http://llvm.org/viewvc/llvm-project/libclc/trunk/r600/lib/OVERRIDES?rev=347665&view=auto == (empty) ___ cfe-commits mailing list cfe-commits@lists.llvm.org http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
[libclc] r347667 - Add cmake build system
Author: jvesely Date: Tue Nov 27 08:07:19 2018 New Revision: 347667 URL: http://llvm.org/viewvc/llvm-project?rev=347667&view=rev Log: Add cmake build system Add cmake support for CLC and ll asm language, the latter includes clang preprocessing stage. Add ctests to check for external function calls. v2: fix typos, style Signed-off-by: Jan Vesely Acked-by: Aaron Watry Tested-by: Aaron Watry Acked-by: Vedran Miletić Added: libclc/trunk/CMakeLists.txt libclc/trunk/cmake/ libclc/trunk/cmake/CMakeCLCCompiler.cmake.in libclc/trunk/cmake/CMakeCLCInformation.cmake libclc/trunk/cmake/CMakeDetermineCLCCompiler.cmake libclc/trunk/cmake/CMakeDetermineLLAsmCompiler.cmake libclc/trunk/cmake/CMakeLLAsmCompiler.cmake.in libclc/trunk/cmake/CMakeLLAsmInformation.cmake libclc/trunk/cmake/CMakeTestCLCCompiler.cmake libclc/trunk/cmake/CMakeTestLLAsmCompiler.cmake libclc/trunk/libclc.pc.in Added: libclc/trunk/CMakeLists.txt URL: http://llvm.org/viewvc/llvm-project/libclc/trunk/CMakeLists.txt?rev=347667&view=auto == --- libclc/trunk/CMakeLists.txt (added) +++ libclc/trunk/CMakeLists.txt Tue Nov 27 08:07:19 2018 @@ -0,0 +1,298 @@ +cmake_minimum_required( VERSION 3.9.2 ) + +project( libclc VERSION 0.2.0 LANGUAGES CXX ) + +# List of all targets +set( LIBCLC_TARGETS_ALL + amdgcn-- + amdgcn--amdhsa + r600-- + nvptx-- + nvptx64-- + nvptx--nvidiacl + nvptx64--nvidiacl +) + +set( LIBCLC_MIN_LLVM "3.9.0" ) + +set( LIBCLC_TARGETS_TO_BUILD "all" +CACHE STRING "Semicolon-separated list of targets to build, or 'all'." ) + +option( ENABLE_RUNTIME_SUBNORMAL "Enable runtime linking of subnormal support." +OFF ) + +if( NOT LLVM_CONFIG ) + find_program( LLVM_CONFIG llvm-config ) +endif() +execute_process( COMMAND ${LLVM_CONFIG} "--version" +OUTPUT_VARIABLE LLVM_VERSION +OUTPUT_STRIP_TRAILING_WHITESPACE ) +message( "LLVM version: ${LLVM_VERSION}" ) + +if( ${LLVM_VERSION} VERSION_LESS ${LIBCLC_MIN_LLVM} ) + message( FATAL_ERROR "libclc needs at least LLVM ${LIBCLC_MIN_LLVM}" ) +endif() + +# mesa3d environment is only available since LLVM 4.0 +if( ${LLVM_VERSION} VERSION_GREATER "3.9.0" ) + set( LIBCLC_TARGETS_ALL ${LIBCLC_TARGETS_ALL} amdgcn-mesa-mesa3d ) +endif() + +if( LIBCLC_TARGETS_TO_BUILD STREQUAL "all" ) + set( LIBCLC_TARGETS_TO_BUILD ${LIBCLC_TARGETS_ALL} ) +endif() + +list( SORT LIBCLC_TARGETS_TO_BUILD ) + +execute_process( COMMAND ${LLVM_CONFIG} "--system-libs" + OUTPUT_VARIABLE LLVM_SYSTEM_LIBS + OUTPUT_STRIP_TRAILING_WHITESPACE ) +execute_process( COMMAND ${LLVM_CONFIG} "--libs" "core" "bitreader" "bitwriter" + OUTPUT_VARIABLE LLVM_LIBS + OUTPUT_STRIP_TRAILING_WHITESPACE ) +execute_process( COMMAND ${LLVM_CONFIG} "--libdir" + OUTPUT_VARIABLE LLVM_LIBDIR + OUTPUT_STRIP_TRAILING_WHITESPACE ) +execute_process( COMMAND ${LLVM_CONFIG} "--ldflags" + OUTPUT_VARIABLE LLVM_LD_FLAGS + OUTPUT_STRIP_TRAILING_WHITESPACE ) +execute_process( COMMAND ${LLVM_CONFIG} "--cxxflags" + OUTPUT_VARIABLE LLVM_CXX_FLAGS + OUTPUT_STRIP_TRAILING_WHITESPACE ) +separate_arguments( LLVM_CXX_FLAGS ) +execute_process( COMMAND ${LLVM_CONFIG} "--bindir" + OUTPUT_VARIABLE LLVM_BINDIR + OUTPUT_STRIP_TRAILING_WHITESPACE ) + +# These were not properly reported in early LLVM and we don't need them +set( LLVM_CXX_FLAGS ${LLVM_CXX_FLAGS} -fno-rtti -fno-exceptions ) + +# Print LLVM variables +message( "LLVM system libs: ${LLVM_SYSTEM_LIBS}" ) +message( "LLVM libs: ${LLVM_LIBS}" ) +message( "LLVM libdir: ${LLVM_LIBDIR}" ) +message( "LLVM bindir: ${LLVM_BINDIR}" ) +message( "LLVM ld flags: ${LLVM_LD_FLAGS}" ) +message( "LLVM cxx flags: ${LLVM_CXX_FLAGS}" ) +message( "" ) + +find_program( LLVM_CLANG clang PATHS ${LLVM_BINDIR} NO_DEFAULT_PATH ) +find_program( LLVM_AS llvm-as PATHS ${LLVM_BINDIR} NO_DEFAULT_PATH ) +find_program( LLVM_LINK llvm-link PATHS ${LLVM_BINDIR} NO_DEFAULT_PATH ) +find_program( LLVM_OPT opt PATHS ${LLVM_BINDIR} NO_DEFAULT_PATH ) + +# Print toolchain +message( "clang: ${LLVM_CLANG}" ) +message( "llvm-as: ${LLVM_AS}" ) +message( "llvm-link: ${LLVM_LINK}" ) +message( "opt: ${LLVM_OPT}" ) +message( "" ) +if( NOT LLVM_CLANG OR NOT LLVM_OPT OR NOT LLVM_AS OR NOT LLVM_LINK ) + message( FATAL_ERROR "toolchain incomplete!" ) +endif() + +set( CMAKE_MODULE_PATH ${CMAKE_SOURCE_DIR}/cmake ) +set( CMAKE_CLC_COMPILER ${LLVM_CLANG} ) +set( CMAKE_CLC_ARCHIVE ${LLVM_LINK} ) +set( CMAKE_LLAsm_PREPROCESSOR ${LLVM_CLANG} ) +set( CMAKE_LLAsm_COMPILER ${LLVM_AS} ) +set( CMAKE_LLAsm_ARCHIVE ${LLVM_LINK} ) +enable_language( CLC LLAsm ) + +# Construct LLVM version define +string( REPLACE "." ";" LLVM_VERSION_LIST ${LLVM_VERSION} ) +list( GET LLVM_VERSION_LIST 0 LLVM_MAJOR ) +list( GET LLVM_VERSION_LIST 1 LLVM_MINOR ) +set( LLVM_VERSION_DEFINE "-DHAVE_LLVM=0x${LLVM_MAJOR}0${LLVM_MINOR}" ) + +# This needs to be set be