LLVM API Documentation

llvm::X86 Namespace Reference

Define some predicates that are used for node matching. More...


Enumerations

enum  RelocationType { reloc_pcrel_word = 0, reloc_absolute_word = 1 }

Functions

bool isPSHUFDMask (SDNode *N)
bool isPSHUFHWMask (SDNode *N)
bool isPSHUFLWMask (SDNode *N)
bool isSHUFPMask (SDNode *N)
bool isMOVHLPSMask (SDNode *N)
bool isMOVLPMask (SDNode *N)
bool isMOVHPMask (SDNode *N)
bool isUNPCKLMask (SDNode *N, bool V2IsSplat=false)
bool isUNPCKHMask (SDNode *N, bool V2IsSplat=false)
bool isUNPCKL_v_undef_Mask (SDNode *N)
bool isMOVLMask (SDNode *N)
bool isMOVSHDUPMask (SDNode *N)
bool isMOVSLDUPMask (SDNode *N)
bool isSplatMask (SDNode *N)
unsigned getShuffleSHUFImmediate (SDNode *N)
unsigned getShufflePSHUFHWImmediate (SDNode *N)
unsigned getShufflePSHUFLWImmediate (SDNode *N)


Detailed Description

Define some predicates that are used for node matching.

Enumeration Type Documentation

enum llvm::X86::RelocationType

Enumerator:
reloc_pcrel_word 
reloc_absolute_word 

Definition at line 21 of file X86Relocations.h.


Function Documentation

unsigned llvm::X86::getShufflePSHUFHWImmediate ( SDNode N  ) 

getShufflePSHUFHWImmediate - Return the appropriate immediate to shuffle the specified isShuffleMask VECTOR_SHUFFLE mask with PSHUFHW instructions.

Definition at line 1873 of file X86ISelLowering.cpp.

References llvm::SDOperand::getOpcode(), llvm::SDNode::getOperand(), llvm::ISD::UNDEF, and Val.

unsigned llvm::X86::getShufflePSHUFLWImmediate ( SDNode N  ) 

getShufflePSHUFLWImmediate - Return the appropriate immediate to shuffle the specified isShuffleMask VECTOR_SHUFFLE mask with PSHUFLW instructions.

Definition at line 1892 of file X86ISelLowering.cpp.

References llvm::SDOperand::getOpcode(), llvm::SDNode::getOperand(), llvm::ISD::UNDEF, and Val.

unsigned llvm::X86::getShuffleSHUFImmediate ( SDNode N  ) 

getShuffleSHUFImmediate - Return the appropriate immediate to shuffle the specified isShuffleMask VECTOR_SHUFFLE mask with PSHUF* and SHUFP* instructions.

Definition at line 1852 of file X86ISelLowering.cpp.

References llvm::SDNode::getNumOperands(), llvm::SDOperand::getOpcode(), llvm::SDNode::getOperand(), llvm::ISD::UNDEF, and Val.

bool llvm::X86::isMOVHLPSMask ( SDNode N  ) 

isMOVHLPSMask - Return true if the specified VECTOR_SHUFFLE operand specifies a shuffle of elements that is suitable for input to MOVHLPS.

Definition at line 1548 of file X86ISelLowering.cpp.

References llvm::ISD::BUILD_VECTOR, llvm::SDNode::getNumOperands(), llvm::SDNode::getOpcode(), llvm::SDNode::getOperand(), and isUndefOrEqual().

bool llvm::X86::isMOVHPMask ( SDNode N  ) 

isMOVHPMask - Return true if the specified VECTOR_SHUFFLE operand specifies a shuffle of elements that is suitable for input to MOVHP{S|D} and MOVLHPS.

Definition at line 1584 of file X86ISelLowering.cpp.

References llvm::ISD::BUILD_VECTOR, llvm::SDNode::getNumOperands(), llvm::SDNode::getOpcode(), llvm::SDNode::getOperand(), and isUndefOrEqual().

bool llvm::X86::isMOVLMask ( SDNode N  ) 

isMOVLMask - Return true if the specified VECTOR_SHUFFLE operand specifies a shuffle of elements that is suitable for input to MOVSS, MOVSD, and MOVD, i.e. setting the lowest element.

Definition at line 1707 of file X86ISelLowering.cpp.

References llvm::ISD::BUILD_VECTOR, llvm::SDNode::getOpcode(), isMOVLMask(), llvm::SDNode::op_begin(), llvm::SDNode::op_end(), and Ops.

bool llvm::X86::isMOVLPMask ( SDNode N  ) 

isMOVLPMask - Return true if the specified VECTOR_SHUFFLE operand specifies a shuffle of elements that is suitable for input to MOVLP{S|D}.

Definition at line 1563 of file X86ISelLowering.cpp.

References llvm::ISD::BUILD_VECTOR, llvm::SDNode::getNumOperands(), llvm::SDNode::getOpcode(), llvm::SDNode::getOperand(), and isUndefOrEqual().

bool llvm::X86::isMOVSHDUPMask ( SDNode N  ) 

