[flang-commits] [flang] 44c6a23 - [flang][OpenMP][AMDGPU] Allow REAL(10) to compile on AMDGPU (#129742)
via flang-commits
flang-commits at lists.llvm.org
Wed Mar 5 12:24:03 PST 2025
Author: Krzysztof Parzyszek
Date: 2025-03-05T14:23:59-06:00
New Revision: 44c6a23789b3ddd93b49405a7561ddf5024265e8
URL: https://github.com/llvm/llvm-project/commit/44c6a23789b3ddd93b49405a7561ddf5024265e8
DIFF: https://github.com/llvm/llvm-project/commit/44c6a23789b3ddd93b49405a7561ddf5024265e8.diff
LOG: [flang][OpenMP][AMDGPU] Allow REAL(10) to compile on AMDGPU (#129742)
This will allow the following code to compile
```
program p
real(10) :: x
!$omp target
continue
!$omp end target
end
```
Added:
flang/test/Lower/OpenMP/real10.f90
Modified:
flang/include/flang/Tools/TargetSetup.h
Removed:
################################################################################
diff --git a/flang/include/flang/Tools/TargetSetup.h b/flang/include/flang/Tools/TargetSetup.h
index d167f44fe2fd7..ee05d891db353 100644
--- a/flang/include/flang/Tools/TargetSetup.h
+++ b/flang/include/flang/Tools/TargetSetup.h
@@ -42,9 +42,14 @@ namespace Fortran::tools {
targetCharacteristics.set_hasSubnormalFlushingControl(/*kind=*/8);
}
- if (targetTriple.getArch() != llvm::Triple::ArchType::x86_64) {
+ switch (targetTriple.getArch()) {
+ case llvm::Triple::ArchType::amdgcn:
+ case llvm::Triple::ArchType::x86_64:
+ break;
+ default:
targetCharacteristics.DisableType(
Fortran::common::TypeCategory::Real, /*kind=*/10);
+ break;
}
// Check for kind=16 support. See flang/runtime/Float128Math/math-entries.h.
diff --git a/flang/test/Lower/OpenMP/real10.f90 b/flang/test/Lower/OpenMP/real10.f90
new file mode 100644
index 0000000000000..0a092ebf6317e
--- /dev/null
+++ b/flang/test/Lower/OpenMP/real10.f90
@@ -0,0 +1,13 @@
+!REQUIRES: amdgpu-registered-target
+
+!RUN: %flang_fc1 -emit-hlfir -fopenmp -triple amdgcn -fopenmp -fopenmp-is-target-device -o - %s | FileCheck %s
+
+!CHECK: hlfir.declare %0 {uniq_name = "_QFEx"} : (!fir.ref<f80>) -> (!fir.ref<f80>, !fir.ref<f80>)
+
+program p
+ real(10) :: x
+ !$omp target
+ continue
+ !$omp end target
+end
+
More information about the flang-commits
mailing list