summaryrefslogtreecommitdiffstats
path: root/mlir/lib/Conversion
diff options
context:
space:
mode:
authorDenis Khalikov <khalikov.denis@huawei.com>2020-01-07 22:11:59 -0500
committerLei Zhang <antiagainst@google.com>2020-01-07 22:13:07 -0500
commiteac01f63a6c99d6ffd03b7b7c88cf8e28d364e5c (patch)
tree821ac74b9c72762fc0eeb720520e2882f0c1071e /mlir/lib/Conversion
parentdab2921f77099534ff19fead9a79fbff312feabf (diff)
downloadbcm5719-llvm-eac01f63a6c99d6ffd03b7b7c88cf8e28d364e5c.tar.gz
bcm5719-llvm-eac01f63a6c99d6ffd03b7b7c88cf8e28d364e5c.zip
[mlir][spirv] Add lowering for std.fpext, std.fptrunc, std.sitofp.
Differential Revision: https://reviews.llvm.org/D72137
Diffstat (limited to 'mlir/lib/Conversion')
-rw-r--r--mlir/lib/Conversion/StandardToSPIRV/StandardToSPIRV.td8
1 files changed, 8 insertions, 0 deletions
diff --git a/mlir/lib/Conversion/StandardToSPIRV/StandardToSPIRV.td b/mlir/lib/Conversion/StandardToSPIRV/StandardToSPIRV.td
index 7ce895ab0a5..77f9305b4a9 100644
--- a/mlir/lib/Conversion/StandardToSPIRV/StandardToSPIRV.td
+++ b/mlir/lib/Conversion/StandardToSPIRV/StandardToSPIRV.td
@@ -20,6 +20,10 @@ class BinaryOpPattern<Type type, Op src, Op tgt> :
Pat<(src SPV_ScalarOrVectorOf<type>:$l, SPV_ScalarOrVectorOf<type>:$r),
(tgt $l, $r)>;
+class UnaryOpPattern<Type type, Op src, Op tgt> :
+ Pat<(src type:$input),
+ (tgt $input)>;
+
def : BinaryOpPattern<SPV_Bool, AndOp, SPV_LogicalAndOp>;
def : BinaryOpPattern<SPV_Bool, OrOp, SPV_LogicalOrOp>;
def : BinaryOpPattern<SPV_Integer, AndOp, SPV_BitwiseAndOp>;
@@ -36,6 +40,10 @@ def : BinaryOpPattern<SPV_Float, MulFOp, SPV_FMulOp>;
def : BinaryOpPattern<SPV_Float, RemFOp, SPV_FRemOp>;
def : BinaryOpPattern<SPV_Float, SubFOp, SPV_FSubOp>;
+def : UnaryOpPattern<SPV_Integer, SIToFPOp, SPV_ConvertSToFOp>;
+def : UnaryOpPattern<SPV_Float, FPExtOp, SPV_FConvertOp>;
+def : UnaryOpPattern<SPV_Float, FPTruncOp, SPV_FConvertOp>;
+
// Constant Op
// TODO(ravishankarm): Handle lowering other constant types.
def : Pat<(ConstantOp:$result $valueAttr),
OpenPOWER on IntegriCloud