1//- WebAssemblyISD.def - WebAssembly ISD ---------------------------*- C++ -*-//
2//
3// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
4// See https://llvm.org/LICENSE.txt for license information.
5// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
6//
7//===----------------------------------------------------------------------===//
8///
9/// \file
10/// This file describes the various WebAssembly ISD node types.
11///
12//===----------------------------------------------------------------------===//
13
14// NOTE: NO INCLUDE GUARD DESIRED!
15
16HANDLE_NODETYPE(CALL)
17HANDLE_NODETYPE(RET_CALL)
18HANDLE_NODETYPE(RETURN)
19HANDLE_NODETYPE(ARGUMENT)
20HANDLE_NODETYPE(LOCAL_GET)
21HANDLE_NODETYPE(LOCAL_SET)
22// A wrapper node for TargetExternalSymbol, TargetGlobalAddress, and MCSymbol
23HANDLE_NODETYPE(Wrapper)
24// A special node for TargetGlobalAddress used in PIC code for
25// __memory_base/__table_base relative access.
26HANDLE_NODETYPE(WrapperREL)
27HANDLE_NODETYPE(BR_IF)
28HANDLE_NODETYPE(BR_TABLE)
29HANDLE_NODETYPE(SHUFFLE)
30HANDLE_NODETYPE(SWIZZLE)
31HANDLE_NODETYPE(VEC_SHL)
32HANDLE_NODETYPE(VEC_SHR_S)
33HANDLE_NODETYPE(VEC_SHR_U)
34HANDLE_NODETYPE(NARROW_U)
35HANDLE_NODETYPE(EXTEND_LOW_S)
36HANDLE_NODETYPE(EXTEND_LOW_U)
37HANDLE_NODETYPE(EXTEND_HIGH_S)
38HANDLE_NODETYPE(EXTEND_HIGH_U)
39HANDLE_NODETYPE(CONVERT_LOW_S)
40HANDLE_NODETYPE(CONVERT_LOW_U)
41HANDLE_NODETYPE(PROMOTE_LOW)
42HANDLE_NODETYPE(TRUNC_SAT_ZERO_S)
43HANDLE_NODETYPE(TRUNC_SAT_ZERO_U)
44HANDLE_NODETYPE(DEMOTE_ZERO)
45HANDLE_NODETYPE(MEMORY_COPY)
46HANDLE_NODETYPE(MEMORY_FILL)
47
48// Memory intrinsics
49HANDLE_MEM_NODETYPE(GLOBAL_GET)
50HANDLE_MEM_NODETYPE(GLOBAL_SET)
51HANDLE_MEM_NODETYPE(TABLE_GET)
52HANDLE_MEM_NODETYPE(TABLE_SET)
53