1*e8d8bef9SDimitry Andric//===-- VVPNodes.def - Lists & properties of VE Vector Predication Nodes --===// 2*e8d8bef9SDimitry Andric// 3*e8d8bef9SDimitry Andric// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. 4*e8d8bef9SDimitry Andric// See https://llvm.org/LICENSE.txt for license information. 5*e8d8bef9SDimitry Andric// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception 6*e8d8bef9SDimitry Andric// 7*e8d8bef9SDimitry Andric//===----------------------------------------------------------------------===// 8*e8d8bef9SDimitry Andric// 9*e8d8bef9SDimitry Andric// This file defines all VVP_* SDNodes and their properties 10*e8d8bef9SDimitry Andric// 11*e8d8bef9SDimitry Andric//===----------------------------------------------------------------------===// 12*e8d8bef9SDimitry Andric 13*e8d8bef9SDimitry Andric/// HANDLE_VP_TO_VVP(VPOPC, VVPOPC) 14*e8d8bef9SDimitry Andric/// \p VPOPC is the VP_* SDNode opcode. 15*e8d8bef9SDimitry Andric/// \p VVPOPC is the VVP_* SDNode opcode. 16*e8d8bef9SDimitry Andric#ifndef HANDLE_VP_TO_VVP 17*e8d8bef9SDimitry Andric#define HANDLE_VP_TO_VVP(VPOPC, VVPOPC) 18*e8d8bef9SDimitry Andric#endif 19*e8d8bef9SDimitry Andric 20*e8d8bef9SDimitry Andric/// ADD_VVP_OP(VVPNAME,SDNAME) 21*e8d8bef9SDimitry Andric/// \p VVPName is a VVP SDNode operator. 22*e8d8bef9SDimitry Andric/// \p SDNAME is the generic SD opcode corresponding to \p VVPName. 23*e8d8bef9SDimitry Andric#ifndef ADD_VVP_OP 24*e8d8bef9SDimitry Andric#define ADD_VVP_OP(X, Y) 25*e8d8bef9SDimitry Andric#endif 26*e8d8bef9SDimitry Andric 27*e8d8bef9SDimitry Andric/// ADD_BINARY_VVP_OP(VVPNAME,SDNAME) 28*e8d8bef9SDimitry Andric/// \p VVPName is a VVP Binary operator. 29*e8d8bef9SDimitry Andric/// \p SDNAME is the generic SD opcode corresponding to \p VVPName. 30*e8d8bef9SDimitry Andric#ifndef ADD_BINARY_VVP_OP 31*e8d8bef9SDimitry Andric#define ADD_BINARY_VVP_OP(X,Y) ADD_VVP_OP(X,Y) HANDLE_VP_TO_VVP(VP_##Y, X) 32*e8d8bef9SDimitry Andric#endif 33*e8d8bef9SDimitry Andric 34*e8d8bef9SDimitry Andric// Integer arithmetic. 35*e8d8bef9SDimitry AndricADD_BINARY_VVP_OP(VVP_ADD,ADD) 36*e8d8bef9SDimitry Andric 37*e8d8bef9SDimitry AndricADD_BINARY_VVP_OP(VVP_AND,AND) 38*e8d8bef9SDimitry Andric 39*e8d8bef9SDimitry Andric#undef HANDLE_VP_TO_VVP 40*e8d8bef9SDimitry Andric#undef ADD_BINARY_VVP_OP 41*e8d8bef9SDimitry Andric#undef ADD_VVP_OP 42