[mlir][StandardToSPIRV] Add support for lowering FPToSIOp to SPIR-V.
authorHanhan Wang <hanchung@google.com>
Mon, 11 May 2020 08:26:57 +0000 (01:26 -0700)
committerHanhan Wang <hanchung@google.com>
Mon, 11 May 2020 08:27:54 +0000 (01:27 -0700)
Summary: Depends On D79373

Differential Revision: https://reviews.llvm.org/D79374

mlir/lib/Conversion/StandardToSPIRV/ConvertStandardToSPIRV.cpp
mlir/test/Conversion/StandardToSPIRV/std-ops-to-spirv.mlir

index 2f7868e..ea006c9 100644 (file)
@@ -870,6 +870,7 @@ void populateStandardToSPIRVPatterns(MLIRContext *context,
       TypeCastingOpPattern<SIToFPOp, spirv::ConvertSToFOp>,
       TypeCastingOpPattern<ZeroExtendIOp, spirv::UConvertOp>,
       TypeCastingOpPattern<TruncateIOp, spirv::SConvertOp>,
+      TypeCastingOpPattern<FPToSIOp, spirv::ConvertFToSOp>,
       TypeCastingOpPattern<FPExtOp, spirv::FConvertOp>,
       TypeCastingOpPattern<FPTruncOp, spirv::FConvertOp>, XOrOpPattern>(
       context, typeConverter);
index 3dcc3cd..b6e81a4 100644 (file)
@@ -531,6 +531,20 @@ func @trunci2(%arg0: i32) -> i16 {
   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
 
 // -----