LLVM 20.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 85 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 141 of file X86FixupVectorConstants.cpp.
References llvm::CallingConv::C, and extractConstantBits().
|
static |
Definition at line 150 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 70 of file X86FixupVectorConstants.cpp.
References llvm::CallingConv::C.
Referenced by extractConstantBits().
|
static |
Definition at line 203 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 292 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 322 of file X86FixupVectorConstants.cpp.
References llvm::CallingConv::C, and rebuildExtCst().
|
static |
Definition at line 244 of file X86FixupVectorConstants.cpp.
References llvm::CallingConv::C, llvm::Type::getPrimitiveSizeInBits(), getSplatableConstant(), rebuildConstant(), and llvm::Splat.
|
static |
Definition at line 266 of file X86FixupVectorConstants.cpp.
References llvm::CallingConv::C, extractConstantBits(), llvm::Type::getPrimitiveSizeInBits(), and rebuildConstant().
|
static |
Definition at line 326 of file X86FixupVectorConstants.cpp.
References llvm::CallingConv::C, and rebuildExtCst().
STATISTIC | ( | NumInstChanges | , |
"Number of instructions changes" | |||
) |