[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