LLVM  8.0.1
Namespaces | Functions
X86ShuffleDecode.cpp File Reference
#include "X86ShuffleDecode.h"
#include "llvm/ADT/ArrayRef.h"
Include dependency graph for X86ShuffleDecode.cpp:

Go to the source code of this file.

Namespaces

 llvm
 This class represents lattice values for constants.
 

Functions

void llvm::DecodeINSERTPSMask (unsigned Imm, SmallVectorImpl< int > &ShuffleMask)
 Decode a 128-bit INSERTPS instruction as a v4f32 shuffle mask. More...
 
void llvm::DecodeInsertElementMask (unsigned NumElts, unsigned Idx, unsigned Len, SmallVectorImpl< int > &ShuffleMask)
 
void llvm::DecodeMOVHLPSMask (unsigned NElts, SmallVectorImpl< int > &ShuffleMask)
 Decode a MOVHLPS instruction as a v2f64/v4f32 shuffle mask. More...
 
void llvm::DecodeMOVLHPSMask (unsigned NElts, SmallVectorImpl< int > &ShuffleMask)
 Decode a MOVLHPS instruction as a v2f64/v4f32 shuffle mask. More...
 
void llvm::DecodeMOVSLDUPMask (unsigned NumElts, SmallVectorImpl< int > &ShuffleMask)
 
void llvm::DecodeMOVSHDUPMask (unsigned NumElts, SmallVectorImpl< int > &ShuffleMask)
 
void llvm::DecodeMOVDDUPMask (unsigned NumElts, SmallVectorImpl< int > &ShuffleMask)
 
void llvm::DecodePSLLDQMask (unsigned NumElts, unsigned Imm, SmallVectorImpl< int > &ShuffleMask)
 
void llvm::DecodePSRLDQMask (unsigned NumElts, unsigned Imm, SmallVectorImpl< int > &ShuffleMask)
 
void llvm::DecodePALIGNRMask (unsigned NumElts, unsigned Imm, SmallVectorImpl< int > &ShuffleMask)
 
void llvm::DecodeVALIGNMask (unsigned NumElts, unsigned Imm, SmallVectorImpl< int > &ShuffleMask)
 
void llvm::DecodePSHUFMask (unsigned NumElts, unsigned ScalarBits, unsigned Imm, SmallVectorImpl< int > &ShuffleMask)
 DecodePSHUFMask - This decodes the shuffle masks for pshufw, pshufd, and vpermilp*. More...
 
void llvm::DecodePSHUFHWMask (unsigned NumElts, unsigned Imm, SmallVectorImpl< int > &ShuffleMask)
 Decodes the shuffle masks for pshufhw. More...
 
void llvm::DecodePSHUFLWMask (unsigned NumElts, unsigned Imm, SmallVectorImpl< int > &ShuffleMask)
 Decodes the shuffle masks for pshuflw. More...
 
void llvm::DecodePSWAPMask (unsigned NumElts, SmallVectorImpl< int > &ShuffleMask)
 Decodes a PSWAPD 3DNow! instruction. More...
 
void llvm::DecodeSHUFPMask (unsigned NumElts, unsigned ScalarBits, unsigned Imm, SmallVectorImpl< int > &ShuffleMask)
 DecodeSHUFPMask - This decodes the shuffle masks for shufp*. More...
 
void llvm::DecodeUNPCKHMask (unsigned NumElts, unsigned ScalarBits, SmallVectorImpl< int > &ShuffleMask)
 DecodeUNPCKHMask - This decodes the shuffle masks for unpckhps/unpckhpd and punpckh*. More...
 
void llvm::DecodeUNPCKLMask (unsigned NumElts, unsigned ScalarBits, SmallVectorImpl< int > &ShuffleMask)
 DecodeUNPCKLMask - This decodes the shuffle masks for unpcklps/unpcklpd and punpckl*. More...
 
void llvm::DecodeVectorBroadcast (unsigned NumElts, SmallVectorImpl< int > &ShuffleMask)
 Decodes a broadcast of the first element of a vector. More...
 
