LLVM 19.0.0git
|
#include "X86.h"
#include "X86InstrFoldTables.h"
#include "X86InstrInfo.h"
#include "X86Subtarget.h"
#include "llvm/ADT/Statistic.h"
#include "llvm/CodeGen/MachineConstantPool.h"
Go to the source code of this file.
Macros | |
#define | DEBUG_TYPE "x86-fixup-vector-constants" |
Functions | |
STATISTIC (NumInstChanges, "Number of instructions changes") | |
static std::optional< APInt > | extractConstantBits (const Constant *C) |
static std::optional< APInt > | extractConstantBits (const Constant *C, unsigned NumBits) |
static std::optional< APInt > | getSplatableConstant (const Constant *C, unsigned SplatBitWidth) |
static Constant * | rebuildConstant (LLVMContext &Ctx, Type *SclTy, const APInt &Bits, unsigned NumSclBits) |
static Constant * | rebuildSplatCst (const Constant *C, unsigned, unsigned, unsigned SplatBitWidth) |
static Constant * | rebuildZeroUpperCst (const Constant *C, unsigned NumBits, unsigned, unsigned ScalarBitWidth) |
static Constant * | rebuildExtCst (const Constant *C, bool IsSExt, unsigned NumBits, unsigned NumElts, unsigned SrcEltBitWidth) |
static Constant * | rebuildSExtCst (const Constant *C, unsigned NumBits, unsigned NumElts, unsigned SrcEltBitWidth) |
static Constant * | rebuildZExtCst (const Constant *C, unsigned NumBits, unsigned NumElts, unsigned SrcEltBitWidth) |
#define DEBUG_TYPE "x86-fixup-vector-constants" |
Definition at line 27 of file X86FixupVectorConstants.cpp.
Definition at line 68 of file X86FixupVectorConstants.cpp.
References assert(), llvm::CallingConv::C, extractConstantBits(), llvm::User::getOperand(), llvm::APInt::getSplat(), llvm::APInt::getZero(), and I.
Referenced by extractConstantBits(), getSplatableConstant(), rebuildExtCst(), and rebuildZeroUpperCst().
Definition at line 124 of file X86FixupVectorConstants.cpp.
References llvm::CallingConv::C, and extractConstantBits().
|
static |
Definition at line 133 of file X86FixupVectorConstants.cpp.
References assert(), llvm::CallingConv::C, extractConstantBits(), llvm::Constant::getAggregateElement(), llvm::Type::getPrimitiveSizeInBits(), llvm::Type::getScalarSizeInBits(), llvm::APInt::getZero(), I, Idx, and llvm::APInt::insertBits().
Referenced by rebuildSplatCst().
|
static |
Definition at line 186 of file X86FixupVectorConstants.cpp.
References assert(), llvm::BitWidth, llvm::ConstantDataVector::get(), llvm::ConstantDataVector::getFP(), I, llvm::Type::is16bitFPTy(), llvm::Type::isDoubleTy(), llvm::Type::isFloatTy(), and llvm::SmallVectorTemplateBase< T, bool >::push_back().
Referenced by rebuildExtCst(), rebuildSplatCst(), and rebuildZeroUpperCst().
|
static |
Definition at line 275 of file X86FixupVectorConstants.cpp.
References assert(), llvm::CallingConv::C, extractConstantBits(), llvm::APInt::getActiveBits(), llvm::Type::getContext(), llvm::Type::getScalarType(), llvm::APInt::getSignificantBits(), llvm::APInt::getZero(), I, llvm::APInt::insertBits(), rebuildConstant(), and llvm::APInt::trunc().
Referenced by rebuildSExtCst(), and rebuildZExtCst().
|
static |
Definition at line 305 of file X86FixupVectorConstants.cpp.
References llvm::CallingConv::C, and rebuildExtCst().
|
static |
Definition at line 227 of file X86FixupVectorConstants.cpp.
References llvm::CallingConv::C, llvm::Type::getPrimitiveSizeInBits(), getSplatableConstant(), rebuildConstant(), and llvm::Splat.
|
static |
Definition at line 249 of file X86FixupVectorConstants.cpp.
References llvm::CallingConv::C, extractConstantBits(), llvm::Type::getPrimitiveSizeInBits(), and rebuildConstant().
|
static |
Definition at line 309 of file X86FixupVectorConstants.cpp.
References llvm::CallingConv::C, and rebuildExtCst().
STATISTIC | ( | NumInstChanges | , |
"Number of instructions changes" | |||
) |