#include "VECustomDAG.h"
#ifndef DEBUG_TYPE
#define DEBUG_TYPE …
#endif
namespace llvm {
bool isPackedVectorType(EVT SomeVT) { … }
MVT splitVectorType(MVT VT) { … }
MVT getLegalVectorType(Packing P, MVT ElemVT) { … }
Packing getTypePacking(EVT VT) { … }
bool isMaskType(EVT SomeVT) { … }
bool isMaskArithmetic(SDValue Op) { … }
std::optional<unsigned> getVVPOpcode(unsigned Opcode) { … }
bool maySafelyIgnoreMask(SDValue Op) { … }
bool supportsPackedMode(unsigned Opcode, EVT IdiomVT) { … }
bool isPackingSupportOpcode(unsigned Opc) { … }
bool isVVPOrVEC(unsigned Opcode) { … }
bool isVVPUnaryOp(unsigned VVPOpcode) { … }
bool isVVPBinaryOp(unsigned VVPOpcode) { … }
bool isVVPReductionOp(unsigned Opcode) { … }
std::optional<int> getAVLPos(unsigned Opc) { … }
std::optional<int> getMaskPos(unsigned Opc) { … }
bool isLegalAVL(SDValue AVL) { … }
SDValue getNodeChain(SDValue Op) { … }
SDValue getMemoryPtr(SDValue Op) { … }
std::optional<EVT> getIdiomaticVectorType(SDNode *Op) { … }
SDValue getLoadStoreStride(SDValue Op, VECustomDAG &CDAG) { … }
SDValue getGatherScatterIndex(SDValue Op) { … }
SDValue getGatherScatterScale(SDValue Op) { … }
SDValue getStoredValue(SDValue Op) { … }
SDValue getNodePassthru(SDValue Op) { … }
bool hasReductionStartParam(unsigned OPC) { … }
unsigned getScalarReductionOpcode(unsigned VVPOC, bool IsMask) { … }
SDValue getNodeAVL(SDValue Op) { … }
SDValue getNodeMask(SDValue Op) { … }
std::pair<SDValue, bool> getAnnotatedNodeAVL(SDValue Op) { … }
SDValue VECustomDAG::getConstant(uint64_t Val, EVT VT, bool IsTarget,
bool IsOpaque) const { … }
SDValue VECustomDAG::getConstantMask(Packing Packing, bool AllTrue) const { … }
SDValue VECustomDAG::getMaskBroadcast(EVT ResultVT, SDValue Scalar,
SDValue AVL) const { … }
SDValue VECustomDAG::getBroadcast(EVT ResultVT, SDValue Scalar,
SDValue AVL) const { … }
SDValue VECustomDAG::annotateLegalAVL(SDValue AVL) const { … }
SDValue VECustomDAG::getUnpack(EVT DestVT, SDValue Vec, PackElem Part,
SDValue AVL) const { … }
SDValue VECustomDAG::getPack(EVT DestVT, SDValue LoVec, SDValue HiVec,
SDValue AVL) const { … }
VETargetMasks VECustomDAG::getTargetSplitMask(SDValue RawMask, SDValue RawAVL,
PackElem Part) const { … }
SDValue VECustomDAG::getSplitPtrOffset(SDValue Ptr, SDValue ByteStride,
PackElem Part) const { … }
SDValue VECustomDAG::getSplitPtrStride(SDValue PackStride) const { … }
SDValue VECustomDAG::getGatherScatterAddress(SDValue BasePtr, SDValue Scale,
SDValue Index, SDValue Mask,
SDValue AVL) const { … }
SDValue VECustomDAG::getLegalReductionOpVVP(unsigned VVPOpcode, EVT ResVT,
SDValue StartV, SDValue VectorV,
SDValue Mask, SDValue AVL,
SDNodeFlags Flags) const { … }
}