LLVM 22.0.0git
VEISelLowering.h File Reference
#include "VE.h"
#include "llvm/CodeGen/TargetLowering.h"
#include "VVPNodes.def"

Go to the source code of this file.

Classes

class  llvm::VETargetLowering

Namespaces

namespace  llvm
 This is an optimization pass for GlobalISel generic memory operations.
namespace  llvm::VEISD

Macros

#define ADD_VVP_OP(VVP_NAME, ...)
#define HANDLE_VP_TO_VVP(VPOPC, VVPOPC)
 HANDLE_VP_TO_VVP(VPOPC, VVPOPC) VPOPC is the VP_* SDNode opcode.
#define ADD_UNARY_VVP_OP(VVPNAME, SDNAME)
 ADD_VVP_OP(VVPNAME,SDNAME) VVPName is a VVP SDNode operator.
#define ADD_BINARY_VVP_OP(VVPNAME, VPNAME, SDNAME)
 ADD_BINARY_VVP_OP(VVPNAME,SDNAME) VVPName is a VVP Binary operator.
#define ADD_TERNARY_VVP_OP(VVPNAME, SDNAME)
 ADD_TERNARY_VVP_OP(VVPNAME,SDNAME) VVPName is a VVP Ternary operator.
#define ADD_BINARY_VVP_OP_COMPACT(NAME)
#define REGISTER_PACKED(OPC)
 REGISTER_PACKED(OPC) OPC The VVP opcode of the operation.
#define ADD_REDUCE_VVP_OP(OPC, SDNAME)
 ADD_REDUCE_VVP_OP(OPC) OPC The VVP opcode of the operation.
#define HANDLE_VVP_REDUCE_TO_SCALAR(VVP_RED_ISD, REDUCE_ISD)
#define HELPER_REDUCTION(OPC, SCALAR_OPC)
 Reductions.

Enumerations

enum  llvm::VEISD::NodeType : unsigned {
  llvm::VEISD::FIRST_NUMBER = ISD::BUILTIN_OP_END , llvm::VEISD::CMPI , llvm::VEISD::CMPU , llvm::VEISD::CMPF ,
  llvm::VEISD::CMPQ , llvm::VEISD::CMOV , llvm::VEISD::CALL , llvm::VEISD::EH_SJLJ_LONGJMP ,
  llvm::VEISD::EH_SJLJ_SETJMP , llvm::VEISD::EH_SJLJ_SETUP_DISPATCH , llvm::VEISD::GETFUNPLT , llvm::VEISD::GETTLSADDR ,
  llvm::VEISD::GETSTACKTOP , llvm::VEISD::GLOBAL_BASE_REG , llvm::VEISD::Hi , llvm::VEISD::Lo ,
  llvm::VEISD::RET_GLUE , llvm::VEISD::TS1AM , llvm::VEISD::VEC_UNPACK_LO , llvm::VEISD::VEC_UNPACK_HI ,
  llvm::VEISD::VEC_PACK , llvm::VEISD::VEC_BROADCAST , llvm::VEISD::REPL_I32 , llvm::VEISD::REPL_F32 ,
  llvm::VEISD::LEGALAVL , llvm::VEISD::ADD_VVP_OP , llvm::VEISD::ADD_VVP_OP
}

Functions

static VECC::CondCode llvm::intCondCode2Icc (ISD::CondCode CC)
 Convert a DAG integer condition code to a VE ICC condition.
static VECC::CondCode llvm::fpCondCode2Fcc (ISD::CondCode CC)
 Convert a DAG floating point condition code to a VE FCC condition.
static uint64_t llvm::getImmVal (const ConstantSDNode *N)
 getImmVal - get immediate representation of integer value
static uint64_t llvm::getFpImmVal (const ConstantFPSDNode *N)
 getFpImmVal - get immediate representation of floating point value

Macro Definition Documentation

◆ ADD_BINARY_VVP_OP

#define ADD_BINARY_VVP_OP ( VVPNAME,
VPNAME,
SDNAME )
Value:
ADD_VVP_OP(VVPNAME,SDNAME) \
HANDLE_VP_TO_VVP(VPNAME, VVPNAME)

ADD_BINARY_VVP_OP(VVPNAME,SDNAME) VVPName is a VVP Binary operator.

SDNAME is the generic SD opcode corresponding to VVPName.

Definition at line 103 of file VEISelLowering.h.

◆ ADD_BINARY_VVP_OP_COMPACT

#define ADD_BINARY_VVP_OP_COMPACT ( NAME)
Value:
ADD_BINARY_VVP_OP(VVP_##NAME,VP_##NAME,NAME)

Definition at line 117 of file VEISelLowering.h.

◆ ADD_REDUCE_VVP_OP

#define ADD_REDUCE_VVP_OP ( OPC,
SDNAME )
Value:
ADD_VVP_OP(OPC, SDNAME)

ADD_REDUCE_VVP_OP(OPC) OPC The VVP opcode of the operation.

SDNAME The standard opcode of the operation.

Definition at line 131 of file VEISelLowering.h.

◆ ADD_TERNARY_VVP_OP

#define ADD_TERNARY_VVP_OP ( VVPNAME,
SDNAME )
Value:
ADD_VVP_OP(VVPNAME,SDNAME)

ADD_TERNARY_VVP_OP(VVPNAME,SDNAME) VVPName is a VVP Ternary operator.

SDNAME is the generic SD opcode corresponding to VVPName.

Definition at line 112 of file VEISelLowering.h.

◆ ADD_UNARY_VVP_OP

#define ADD_UNARY_VVP_OP ( VVPNAME,
SDNAME )
Value:
ADD_VVP_OP(VVPNAME,SDNAME)

ADD_VVP_OP(VVPNAME,SDNAME) VVPName is a VVP SDNode operator.

SDNAME is the generic SD opcode corresponding to VVPName. ADD_UNARY_VVP_OP(VVPNAME,SDNAME) VVPName is a VVP Unary operator. SDNAME is the generic SD opcode corresponding to VVPName.

Definition at line 95 of file VEISelLowering.h.

◆ ADD_VVP_OP

#define ADD_VVP_OP ( VVP_NAME,
... )
Value:
VVP_NAME,

Definition at line 63 of file VEISelLowering.h.

◆ HANDLE_VP_TO_VVP

#define HANDLE_VP_TO_VVP ( VPOPC,
VVPOPC )

HANDLE_VP_TO_VVP(VPOPC, VVPOPC) VPOPC is the VP_* SDNode opcode.

VVPOPC is the VVP_* SDNode opcode.

Definition at line 81 of file VEISelLowering.h.

◆ HANDLE_VVP_REDUCE_TO_SCALAR

#define HANDLE_VVP_REDUCE_TO_SCALAR ( VVP_RED_ISD,
REDUCE_ISD )

Definition at line 136 of file VEISelLowering.h.

◆ HELPER_REDUCTION

#define HELPER_REDUCTION ( OPC,
SCALAR_OPC )
Value:
ADD_REDUCE_VVP_OP(VVP_REDUCE_##OPC,VECREDUCE_##OPC) \
HANDLE_VP_TO_VVP(VP_REDUCE_##OPC, VVP_REDUCE_##OPC) \
HANDLE_VVP_REDUCE_TO_SCALAR(VVP_REDUCE_##OPC, SCALAR_OPC)

Reductions.

Definition at line 140 of file VEISelLowering.h.

◆ REGISTER_PACKED

#define REGISTER_PACKED ( OPC)

REGISTER_PACKED(OPC) OPC The VVP opcode of the operation.

Definition at line 124 of file VEISelLowering.h.