LLVM: lib/Target/RISCV/RISCVSelectionDAGInfo.h Source File (original) (raw)
1
2
3
4
5
6
7
8
9#ifndef LLVM_LIB_TARGET_RISCV_RISCVSELECTIONDAGINFO_H
10#define LLVM_LIB_TARGET_RISCV_RISCVSELECTIONDAGINFO_H
11
14
15#define GET_SDNODE_ENUM
16#include "RISCVGenSDNodeInfo.inc"
17
18namespace llvm {
19
27
29public:
31
33
35 const SDNode *N) const override;
36
40 bool isVolatile, bool AlwaysInline,
42
46
50
52 switch (static_castRISCVISD::GenNodeType\(MulOpcode)) {
53 default:
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;
61 }
62 }
63};
64
65}
66
67#endif
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
Definition RISCVSelectionDAGInfo.h:47
unsigned getMAccOpcode(unsigned MulOpcode) const
Definition RISCVSelectionDAGInfo.h:51
~RISCVSelectionDAGInfo() override
bool hasPassthruOp(unsigned Opcode) const
Definition RISCVSelectionDAGInfo.h:43
Wrapper class for IR location info (IR ordering and DebugLoc) to be passed into SDNode creation funct...
Represents one node in the SelectionDAG.
Unlike LLVM values, Selection DAG nodes may return multiple values as the result of a computation.
const SDNodeInfo & GenNodeInfo
SelectionDAGGenTargetInfo(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.
@ HasPassthruOpMask
Definition RISCVSelectionDAGInfo.h:23
@ HasMaskOpMask
Definition RISCVSelectionDAGInfo.h:24
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,...