[Mlir-commits] [mlir] Lower `arith.maximuf` to `maxf` (PR #158136)

Jaden Angella llvmlistbot at llvm.org
Thu Sep 11 12:05:56 PDT 2025


https://github.com/Jaddyen updated https://github.com/llvm/llvm-project/pull/158136

>From 8ae7cf255e2901d7a60d1e2df43f381c237a1ab0 Mon Sep 17 00:00:00 2001
From: Jaddyen <jadenangela8 at gmail.com>
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<arith::NegFOp> {
   }
 };
 
+class MaximumFOpLowering : public OpConversionPattern<arith::MaximumFOp> {
+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 <typename ArithOp, bool castToUnsigned>
 class CastConversion : public OpConversionPattern<ArithOp> {
 public:



More information about the Mlir-commits mailing list