diff --git a/mlir/lib/Conversion/StandardToSPIRV/ConvertStandardToSPIRV.cpp b/mlir/lib/Conversion/StandardToSPIRV/ConvertStandardToSPIRV.cpp --- a/mlir/lib/Conversion/StandardToSPIRV/ConvertStandardToSPIRV.cpp +++ b/mlir/lib/Conversion/StandardToSPIRV/ConvertStandardToSPIRV.cpp @@ -870,6 +870,7 @@ TypeCastingOpPattern, TypeCastingOpPattern, TypeCastingOpPattern, + TypeCastingOpPattern, TypeCastingOpPattern, TypeCastingOpPattern, XOrOpPattern>( context, typeConverter); diff --git a/mlir/test/Conversion/StandardToSPIRV/std-ops-to-spirv.mlir b/mlir/test/Conversion/StandardToSPIRV/std-ops-to-spirv.mlir --- a/mlir/test/Conversion/StandardToSPIRV/std-ops-to-spirv.mlir +++ b/mlir/test/Conversion/StandardToSPIRV/std-ops-to-spirv.mlir @@ -531,6 +531,20 @@ return %0 : i16 } +// CHECK-LABEL: @fptosi1 +func @fptosi1(%arg0 : f32) -> i32 { + // CHECK: spv.ConvertFToS %{{.*}} : f32 to i32 + %0 = std.fptosi %arg0 : f32 to i32 + return %0 : i32 +} + +// CHECK-LABEL: @fptosi2 +func @fptosi2(%arg0 : f16) -> i16 { + // CHECK: spv.ConvertFToS %{{.*}} : f16 to i16 + %0 = std.fptosi %arg0 : f16 to i16 + return %0 : i16 +} + } // end module // -----