Skip to content

Commit a32a535

Browse files
author
Hugh Delaney
committed
Refactor
1 parent 22cd0ef commit a32a535

File tree

5 files changed

+16
-28
lines changed

5 files changed

+16
-28
lines changed

libclc/amdgcn-amdhsa/libspirv/atomic/atomic_add.cl

Lines changed: 5 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -22,14 +22,11 @@ AMDGPU_ATOMIC(_Z18__spirv_AtomicIAdd, unsigned long, m, __hip_atomic_fetch_add)
2222
_Z21__spirv_AtomicFAddEXTP##AS_MANGLED##fN5__spv5Scope4FlagENS##SUB1##_19MemorySemanticsMask4FlagEf( \
2323
volatile AS float *p, enum Scope scope, \
2424
enum MemorySemanticsMask semantics, float val) { \
25-
if (CHECK) { \
26-
float ret = NEW_BUILTIN(p, val); \
27-
return *(float *)&ret; \
28-
} \
25+
if (CHECK) \
26+
return NEW_BUILTIN(p, val); \
2927
int atomic_scope = 0, memory_order = 0; \
3028
GET_ATOMIC_SCOPE_AND_ORDER(scope, atomic_scope, semantics, memory_order) \
31-
float ret = __hip_atomic_fetch_add(p, val, memory_order, atomic_scope); \
32-
return *(float *)&ret; \
29+
return __hip_atomic_fetch_add(p, val, memory_order, atomic_scope); \
3330
}
3431

3532
AMDGPU_ATOMIC_FP32_ADD_IMPL(global, U3AS1, 1,
@@ -56,10 +53,8 @@ AMDGPU_ATOMIC_FP32_ADD_IMPL(, , 0,
5653
_Z21__spirv_AtomicFAddEXTP##AS_MANGLED##dN5__spv5Scope4FlagENS##SUB1##_19MemorySemanticsMask4FlagEd( \
5754
volatile AS double *p, enum Scope scope, \
5855
enum MemorySemanticsMask semantics, double val) { \
59-
if (CHECK) { \
60-
double ret = NEW_BUILTIN(p, val); \
61-
return *(double *)&ret; \
62-
} \
56+
if (CHECK) \
57+
return NEW_BUILTIN(p, val); \
6358
int atomic_scope = 0, memory_order = 0; \
6459
volatile AS long *int_pointer = (volatile AS long *)p; \
6560
long old_int_val = 0, new_int_val = 0; \

libclc/amdgcn-amdhsa/libspirv/atomic/atomic_helpers.h

Lines changed: 7 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -52,20 +52,18 @@
5252
} \
5353
}
5454

55-
#define AMDGPU_ATOMIC_IMPL(FUNC_NAME, TYPE, TYPE_MANGLED, AS, AS_MANGLED, \
55+
#define AMDGPU_ATOMIC_IMPL(FUNC_NAME, TYPE, TYPE_MANGLED, AS, AS_MANGLED, \
5656
SUB1, BUILTIN) \
57-
_CLC_DEF TYPE \
57+
_CLC_DEF TYPE \
5858
FUNC_NAME##P##AS_MANGLED##TYPE_MANGLED##N5__spv5Scope4FlagENS##SUB1##_19MemorySemanticsMask4FlagE##TYPE_MANGLED( \
59-
volatile AS TYPE *p, enum Scope scope, \
60-
enum MemorySemanticsMask semantics, TYPE val) { \
61-
int atomic_scope = 0, memory_order = 0; \
62-
GET_ATOMIC_SCOPE_AND_ORDER(scope, atomic_scope, semantics, memory_order) \
63-
TYPE ret = BUILTIN(p, val, memory_order, atomic_scope); \
64-
return *(TYPE *)&ret; \
59+
volatile AS TYPE *p, enum Scope scope, \
60+
enum MemorySemanticsMask semantics, TYPE val) { \
61+
int atomic_scope = 0, memory_order = 0; \
62+
GET_ATOMIC_SCOPE_AND_ORDER(scope, atomic_scope, semantics, memory_order) \
63+
return BUILTIN(p, val, memory_order, atomic_scope); \
6564
}
6665

6766
#define AMDGPU_ATOMIC(FUNC_NAME, TYPE, TYPE_MANGLED, BUILTIN) \
6867
AMDGPU_ATOMIC_IMPL(FUNC_NAME, TYPE, TYPE_MANGLED, global, U3AS1, 1, BUILTIN) \
6968
AMDGPU_ATOMIC_IMPL(FUNC_NAME, TYPE, TYPE_MANGLED, local, U3AS3, 1, BUILTIN) \
7069
AMDGPU_ATOMIC_IMPL(FUNC_NAME, TYPE, TYPE_MANGLED, , , 0, BUILTIN)
71-

libclc/amdgcn-amdhsa/libspirv/atomic/atomic_load.cl

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -17,8 +17,7 @@
1717
enum MemorySemanticsMask semantics) { \
1818
int atomic_scope = 0, memory_order = 0; \
1919
GET_ATOMIC_SCOPE_AND_ORDER(scope, atomic_scope, semantics, memory_order) \
20-
TYPE res = __hip_atomic_load(p, memory_order, atomic_scope); \
21-
return *(TYPE *)&res; \
20+
return __hip_atomic_load(p, memory_order, atomic_scope); \
2221
}
2322

2423
#define AMDGPU_ATOMIC_LOAD(TYPE, TYPE_MANGLED) \

libclc/amdgcn-amdhsa/libspirv/atomic/atomic_minmax.h

Lines changed: 2 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -26,10 +26,8 @@
2626
_Z21__spirv_AtomicF##OPNAME##EXTP##AS_MANGLED##TYPE_MANGLED##N5__spv5Scope4FlagENS##SUB1##_19MemorySemanticsMask4FlagE##TYPE_MANGLED( \
2727
volatile AS TYPE *p, enum Scope scope, \
2828
enum MemorySemanticsMask semantics, TYPE val) { \
29-
if (CHECK) { \
30-
TYPE ret = NEW_BUILTIN(p, val); \
31-
return *(TYPE *)&ret; \
32-
} \
29+
if (CHECK) \
30+
return NEW_BUILTIN(p, val); \
3331
int atomic_scope = 0, memory_order = 0; \
3432
volatile AS STORAGE_TYPE *int_pointer = (volatile AS STORAGE_TYPE *)p; \
3533
STORAGE_TYPE old_int_val = 0, new_int_val = 0; \
@@ -49,4 +47,3 @@
4947
\
5048
return old_val; \
5149
}
52-

libclc/amdgcn-amdhsa/libspirv/atomic/atomic_sub.cl

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -18,8 +18,7 @@
1818
enum MemorySemanticsMask semantics, TYPE val) { \
1919
int atomic_scope = 0, memory_order = 0; \
2020
GET_ATOMIC_SCOPE_AND_ORDER(scope, atomic_scope, semantics, memory_order) \
21-
TYPE ret = BUILTIN(p, val, memory_order); \
22-
return *(TYPE *)&ret; \
21+
return BUILTIN(p, val, memory_order); \
2322
}
2423

2524
#define AMDGPU_ATOMIC_SUB(FUNC_NAME, TYPE, TYPE_MANGLED, BUILTIN) \

0 commit comments

Comments
 (0)