cl_khr_local_int32_extended_atomics

Optional extensions that implement atomic operations
on 32-bit signed and unsigned integers to locations in __local memory.

#pragma OPENCL EXTENSION cl_khr_local_int32_extended_atomics : enable

Description

An application that wants to use this extension will need to include the #pragma
OPENCL EXTENSION cl_khr_local_int32_extended_atomics : enable directive in the OpenCL program source.

The atomic functions supported by the cl_khr_local_int32_extended_atomics extension are described in the following table. All of the functions listed in the following table are performed in one atomic transaction.

Function

Description

int atom_min (__local int *p, int val)

unsigned int atom_min (__local unsigned int *p,
unsigned int val)

Read the 32-bit value (referred to as old)
stored at location pointed by p. Compute
min(old, val) and store minimum value at location
pointed by p. The function returns old.

int atom_max (__local int *p, int val)

unsigned int atom_max (__local unsigned int *p,
unsigned int val)

Read the 32-bit value (referred to as old)
stored at location pointed by p. Compute
max(old, val) and store maximum value at location
pointed by p. The function returns old.

int atom_and (__local int *p, int val)

unsigned int atom_and (__local unsigned int *p,
unsigned int val)

Read the 32-bit value (referred to as old)
stored at location p. Compute
(old & val) and store result at location pointed to
by p. The function returns old.

int atom_or (__local int *p, int val)

unsigned int atom_or (__local unsigned int *p,
unsigned int val)

Read the 32-bit value (referred to as old)
stored at location p. Compute
(old | val) and store result at location pointed to
by p. The function returns old.

int atom_xor (__local int *p, int val)

unsigned int atom_xor (__local unsigned int *p,
unsigned int val)

Read the 32-bit value (referred to as old)
stored at location p. Compute
(old ^ val) and store result at location pointed to
by p. The function returns old.