[Libclc-dev] [PATCH] Update atom_* function signatures to accept volatile pointers
Aaron Watry
awatry at gmail.com
Thu Feb 26 09:52:08 PST 2015
On Thu, Feb 26, 2015 at 11:03 AM, Tom Stellard <thomas.stellard at amd.com>
wrote:
> On 02/25/2015 07:16 PM, Aaron Watry wrote:
>
>> On Tue, Feb 24, 2015 at 10:20 AM, Tom Stellard <thomas.stellard at amd.com
>> <mailto:thomas.stellard at amd.com>> wrote:
>>
>> This is how they are defined by the spec.
>>
>>
>> The only wording that I see in the CL 1.1 and CL 1.2 specs is as such:
>> "
>> NOTE: The atomic built-in functions that use the atom_ prefix and are
>> described by the
>> following extensions
>> cl_khr_global_int32_base_atomics
>> cl_khr_global_int32_extended_atomics
>> cl_khr_local_int32_base_atomics
>> cl_khr_local_int32_extended_atomics
>> in sections 9.5 and 9.6 of the OpenCL 1.0 specification are also
>> supported.
>> "
>>
>> But in looking at the CL1.0 spec, none of the atom_* functions declare
>> their arguments as volatile pointers.
>>
>> I'm not necessarily against this change, I just wanted to point out the
>> inconsistency in case it would cause us problems later.
>>
>>
> Thanks for pointing this out. I was looking at the 64-bit versions
> in the 1.1 spec that do have the volatile keyword. I think this
> is probably an oversight in the spec, but you are right, I can't find
> anything that says the 32-bit atom_* functions have the volatile keyword.
>
> -Tom
>
I agree that this is probably an oversight. Is there anyone at Khronos we
can ping for clarification?
Otherwise, we can defer to whatever other CL run-times (catalyst/nvidia) do
in similar situations (if they agree on an implementation).
--Aaron
>
> Are we meant to assume that the atom_* functions are just aliased
>> versions of the atomic_* functions, or should there be an actual
>> difference between them?
>>
>> --Aaron
>>
>> ---
>> generic/include/clc/cl_khr_global_int32_base_atomics/atom_add.h
>> | 4 ++--
>> generic/include/clc/cl_khr_global_int32_base_atomics/atom_cmpxchg.h
>> | 4 ++--
>> generic/include/clc/cl_khr_global_int32_base_atomics/atom_dec.h
>> | 4 ++--
>> generic/include/clc/cl_khr_global_int32_base_atomics/atom_inc.h
>> | 4 ++--
>> generic/include/clc/cl_khr_global_int32_base_atomics/atom_sub.h
>> | 4 ++--
>> generic/include/clc/cl_khr_global_int32_base_atomics/atom_xchg.h
>> | 4 ++--
>> generic/include/clc/cl_khr_global_int32_extended_atomics/atom_and.h
>> | 4 ++--
>> generic/include/clc/cl_khr_global_int32_extended_atomics/atom_max.h
>> | 4 ++--
>> generic/include/clc/cl_khr_global_int32_extended_atomics/atom_min.h
>> | 4 ++--
>> generic/include/clc/cl_khr_global_int32_extended_atomics/atom_or.h
>> | 4 ++--
>> generic/include/clc/cl_khr_global_int32_extended_atomics/atom_xor.h
>> | 4 ++--
>> generic/include/clc/cl_khr_local_int32_base_atomics/atom_add.h
>> | 4 ++--
>> generic/include/clc/cl_khr_local_int32_base_atomics/atom_cmpxchg.h
>> | 4 ++--
>> generic/include/clc/cl_khr_local_int32_base_atomics/atom_dec.h
>> | 4 ++--
>> generic/include/clc/cl_khr_local_int32_base_atomics/atom_inc.h
>> | 4 ++--
>> generic/include/clc/cl_khr_local_int32_base_atomics/atom_sub.h
>> | 4 ++--
>> generic/include/clc/cl_khr_local_int32_base_atomics/atom_xchg.h
>> | 4 ++--
>> generic/include/clc/cl_khr_local_int32_extended_atomics/atom_and.h
>> | 4 ++--
>> generic/include/clc/cl_khr_local_int32_extended_atomics/atom_max.h
>> | 4 ++--
>> generic/include/clc/cl_khr_local_int32_extended_atomics/atom_min.h
>> | 4 ++--
>> generic/include/clc/cl_khr_local_int32_extended_atomics/atom_or.h
>> | 4 ++--
>> generic/include/clc/cl_khr_local_int32_extended_atomics/atom_xor.h
>> | 4 ++--
>> generic/lib/cl_khr_global_int32_base_atomics/atom_add.cl
>> <http://atom_add.cl> | 2 +-
>> generic/lib/cl_khr_global_int32_base_atomics/atom_cmpxchg.cl
>> <http://atom_cmpxchg.cl> | 2 +-
>> generic/lib/cl_khr_global_int32_base_atomics/atom_dec.cl
>> <http://atom_dec.cl> | 2 +-
>> generic/lib/cl_khr_global_int32_base_atomics/atom_inc.cl
>> <http://atom_inc.cl> | 2 +-
>> generic/lib/cl_khr_global_int32_base_atomics/atom_sub.cl
>> <http://atom_sub.cl> | 2 +-
>> generic/lib/cl_khr_global_int32_base_atomics/atom_xchg.cl
>> <http://atom_xchg.cl> | 2 +-
>> generic/lib/cl_khr_global_int32_extended_atomics/atom_and.cl
>> <http://atom_and.cl> | 4 ++--
>> generic/lib/cl_khr_global_int32_extended_atomics/atom_max.cl
>> <http://atom_max.cl> | 2 +-
>> generic/lib/cl_khr_global_int32_extended_atomics/atom_min.cl
>> <http://atom_min.cl> | 2 +-
>> generic/lib/cl_khr_global_int32_extended_atomics/atom_or.cl
>> <http://atom_or.cl> | 2 +-
>> generic/lib/cl_khr_global_int32_extended_atomics/atom_xor.cl
>> <http://atom_xor.cl> | 2 +-
>> generic/lib/cl_khr_local_int32_base_atomics/atom_add.cl
>> <http://atom_add.cl> | 2 +-
>> generic/lib/cl_khr_local_int32_base_atomics/atom_cmpxchg.cl
>> <http://atom_cmpxchg.cl> | 2 +-
>> generic/lib/cl_khr_local_int32_base_atomics/atom_dec.cl
>> <http://atom_dec.cl> | 2 +-
>> generic/lib/cl_khr_local_int32_base_atomics/atom_inc.cl
>> <http://atom_inc.cl> | 2 +-
>> generic/lib/cl_khr_local_int32_base_atomics/atom_sub.cl
>> <http://atom_sub.cl> | 2 +-
>> generic/lib/cl_khr_local_int32_base_atomics/atom_xchg.cl
>> <http://atom_xchg.cl> | 2 +-
>> generic/lib/cl_khr_local_int32_extended_atomics/atom_and.cl
>> <http://atom_and.cl> | 4 ++--
>> generic/lib/cl_khr_local_int32_extended_atomics/atom_max.cl
>> <http://atom_max.cl> | 2 +-
>> generic/lib/cl_khr_local_int32_extended_atomics/atom_min.cl
>> <http://atom_min.cl> | 2 +-
>> generic/lib/cl_khr_local_int32_extended_atomics/atom_or.cl
>> <http://atom_or.cl> | 2 +-
>> generic/lib/cl_khr_local_int32_extended_atomics/atom_xor.cl
>> <http://atom_xor.cl> | 2 +-
>>
>> 44 files changed, 68 insertions(+), 68 deletions(-)
>>
>> diff --git
>> a/generic/include/clc/cl_khr_global_int32_base_atomics/atom_add.h
>> b/generic/include/clc/cl_khr_global_int32_base_atomics/atom_add.h
>> index 9740b3d..10602c7 100644
>> --- a/generic/include/clc/cl_khr_global_int32_base_atomics/atom_add.h
>> +++ b/generic/include/clc/cl_khr_global_int32_base_atomics/atom_add.h
>> @@ -1,2 +1,2 @@
>> -_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);
>> +_CLC_OVERLOAD _CLC_DECL int atom_add(volatile global int *p, int
>> val);
>> +_CLC_OVERLOAD _CLC_DECL unsigned int atom_add(volatile global
>> unsigned int *p, unsigned int val);
>> diff --git
>> a/generic/include/clc/cl_khr_global_int32_base_atomics/atom_cmpxchg.h
>> b/generic/include/clc/cl_khr_global_int32_base_atomics/atom_cmpxchg.h
>> index 168f423..d84a9eb 100644
>> ---
>> a/generic/include/clc/cl_khr_global_int32_base_atomics/atom_cmpxchg.h
>> +++
>> b/generic/include/clc/cl_khr_global_int32_base_atomics/atom_cmpxchg.h
>> @@ -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);
>> diff --git
>> a/generic/include/clc/cl_khr_global_int32_base_atomics/atom_dec.h
>> b/generic/include/clc/cl_khr_global_int32_base_atomics/atom_dec.h
>> index bbc872c..d3c1c45 100644
>> --- a/generic/include/clc/cl_khr_global_int32_base_atomics/atom_dec.h
>> +++ b/generic/include/clc/cl_khr_global_int32_base_atomics/atom_dec.h
>> @@ -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);
>> diff --git
>> a/generic/include/clc/cl_khr_global_int32_base_atomics/atom_inc.h
>> b/generic/include/clc/cl_khr_global_int32_base_atomics/atom_inc.h
>> index 050747c..712374d 100644
>> --- a/generic/include/clc/cl_khr_global_int32_base_atomics/atom_inc.h
>> +++ b/generic/include/clc/cl_khr_global_int32_base_atomics/atom_inc.h
>> @@ -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);
>> diff --git
>> a/generic/include/clc/cl_khr_global_int32_base_atomics/atom_sub.h
>> b/generic/include/clc/cl_khr_global_int32_base_atomics/atom_sub.h
>> index c435c72..b065db9 100644
>> --- a/generic/include/clc/cl_khr_global_int32_base_atomics/atom_sub.h
>> +++ b/generic/include/clc/cl_khr_global_int32_base_atomics/atom_sub.h
>> @@ -1,2 +1,2 @@
>> -_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);
>> +_CLC_OVERLOAD _CLC_DECL int atom_sub(volatile global int *p, int
>> val);
>> +_CLC_OVERLOAD _CLC_DECL unsigned int atom_sub(volatile global
>> unsigned int *p, unsigned int val);
>> diff --git
>> a/generic/include/clc/cl_khr_global_int32_base_atomics/atom_xchg.h
>> b/generic/include/clc/cl_khr_global_int32_base_atomics/atom_xchg.h
>> index 6a18e9e..0493b85 100644
>> --- a/generic/include/clc/cl_khr_global_int32_base_atomics/
>> atom_xchg.h
>> +++ b/generic/include/clc/cl_khr_global_int32_base_atomics/
>> atom_xchg.h
>> @@ -1,2 +1,2 @@
>> -_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);
>> +_CLC_OVERLOAD _CLC_DECL int atom_xchg(volatile global int *p, int
>> val);
>> +_CLC_OVERLOAD _CLC_DECL unsigned int atom_xchg(volatile global
>> unsigned int *p, unsigned int val);
>> diff --git
>> a/generic/include/clc/cl_khr_global_int32_extended_atomics/atom_and.h
>> b/generic/include/clc/cl_khr_global_int32_extended_atomics/atom_and.h
>> index 19df7d6..2364fe9 100644
>> ---
>> a/generic/include/clc/cl_khr_global_int32_extended_atomics/atom_and.h
>> +++
>> b/generic/include/clc/cl_khr_global_int32_extended_atomics/atom_and.h
>> @@ -1,2 +1,2 @@
>> -_CLC_OVERLOAD _CLC_DECL int atom_and(global int *p, int val);
>> -_CLC_OVERLOAD _CLC_DECL unsigned int atom_and(global unsigned int
>> *p, unsigned int val);
>> +_CLC_OVERLOAD _CLC_DECL int atom_and(volatile global int *p, int
>> val);
>> +_CLC_OVERLOAD _CLC_DECL unsigned int atom_and(volatile global
>> unsigned int *p, unsigned int val);
>> diff --git
>> a/generic/include/clc/cl_khr_global_int32_extended_atomics/atom_max.h
>> b/generic/include/clc/cl_khr_global_int32_extended_atomics/atom_max.h
>> index b46ce29..4e876da 100644
>> ---
>> a/generic/include/clc/cl_khr_global_int32_extended_atomics/atom_max.h
>> +++
>> b/generic/include/clc/cl_khr_global_int32_extended_atomics/atom_max.h
>> @@ -1,2 +1,2 @@
>> -_CLC_OVERLOAD _CLC_DECL int atom_max(global int *p, int val);
>> -_CLC_OVERLOAD _CLC_DECL unsigned int atom_max(global unsigned int
>> *p, unsigned int val);
>> +_CLC_OVERLOAD _CLC_DECL int atom_max(volatile global int *p, int
>> val);
>> +_CLC_OVERLOAD _CLC_DECL unsigned int atom_max(volatile global
>> unsigned int *p, unsigned int val);
>> diff --git
>> a/generic/include/clc/cl_khr_global_int32_extended_atomics/atom_min.h
>> b/generic/include/clc/cl_khr_global_int32_extended_atomics/atom_min.h
>> index 0e458eb..46b8b83 100644
>> ---
>> a/generic/include/clc/cl_khr_global_int32_extended_atomics/atom_min.h
>> +++
>> b/generic/include/clc/cl_khr_global_int32_extended_atomics/atom_min.h
>> @@ -1,2 +1,2 @@
>> -_CLC_OVERLOAD _CLC_DECL int atom_min(global int *p, int val);
>> -_CLC_OVERLOAD _CLC_DECL unsigned int atom_min(global unsigned int
>> *p, unsigned int val);
>> +_CLC_OVERLOAD _CLC_DECL int atom_min(volatile global int *p, int
>> val);
>> +_CLC_OVERLOAD _CLC_DECL unsigned int atom_min(volatile global
>> unsigned int *p, unsigned int val);
>> diff --git
>> a/generic/include/clc/cl_khr_global_int32_extended_atomics/atom_or.h
>> b/generic/include/clc/cl_khr_global_int32_extended_atomics/atom_or.h
>> index 91cde56..d1e924d 100644
>> --- a/generic/include/clc/cl_khr_global_int32_extended_atomics/
>> atom_or.h
>> +++ b/generic/include/clc/cl_khr_global_int32_extended_atomics/
>> atom_or.h
>> @@ -1,2 +1,2 @@
>> -_CLC_OVERLOAD _CLC_DECL int atom_or(global int *p, int val);
>> -_CLC_OVERLOAD _CLC_DECL unsigned int atom_or(global unsigned int
>> *p, unsigned int val);
>> +_CLC_OVERLOAD _CLC_DECL int atom_or(volatile global int *p, int val);
>> +_CLC_OVERLOAD _CLC_DECL unsigned int atom_or(volatile global
>> unsigned int *p, unsigned int val);
>> diff --git
>> a/generic/include/clc/cl_khr_global_int32_extended_atomics/atom_xor.h
>> b/generic/include/clc/cl_khr_global_int32_extended_atomics/atom_xor.h
>> index f787849..9646c87 100644
>> ---
>> a/generic/include/clc/cl_khr_global_int32_extended_atomics/atom_xor.h
>> +++
>> b/generic/include/clc/cl_khr_global_int32_extended_atomics/atom_xor.h
>> @@ -1,2 +1,2 @@
>> -_CLC_OVERLOAD _CLC_DECL int atom_xor(global int *p, int val);
>> -_CLC_OVERLOAD _CLC_DECL unsigned int atom_xor(global unsigned int
>> *p, unsigned int val);
>> +_CLC_OVERLOAD _CLC_DECL int atom_xor(volatile global int *p, int
>> val);
>> +_CLC_OVERLOAD _CLC_DECL unsigned int atom_xor(volatile global
>> unsigned int *p, unsigned int val);
>> diff --git
>> a/generic/include/clc/cl_khr_local_int32_base_atomics/atom_add.h
>> b/generic/include/clc/cl_khr_local_int32_base_atomics/atom_add.h
>> index 096d011..8999920 100644
>> --- a/generic/include/clc/cl_khr_local_int32_base_atomics/atom_add.h
>> +++ b/generic/include/clc/cl_khr_local_int32_base_atomics/atom_add.h
>> @@ -1,2 +1,2 @@
>> -_CLC_OVERLOAD _CLC_DECL int atom_add(local int *p, int val);
>> -_CLC_OVERLOAD _CLC_DECL unsigned int atom_add(local unsigned int
>> *p, unsigned int val);
>> +_CLC_OVERLOAD _CLC_DECL int atom_add(volatile local int *p, int val);
>> +_CLC_OVERLOAD _CLC_DECL unsigned int atom_add(volatile local
>> unsigned int *p, unsigned int val);
>> diff --git
>> a/generic/include/clc/cl_khr_local_int32_base_atomics/atom_cmpxchg.h
>> b/generic/include/clc/cl_khr_local_int32_base_atomics/atom_cmpxchg.h
>> index e10a84f..c967d36 100644
>> --- a/generic/include/clc/cl_khr_local_int32_base_atomics/atom_
>> cmpxchg.h
>> +++ b/generic/include/clc/cl_khr_local_int32_base_atomics/atom_
>> cmpxchg.h
>> @@ -1,2 +1,2 @@
>> -_CLC_OVERLOAD _CLC_DECL int atom_cmpxchg(local int *p, int cmp, int
>> val);
>> -_CLC_OVERLOAD _CLC_DECL unsigned int atom_cmpxchg(local unsigned
>> int *p, unsigned int cmp, unsigned int val);
>> +_CLC_OVERLOAD _CLC_DECL int atom_cmpxchg(volatile local int *p, int
>> cmp, int val);
>> +_CLC_OVERLOAD _CLC_DECL unsigned int atom_cmpxchg(volatile local
>> unsigned int *p, unsigned int cmp, unsigned int val);
>> diff --git
>> a/generic/include/clc/cl_khr_local_int32_base_atomics/atom_dec.h
>> b/generic/include/clc/cl_khr_local_int32_base_atomics/atom_dec.h
>> index e74d8fc..7bb33c9 100644
>> --- a/generic/include/clc/cl_khr_local_int32_base_atomics/atom_dec.h
>> +++ b/generic/include/clc/cl_khr_local_int32_base_atomics/atom_dec.h
>> @@ -1,2 +1,2 @@
>> -_CLC_OVERLOAD _CLC_DECL int atom_dec(local int *p);
>> -_CLC_OVERLOAD _CLC_DECL unsigned int atom_dec(local unsigned int *p);
>> +_CLC_OVERLOAD _CLC_DECL int atom_dec(volatile local int *p);
>> +_CLC_OVERLOAD _CLC_DECL unsigned int atom_dec(volatile local
>> unsigned int *p);
>> diff --git
>> a/generic/include/clc/cl_khr_local_int32_base_atomics/atom_inc.h
>> b/generic/include/clc/cl_khr_local_int32_base_atomics/atom_inc.h
>> index 718f1f2..96e6f30 100644
>> --- a/generic/include/clc/cl_khr_local_int32_base_atomics/atom_inc.h
>> +++ b/generic/include/clc/cl_khr_local_int32_base_atomics/atom_inc.h
>> @@ -1,2 +1,2 @@
>> -_CLC_OVERLOAD _CLC_DECL int atom_inc(local int *p);
>> -_CLC_OVERLOAD _CLC_DECL unsigned int atom_inc(local unsigned int *p);
>> +_CLC_OVERLOAD _CLC_DECL int atom_inc(volatile local int *p);
>> +_CLC_OVERLOAD _CLC_DECL unsigned int atom_inc(volatile local
>> unsigned int *p);
>> diff --git
>> a/generic/include/clc/cl_khr_local_int32_base_atomics/atom_sub.h
>> b/generic/include/clc/cl_khr_local_int32_base_atomics/atom_sub.h
>> index 6363780..0228fa4 100644
>> --- a/generic/include/clc/cl_khr_local_int32_base_atomics/atom_sub.h
>> +++ b/generic/include/clc/cl_khr_local_int32_base_atomics/atom_sub.h
>> @@ -1,2 +1,2 @@
>> -_CLC_OVERLOAD _CLC_DECL int atom_sub(local int *p, int val);
>> -_CLC_OVERLOAD _CLC_DECL unsigned int atom_sub(local unsigned int
>> *p, unsigned int val);
>> +_CLC_OVERLOAD _CLC_DECL int atom_sub(volatile local int *p, int val);
>> +_CLC_OVERLOAD _CLC_DECL unsigned int atom_sub(volatile local
>> unsigned int *p, unsigned int val);
>> diff --git
>> a/generic/include/clc/cl_khr_local_int32_base_atomics/atom_xchg.h
>> b/generic/include/clc/cl_khr_local_int32_base_atomics/atom_xchg.h
>> index c5a1f09..e530158 100644
>> --- a/generic/include/clc/cl_khr_local_int32_base_atomics/atom_xchg.h
>> +++ b/generic/include/clc/cl_khr_local_int32_base_atomics/atom_xchg.h
>> @@ -1,2 +1,2 @@
>> -_CLC_OVERLOAD _CLC_DECL int atom_xchg(local int *p, int val);
>> -_CLC_OVERLOAD _CLC_DECL unsigned int atom_xchg(local unsigned int
>> *p, unsigned int val);
>> +_CLC_OVERLOAD _CLC_DECL int atom_xchg(volatile local int *p, int
>> val);
>> +_CLC_OVERLOAD _CLC_DECL unsigned int atom_xchg(volatile local
>> unsigned int *p, unsigned int val);
>> diff --git
>> a/generic/include/clc/cl_khr_local_int32_extended_atomics/atom_and.h
>> b/generic/include/clc/cl_khr_local_int32_extended_atomics/atom_and.h
>> index 96d7b1a..0af8194 100644
>> --- a/generic/include/clc/cl_khr_local_int32_extended_atomics/
>> atom_and.h
>> +++ b/generic/include/clc/cl_khr_local_int32_extended_atomics/
>> atom_and.h
>> @@ -1,2 +1,2 @@
>> -_CLC_OVERLOAD _CLC_DECL int atom_and(local int *p, int val);
>> -_CLC_OVERLOAD _CLC_DECL unsigned int atom_and(local unsigned int
>> *p, unsigned int val);
>> +_CLC_OVERLOAD _CLC_DECL int atom_and(volatile local int *p, int val);
>> +_CLC_OVERLOAD _CLC_DECL unsigned int atom_and(volatile local
>> unsigned int *p, unsigned int val);
>> diff --git
>> a/generic/include/clc/cl_khr_local_int32_extended_atomics/atom_max.h
>> b/generic/include/clc/cl_khr_local_int32_extended_atomics/atom_max.h
>> index 7d6b17d..e3b23dd 100644
>> --- a/generic/include/clc/cl_khr_local_int32_extended_atomics/
>> atom_max.h
>> +++ b/generic/include/clc/cl_khr_local_int32_extended_atomics/
>> atom_max.h
>> @@ -1,2 +1,2 @@
>> -_CLC_OVERLOAD _CLC_DECL int atom_max(local int *p, int val);
>> -_CLC_OVERLOAD _CLC_DECL unsigned int atom_max(local unsigned int
>> *p, unsigned int val);
>> +_CLC_OVERLOAD _CLC_DECL int atom_max(volatile local int *p, int val);
>> +_CLC_OVERLOAD _CLC_DECL unsigned int atom_max(volatile local
>> unsigned int *p, unsigned int val);
>> diff --git
>> a/generic/include/clc/cl_khr_local_int32_extended_atomics/atom_min.h
>> b/generic/include/clc/cl_khr_local_int32_extended_atomics/atom_min.h
>> index ddb6cf3..ec11c96 100644
>> --- a/generic/include/clc/cl_khr_local_int32_extended_atomics/
>> atom_min.h
>> +++ b/generic/include/clc/cl_khr_local_int32_extended_atomics/
>> atom_min.h
>> @@ -1,2 +1,2 @@
>> -_CLC_OVERLOAD _CLC_DECL int atom_min(local int *p, int val);
>> -_CLC_OVERLOAD _CLC_DECL unsigned int atom_min(local unsigned int
>> *p, unsigned int val);
>> +_CLC_OVERLOAD _CLC_DECL int atom_min(volatile local int *p, int val);
>> +_CLC_OVERLOAD _CLC_DECL unsigned int atom_min(volatile local
>> unsigned int *p, unsigned int val);
>> diff --git
>> a/generic/include/clc/cl_khr_local_int32_extended_atomics/atom_or.h
>> b/generic/include/clc/cl_khr_local_int32_extended_atomics/atom_or.h
>> index 518c256..abd8ac4 100644
>> --- a/generic/include/clc/cl_khr_local_int32_extended_atomics/
>> atom_or.h
>> +++ b/generic/include/clc/cl_khr_local_int32_extended_atomics/
>> atom_or.h
>> @@ -1,2 +1,2 @@
>> -_CLC_OVERLOAD _CLC_DECL int atom_or(local int *p, int val);
>> -_CLC_OVERLOAD _CLC_DECL unsigned int atom_or(local unsigned int *p,
>> unsigned int val);
>> +_CLC_OVERLOAD _CLC_DECL int atom_or(volatile local int *p, int val);
>> +_CLC_OVERLOAD _CLC_DECL unsigned int atom_or(volatile local
>> unsigned int *p, unsigned int val);
>> diff --git
>> a/generic/include/clc/cl_khr_local_int32_extended_atomics/atom_xor.h
>> b/generic/include/clc/cl_khr_local_int32_extended_atomics/atom_xor.h
>> index e6c9f2f..fedf128 100644
>> --- a/generic/include/clc/cl_khr_local_int32_extended_atomics/
>> atom_xor.h
>> +++ b/generic/include/clc/cl_khr_local_int32_extended_atomics/
>> atom_xor.h
>> @@ -1,2 +1,2 @@
>> -_CLC_OVERLOAD _CLC_DECL int atom_xor(local int *p, int val);
>> -_CLC_OVERLOAD _CLC_DECL unsigned int atom_xor(local unsigned int
>> *p, unsigned int val);
>> +_CLC_OVERLOAD _CLC_DECL int atom_xor(volatile local int *p, int val);
>> +_CLC_OVERLOAD _CLC_DECL unsigned int atom_xor(volatile local
>> unsigned int *p, unsigned int val);
>> diff --git
>> a/generic/lib/cl_khr_global_int32_base_atomics/atom_add.cl
>> <http://atom_add.cl>
>> b/generic/lib/cl_khr_global_int32_base_atomics/atom_add.cl
>> <http://atom_add.cl>
>> index 9151b0c..c0c14d3 100644
>> --- a/generic/lib/cl_khr_global_int32_base_atomics/atom_add.cl
>> <http://atom_add.cl>
>> +++ b/generic/lib/cl_khr_global_int32_base_atomics/atom_add.cl
>> <http://atom_add.cl>
>> @@ -1,7 +1,7 @@
>> #include <clc/clc.h>
>>
>> #define IMPL(TYPE) \
>> -_CLC_OVERLOAD _CLC_DEF TYPE atom_add(global TYPE *p, TYPE val) { \
>> +_CLC_OVERLOAD _CLC_DEF TYPE atom_add(volatile global TYPE *p, TYPE
>> val) { \
>> return atomic_add(p, val); \
>> }
>>
>> diff --git
>> a/generic/lib/cl_khr_global_int32_base_atomics/atom_cmpxchg.cl
>> <http://atom_cmpxchg.cl>
>> b/generic/lib/cl_khr_global_int32_base_atomics/atom_cmpxchg.cl
>> <http://atom_cmpxchg.cl>
>> index 7647740..becf767 100644
>> --- a/generic/lib/cl_khr_global_int32_base_atomics/atom_cmpxchg.cl
>> <http://atom_cmpxchg.cl>
>> +++ b/generic/lib/cl_khr_global_int32_base_atomics/atom_cmpxchg.cl
>> <http://atom_cmpxchg.cl>
>> @@ -1,7 +1,7 @@
>> #include <clc/clc.h>
>>
>> #define IMPL(TYPE) \
>> -_CLC_OVERLOAD _CLC_DEF TYPE atom_cmpxchg(global TYPE *p, TYPE cmp,
>> TYPE val) { \
>> +_CLC_OVERLOAD _CLC_DEF TYPE atom_cmpxchg(volatile global TYPE *p,
>> TYPE cmp, TYPE val) { \
>> return atomic_cmpxchg(p, cmp, val); \
>> }
>>
>> diff --git
>> a/generic/lib/cl_khr_global_int32_base_atomics/atom_dec.cl
>> <http://atom_dec.cl>
>> b/generic/lib/cl_khr_global_int32_base_atomics/atom_dec.cl
>> <http://atom_dec.cl>
>> index a74158d..6d274d6 100644
>> --- a/generic/lib/cl_khr_global_int32_base_atomics/atom_dec.cl
>> <http://atom_dec.cl>
>> +++ b/generic/lib/cl_khr_global_int32_base_atomics/atom_dec.cl
>> <http://atom_dec.cl>
>> @@ -1,7 +1,7 @@
>> #include <clc/clc.h>
>>
>> #define IMPL(TYPE) \
>> -_CLC_OVERLOAD _CLC_DEF TYPE atom_dec(global TYPE *p) { \
>> +_CLC_OVERLOAD _CLC_DEF TYPE atom_dec(volatile global TYPE *p) { \
>> return atom_sub(p, 1); \
>> }
>>
>> diff --git
>> a/generic/lib/cl_khr_global_int32_base_atomics/atom_inc.cl
>> <http://atom_inc.cl>
>> b/generic/lib/cl_khr_global_int32_base_atomics/atom_inc.cl
>> <http://atom_inc.cl>
>> index 1404b5a..9772777 100644
>> --- a/generic/lib/cl_khr_global_int32_base_atomics/atom_inc.cl
>> <http://atom_inc.cl>
>> +++ b/generic/lib/cl_khr_global_int32_base_atomics/atom_inc.cl
>> <http://atom_inc.cl>
>> @@ -1,7 +1,7 @@
>> #include <clc/clc.h>
>>
>> #define IMPL(TYPE) \
>> -_CLC_OVERLOAD _CLC_DEF TYPE atom_inc(global TYPE *p) { \
>> +_CLC_OVERLOAD _CLC_DEF TYPE atom_inc(volatile global TYPE *p) { \
>> return atom_add(p, 1); \
>> }
>>
>> diff --git
>> a/generic/lib/cl_khr_global_int32_base_atomics/atom_sub.cl
>> <http://atom_sub.cl>
>> b/generic/lib/cl_khr_global_int32_base_atomics/atom_sub.cl
>> <http://atom_sub.cl>
>> index 7faa3cc..772fca8 100644
>> --- a/generic/lib/cl_khr_global_int32_base_atomics/atom_sub.cl
>> <http://atom_sub.cl>
>> +++ b/generic/lib/cl_khr_global_int32_base_atomics/atom_sub.cl
>> <http://atom_sub.cl>
>> @@ -1,7 +1,7 @@
>> #include <clc/clc.h>
>>
>> #define IMPL(TYPE) \
>> -_CLC_OVERLOAD _CLC_DEF TYPE atom_sub(global TYPE *p, TYPE val) { \
>> +_CLC_OVERLOAD _CLC_DEF TYPE atom_sub(volatile global TYPE *p, TYPE
>> val) { \
>> return atomic_sub(p, val); \
>> }
>>
>> diff --git
>> a/generic/lib/cl_khr_global_int32_base_atomics/atom_xchg.cl
>> <http://atom_xchg.cl>
>> b/generic/lib/cl_khr_global_int32_base_atomics/atom_xchg.cl
>> <http://atom_xchg.cl>
>> index 9c77db1..eb1fdcc 100644
>> --- a/generic/lib/cl_khr_global_int32_base_atomics/atom_xchg.cl
>> <http://atom_xchg.cl>
>> +++ b/generic/lib/cl_khr_global_int32_base_atomics/atom_xchg.cl
>> <http://atom_xchg.cl>
>> @@ -1,7 +1,7 @@
>> #include <clc/clc.h>
>>
>> #define IMPL(TYPE) \
>> -_CLC_OVERLOAD _CLC_DEF TYPE atom_xchg(global TYPE *p, TYPE val) { \
>> +_CLC_OVERLOAD _CLC_DEF TYPE atom_xchg(volatile global TYPE *p, TYPE
>> val) { \
>> return atomic_xchg(p, val); \
>> }
>>
>> diff --git
>> a/generic/lib/cl_khr_global_int32_extended_atomics/atom_and.cl
>> <http://atom_and.cl>
>> b/generic/lib/cl_khr_global_int32_extended_atomics/atom_and.cl
>> <http://atom_and.cl>
>> index e587969..e7d70ea 100644
>> --- a/generic/lib/cl_khr_global_int32_extended_atomics/atom_and.cl
>> <http://atom_and.cl>
>> +++ b/generic/lib/cl_khr_global_int32_extended_atomics/atom_and.cl
>> <http://atom_and.cl>
>> @@ -1,9 +1,9 @@
>> #include <clc/clc.h>
>>
>> #define IMPL(TYPE) \
>> -_CLC_OVERLOAD _CLC_DEF TYPE atom_and(global TYPE *p, TYPE val) { \
>> +_CLC_OVERLOAD _CLC_DEF TYPE atom_and(volatile global TYPE *p, TYPE
>> val) { \
>> return atomic_and(p, val); \
>> }
>>
>> IMPL(int)
>> -IMPL(unsigned int)
>> \ No newline at end of file
>> +IMPL(unsigned int)
>> diff --git
>> a/generic/lib/cl_khr_global_int32_extended_atomics/atom_max.cl
>> <http://atom_max.cl>
>> b/generic/lib/cl_khr_global_int32_extended_atomics/atom_max.cl
>> <http://atom_max.cl>
>> index 09177ed..a741b18 100644
>> --- a/generic/lib/cl_khr_global_int32_extended_atomics/atom_max.cl
>> <http://atom_max.cl>
>> +++ b/generic/lib/cl_khr_global_int32_extended_atomics/atom_max.cl
>> <http://atom_max.cl>
>> @@ -1,7 +1,7 @@
>> #include <clc/clc.h>
>>
>> #define IMPL(TYPE) \
>> -_CLC_OVERLOAD _CLC_DEF TYPE atom_max(global TYPE *p, TYPE val) { \
>> +_CLC_OVERLOAD _CLC_DEF TYPE atom_max(volatile global TYPE *p, TYPE
>> val) { \
>> return atomic_max(p, val); \
>> }
>>
>> diff --git
>> a/generic/lib/cl_khr_global_int32_extended_atomics/atom_min.cl
>> <http://atom_min.cl>
>> b/generic/lib/cl_khr_global_int32_extended_atomics/atom_min.cl
>> <http://atom_min.cl>
>> index 277c41b..f996526 100644
>> --- a/generic/lib/cl_khr_global_int32_extended_atomics/atom_min.cl
>> <http://atom_min.cl>
>> +++ b/generic/lib/cl_khr_global_int32_extended_atomics/atom_min.cl
>> <http://atom_min.cl>
>> @@ -1,7 +1,7 @@
>> #include <clc/clc.h>
>>
>> #define IMPL(TYPE) \
>> -_CLC_OVERLOAD _CLC_DEF TYPE atom_min(global TYPE *p, TYPE val) { \
>> +_CLC_OVERLOAD _CLC_DEF TYPE atom_min(volatile global TYPE *p, TYPE
>> val) { \
>> return atomic_min(p, val); \
>> }
>>
>> diff --git
>> a/generic/lib/cl_khr_global_int32_extended_atomics/atom_or.cl
>> <http://atom_or.cl>
>> b/generic/lib/cl_khr_global_int32_extended_atomics/atom_or.cl
>> <http://atom_or.cl>
>> index a936a8e..810d669 100644
>> --- a/generic/lib/cl_khr_global_int32_extended_atomics/atom_or.cl
>> <http://atom_or.cl>
>> +++ b/generic/lib/cl_khr_global_int32_extended_atomics/atom_or.cl
>> <http://atom_or.cl>
>> @@ -1,7 +1,7 @@
>> #include <clc/clc.h>
>>
>> #define IMPL(TYPE) \
>> -_CLC_OVERLOAD _CLC_DEF TYPE atom_or(global TYPE *p, TYPE val) { \
>> +_CLC_OVERLOAD _CLC_DEF TYPE atom_or(volatile global TYPE *p, TYPE
>> val) { \
>> return atomic_or(p, val); \
>> }
>>
>> diff --git
>> a/generic/lib/cl_khr_global_int32_extended_atomics/atom_xor.cl
>> <http://atom_xor.cl>
>> b/generic/lib/cl_khr_global_int32_extended_atomics/atom_xor.cl
>> <http://atom_xor.cl>
>> index 1a8e350..9dc5803 100644
>> --- a/generic/lib/cl_khr_global_int32_extended_atomics/atom_xor.cl
>> <http://atom_xor.cl>
>> +++ b/generic/lib/cl_khr_global_int32_extended_atomics/atom_xor.cl
>> <http://atom_xor.cl>
>> @@ -1,7 +1,7 @@
>> #include <clc/clc.h>
>>
>> #define IMPL(TYPE) \
>> -_CLC_OVERLOAD _CLC_DEF TYPE atom_xor(global TYPE *p, TYPE val) { \
>> +_CLC_OVERLOAD _CLC_DEF TYPE atom_xor(volatile global TYPE *p, TYPE
>> val) { \
>> return atomic_xor(p, val); \
>> }
>>
>> diff --git a/generic/lib/cl_khr_local_int32_base_atomics/atom_add.cl
>> <http://atom_add.cl>
>> b/generic/lib/cl_khr_local_int32_base_atomics/atom_add.cl
>> <http://atom_add.cl>
>> index a5dea18..3ad364d 100644
>> --- a/generic/lib/cl_khr_local_int32_base_atomics/atom_add.cl
>> <http://atom_add.cl>
>> +++ b/generic/lib/cl_khr_local_int32_base_atomics/atom_add.cl
>> <http://atom_add.cl>
>> @@ -1,7 +1,7 @@
>> #include <clc/clc.h>
>>
>> #define IMPL(TYPE) \
>> -_CLC_OVERLOAD _CLC_DEF TYPE atom_add(local TYPE *p, TYPE val) { \
>> +_CLC_OVERLOAD _CLC_DEF TYPE atom_add(volatile local TYPE *p, TYPE
>> val) { \
>> return atomic_add(p, val); \
>> }
>>
>> diff --git
>> a/generic/lib/cl_khr_local_int32_base_atomics/atom_cmpxchg.cl
>> <http://atom_cmpxchg.cl>
>> b/generic/lib/cl_khr_local_int32_base_atomics/atom_cmpxchg.cl
>> <http://atom_cmpxchg.cl>
>> index 16e9579..ea648f0 100644
>> --- a/generic/lib/cl_khr_local_int32_base_atomics/atom_cmpxchg.cl
>> <http://atom_cmpxchg.cl>
>> +++ b/generic/lib/cl_khr_local_int32_base_atomics/atom_cmpxchg.cl
>> <http://atom_cmpxchg.cl>
>> @@ -1,7 +1,7 @@
>> #include <clc/clc.h>
>>
>> #define IMPL(TYPE) \
>> -_CLC_OVERLOAD _CLC_DEF TYPE atom_cmpxchg(local TYPE *p, TYPE cmp,
>> TYPE val) { \
>> +_CLC_OVERLOAD _CLC_DEF TYPE atom_cmpxchg(volatile local TYPE *p,
>> TYPE cmp, TYPE val) { \
>> return atomic_cmpxchg(p, cmp, val); \
>> }
>>
>> diff --git a/generic/lib/cl_khr_local_int32_base_atomics/atom_dec.cl
>> <http://atom_dec.cl>
>> b/generic/lib/cl_khr_local_int32_base_atomics/atom_dec.cl
>> <http://atom_dec.cl>
>> index d22c333..fd5fac8 100644
>> --- a/generic/lib/cl_khr_local_int32_base_atomics/atom_dec.cl
>> <http://atom_dec.cl>
>> +++ b/generic/lib/cl_khr_local_int32_base_atomics/atom_dec.cl
>> <http://atom_dec.cl>
>> @@ -1,7 +1,7 @@
>> #include <clc/clc.h>
>>
>> #define IMPL(TYPE) \
>> -_CLC_OVERLOAD _CLC_DEF TYPE atom_dec(local TYPE *p) { \
>> +_CLC_OVERLOAD _CLC_DEF TYPE atom_dec(volatile local TYPE *p) { \
>> return atom_sub(p, 1); \
>> }
>>
>> diff --git a/generic/lib/cl_khr_local_int32_base_atomics/atom_inc.cl
>> <http://atom_inc.cl>
>> b/generic/lib/cl_khr_local_int32_base_atomics/atom_inc.cl
>> <http://atom_inc.cl>
>> index 4ba0d06..7c57daa 100644
>> --- a/generic/lib/cl_khr_local_int32_base_atomics/atom_inc.cl
>> <http://atom_inc.cl>
>> +++ b/generic/lib/cl_khr_local_int32_base_atomics/atom_inc.cl
>> <http://atom_inc.cl>
>> @@ -1,7 +1,7 @@
>> #include <clc/clc.h>
>>
>> #define IMPL(TYPE) \
>> -_CLC_OVERLOAD _CLC_DEF TYPE atom_inc(local TYPE *p) { \
>> +_CLC_OVERLOAD _CLC_DEF TYPE atom_inc(volatile local TYPE *p) { \
>> return atom_add(p, 1); \
>> }
>>
>> diff --git a/generic/lib/cl_khr_local_int32_base_atomics/atom_sub.cl
>> <http://atom_sub.cl>
>> b/generic/lib/cl_khr_local_int32_base_atomics/atom_sub.cl
>> <http://atom_sub.cl>
>> index c96696a..b5f64a1 100644
>> --- a/generic/lib/cl_khr_local_int32_base_atomics/atom_sub.cl
>> <http://atom_sub.cl>
>> +++ b/generic/lib/cl_khr_local_int32_base_atomics/atom_sub.cl
>> <http://atom_sub.cl>
>> @@ -1,7 +1,7 @@
>> #include <clc/clc.h>
>>
>> #define IMPL(TYPE) \
>> -_CLC_OVERLOAD _CLC_DEF TYPE atom_sub(local TYPE *p, TYPE val) { \
>> +_CLC_OVERLOAD _CLC_DEF TYPE atom_sub(volatile local TYPE *p, TYPE
>> val) { \
>> return atomic_sub(p, val); \
>> }
>>
>> diff --git
>> a/generic/lib/cl_khr_local_int32_base_atomics/atom_xchg.cl
>> <http://atom_xchg.cl>
>> b/generic/lib/cl_khr_local_int32_base_atomics/atom_xchg.cl
>> <http://atom_xchg.cl>
>> index 7d4bcca..f2007d8 100644
>> --- a/generic/lib/cl_khr_local_int32_base_atomics/atom_xchg.cl
>> <http://atom_xchg.cl>
>> +++ b/generic/lib/cl_khr_local_int32_base_atomics/atom_xchg.cl
>> <http://atom_xchg.cl>
>> @@ -1,7 +1,7 @@
>> #include <clc/clc.h>
>>
>> #define IMPL(TYPE) \
>> -_CLC_OVERLOAD _CLC_DEF TYPE atom_xchg(local TYPE *p, TYPE val) { \
>> +_CLC_OVERLOAD _CLC_DEF TYPE atom_xchg(volatile local TYPE *p, TYPE
>> val) { \
>> return atomic_xchg(p, val); \
>> }
>>
>> diff --git
>> a/generic/lib/cl_khr_local_int32_extended_atomics/atom_and.cl
>> <http://atom_and.cl>
>> b/generic/lib/cl_khr_local_int32_extended_atomics/atom_and.cl
>> <http://atom_and.cl>
>> index 180103a..7e97ad1 100644
>> --- a/generic/lib/cl_khr_local_int32_extended_atomics/atom_and.cl
>> <http://atom_and.cl>
>> +++ b/generic/lib/cl_khr_local_int32_extended_atomics/atom_and.cl
>> <http://atom_and.cl>
>> @@ -1,9 +1,9 @@
>> #include <clc/clc.h>
>>
>> #define IMPL(TYPE) \
>> -_CLC_OVERLOAD _CLC_DEF TYPE atom_and(local TYPE *p, TYPE val) { \
>> +_CLC_OVERLOAD _CLC_DEF TYPE atom_and(volatile local TYPE *p, TYPE
>> val) { \
>> return atomic_and(p, val); \
>> }
>>
>> IMPL(int)
>> -IMPL(unsigned int)
>> \ No newline at end of file
>> +IMPL(unsigned int)
>> diff --git
>> a/generic/lib/cl_khr_local_int32_extended_atomics/atom_max.cl
>> <http://atom_max.cl>
>> b/generic/lib/cl_khr_local_int32_extended_atomics/atom_max.cl
>> <http://atom_max.cl>
>> index b90301b..c019646 100644
>> --- a/generic/lib/cl_khr_local_int32_extended_atomics/atom_max.cl
>> <http://atom_max.cl>
>> +++ b/generic/lib/cl_khr_local_int32_extended_atomics/atom_max.cl
>> <http://atom_max.cl>
>> @@ -1,7 +1,7 @@
>> #include <clc/clc.h>
>>
>> #define IMPL(TYPE) \
>> -_CLC_OVERLOAD _CLC_DEF TYPE atom_max(local TYPE *p, TYPE val) { \
>> +_CLC_OVERLOAD _CLC_DEF TYPE atom_max(volatile local TYPE *p, TYPE
>> val) { \
>> return atomic_max(p, val); \
>> }
>>
>> diff --git
>> a/generic/lib/cl_khr_local_int32_extended_atomics/atom_min.cl
>> <http://atom_min.cl>
>> b/generic/lib/cl_khr_local_int32_extended_atomics/atom_min.cl
>> <http://atom_min.cl>
>> index 3acedd8..77482f7 100644
>> --- a/generic/lib/cl_khr_local_int32_extended_atomics/atom_min.cl
>> <http://atom_min.cl>
>> +++ b/generic/lib/cl_khr_local_int32_extended_atomics/atom_min.cl
>> <http://atom_min.cl>
>> @@ -1,7 +1,7 @@
>> #include <clc/clc.h>
>>
>> #define IMPL(TYPE) \
>> -_CLC_OVERLOAD _CLC_DEF TYPE atom_min(local TYPE *p, TYPE val) { \
>> +_CLC_OVERLOAD _CLC_DEF TYPE atom_min(volatile local TYPE *p, TYPE
>> val) { \
>> return atomic_min(p, val); \
>> }
>>
>> diff --git
>> a/generic/lib/cl_khr_local_int32_extended_atomics/atom_or.cl
>> <http://atom_or.cl>
>> b/generic/lib/cl_khr_local_int32_extended_atomics/atom_or.cl
>> <http://atom_or.cl>
>> index 338ff2c..d9a12c7 100644
>> --- a/generic/lib/cl_khr_local_int32_extended_atomics/atom_or.cl
>> <http://atom_or.cl>
>> +++ b/generic/lib/cl_khr_local_int32_extended_atomics/atom_or.cl
>> <http://atom_or.cl>
>> @@ -1,7 +1,7 @@
>> #include <clc/clc.h>
>>
>> #define IMPL(TYPE) \
>> -_CLC_OVERLOAD _CLC_DEF TYPE atom_or(local TYPE *p, TYPE val) { \
>> +_CLC_OVERLOAD _CLC_DEF TYPE atom_or(volatile local TYPE *p, TYPE
>> val) { \
>> return atomic_or(p, val); \
>> }
>>
>> diff --git
>> a/generic/lib/cl_khr_local_int32_extended_atomics/atom_xor.cl
>> <http://atom_xor.cl>
>> b/generic/lib/cl_khr_local_int32_extended_atomics/atom_xor.cl
>> <http://atom_xor.cl>
>> index 51ae3c0..ee40bff 100644
>> --- a/generic/lib/cl_khr_local_int32_extended_atomics/atom_xor.cl
>> <http://atom_xor.cl>
>> +++ b/generic/lib/cl_khr_local_int32_extended_atomics/atom_xor.cl
>> <http://atom_xor.cl>
>> @@ -1,7 +1,7 @@
>> #include <clc/clc.h>
>>
>> #define IMPL(TYPE) \
>> -_CLC_OVERLOAD _CLC_DEF TYPE atom_xor(local TYPE *p, TYPE val) { \
>> +_CLC_OVERLOAD _CLC_DEF TYPE atom_xor(volatile local TYPE *p, TYPE
>> val) { \
>> return atomic_xor(p, val); \
>> }
>>
>> --
>> 2.0.4
>>
>>
>> _______________________________________________
>> Libclc-dev mailing list
>> Libclc-dev at pcc.me.uk <mailto:Libclc-dev at pcc.me.uk>
>> http://www.pcc.me.uk/cgi-bin/mailman/listinfo/libclc-dev
>>
>>
>>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/libclc-dev/attachments/20150226/44bddc16/attachment.html>
More information about the Libclc-dev
mailing list