LLVM  14.0.0git
Classes | Namespaces | Enumerations | Functions
X86ShuffleDecode.h File Reference
#include <cstdint>
Include dependency graph for X86ShuffleDecode.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

class  llvm::ArrayRef< T >
 ArrayRef - Represent a constant reference to an array (0 or more elements consecutively in memory), i.e. More...
 
class  llvm::SmallVectorImpl< T >
 This class consists of common code factored out of the SmallVector class to reduce code duplication based on the SmallVector 'N' template parameter. More...
 

Namespaces

 llvm
 This file implements support for optimizing divisions by a constant.
 

Enumerations

enum  { llvm::SM_SentinelUndef = -1, llvm::SM_SentinelZero = -2 }
 

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)
 Decodes the shuffle masks for pshufd/pshufw/vpermilpd/vpermilps. 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)
 Decodes the shuffle masks for shufp*. More...
 
void llvm::DecodeUNPCKHMask (unsigned NumElts, unsigned ScalarBits, SmallVectorImpl< int > &ShuffleMask)
 Decodes the shuffle masks for unpckhps/unpckhpd and punpckh*. More...
 
void llvm::DecodeUNPCKLMask (unsigned NumElts, unsigned ScalarBits, SmallVectorImpl< int > &ShuffleMask)
 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::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::DecodeVPERM2X128Mask (unsigned NumElts, unsigned Imm, SmallVectorImpl< int > &ShuffleMask)
 
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::DecodeVPERMMask (unsigned NumElts, unsigned Imm, SmallVectorImpl< int > &ShuffleMask)
 Decodes the shuffle masks for VPERMQ/VPERMPD. 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::DecodeZeroExtendMask (unsigned SrcScalarBits, unsigned DstScalarBits, unsigned NumDstElts, bool IsAnyExtend, 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...