isMOVSHDUPMask - Return true if the specified VECTOR_SHUFFLE operand specifies a shuffle of elements that is suitable for input to MOVSHDUP.

Definition at line 1746 of file X86ISelLowering.cpp.

References llvm::ISD::BUILD_VECTOR, llvm::SDNode::getNumOperands(), llvm::SDNode::getOpcode(), llvm::SDNode::getOperand(), llvm::ISD::UNDEF, and Val.

bool llvm::X86::isMOVSLDUPMask ( SDNode N  ) 

isMOVSLDUPMask - Return true if the specified VECTOR_SHUFFLE operand specifies a shuffle of elements that is suitable for input to MOVSLDUP.

Definition at line 1777 of file X86ISelLowering.cpp.

References llvm::ISD::BUILD_VECTOR, llvm::SDNode::getNumOperands(), llvm::SDNode::getOpcode(), llvm::SDNode::getOperand(), llvm::ISD::UNDEF, and Val.

bool llvm::X86::isPSHUFDMask ( SDNode N  ) 

isPSHUFDMask - Return true if the specified VECTOR_SHUFFLE operand specifies a shuffle of elements that is suitable for input to PSHUFD.

Definition at line 1430 of file X86ISelLowering.cpp.

References llvm::ISD::BUILD_VECTOR, llvm::SDNode::getNumOperands(), llvm::SDNode::getOpcode(), llvm::SDNode::getOperand(), and llvm::ISD::UNDEF.

bool llvm::X86::isPSHUFHWMask ( SDNode N  ) 

isPSHUFHWMask - Return true if the specified VECTOR_SHUFFLE operand specifies a shuffle of elements that is suitable for input to PSHUFHW.

Definition at line 1450 of file X86ISelLowering.cpp.

References llvm::ISD::BUILD_VECTOR, llvm::SDNode::getNumOperands(), llvm::SDNode::getOpcode(), llvm::SDNode::getOperand(), llvm::ISD::UNDEF, and Val.

bool llvm::X86::isPSHUFLWMask ( SDNode N  ) 

isPSHUFLWMask - Return true if the specified VECTOR_SHUFFLE operand specifies a shuffle of elements that is suitable for input to PSHUFLW.

Definition at line 1480 of file X86ISelLowering.cpp.

References llvm::ISD::BUILD_VECTOR, llvm::SDNode::getNumOperands(), llvm::SDNode::getOpcode(), llvm::SDNode::getOperand(), isUndefOrEqual(), and isUndefOrInRange().

bool llvm::X86::isSHUFPMask ( SDNode N  ) 

isSHUFPMask - Return true if the specified VECTOR_SHUFFLE operand specifies a shuffle of elements that is suitable for input to SHUFP*.

Definition at line 1516 of file X86ISelLowering.cpp.

References llvm::ISD::BUILD_VECTOR, llvm::SDNode::getOpcode(), isSHUFPMask(), llvm::SDNode::op_begin(), llvm::SDNode::op_end(), and Ops.

bool llvm::X86::isSplatMask ( SDNode N  ) 

isSplatMask - Return true if the specified VECTOR_SHUFFLE operand specifies a splat of a single element and it's a 2 or 4 element mask.

Definition at line 1840 of file X86ISelLowering.cpp.

References llvm::ISD::BUILD_VECTOR, llvm::SDNode::getNumOperands(), llvm::SDNode::getOpcode(), and isSplatMask().

bool llvm::X86::isUNPCKHMask ( SDNode N,
bool  V2IsSplat = false 
)

isUNPCKHMask - Return true if the specified VECTOR_SHUFFLE operand specifies a shuffle of elements that is suitable for input to UNPCKH.

Definition at line 1658 of file X86ISelLowering.cpp.

References llvm::ISD::BUILD_VECTOR, llvm::SDNode::getOpcode(), isUNPCKHMask(), llvm::SDNode::op_begin(), llvm::SDNode::op_end(), and Ops.

bool llvm::X86::isUNPCKL_v_undef_Mask ( SDNode N  ) 

isUNPCKL_v_undef_Mask - Special case of isUNPCKLMask for canonical form of vector_shuffle v, v, <0, 4, 1, 5>, i.e. vector_shuffle v, undef, <0, 0, 1, 1>

Definition at line 1667 of file X86ISelLowering.cpp.

References llvm::ISD::BUILD_VECTOR, llvm::SDNode::getNumOperands(), llvm::SDNode::getOpcode(), llvm::SDNode::getOperand(), and isUndefOrEqual().

Referenced by llvm::X86TargetLowering::isShuffleMaskLegal().

bool llvm::X86::isUNPCKLMask ( SDNode N,
bool  V2IsSplat = false 
)

isUNPCKLMask - Return true if the specified VECTOR_SHUFFLE operand specifies a shuffle of elements that is suitable for input to UNPCKL.

Definition at line 1628 of file X86ISelLowering.cpp.

References llvm::ISD::BUILD_VECTOR, llvm::SDNode::getOpcode(), isUNPCKLMask(), llvm::SDNode::op_begin(), llvm::SDNode::op_end(), and Ops.