summaryrefslogtreecommitdiff
path: root/lib/Target/WebAssembly/WebAssemblyInstrInteger.td
diff options
context:
space:
mode:
authorDerek Schuff <dschuff@google.com>2015-11-03 22:40:40 +0000
committerDerek Schuff <dschuff@google.com>2015-11-03 22:40:40 +0000
commit05d7d32e1201397c45869cc6b64e0a4ddaca39f9 (patch)
tree474302be897f85ec1a1578f377dbcb64de1c3062 /lib/Target/WebAssembly/WebAssemblyInstrInteger.td
parent378e661deb7814e18a0228289c006413c6fd9107 (diff)
[WebAssembly] Support wasm select operator
Summary: Add support for wasm's select operator, and lower LLVM's select DAG node to it. Reviewers: sunfish Subscribers: dschuff, llvm-commits, jfb Differential Revision: http://reviews.llvm.org/D14295 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@252002 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/Target/WebAssembly/WebAssemblyInstrInteger.td')
-rw-r--r--lib/Target/WebAssembly/WebAssemblyInstrInteger.td5
1 files changed, 5 insertions, 0 deletions
diff --git a/lib/Target/WebAssembly/WebAssemblyInstrInteger.td b/lib/Target/WebAssembly/WebAssemblyInstrInteger.td
index 6a28a13eb3b..ad036017e81 100644
--- a/lib/Target/WebAssembly/WebAssemblyInstrInteger.td
+++ b/lib/Target/WebAssembly/WebAssemblyInstrInteger.td
@@ -46,3 +46,8 @@ def : Pat<(ctlz_zero_undef I32:$src), (CLZ_I32 I32:$src)>;
def : Pat<(ctlz_zero_undef I64:$src), (CLZ_I64 I64:$src)>;
def : Pat<(cttz_zero_undef I32:$src), (CTZ_I32 I32:$src)>;
def : Pat<(cttz_zero_undef I64:$src), (CTZ_I64 I64:$src)>;
+
+def SELECT_I32 : I<(outs I32:$dst), (ins I32:$cond, I32:$lhs, I32:$rhs),
+ [(set I32:$dst, (select I32:$cond, I32:$lhs, I32:$rhs))]>;
+def SELECT_I64 : I<(outs I64:$dst), (ins I32:$cond, I64:$lhs, I64:$rhs),
+ [(set I64:$dst, (select I32:$cond, I64:$lhs, I64:$rhs))]>;