|
18 | 18 | enum MemorySemanticsMask semantics, TYPE val) { \
|
19 | 19 | int atomic_scope = 0, memory_order = 0; \
|
20 | 20 | GET_ATOMIC_SCOPE_AND_ORDER(scope, atomic_scope, semantics, memory_order) \
|
21 |
| - return BUILTIN(p, val, memory_order); \ |
| 21 | + return BUILTIN(p, -val, memory_order); \ |
22 | 22 | }
|
23 | 23 |
|
24 | 24 | #define AMDGPU_ATOMIC_SUB(FUNC_NAME, TYPE, TYPE_MANGLED, BUILTIN) \
|
|
28 | 28 | BUILTIN) \
|
29 | 29 | AMDGPU_ATOMIC_SUB_IMPL(FUNC_NAME, TYPE, TYPE_MANGLED, , , 0, BUILTIN)
|
30 | 30 |
|
31 |
| -AMDGPU_ATOMIC_SUB(_Z18__spirv_AtomicISub, int, i, __atomic_fetch_sub) |
32 |
| -AMDGPU_ATOMIC_SUB(_Z18__spirv_AtomicISub, unsigned int, j, __atomic_fetch_sub) |
33 |
| -AMDGPU_ATOMIC_SUB(_Z18__spirv_AtomicISub, long, l, __atomic_fetch_sub) |
34 |
| -AMDGPU_ATOMIC_SUB(_Z18__spirv_AtomicISub, unsigned long, m, __atomic_fetch_sub) |
35 |
| -AMDGPU_ATOMIC_SUB(_Z21__spirv_AtomicFSubEXT, float, f, __atomic_fetch_sub) |
| 31 | +AMDGPU_ATOMIC_SUB(_Z18__spirv_AtomicISub, int, i, __atomic_fetch_add) |
| 32 | +AMDGPU_ATOMIC_SUB(_Z18__spirv_AtomicISub, unsigned int, j, __atomic_fetch_add) |
| 33 | +AMDGPU_ATOMIC_SUB(_Z18__spirv_AtomicISub, long, l, __atomic_fetch_add) |
| 34 | +AMDGPU_ATOMIC_SUB(_Z18__spirv_AtomicISub, unsigned long, m, __atomic_fetch_add) |
36 | 35 |
|
37 | 36 | #undef AMDGPU_ATOMIC
|
38 | 37 | #undef AMDGPU_ATOMIC_IMPL
|
|
0 commit comments