Hello community,
here is the log from the commit of package libclc for openSUSE:Factory checked in at 2016-07-16 22:11:47
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/libclc (Old)
and /work/SRC/openSUSE:Factory/.libclc.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "libclc"
Changes:
--------
--- /work/SRC/openSUSE:Factory/libclc/libclc.changes 2015-12-27 01:57:39.000000000 +0100
+++ /work/SRC/openSUSE:Factory/.libclc.new/libclc.changes 2016-07-16 22:11:49.000000000 +0200
@@ -1,0 +2,15 @@
+Sun Jul 03 08:32:55 UTC 2016 - mpluskal@suse.com
+
+- Update to version 0.2.0+git.20160209:
+ * integer: remove explicit casts from _MIN definitions
+ * AMDGPU: Add alias for tonga
+ * AMDGPU: Add aliases for all VI targets
+ * Add _CLC_V_V_VP_VECTORIZE macro
+ * Implement modf math builtin
+ * math: Add frexp ported from amd-builtins
+ * math: Fix log2 vectorization on non-fp64 hw
+ * configure: Introduce per device defines
+ * configure: Remove cl_khr_fp64 for device that don't support doubles
+ * configure: Remove llvm 3.6 defines
+
+-------------------------------------------------------------------
Old:
----
libclc-0.2.0+git20151006.6d78407.tar.xz
New:
----
_servicedata
libclc-0.2.0+git.20160209.tar.xz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ libclc.spec ++++++
--- /var/tmp/diff_new_pack.d9aKtb/_old 2016-07-16 22:11:50.000000000 +0200
+++ /var/tmp/diff_new_pack.d9aKtb/_new 2016-07-16 22:11:50.000000000 +0200
@@ -1,7 +1,7 @@
#
# spec file for package libclc
#
-# Copyright (c) 2015 SUSE LINUX GmbH, Nuernberg, Germany.
+# Copyright (c) 2016 SUSE LINUX GmbH, Nuernberg, Germany.
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
@@ -17,7 +17,7 @@
Name: libclc
-Version: 0.2.0+git20151006.6d78407
+Version: 0.2.0+git.20160209
Release: 0
Summary: OpenCL C programming language library
License: BSD-3-Clause or MIT
@@ -27,11 +27,10 @@
Source1: %{name}-rpmlintrc
BuildRequires: gcc
BuildRequires: libstdc++-devel
-BuildRequires: libtool
BuildRequires: llvm-clang-devel
BuildRequires: llvm-devel >= 3.7
BuildRequires: ncurses-devel
-BuildRequires: pkg-config
+BuildRequires: pkgconfig
BuildRequires: python
BuildRequires: zlib-devel
BuildRoot: %{_tmppath}/%{name}-%{version}-build
@@ -55,11 +54,10 @@
--enable-runtime-subnormal \
--pkgconfigdir=%{_libdir}/pkgconfig/ \
--libexecdir=%{_libdir}/clc/
-
make %{?_smp_mflags} VERBOSE=1
%install
-make DESTDIR=%{buildroot} install %{?_smp_mflags}
+%make_install
%files
%defattr(-,root,root)
++++++ _service ++++++
--- /var/tmp/diff_new_pack.d9aKtb/_old 2016-07-16 22:11:50.000000000 +0200
+++ /var/tmp/diff_new_pack.d9aKtb/_new 2016-07-16 22:11:50.000000000 +0200
@@ -3,8 +3,9 @@
<param name="scm">git</param>
<param name="url">https://github.com/llvm-mirror/libclc.git</param>
<param name="submodules">enable</param>
- <param name="versionformat">0.2.0+git%cd.%h</param>
- <param name="revision">6d784075bc56815b0fc493690572c893979abbdd</param>
+ <param name="changesgenerate">enable</param>
+ <param name="revision">b518692b52a0bbdf9cf0e2167b9629dd9501abcd</param>
+ <param name="versionformat">0.2.0+git.%cd</param>
</service>
<service name="recompress" mode="disabled">
<param name="compression">xz</param>
++++++ _servicedata ++++++
<servicedata>
<service name="tar_scm">
<param name="url">https://github.com/llvm-mirror/libclc.git</param>
<param name="changesrevision">b518692b52a0bbdf9cf0e2167b9629dd9501abcd</param>
</service>
</servicedata>
++++++ libclc-0.2.0+git20151006.6d78407.tar.xz -> libclc-0.2.0+git.20160209.tar.xz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libclc-0.2.0+git20151006.6d78407/configure.py new/libclc-0.2.0+git.20160209/configure.py
--- old/libclc-0.2.0+git20151006.6d78407/configure.py 2015-12-01 06:52:51.000000000 +0100
+++ new/libclc-0.2.0+git.20160209/configure.py 2016-07-03 10:32:55.000000000 +0200
@@ -91,16 +91,25 @@
available_targets = {
'r600--' : { 'devices' :
- [{'gpu' : 'cedar', 'aliases' : ['palm', 'sumo', 'sumo2', 'redwood', 'juniper']},
- {'gpu' : 'cypress', 'aliases' : ['hemlock']},
- {'gpu' : 'barts', 'aliases' : ['turks', 'caicos']},
- {'gpu' : 'cayman', 'aliases' : ['aruba']}]},
+ [{'gpu' : 'cedar', 'aliases' : ['palm', 'sumo', 'sumo2', 'redwood', 'juniper'],
+ 'defines' : {}},
+ {'gpu' : 'cypress', 'aliases' : ['hemlock'],
+ 'defines' : {}},
+ {'gpu' : 'barts', 'aliases' : ['turks', 'caicos'],
+ 'defines' : {}},
+ {'gpu' : 'cayman', 'aliases' : ['aruba'],
+ 'defines' : {}} ]},
'amdgcn--': { 'devices' :
- [{'gpu' : 'tahiti', 'aliases' : ['pitcairn', 'verde', 'oland', 'hainan', 'bonaire', 'kabini', 'kaveri', 'hawaii','mullins']}]},
- 'nvptx--' : { 'devices' : [{'gpu' : '', 'aliases' : []}]},
- 'nvptx64--' : { 'devices' : [{'gpu' : '', 'aliases' : []}] },
- 'nvptx--nvidiacl' : { 'devices' : [{'gpu' : '', 'aliases' : []}] },
- 'nvptx64--nvidiacl' : { 'devices' : [{'gpu' : '', 'aliases' : []}] }
+ [{'gpu' : 'tahiti', 'aliases' : ['pitcairn', 'verde', 'oland', 'hainan', 'bonaire', 'kabini', 'kaveri', 'hawaii','mullins','tonga','carrizo','iceland','fiji','stoney'],
+ 'defines' : {}} ]},
+ 'nvptx--' : { 'devices' : [{'gpu' : '', 'aliases' : [],
+ 'defines' : {'all' : ['cl_khr_fp64']}}]},
+ 'nvptx64--' : { 'devices' : [{'gpu' : '', 'aliases' : [],
+ 'defines' : {'all' : ['cl_khr_fp64']}}]},
+ 'nvptx--nvidiacl' : { 'devices' : [{'gpu' : '', 'aliases' : [],
+ 'defines' : {'all' : ['cl_khr_fp64']}}]},
+ 'nvptx64--nvidiacl' : { 'devices' : [{'gpu' : '', 'aliases' : [],
+ 'defines' : {'all' : ['cl_khr_fp64']}}]},
}
default_targets = ['nvptx--nvidiacl', 'nvptx64--nvidiacl', 'r600--', 'amdgcn--']
@@ -178,13 +187,17 @@
for device in available_targets[target]['devices']:
# The rule for building a .bc file for the specified architecture using clang.
+ device_def_list = (device['defines']['all'] if 'all' in device['defines'] else []);
+ if llvm_string_version in device['defines']:
+ device_def_list += (device['defines'][llvm_string_version]);
+ device_defines = ' '.join(["-D%s" % define for define in device_def_list])
clang_bc_flags = "-target %s -I`dirname $in` %s " \
"-fno-builtin " \
"-Dcl_clang_storage_class_specifiers " \
- "-Dcl_khr_fp64 " \
+ "%s " \
"-Dcles_khr_int64 " \
"-D__CLC_INTERNAL " \
- "-emit-llvm" % (target, clang_cl_includes)
+ "-emit-llvm" % (target, clang_cl_includes, device_defines)
if device['gpu'] != '':
clang_bc_flags += ' -mcpu=' + device['gpu']
clang_bc_rule = "CLANG_CL_BC_" + target + "_" + device['gpu']
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libclc-0.2.0+git20151006.6d78407/generic/include/clc/clc.h new/libclc-0.2.0+git.20160209/generic/include/clc/clc.h
--- old/libclc-0.2.0+git20151006.6d78407/generic/include/clc/clc.h 2015-12-01 06:52:51.000000000 +0100
+++ new/libclc-0.2.0+git.20160209/generic/include/clc/clc.h 2016-07-03 10:32:55.000000000 +0200
@@ -58,6 +58,7 @@
#include
#include
#include
+#include
#include
#include
#include
@@ -67,6 +68,7 @@
#include
#include
#include
+#include
#include
#include
#include
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libclc-0.2.0+git20151006.6d78407/generic/include/clc/math/frexp.h new/libclc-0.2.0+git.20160209/generic/include/clc/math/frexp.h
--- old/libclc-0.2.0+git20151006.6d78407/generic/include/clc/math/frexp.h 1970-01-01 01:00:00.000000000 +0100
+++ new/libclc-0.2.0+git.20160209/generic/include/clc/math/frexp.h 2016-07-03 10:32:55.000000000 +0200
@@ -0,0 +1,2 @@
+#define __CLC_BODY
+#include
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libclc-0.2.0+git20151006.6d78407/generic/include/clc/math/frexp.inc new/libclc-0.2.0+git.20160209/generic/include/clc/math/frexp.inc
--- old/libclc-0.2.0+git20151006.6d78407/generic/include/clc/math/frexp.inc 1970-01-01 01:00:00.000000000 +0100
+++ new/libclc-0.2.0+git.20160209/generic/include/clc/math/frexp.inc 2016-07-03 10:32:55.000000000 +0200
@@ -0,0 +1,3 @@
+_CLC_OVERLOAD _CLC_DECL __CLC_GENTYPE frexp(__CLC_GENTYPE x, global __CLC_INTN *iptr);
+_CLC_OVERLOAD _CLC_DECL __CLC_GENTYPE frexp(__CLC_GENTYPE x, local __CLC_INTN *iptr);
+_CLC_OVERLOAD _CLC_DECL __CLC_GENTYPE frexp(__CLC_GENTYPE x, private __CLC_INTN *iptr);
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libclc-0.2.0+git20151006.6d78407/generic/include/clc/math/gentype.inc new/libclc-0.2.0+git.20160209/generic/include/clc/math/gentype.inc
--- old/libclc-0.2.0+git20151006.6d78407/generic/include/clc/math/gentype.inc 2015-12-01 06:52:51.000000000 +0100
+++ new/libclc-0.2.0+git.20160209/generic/include/clc/math/gentype.inc 2016-07-03 10:32:55.000000000 +0200
@@ -2,38 +2,50 @@
#define __CLC_FPSIZE 32
#define __CLC_GENTYPE float
+#define __CLC_INTN int
#define __CLC_SCALAR
#include __CLC_BODY
#undef __CLC_GENTYPE
+#undef __CLC_INTN
#undef __CLC_SCALAR
#define __CLC_GENTYPE float2
#define __CLC_INTN int2
+#define __CLC_VECSIZE 2
#include __CLC_BODY
+#undef __CLC_VECSIZE
#undef __CLC_GENTYPE
#undef __CLC_INTN
#define __CLC_GENTYPE float3
#define __CLC_INTN int3
+#define __CLC_VECSIZE 3
#include __CLC_BODY
+#undef __CLC_VECSIZE
#undef __CLC_GENTYPE
#undef __CLC_INTN
#define __CLC_GENTYPE float4
#define __CLC_INTN int4
+#define __CLC_VECSIZE 4
#include __CLC_BODY
+#undef __CLC_VECSIZE
#undef __CLC_GENTYPE
#undef __CLC_INTN
#define __CLC_GENTYPE float8
#define __CLC_INTN int8
+#define __CLC_VECSIZE 8
#include __CLC_BODY
+#undef __CLC_VECSIZE
#undef __CLC_GENTYPE
#undef __CLC_INTN
#define __CLC_GENTYPE float16
#define __CLC_INTN int16
+#define __CLC_VECSIZE 16
#include __CLC_BODY
+#undef __CLC_VECSIZE
#undef __CLC_GENTYPE
#undef __CLC_INTN
@@ -47,37 +59,49 @@
#define __CLC_SCALAR
#define __CLC_GENTYPE double
+#define __CLC_INTN int
#include __CLC_BODY
#undef __CLC_GENTYPE
+#undef __CLC_INTN
#undef __CLC_SCALAR
#define __CLC_GENTYPE double2
#define __CLC_INTN int2
+#define __CLC_VECSIZE 2
#include __CLC_BODY
+#undef __CLC_VECSIZE
#undef __CLC_GENTYPE
#undef __CLC_INTN
#define __CLC_GENTYPE double3
#define __CLC_INTN int3
+#define __CLC_VECSIZE 3
#include __CLC_BODY
+#undef __CLC_VECSIZE
#undef __CLC_GENTYPE
#undef __CLC_INTN
#define __CLC_GENTYPE double4
#define __CLC_INTN int4
+#define __CLC_VECSIZE 4
#include __CLC_BODY
+#undef __CLC_VECSIZE
#undef __CLC_GENTYPE
#undef __CLC_INTN
#define __CLC_GENTYPE double8
#define __CLC_INTN int8
+#define __CLC_VECSIZE 8
#include __CLC_BODY
+#undef __CLC_VECSIZE
#undef __CLC_GENTYPE
#undef __CLC_INTN
#define __CLC_GENTYPE double16
#define __CLC_INTN int16
+#define __CLC_VECSIZE 16
#include __CLC_BODY
+#undef __CLC_VECSIZE
#undef __CLC_GENTYPE
#undef __CLC_INTN
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libclc-0.2.0+git20151006.6d78407/generic/include/clc/math/modf.h new/libclc-0.2.0+git.20160209/generic/include/clc/math/modf.h
--- old/libclc-0.2.0+git20151006.6d78407/generic/include/clc/math/modf.h 1970-01-01 01:00:00.000000000 +0100
+++ new/libclc-0.2.0+git.20160209/generic/include/clc/math/modf.h 2016-07-03 10:32:55.000000000 +0200
@@ -0,0 +1,24 @@
+/*
+ * 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.
+ */
+
+#define __CLC_BODY
+#include
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libclc-0.2.0+git20151006.6d78407/generic/include/clc/math/modf.inc new/libclc-0.2.0+git.20160209/generic/include/clc/math/modf.inc
--- old/libclc-0.2.0+git20151006.6d78407/generic/include/clc/math/modf.inc 1970-01-01 01:00:00.000000000 +0100
+++ new/libclc-0.2.0+git.20160209/generic/include/clc/math/modf.inc 2016-07-03 10:32:55.000000000 +0200
@@ -0,0 +1,25 @@
+/*
+ * Copyright (c) 2014, 2015 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.
+ */
+
+_CLC_OVERLOAD _CLC_DECL __CLC_GENTYPE modf(__CLC_GENTYPE x, global __CLC_GENTYPE *iptr);
+_CLC_OVERLOAD _CLC_DECL __CLC_GENTYPE modf(__CLC_GENTYPE x, local __CLC_GENTYPE *iptr);
+_CLC_OVERLOAD _CLC_DECL __CLC_GENTYPE modf(__CLC_GENTYPE x, private __CLC_GENTYPE *iptr);
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libclc-0.2.0+git20151006.6d78407/generic/lib/SOURCES new/libclc-0.2.0+git.20160209/generic/lib/SOURCES
--- old/libclc-0.2.0+git20151006.6d78407/generic/lib/SOURCES 2015-12-01 06:52:51.000000000 +0100
+++ new/libclc-0.2.0+git.20160209/generic/lib/SOURCES 2016-07-03 10:32:55.000000000 +0200
@@ -86,6 +86,7 @@
math/fmin.cl
math/fmod.cl
math/fract.cl
+math/frexp.cl
math/half_rsqrt.cl
math/half_sqrt.cl
math/hypot.cl
@@ -96,6 +97,7 @@
math/log1p.cl
math/log2.cl
math/mad.cl
+math/modf.cl
math/native_log.cl
math/native_log2.cl
math/tables.cl
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libclc-0.2.0+git20151006.6d78407/generic/lib/clcmacro.h new/libclc-0.2.0+git.20160209/generic/lib/clcmacro.h
--- old/libclc-0.2.0+git20151006.6d78407/generic/lib/clcmacro.h 2015-12-01 06:52:51.000000000 +0100
+++ new/libclc-0.2.0+git.20160209/generic/lib/clcmacro.h 2016-07-03 10:32:55.000000000 +0200
@@ -109,6 +109,28 @@
} \
\
+#define _CLC_V_V_VP_VECTORIZE(DECLSPEC, RET_TYPE, FUNCTION, ARG1_TYPE, ARG2_TYPE) \
+ DECLSPEC RET_TYPE##2 FUNCTION(ARG1_TYPE##2 x, ARG2_TYPE##2 *y) { \
+ return (RET_TYPE##2)(FUNCTION(x.x, (ARG2_TYPE*)y), FUNCTION(x.y, (ARG2_TYPE*)y+1)); \
+ } \
+\
+ DECLSPEC RET_TYPE##3 FUNCTION(ARG1_TYPE##3 x, ARG2_TYPE##3 *y) { \
+ return (RET_TYPE##3)(FUNCTION(x.x, (ARG2_TYPE*)y), FUNCTION(x.y, (ARG2_TYPE*)y+1), \
+ FUNCTION(x.z, (ARG2_TYPE*)y+2)); \
+ } \
+\
+ DECLSPEC RET_TYPE##4 FUNCTION(ARG1_TYPE##4 x, ARG2_TYPE##4 *y) { \
+ return (RET_TYPE##4)(FUNCTION(x.lo, (ARG2_TYPE##2*)y), FUNCTION(x.hi, (ARG2_TYPE##2*)((ARG2_TYPE*)y+2))); \
+ } \
+\
+ DECLSPEC RET_TYPE##8 FUNCTION(ARG1_TYPE##8 x, ARG2_TYPE##8 *y) { \
+ return (RET_TYPE##8)(FUNCTION(x.lo, (ARG2_TYPE##4*)y), FUNCTION(x.hi, (ARG2_TYPE##4*)((ARG2_TYPE*)y+4))); \
+ } \
+\
+ DECLSPEC RET_TYPE##16 FUNCTION(ARG1_TYPE##16 x, ARG2_TYPE##16 *y) { \
+ return (RET_TYPE##16)(FUNCTION(x.lo, (ARG2_TYPE##8*)y), FUNCTION(x.hi, (ARG2_TYPE##8*)((ARG2_TYPE*)y+8))); \
+ }
+
#define _CLC_DEFINE_BINARY_BUILTIN(RET_TYPE, FUNCTION, BUILTIN, ARG1_TYPE, ARG2_TYPE) \
_CLC_DEF _CLC_OVERLOAD RET_TYPE FUNCTION(ARG1_TYPE x, ARG2_TYPE y) { \
return BUILTIN(x, y); \
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libclc-0.2.0+git20151006.6d78407/generic/lib/math/frexp.cl new/libclc-0.2.0+git.20160209/generic/lib/math/frexp.cl
--- old/libclc-0.2.0+git20151006.6d78407/generic/lib/math/frexp.cl 1970-01-01 01:00:00.000000000 +0100
+++ new/libclc-0.2.0+git.20160209/generic/lib/math/frexp.cl 2016-07-03 10:32:55.000000000 +0200
@@ -0,0 +1,10 @@
+#include
+
+#include "math.h"
+
+#ifdef cl_khr_fp64
+#pragma OPENCL EXTENSION cl_khr_fp64 : enable
+#endif
+
+#define __CLC_BODY
+#include
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libclc-0.2.0+git20151006.6d78407/generic/lib/math/frexp.inc new/libclc-0.2.0+git.20160209/generic/lib/math/frexp.inc
--- old/libclc-0.2.0+git20151006.6d78407/generic/lib/math/frexp.inc 1970-01-01 01:00:00.000000000 +0100
+++ new/libclc-0.2.0+git.20160209/generic/lib/math/frexp.inc 2016-07-03 10:32:55.000000000 +0200
@@ -0,0 +1,110 @@
+/*
+ * 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.
+ */
+#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 & 0x7fffffff;
+ int d = ai > 0 & ai < 0x00800000;
+ // scale subnormal by 2^26 without multiplying
+ float s = as_float(ai | 0x0d800000) - 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 & 0x80000000) | 0x3f000000 | (ai & 0x007fffff);
+ *ep = t ? 0 : e;
+ return t ? x : as_float(i);
+}
+#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 & 0x7fffffff; \
+ int##width d = ai > 0 & ai < 0x00800000; \
+ /* scale subnormal by 2^26 without multiplying */ \
+ float##width s = as_float##width(ai | 0x0d800000) - 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)0x80000000) | (int##width)0x3f000000 | (ai & 0x007fffff); \
+ *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 & 0x7fffffffffffffffL;
+ int d = ai > 0 & ai < 0x0010000000000000L;
+ // scale subnormal by 2^54 without multiplying
+ double s = as_double(ai | 0x0370000000000000L) - 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 & 0x8000000000000000L) | 0x3fe0000000000000L | (ai & 0x000fffffffffffffL);
+ *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 & 0x7fffffffffffffffL; \
+ long##width d = ai > 0 & ai < 0x0010000000000000L; \
+ /* scale subnormal by 2^54 without multiplying */ \
+ double##width s = as_double##width(ai | 0x0370000000000000L) - 0x1.0p-968; \
+ ai = bitselect(ai, as_long##width(s), d); \
+ int##width e = convert_int##width(ai >> 52) - 1022 - bitselect((int##width)0, (int##width)54, convert_int##width(d)); \
+ int##width t = convert_int##width(ai == (long##width)0) | (e == (int##width)129); \
+ i = (i & (long##width)0x8000000000000000L) | (long##width)0x3fe0000000000000L | (ai & 0x000fffffffffffffL); \
+ *ep = bitselect(e, (int##width)0, t); \
+ return bitselect(as_double##width(i), x, as_double##width(convert_long##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
+
+#define __CLC_FREXP_DEF(addrspace) \
+ _CLC_OVERLOAD _CLC_DEF __CLC_GENTYPE frexp(__CLC_GENTYPE x, addrspace __CLC_INTN *iptr) { \
+ __CLC_INTN private_iptr; \
+ __CLC_GENTYPE ret = frexp(x, &private_iptr); \
+ *iptr = private_iptr; \
+ return ret; \
+}
+
+__CLC_FREXP_DEF(local);
+__CLC_FREXP_DEF(global);
+
+#undef __CLC_FREXP_DEF
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libclc-0.2.0+git20151006.6d78407/generic/lib/math/log2.cl new/libclc-0.2.0+git.20160209/generic/lib/math/log2.cl
--- old/libclc-0.2.0+git20151006.6d78407/generic/lib/math/log2.cl 2015-12-01 06:52:51.000000000 +0100
+++ new/libclc-0.2.0+git.20160209/generic/lib/math/log2.cl 2016-07-03 10:32:55.000000000 +0200
@@ -34,4 +34,6 @@
_CLC_UNARY_VECTORIZE(_CLC_OVERLOAD _CLC_DEF, float, log2, float);
+#ifdef cl_khr_fp64
_CLC_UNARY_VECTORIZE(_CLC_OVERLOAD _CLC_DEF, double, log2, double);
+#endif // cl_khr_fp64
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libclc-0.2.0+git20151006.6d78407/generic/lib/math/modf.cl new/libclc-0.2.0+git.20160209/generic/lib/math/modf.cl
--- old/libclc-0.2.0+git20151006.6d78407/generic/lib/math/modf.cl 1970-01-01 01:00:00.000000000 +0100
+++ new/libclc-0.2.0+git.20160209/generic/lib/math/modf.cl 2016-07-03 10:32:55.000000000 +0200
@@ -0,0 +1,32 @@
+/*
+ * Copyright (c) 2015 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 "math.h"
+
+#ifdef cl_khr_fp64
+#pragma OPENCL EXTENSION cl_khr_fp64 : enable
+#endif
+
+#define __CLC_BODY
+#include
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libclc-0.2.0+git20151006.6d78407/generic/lib/math/modf.inc new/libclc-0.2.0+git.20160209/generic/lib/math/modf.inc
--- old/libclc-0.2.0+git20151006.6d78407/generic/lib/math/modf.inc 1970-01-01 01:00:00.000000000 +0100
+++ new/libclc-0.2.0+git.20160209/generic/lib/math/modf.inc 2016-07-03 10:32:55.000000000 +0200
@@ -0,0 +1,37 @@
+/*
+ * Copyright (c) 2015 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.
+ */
+
+_CLC_OVERLOAD _CLC_DEF __CLC_GENTYPE modf(__CLC_GENTYPE x, __CLC_GENTYPE *iptr) {
+ *iptr = trunc(x);
+ return copysign(isinf(x) ? 0.0f : x - *iptr, x);
+}
+
+#define MODF_DEF(addrspace) \
+ _CLC_OVERLOAD _CLC_DEF __CLC_GENTYPE modf(__CLC_GENTYPE x, addrspace __CLC_GENTYPE *iptr) { \
+ __CLC_GENTYPE private_iptr; \
+ __CLC_GENTYPE ret = modf(x, &private_iptr); \
+ *iptr = private_iptr; \
+ return ret; \
+}
+
+MODF_DEF(local);
+MODF_DEF(global);