Skip to content

Commit 29dfc18

Browse files
committed
[Flang][LoongArch] Add support for complex16 params/returns.
This patch fixes the failure in flang test `Integration/debug-complex-1.f90`: ``` llvm-project/flang/lib/Optimizer/codeGen/Target.cpp:56: not yet implemented: complex for this precision for return type ```
1 parent 4006b28 commit 29dfc18

File tree

1 file changed

+4
-2
lines changed

1 file changed

+4
-2
lines changed

flang/lib/Optimizer/CodeGen/Target.cpp

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1087,7 +1087,8 @@ struct TargetLoongArch64 : public GenericTarget<TargetLoongArch64> {
10871087
CodeGenSpecifics::Marshalling marshal;
10881088
const auto *sem = &floatToSemantics(kindMap, eleTy);
10891089
if (sem == &llvm::APFloat::IEEEsingle() ||
1090-
sem == &llvm::APFloat::IEEEdouble()) {
1090+
sem == &llvm::APFloat::IEEEdouble() ||
1091+
sem == &llvm::APFloat::IEEEquad()) {
10911092
// Two distinct element type arguments (re, im)
10921093
marshal.emplace_back(eleTy, AT{});
10931094
marshal.emplace_back(eleTy, AT{});
@@ -1102,7 +1103,8 @@ struct TargetLoongArch64 : public GenericTarget<TargetLoongArch64> {
11021103
CodeGenSpecifics::Marshalling marshal;
11031104
const auto *sem = &floatToSemantics(kindMap, eleTy);
11041105
if (sem == &llvm::APFloat::IEEEsingle() ||
1105-
sem == &llvm::APFloat::IEEEdouble()) {
1106+
sem == &llvm::APFloat::IEEEdouble() ||
1107+
sem == &llvm::APFloat::IEEEquad()) {
11061108
// Use a type that will be translated into LLVM as:
11071109
// { t, t } struct of 2 eleTy, byVal
11081110
marshal.emplace_back(mlir::TupleType::get(eleTy.getContext(),

0 commit comments

Comments
 (0)