~ubuntu-branches/ubuntu/vivid/libclc/vivid

« back to all changes in this revision

Viewing changes to r600/lib/atomic/atomic.cl

  • Committer: Package Import Robot
  • Author(s): Michael Gilbert, Julian Wollrath, Michael Gilbert
  • Date: 2014-01-10 02:46:15 UTC
  • mfrom: (1.1.1)
  • Revision ID: package-import@ubuntu.com-20140110024615-7htdxf30p179tsq5
Tags: 0~git20140101-1
[ Julian Wollrath ]
* New upstream snapshot.
* Use LLVM 3.4 and correct dependencies.
* Enable verbose build.
* Bump standards version to 3.9.5 (no changes needed).
* Update years in debian/copyright.

[ Michael Gilbert ]
* Eliminate duplicated files.

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
#include <clc/clc.h>
 
2
 
 
3
#define ATOMIC_FUNC_TYPE(SIGN, TYPE, FUNCTION, CL_ADDRSPACE, LLVM_ADDRSPACE) \
 
4
_CLC_OVERLOAD _CLC_DEF SIGN TYPE FUNCTION (volatile CL_ADDRSPACE SIGN TYPE *p, SIGN TYPE val) { \
 
5
        return (SIGN TYPE)__clc_##FUNCTION##_addr##LLVM_ADDRSPACE((volatile CL_ADDRSPACE signed TYPE*)p, (signed TYPE)val); \
 
6
}
 
7
 
 
8
#define ATOMIC_FUNC_SIGN(TYPE, FUNCTION, CL_ADDRSPACE, LLVM_ADDRSPACE) \
 
9
        _CLC_DECL signed TYPE __clc_##FUNCTION##_addr##LLVM_ADDRSPACE(volatile CL_ADDRSPACE signed TYPE*, signed TYPE); \
 
10
        ATOMIC_FUNC_TYPE(signed, TYPE, FUNCTION, CL_ADDRSPACE, LLVM_ADDRSPACE) \
 
11
        ATOMIC_FUNC_TYPE(unsigned, TYPE, FUNCTION, CL_ADDRSPACE, LLVM_ADDRSPACE)
 
12
 
 
13
#define ATOMIC_FUNC_ADDRSPACE(TYPE, FUNCTION) \
 
14
        ATOMIC_FUNC_SIGN(TYPE, FUNCTION, global, 1) \
 
15
        ATOMIC_FUNC_SIGN(TYPE, FUNCTION, local, 3)
 
16
 
 
17
#define ATOMIC_FUNC(FUNCTION) \
 
18
        ATOMIC_FUNC_ADDRSPACE(int, FUNCTION)
 
19
 
 
20
ATOMIC_FUNC(atomic_add)
 
21
ATOMIC_FUNC(atomic_sub)