[PATCH] D145345: [HIP] Fix regression about `__fp16` args and return value
This revision was automatically updated to reflect the committed changes. Closed by commit rG7f12dcac79f3: [HIP] Fix regression about `__fp16` args and return value (authored by yaxunl). Herald added a project: clang. Changed prior to commit: https://reviews.llvm.org/D145345?vs=502498=546079#toc Repository: rG LLVM Github Monorepo CHANGES SINCE LAST ACTION https://reviews.llvm.org/D145345/new/ 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 @@ -245,6 +245,7 @@ MaxAtomicPromoteWidth = MaxAtomicInlineWidth = 64; CUMode = !(GPUFeatures & llvm::AMDGPU::FEATURE_WGP); ReadOnlyFeatures.insert("image-insts"); + HalfArgsAndReturns = true; } void AMDGPUTargetInfo::adjust(DiagnosticsEngine , LangOptions ) { 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 @@ -245,6 +245,7 @@ MaxAtomicPromoteWidth = MaxAtomicInlineWidth = 64; CUMode = !(GPUFeatures & llvm::AMDGPU::FEATURE_WGP); ReadOnlyFeatures.insert("image-insts"); + HalfArgsAndReturns = true; } void AMDGPUTargetInfo::adjust(DiagnosticsEngine , LangOptions ) { ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
[PATCH] D145345: [HIP] Fix regression about `__fp16` args and return value
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 , LangOptions ) { 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 , LangOptions ) { ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits