9#ifndef LLVM_LIB_TARGET_RISCV_RISCVSELECTIONDAGINFO_H
10#define LLVM_LIB_TARGET_RISCV_RISCVSELECTIONDAGINFO_H
15#define GET_SDNODE_ENUM
16#include "RISCVGenSDNodeInfo.inc"
35 const SDNode *
N)
const override;
40 bool isVolatile,
bool AlwaysInline,
52 switch (
static_cast<RISCVISD::GenNodeType
>(MulOpcode)) {
55 case RISCVISD::VWMUL_VL:
56 return RISCVISD::VWMACC_VL;
57 case RISCVISD::VWMULU_VL:
58 return RISCVISD::VWMACCU_VL;
59 case RISCVISD::VWMULSU_VL:
60 return RISCVISD::VWMACCSU_VL;
SDValue EmitTargetCodeForMemset(SelectionDAG &DAG, const SDLoc &dl, SDValue Chain, SDValue Dst, SDValue Src, SDValue Size, Align Alignment, bool isVolatile, bool AlwaysInline, MachinePointerInfo DstPtrInfo) const override
Emit target-specific code that performs a memset.
void verifyTargetNode(const SelectionDAG &DAG, const SDNode *N) const override
Checks that the given target-specific node is valid. Aborts if it is not.
bool hasMaskOp(unsigned Opcode) const
unsigned getMAccOpcode(unsigned MulOpcode) const
~RISCVSelectionDAGInfo() override
bool hasPassthruOp(unsigned Opcode) const
Wrapper class for IR location info (IR ordering and DebugLoc) to be passed into SDNode creation funct...
const SDNodeDesc & getDesc(unsigned Opcode) const
Returns the description of a node with the given opcode.
Represents one node in the SelectionDAG.
Unlike LLVM values, Selection DAG nodes may return multiple values as the result of a computation.
Proxy class that targets should inherit from if they wish to use the generated node descriptions.
const SDNodeInfo & GenNodeInfo
This is used to represent a portion of an LLVM function in a low-level Data Dependence DAG representa...
#define llvm_unreachable(msg)
Marks that the current location is not supposed to be reachable.
This is an optimization pass for GlobalISel generic memory operations.
This struct is a compact representation of a valid (non-zero power of two) alignment.
This class contains a discriminated union of information about pointers in memory operands,...