LLVM 23.0.0git
X86ISelLowering.h File Reference

Go to the source code of this file.

Classes

class  llvm::X86TargetLowering
class  llvm::X86MaskedGatherScatterSDNode
class  llvm::X86MaskedGatherSDNode
class  llvm::X86MaskedScatterSDNode

Namespaces

namespace  llvm
 This is an optimization pass for GlobalISel generic memory operations.
namespace  llvm::X86ISD
namespace  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::FSHL ,
  llvm::X86ISD::FSHR , llvm::X86ISD::FAND , llvm::X86ISD::FOR , llvm::X86ISD::FXOR ,
  llvm::X86ISD::FANDN , llvm::X86ISD::CALL , llvm::X86ISD::NT_CALL , llvm::X86ISD::CALL_RVMARKER ,
  llvm::X86ISD::CALL_GLOBALADDR , llvm::X86ISD::POP_FROM_X87_REG , llvm::X86ISD::IMP_CALL , llvm::X86ISD::CMP ,
  llvm::X86ISD::FCMP , llvm::X86ISD::COMI , llvm::X86ISD::UCOMI , llvm::X86ISD::COMX ,
  llvm::X86ISD::UCOMX , llvm::X86ISD::BT , llvm::X86ISD::SETCC , llvm::X86ISD::SELECTS ,
  llvm::X86ISD::SETCC_CARRY , llvm::X86ISD::FSETCC , llvm::X86ISD::FSETCCM , llvm::X86ISD::FSETCCM_SAE ,
  llvm::X86ISD::CMOV , llvm::X86ISD::BRCOND , llvm::X86ISD::BRCOND_SELF , llvm::X86ISD::NT_BRIND ,
  llvm::X86ISD::RET_GLUE , llvm::X86ISD::IRET , llvm::X86ISD::REP_STOS , llvm::X86ISD::REP_MOVS ,
  llvm::X86ISD::GlobalBaseReg , llvm::X86ISD::Wrapper , llvm::X86ISD::WrapperRIP , llvm::X86ISD::MOVQ2DQ ,
  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::BLENDV , llvm::X86ISD::ADDSUB , llvm::X86ISD::FADD_RND ,
  llvm::X86ISD::FADDS , llvm::X86ISD::FADDS_RND , llvm::X86ISD::FSUB_RND , llvm::X86ISD::FSUBS ,
  llvm::X86ISD::FSUBS_RND , llvm::X86ISD::FMUL_RND , llvm::X86ISD::FMULS , llvm::X86ISD::FMULS_RND ,
  llvm::X86ISD::FDIV_RND , llvm::X86ISD::FDIVS , llvm::X86ISD::FDIVS_RND , llvm::X86ISD::FMAX_SAE ,
  llvm::X86ISD::FMAXS_SAE , llvm::X86ISD::FMIN_SAE , llvm::X86ISD::FMINS_SAE , llvm::X86ISD::FSQRT_RND ,
  llvm::X86ISD::FSQRTS , llvm::X86ISD::FSQRTS_RND , llvm::X86ISD::FGETEXP , llvm::X86ISD::FGETEXP_SAE ,
  llvm::X86ISD::FGETEXPS , llvm::X86ISD::FGETEXPS_SAE , llvm::X86ISD::VGETMANT , llvm::X86ISD::VGETMANT_SAE ,
  llvm::X86ISD::VGETMANTS , llvm::X86ISD::VGETMANTS_SAE , llvm::X86ISD::SCALEF , llvm::X86ISD::SCALEF_RND ,
  llvm::X86ISD::SCALEFS , llvm::X86ISD::SCALEFS_RND , llvm::X86ISD::HADD , llvm::X86ISD::HSUB ,
  llvm::X86ISD::HADDS , llvm::X86ISD::HSUBS , 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::TLSDESC , 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::TC_RETURN_GLOBALADDR , llvm::X86ISD::VZEXT_MOVL ,
  llvm::X86ISD::VTRUNC , llvm::X86ISD::VTRUNCUS , llvm::X86ISD::VTRUNCS , llvm::X86ISD::VMTRUNC ,
  llvm::X86ISD::VMTRUNCUS , llvm::X86ISD::VMTRUNCS , llvm::X86ISD::VFPEXT , llvm::X86ISD::VFPEXT_SAE ,
  llvm::X86ISD::VFPEXTS , llvm::X86ISD::VFPEXTS_SAE , llvm::X86ISD::VFPROUND , llvm::X86ISD::VFPROUND2 ,
  llvm::X86ISD::VFPROUND2_RND , llvm::X86ISD::VFPROUND_RND , llvm::X86ISD::VFPROUNDS , llvm::X86ISD::VFPROUNDS_RND ,
  llvm::X86ISD::VMFPROUND , llvm::X86ISD::VSHLDQ , llvm::X86ISD::VSRLDQ , llvm::X86ISD::VSHL ,
  llvm::X86ISD::VSRL , llvm::X86ISD::VSRA , llvm::X86ISD::VSHLV , llvm::X86ISD::VSRLV ,
  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::PHMINPOS ,
  llvm::X86ISD::MULTISHIFT , llvm::X86ISD::CMPM , llvm::X86ISD::CMPMM , llvm::X86ISD::CMPMM_SAE ,
  llvm::X86ISD::ADD , llvm::X86ISD::SUB , llvm::X86ISD::ADC , llvm::X86ISD::SBB ,
  llvm::X86ISD::SMUL , llvm::X86ISD::UMUL , llvm::X86ISD::OR , llvm::X86ISD::XOR ,
  llvm::X86ISD::AND , llvm::X86ISD::BEXTR , llvm::X86ISD::BEXTRI , llvm::X86ISD::BZHI ,
  llvm::X86ISD::PDEP , llvm::X86ISD::PEXT , llvm::X86ISD::MUL_IMM , llvm::X86ISD::MOVMSK ,
  llvm::X86ISD::PTEST , llvm::X86ISD::TESTP , llvm::X86ISD::KORTEST , llvm::X86ISD::KTEST ,
  llvm::X86ISD::KADD , 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::SHUF128 ,
  llvm::X86ISD::MOVDDUP , llvm::X86ISD::MOVSHDUP , llvm::X86ISD::MOVSLDUP , llvm::X86ISD::MOVLHPS ,
  llvm::X86ISD::MOVHLPS , llvm::X86ISD::MOVSD , llvm::X86ISD::MOVSS , llvm::X86ISD::MOVSH ,
  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::VPTERNLOG , llvm::X86ISD::VFIXUPIMM , llvm::X86ISD::VFIXUPIMM_SAE , llvm::X86ISD::VFIXUPIMMS ,
  llvm::X86ISD::VFIXUPIMMS_SAE , llvm::X86ISD::VRANGE , llvm::X86ISD::VRANGE_SAE , llvm::X86ISD::VRANGES ,
  llvm::X86ISD::VRANGES_SAE , llvm::X86ISD::VREDUCE , llvm::X86ISD::VREDUCE_SAE , llvm::X86ISD::VREDUCES ,
  llvm::X86ISD::VREDUCES_SAE , llvm::X86ISD::VRNDSCALE , llvm::X86ISD::VRNDSCALE_SAE , llvm::X86ISD::VRNDSCALES ,
  llvm::X86ISD::VRNDSCALES_SAE , llvm::X86ISD::VFPCLASS , llvm::X86ISD::VFPCLASSS , llvm::X86ISD::VBROADCAST ,
  llvm::X86ISD::VBROADCASTM , 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::VFMADDC ,
  llvm::X86ISD::VFMADDC_RND , llvm::X86ISD::VFCMADDC , llvm::X86ISD::VFCMADDC_RND , llvm::X86ISD::VFMULC ,
  llvm::X86ISD::VFMULC_RND , llvm::X86ISD::VFCMULC , llvm::X86ISD::VFCMULC_RND , llvm::X86ISD::VFMADDCSH ,
  llvm::X86ISD::VFMADDCSH_RND , llvm::X86ISD::VFCMADDCSH , llvm::X86ISD::VFCMADDCSH_RND , llvm::X86ISD::VFMULCSH ,
  llvm::X86ISD::VFMULCSH_RND , llvm::X86ISD::VFCMULCSH , llvm::X86ISD::VFCMULCSH_RND , llvm::X86ISD::VPDPBSUD ,
  llvm::X86ISD::VPDPBSUDS , llvm::X86ISD::VPDPBUUD , llvm::X86ISD::VPDPBUUDS , llvm::X86ISD::VPDPBSSD ,
  llvm::X86ISD::VPDPBSSDS , llvm::X86ISD::VPDPWSUD , llvm::X86ISD::VPDPWSUDS , llvm::X86ISD::VPDPWUSD ,
  llvm::X86ISD::VPDPWUSDS , llvm::X86ISD::VPDPWUUD , llvm::X86ISD::VPDPWUUDS , llvm::X86ISD::VMINMAX ,
  llvm::X86ISD::VMINMAX_SAE , llvm::X86ISD::VMINMAXS , llvm::X86ISD::VMINMAXS_SAE , llvm::X86ISD::CVTP2IBS ,
  llvm::X86ISD::CVTP2IUBS , llvm::X86ISD::CVTP2IBS_RND , llvm::X86ISD::CVTP2IUBS_RND , llvm::X86ISD::CVTTP2IBS ,
  llvm::X86ISD::CVTTP2IUBS , llvm::X86ISD::CVTTP2IBS_SAE , llvm::X86ISD::CVTTP2IUBS_SAE , llvm::X86ISD::MPSADBW ,
  llvm::X86ISD::VCVT2PH2BF8 , llvm::X86ISD::VCVT2PH2BF8S , llvm::X86ISD::VCVT2PH2HF8 , llvm::X86ISD::VCVT2PH2HF8S ,
  llvm::X86ISD::VCVTBIASPH2BF8 , llvm::X86ISD::VCVTBIASPH2BF8S , llvm::X86ISD::VCVTBIASPH2HF8 , llvm::X86ISD::VCVTBIASPH2HF8S ,
  llvm::X86ISD::VCVTPH2BF8 , llvm::X86ISD::VCVTPH2BF8S , llvm::X86ISD::VCVTPH2HF8 , llvm::X86ISD::VCVTPH2HF8S ,
  llvm::X86ISD::VMCVTBIASPH2BF8 , llvm::X86ISD::VMCVTBIASPH2BF8S , llvm::X86ISD::VMCVTBIASPH2HF8 , llvm::X86ISD::VMCVTBIASPH2HF8S ,
  llvm::X86ISD::VMCVTPH2BF8 , llvm::X86ISD::VMCVTPH2BF8S , llvm::X86ISD::VMCVTPH2HF8 , llvm::X86ISD::VMCVTPH2HF8S ,
  llvm::X86ISD::VCVTHF82PH , 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 , llvm::X86ISD::SCALAR_UINT_TO_FP ,
  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 , llvm::X86ISD::CVTS2UI ,
  llvm::X86ISD::CVTS2SI_RND , llvm::X86ISD::CVTS2UI_RND , llvm::X86ISD::CVTTP2SI , llvm::X86ISD::CVTTP2UI ,
  llvm::X86ISD::CVTTP2SI_SAE , llvm::X86ISD::CVTTP2UI_SAE , llvm::X86ISD::CVTTP2SIS , llvm::X86ISD::CVTTP2UIS ,
  llvm::X86ISD::CVTTP2SIS_SAE , llvm::X86ISD::CVTTP2UIS_SAE , llvm::X86ISD::MCVTTP2SIS , llvm::X86ISD::MCVTTP2UIS ,
  llvm::X86ISD::CVTTS2SI , llvm::X86ISD::CVTTS2UI , llvm::X86ISD::CVTTS2SI_SAE , llvm::X86ISD::CVTTS2UI_SAE ,
  llvm::X86ISD::CVTSI2P , llvm::X86ISD::CVTUI2P , llvm::X86ISD::CVTTS2SIS , llvm::X86ISD::CVTTS2UIS ,
  llvm::X86ISD::CVTTS2SIS_SAE , llvm::X86ISD::CVTTS2UIS_SAE , llvm::X86ISD::MCVTP2SI , llvm::X86ISD::MCVTP2UI ,
  llvm::X86ISD::MCVTTP2SI , llvm::X86ISD::MCVTTP2UI , llvm::X86ISD::MCVTSI2P , llvm::X86ISD::MCVTUI2P ,
  llvm::X86ISD::FP_TO_SINT_SAT , llvm::X86ISD::FP_TO_UINT_SAT , llvm::X86ISD::CVTNEPS2BF16 , llvm::X86ISD::MCVTNEPS2BF16 ,
  llvm::X86ISD::DPBF16PS , llvm::X86ISD::DPFP16PS , llvm::X86ISD::DYN_ALLOCA , llvm::X86ISD::SEG_ALLOCA ,
  llvm::X86ISD::PROBED_ALLOCA , llvm::X86ISD::MFENCE , llvm::X86ISD::RDRAND , llvm::X86ISD::RDSEED ,
  llvm::X86ISD::RDPKRU , llvm::X86ISD::WRPKRU , llvm::X86ISD::PCMPISTR , llvm::X86ISD::PCMPESTR ,
  llvm::X86ISD::XTEST , llvm::X86ISD::CVTPS2PH , llvm::X86ISD::CVTPS2PH_SAE , llvm::X86ISD::CVTPH2PS ,
  llvm::X86ISD::CVTPH2PS_SAE , llvm::X86ISD::MCVTPS2PH , llvm::X86ISD::MCVTPS2PH_SAE , llvm::X86ISD::GF2P8AFFINEINVQB ,
  llvm::X86ISD::GF2P8AFFINEQB , llvm::X86ISD::GF2P8MULB , llvm::X86ISD::PCLMULQDQ , llvm::X86ISD::LWPINS ,
  llvm::X86ISD::UMWAIT , llvm::X86ISD::TPAUSE , llvm::X86ISD::ENQCMD , llvm::X86ISD::ENQCMDS ,
  llvm::X86ISD::VP2INTERSECT , llvm::X86ISD::TESTUI , llvm::X86ISD::FP80_ADD , llvm::X86ISD::CCMP ,
  llvm::X86ISD::CTEST , llvm::X86ISD::FIRST_STRICTFP_OPCODE , llvm::X86ISD::STRICT_FCMP = FIRST_STRICTFP_OPCODE , llvm::X86ISD::STRICT_FCMPS ,
  llvm::X86ISD::STRICT_CMPP , llvm::X86ISD::STRICT_CMPM , llvm::X86ISD::STRICT_CVTTP2SI , llvm::X86ISD::STRICT_CVTTP2UI ,
  llvm::X86ISD::STRICT_VFPEXT , llvm::X86ISD::STRICT_VFPROUND , llvm::X86ISD::STRICT_VRNDSCALE , llvm::X86ISD::STRICT_CVTSI2P ,
  llvm::X86ISD::STRICT_CVTUI2P , llvm::X86ISD::STRICT_FNMADD , llvm::X86ISD::STRICT_FMSUB , llvm::X86ISD::STRICT_FNMSUB ,
  llvm::X86ISD::STRICT_CVTPS2PH , llvm::X86ISD::STRICT_CVTPH2PS , llvm::X86ISD::STRICT_FP80_ADD , llvm::X86ISD::STRICT_FMAX ,
  llvm::X86ISD::STRICT_FMIN , llvm::X86ISD::LAST_STRICTFP_OPCODE = STRICT_FMIN , llvm::X86ISD::FIRST_MEMORY_OPCODE , llvm::X86ISD::LCMPXCHG_DAG = FIRST_MEMORY_OPCODE ,
  llvm::X86ISD::LCMPXCHG8_DAG , llvm::X86ISD::LCMPXCHG16_DAG , llvm::X86ISD::LCMPXCHG16_SAVE_RBX_DAG , llvm::X86ISD::LADD ,
  llvm::X86ISD::LSUB , llvm::X86ISD::LOR , llvm::X86ISD::LXOR , llvm::X86ISD::LAND ,
  llvm::X86ISD::LBTS , llvm::X86ISD::LBTC , llvm::X86ISD::LBTR , llvm::X86ISD::LBTS_RM ,
  llvm::X86ISD::LBTC_RM , llvm::X86ISD::LBTR_RM , llvm::X86ISD::AADD , llvm::X86ISD::AOR ,
  llvm::X86ISD::AXOR , llvm::X86ISD::AAND , llvm::X86ISD::VZEXT_LOAD , llvm::X86ISD::VEXTRACT_STORE ,
  llvm::X86ISD::VBROADCAST_LOAD , llvm::X86ISD::SUBV_BROADCAST_LOAD , llvm::X86ISD::FNSTCW16m , llvm::X86ISD::FLDCW16m ,
  llvm::X86ISD::FNSTENVm , llvm::X86ISD::FLDENVm , llvm::X86ISD::FP_TO_INT_IN_MEM , llvm::X86ISD::FILD ,
  llvm::X86ISD::FIST , llvm::X86ISD::FLD , llvm::X86ISD::FST , llvm::X86ISD::VAARG_64 ,
  llvm::X86ISD::VAARG_X32 , llvm::X86ISD::VTRUNCSTOREUS , llvm::X86ISD::VTRUNCSTORES , llvm::X86ISD::VMTRUNCSTOREUS ,
  llvm::X86ISD::VMTRUNCSTORES , llvm::X86ISD::MGATHER , llvm::X86ISD::MSCATTER , llvm::X86ISD::AESENC128KL ,
  llvm::X86ISD::AESDEC128KL , llvm::X86ISD::AESENC256KL , llvm::X86ISD::AESDEC256KL , llvm::X86ISD::AESENCWIDE128KL ,
  llvm::X86ISD::AESDECWIDE128KL , llvm::X86ISD::AESENCWIDE256KL , llvm::X86ISD::AESDECWIDE256KL , llvm::X86ISD::CMPCCXADD ,
  llvm::X86ISD::VASTART_SAVE_XMM_REGS , llvm::X86ISD::CLOAD , llvm::X86ISD::CSTORE , llvm::X86ISD::LAST_MEMORY_OPCODE = CSTORE
}
enum  llvm::X86::RoundingMode {
  llvm::X86::rmInvalid = -1 , llvm::X86::rmToNearest = 0 , llvm::X86::rmDownward = 1 << 10 , llvm::X86::rmUpward = 2 << 10 ,
  llvm::X86::rmTowardZero = 3 << 10 , llvm::X86::rmMask = 3 << 10
}
 Current rounding mode is represented in bits 11:10 of FPSR. More...

