LLVM 22.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" |
#define DEBUG_TYPE "x86-fixup-vector-constants" |
Definition at line 27 of file X86FixupVectorConstants.cpp.
Definition at line 84 of file X86FixupVectorConstants.cpp.
References assert(), llvm::CallingConv::C, extractConstantBits(), llvm::User::getOperand(), llvm::APInt::getSplat(), getSplatValueAllowUndef(), llvm::APInt::getZero(), and I.
Referenced by extractConstantBits(), getSplatableConstant(), rebuildExtCst(), and rebuildZeroUpperCst().
Definition at line 148 of file X86FixupVectorConstants.cpp.
References llvm::CallingConv::C, and extractConstantBits().
|
static |
Definition at line 157 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 |
Normally, we only allow poison in vector splats.
However, as this is part of the backend, and working with the DAG representation, which currently only natively represents undef values, we need to accept undefs here.
Definition at line 69 of file X86FixupVectorConstants.cpp.
References llvm::CallingConv::C.
Referenced by extractConstantBits().
|
static |
Definition at line 210 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 299 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 329 of file X86FixupVectorConstants.cpp.
References llvm::CallingConv::C, and rebuildExtCst().
|
static |
Definition at line 251 of file X86FixupVectorConstants.cpp.
References llvm::CallingConv::C, llvm::Type::getPrimitiveSizeInBits(), getSplatableConstant(), rebuildConstant(), and llvm::Splat.
|
static |
Definition at line 273 of file X86FixupVectorConstants.cpp.
References llvm::CallingConv::C, extractConstantBits(), llvm::Type::getPrimitiveSizeInBits(), and rebuildConstant().
|
static |
Definition at line 333 of file X86FixupVectorConstants.cpp.
References llvm::CallingConv::C, and rebuildExtCst().
STATISTIC | ( | NumInstChanges | , |
"Number of instructions changes" | |||
) |