[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
This commit is contained in:
Steve Suzuki
2023-01-12 16:35:02 +00:00
committed by Andrzej Warzynski
parent a63853e6ac
commit e866fb8606
2 changed files with 15 additions and 0 deletions

View File

@@ -1100,6 +1100,7 @@ void mlir::arith::populateArithToSPIRVPatterns(
TypeCastingOpPattern<arith::TruncFOp, spirv::FConvertOp>,
TypeCastingOpPattern<arith::UIToFPOp, spirv::ConvertUToFOp>, UIToFPI1Pattern,
TypeCastingOpPattern<arith::SIToFPOp, spirv::ConvertSToFOp>,
TypeCastingOpPattern<arith::FPToUIOp, spirv::ConvertFToUOp>,
TypeCastingOpPattern<arith::FPToSIOp, spirv::ConvertFToSOp>,
TypeCastingOpPattern<arith::IndexCastOp, spirv::SConvertOp>,
TypeCastingOpPattern<arith::IndexCastUIOp, spirv::UConvertOp>,

View File

@@ -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