[flang-commits] [flang] Revert "[flang][runtime] Use cuda::std::complex in F18 runtime CUDA build." (PR #109173)
via flang-commits
flang-commits at lists.llvm.org
Wed Sep 18 11:23:01 PDT 2024
llvmbot wrote:
<!--LLVM PR SUMMARY COMMENT-->
@llvm/pr-subscribers-flang-runtime
Author: Slava Zakharin (vzakhari)
<details>
<summary>Changes</summary>
Reverts llvm/llvm-project#<!-- -->109078
---
Patch is 91.70 KiB, truncated to 20.00 KiB below, full version: https://github.com/llvm/llvm-project/pull/109173.diff
23 Files Affected:
- (removed) flang/include/flang/Common/float80.h (-43)
- (removed) flang/include/flang/Runtime/complex.h (-31)
- (modified) flang/include/flang/Runtime/cpp-type.h (+4-5)
- (modified) flang/include/flang/Runtime/matmul-instances.inc (+3-3)
- (modified) flang/include/flang/Runtime/numeric.h (+16-16)
- (modified) flang/include/flang/Runtime/reduce.h (+85-129)
- (modified) flang/include/flang/Runtime/reduction.h (+52-60)
- (modified) flang/include/flang/Runtime/transformational.h (+8-12)
- (modified) flang/runtime/complex-powi.cpp (+10-13)
- (modified) flang/runtime/complex-reduction.c (+4-4)
- (modified) flang/runtime/dot-product.cpp (+14-7)
- (modified) flang/runtime/extrema.cpp (+5-5)
- (modified) flang/runtime/matmul-transpose.cpp (+17)
- (modified) flang/runtime/matmul.cpp (+28-6)
- (modified) flang/runtime/numeric.cpp (+18-18)
- (modified) flang/runtime/product.cpp (+11-4)
- (modified) flang/runtime/random.cpp (+1-1)
- (modified) flang/runtime/reduce.cpp (+82-98)
- (modified) flang/runtime/reduction-templates.h (+2-2)
- (modified) flang/runtime/sum.cpp (+10-12)
- (modified) flang/runtime/transformational.cpp (+4-4)
- (modified) flang/unittests/Runtime/Numeric.cpp (+2-2)
- (modified) flang/unittests/Runtime/Transformational.cpp (+5-5)
``````````diff
diff --git a/flang/include/flang/Common/float80.h b/flang/include/flang/Common/float80.h
deleted file mode 100644
index 1838f7b13c8bb2..00000000000000
--- a/flang/include/flang/Common/float80.h
+++ /dev/null
@@ -1,43 +0,0 @@
-/*===-- flang/Common/float80.h --------------------------------------*- C -*-===
- *
- * Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
- * See https://llvm.org/LICENSE.txt for license information.
- * SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
- *
- *===----------------------------------------------------------------------===*/
-
-/* This header is usable in both C and C++ code.
- * Isolates build compiler checks to determine if the 80-bit
- * floating point format is supported via a particular C type.
- * It defines CFloat80Type and CppFloat80Type aliases for this
- * C type.
- */
-
-#ifndef FORTRAN_COMMON_FLOAT80_H_
-#define FORTRAN_COMMON_FLOAT80_H_
-
-#include "api-attrs.h"
-#include <float.h>
-
-#if LDBL_MANT_DIG == 64
-#undef HAS_FLOAT80
-#define HAS_FLOAT80 1
-#endif
-
-#if defined(RT_DEVICE_COMPILATION) && defined(__CUDACC__)
-/*
- * 'long double' is treated as 'double' in the CUDA device code,
- * and there is no support for 80-bit floating point format.
- * This is probably true for most offload devices, so RT_DEVICE_COMPILATION
- * check should be enough. For the time being, guard it with __CUDACC__
- * as well.
- */
-#undef HAS_FLOAT80
-#endif
-
-#if HAS_FLOAT80
-typedef long double CFloat80Type;
-typedef long double CppFloat80Type;
-#endif
-
-#endif /* FORTRAN_COMMON_FLOAT80_H_ */
diff --git a/flang/include/flang/Runtime/complex.h b/flang/include/flang/Runtime/complex.h
deleted file mode 100644
index b7ad1376bffbf1..00000000000000
--- a/flang/include/flang/Runtime/complex.h
+++ /dev/null
@@ -1,31 +0,0 @@
-//===-- include/flang/Runtime/complex.h -------------------------*- C++ -*-===//
-//
-// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
-// See https://llvm.org/LICENSE.txt for license information.
-// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
-//
-//===----------------------------------------------------------------------===//
-
-// A single way to expose C++ complex class in files that can be used
-// in F18 runtime build. With inclusion of this file std::complex
-// and the related names become available, though, they may correspond
-// to alternative definitions (e.g. from cuda::std namespace).
-
-#ifndef FORTRAN_RUNTIME_COMPLEX_H
-#define FORTRAN_RUNTIME_COMPLEX_H
-
-#if RT_USE_LIBCUDACXX
-#include <cuda/std/complex>
-namespace Fortran::runtime::rtcmplx {
-using cuda::std::complex;
-using cuda::std::conj;
-} // namespace Fortran::runtime::rtcmplx
-#else // !RT_USE_LIBCUDACXX
-#include <complex>
-namespace Fortran::runtime::rtcmplx {
-using std::complex;
-using std::conj;
-} // namespace Fortran::runtime::rtcmplx
-#endif // !RT_USE_LIBCUDACXX
-
-#endif // FORTRAN_RUNTIME_COMPLEX_H
diff --git a/flang/include/flang/Runtime/cpp-type.h b/flang/include/flang/Runtime/cpp-type.h
index aef0fbd7ede586..fe21dd544cf7d8 100644
--- a/flang/include/flang/Runtime/cpp-type.h
+++ b/flang/include/flang/Runtime/cpp-type.h
@@ -13,9 +13,8 @@
#include "flang/Common/Fortran.h"
#include "flang/Common/float128.h"
-#include "flang/Common/float80.h"
#include "flang/Common/uint128.h"
-#include "flang/Runtime/complex.h"
+#include <complex>
#include <cstdint>
#if __cplusplus >= 202302
#include <stdfloat>
@@ -71,9 +70,9 @@ template <> struct CppTypeForHelper<TypeCategory::Real, 8> {
using type = double;
#endif
};
-#if HAS_FLOAT80
+#if LDBL_MANT_DIG == 64
template <> struct CppTypeForHelper<TypeCategory::Real, 10> {
- using type = CppFloat80Type;
+ using type = long double;
};
#endif
#if __STDCPP_FLOAT128_T__
@@ -90,7 +89,7 @@ template <> struct CppTypeForHelper<TypeCategory::Real, 16> {
#endif
template <int KIND> struct CppTypeForHelper<TypeCategory::Complex, KIND> {
- using type = rtcmplx::complex<CppTypeFor<TypeCategory::Real, KIND>>;
+ using type = std::complex<CppTypeFor<TypeCategory::Real, KIND>>;
};
template <> struct CppTypeForHelper<TypeCategory::Character, 1> {
diff --git a/flang/include/flang/Runtime/matmul-instances.inc b/flang/include/flang/Runtime/matmul-instances.inc
index 88e3067ca029d4..32c6ab06d25219 100644
--- a/flang/include/flang/Runtime/matmul-instances.inc
+++ b/flang/include/flang/Runtime/matmul-instances.inc
@@ -111,7 +111,7 @@ FOREACH_MATMUL_TYPE_PAIR(MATMUL_DIRECT_INSTANCE)
FOREACH_MATMUL_TYPE_PAIR_WITH_INT16(MATMUL_INSTANCE)
FOREACH_MATMUL_TYPE_PAIR_WITH_INT16(MATMUL_DIRECT_INSTANCE)
-#if MATMUL_FORCE_ALL_TYPES || HAS_FLOAT80
+#if MATMUL_FORCE_ALL_TYPES || LDBL_MANT_DIG == 64
MATMUL_INSTANCE(Integer, 16, Real, 10)
MATMUL_INSTANCE(Integer, 16, Complex, 10)
MATMUL_INSTANCE(Real, 10, Integer, 16)
@@ -133,7 +133,7 @@ MATMUL_DIRECT_INSTANCE(Complex, 16, Integer, 16)
#endif
#endif // MATMUL_FORCE_ALL_TYPES || (defined __SIZEOF_INT128__ && !AVOID_NATIVE_UINT128_T)
-#if MATMUL_FORCE_ALL_TYPES || HAS_FLOAT80
+#if MATMUL_FORCE_ALL_TYPES || LDBL_MANT_DIG == 64
#define FOREACH_MATMUL_TYPE_PAIR_WITH_REAL10(macro) \
macro(Integer, 1, Real, 10) \
macro(Integer, 1, Complex, 10) \
@@ -193,7 +193,7 @@ MATMUL_DIRECT_INSTANCE(Complex, 10, Complex, 16)
MATMUL_DIRECT_INSTANCE(Complex, 16, Real, 10)
MATMUL_DIRECT_INSTANCE(Complex, 16, Complex, 10)
#endif
-#endif // MATMUL_FORCE_ALL_TYPES || HAS_FLOAT80
+#endif // MATMUL_FORCE_ALL_TYPES || LDBL_MANT_DIG == 64
#if MATMUL_FORCE_ALL_TYPES || (LDBL_MANT_DIG == 113 || HAS_FLOAT128)
#define FOREACH_MATMUL_TYPE_PAIR_WITH_REAL16(macro) \
diff --git a/flang/include/flang/Runtime/numeric.h b/flang/include/flang/Runtime/numeric.h
index c3923ee2e0d889..84a5a7cd7a361c 100644
--- a/flang/include/flang/Runtime/numeric.h
+++ b/flang/include/flang/Runtime/numeric.h
@@ -44,7 +44,7 @@ CppTypeFor<TypeCategory::Integer, 8> RTDECL(Ceiling8_8)(
CppTypeFor<TypeCategory::Integer, 16> RTDECL(Ceiling8_16)(
CppTypeFor<TypeCategory::Real, 8>);
#endif
-#if HAS_FLOAT80
+#if LDBL_MANT_DIG == 64
CppTypeFor<TypeCategory::Integer, 1> RTDECL(Ceiling10_1)(
CppTypeFor<TypeCategory::Real, 10>);
CppTypeFor<TypeCategory::Integer, 2> RTDECL(Ceiling10_2)(
@@ -78,7 +78,7 @@ CppTypeFor<TypeCategory::Real, 4> RTDECL(ErfcScaled4)(
CppTypeFor<TypeCategory::Real, 4>);
CppTypeFor<TypeCategory::Real, 8> RTDECL(ErfcScaled8)(
CppTypeFor<TypeCategory::Real, 8>);
-#if HAS_FLOAT80
+#if LDBL_MANT_DIG == 64
CppTypeFor<TypeCategory::Real, 10> RTDECL(ErfcScaled10)(
CppTypeFor<TypeCategory::Real, 10>);
#endif
@@ -96,7 +96,7 @@ CppTypeFor<TypeCategory::Integer, 4> RTDECL(Exponent8_4)(
CppTypeFor<TypeCategory::Real, 8>);
CppTypeFor<TypeCategory::Integer, 8> RTDECL(Exponent8_8)(
CppTypeFor<TypeCategory::Real, 8>);
-#if HAS_FLOAT80
+#if LDBL_MANT_DIG == 64
CppTypeFor<TypeCategory::Integer, 4> RTDECL(Exponent10_4)(
CppTypeFor<TypeCategory::Real, 10>);
CppTypeFor<TypeCategory::Integer, 8> RTDECL(Exponent10_8)(
@@ -134,7 +134,7 @@ CppTypeFor<TypeCategory::Integer, 8> RTDECL(Floor8_8)(
CppTypeFor<TypeCategory::Integer, 16> RTDECL(Floor8_16)(
CppTypeFor<TypeCategory::Real, 8>);
#endif
-#if HAS_FLOAT80
+#if LDBL_MANT_DIG == 64
CppTypeFor<TypeCategory::Integer, 1> RTDECL(Floor10_1)(
CppTypeFor<TypeCategory::Real, 10>);
CppTypeFor<TypeCategory::Integer, 2> RTDECL(Floor10_2)(
@@ -168,7 +168,7 @@ CppTypeFor<TypeCategory::Real, 4> RTDECL(Fraction4)(
CppTypeFor<TypeCategory::Real, 4>);
CppTypeFor<TypeCategory::Real, 8> RTDECL(Fraction8)(
CppTypeFor<TypeCategory::Real, 8>);
-#if HAS_FLOAT80
+#if LDBL_MANT_DIG == 64
CppTypeFor<TypeCategory::Real, 10> RTDECL(Fraction10)(
CppTypeFor<TypeCategory::Real, 10>);
#endif
@@ -180,7 +180,7 @@ CppTypeFor<TypeCategory::Real, 16> RTDECL(Fraction16)(
// ISNAN / IEEE_IS_NAN
bool RTDECL(IsNaN4)(CppTypeFor<TypeCategory::Real, 4>);
bool RTDECL(IsNaN8)(CppTypeFor<TypeCategory::Real, 8>);
-#if HAS_FLOAT80
+#if LDBL_MANT_DIG == 64
bool RTDECL(IsNaN10)(CppTypeFor<TypeCategory::Real, 10>);
#endif
#if LDBL_MANT_DIG == 113 || HAS_FLOAT128
@@ -212,7 +212,7 @@ CppTypeFor<TypeCategory::Real, 4> RTDECL(ModReal4)(
CppTypeFor<TypeCategory::Real, 8> RTDECL(ModReal8)(
CppTypeFor<TypeCategory::Real, 8>, CppTypeFor<TypeCategory::Real, 8>,
const char *sourceFile = nullptr, int sourceLine = 0);
-#if HAS_FLOAT80
+#if LDBL_MANT_DIG == 64
CppTypeFor<TypeCategory::Real, 10> RTDECL(ModReal10)(
CppTypeFor<TypeCategory::Real, 10>, CppTypeFor<TypeCategory::Real, 10>,
const char *sourceFile = nullptr, int sourceLine = 0);
@@ -247,7 +247,7 @@ CppTypeFor<TypeCategory::Real, 4> RTDECL(ModuloReal4)(
CppTypeFor<TypeCategory::Real, 8> RTDECL(ModuloReal8)(
CppTypeFor<TypeCategory::Real, 8>, CppTypeFor<TypeCategory::Real, 8>,
const char *sourceFile = nullptr, int sourceLine = 0);
-#if HAS_FLOAT80
+#if LDBL_MANT_DIG == 64
CppTypeFor<TypeCategory::Real, 10> RTDECL(ModuloReal10)(
CppTypeFor<TypeCategory::Real, 10>, CppTypeFor<TypeCategory::Real, 10>,
const char *sourceFile = nullptr, int sourceLine = 0);
@@ -283,7 +283,7 @@ CppTypeFor<TypeCategory::Integer, 8> RTDECL(Nint8_8)(
CppTypeFor<TypeCategory::Integer, 16> RTDECL(Nint8_16)(
CppTypeFor<TypeCategory::Real, 8>);
#endif
-#if HAS_FLOAT80
+#if LDBL_MANT_DIG == 64
CppTypeFor<TypeCategory::Integer, 1> RTDECL(Nint10_1)(
CppTypeFor<TypeCategory::Real, 10>);
CppTypeFor<TypeCategory::Integer, 2> RTDECL(Nint10_2)(
@@ -319,7 +319,7 @@ CppTypeFor<TypeCategory::Real, 4> RTDECL(Nearest4)(
CppTypeFor<TypeCategory::Real, 4>, bool positive);
CppTypeFor<TypeCategory::Real, 8> RTDECL(Nearest8)(
CppTypeFor<TypeCategory::Real, 8>, bool positive);
-#if HAS_FLOAT80
+#if LDBL_MANT_DIG == 64
CppTypeFor<TypeCategory::Real, 10> RTDECL(Nearest10)(
CppTypeFor<TypeCategory::Real, 10>, bool positive);
#endif
@@ -333,7 +333,7 @@ CppTypeFor<TypeCategory::Real, 4> RTDECL(RRSpacing4)(
CppTypeFor<TypeCategory::Real, 4>);
CppTypeFor<TypeCategory::Real, 8> RTDECL(RRSpacing8)(
CppTypeFor<TypeCategory::Real, 8>);
-#if HAS_FLOAT80
+#if LDBL_MANT_DIG == 64
CppTypeFor<TypeCategory::Real, 10> RTDECL(RRSpacing10)(
CppTypeFor<TypeCategory::Real, 10>);
#endif
@@ -347,7 +347,7 @@ CppTypeFor<TypeCategory::Real, 4> RTDECL(SetExponent4)(
CppTypeFor<TypeCategory::Real, 4>, std::int64_t);
CppTypeFor<TypeCategory::Real, 8> RTDECL(SetExponent8)(
CppTypeFor<TypeCategory::Real, 8>, std::int64_t);
-#if HAS_FLOAT80
+#if LDBL_MANT_DIG == 64
CppTypeFor<TypeCategory::Real, 10> RTDECL(SetExponent10)(
CppTypeFor<TypeCategory::Real, 10>, std::int64_t);
#endif
@@ -361,7 +361,7 @@ CppTypeFor<TypeCategory::Real, 4> RTDECL(Scale4)(
CppTypeFor<TypeCategory::Real, 4>, std::int64_t);
CppTypeFor<TypeCategory::Real, 8> RTDECL(Scale8)(
CppTypeFor<TypeCategory::Real, 8>, std::int64_t);
-#if HAS_FLOAT80
+#if LDBL_MANT_DIG == 64
CppTypeFor<TypeCategory::Real, 10> RTDECL(Scale10)(
CppTypeFor<TypeCategory::Real, 10>, std::int64_t);
#endif
@@ -410,7 +410,7 @@ CppTypeFor<TypeCategory::Real, 4> RTDECL(Spacing4)(
CppTypeFor<TypeCategory::Real, 4>);
CppTypeFor<TypeCategory::Real, 8> RTDECL(Spacing8)(
CppTypeFor<TypeCategory::Real, 8>);
-#if HAS_FLOAT80
+#if LDBL_MANT_DIG == 64
CppTypeFor<TypeCategory::Real, 10> RTDECL(Spacing10)(
CppTypeFor<TypeCategory::Real, 10>);
#endif
@@ -425,7 +425,7 @@ CppTypeFor<TypeCategory::Real, 4> RTDECL(FPow4i)(
CppTypeFor<TypeCategory::Real, 8> RTDECL(FPow8i)(
CppTypeFor<TypeCategory::Real, 8> b,
CppTypeFor<TypeCategory::Integer, 4> e);
-#if HAS_FLOAT80
+#if LDBL_MANT_DIG == 64
CppTypeFor<TypeCategory::Real, 10> RTDECL(FPow10i)(
CppTypeFor<TypeCategory::Real, 10> b,
CppTypeFor<TypeCategory::Integer, 4> e);
@@ -442,7 +442,7 @@ CppTypeFor<TypeCategory::Real, 4> RTDECL(FPow4k)(
CppTypeFor<TypeCategory::Real, 8> RTDECL(FPow8k)(
CppTypeFor<TypeCategory::Real, 8> b,
CppTypeFor<TypeCategory::Integer, 8> e);
-#if HAS_FLOAT80
+#if LDBL_MANT_DIG == 64
CppTypeFor<TypeCategory::Real, 10> RTDECL(FPow10k)(
CppTypeFor<TypeCategory::Real, 10> b,
CppTypeFor<TypeCategory::Integer, 8> e);
diff --git a/flang/include/flang/Runtime/reduce.h b/flang/include/flang/Runtime/reduce.h
index c016b37f9592a1..60f54c393b4bbd 100644
--- a/flang/include/flang/Runtime/reduce.h
+++ b/flang/include/flang/Runtime/reduce.h
@@ -188,26 +188,22 @@ void RTDECL(ReduceReal8DimValue)(Descriptor &result, const Descriptor &array,
ValueReductionOperation<double>, const char *source, int line, int dim,
const Descriptor *mask = nullptr, const double *identity = nullptr,
bool ordered = true);
-#if HAS_FLOAT80
-CppTypeFor<TypeCategory::Real, 10> RTDECL(ReduceReal10Ref)(const Descriptor &,
- ReferenceReductionOperation<CppTypeFor<TypeCategory::Real, 10>>,
- const char *source, int line, int dim = 0, const Descriptor *mask = nullptr,
- const CppTypeFor<TypeCategory::Real, 10> *identity = nullptr,
- bool ordered = true);
-CppTypeFor<TypeCategory::Real, 10> RTDECL(ReduceReal10Value)(const Descriptor &,
- ValueReductionOperation<CppTypeFor<TypeCategory::Real, 10>>,
- const char *source, int line, int dim = 0, const Descriptor *mask = nullptr,
- const CppTypeFor<TypeCategory::Real, 10> *identity = nullptr,
- bool ordered = true);
+#if LDBL_MANT_DIG == 64
+long double RTDECL(ReduceReal10Ref)(const Descriptor &,
+ ReferenceReductionOperation<long double>, const char *source, int line,
+ int dim = 0, const Descriptor *mask = nullptr,
+ const long double *identity = nullptr, bool ordered = true);
+long double RTDECL(ReduceReal10Value)(const Descriptor &,
+ ValueReductionOperation<long double>, const char *source, int line,
+ int dim = 0, const Descriptor *mask = nullptr,
+ const long double *identity = nullptr, bool ordered = true);
void RTDECL(ReduceReal10DimRef)(Descriptor &result, const Descriptor &array,
- ReferenceReductionOperation<CppTypeFor<TypeCategory::Real, 10>>,
- const char *source, int line, int dim, const Descriptor *mask = nullptr,
- const CppTypeFor<TypeCategory::Real, 10> *identity = nullptr,
- bool ordered = true);
+ ReferenceReductionOperation<long double>, const char *source, int line,
+ int dim, const Descriptor *mask = nullptr,
+ const long double *identity = nullptr, bool ordered = true);
void RTDECL(ReduceReal10DimValue)(Descriptor &result, const Descriptor &array,
- ValueReductionOperation<CppTypeFor<TypeCategory::Real, 10>>,
- const char *source, int line, int dim, const Descriptor *mask = nullptr,
- const CppTypeFor<TypeCategory::Real, 10> *identity = nullptr,
+ ValueReductionOperation<long double>, const char *source, int line, int dim,
+ const Descriptor *mask = nullptr, const long double *identity = nullptr,
bool ordered = true);
#endif
#if LDBL_MANT_DIG == 113 || HAS_FLOAT128
@@ -229,152 +225,112 @@ void RTDECL(ReduceReal16DimValue)(Descriptor &result, const Descriptor &array,
const CppFloat128Type *identity = nullptr, bool ordered = true);
#endif
-void RTDECL(CppReduceComplex2Ref)(CppTypeFor<TypeCategory::Complex, 4> &,
- const Descriptor &,
- ReferenceReductionOperation<CppTypeFor<TypeCategory::Complex, 4>>,
- const char *source, int line, int dim = 0, const Descriptor *mask = nullptr,
- const CppTypeFor<TypeCategory::Complex, 4> *identity = nullptr,
- bool ordered = true);
-void RTDECL(CppReduceComplex2Value)(CppTypeFor<TypeCategory::Complex, 4> &,
- const Descriptor &,
- ValueReductionOperation<CppTypeFor<TypeCategory::Complex, 4>>,
- const char *source, int line, int dim = 0, const Descriptor *mask = nullptr,
- const CppTypeFor<TypeCategory::Complex, 4> *identity = nullptr,
- bool ordered = true);
+void RTDECL(CppReduceComplex2Ref)(std::complex<float> &, const Descriptor &,
+ ReferenceReductionOperation<std::complex<float>>, const char *source,
+ int line, int dim = 0, const Descriptor *mask = nullptr,
+ const std::complex<float> *identity = nullptr, bool ordered = true);
+void RTDECL(CppReduceComplex2Value)(std::complex<float> &, const Descriptor &,
+ ValueReductionOperation<std::complex<float>>, const char *source, int line,
+ int dim = 0, const Descriptor *mask = nullptr,
+ const std::complex<float> *identity = nullptr, bool ordered = true);
void RTDECL(CppReduceComplex2DimRef)(Descriptor &result,
- const Descriptor &array,
- ReferenceReductionOperation<CppTypeFor<TypeCategory::Complex, 4>>,
+ const Descriptor &array, ReferenceReductionOperation<std::complex<float>>,
const char *source, int line, int dim, const Descriptor *mask = nullptr,
- const CppTypeFor<TypeCategory::Complex, 4> *identity = nullptr,
- bool ordered = true);
+ const std::complex<float> *identity = nullptr, bool ordered = true);
void RTDECL(CppReduceComplex2DimValue)(Descriptor &result,
- const Descriptor &array,
- ValueReductionOperation<CppTypeFor<TypeCategory::Complex, 4>>,
+ const Descriptor &array, ValueReductionOperation<std::complex<float>>,
const char *source, int line, int dim, const Descriptor *mask = nullptr,
- const CppTypeFor<TypeCategory::Complex, 4> *identity = nullptr,
- bool ordered = true);
-void RTDECL(CppReduceComplex3Ref)(CppTypeFor<TypeCategory::Complex, 4> &,
- const Descriptor &,
- ReferenceReductionOperation<CppTypeFor<TypeCategory::Complex, 4>>,
- const char *source, int line, int dim = 0, const Descriptor *mask = nullptr,
- const CppTypeFor<TypeCategory::Complex, 4> *identity = nullptr,
- bool ordered = true);
-void RTDECL(CppReduceComplex3Value)(CppTypeFor<TypeCategory::Complex, 4> &,
- const Descriptor &,
- ValueReductionOperation<CppTypeFor<TypeCategory::Complex, 4>>,
- const char *source, int line, int dim = 0, const Descriptor *mask = nullptr,
- const CppTypeFor<TypeCategory::Complex, 4> *identity = nullptr,
- bool ordered = true);
+ const std::complex<float> *identity = nullptr, bool ordered = true);
+void RTDECL(CppReduceComplex3Ref)(std::complex<float> &, const Descriptor &,
+ ReferenceReductionOperation<std::complex<float>>, const char *source,
+ int line, int dim = 0, const Descriptor *mask = nullptr,
+ const std::complex<float> *identity = nullptr, bool ordered = true);
+void RTDECL(CppReduceComplex3Value)(std::complex<float> &, const Descriptor &,
+ ValueReductionOperation<std::complex<float>>, const char *source, int line,
+ int dim = 0, const Descriptor *mask = nullptr,
+ const std::complex<float> *identity = nullptr, bool ordered = true);
void RTDECL(CppReduceComplex3DimRef)(Descriptor &result,
- const Descriptor &array,
- ReferenceReductionOperation<CppTypeFor<TypeCategory::Complex, 4>>,
+ const Descriptor &array, ReferenceReductionOperation<std::complex<float>>,
const char *source, int line, int dim, const Descriptor *mask = nullptr,
- const CppTypeFor<TypeCategory::Complex, 4> *identity = nullptr,
- bool ordered = true);
+ const std::complex<float> *identity = nullptr, bool ordered = true);
void RTDECL(CppReduceComplex3DimValue)(Descriptor &result,
- const Descriptor &array,
- ValueReductionOperation<CppTypeFor<TypeCategory::Complex, 4>>,
+ const Descriptor &array, ValueReductionOperation<std::complex<float>>,
const char *source, int line, int dim, const Descriptor *mask = nullptr,
- const CppTypeFor<TypeCategory::Complex, 4> *identity = nullptr,
- bool ordered = true);
-void RTDECL(CppReduceComplex4Ref)(CppTypeFor<TypeCategory::Complex, 4> &,
- const Descriptor &,
- ReferenceReductionOperation<CppTypeFor<TypeCategory::Complex, 4>>,
- const char *source, int line, int dim = 0, const Descriptor *mask = nullptr,
- const CppTypeFor<TypeCategory::Complex, 4> *identity = nullptr,
- bool ordered = true);
-void RTDECL(CppReduceComplex4Value)(CppTypeFor<TypeCategory::Complex, 4> &,
- const Descriptor &,
- ValueReductionOperation<CppTypeFor<TypeCategory::Complex, 4>>,
- const char *source, int line, int dim = 0, const Descriptor *mask = nullptr,
- const CppTypeFor<TypeCategory::Complex, 4> *identity = nullptr,
- bool ordered = true);
+ const std::complex<float> *identity = nullptr, bool ordered = true);
+void RTDECL(CppReduceComplex4Ref)(std::complex<float> &, const Descriptor &,
+ ReferenceReductionOperati...
[truncated]
``````````
</details>
https://github.com/llvm/llvm-project/pull/109173
More information about the flang-commits
mailing list