[Mlir-commits] [mlir] [MLIR][EmitC] arith-to-emitc: Fix lowering of fptoui (PR #118504)
llvmlistbot at llvm.org
llvmlistbot at llvm.org
Tue Dec 3 07:51:51 PST 2024
llvmbot wrote:
<!--LLVM PR SUMMARY COMMENT-->
@llvm/pr-subscribers-mlir
@llvm/pr-subscribers-mlir-emitc
Author: Matthias Gehre (mgehre-amd)
<details>
<summary>Changes</summary>
`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
```
---
Full diff: https://github.com/llvm/llvm-project/pull/118504.diff
2 Files Affected:
- (modified) mlir/lib/Conversion/ArithToEmitC/ArithToEmitC.cpp (+1-1)
- (modified) mlir/test/Conversion/ArithToEmitC/arith-to-emitc.mlir (+4)
``````````diff
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
}
``````````
</details>
https://github.com/llvm/llvm-project/pull/118504
More information about the Mlir-commits
mailing list