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; +}