blob: 4ddd3f38dd8966a7a722915333726c330a64b781 [file] [edit]
// REQUIRES: amdgpu-registered-target
// RUN: %clang_cc1 %s -verify -emit-llvm -O0 -o - \
// RUN: -triple=amdgcn-amd-amdhsa \
// RUN: -target-cpu gfx942
// Test that [[clang::amdgpu_av("none")]] on AMDGPU-specific atomic builtins
// is rejected with a warning.
void test_atomic_inc32_av(volatile unsigned *p, unsigned val) {
[[clang::amdgpu_av("none")]] __builtin_amdgcn_atomic_inc32(p, val, __ATOMIC_SEQ_CST, "agent"); // expected-warning {{only applies to atomic expressions or Clang atomic builtins}}
}
void test_atomic_dec64_av(volatile unsigned long *p, unsigned long val) {
[[clang::amdgpu_av("none")]] __builtin_amdgcn_atomic_dec64(p, val, __ATOMIC_ACQUIRE, "agent"); // expected-warning {{only applies to atomic expressions or Clang atomic builtins}}
}
void test_ds_faddf_av(float __attribute__((address_space(3))) *p, float val) {
[[clang::amdgpu_av("none")]] __builtin_amdgcn_ds_faddf(p, val, __ATOMIC_ACQUIRE, __ATOMIC_ACQUIRE, false); // expected-warning {{only applies to atomic expressions or Clang atomic builtins}}
}
void test_global_atomic_fadd_av(float __attribute__((address_space(1))) *p, float val) {
[[clang::amdgpu_av("none")]] __builtin_amdgcn_global_atomic_fadd_f32(p, val); // expected-warning {{only applies to atomic expressions or Clang atomic builtins}}
}