[Mlir-commits] [mlir] 1f93282 - [MLIR][EmitC] arith-to-emitc: Fix lowering of fptoui (#118504)

llvmlistbot at llvm.org llvmlistbot at llvm.org
Thu Dec 5 05:50:38 PST 2024


Author: Matthias Gehre
Date: 2024-12-05T14:50:35+01:00
New Revision: 1f932825f9c1a63e1badaae2dbd5305485dfc010

URL: https://github.com/llvm/llvm-project/commit/1f932825f9c1a63e1badaae2dbd5305485dfc010
DIFF: https://github.com/llvm/llvm-project/commit/1f932825f9c1a63e1badaae2dbd5305485dfc010.diff

LOG: [MLIR][EmitC] arith-to-emitc: Fix lowering of fptoui (#118504)

`arith.fptoui %arg0 : f32 to i16` was lowered to
```
%0 = emitc.cast %arg0 : f32 to ui32
emitc.cast %0 : ui32 to i16
```
and is now lowered to
```
%0 = emitc.cast %arg0 : f32 to ui16
emitc.cast %0 : ui16 to i16
```

Added: 
    

Modified: 
    mlir/lib/Conversion/ArithToEmitC/ArithToEmitC.cpp
    mlir/test/Conversion/ArithToEmitC/arith-to-emitc.mlir

Removed: 
    


################################################################################
diff  --git a/mlir/lib/Conversion/ArithToEmitC/ArithToEmitC.cpp b/mlir/lib/Conversion/ArithToEmitC/ArithToEmitC.cpp
index 50384d9a08e5d9..ccbc1669b7a92a 100644
--- a/mlir/lib/Conversion/ArithToEmitC/ArithToEmitC.cpp
+++ b/mlir/lib/Conversion/ArithToEmitC/ArithToEmitC.cpp
@@ -674,7 +674,7 @@ class FtoICastOpConversion : public OpConversionPattern<CastOp> {
     Type actualResultType = dstType;
     if (isa<arith::FPToUIOp>(castOp)) {
       actualResultType =
-          rewriter.getIntegerType(operandType.getIntOrFloatBitWidth(),
+          rewriter.getIntegerType(dstType.getIntOrFloatBitWidth(),
                                   /*isSigned=*/false);
     }
 

diff  --git a/mlir/test/Conversion/ArithToEmitC/arith-to-emitc.mlir b/mlir/test/Conversion/ArithToEmitC/arith-to-emitc.mlir
index afd1198ede0f76..1728c3a2557e07 100644
--- a/mlir/test/Conversion/ArithToEmitC/arith-to-emitc.mlir
+++ b/mlir/test/Conversion/ArithToEmitC/arith-to-emitc.mlir
@@ -587,6 +587,10 @@ func.func @arith_float_to_int_cast_ops(%arg0: f32, %arg1: f64) {
   // CHECK: emitc.cast %[[CAST0]] : ui32 to i32
   %4 = arith.fptoui %arg0 : f32 to i32
 
+  // CHECK: %[[CAST0:.*]] = emitc.cast %arg0 : f32 to ui16
+  // CHECK: emitc.cast %[[CAST0]] : ui16 to i16
+  %5 = arith.fptoui %arg0 : f32 to i16
+
   return
 }
 


        


More information about the Mlir-commits mailing list