[flang-commits] [flang] [flang][AIX] Handle more trig functions with complex argument to have consistent results in folding (PR #124203)
via flang-commits
flang-commits at lists.llvm.org
Thu Jan 23 14:54:44 PST 2025
github-actions[bot] wrote:
<!--LLVM CODE FORMAT COMMENT: {clang-format}-->
:warning: C/C++ code formatter, clang-format found issues in your code. :warning:
<details>
<summary>
You can test this locally with the following command:
</summary>
``````````bash
git-clang-format --diff 4294fe173e9696a4c090857fa0766cd44c1964dc e032bfd3b62f1f1c241fc0822d1e2185b1f34d2d --extensions cpp -- flang/lib/Evaluate/intrinsics-library.cpp
``````````
</details>
<details>
<summary>
View the diff from clang-format here.
</summary>
``````````diff
diff --git a/flang/lib/Evaluate/intrinsics-library.cpp b/flang/lib/Evaluate/intrinsics-library.cpp
index 60bb2785c7..9c483771fa 100644
--- a/flang/lib/Evaluate/intrinsics-library.cpp
+++ b/flang/lib/Evaluate/intrinsics-library.cpp
@@ -336,27 +336,26 @@ template <typename T, typename TA> static std::complex<T> CToCpp(const TA &x) {
using FTypeCmplxFlt = _Complex float (*)(_Complex float);
using FTypeCmplxDble = _Complex double (*)(_Complex double);
template <typename T>
-using FTypeStdCmplx = std::complex<T> (*)(const std::complex<T>&);
+using FTypeStdCmplx = std::complex<T> (*)(const std::complex<T> &);
std::map<trigFunc, std::tuple<FTypeCmplxFlt, FTypeCmplxDble>> mapLibmTrigFunc{
{Cacos, {&cacosf, &cacos}}, {Cacosh, {&cacoshf, &cacosh}},
{Casin, {&casinf, &casin}}, {Casinh, {&casinhf, &casinh}},
{Catan, {&catanf, &catan}}, {Catanh, {&catanhf, &catanh}},
{Ccos, {&ccosf, &ccos}}, {Ccosh, {&ccoshf, &ccosh}},
- {Cexp, {&cexpf, &cexp}}, {Clog, {&clogf, &__clog}},
- {Csin, {&csinf, &csin}}, {Csinh, {&csinhf, &csinh}},
- {Csqrt, {&csqrtf, &csqrt}}, {Ctan, {&ctanf, &ctan}},
- {Ctanh, {&ctanhf, &ctanh}}};
+ {Cexp, {&cexpf, &cexp}}, {Clog, {&clogf, &__clog}}, {Csin, {&csinf, &csin}},
+ {Csinh, {&csinhf, &csinh}}, {Csqrt, {&csqrtf, &csqrt}},
+ {Ctan, {&ctanf, &ctan}}, {Ctanh, {&ctanhf, &ctanh}}};
template <trigFunc TF, typename HostT>
std::complex<HostT> LibmTrigFunc(const std::complex<HostT> &x) {
if constexpr (std::is_same_v<HostT, float>) {
- float _Complex r{
- std::get<FTypeCmplxFlt>(mapLibmTrigFunc[TF])(CppToC<float _Complex, float>(x))};
+ float _Complex r{std::get<FTypeCmplxFlt>(mapLibmTrigFunc[TF])(
+ CppToC<float _Complex, float>(x))};
return CToCpp<float, float _Complex>(r);
} else if constexpr (std::is_same_v<HostT, double>) {
- double _Complex r{
- std::get<FTypeCmplxDble>(mapLibmTrigFunc[TF])(CppToC<double _Complex, double>(x))};
+ double _Complex r{std::get<FTypeCmplxDble>(mapLibmTrigFunc[TF])(
+ CppToC<double _Complex, double>(x))};
return CToCpp<double, double _Complex>(r);
}
DIE("bad complex component type");
@@ -417,16 +416,16 @@ template <trigFunc TF> struct X {
// Helpers to map complex std::pow whose resolution in F2{std::pow} is
// ambiguous as of clang++ 20.
template <typename HostT>
-static std::complex<HostT> StdPowF2(const std::complex<HostT> &x,
- const std::complex<HostT> &y) {
+static std::complex<HostT> StdPowF2(
+ const std::complex<HostT> &x, const std::complex<HostT> &y) {
#ifdef _AIX
if constexpr (std::is_same_v<HostT, float>) {
- float _Complex r{cpowf(CppToC<float _Complex, float>(x),
- CppToC<float _Complex, float>(y))};
+ float _Complex r{cpowf(
+ CppToC<float _Complex, float>(x), CppToC<float _Complex, float>(y))};
return CToCpp<float, float _Complex>(r);
} else if constexpr (std::is_same_v<HostT, double>) {
double _Complex r{cpow(CppToC<double _Complex, double>(x),
- CppToC<double _Complex, double>(y))};
+ CppToC<double _Complex, double>(y))};
return CToCpp<double, double _Complex>(r);
}
#else
@@ -435,18 +434,18 @@ static std::complex<HostT> StdPowF2(const std::complex<HostT> &x,
}
template <typename HostT>
-static std::complex<HostT> StdPowF2A(const HostT &x,
- const std::complex<HostT> &y) {
+static std::complex<HostT> StdPowF2A(
+ const HostT &x, const std::complex<HostT> &y) {
#ifdef _AIX
constexpr HostT zero{0.0};
std::complex<HostT> z(x, zero);
if constexpr (std::is_same_v<HostT, float>) {
- float _Complex r{cpowf(CppToC<float _Complex, float>(z),
- CppToC<float _Complex, float>(y))};
+ float _Complex r{cpowf(
+ CppToC<float _Complex, float>(z), CppToC<float _Complex, float>(y))};
return CToCpp<float, float _Complex>(r);
} else if constexpr (std::is_same_v<HostT, double>) {
double _Complex r{cpow(CppToC<double _Complex, double>(z),
- CppToC<double _Complex, double>(y))};
+ CppToC<double _Complex, double>(y))};
return CToCpp<double, double _Complex>(r);
}
#else
@@ -455,18 +454,18 @@ static std::complex<HostT> StdPowF2A(const HostT &x,
}
template <typename HostT>
-static std::complex<HostT> StdPowF2B(const std::complex<HostT> &x,
- const HostT &y) {
+static std::complex<HostT> StdPowF2B(
+ const std::complex<HostT> &x, const HostT &y) {
#ifdef _AIX
constexpr HostT zero{0.0};
std::complex<HostT> z(y, zero);
if constexpr (std::is_same_v<HostT, float>) {
- float _Complex r{cpowf(CppToC<float _Complex, float>(x),
- CppToC<float _Complex, float>(z))};
+ float _Complex r{cpowf(
+ CppToC<float _Complex, float>(x), CppToC<float _Complex, float>(z))};
return CToCpp<float, float _Complex>(r);
} else if constexpr (std::is_same_v<HostT, double>) {
double _Complex r{cpow(CppToC<double _Complex, double>(x),
- CppToC<double _Complex, double>(z))};
+ CppToC<double _Complex, double>(z))};
return CToCpp<double, double _Complex>(r);
}
#else
``````````
</details>
https://github.com/llvm/llvm-project/pull/124203
More information about the flang-commits
mailing list