[Mlir-commits] [mlir] 7bb74b1 - [mlir][ComplexToLLVM] Fix abs op fmf propagation (#222621)

llvmlistbot at llvm.org llvmlistbot at llvm.org
Fri Sep 11 01:03:18 PDT 2026


Author: Mattéo Rizza Murgier
Date: 2026-09-11T10:03:13+02:00
New Revision: 7bb74b19b7f0bbe491898de2289e72d09e4a6b26

URL: https://github.com/llvm/llvm-project/commit/7bb74b19b7f0bbe491898de2289e72d09e4a6b26
DIFF: https://github.com/llvm/llvm-project/commit/7bb74b19b7f0bbe491898de2289e72d09e4a6b26.diff

LOG: [mlir][ComplexToLLVM] Fix abs op fmf propagation (#222621)

Added: 
    

Modified: 
    mlir/lib/Conversion/ComplexToLLVM/ComplexToLLVM.cpp
    mlir/test/Conversion/ComplexToLLVM/convert-to-llvm.mlir

Removed: 
    


################################################################################
diff  --git a/mlir/lib/Conversion/ComplexToLLVM/ComplexToLLVM.cpp b/mlir/lib/Conversion/ComplexToLLVM/ComplexToLLVM.cpp
index 74acbe325c656..cbe5820300f82 100644
--- a/mlir/lib/Conversion/ComplexToLLVM/ComplexToLLVM.cpp
+++ b/mlir/lib/Conversion/ComplexToLLVM/ComplexToLLVM.cpp
@@ -83,7 +83,7 @@ struct AbsOpConversion : public ConvertOpToLLVMPattern<complex::AbsOp> {
         rewriter, loc, LLVM::FMulOp::create(rewriter, loc, real, real, fmf),
         LLVM::FMulOp::create(rewriter, loc, imag, imag, fmf), fmf);
 
-    rewriter.replaceOpWithNewOp<LLVM::SqrtOp>(op, sqNorm);
+    rewriter.replaceOpWithNewOp<LLVM::SqrtOp>(op, sqNorm, fmf);
     return success();
   }
 };

diff  --git a/mlir/test/Conversion/ComplexToLLVM/convert-to-llvm.mlir b/mlir/test/Conversion/ComplexToLLVM/convert-to-llvm.mlir
index c2f627af5d407..5305ca2de4d36 100644
--- a/mlir/test/Conversion/ComplexToLLVM/convert-to-llvm.mlir
+++ b/mlir/test/Conversion/ComplexToLLVM/convert-to-llvm.mlir
@@ -270,7 +270,7 @@ func.func @complex_mul_with_fmf(%lhs: complex<f32>, %rhs: complex<f32>) -> compl
 // CHECK-DAG: %[[REAL_SQ:.*]] = llvm.fmul %[[REAL]], %[[REAL]] fastmath<contract> : f32
 // CHECK-DAG: %[[IMAG_SQ:.*]] = llvm.fmul %[[IMAG]], %[[IMAG]] fastmath<contract> : f32
 // CHECK: %[[SQ_NORM:.*]] = llvm.fadd %[[REAL_SQ]], %[[IMAG_SQ]] fastmath<contract> : f32
-// CHECK: %[[NORM:.*]] = llvm.intr.sqrt(%[[SQ_NORM]]) : (f32) -> f32
+// CHECK: %[[NORM:.*]] = llvm.intr.sqrt(%[[SQ_NORM]]) fastmath<contract> : (f32) -> f32
 // CHECK: return %[[NORM]] : f32
 func.func @complex_abs_with_fmf(%arg: complex<f32>) -> f32 {
   %abs = complex.abs %arg fastmath<contract> : complex<f32>


        


More information about the Mlir-commits mailing list