LLVM
8.0.1
|
enum llvm::X86ISD::NodeType : unsigned |
Enumerator | |
---|---|
FIRST_NUMBER | |
BSF | Bit scan forward. |
BSR | Bit scan reverse. |
SHLD | Double shift instructions. These correspond to X86::SHLDxx and X86::SHRDxx instructions. |
SHRD | |
FAND | Bitwise logical AND of floating point values. This corresponds to X86::ANDPS or X86::ANDPD. |
FOR | Bitwise logical OR of floating point values. This corresponds to X86::ORPS or X86::ORPD. |
FXOR | Bitwise logical XOR of floating point values. This corresponds to X86::XORPS or X86::XORPD. |
FANDN | Bitwise logical ANDNOT of floating point values. This corresponds to X86::ANDNPS or X86::ANDNPD. |
CALL | These operations represent an abstract X86 call instruction, which includes a bunch of information. In particular the operands of these node are: #0 - The incoming token chain #1 - The callee #2 - The number of arg bytes the caller pushes on the stack. #3 - The number of arg bytes the callee pops off the stack. #4 - The value to pass in AL/AX/EAX (optional) #5 - The value to pass in DL/DX/EDX (optional) The result values of these nodes are: #0 - The outgoing token chain #1 - The first register result value (optional) #2 - The second register result value (optional) |
NT_CALL | Same as call except it adds the NoTrack prefix. |
RDTSC_DAG | This operation implements the lowering for readcyclecounter. |
RDTSCP_DAG | X86 Read Time-Stamp Counter and Processor ID. |
RDPMC_DAG | X86 Read Performance Monitoring Counters. |
CMP | X86 compare and logical compare instructions. |
COMI | |
UCOMI | |
BT | X86 bit-test instructions. |
SETCC | X86 SetCC. Operand 0 is condition code, and operand 1 is the EFLAGS operand, usually produced by a CMP instruction. |
SELECTS | X86 Select. |
SETCC_CARRY | |
FSETCC | X86 FP SETCC, implemented with CMP{cc}SS/CMP{cc}SD. Operands are two FP values to compare; result is a mask of 0s or 1s. Generally DTRT for C/C++ with NaNs. |
FSETCCM | X86 FP SETCC, similar to above, but with output as an i1 mask and with optional rounding mode. |
FSETCCM_RND | |
CMOV | X86 conditional moves. Operand 0 and operand 1 are the two values to select from. Operand 2 is the condition code, and operand 3 is the flag operand produced by a CMP or TEST instruction. It also writes a flag result. |
BRCOND | X86 conditional branches. Operand 0 is the chain operand, operand 1 is the block to branch if condition is true, operand 2 is the condition code, and operand 3 is the flag operand produced by a CMP or TEST instruction. |
NT_BRIND | BRIND node with NoTrack prefix. Operand 0 is the chain operand and operand 1 is the target address. |
RET_FLAG | Return with a flag operand. Operand 0 is the chain operand, operand 1 is the number of bytes of stack to pop. |
IRET | Return from interrupt. Operand 0 is the number of bytes to pop. |
REP_STOS | Repeat fill, corresponds to X86::REP_STOSx. |
REP_MOVS | Repeat move, corresponds to X86::REP_MOVSx. |
GlobalBaseReg | On Darwin, this node represents the result of the popl at function entry, used for PIC code. |
Wrapper | A wrapper node for TargetConstantPool, TargetJumpTable, TargetExternalSymbol, TargetGlobalAddress, TargetGlobalTLSAddress, MCSymbol and TargetBlockAddress. |
WrapperRIP | Special wrapper used under X86-64 PIC mode for RIP relative displacements. |
MOVDQ2Q | Copies a 64-bit value from the low word of an XMM vector to an MMX vector. |
MMX_MOVD2W | Copies a 32-bit value from the low word of a MMX vector to a GPR. |
MMX_MOVW2D | Copies a GPR into the low 32-bit word of a MMX vector and zero out the high word. |
PEXTRB | Extract an 8-bit value from a vector and zero extend it to i32, corresponds to X86::PEXTRB. |
PEXTRW | Extract a 16-bit value from a vector and zero extend it to i32, corresponds to X86::PEXTRW. |
INSERTPS | Insert any element of a 4 x float vector into any element of a destination 4 x floatvector. |
PINSRB | Insert the lower 8-bits of a 32-bit value to a vector, corresponds to X86::PINSRB. |
PINSRW | Insert the lower 16-bits of a 32-bit value to a vector, corresponds to X86::PINSRW. |
PSHUFB | Shuffle 16 8-bit values within a vector. |
PSADBW | Compute Sum of Absolute Differences. |
DBPSADBW | Compute Double Block Packed Sum-Absolute-Differences. |
ANDNP | Bitwise Logical AND NOT of Packed FP values. |
BLENDI | Blend where the selector is an immediate. |
BLENDV | Dynamic (non-constant condition) vector blend where only the sign bits of the condition elements are used. This is used to enforce that the condition mask is not valid for generic VSELECT optimizations. This can also be used to implement the intrinsics. |
ADDSUB | Combined add and sub on an FP vector. |
FADD_RND | |
FADDS_RND | |
FSUB_RND | |
FSUBS_RND | |
FMUL_RND | |
FMULS_RND | |
FDIV_RND | |
FDIVS_RND | |
FMAX_RND | |
FMAXS_RND | |
FMIN_RND | |
FMINS_RND | |
FSQRT_RND | |
FSQRTS_RND | |
FGETEXP_RND | |
FGETEXPS_RND | |
VGETMANT | |
VGETMANT_RND | |
VGETMANTS | |
VGETMANTS_RND | |
SCALEF | |
SCALEFS | |
AVG | |
HADD | Integer horizontal add/sub. |
HSUB | |
FHADD | Floating point horizontal add/sub. |
FHSUB | |
CONFLICT | |
FMAX | Floating point max and min. |
FMIN | |
FMAXC | Commutative FMIN and FMAX. |
FMINC | |
FMAXS | Scalar intrinsic floating point max and min. |
FMINS | |
FRSQRT | Floating point reciprocal-sqrt and reciprocal approximation. Note that these typically require refinement in order to obtain suitable precision. |
FRCP | |
RSQRT14 | |
RSQRT14S | |
RCP14 | |
RCP14S | |
TLSADDR | |
TLSBASEADDR | |
TLSCALL | |
EH_RETURN | |
EH_SJLJ_SETJMP | |
EH_SJLJ_LONGJMP | |
EH_SJLJ_SETUP_DISPATCH | |
TC_RETURN | Tail call return. See X86TargetLowering::LowerCall for the list of operands. |
VZEXT_MOVL | |
VTRUNC | |
VTRUNCUS | |
VTRUNCS | |
VMTRUNC | |
VMTRUNCUS | |
VMTRUNCS | |
VFPEXT | |
VFPEXT_RND | |
VFPEXTS_RND | |
VFPROUND | |
VFPROUND_RND | |
VFPROUNDS_RND | |
VMFPROUND | |
VSHLDQ | |
VSRLDQ | |
VSHL | |
VSRL | |
VSRA | |
VSHLV | |
VSRLV | |
VSRAV | |
VSHLI | |
VSRLI | |
VSRAI | |
KSHIFTL | |
KSHIFTR | |
VROTLI | |
VROTRI | |
CMPP | |
PCMPEQ | |
PCMPGT | |
PHMINPOS | |
MULTISHIFT | |
CMPM | Vector comparison generating mask bits for fp and integer signed and unsigned data types. |
CMPM_RND | |
ADD | |
SUB | |
ADC | |
SBB | |
SMUL | |
UMUL | |
OR | |
XOR | |
AND | |
BEXTR | |
BZHI | |
MUL_IMM | |
MOVMSK | |
PTEST | |
TESTP | |
KORTEST | |
KTEST | |
KADD | |
PACKSS | |
PACKUS | |
PALIGNR | |
VALIGN | |
PSHUFD | |
PSHUFHW | |
PSHUFLW | |
SHUFP | |
VSHLD | |
VSHRD | |
VSHLDV | |
VSHRDV | |
SHUF128 | |
MOVDDUP | |
MOVSHDUP | |
MOVSLDUP | |
MOVLHPS | |
MOVHLPS | |
MOVSD | |
MOVSS | |
UNPCKL | |
UNPCKH | |
VPERMILPV | |
VPERMILPI | |
VPERMI | |
VPERM2X128 | |
VPERMV | |
VPERMV3 | |
VPTERNLOG | |
VFIXUPIMM | |
VFIXUPIMMS | |
VRANGE | |
VRANGE_RND | |
VRANGES | |
VRANGES_RND | |
VREDUCE | |
VREDUCE_RND | |
VREDUCES | |
VREDUCES_RND | |
VRNDSCALE | |
VRNDSCALE_RND | |
VRNDSCALES | |
VRNDSCALES_RND | |
VFPCLASS | |
VFPCLASSS | |
VBROADCAST | |
VBROADCASTM | |
SUBV_BROADCAST | |
EXTRQI | SSE4A Extraction and Insertion. |
INSERTQI | |
VPSHA | |
VPSHL | |
VPCOM | |
VPCOMU | |
VPPERM | |
VPERMIL2 | |
PMULUDQ | |
PMULDQ | |
MULHRS | |
VPMADDUBSW | |
VPMADDWD | |
VPMADD52L | |
VPMADD52H | |
VPDPBUSD | |
VPDPBUSDS | |
VPDPWSSD | |
VPDPWSSDS | |
FNMADD | |
FMSUB | |
FNMSUB | |
FMADDSUB | |
FMSUBADD | |
FMADD_RND | |
FNMADD_RND | |
FMSUB_RND | |
FNMSUB_RND | |
FMADDSUB_RND | |
FMSUBADD_RND | |
COMPRESS | |
EXPAND | |
VPSHUFBITQMB | |
SINT_TO_FP_RND | |
UINT_TO_FP_RND | |
SCALAR_SINT_TO_FP_RND | |
SCALAR_UINT_TO_FP_RND | |
CVTP2SI | |
CVTP2UI | |
CVTP2SI_RND | |
CVTP2UI_RND | |
CVTS2SI | |
CVTS2UI | |
CVTS2SI_RND | |
CVTS2UI_RND | |
CVTTP2SI | |
CVTTP2UI | |
CVTTP2SI_RND | |
CVTTP2UI_RND | |
CVTTS2SI | |
CVTTS2UI | |
CVTTS2SI_RND | |
CVTTS2UI_RND | |
CVTSI2P | |
CVTUI2P | |
MCVTP2SI | |
MCVTP2UI | |
MCVTTP2SI | |
MCVTTP2UI | |
VASTART_SAVE_XMM_REGS | |
WIN_ALLOCA | |
SEG_ALLOCA | |
MEMBARRIER | |
MFENCE | |
FNSTSW16r | |
SAHF | |
RDRAND | |
RDSEED | |
PCMPISTR | |
PCMPESTR | |
XTEST | |
RSQRT28 | |
RSQRT28S | |
RCP28 | |
RCP28S | |
EXP2 | |
CVTPS2PH | |
CVTPH2PS | |
CVTPH2PS_RND | |
MCVTPS2PH | |
GF2P8AFFINEINVQB | |
GF2P8AFFINEQB | |
GF2P8MULB | |
LWPINS | |
UMWAIT | |
TPAUSE | |
LCMPXCHG_DAG | |
LCMPXCHG8_DAG | |
LCMPXCHG16_DAG | |
LCMPXCHG8_SAVE_EBX_DAG | |
LCMPXCHG16_SAVE_RBX_DAG | |
LADD | LOCK-prefixed arithmetic read-modify-write instructions. EFLAGS, OUTCHAIN = LADD(INCHAIN, PTR, RHS) |
LSUB | |
LOR | |
LXOR | |
LAND | |
VZEXT_LOAD | |
FNSTCW16m | |
FP_TO_INT16_IN_MEM | This instruction implements FP_TO_SINT with the integer destination in memory and a FP reg source. This corresponds to the X86::FIST*m instructions and the rounding mode change stuff. It has two inputs (token chain and address) and two outputs (int value and token chain). |
FP_TO_INT32_IN_MEM | |
FP_TO_INT64_IN_MEM | |
FILD | This instruction implements SINT_TO_FP with the integer source in memory and FP reg result. This corresponds to the X86::FILD*m instructions. It has three inputs (token chain, address, and source type) and two outputs (FP value and token chain). FILD_FLAG also produces a flag). |
FILD_FLAG | |
FLD | This instruction implements an extending load to FP stack slots. This corresponds to the X86::FLD32m / X86::FLD64m. It takes a chain operand, ptr to load from, and a ValueType node indicating the type to load to. |
FST | This instruction implements a truncating store to FP stack slots. This corresponds to the X86::FST32m / X86::FST64m. It takes a chain operand, value to store, address, and a ValueType to store it as. |
VAARG_64 | This instruction grabs the address of the next argument from a va_list. (reads and modifies the va_list in memory) |
VTRUNCSTOREUS | |
VTRUNCSTORES | |
VMTRUNCSTOREUS | |
VMTRUNCSTORES | |
MGATHER | |
MSCATTER |
Definition at line 29 of file X86ISelLowering.h.