diff options
| author | Michael Kruse <llvm-project@meinersbur.de> | 2025-01-03 10:22:51 +0100 |
|---|---|---|
| committer | Michael Kruse <llvm-project@meinersbur.de> | 2025-01-03 10:22:51 +0100 |
| commit | 38500d63e14ce340236840f60d356cdefb56a52c (patch) | |
| tree | 17edbec446ce9b50d2f215a483b83afb293a635d /flang/runtime/sum.cpp | |
| parent | 1a3d5daaef7a6a63448a497da3eff7fc9e23df26 (diff) | |
| parent | 27f30029741ecf023baece7b3dde1ff9011ffefc (diff) | |
Merge branch 'main' into users/meinersbur/flang_runtime_split-headersusers/meinersbur/flang_runtime_split-headers
Diffstat (limited to 'flang/runtime/sum.cpp')
| -rw-r--r-- | flang/runtime/sum.cpp | 33 |
1 files changed, 33 insertions, 0 deletions
diff --git a/flang/runtime/sum.cpp b/flang/runtime/sum.cpp index 10b812425465..3cb7a2b28577 100644 --- a/flang/runtime/sum.cpp +++ b/flang/runtime/sum.cpp @@ -130,6 +130,39 @@ CppTypeFor<TypeCategory::Integer, 16> RTDEF(SumInteger16)(const Descriptor &x, } #endif +CppTypeFor<TypeCategory::Unsigned, 1> RTDEF(SumUnsigned1)(const Descriptor &x, + const char *source, int line, int dim, const Descriptor *mask) { + return GetTotalReduction<TypeCategory::Unsigned, 1>(x, source, line, dim, + mask, IntegerSumAccumulator<CppTypeFor<TypeCategory::Unsigned, 4>>{x}, + "SUM"); +} +CppTypeFor<TypeCategory::Unsigned, 2> RTDEF(SumUnsigned2)(const Descriptor &x, + const char *source, int line, int dim, const Descriptor *mask) { + return GetTotalReduction<TypeCategory::Unsigned, 2>(x, source, line, dim, + mask, IntegerSumAccumulator<CppTypeFor<TypeCategory::Unsigned, 4>>{x}, + "SUM"); +} +CppTypeFor<TypeCategory::Unsigned, 4> RTDEF(SumUnsigned4)(const Descriptor &x, + const char *source, int line, int dim, const Descriptor *mask) { + return GetTotalReduction<TypeCategory::Unsigned, 4>(x, source, line, dim, + mask, IntegerSumAccumulator<CppTypeFor<TypeCategory::Unsigned, 4>>{x}, + "SUM"); +} +CppTypeFor<TypeCategory::Unsigned, 8> RTDEF(SumUnsigned8)(const Descriptor &x, + const char *source, int line, int dim, const Descriptor *mask) { + return GetTotalReduction<TypeCategory::Unsigned, 8>(x, source, line, dim, + mask, IntegerSumAccumulator<CppTypeFor<TypeCategory::Unsigned, 8>>{x}, + "SUM"); +} +#ifdef __SIZEOF_INT128__ +CppTypeFor<TypeCategory::Unsigned, 16> RTDEF(SumUnsigned16)(const Descriptor &x, + const char *source, int line, int dim, const Descriptor *mask) { + return GetTotalReduction<TypeCategory::Unsigned, 16>(x, source, line, dim, + mask, IntegerSumAccumulator<CppTypeFor<TypeCategory::Unsigned, 16>>{x}, + "SUM"); +} +#endif + // TODO: real/complex(2 & 3) CppTypeFor<TypeCategory::Real, 4> RTDEF(SumReal4)(const Descriptor &x, const char *source, int line, int dim, const Descriptor *mask) { |