Functions

bool llvm::X86::isZeroNode (SDValue Elt)
 Returns true if Elt is a constant zero or floating point constant +0.0.
bool llvm::X86::isOffsetSuitableForCodeModel (int64_t Offset, CodeModel::Model M, bool hasSymbolicDisplacement)
 Returns true of the given offset can be fit into displacement field of the instruction.
bool llvm::X86::isCalleePop (CallingConv::ID CallingConv, bool is64Bit, bool IsVarArg, bool GuaranteeTCO)
 Determines whether the callee is required to pop its own arguments.
bool llvm::X86::isConstantSplat (SDValue Op, APInt &SplatVal, bool AllowPartialUndefs=true)
 If Op is a constant whose elements are all the same constant or undefined, return true and return the constant value in SplatVal.
bool llvm::X86::mayFoldLoad (SDValue Op, const X86Subtarget &Subtarget, bool AssumeSingleUse=false, bool IgnoreAlignment=false)
 Check if Op is a load operation that could be folded into some other x86 instruction as a memory operand.
bool llvm::X86::mayFoldLoadIntoBroadcastFromMem (SDValue Op, MVT EltVT, const X86Subtarget &Subtarget, bool AssumeSingleUse=false)
 Check if Op is a load operation that could be folded into a vector splat instruction as a memory operand.
bool llvm::X86::mayFoldIntoStore (SDValue Op)
 Check if Op is a value that could be used to fold a store into some other x86 instruction as a memory operand.
bool llvm::X86::mayFoldIntoZeroExtend (SDValue Op)
 Check if Op is an operation that could be folded into a zero extend x86 instruction.
bool llvm::X86::isExtendedSwiftAsyncFrameSupported (const X86Subtarget &Subtarget, const MachineFunction &MF)
 True if the target supports the extended frame for async Swift functions.
int llvm::X86::getRoundingModeX86 (unsigned RM)
 Convert LLVM rounding mode to X86 rounding mode.
FastISelllvm::X86::createFastISel (FunctionLoweringInfo &funcInfo, const TargetLibraryInfo *libInfo, const LibcallLoweringInfo *libcallLowering)
void llvm::createUnpackShuffleMask (EVT VT, SmallVectorImpl< int > &Mask, bool Lo, bool Unary)
 Generate unpacklo/unpackhi shuffle mask.
void llvm::createSplat2ShuffleMask (MVT VT, SmallVectorImpl< int > &Mask, bool Lo)
 Similar to unpacklo/unpackhi, but without the 128-bit lane limitation imposed by AVX and specific to the unary pattern.