void llvm::DecodeSubVectorBroadcast (unsigned DstNumElts, unsigned SrcNumElts, SmallVectorImpl< int > &ShuffleMask)
 Decodes a broadcast of a subvector to a larger vector type. More...
 
void llvm::decodeVSHUF64x2FamilyMask (unsigned NumElts, unsigned ScalarSize, unsigned Imm, SmallVectorImpl< int > &ShuffleMask)
 Decode a shuffle packed values at 128-bit granularity (SHUFF32x4/SHUFF64x2/SHUFI32x4/SHUFI64x2) immediate mask into a shuffle mask. More...
 
void llvm::DecodeVPERM2X128Mask (unsigned NumElts, unsigned Imm, SmallVectorImpl< int > &ShuffleMask)
 
void llvm::DecodePSHUFBMask (ArrayRef< uint64_t > RawMask, const APInt &UndefElts, SmallVectorImpl< int > &ShuffleMask)
 Decode a PSHUFB mask from a raw array of constants such as from BUILD_VECTOR. More...
 
void llvm::DecodeBLENDMask (unsigned NumElts, unsigned Imm, SmallVectorImpl< int > &ShuffleMask)
 Decode a BLEND immediate mask into a shuffle mask. More...
 
void llvm::DecodeVPPERMMask (ArrayRef< uint64_t > RawMask, const APInt &UndefElts, SmallVectorImpl< int > &ShuffleMask)
 Decode a VPPERM mask from a raw array of constants such as from BUILD_VECTOR. More...
 
void llvm::DecodeVPERMMask (unsigned NumElts, unsigned Imm, SmallVectorImpl< int > &ShuffleMask)
 DecodeVPERMMask - this decodes the shuffle masks for VPERMQ/VPERMPD. More...
 
void llvm::DecodeZeroExtendMask (unsigned SrcScalarBits, unsigned DstScalarBits, unsigned NumDstElts, SmallVectorImpl< int > &ShuffleMask)
 Decode a zero extension instruction as a shuffle mask. More...
 
void llvm::DecodeZeroMoveLowMask (unsigned NumElts, SmallVectorImpl< int > &ShuffleMask)
 Decode a move lower and zero upper instruction as a shuffle mask. More...
 
void llvm::DecodeScalarMoveMask (unsigned NumElts, bool IsLoad, SmallVectorImpl< int > &ShuffleMask)
 Decode a scalar float move instruction as a shuffle mask. More...
 
void llvm::DecodeEXTRQIMask (unsigned NumElts, unsigned EltSize, int Len, int Idx, SmallVectorImpl< int > &ShuffleMask)
 Decode a SSE4A EXTRQ instruction as a shuffle mask. More...
 
void llvm::DecodeINSERTQIMask (unsigned NumElts, unsigned EltSize, int Len, int Idx, SmallVectorImpl< int > &ShuffleMask)
 Decode a SSE4A INSERTQ instruction as a shuffle mask. More...
 
void llvm::DecodeVPERMILPMask (unsigned NumElts, unsigned ScalarBits, ArrayRef< uint64_t > RawMask, const APInt &UndefElts, SmallVectorImpl< int > &ShuffleMask)
 Decode a VPERMILPD/VPERMILPS variable mask from a raw array of constants. More...
 
void llvm::DecodeVPERMIL2PMask (unsigned NumElts, unsigned ScalarBits, unsigned M2Z, ArrayRef< uint64_t > RawMask, const APInt &UndefElts, SmallVectorImpl< int > &ShuffleMask)
 Decode a VPERMIL2PD/VPERMIL2PS variable mask from a raw array of constants. More...
 
void llvm::DecodeVPERMVMask (ArrayRef< uint64_t > RawMask, const APInt &UndefElts, SmallVectorImpl< int > &ShuffleMask)
 Decode a VPERM W/D/Q/PS/PD mask from a raw array of constants. More...
 
void llvm::DecodeVPERMV3Mask (ArrayRef< uint64_t > RawMask, const APInt &UndefElts, SmallVectorImpl< int > &ShuffleMask)
 Decode a VPERMT2 W/D/Q/PS/PD mask from a raw array of constants. More...