xref: /freebsd/contrib/llvm-project/llvm/lib/Target/WebAssembly/WebAssemblyISD.def (revision 0eae32dcef82f6f06de6419a0d623d7def0cc8f6)
10b57cec5SDimitry Andric//- WebAssemblyISD.def - WebAssembly ISD ---------------------------*- C++ -*-//
20b57cec5SDimitry Andric//
30b57cec5SDimitry Andric// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
40b57cec5SDimitry Andric// See https://llvm.org/LICENSE.txt for license information.
50b57cec5SDimitry Andric// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
60b57cec5SDimitry Andric//
70b57cec5SDimitry Andric//===----------------------------------------------------------------------===//
80b57cec5SDimitry Andric///
90b57cec5SDimitry Andric/// \file
100b57cec5SDimitry Andric/// This file describes the various WebAssembly ISD node types.
110b57cec5SDimitry Andric///
120b57cec5SDimitry Andric//===----------------------------------------------------------------------===//
130b57cec5SDimitry Andric
140b57cec5SDimitry Andric// NOTE: NO INCLUDE GUARD DESIRED!
150b57cec5SDimitry Andric
165ffd83dbSDimitry AndricHANDLE_NODETYPE(CALL)
170b57cec5SDimitry AndricHANDLE_NODETYPE(RET_CALL)
180b57cec5SDimitry AndricHANDLE_NODETYPE(RETURN)
190b57cec5SDimitry AndricHANDLE_NODETYPE(ARGUMENT)
20fe6060f1SDimitry AndricHANDLE_NODETYPE(LOCAL_GET)
21fe6060f1SDimitry AndricHANDLE_NODETYPE(LOCAL_SET)
220b57cec5SDimitry Andric// A wrapper node for TargetExternalSymbol, TargetGlobalAddress, and MCSymbol
230b57cec5SDimitry AndricHANDLE_NODETYPE(Wrapper)
24349cc55cSDimitry Andric// A special node for TargetGlobalAddress used in PIC code for
25349cc55cSDimitry Andric// __memory_base/__table_base relative access.
26349cc55cSDimitry AndricHANDLE_NODETYPE(WrapperREL)
270b57cec5SDimitry AndricHANDLE_NODETYPE(BR_IF)
280b57cec5SDimitry AndricHANDLE_NODETYPE(BR_TABLE)
290b57cec5SDimitry AndricHANDLE_NODETYPE(SHUFFLE)
308bcb0991SDimitry AndricHANDLE_NODETYPE(SWIZZLE)
310b57cec5SDimitry AndricHANDLE_NODETYPE(VEC_SHL)
320b57cec5SDimitry AndricHANDLE_NODETYPE(VEC_SHR_S)
330b57cec5SDimitry AndricHANDLE_NODETYPE(VEC_SHR_U)
34*0eae32dcSDimitry AndricHANDLE_NODETYPE(NARROW_U)
35fe6060f1SDimitry AndricHANDLE_NODETYPE(EXTEND_LOW_S)
36fe6060f1SDimitry AndricHANDLE_NODETYPE(EXTEND_LOW_U)
37fe6060f1SDimitry AndricHANDLE_NODETYPE(EXTEND_HIGH_S)
38fe6060f1SDimitry AndricHANDLE_NODETYPE(EXTEND_HIGH_U)
39fe6060f1SDimitry AndricHANDLE_NODETYPE(CONVERT_LOW_S)
40fe6060f1SDimitry AndricHANDLE_NODETYPE(CONVERT_LOW_U)
41fe6060f1SDimitry AndricHANDLE_NODETYPE(PROMOTE_LOW)
42fe6060f1SDimitry AndricHANDLE_NODETYPE(TRUNC_SAT_ZERO_S)
43fe6060f1SDimitry AndricHANDLE_NODETYPE(TRUNC_SAT_ZERO_U)
44fe6060f1SDimitry AndricHANDLE_NODETYPE(DEMOTE_ZERO)
450b57cec5SDimitry AndricHANDLE_NODETYPE(MEMORY_COPY)
460b57cec5SDimitry AndricHANDLE_NODETYPE(MEMORY_FILL)
470b57cec5SDimitry Andric
48480093f4SDimitry Andric// Memory intrinsics
49480093f4SDimitry AndricHANDLE_MEM_NODETYPE(LOAD_SPLAT)
50fe6060f1SDimitry AndricHANDLE_MEM_NODETYPE(GLOBAL_GET)
51fe6060f1SDimitry AndricHANDLE_MEM_NODETYPE(GLOBAL_SET)
52349cc55cSDimitry AndricHANDLE_MEM_NODETYPE(TABLE_GET)
53fe6060f1SDimitry AndricHANDLE_MEM_NODETYPE(TABLE_SET)
54