[PATCH] D148796: [AMDGPU][GFX908] Add builtin support for global add atomic f16/f32

Mariusz Sikora via Phabricator via cfe-commits cfe-commits at lists.llvm.org
Thu Apr 20 05:39:01 PDT 2023


mariusz-sikora-at-amd created this revision.
Herald added subscribers: kosarev, kerbowa, hiraditya, tpr, dstuttard, yaxunl, jvesely, kzhuravl.
Herald added a project: All.
mariusz-sikora-at-amd requested review of this revision.
Herald added subscribers: llvm-commits, cfe-commits, wdng.
Herald added projects: clang, LLVM.

Global add atomic instructions f16/f32 are supported on many targets (like gfx908,
gfx90a, ... ), but only on gfx908 these instructions are not returning
old value from memory. This difference resulted to omitting them while
adding builtin support.

This change is extending support of existing builtins to support gfx908.
By default builtins are returning v2f16 or float types, but if target is
gfx908 then clang-sema will override return type to void. This will lead
later to errors if user is expecting to receive any return values from
builtins.


Repository:
  rG LLVM Github Monorepo

https://reviews.llvm.org/D148796

Files:
  clang/include/clang/Basic/BuiltinsAMDGPU.def
  clang/lib/Sema/SemaChecking.cpp
  clang/test/CodeGenOpenCL/amdgpu-features.cl
  clang/test/CodeGenOpenCL/builtins-amdgcn-fp-atomics-f16-gfx9-err.cl
  clang/test/CodeGenOpenCL/builtins-amdgcn-fp-atomics-f32-gfx9-err.cl
  clang/test/CodeGenOpenCL/builtins-amdgcn-fp-atomics-gfx908-err.cl
  clang/test/CodeGenOpenCL/builtins-amdgcn-fp-atomics-gfx908-noret-err.cl
  clang/test/CodeGenOpenCL/builtins-fp-atomics-gfx908.cl
  llvm/lib/TargetParser/TargetParser.cpp

-------------- next part --------------
A non-text attachment was scrubbed...
Name: D148796.515293.patch
Type: text/x-patch
Size: 15712 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/cfe-commits/attachments/20230420/7c66ee36/attachment-0001.bin>


More information about the cfe-commits mailing list