From e866fb8606d7ed2e27b194c97a4896e7680da2e0 Mon Sep 17 00:00:00 2001 From: Steve Suzuki Date: Thu, 12 Jan 2023 16:35:02 +0000 Subject: [PATCH] [mlir][spirv] Add support for fptoui conversion in ArithToSPIRV To enable the conversion of arith.fptoui to SPIRV OpConvertFToU Reviewed By: kuhar Differential Revision: https://reviews.llvm.org/D141582 --- mlir/lib/Conversion/ArithToSPIRV/ArithToSPIRV.cpp | 1 + mlir/test/Conversion/ArithToSPIRV/arith-to-spirv.mlir | 14 ++++++++++++++ 2 files changed, 15 insertions(+) diff --git a/mlir/lib/Conversion/ArithToSPIRV/ArithToSPIRV.cpp b/mlir/lib/Conversion/ArithToSPIRV/ArithToSPIRV.cpp index d48cae3..be46a06 100644 --- a/mlir/lib/Conversion/ArithToSPIRV/ArithToSPIRV.cpp +++ b/mlir/lib/Conversion/ArithToSPIRV/ArithToSPIRV.cpp @@ -1100,6 +1100,7 @@ void mlir::arith::populateArithToSPIRVPatterns( TypeCastingOpPattern, TypeCastingOpPattern, UIToFPI1Pattern, TypeCastingOpPattern, + TypeCastingOpPattern, TypeCastingOpPattern, TypeCastingOpPattern, TypeCastingOpPattern, diff --git a/mlir/test/Conversion/ArithToSPIRV/arith-to-spirv.mlir b/mlir/test/Conversion/ArithToSPIRV/arith-to-spirv.mlir index 3b18295..4c32a86 100644 --- a/mlir/test/Conversion/ArithToSPIRV/arith-to-spirv.mlir +++ b/mlir/test/Conversion/ArithToSPIRV/arith-to-spirv.mlir @@ -903,6 +903,20 @@ func.func @trunc_to_veci1(%arg0: vector<4xi32>) -> vector<4xi1> { return %0 : vector<4xi1> } +// CHECK-LABEL: @fptoui1 +func.func @fptoui1(%arg0 : f32) -> i32 { + // CHECK: spirv.ConvertFToU %{{.*}} : f32 to i32 + %0 = arith.fptoui %arg0 : f32 to i32 + return %0 : i32 +} + +// CHECK-LABEL: @fptoui2 +func.func @fptoui2(%arg0 : f16) -> i16 { + // CHECK: spirv.ConvertFToU %{{.*}} : f16 to i16 + %0 = arith.fptoui %arg0 : f16 to i16 + return %0 : i16 +} + // CHECK-LABEL: @fptosi1 func.func @fptosi1(%arg0 : f32) -> i32 { // CHECK: spirv.ConvertFToS %{{.*}} : f32 to i32 -- 2.7.4