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) {
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) {
_______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits