LLVM  6.0.0svn
Classes | Namespaces | Enumerations | Functions
X86ISelLowering.h File Reference
#include "llvm/CodeGen/CallingConvLower.h"
#include "llvm/CodeGen/SelectionDAG.h"
#include "llvm/CodeGen/TargetLowering.h"
#include "llvm/Target/TargetOptions.h"
Include dependency graph for X86ISelLowering.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

class  llvm::X86TargetLowering
 
class  llvm::X86StoreSDNode
 
class  llvm::X86MaskedStoreSDNode
 
class  llvm::TruncSStoreSDNode
 
class  llvm::TruncUSStoreSDNode
 
class  llvm::MaskedTruncSStoreSDNode
 
class  llvm::MaskedTruncUSStoreSDNode
 
class  llvm::X86MaskedGatherScatterSDNode
 
class  llvm::X86MaskedGatherSDNode
 
class  llvm::X86MaskedScatterSDNode
 

Namespaces

 llvm
 Compute iterated dominance frontiers using a linear time algorithm.
 
 llvm::X86ISD
 
 llvm::X86
 Define some predicates that are used for node matching.
 

Enumerations

enum  llvm::X86ISD::NodeType : unsigned {
  llvm::X86ISD::FIRST_NUMBER = ISD::BUILTIN_OP_END, llvm::X86ISD::BSF, llvm::X86ISD::BSR, llvm::X86ISD::SHLD,
  llvm::X86ISD::SHRD, llvm::X86ISD::FAND, llvm::X86ISD::FOR, llvm::X86ISD::FXOR,
  llvm::X86ISD::FANDN, llvm::X86ISD::CALL, llvm::X86ISD::RDTSC_DAG, llvm::X86ISD::RDTSCP_DAG,
  llvm::X86ISD::RDPMC_DAG, llvm::X86ISD::CMP, llvm::X86ISD::COMI, llvm::X86ISD::UCOMI,
  llvm::X86ISD::BT, llvm::X86ISD::SETCC, llvm::X86ISD::SELECT, llvm::X86ISD::SELECTS,
  llvm::X86ISD::SETCC_CARRY, llvm::X86ISD::FSETCC, llvm::X86ISD::FSETCCM, llvm::X86ISD::FSETCCM_RND,
  llvm::X86ISD::CMOV, llvm::X86ISD::BRCOND, llvm::X86ISD::RET_FLAG, llvm::X86ISD::IRET,
  llvm::X86ISD::REP_STOS, llvm::X86ISD::REP_MOVS, llvm::X86ISD::GlobalBaseReg, llvm::X86ISD::Wrapper,
  llvm::X86ISD::WrapperRIP, llvm::X86ISD::MOVDQ2Q, llvm::X86ISD::MMX_MOVD2W, llvm::X86ISD::MMX_MOVW2D,
  llvm::X86ISD::PEXTRB, llvm::X86ISD::PEXTRW, llvm::X86ISD::INSERTPS, llvm::X86ISD::PINSRB,
  llvm::X86ISD::PINSRW, llvm::X86ISD::PSHUFB, llvm::X86ISD::PSADBW, llvm::X86ISD::DBPSADBW,
  llvm::X86ISD::ANDNP, llvm::X86ISD::BLENDI, llvm::X86ISD::SHRUNKBLEND, llvm::X86ISD::ADDSUB,
  llvm::X86ISD::FADD_RND, llvm::X86ISD::FADDS_RND, llvm::X86ISD::FSUB_RND, llvm::X86ISD::FSUBS_RND,
  llvm::X86ISD::FMUL_RND, llvm::X86ISD::FMULS_RND, llvm::X86ISD::FDIV_RND, llvm::X86ISD::FDIVS_RND,
  llvm::X86ISD::FMAX_RND, llvm::X86ISD::FMAXS_RND, llvm::X86ISD::FMIN_RND, llvm::X86ISD::FMINS_RND,
  llvm::X86ISD::FSQRT_RND, llvm::X86ISD::FSQRTS_RND, llvm::X86ISD::FGETEXP_RND, llvm::X86ISD::FGETEXPS_RND,
  llvm::X86ISD::VGETMANT, llvm::X86ISD::VGETMANT_RND, llvm::X86ISD::VGETMANTS, llvm::X86ISD::VGETMANTS_RND,
  llvm::X86ISD::SCALEF, llvm::X86ISD::SCALEFS, llvm::X86ISD::ADDUS, llvm::X86ISD::SUBUS,
  llvm::X86ISD::ADDS, llvm::X86ISD::SUBS, llvm::X86ISD::AVG, llvm::X86ISD::HADD,
  llvm::X86ISD::HSUB, llvm::X86ISD::FHADD, llvm::X86ISD::FHSUB, llvm::X86ISD::CONFLICT,
  llvm::X86ISD::FMAX, llvm::X86ISD::FMIN, llvm::X86ISD::FMAXC, llvm::X86ISD::FMINC,
  llvm::X86ISD::FMAXS, llvm::X86ISD::FMINS, llvm::X86ISD::FRSQRT, llvm::X86ISD::FRCP,
  llvm::X86ISD::RSQRT14, llvm::X86ISD::RSQRT14S, llvm::X86ISD::RCP14, llvm::X86ISD::RCP14S,
  llvm::X86ISD::TLSADDR, llvm::X86ISD::TLSBASEADDR, llvm::X86ISD::TLSCALL, llvm::X86ISD::EH_RETURN,
  llvm::X86ISD::EH_SJLJ_SETJMP, llvm::X86ISD::EH_SJLJ_LONGJMP, llvm::X86ISD::EH_SJLJ_SETUP_DISPATCH, llvm::X86ISD::TC_RETURN,
  llvm::X86ISD::VZEXT_MOVL, llvm::X86ISD::VZEXT, llvm::X86ISD::VSEXT, llvm::X86ISD::VTRUNC,
  llvm::X86ISD::VTRUNCUS, llvm::X86ISD::VTRUNCS, llvm::X86ISD::VFPEXT, llvm::X86ISD::VFPEXT_RND,
  llvm::X86ISD::VFPEXTS_RND, llvm::X86ISD::VFPROUND, llvm::X86ISD::VFPROUND_RND, llvm::X86ISD::VFPROUNDS_RND,
  llvm::X86ISD::CVT2MASK, llvm::X86ISD::VSHLDQ, llvm::X86ISD::VSRLDQ, llvm::X86ISD::VSHL,
  llvm::X86ISD::VSRL, llvm::X86ISD::VSRA, llvm::X86ISD::VSRAV, llvm::X86ISD::VSHLI,
  llvm::X86ISD::VSRLI, llvm::X86ISD::VSRAI, llvm::X86ISD::KSHIFTL, llvm::X86ISD::KSHIFTR,
  llvm::X86ISD::VROTLI, llvm::X86ISD::VROTRI, llvm::X86ISD::CMPP, llvm::X86ISD::PCMPEQ,
  llvm::X86ISD::PCMPGT, llvm::X86ISD::PCMPEQM, llvm::X86ISD::PCMPGTM, llvm::X86ISD::PHMINPOS,
  llvm::X86ISD::MULTISHIFT, llvm::X86ISD::CMPM, llvm::X86ISD::CMPMU, llvm::X86ISD::CMPM_RND,
  llvm::X86ISD::ADD, llvm::X86ISD::SUB, llvm::X86ISD::ADC, llvm::X86ISD::SBB,
  llvm::X86ISD::SMUL, llvm::X86ISD::INC, llvm::X86ISD::DEC, llvm::X86ISD::OR,
  llvm::X86ISD::XOR, llvm::X86ISD::AND, llvm::X86ISD::UMUL, llvm::X86ISD::SMUL8,
  llvm::X86ISD::UMUL8, llvm::X86ISD::UDIVREM8_ZEXT_HREG, llvm::X86ISD::SDIVREM8_SEXT_HREG, llvm::X86ISD::MUL_IMM,
  llvm::X86ISD::MOVMSK, llvm::X86ISD::PTEST, llvm::X86ISD::TESTP, llvm::X86ISD::TESTM,
  llvm::X86ISD::TESTNM, llvm::X86ISD::KORTEST, llvm::X86ISD::KTEST, llvm::X86ISD::PACKSS,
  llvm::X86ISD::PACKUS, llvm::X86ISD::PALIGNR, llvm::X86ISD::VALIGN, llvm::X86ISD::PSHUFD,
  llvm::X86ISD::PSHUFHW, llvm::X86ISD::PSHUFLW, llvm::X86ISD::SHUFP, llvm::X86ISD::VSHLD,
  llvm::X86ISD::VSHRD, llvm::X86ISD::VSHLDV, llvm::X86ISD::VSHRDV, llvm::X86ISD::SHUF128,
  llvm::X86ISD::MOVDDUP, llvm::X86ISD::MOVSHDUP, llvm::X86ISD::MOVSLDUP, llvm::X86ISD::MOVLHPS,
  llvm::X86ISD::MOVHLPS, llvm::X86ISD::MOVLPS, llvm::X86ISD::MOVLPD, llvm::X86ISD::MOVSD,
  llvm::X86ISD::MOVSS, llvm::X86ISD::UNPCKL, llvm::X86ISD::UNPCKH, llvm::X86ISD::VPERMILPV,
  llvm::X86ISD::VPERMILPI, llvm::X86ISD::VPERMI, llvm::X86ISD::VPERM2X128, llvm::X86ISD::VPERMV,
  llvm::X86ISD::VPERMV3, llvm::X86ISD::VPERMIV3, llvm::X86ISD::VPTERNLOG, llvm::X86ISD::VFIXUPIMM,
  llvm::X86ISD::VFIXUPIMMS, llvm::X86ISD::VRANGE, llvm::X86ISD::VRANGE_RND, llvm::X86ISD::VRANGES,
  llvm::X86ISD::VRANGES_RND, llvm::X86ISD::VREDUCE, llvm::X86ISD::VREDUCE_RND, llvm::X86ISD::VREDUCES,
  llvm::X86ISD::VREDUCES_RND, llvm::X86ISD::VRNDSCALE, llvm::X86ISD::VRNDSCALE_RND, llvm::X86ISD::VRNDSCALES,
  llvm::X86ISD::VRNDSCALES_RND, llvm::X86ISD::VFPCLASS, llvm::X86ISD::VFPCLASSS, llvm::X86ISD::VBROADCAST,
  llvm::X86ISD::VBROADCASTM, llvm::X86ISD::SUBV_BROADCAST, llvm::X86ISD::VEXTRACT, llvm::X86ISD::EXTRQI,
  llvm::X86ISD::INSERTQI, llvm::X86ISD::VPSHA, llvm::X86ISD::VPSHL, llvm::X86ISD::VPCOM,
  llvm::X86ISD::VPCOMU, llvm::X86ISD::VPPERM, llvm::X86ISD::VPERMIL2, llvm::X86ISD::PMULUDQ,
  llvm::X86ISD::PMULDQ, llvm::X86ISD::MULHRS, llvm::X86ISD::VPMADDUBSW, llvm::X86ISD::VPMADDWD,
  llvm::X86ISD::VPMADD52L, llvm::X86ISD::VPMADD52H, llvm::X86ISD::VPDPBUSD, llvm::X86ISD::VPDPBUSDS,
  llvm::X86ISD::VPDPWSSD, llvm::X86ISD::VPDPWSSDS, llvm::X86ISD::FNMADD, llvm::X86ISD::FMSUB,
  llvm::X86ISD::FNMSUB, llvm::X86ISD::FMADDSUB, llvm::X86ISD::FMSUBADD, llvm::X86ISD::FMADD_RND,
  llvm::X86ISD::FNMADD_RND, llvm::X86ISD::FMSUB_RND, llvm::X86ISD::FNMSUB_RND, llvm::X86ISD::FMADDSUB_RND,
  llvm::X86ISD::FMSUBADD_RND, llvm::X86ISD::FMADD4S, llvm::X86ISD::FNMADD4S, llvm::X86ISD::FMSUB4S,
  llvm::X86ISD::FNMSUB4S, llvm::X86ISD::FMADDS1, llvm::X86ISD::FMADDS3, llvm::X86ISD::FNMADDS1,
  llvm::X86ISD::FNMADDS3, llvm::X86ISD::FMSUBS1, llvm::X86ISD::FMSUBS3, llvm::X86ISD::FNMSUBS1,
  llvm::X86ISD::FNMSUBS3, llvm::X86ISD::FMADDS1_RND, llvm::X86ISD::FMADDS3_RND, llvm::X86ISD::FNMADDS1_RND,
  llvm::X86ISD::FNMADDS3_RND, llvm::X86ISD::FMSUBS1_RND, llvm::X86ISD::FMSUBS3_RND, llvm::X86ISD::FNMSUBS1_RND,
  llvm::X86ISD::FNMSUBS3_RND, llvm::X86ISD::COMPRESS, llvm::X86ISD::EXPAND, llvm::X86ISD::VPSHUFBITQMB,
  llvm::X86ISD::SINT_TO_FP_RND, llvm::X86ISD::UINT_TO_FP_RND, llvm::X86ISD::SCALAR_SINT_TO_FP_RND, llvm::X86ISD::SCALAR_UINT_TO_FP_RND,
  llvm::X86ISD::CVTP2SI, llvm::X86ISD::CVTP2UI, llvm::X86ISD::CVTP2SI_RND, llvm::X86ISD::CVTP2UI_RND,
  llvm::X86ISD::CVTS2SI_RND, llvm::X86ISD::CVTS2UI_RND, llvm::X86ISD::CVTTP2SI, llvm::X86ISD::CVTTP2UI,
  llvm::X86ISD::CVTTP2SI_RND, llvm::X86ISD::CVTTP2UI_RND, llvm::X86ISD::CVTTS2SI_RND, llvm::X86ISD::CVTTS2UI_RND,
  llvm::X86ISD::CVTSI2P, llvm::X86ISD::CVTUI2P, llvm::X86ISD::VASTART_SAVE_XMM_REGS, llvm::X86ISD::WIN_ALLOCA,
  llvm::X86ISD::SEG_ALLOCA, llvm::X86ISD::MEMBARRIER, llvm::X86ISD::MFENCE, llvm::X86ISD::FNSTSW16r,
  llvm::X86ISD::SAHF, llvm::X86ISD::RDRAND, llvm::X86ISD::RDSEED, llvm::X86ISD::PCMPISTRI,
  llvm::X86ISD::PCMPESTRI, llvm::X86ISD::XTEST, llvm::X86ISD::RSQRT28, llvm::X86ISD::RSQRT28S,
  llvm::X86ISD::RCP28, llvm::X86ISD::RCP28S, llvm::X86ISD::EXP2, llvm::X86ISD::CVTPS2PH,
  llvm::X86ISD::CVTPH2PS, llvm::X86ISD::CVTPH2PS_RND, llvm::X86ISD::GF2P8AFFINEINVQB, llvm::X86ISD::GF2P8AFFINEQB,
  llvm::X86ISD::GF2P8MULB, llvm::X86ISD::LWPINS, llvm::X86ISD::LCMPXCHG_DAG = ISD::FIRST_TARGET_MEMORY_OPCODE, llvm::X86ISD::LCMPXCHG8_DAG,
  llvm::X86ISD::LCMPXCHG16_DAG, llvm::X86ISD::LCMPXCHG8_SAVE_EBX_DAG, llvm::X86ISD::LCMPXCHG16_SAVE_RBX_DAG, llvm::X86ISD::LADD,
  llvm::X86ISD::LSUB, llvm::X86ISD::LOR, llvm::X86ISD::LXOR, llvm::X86ISD::LAND,
  llvm::X86ISD::LINC, llvm::X86ISD::LDEC, llvm::X86ISD::VZEXT_LOAD, llvm::X86ISD::FNSTCW16m,
  llvm::X86ISD::FP_TO_INT16_IN_MEM, llvm::X86ISD::FP_TO_INT32_IN_MEM, llvm::X86ISD::FP_TO_INT64_IN_MEM, llvm::X86ISD::FILD,
  llvm::X86ISD::FILD_FLAG, llvm::X86ISD::FLD, llvm::X86ISD::FST, llvm::X86ISD::VAARG_64,
  llvm::X86ISD::VTRUNCSTOREUS, llvm::X86ISD::VTRUNCSTORES, llvm::X86ISD::VMTRUNCSTOREUS, llvm::X86ISD::VMTRUNCSTORES,
  llvm::X86ISD::MGATHER, llvm::X86ISD::MSCATTER
}
 

Functions

bool llvm::X86::isZeroNode (SDValue Elt)
 Returns true if Elt is a constant zero or floating point constant +0.0. More...
 
bool llvm::X86::isOffsetSuitableForCodeModel (int64_t Offset, CodeModel::Model M, bool hasSymbolicDisplacement=true)
 Returns true of the given offset can be fit into displacement field of the instruction. More...
 
bool llvm::X86::isCalleePop (CallingConv::ID CallingConv, bool is64Bit, bool IsVarArg, bool GuaranteeTCO)
 Determines whether the callee is required to pop its own arguments. More...
 
FastISelllvm::X86::createFastISel (FunctionLoweringInfo &funcInfo, const TargetLibraryInfo *libInfo)
 
template<typename T = int>
void llvm::createUnpackShuffleMask (MVT VT, SmallVectorImpl< T > &Mask, bool Lo, bool Unary)
 Generate unpacklo/unpackhi shuffle mask. More...
 
template<typename T >
void llvm::scaleShuffleMask (int Scale, ArrayRef< T > Mask, SmallVectorImpl< T > &ScaledMask)
 Helper function to scale a shuffle or target shuffle mask, replacing each mask index with the scaled sequential indices for an equivalent narrowed mask. More...