LLVM 20.0.0git
|
#include "llvm/IR/AutoUpgrade.h"
#include "llvm/ADT/StringRef.h"
#include "llvm/ADT/StringSwitch.h"
#include "llvm/BinaryFormat/Dwarf.h"
#include "llvm/IR/AttributeMask.h"
#include "llvm/IR/Constants.h"
#include "llvm/IR/DebugInfo.h"
#include "llvm/IR/DebugInfoMetadata.h"
#include "llvm/IR/DiagnosticInfo.h"
#include "llvm/IR/Function.h"
#include "llvm/IR/IRBuilder.h"
#include "llvm/IR/InstVisitor.h"
#include "llvm/IR/Instruction.h"
#include "llvm/IR/IntrinsicInst.h"
#include "llvm/IR/Intrinsics.h"
#include "llvm/IR/IntrinsicsAArch64.h"
#include "llvm/IR/IntrinsicsARM.h"
#include "llvm/IR/IntrinsicsNVPTX.h"
#include "llvm/IR/IntrinsicsRISCV.h"
#include "llvm/IR/IntrinsicsWebAssembly.h"
#include "llvm/IR/IntrinsicsX86.h"
#include "llvm/IR/LLVMContext.h"
#include "llvm/IR/MDBuilder.h"
#include "llvm/IR/Metadata.h"
#include "llvm/IR/Module.h"
#include "llvm/IR/Value.h"
#include "llvm/IR/Verifier.h"
#include "llvm/Support/AMDGPUAddrSpace.h"
#include "llvm/Support/CommandLine.h"
#include "llvm/Support/ErrorHandling.h"
#include "llvm/Support/Regex.h"
#include "llvm/TargetParser/Triple.h"
#include <cstring>
#include <numeric>
Go to the source code of this file.
Variables | |
static cl::opt< bool > | DisableAutoUpgradeDebugInfo ("disable-auto-upgrade-debug-info", cl::desc("Disable autoupgrade of debug info")) |
Definition at line 1963 of file AutoUpgrade.cpp.
References llvm::CallingConv::C, llvm::IRBuilderBase::CreateAnd(), llvm::IRBuilderBase::CreateBitCast(), llvm::IRBuilderBase::CreateShuffleVector(), llvm::IRBuilderBase::getIntNTy(), llvm::Constant::getNullValue(), llvm::Value::getType(), and getX86MaskVec().
Referenced by llvm::UpgradeIntrinsicCall(), upgradeMaskedCompare(), and upgradeX86IntrinsicCall().
|
static |
Definition at line 1649 of file AutoUpgrade.cpp.
References llvm::CallingConv::C, llvm::IRBuilderBase::CreateBitCast(), llvm::IRBuilderBase::CreateExtractElement(), llvm::IRBuilderBase::CreateSelect(), llvm::FixedVectorType::get(), and llvm::IRBuilderBase::getInt1Ty().
Referenced by upgradeX86IntrinsicCall().
|
static |
Definition at line 1637 of file AutoUpgrade.cpp.
References llvm::CallingConv::C, llvm::IRBuilderBase::CreateSelect(), llvm::Value::getType(), and getX86MaskVec().
Referenced by upgradeAbs(), upgradeAVX512MaskToSelect(), upgradePMULDQ(), upgradeX86ALIGNIntrinsics(), upgradeX86BinaryIntrinsics(), upgradeX86ConcatShift(), upgradeX86IntrinsicCall(), upgradeX86MaskedShift(), upgradeX86Rotate(), and upgradeX86VPERMT2Intrinsics().
Definition at line 1617 of file AutoUpgrade.cpp.
References assert(), llvm::IRBuilderBase::CreateBitCast(), llvm::IRBuilderBase::CreateShuffleVector(), llvm::FixedVectorType::get(), llvm::IntegerType::getBitWidth(), llvm::IRBuilderBase::getInt1Ty(), and llvm::isPowerOf2_32().
Referenced by applyX86MaskOn1BitsVec(), emitX86Select(), llvm::UpgradeIntrinsicCall(), upgradeMaskedLoad(), upgradeMaskedStore(), upgradeMaskToInt(), and upgradeX86IntrinsicCall().
Definition at line 5428 of file AutoUpgrade.cpp.
Referenced by llvm::upgradeInstructionLoopAttachment().
|
static |
Definition at line 56 of file AutoUpgrade.cpp.
References llvm::Value::getName(), and llvm::Value::setName().
Referenced by upgradeArmOrAarch64IntrinsicFunction(), upgradeIntrinsicFunction1(), upgradeNVVMIntrinsicCall(), upgradePTESTIntrinsic(), upgradeX86BF16DPIntrinsic(), upgradeX86BF16Intrinsic(), upgradeX86IntrinsicFunction(), upgradeX86IntrinsicsWith8BitMask(), and upgradeX86MaskedFPCompare().
|
static |
Definition at line 936 of file AutoUpgrade.cpp.
References llvm::StringSwitch< T, R >::Case(), llvm::StringSwitch< T, R >::Default(), Name, and llvm::Intrinsic::not_intrinsic.
Referenced by upgradeIntrinsicFunction1(), and upgradeNVVMIntrinsicCall().
Definition at line 123 of file AutoUpgrade.cpp.
References Name.
Referenced by upgradeX86IntrinsicFunction().
Helper to unwrap intrinsic call MetadataAsValue operands.
Definition at line 4276 of file AutoUpgrade.cpp.
References llvm::CallBase::getArgOperand().
|
static |
Definition at line 4037 of file AutoUpgrade.cpp.
References llvm::CallBase::args(), llvm::SmallVectorTemplateCommon< T, typename >::begin(), llvm::StringSwitch< T, R >::Case(), llvm::IRBuilderBase::CreateFPTrunc(), llvm::IRBuilderBase::CreateIntrinsic(), llvm::IRBuilderBase::CreateShuffleVector(), llvm::dbgs(), llvm::StringSwitch< T, R >::Default(), llvm::SmallVectorTemplateCommon< T, typename >::end(), F, llvm::ScalableVectorType::get(), llvm::FixedVectorType::get(), llvm::ConstantAggregateZero::get(), llvm::Type::getBFloatTy(), llvm::IRBuilderBase::getInt1Ty(), llvm::Value::getName(), llvm::User::getOperand(), llvm::Value::getType(), getType(), llvm_unreachable, Name, and llvm::Intrinsic::not_intrinsic.
Referenced by llvm::UpgradeIntrinsicCall().
Definition at line 1923 of file AutoUpgrade.cpp.
References llvm::CallBase::arg_size(), llvm::IRBuilderBase::CreateIntrinsic(), emitX86Select(), llvm::CallBase::getArgOperand(), llvm::IRBuilderBase::getInt1(), and llvm::Value::getType().
Referenced by upgradeX86IntrinsicCall().
|
static |
Definition at line 4184 of file AutoUpgrade.cpp.
References llvm::IRBuilderBase::CreateAtomicRMW(), llvm::IRBuilderBase::CreateBitCast(), llvm::MDBuilder::createRange(), F, llvm::AtomicRMWInst::FAdd, llvm::AMDGPUAS::FLAT_ADDRESS, llvm::AtomicRMWInst::FMax, llvm::AtomicRMWInst::FMin, llvm::MDNode::get(), llvm::CallBase::getArgOperand(), llvm::Type::getBFloatTy(), llvm::User::getNumOperands(), llvm::LLVMContext::getOrInsertSyncScopeID(), llvm::Value::getType(), llvm::ConstantInt::getZExtValue(), llvm::isValidAtomicOrdering(), llvm::ConstantInt::isZero(), llvm::AMDGPUAS::LOCAL_ADDRESS, Name, llvm::AMDGPUAS::PRIVATE_ADDRESS, Ptr, RetTy, llvm::Instruction::setMetadata(), llvm::AtomicRMWInst::setVolatile(), llvm::StringSwitch< T, R >::StartsWith(), llvm::AtomicRMWInst::UDecWrap, and llvm::AtomicRMWInst::UIncWrap.
Referenced by llvm::UpgradeIntrinsicCall().
|
static |
Definition at line 4094 of file AutoUpgrade.cpp.
References llvm::CallBase::args(), llvm::IRBuilderBase::CreateIntrinsic(), llvm::FixedVectorType::get(), llvm::CallBase::getArgOperand(), llvm::IRBuilderBase::getInt1Ty(), llvm::CallBase::getIntrinsicID(), llvm::Value::getName(), llvm::User::getOperand(), llvm::Type::getScalarSizeInBits(), llvm::Value::getType(), llvm_unreachable, and Name.
Referenced by llvm::UpgradeIntrinsicCall().
|
static |
Definition at line 631 of file AutoUpgrade.cpp.
References assert(), llvm::StringSwitch< T, R >::Case(), llvm::StringSwitch< T, R >::Cases(), llvm::StringSwitch< T, R >::Default(), F, llvm::FixedVectorType::get(), llvm::Type::getBFloatTy(), llvm::Intrinsic::getOrInsertDeclaration(), Groups, llvm::Regex::match(), Name, llvm::Intrinsic::not_intrinsic, rename(), llvm::size(), and llvm::StringSwitch< T, R >::StartsWith().
Referenced by upgradeIntrinsicFunction1().
|
static |
Definition at line 2047 of file AutoUpgrade.cpp.
References llvm::CallBase::arg_size(), llvm::CallBase::args(), llvm::IRBuilderBase::CreateIntrinsic(), emitX86Select(), llvm::CallBase::getArgOperand(), llvm::Type::getPrimitiveSizeInBits(), llvm::Type::getScalarSizeInBits(), llvm::Value::getType(), llvm::Type::isFPOrFPVectorTy(), llvm_unreachable, and Name.
Referenced by upgradeX86IntrinsicCall().
Convert debug intrinsic calls to non-instruction debug records.
Name
- Final part of the intrinsic name, e.g. 'value' in llvm.dbg.value. CI
- The debug intrinsic call.
Definition at line 4285 of file AutoUpgrade.cpp.
References llvm::DIExpression::append(), llvm::CallBase::arg_size(), assert(), llvm::CallBase::getArgOperand(), llvm::Instruction::getDebugLoc(), llvm::ilist_node_impl< OptionsT >::getIterator(), llvm::ilist_detail::node_parent_access< NodeTy, ParentTy >::getParent(), Name, and llvm::Offset.
Referenced by llvm::UpgradeIntrinsicCall().
|
static |
Definition at line 1016 of file AutoUpgrade.cpp.
References assert(), llvm::StringSwitch< T, R >::Case(), llvm::StringSwitch< T, R >::Cases(), llvm::StringSwitch< T, R >::Default(), Default, F, llvm::Intrinsic::getName(), llvm::Intrinsic::getOrInsertDeclaration(), Groups, Name, llvm::Intrinsic::not_intrinsic, R2, rename(), shouldUpgradeNVPTXBF16Intrinsic(), llvm::StringSwitch< T, R >::StartsWith(), upgradeArmOrAarch64IntrinsicFunction(), and upgradeX86IntrinsicFunction().
Referenced by llvm::UpgradeIntrinsicCall(), and llvm::UpgradeIntrinsicFunction().
Definition at line 5452 of file AutoUpgrade.cpp.
References llvm::MDTuple::get(), I, llvm::SmallVectorTemplateBase< T, bool >::push_back(), llvm::SmallVectorImpl< T >::reserve(), and upgradeLoopTag().
Referenced by llvm::upgradeInstructionLoopAttachment().
|
static |
Definition at line 5440 of file AutoUpgrade.cpp.
References assert(), llvm::CallingConv::C, llvm::StringRef::drop_front(), llvm::MDString::get(), llvm::StringRef::size(), and llvm::StringRef::starts_with().
Referenced by upgradeLoopArgument().
|
static |
Definition at line 1985 of file AutoUpgrade.cpp.
References applyX86MaskOn1BitsVec(), llvm::CallBase::arg_size(), CC, llvm::IRBuilderBase::CreateICmp(), llvm::FixedVectorType::get(), llvm::Constant::getAllOnesValue(), llvm::CallBase::getArgOperand(), llvm::IRBuilderBase::getInt1Ty(), llvm::Constant::getNullValue(), llvm::Value::getType(), llvm_unreachable, and Signed.
Referenced by upgradeX86IntrinsicCall().
|
static |
Definition at line 1902 of file AutoUpgrade.cpp.
References llvm::Aligned, llvm::CallingConv::C, llvm::IRBuilderBase::CreateAlignedLoad(), llvm::IRBuilderBase::CreateMaskedLoad(), llvm::details::FixedOrScalableQuantity< LeafTy, ValueTy >::getFixedValue(), llvm::Type::getPrimitiveSizeInBits(), llvm::Value::getType(), getX86MaskVec(), and Ptr.
Referenced by upgradeX86IntrinsicCall().
Definition at line 2024 of file AutoUpgrade.cpp.
References A, B, llvm::IRBuilderBase::CreateAnd(), llvm::IRBuilderBase::CreateExtractElement(), llvm::IRBuilderBase::CreateInsertElement(), llvm::IRBuilderBase::CreateIsNotNull(), llvm::IRBuilderBase::CreateSelect(), llvm::CallBase::getArgOperand(), and Select.
Referenced by upgradeX86IntrinsicCall().
|
static |
Definition at line 1884 of file AutoUpgrade.cpp.
References llvm::Aligned, llvm::CallingConv::C, llvm::IRBuilderBase::CreateAlignedStore(), llvm::IRBuilderBase::CreateMaskedStore(), getX86MaskVec(), and Ptr.
Referenced by upgradeX86IntrinsicCall().
Definition at line 2038 of file AutoUpgrade.cpp.
References llvm::IRBuilderBase::CreateSExt(), llvm::CallBase::getArgOperand(), llvm::Value::getType(), and getX86MaskVec().
Referenced by upgradeX86IntrinsicCall().
|
static |
Definition at line 2295 of file AutoUpgrade.cpp.
References llvm::Function::arg_size(), llvm::IRBuilderBase::CreateAddrSpaceCast(), llvm::IRBuilderBase::CreateAlignedLoad(), llvm::IRBuilderBase::CreateAtomicRMW(), llvm::IRBuilderBase::CreateBitCast(), llvm::IRBuilderBase::CreateCall(), llvm::IRBuilderBase::CreateICmpSGE(), llvm::IRBuilderBase::CreateICmpSLE(), llvm::IRBuilderBase::CreateICmpUGE(), llvm::IRBuilderBase::CreateICmpULE(), llvm::IRBuilderBase::CreateIntrinsic(), llvm::IRBuilderBase::CreateNeg(), llvm::IRBuilderBase::CreateSelect(), llvm::IRBuilderBase::CreateTrunc(), llvm::IRBuilderBase::CreateZExt(), F, llvm::AtomicRMWInst::FAdd, llvm::MDNode::get(), llvm::Function::getArg(), llvm::CallBase::getArgOperand(), llvm::IRBuilderBase::getContext(), llvm::IRBuilderBase::getFalse(), llvm::IRBuilderBase::getFloatTy(), llvm::IRBuilderBase::getInt32Ty(), llvm::IRBuilderBase::getInt64Ty(), llvm::Constant::getNullValue(), llvm::User::getOperand(), llvm::Intrinsic::getOrInsertDeclaration(), llvm::IRBuilderBase::getPtrTy(), llvm::Type::getScalarType(), llvm::Value::getType(), I, llvm::Type::isBFloatTy(), llvm::Type::isIntegerTy(), Name, llvm::Intrinsic::not_intrinsic, Ptr, rename(), and shouldUpgradeNVPTXBF16Intrinsic().
Referenced by llvm::UpgradeIntrinsicCall().
Definition at line 1933 of file AutoUpgrade.cpp.
References llvm::CallBase::arg_size(), llvm::IRBuilderBase::CreateAnd(), llvm::IRBuilderBase::CreateAShr(), llvm::IRBuilderBase::CreateBitCast(), llvm::IRBuilderBase::CreateMul(), llvm::IRBuilderBase::CreateShl(), emitX86Select(), llvm::CallBase::getArgOperand(), llvm::Value::getType(), LHS, and RHS.
Referenced by upgradeX86IntrinsicCall().
|
static |
Definition at line 60 of file AutoUpgrade.cpp.
References F, llvm::FixedVectorType::get(), llvm::Type::getFloatTy(), llvm::Intrinsic::getOrInsertDeclaration(), and rename().
Referenced by upgradeX86IntrinsicFunction().
This checks for objc retain release marker which should be upgraded.
It returns true if module is modified.
Definition at line 5024 of file AutoUpgrade.cpp.
References llvm::Module::Error, llvm::MDString::get(), llvm::NamedMDNode::getOperand(), and llvm::SmallVectorBase< Size_T >::size().
Referenced by llvm::UpgradeARCRuntime().
|
static |
Definition at line 1666 of file AutoUpgrade.cpp.
References assert(), llvm::IRBuilderBase::CreateShuffleVector(), emitX86Select(), llvm::Constant::getNullValue(), llvm::Value::getType(), Idx, and llvm::isPowerOf2_32().
Referenced by upgradeX86IntrinsicCall().
|
static |
Definition at line 113 of file AutoUpgrade.cpp.
References F, llvm::Intrinsic::getOrInsertDeclaration(), and rename().
Referenced by upgradeX86IntrinsicFunction().
|
static |
Definition at line 103 of file AutoUpgrade.cpp.
References F, llvm::Intrinsic::getOrInsertDeclaration(), and rename().
Referenced by upgradeX86IntrinsicFunction().
|
static |
Definition at line 1771 of file AutoUpgrade.cpp.
References llvm::CallBase::arg_size(), llvm::IRBuilderBase::CreateIntrinsic(), emitX86Select(), llvm::User::getOperand(), and llvm::Value::getType().
Referenced by upgradeX86IntrinsicCall().
|
static |
Definition at line 1851 of file AutoUpgrade.cpp.
References llvm::CallBase::arg_size(), llvm::IRBuilderBase::CreateIntCast(), llvm::IRBuilderBase::CreateIntrinsic(), llvm::IRBuilderBase::CreateVectorSplat(), emitX86Select(), llvm::ConstantAggregateZero::get(), llvm::CallBase::getArgOperand(), llvm::User::getOperand(), llvm::Type::getScalarType(), llvm::Value::getType(), and std::swap().
Referenced by upgradeX86IntrinsicCall().
|
static |
Definition at line 2411 of file AutoUpgrade.cpp.
References A, llvm::Aligned, applyX86MaskOn1BitsVec(), llvm::CallBase::arg_size(), llvm::CallBase::args(), assert(), B, llvm::CallingConv::C, llvm::IRBuilderBase::CreateAdd(), llvm::IRBuilderBase::CreateAlignedLoad(), llvm::IRBuilderBase::CreateAlignedStore(), llvm::IRBuilderBase::CreateAnd(), llvm::IRBuilderBase::CreateBitCast(), llvm::IRBuilderBase::CreateCall(), llvm::IRBuilderBase::CreateExtractElement(), llvm::IRBuilderBase::CreateExtractValue(), llvm::IRBuilderBase::CreateFAdd(), llvm::IRBuilderBase::CreateFDiv(), llvm::IRBuilderBase::CreateFMul(), llvm::IRBuilderBase::CreateFNeg(), llvm::IRBuilderBase::CreateFPExt(), llvm::IRBuilderBase::CreateFSub(), llvm::IRBuilderBase::CreateICmp(), llvm::IRBuilderBase::CreateICmpEQ(), llvm::IRBuilderBase::CreateInsertElement(), llvm::IRBuilderBase::CreateIntrinsic(), llvm::IRBuilderBase::CreateLoad(), llvm::IRBuilderBase::CreateMul(), llvm::IRBuilderBase::CreateNot(), llvm::IRBuilderBase::CreateOr(), llvm::IRBuilderBase::CreateSExt(), llvm::IRBuilderBase::CreateShuffleVector(), llvm::IRBuilderBase::CreateSIToFP(), llvm::IRBuilderBase::CreateSub(), llvm::IRBuilderBase::CreateTrunc(), llvm::IRBuilderBase::CreateUIToFP(), llvm::IRBuilderBase::CreateVectorSplat(), llvm::IRBuilderBase::CreateXor(), llvm::IRBuilderBase::CreateZExt(), emitX86ScalarSelect(), emitX86Select(), F, llvm::ConstantAsMetadata::get(), llvm::MDNode::get(), llvm::FixedVectorType::get(), llvm::PoisonValue::get(), llvm::ConstantAggregateZero::get(), llvm::Constant::getAllOnesValue(), llvm::CallBase::getArgOperand(), llvm::details::FixedOrScalableQuantity< LeafTy, ValueTy >::getFixedValue(), llvm::Type::getHalfTy(), llvm::IRBuilderBase::getInt16Ty(), llvm::IRBuilderBase::getInt32Ty(), llvm::Type::getInt32Ty(), llvm::Type::getInt64Ty(), llvm::IRBuilderBase::getInt8(), llvm::Instruction::getModule(), llvm::Constant::getNullValue(), getNumElements(), llvm::User::getOperand(), llvm::Intrinsic::getOrInsertDeclaration(), llvm::Type::getPrimitiveSizeInBits(), llvm::Type::getScalarSizeInBits(), llvm::ShuffleVectorInst::getShuffleMask(), llvm::Value::getType(), getType(), getX86MaskVec(), High, I, llvm::Type::isIntegerTy(), LHS, llvm_unreachable, Name, llvm::Offset, llvm::SmallVectorTemplateBase< T, bool >::push_back(), llvm::Value::replaceAllUsesWith(), RHS, llvm::Instruction::setMetadata(), Size, std::swap(), upgradeAbs(), upgradeAVX512MaskToSelect(), upgradeMaskedCompare(), upgradeMaskedLoad(), upgradeMaskedMove(), upgradeMaskedStore(), upgradeMaskToInt(), upgradePMULDQ(), upgradeX86ALIGNIntrinsics(), upgradeX86BinaryIntrinsics(), upgradeX86ConcatShift(), upgradeX86MaskedShift(), upgradeX86PSLLDQIntrinsics(), upgradeX86PSRLDQIntrinsics(), upgradeX86Rotate(), upgradeX86vpcom(), and upgradeX86VPERMT2Intrinsics().
Referenced by llvm::UpgradeIntrinsicCall().
Definition at line 490 of file AutoUpgrade.cpp.
References llvm::StringSwitch< T, R >::Case(), llvm::StringSwitch< T, R >::Default(), F, llvm::Intrinsic::getOrInsertDeclaration(), Idx, Name, llvm::Intrinsic::not_intrinsic, rename(), shouldUpgradeX86Intrinsic(), upgradePTESTIntrinsic(), upgradeX86BF16DPIntrinsic(), upgradeX86BF16Intrinsic(), upgradeX86IntrinsicsWith8BitMask(), and upgradeX86MaskedFPCompare().
Referenced by upgradeIntrinsicFunction1().
|
static |
Definition at line 76 of file AutoUpgrade.cpp.
References F, llvm::Intrinsic::getOrInsertDeclaration(), llvm::Type::isIntegerTy(), and rename().
Referenced by upgradeX86IntrinsicFunction().
|
static |
Definition at line 92 of file AutoUpgrade.cpp.
References F, llvm::Intrinsic::getOrInsertDeclaration(), and rename().
Referenced by upgradeX86IntrinsicFunction().
|
static |
Definition at line 2017 of file AutoUpgrade.cpp.
References llvm::IRBuilderBase::CreateIntrinsic(), emitX86Select(), and llvm::CallBase::getArgOperand().
Referenced by upgradeX86IntrinsicCall().
|
static |
Definition at line 1551 of file AutoUpgrade.cpp.
References llvm::IRBuilderBase::CreateBitCast(), llvm::IRBuilderBase::CreateShuffleVector(), llvm::FixedVectorType::get(), llvm::IRBuilderBase::getInt8Ty(), llvm::Constant::getNullValue(), and Idx.
Referenced by upgradeX86IntrinsicCall().
|
static |
Definition at line 1585 of file AutoUpgrade.cpp.
References llvm::IRBuilderBase::CreateBitCast(), llvm::IRBuilderBase::CreateShuffleVector(), llvm::FixedVectorType::get(), llvm::IRBuilderBase::getInt8Ty(), llvm::Constant::getNullValue(), and Idx.
Referenced by upgradeX86IntrinsicCall().
Definition at line 1786 of file AutoUpgrade.cpp.
References llvm::CallBase::arg_size(), llvm::IRBuilderBase::CreateIntCast(), llvm::IRBuilderBase::CreateIntrinsic(), llvm::IRBuilderBase::CreateVectorSplat(), emitX86Select(), llvm::CallBase::getArgOperand(), llvm::User::getOperand(), llvm::Type::getScalarType(), and llvm::Value::getType().
Referenced by upgradeX86IntrinsicCall().
|
static |
Definition at line 1812 of file AutoUpgrade.cpp.
References llvm::IRBuilderBase::CreateICmp(), llvm::IRBuilderBase::CreateSExt(), llvm::Constant::getAllOnesValue(), llvm::CallBase::getArgOperand(), llvm::Constant::getNullValue(), llvm::Value::getType(), LHS, llvm_unreachable, and RHS.
Referenced by upgradeX86IntrinsicCall().
|
static |
Definition at line 1711 of file AutoUpgrade.cpp.
References llvm::IRBuilderBase::CreateBitCast(), llvm::IRBuilderBase::CreateIntrinsic(), emitX86Select(), llvm::ConstantAggregateZero::get(), llvm::CallBase::getArgOperand(), llvm::Type::getPrimitiveSizeInBits(), llvm::Type::getScalarSizeInBits(), llvm::Value::getType(), llvm::Type::isFPOrFPVectorTy(), llvm_unreachable, and std::swap().
Referenced by upgradeX86IntrinsicCall().