[PATCH] D145345: [HIP] Fix regression about `__fp16` args and return value

Yaxun Liu via Phabricator via cfe-commits cfe-commits at lists.llvm.org
Sun Mar 5 18:17:59 PST 2023


yaxunl created this revision.
yaxunl added a reviewer: tra.
Herald added subscribers: kosarev, kerbowa, jvesely.
Herald added a project: All.
yaxunl requested review of this revision.

HIP allows `__fp16` as function arguments and return value by passing
`-fallow-half-arguments-and-returns` to clang through hipcc.

https://reviews.llvm.org/D133885 removed `-fallow-half-arguments-and-returns`
and add a TargetInfo member to control it.

This caused regressions in some HIP apps (https://github.com/ROCm-Developer-Tools/HIP/issues/3178).


https://reviews.llvm.org/D145345

Files:
  clang/lib/Basic/Targets/AMDGPU.cpp
  clang/test/SemaCUDA/fp16-arg-return.cu


Index: clang/test/SemaCUDA/fp16-arg-return.cu
===================================================================
--- /dev/null
+++ clang/test/SemaCUDA/fp16-arg-return.cu
@@ -0,0 +1,7 @@
+// RUN: %clang_cc1 -emit-llvm -o - -triple amdgcn-amd-amdhsa -fcuda-is-device -fsyntax-only -verify %s
+
+// expected-no-diagnostics
+
+__fp16 testFP16AsArgAndReturn(__fp16 x) {
+  return x;
+}
Index: clang/lib/Basic/Targets/AMDGPU.cpp
===================================================================
--- clang/lib/Basic/Targets/AMDGPU.cpp
+++ clang/lib/Basic/Targets/AMDGPU.cpp
@@ -416,6 +416,7 @@
   }
 
   MaxAtomicPromoteWidth = MaxAtomicInlineWidth = 64;
+  HalfArgsAndReturns = true;
 }
 
 void AMDGPUTargetInfo::adjust(DiagnosticsEngine &Diags, LangOptions &Opts) {


-------------- next part --------------
A non-text attachment was scrubbed...
Name: D145345.502498.patch
Type: text/x-patch
Size: 764 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/cfe-commits/attachments/20230306/282ade8a/attachment.bin>


More information about the cfe-commits mailing list