| // 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}} | |
| } |