From 8ae7cf255e2901d7a60d1e2df43f381c237a1ab0 Mon Sep 17 00:00:00 2001 From: Jaddyen Date: Thu, 11 Sep 2025 18:55:47 +0000 Subject: [PATCH] lower arith.maximuf --- .../Conversion/ArithToEmitC/ArithToEmitC.cpp | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) diff --git a/mlir/lib/Conversion/ArithToEmitC/ArithToEmitC.cpp b/mlir/lib/Conversion/ArithToEmitC/ArithToEmitC.cpp index b68933d0fb0a0..819525651ff0b 100644 --- a/mlir/lib/Conversion/ArithToEmitC/ArithToEmitC.cpp +++ b/mlir/lib/Conversion/ArithToEmitC/ArithToEmitC.cpp @@ -340,6 +340,25 @@ class NegFOpConversion : public OpConversionPattern { } }; +class MaximumFOpLowering : public OpConversionPattern { +public: + using OpConversionPattern::OpConversionPattern; + + LogicalResult + matchAndRewrite(arith::MaximumFOp op, OpAdaptor adaptor, + ConversionPatternRewriter &rewriter) const override { + Location loc = op.getLoc(); + + auto newOp = emitc::CallOpaqueOp::create( + rewriter, loc, op.getType(), rewriter.getStringAttr("fmax"), + ValueRange{adaptor.getLhs(), adaptor.getRhs()}); + + rewriter.replaceOp(op, newOp); + + return success(); + } +}; + template class CastConversion : public OpConversionPattern { public: