Summary: Since the shuffle mask is not exposed as an operand in the native ISel DAG, create a new WebAssembly ISD node exposing the mask. The mask is lowered as sixteen immediate byte indices no matter what type the original vector shuffle was operating on. This CL depends on D51656 Reviewers: aheejin, dschuff Subscribers: sbc100, jgravelle-google, sunfish, llvm-commits Differential Revision: https://reviews.llvm.org/D51659 llvm-svn: 341718
27 lines
811 B
C++
27 lines
811 B
C++
//- WebAssemblyISD.def - WebAssembly ISD ---------------------------*- C++ -*-//
|
|
//
|
|
// The LLVM Compiler Infrastructure
|
|
//
|
|
// This file is distributed under the University of Illinois Open Source
|
|
// License. See LICENSE.TXT for details.
|
|
//
|
|
//===----------------------------------------------------------------------===//
|
|
///
|
|
/// \file
|
|
/// This file describes the various WebAssembly ISD node types.
|
|
///
|
|
//===----------------------------------------------------------------------===//
|
|
|
|
// NOTE: NO INCLUDE GUARD DESIRED!
|
|
|
|
HANDLE_NODETYPE(CALL1)
|
|
HANDLE_NODETYPE(CALL0)
|
|
HANDLE_NODETYPE(RETURN)
|
|
HANDLE_NODETYPE(ARGUMENT)
|
|
HANDLE_NODETYPE(Wrapper)
|
|
HANDLE_NODETYPE(BR_IF)
|
|
HANDLE_NODETYPE(BR_TABLE)
|
|
HANDLE_NODETYPE(SHUFFLE)
|
|
|
|
// add memory opcodes starting at ISD::FIRST_TARGET_MEMORY_OPCODE here...
|