| //===-- lib/runtime/matmul-real.cpp -----------------------------*- 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 |
| // |
| //===----------------------------------------------------------------------===// |
| |
| // Real-involving MATMUL instances: {Int,Uint}*Real, Real*{Int,Uint}, Real*Real. |
| |
| #include "matmul.h" |
| |
| namespace Fortran::runtime { |
| extern "C" { |
| RT_EXT_API_GROUP_BEGIN |
| |
| // clang-format off |
| #define FOREACH_MATMUL_REAL_PAIR(macro) \ |
| macro(Integer, 1, Real, 4) macro(Integer, 1, Real, 8) \ |
| macro(Integer, 2, Real, 4) macro(Integer, 2, Real, 8) \ |
| macro(Integer, 4, Real, 4) macro(Integer, 4, Real, 8) \ |
| macro(Integer, 8, Real, 4) macro(Integer, 8, Real, 8) \ |
| macro(Unsigned, 1, Real, 4) macro(Unsigned, 1, Real, 8) \ |
| macro(Unsigned, 2, Real, 4) macro(Unsigned, 2, Real, 8) \ |
| macro(Unsigned, 4, Real, 4) macro(Unsigned, 4, Real, 8) \ |
| macro(Unsigned, 8, Real, 4) macro(Unsigned, 8, Real, 8) \ |
| macro(Real, 4, Integer, 1) macro(Real, 4, Integer, 2) \ |
| macro(Real, 4, Integer, 4) macro(Real, 4, Integer, 8) \ |
| macro(Real, 8, Integer, 1) macro(Real, 8, Integer, 2) \ |
| macro(Real, 8, Integer, 4) macro(Real, 8, Integer, 8) \ |
| macro(Real, 4, Unsigned, 1) macro(Real, 4, Unsigned, 2) \ |
| macro(Real, 4, Unsigned, 4) macro(Real, 4, Unsigned, 8) \ |
| macro(Real, 8, Unsigned, 1) macro(Real, 8, Unsigned, 2) \ |
| macro(Real, 8, Unsigned, 4) macro(Real, 8, Unsigned, 8) \ |
| macro(Real, 4, Real, 4) macro(Real, 4, Real, 8) \ |
| macro(Real, 8, Real, 4) macro(Real, 8, Real, 8) |
| |
| FOREACH_MATMUL_REAL_PAIR(MATMUL_INSTANCE) |
| FOREACH_MATMUL_REAL_PAIR(MATMUL_DIRECT_INSTANCE) |
| // clang-format on |
| |
| RT_EXT_API_GROUP_END |
| } // extern "C" |
| } // namespace Fortran::runtime |