forked from OSchip/llvm-project
675cefbf60
Summary: __builtin_amdgcn_atomic_inc32(int *Ptr, int Val, unsigned MemoryOrdering, const char *SyncScope) __builtin_amdgcn_atomic_inc64(int64_t *Ptr, int64_t Val, unsigned MemoryOrdering, const char *SyncScope) __builtin_amdgcn_atomic_dec32(int *Ptr, int Val, unsigned MemoryOrdering, const char *SyncScope) __builtin_amdgcn_atomic_dec64(int64_t *Ptr, int64_t Val, unsigned MemoryOrdering, const char *SyncScope) First and second arguments gets transparently passed to the amdgcn atomic inc/dec intrinsic. Fifth argument of the intrinsic is set as true if the first argument of the builtin is a volatile pointer. The third argument of this builtin is one of the memory-ordering specifiers ATOMIC_ACQUIRE, ATOMIC_RELEASE, ATOMIC_ACQ_REL, or ATOMIC_SEQ_CST following C++11 memory model semantics. This is mapped to corresponding LLVM atomic memory ordering for the atomic inc/dec instruction using CLANG atomic C ABI. The fourth argument is an AMDGPU-specific synchronization scope defined as string. Reviewers: arsenm, sameerds, JonChesterfield, jdoerfert Reviewed By: arsenm, sameerds Subscribers: kzhuravl, jvesely, wdng, nhaehnle, yaxunl, dstuttard, tpr, t-tye, jfb, kerbowa, cfe-commits Tags: #clang Differential Revision: https://reviews.llvm.org/D80804 |
||
---|---|---|
.. | ||
access-qualifier.cl | ||
address-spaces-conversions-cl2.0.cl | ||
address-spaces.cl | ||
amdgpu-attrs.cl | ||
arithmetic-conversions.cl | ||
arm-integer-dot-product.cl | ||
array-init.cl | ||
array-parameters.cl | ||
as_type.cl | ||
atomic-init.cl | ||
atomic-ops.cl | ||
block-array-capturing.cl | ||
bool-vectors.cl | ||
builtin.cl | ||
builtins-amdgcn-error-ci.cl | ||
builtins-amdgcn-error-f16.cl | ||
builtins-amdgcn-error-flat-address-space.cl | ||
builtins-amdgcn-error-gfx9.cl | ||
builtins-amdgcn-error-gfx10-param.cl | ||
builtins-amdgcn-error-gfx10.cl | ||
builtins-amdgcn-error-gfx908-param.cl | ||
builtins-amdgcn-error-vi.cl | ||
builtins-amdgcn-error.cl | ||
cl20-device-side-enqueue.cl | ||
clang-builtin-version.cl | ||
clk_event_t.cl | ||
cond.cl | ||
convergent.cl | ||
endian-attr.cl | ||
event_t.cl | ||
event_t_overload.cl | ||
ext_vectors.cl | ||
extension-begin.cl | ||
extension-begin.h | ||
extension-version.cl | ||
extensions.cl | ||
fdeclare-opencl-builtins.cl | ||
format-strings-fixit.cl | ||
func.cl | ||
half.cl | ||
images.cl | ||
init.cl | ||
intel-subgroup-avc-ext-types.cl | ||
invalid-assignment-constant-address-space.cl | ||
invalid-block.cl | ||
invalid-constant.cl | ||
invalid-image.cl | ||
invalid-kernel-attrs.cl | ||
invalid-kernel-parameters.cl | ||
invalid-kernel.cl | ||
invalid-pipe-builtin-cl2.0.cl | ||
invalid-pipes-cl2.0.cl | ||
lit.local.cfg | ||
logical-ops.cl | ||
multistep-explicit-cast.cl | ||
nosvm.cl | ||
null_literal.cl | ||
null_queue.cl | ||
numbered-address-space.cl | ||
pipes-1.2-negative.cl | ||
predefined-expr.cl | ||
printf-format-string-warnings.cl | ||
printf-format-strings.cl | ||
queue_t_overload.cl | ||
sampler_t.cl | ||
sampler_t_overload.cl | ||
shifts.cl | ||
sizeof.cl | ||
storageclass-cl20.cl | ||
storageclass.cl | ||
str_literals.cl | ||
to_addr_builtin.cl | ||
types.cl | ||
unroll-hint.cl | ||
unsupported.cl | ||
vec_compare.cl | ||
vec_step.cl | ||
vector_conv_invalid.cl | ||
vector_inc_dec_ops.cl | ||
vector_literals_invalid.cl | ||
vector_swizzle_length.cl | ||
warn-missing-prototypes.cl |