Anonymous View
LLVM 23.0.0git
X86ShuffleDecode.cpp File Reference

Go to the source code of this file.

Namespaces

namespace  llvm
 This is an optimization pass for GlobalISel generic memory operations.

Functions

void llvm::DecodeINSERTPSMask (unsigned Imm, SmallVectorImpl< int > &ShuffleMask, bool SrcIsMem)
 Decode a 128-bit INSERTPS instruction as a v4f32 shuffle mask.
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.
void llvm::DecodeMOVLHPSMask (unsigned NElts, SmallVectorImpl< int > &ShuffleMask)
 Decode a MOVLHPS instruction as a v2f64/v4f32 shuffle mask.
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.
void llvm::DecodePSHUFHWMask (unsigned NumElts, unsigned Imm, SmallVectorImpl< int > &ShuffleMask)
 Decodes the shuffle masks for pshufhw.
void llvm::DecodePSHUFLWMask (unsigned NumElts, unsigned Imm, SmallVectorImpl< int > &ShuffleMask)
 Decodes the shuffle masks for pshuflw.
void llvm::DecodePSWAPMask (unsigned NumElts, SmallVectorImpl< int > &ShuffleMask)
 Decodes a PSWAPD 3DNow! instruction.
void llvm::DecodeSHUFPMask (unsigned NumElts, unsigned ScalarBits, unsigned Imm, SmallVectorImpl< int > &ShuffleMask)
 Decodes the shuffle masks for shufp*.
void llvm::DecodeUNPCKHMask (unsigned NumElts, unsigned ScalarBits, SmallVectorImpl< int > &ShuffleMask)
 Decodes the shuffle masks for unpckhps/unpckhpd and punpckh*.
void llvm::DecodeUNPCKLMask (unsigned NumElts, unsigned ScalarBits, SmallVectorImpl< int > &ShuffleMask)
 Decodes the shuffle masks for unpcklps/unpcklpd and punpckl*.
void llvm::DecodeVectorBroadcast (unsigned NumElts, SmallVectorImpl< int > &ShuffleMask)
 Decodes a broadcast of the first element of a vector.
void llvm::DecodeSubVectorBroadcast (unsigned DstNumElts, unsigned SrcNumElts, SmallVectorImpl< int > &ShuffleMask)
 Decodes a broadcast of a subvector to a larger vector type.
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.
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.
void llvm::DecodeBLENDMask (unsigned NumElts, unsigned Imm, SmallVectorImpl< int > &ShuffleMask)
 Decode a BLEND immediate mask into a shuffle mask.
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.
void llvm::DecodeVPERMMask (unsigned NumElts, unsigned Imm, SmallVectorImpl< int > &ShuffleMask)
 Decodes the shuffle masks for VPERMQ/VPERMPD.
void llvm::DecodeZeroExtendMask (unsigned SrcScalarBits, unsigned DstScalarBits, unsigned NumDstElts, bool IsAnyExtend, SmallVectorImpl< int > &ShuffleMask)
 Decode a zero extension instruction as a shuffle mask.
void llvm::DecodeZeroMoveLowMask (unsigned NumElts, SmallVectorImpl< int > &ShuffleMask)
 Decode a move lower and zero upper instruction as a shuffle mask.
void llvm::DecodeScalarMoveMask (unsigned NumElts, bool IsLoad, SmallVectorImpl< int > &ShuffleMask)
 Decode a scalar float move instruction as a shuffle mask.
void llvm::DecodeEXTRQIMask (unsigned NumElts, unsigned EltSize, int Len, int Idx, SmallVectorImpl< int > &ShuffleMask)
 Decode a SSE4A EXTRQ instruction as a shuffle mask.
void llvm::DecodeINSERTQIMask (unsigned NumElts, unsigned EltSize, int Len, int Idx, SmallVectorImpl< int > &ShuffleMask)
 Decode a SSE4A INSERTQ instruction as a shuffle mask.
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.
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.
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.
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.