================
@@ -1272,7 +1272,18 @@ mlir::Value genMathOp(fir::FirOpBuilder &builder, 
mlir::Location loc,
     LLVM_DEBUG(llvm::dbgs() << "Generating '" << mathLibFuncName
                             << "' operation with type ";
                mathLibFuncType.dump(); llvm::dbgs() << "\n");
-    result = T::create(builder, loc, args);
+    if constexpr (std::is_same_v<T, mlir::complex::PowOp>) {
+      auto resultType = mathLibFuncType.getResult(0);
+      result = T::create(builder, loc, resultType, args);
+    } else if constexpr (std::is_same_v<T, mlir::complex::PowiOp>) {
+      auto resultType = mathLibFuncType.getResult(0);
+      auto fmfAttr = mlir::arith::FastMathFlagsAttr::get(
+          builder.getContext(), builder.getFastMathFlags());
+      result = builder.create<mlir::complex::PowiOp>(loc, resultType, args[0],
+                                                     args[1], fmfAttr);
+    } else {
----------------
TIFitis wrote:

You're right, I've simplified it. Thanks for catching.

https://github.com/llvm/llvm-project/pull/158722
_______________________________________________
llvm-branch-commits mailing list
llvm-branch-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-branch-commits

Reply via email to