[libclc] r332324 - rootn: Use denormal path only

2018-05-14 Thread Jan Vesely via cfe-commits
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

2018-05-17 Thread Jan Vesely via cfe-commits
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

2017-09-25 Thread Jan Vesely via cfe-commits
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

2017-09-25 Thread Jan Vesely via cfe-commits
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

2017-09-26 Thread Jan Vesely via cfe-commits
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

2017-09-29 Thread Jan Vesely via cfe-commits
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

2017-09-29 Thread Jan Vesely via cfe-commits
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

2017-09-29 Thread Jan Vesely via cfe-commits
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

2017-09-29 Thread Jan Vesely via cfe-commits
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

2017-09-29 Thread Jan Vesely via cfe-commits
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

2017-09-29 Thread Jan Vesely via cfe-commits
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

2017-10-02 Thread Jan Vesely via cfe-commits
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

2017-10-02 Thread Jan Vesely via cfe-commits
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

2017-10-02 Thread Jan Vesely via cfe-commits
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

2017-10-05 Thread Jan Vesely via cfe-commits
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

2017-10-07 Thread Jan Vesely via cfe-commits
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

2017-10-08 Thread Jan Vesely via cfe-commits
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

2017-10-08 Thread Jan Vesely via cfe-commits
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

2017-10-08 Thread Jan Vesely via cfe-commits
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

2017-10-08 Thread Jan Vesely via cfe-commits
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

2017-10-08 Thread Jan Vesely via cfe-commits
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.

2017-10-08 Thread Jan Vesely via cfe-commits
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

2017-10-10 Thread Jan Vesely via cfe-commits
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

2017-10-10 Thread Jan Vesely via cfe-commits
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}

2017-10-10 Thread Jan Vesely via cfe-commits
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

2017-10-19 Thread Jan Vesely via cfe-commits
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

2017-10-20 Thread Jan Vesely via cfe-commits
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

2017-10-20 Thread Jan Vesely via cfe-commits
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)

2017-10-22 Thread Jan Vesely via cfe-commits
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)

2017-10-22 Thread Jan Vesely via cfe-commits
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

2017-10-25 Thread Jan Vesely via cfe-commits
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

2017-10-25 Thread Jan Vesely via cfe-commits
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.

2018-08-03 Thread Jan Vesely via cfe-commits
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

2018-02-06 Thread Jan Vesely via cfe-commits
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

2018-02-06 Thread Jan Vesely via cfe-commits
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

2018-02-06 Thread Jan Vesely via cfe-commits
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

2018-02-06 Thread Jan Vesely via cfe-commits
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

2018-02-06 Thread Jan Vesely via cfe-commits
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

2018-02-06 Thread Jan Vesely via cfe-commits
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

2018-02-06 Thread Jan Vesely via cfe-commits
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

2018-02-13 Thread Jan Vesely via cfe-commits
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

2018-02-13 Thread Jan Vesely via cfe-commits
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

2018-02-13 Thread Jan Vesely via cfe-commits
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

2018-02-13 Thread Jan Vesely via cfe-commits
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

2018-02-13 Thread Jan Vesely via cfe-commits
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

2018-02-13 Thread Jan Vesely via cfe-commits
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

2018-02-13 Thread Jan Vesely via cfe-commits
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

2018-02-13 Thread Jan Vesely via cfe-commits
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

2018-02-13 Thread Jan Vesely via cfe-commits
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

2018-02-15 Thread Jan Vesely via cfe-commits
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

2018-02-22 Thread Jan Vesely via cfe-commits
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

2018-02-22 Thread Jan Vesely via cfe-commits
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

2018-02-22 Thread Jan Vesely via cfe-commits
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

2018-02-22 Thread Jan Vesely via cfe-commits
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

2018-02-22 Thread Jan Vesely via cfe-commits
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

2017-06-02 Thread Jan Vesely via cfe-commits
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

2018-03-06 Thread Jan Vesely via cfe-commits
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

2018-03-06 Thread Jan Vesely via cfe-commits
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

2018-03-06 Thread Jan Vesely via cfe-commits
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

2018-03-06 Thread Jan Vesely via cfe-commits
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

2018-03-06 Thread Jan Vesely via cfe-commits
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

2018-03-06 Thread Jan Vesely via cfe-commits
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

2018-03-08 Thread Jan Vesely via cfe-commits
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

2018-03-08 Thread Jan Vesely via cfe-commits
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

2018-03-08 Thread Jan Vesely via cfe-commits
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

2018-03-08 Thread Jan Vesely via cfe-commits
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

2018-03-08 Thread Jan Vesely via cfe-commits
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

2018-03-12 Thread Jan Vesely via cfe-commits
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

2018-03-12 Thread Jan Vesely via cfe-commits
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

2018-03-18 Thread Jan Vesely via cfe-commits
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

2018-06-07 Thread Jan Vesely via cfe-commits
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.

2018-06-07 Thread Jan Vesely via cfe-commits
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.

2018-06-07 Thread Jan Vesely via cfe-commits
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

2018-06-21 Thread Jan Vesely via cfe-commits
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

2018-06-21 Thread Jan Vesely via cfe-commits
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

2018-06-21 Thread Jan Vesely via cfe-commits
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}

2018-06-21 Thread Jan Vesely via cfe-commits
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

2018-06-21 Thread Jan Vesely via cfe-commits
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

2018-06-21 Thread Jan Vesely via cfe-commits
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

2018-06-21 Thread Jan Vesely via cfe-commits
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.

2018-11-01 Thread Jan Vesely via cfe-commits
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.

2018-11-01 Thread Jan Vesely via cfe-commits
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

2018-11-03 Thread Jan Vesely via cfe-commits
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

2018-11-03 Thread Jan Vesely via cfe-commits
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

2018-11-03 Thread Jan Vesely via cfe-commits
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

2018-11-03 Thread Jan Vesely via cfe-commits
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

2018-11-03 Thread Jan Vesely via cfe-commits
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

2018-11-03 Thread Jan Vesely via cfe-commits
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

2018-11-03 Thread Jan Vesely via cfe-commits
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

2018-11-03 Thread Jan Vesely via cfe-commits
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

2018-11-03 Thread Jan Vesely via cfe-commits
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

2018-11-03 Thread Jan Vesely via cfe-commits
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

2018-11-03 Thread Jan Vesely via cfe-commits
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

2018-11-03 Thread Jan Vesely via cfe-commits
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

2018-11-10 Thread Jan Vesely via cfe-commits
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

2018-11-27 Thread Jan Vesely via cfe-commits
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.

2018-11-27 Thread Jan Vesely via cfe-commits
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

2018-11-27 Thread Jan Vesely via cfe-commits
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

2018-11-27 Thread Jan Vesely via cfe-commits
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

2018-11-27 Thread Jan Vesely via cfe-commits
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

  1   2   3   4   >