LLVM 20.0.0git
|
#include "SystemZISelLowering.h"
#include "SystemZCallingConv.h"
#include "SystemZConstantPoolValue.h"
#include "SystemZMachineFunctionInfo.h"
#include "SystemZTargetMachine.h"
#include "llvm/CodeGen/CallingConvLower.h"
#include "llvm/CodeGen/ISDOpcodes.h"
#include "llvm/CodeGen/MachineInstrBuilder.h"
#include "llvm/CodeGen/MachineRegisterInfo.h"
#include "llvm/CodeGen/TargetLoweringObjectFileImpl.h"
#include "llvm/IR/GlobalAlias.h"
#include "llvm/IR/IntrinsicInst.h"
#include "llvm/IR/Intrinsics.h"
#include "llvm/IR/IntrinsicsS390.h"
#include "llvm/Support/CommandLine.h"
#include "llvm/Support/ErrorHandling.h"
#include "llvm/Support/KnownBits.h"
#include <cctype>
#include <optional>
#include "ZOSLibcallNames.def"
#include "SystemZGenCallingConv.inc"
Go to the source code of this file.
Classes | |
struct | AddressingMode |
Macros | |
#define | DEBUG_TYPE "systemz-lower" |
#define | HANDLE_LIBCALL(code, name) {RTLIB::code, name}, |
#define | CONV(X) |
#define | OPCODE(NAME) case SystemZISD::NAME: return "SystemZISD::" #NAME |
Enumerations | |
enum class | CmpMode { Int , FP , StrictFP , SignalingFP } |
Variables | |
static const Permute | PermuteForms [] |
#define CONV | ( | X | ) |
#define DEBUG_TYPE "systemz-lower" |
Definition at line 35 of file SystemZISelLowering.cpp.
#define OPCODE | ( | NAME | ) | case SystemZISD::NAME: return "SystemZISD::" #NAME |
|
strong |
Enumerator | |
---|---|
Int | |
FP | |
StrictFP | |
SignalingFP |
Definition at line 3208 of file SystemZISelLowering.cpp.
|
static |
Definition at line 2677 of file SystemZISelLowering.cpp.
References llvm::CallingConv::C, llvm::ISD::FNEG, N, and llvm::SystemZ::reverseCCMask().
Referenced by getCmp().
|
static |
Definition at line 2700 of file SystemZISelLowering.cpp.
References llvm::CallingConv::C, llvm::ISD::Constant, N, llvm::ISD::SHL, llvm::ISD::SIGN_EXTEND_INREG, and llvm::SDNode::uses().
Referenced by getCmp().
|
static |
Definition at line 3011 of file SystemZISelLowering.cpp.
References llvm::ISD::AND, llvm::CallingConv::C, llvm::SelectionDAG::computeKnownBits(), and llvm::KnownBits::Zero.
Referenced by getCmp().
|
static |
Definition at line 2651 of file SystemZISelLowering.cpp.
References llvm::CallingConv::C, llvm::SystemZ::CCMASK_CMP_EQ, llvm::SystemZ::CCMASK_CMP_NE, DL, llvm::SelectionDAG::getConstant(), N, and llvm::ISD::SUB.
Referenced by getCmp().
|
static |
Definition at line 2854 of file SystemZISelLowering.cpp.
References llvm::ISD::AND, llvm::SystemZICMP::Any, llvm::ISD::BITCAST, llvm::CallingConv::C, llvm::SystemZ::CCMASK_CMP_EQ, llvm::SystemZ::CCMASK_CMP_GT, llvm::SystemZ::CCMASK_CMP_LE, llvm::SystemZ::CCMASK_CMP_NE, llvm::SystemZ::CCMASK_TM, llvm::SystemZ::CCMASK_VCMP, llvm::SystemZ::CCMASK_VCMP_ALL, DL, llvm::SelectionDAG::getConstant(), llvm::SelectionDAG::getNode(), getTestUnderMaskCond(), isSimpleShift(), llvm::ISD::SHL, llvm::SystemZICMP::SignedOnly, llvm::ISD::SRL, llvm::SystemZISD::TM, llvm::SystemZICMP::UnsignedOnly, and llvm::SystemZISD::VTM.
Referenced by getCmp().
|
static |
Definition at line 2964 of file SystemZISelLowering.cpp.
References llvm::ISD::BITCAST, llvm::CallingConv::C, llvm::SystemZ::CCMASK_1, llvm::SystemZ::CCMASK_ANY, llvm::SystemZ::CCMASK_CMP_EQ, llvm::SystemZ::CCMASK_CMP_GE, llvm::SystemZ::CCMASK_CMP_GT, llvm::SystemZ::CCMASK_CMP_LE, llvm::SystemZ::CCMASK_CMP_LT, llvm::SystemZ::CCMASK_CMP_NE, llvm::SystemZ::CCMASK_VCMP, llvm::SystemZ::CCMASK_VCMP_ALL, DL, llvm::SelectionDAG::getNode(), llvm::SystemZISD::ICMP, llvm_unreachable, llvm::SystemZISD::SCMP128HI, std::swap(), llvm::SystemZISD::UCMP128HI, llvm::SystemZICMP::UnsignedOnly, and llvm::SystemZISD::VICMPES.
Referenced by getCmp().
|
static |
Definition at line 2722 of file SystemZISelLowering.cpp.
References llvm::CallingConv::C, llvm::ISD::Constant, DL, llvm::SelectionDAG::getConstant(), llvm::ISD::LOAD, llvm::ISD::SEXTLOAD, llvm::SystemZICMP::SignedOnly, llvm::ISD::TRUNCATE, llvm::SystemZICMP::UnsignedOnly, and llvm::ISD::ZEXTLOAD.
Referenced by getCmp().
|
static |
Definition at line 2492 of file SystemZISelLowering.cpp.
References llvm::SystemZICMP::Any, llvm::CallingConv::C, llvm::SystemZ::CCMASK_CMP_GE, llvm::SystemZ::CCMASK_CMP_GT, llvm::SystemZ::CCMASK_CMP_LT, llvm::ISD::Constant, DL, llvm::SelectionDAG::getConstant(), llvm::SelectionDAG::getExtLoad(), llvm::ISD::LOAD, llvm::SelectionDAG::ReplaceAllUsesOfValueWith(), llvm::ISD::SEXTLOAD, llvm::SystemZICMP::SignedOnly, llvm::SystemZICMP::UnsignedOnly, and llvm::ISD::ZEXTLOAD.
Referenced by getCmp().
|
static |
Definition at line 2472 of file SystemZISelLowering.cpp.
References llvm::CallingConv::C, llvm::SystemZ::CCMASK_CMP_EQ, llvm::SystemZ::CCMASK_CMP_GE, llvm::SystemZ::CCMASK_CMP_GT, llvm::SystemZ::CCMASK_CMP_LE, llvm::SystemZ::CCMASK_CMP_LT, DL, llvm::SelectionDAG::getConstant(), and llvm::SystemZICMP::UnsignedOnly.
Referenced by getCmp().
|
static |
Definition at line 5596 of file SystemZISelLowering.cpp.
References buildScalarToVector(), DL, llvm::SelectionDAG::getNode(), llvm::SelectionDAG::getUNDEF(), llvm::SDValue::isUndef(), llvm::SystemZISD::MERGE_HIGH, and llvm::SystemZISD::REPLICATE.
|
static |
Definition at line 5580 of file SystemZISelLowering.cpp.
References llvm::ISD::Constant, llvm::ISD::ConstantFP, DL, llvm::SelectionDAG::getBuildVector(), llvm::SelectionDAG::getNode(), llvm::SelectionDAG::getUNDEF(), llvm::EVT::getVectorNumElements(), and llvm::ISD::SCALAR_TO_VECTOR.
Referenced by buildMergeScalars().
|
static |
Definition at line 1789 of file SystemZISelLowering.cpp.
References llvm::CCValAssign::getLocInfo(), llvm::CCValAssign::getLocReg(), I, llvm::CCValAssign::Indirect, llvm::CCValAssign::isRegLoc(), and llvm::SmallVectorBase< Size_T >::size().
Referenced by llvm::SystemZTargetLowering::LowerCall().
|
static |
Definition at line 2447 of file SystemZISelLowering.cpp.
References CC, llvm::SystemZ::CCMASK_CMP_O, llvm::SystemZ::CCMASK_CMP_UO, CONV, EQ, llvm_unreachable, llvm::ISD::SETO, and llvm::ISD::SETUO.
Referenced by getCmp().
|
static |
Definition at line 8251 of file SystemZISelLowering.cpp.
References llvm::MachineInstr::definesRegister(), llvm::MachineBasicBlock::end(), MBB, MI, llvm::MachineInstr::readsRegister(), and llvm::MachineBasicBlock::successors().
Definition at line 4993 of file SystemZISelLowering.cpp.
Referenced by isShlDoublePermute(), and matchPermute().
Definition at line 7644 of file SystemZISelLowering.cpp.
References llvm::SystemZ::CCMASK_CMP_EQ, llvm::SystemZ::CCMASK_CMP_NE, llvm::SystemZ::CCMASK_ICMP, llvm::SDValue::getNode(), llvm::SDNode::getOperand(), llvm::SystemZISD::ICMP, llvm::SystemZISD::IPM, llvm::SystemZ::IPM_CC, llvm::SystemZ::reverseCCMask(), llvm::SystemZISD::SELECT_CCMASK, llvm::ISD::SHL, and llvm::ISD::SRA.
|
static |
Definition at line 8007 of file SystemZISelLowering.cpp.
References llvm::SelectionDAG::computeKnownBits(), llvm::Depth, getDemandedSrcElements(), and llvm::KnownBits::intersectWith().
Referenced by llvm::SystemZTargetLowering::computeKnownBitsForTargetNode().
|
static |
Definition at line 8115 of file SystemZISelLowering.cpp.
References assert(), llvm::SelectionDAG::ComputeNumSignBits(), llvm::Depth, getDemandedSrcElements(), llvm::EVT::getScalarSizeInBits(), LHS, and RHS.
Referenced by llvm::SystemZTargetLowering::ComputeNumSignBitsForTargetNode().
|
static |
Definition at line 1482 of file SystemZISelLowering.cpp.
References assert(), llvm::ISD::AssertSext, llvm::ISD::AssertZext, llvm::CCValAssign::BCvt, llvm::ISD::BITCAST, DL, llvm::CCValAssign::Full, llvm::SelectionDAG::getBuildVector(), llvm::CCValAssign::getLocInfo(), llvm::CCValAssign::getLocVT(), llvm::SelectionDAG::getNode(), llvm::SelectionDAG::getUNDEF(), llvm::SelectionDAG::getValueType(), llvm::CCValAssign::getValVT(), llvm::CCValAssign::isExtInLoc(), llvm::MVT::isVector(), llvm::CCValAssign::SExt, llvm::ISD::TRUNCATE, and llvm::CCValAssign::ZExt.
|
static |
Definition at line 1511 of file SystemZISelLowering.cpp.
References llvm::CCValAssign::AExt, llvm::ISD::ANY_EXTEND, assert(), llvm::CCValAssign::BCvt, llvm::ISD::BITCAST, DL, llvm::ISD::EXTRACT_VECTOR_ELT, llvm::ISD::FP_EXTEND, llvm::CCValAssign::Full, llvm::SelectionDAG::getConstant(), llvm::CCValAssign::getLocInfo(), llvm::CCValAssign::getLocVT(), llvm::SelectionDAG::getNode(), llvm::CCValAssign::getValVT(), llvm::MVT::isVector(), llvm_unreachable, llvm::CCValAssign::SExt, llvm::ISD::SIGN_EXTEND, llvm::ISD::ZERO_EXTEND, and llvm::CCValAssign::ZExt.
|
static |
Definition at line 8297 of file SystemZISelLowering.cpp.
References llvm::MachineInstrBuilder::addMBB(), llvm::MachineInstrBuilder::addReg(), llvm::MachineBasicBlock::begin(), llvm::BuildMI(), llvm::DenseMapBase< DerivedT, KeyT, ValueT, KeyInfoT, BucketT >::contains(), DL, llvm::SmallVectorTemplateCommon< T, typename >::front(), llvm::MachineOperand::getImm(), llvm::TargetSubtargetInfo::getInstrInfo(), llvm::MachineInstr::getOperand(), llvm::MachineBasicBlock::getParent(), llvm::MachineFunction::getProperties(), llvm::MachineFunction::getSubtarget(), MI, llvm::MachineFunctionProperties::NoPHIs, llvm::MachineFunctionProperties::reset(), std::swap(), and TII.
|
static |
Definition at line 5472 of file SystemZISelLowering.cpp.
References llvm::dbgs(), and llvm::SmallVectorBase< Size_T >::size().
|
static |
Definition at line 78 of file SystemZISelLowering.cpp.
|
static |
Definition at line 3128 of file SystemZISelLowering.cpp.
References llvm::CallingConv::C, llvm::SystemZ::CCMASK_TM_MIXED_MSB_0, llvm::SystemZ::CCMASK_TM_MIXED_MSB_1, DL, emitIntrinsicWithCC(), emitIntrinsicWithCCAndChain(), llvm::SDValue::getNode(), llvm::SelectionDAG::getNode(), llvm::SelectionDAG::getTargetConstant(), llvm::SelectionDAG::getVTList(), llvm::SystemZISD::ICMP, llvm::ISD::INTRINSIC_W_CHAIN, llvm::ISD::INTRINSIC_WO_CHAIN, llvm_unreachable, llvm::SystemZISD::TM, and llvm::SystemZISD::VICMPES.
|
static |
Definition at line 2429 of file SystemZISelLowering.cpp.
References llvm::SelectionDAG::getNode(), llvm::DWARFExpression::Operation::getNumOperands(), I, Intr, llvm::SmallVectorTemplateBase< T, bool >::push_back(), and llvm::SmallVectorImpl< T >::reserve().
Referenced by emitCmp().
|
static |
Definition at line 2409 of file SystemZISelLowering.cpp.
References assert(), llvm::SelectionDAG::getNode(), llvm::DWARFExpression::Operation::getNumOperands(), llvm::SelectionDAG::getVTList(), I, Intr, llvm::SmallVectorTemplateBase< T, bool >::push_back(), llvm::SelectionDAG::ReplaceAllUsesOfValueWith(), and llvm::SmallVectorImpl< T >::reserve().
Referenced by emitCmp().
|
static |
Definition at line 3194 of file SystemZISelLowering.cpp.
References DL, llvm::SelectionDAG::getConstant(), llvm::SelectionDAG::getNode(), llvm::SelectionDAG::getTargetConstant(), and llvm::SystemZISD::SELECT_CCMASK.
Referenced by llvm::SystemZTargetLowering::LowerOperationWrapper().
|
static |
Definition at line 6308 of file SystemZISelLowering.cpp.
References assert(), llvm::ISD::BITCAST, llvm::ISD::BUILD_PAIR, llvm::SelectionDAG::getBitcast(), llvm::SelectionDAG::getNode(), llvm::TargetLoweringBase::getRepRegClassFor(), llvm::SelectionDAG::getTargetExtractSubreg(), llvm::SelectionDAG::getTargetLoweringInfo(), llvm::Hi, llvm::TargetLoweringBase::isTypeLegal(), and llvm::Lo.
Referenced by llvm::SystemZTargetLowering::LowerOperationWrapper().
|
static |
Definition at line 6284 of file SystemZISelLowering.cpp.
References assert(), llvm::SelectionDAG::getBitcast(), llvm::SelectionDAG::getMachineNode(), llvm::TargetLoweringBase::getRepRegClassFor(), llvm::SelectionDAG::getTargetConstant(), llvm::SelectionDAG::getTargetLoweringInfo(), llvm::Hi, llvm::TargetLoweringBase::isTypeLegal(), llvm::Lo, and llvm::SelectionDAG::SplitScalar().
Referenced by llvm::SystemZTargetLowering::LowerOperationWrapper().
|
static |
Definition at line 3276 of file SystemZISelLowering.cpp.
References DL, llvm::SelectionDAG::getNode(), llvm::SelectionDAG::getUNDEF(), llvm::SelectionDAG::getVectorShuffle(), llvm::SelectionDAG::getVTList(), llvm::SystemZISD::STRICT_VEXTEND, and llvm::SystemZISD::VEXTEND.
Definition at line 5204 of file SystemZISelLowering.cpp.
References I, and isZeroVector().
Referenced by getGeneralPermuteNode().
|
static |
Definition at line 8225 of file SystemZISelLowering.cpp.
References llvm::MachineInstrBuilder::add(), llvm::MachineInstrBuilder::addImm(), llvm::MachineInstrBuilder::addReg(), llvm::sampleprof::Base, llvm::BuildMI(), llvm::MachineBasicBlock::getParent(), llvm::MachineFunction::getRegInfo(), MBB, MI, MRI, and TII.
|
static |
Definition at line 3472 of file SystemZISelLowering.cpp.
References llvm::ISD::ABS, DL, llvm::SelectionDAG::getConstant(), llvm::SelectionDAG::getNode(), and llvm::ISD::SUB.
|
static |
Definition at line 1831 of file SystemZISelLowering.cpp.
References DL, getADAEntry(), llvm::GlobalAlias::getAliaseeObject(), llvm::SelectionDAG::getTargetGlobalAddress(), llvm::GlobalValue::hasInternalLinkage(), llvm::GlobalValue::hasPrivateLinkage(), llvm::SystemZII::MO_ADA_DATA_SYMBOL_ADDR, llvm::SystemZII::MO_ADA_DIRECT_FUNC_DESC, and llvm::SystemZII::MO_ADA_INDIRECT_FUNC_DESC.
|
static |
Definition at line 1810 of file SystemZISelLowering.cpp.
References llvm::SystemZISD::ADA_ENTRY, DL, llvm::SystemZMachineFunctionInfo::getADAVirtualRegister(), llvm::SelectionDAG::getDataLayout(), llvm::SelectionDAG::getEntryNode(), llvm::MachineFunction::getInfo(), llvm::SelectionDAG::getLoad(), llvm::SelectionDAG::getMachineFunction(), llvm::SelectionDAG::getNode(), llvm::TargetLoweringBase::getPointerTy(), llvm::SelectionDAG::getRegister(), llvm::SelectionDAG::getTargetConstant(), llvm::SelectionDAG::getTargetLoweringInfo(), llvm::MachineMemOperand::MODereferenceable, llvm::MachineMemOperand::MOInvariant, and llvm::Offset.
Referenced by getADAEntry(), and getzOSCalleeAndADA().
|
static |
Definition at line 4813 of file SystemZISelLowering.cpp.
References DL, llvm::SelectionDAG::getConstant(), llvm::SelectionDAG::getNode(), llvm::SystemZISD::IPM, llvm::SystemZ::IPM_CC, and llvm::ISD::SRL.
|
static |
Definition at line 3062 of file SystemZISelLowering.cpp.
References adjustForFNeg(), adjustForLTGFR(), adjustForRedundantAnd(), adjustForSubtraction(), adjustForTestUnderMask(), adjustICmp128(), adjustICmpTruncate(), adjustSubwordCmp(), adjustZeroCmp(), llvm::SystemZICMP::Any, assert(), llvm::CallingConv::C, llvm::SystemZ::CCMASK_CMP_EQ, llvm::SystemZ::CCMASK_CMP_NE, llvm::SystemZ::CCMASK_CMP_UO, llvm::SystemZ::CCMASK_FCMP, llvm::SystemZ::CCMASK_ICMP, CCMaskForCondCode(), Cond, llvm::ISD::Constant, DL, llvm::SystemZISD::FCMP, llvm::SDNode::getAsZExtVal(), getIntrinsicCmp(), llvm::SDNode::getNumValues(), llvm::SDValue::getOpcode(), llvm::SDValue::getResNo(), llvm::SDNode::hasNUsesOfValue(), llvm::SystemZISD::ICMP, llvm::ISD::INTRINSIC_W_CHAIN, llvm::ISD::INTRINSIC_WO_CHAIN, isIntrinsicWithCC(), isIntrinsicWithCCAndChain(), llvm::SystemZ::reverseCCMask(), shouldSwapCmpOperands(), llvm::SelectionDAG::SignBitIsZero(), llvm::SystemZICMP::SignedOnly, llvm::SystemZISD::STRICT_FCMP, llvm::SystemZISD::STRICT_FCMPS, std::swap(), and llvm::SystemZICMP::UnsignedOnly.
|
static |
Definition at line 4564 of file SystemZISelLowering.cpp.
References Addr, llvm::ISD::AND, DL, llvm::SelectionDAG::getConstant(), llvm::SelectionDAG::getNode(), llvm::ISD::SHL, llvm::ISD::SUB, and llvm::ISD::TRUNCATE.
|
static |
Definition at line 7910 of file SystemZISelLowering.cpp.
References assert(), llvm::EVT::getVectorNumElements(), llvm::APInt::insertBits(), llvm::ISD::INTRINSIC_WO_CHAIN, llvm::EVT::isVector(), llvm::SystemZISD::JOIN_DWORDS, llvm_unreachable, llvm::APInt::lshr(), llvm::APInt::lshrInPlace(), llvm::SystemZISD::SELECT_CCMASK, llvm::APInt::setBit(), and llvm::APInt::trunc().
Referenced by computeKnownBitsBinOp(), llvm::SystemZTargetLowering::computeKnownBitsForTargetNode(), computeNumSignBitsBinOp(), and llvm::SystemZTargetLowering::ComputeNumSignBitsForTargetNode().
|
static |
Definition at line 5214 of file SystemZISelLowering.cpp.
References llvm::ISD::BITCAST, DL, findZeroVectorIdx(), llvm::SelectionDAG::getBuildVector(), llvm::SelectionDAG::getConstant(), llvm::SelectionDAG::getNode(), llvm::SelectionDAG::getTargetConstant(), llvm::SelectionDAG::getUNDEF(), I, isShlDoublePermute(), isUndef(), llvm::SystemZISD::PERMUTE, llvm::SystemZISD::SHL_DOUBLE, and llvm::SystemZ::VectorBytes.
|
static |
Definition at line 3029 of file SystemZISelLowering.cpp.
References llvm::CallingConv::C, CC, Cond, llvm_unreachable, llvm::ISD::SETEQ, llvm::ISD::SETGE, llvm::ISD::SETGT, llvm::ISD::SETLE, llvm::ISD::SETLT, llvm::ISD::SETNE, llvm::ISD::SETUGE, llvm::ISD::SETUGT, llvm::ISD::SETULE, and llvm::ISD::SETULT.
Referenced by getCmp().
|
static |
Definition at line 1005 of file SystemZISelLowering.cpp.
References llvm::Type::isIntegerTy().
Referenced by supportedAddressingMode().
|
static |
Definition at line 5168 of file SystemZISelLowering.cpp.
References llvm::ISD::BITCAST, DL, llvm::MVT::getIntegerVT(), llvm::SelectionDAG::getNode(), llvm::SelectionDAG::getTargetConstant(), llvm::MVT::getVectorVT(), P, llvm::SystemZISD::PACK, llvm::SystemZISD::PERMUTE_DWORDS, and llvm::SystemZ::VectorBytes.
|
static |
Definition at line 5117 of file SystemZISelLowering.cpp.
References llvm::sampleprof::Base, I, and llvm::SmallVectorBase< Size_T >::size().
|
static |
Definition at line 2763 of file SystemZISelLowering.cpp.
References assert(), llvm::bit_floor(), llvm::SystemZ::CCMASK_ANY, llvm::SystemZ::CCMASK_CMP_EQ, llvm::SystemZ::CCMASK_CMP_GE, llvm::SystemZ::CCMASK_CMP_GT, llvm::SystemZ::CCMASK_CMP_LE, llvm::SystemZ::CCMASK_CMP_LT, llvm::SystemZ::CCMASK_CMP_NE, llvm::SystemZ::CCMASK_TM_ALL_0, llvm::SystemZ::CCMASK_TM_ALL_1, llvm::SystemZ::CCMASK_TM_MIXED_MSB_0, llvm::SystemZ::CCMASK_TM_MIXED_MSB_1, llvm::SystemZ::CCMASK_TM_MSB_0, llvm::SystemZ::CCMASK_TM_MSB_1, llvm::SystemZ::CCMASK_TM_SOME_0, llvm::SystemZ::CCMASK_TM_SOME_1, llvm::countr_zero(), High, llvm::SystemZ::isImmHH(), llvm::SystemZ::isImmHL(), llvm::SystemZ::isImmLH(), llvm::SystemZ::isImmLL(), llvm::Low, and llvm::SystemZICMP::SignedOnly.
Referenced by adjustForTestUnderMask().
|
static |
Definition at line 3209 of file SystemZISelLowering.cpp.
References CC, llvm_unreachable, llvm::ISD::SETEQ, llvm::ISD::SETGE, llvm::ISD::SETGT, llvm::ISD::SETOEQ, llvm::ISD::SETOGE, llvm::ISD::SETOGT, llvm::ISD::SETUGT, llvm::SystemZISD::STRICT_VFCMPE, llvm::SystemZISD::STRICT_VFCMPES, llvm::SystemZISD::STRICT_VFCMPH, llvm::SystemZISD::STRICT_VFCMPHE, llvm::SystemZISD::STRICT_VFCMPHES, llvm::SystemZISD::STRICT_VFCMPHS, llvm::SystemZISD::VFCMPE, llvm::SystemZISD::VFCMPH, llvm::SystemZISD::VFCMPHE, llvm::SystemZISD::VICMPE, llvm::SystemZISD::VICMPH, and llvm::SystemZISD::VICMPHL.
Referenced by getVectorComparisonOrInvert().
|
static |
Definition at line 3258 of file SystemZISelLowering.cpp.
References CC, llvm::ISD::getSetCCInverse(), and getVectorComparison().
|
static |
Definition at line 5085 of file SystemZISelLowering.cpp.
References llvm::SDValue::getConstantOperandVal(), llvm::SDValue::getOpcode(), llvm::SDValue::getOperand(), llvm::EVT::getStoreSize(), llvm::SDValue::getValueType(), llvm::EVT::getVectorElementType(), llvm::EVT::getVectorNumElements(), I, llvm::SmallVectorImpl< T >::resize(), and llvm::SystemZISD::SPLAT.
|
static |
Definition at line 1854 of file SystemZISelLowering.cpp.
References llvm::ISD::ADD, DL, G, getADAEntry(), llvm::SystemZMachineFunctionInfo::getADAVirtualRegister(), llvm::SelectionDAG::getConstant(), llvm::SelectionDAG::getCopyFromReg(), llvm::SelectionDAG::getDataLayout(), llvm::SelectionDAG::getEntryNode(), llvm::MachinePointerInfo::getGOT(), llvm::MachineFunction::getInfo(), llvm::SelectionDAG::getLoad(), llvm::SelectionDAG::getMachineFunction(), llvm::SelectionDAG::getNode(), llvm::TargetLoweringBase::getPointerTy(), llvm::SelectionDAG::getTargetExternalSymbol(), llvm::SelectionDAG::getTargetGlobalAddress(), llvm::SelectionDAG::getTargetLoweringInfo(), llvm::SystemZII::MO_ADA_DIRECT_FUNC_DESC, and llvm::SystemZISD::PCREL_WRAPPER.
Referenced by llvm::SystemZTargetLowering::LowerCall().
Definition at line 65 of file SystemZISelLowering.cpp.
References llvm::EVT::getSimpleVT(), llvm_unreachable, and llvm::MVT::SimpleTy.
Referenced by lowerGR128Binary().
Definition at line 3463 of file SystemZISelLowering.cpp.
References llvm::ISD::Constant, llvm::SDValue::getConstantOperandVal(), llvm::SDValue::getOpcode(), llvm::SDValue::getOperand(), llvm::ISD::SIGN_EXTEND, and llvm::ISD::SUB.
Definition at line 4348 of file SystemZISelLowering.cpp.
References llvm::SDValue::getOpcode(), llvm::SDValue::getOperand(), llvm::ISD::UADDO, and llvm::ISD::UADDO_CARRY.
Definition at line 7072 of file SystemZISelLowering.cpp.
References llvm::SDNode::getAsZExtVal(), llvm::SDValue::getMachineOpcode(), llvm::SDValue::getNode(), llvm::SDNode::getNumOperands(), llvm::SDNode::getOperand(), llvm::SDNode::hasOneUse(), and llvm::SDValue::isMachineOpcode().
|
static |
Definition at line 6875 of file SystemZISelLowering.cpp.
References llvm::Value::hasOneUse().
Definition at line 7044 of file SystemZISelLowering.cpp.
References llvm::ISD::ANY_EXTEND, llvm::ISD::Constant, llvm::SDValue::getConstantOperandVal(), llvm::SDValue::getNode(), llvm::SDValue::getOpcode(), llvm::SDValue::getOperand(), llvm::SDValue::getValueType(), llvm::SDNode::hasOneUse(), llvm::ISD::OR, llvm::ISD::SHL, std::swap(), and llvm::ISD::ZERO_EXTEND.
|
static |
Definition at line 6839 of file SystemZISelLowering.cpp.
References llvm::ISD::Constant, llvm::User::getOperand(), llvm::Value::hasOneUse(), llvm::ISD::SRL, llvm::ISD::TRUNCATE, and llvm::Value::use_begin().
Definition at line 2251 of file SystemZISelLowering.cpp.
References llvm::SystemZ::CCMASK_0, llvm::SystemZ::CCMASK_3, llvm::SystemZ::CCMASK_ANY, llvm::SystemZ::CCMASK_TDC, llvm::SystemZ::CCMASK_VCMP, llvm::SystemZISD::PACKLS_CC, llvm::SystemZISD::PACKS_CC, llvm::SystemZISD::TDC, llvm::SystemZISD::VFAE_CC, llvm::SystemZISD::VFAEZ_CC, llvm::SystemZISD::VFCMPES, llvm::SystemZISD::VFCMPHES, llvm::SystemZISD::VFCMPHS, llvm::SystemZISD::VFEE_CC, llvm::SystemZISD::VFEEZ_CC, llvm::SystemZISD::VFENE_CC, llvm::SystemZISD::VFENEZ_CC, llvm::SystemZISD::VFTCI, llvm::SystemZISD::VICMPES, llvm::SystemZISD::VICMPHLS, llvm::SystemZISD::VICMPHS, llvm::SystemZISD::VISTR_CC, llvm::SystemZISD::VSTRC_CC, llvm::SystemZISD::VSTRCZ_CC, llvm::SystemZISD::VSTRS_CC, llvm::SystemZISD::VSTRSZ_CC, and llvm::SystemZISD::VTM.
Referenced by llvm::SystemZTargetLowering::computeKnownBitsForTargetNode(), and getCmp().
Definition at line 2224 of file SystemZISelLowering.cpp.
References llvm::SystemZ::CCMASK_TBEGIN, llvm::SystemZ::CCMASK_TEND, llvm::SystemZISD::TBEGIN, llvm::SystemZISD::TBEGIN_NOFLOAT, and llvm::SystemZISD::TEND.
Referenced by getCmp().
Definition at line 2568 of file SystemZISelLowering.cpp.
References llvm::ISD::NON_EXTLOAD, llvm::ISD::SEXTLOAD, llvm::SystemZICMP::SignedOnly, llvm::SystemZICMP::UnsignedOnly, and llvm::ISD::ZEXTLOAD.
Referenced by shouldSwapCmpOperands().
|
static |
Definition at line 7027 of file SystemZISelLowering.cpp.
References llvm::EVT::getStoreSize(), isOnlyUsedByStores(), llvm::EVT::isRound(), llvm::SelectionDAG::isSplatValue(), and llvm::SDNode::uses().
Referenced by isOnlyUsedByStores().
Definition at line 5571 of file SystemZISelLowering.cpp.
References llvm::DWARFExpression::Operation::getNumOperands(), and I.
|
static |
Definition at line 8276 of file SystemZISelLowering.cpp.
References MI.
|
static |
Definition at line 5140 of file SystemZISelLowering.cpp.
References chooseShuffleOpNos(), I, and llvm::SystemZ::VectorBytes.
Referenced by getGeneralPermuteNode().
Definition at line 2744 of file SystemZISelLowering.cpp.
References N.
Referenced by adjustForTestUnderMask().
Definition at line 4354 of file SystemZISelLowering.cpp.
References llvm::SDValue::getOpcode(), llvm::SDValue::getOperand(), llvm::ISD::USUBO, and llvm::ISD::USUBO_CARRY.
Definition at line 7011 of file SystemZISelLowering.cpp.
References llvm::EVT::getScalarSizeInBits(), llvm::EVT::getSizeInBits(), llvm::EVT::getVectorNumElements(), llvm::EVT::isSimple(), and llvm::EVT::isVector().
Definition at line 5194 of file SystemZISelLowering.cpp.
References llvm::ISD::BITCAST, llvm::ISD::isBuildVectorAllZeros(), N, and llvm::ISD::SPLAT_VECTOR.
Definition at line 5612 of file SystemZISelLowering.cpp.
References llvm::ISD::ANY_EXTEND, DL, llvm::SelectionDAG::getNode(), llvm::SelectionDAG::getUNDEF(), llvm::SDValue::isUndef(), and llvm::SystemZISD::JOIN_DWORDS.
|
static |
Definition at line 6068 of file SystemZISelLowering.cpp.
References llvm::ISD::AND, assert(), llvm::SelectionDAG::getConstant(), llvm::SelectionDAG::getNode(), N, llvm::SYSTEMZAS::PTR32, llvm::report_fatal_error(), llvm::ISD::TRUNCATE, and llvm::ISD::ZERO_EXTEND.
Referenced by llvm::AMDGPUAsmPrinter::lowerConstant(), llvm::R600AsmPrinter::lowerConstant(), and llvm::SystemZTargetLowering::LowerOperation().
|
static |
Definition at line 3182 of file SystemZISelLowering.cpp.
References DL, llvm::SystemZ::even128(), llvm::SelectionDAG::getNode(), llvm::SelectionDAG::getTargetExtractSubreg(), is32Bit(), and llvm::SystemZ::odd128().
|
static |
Definition at line 1565 of file SystemZISelLowering.cpp.
References llvm::ISD::BUILD_PAIR, DL, llvm::SelectionDAG::getConstant(), llvm::SelectionDAG::getNode(), llvm::SelectionDAG::getTargetExtractSubreg(), llvm::SelectionDAG::getTargetLoweringInfo(), llvm::Hi, llvm::TargetLoweringBase::isTypeLegal(), llvm::Lo, llvm::ISD::OR, llvm::ISD::SHL, and llvm::ISD::ZERO_EXTEND.
Referenced by llvm::SystemZTargetLowering::joinRegisterPartsIntoValue(), and llvm::SystemZTargetLowering::LowerOperationWrapper().
|
static |
Definition at line 1546 of file SystemZISelLowering.cpp.
References DL, llvm::SelectionDAG::getConstant(), llvm::SelectionDAG::getMachineNode(), llvm::SelectionDAG::getNode(), llvm::SelectionDAG::getTargetLoweringInfo(), llvm::Hi, llvm::TargetLoweringBase::isTypeLegal(), llvm::Lo, llvm::SelectionDAG::SplitScalar(), llvm::ISD::SRL, and llvm::ISD::TRUNCATE.
Referenced by llvm::SystemZTargetLowering::LowerCall(), llvm::SystemZTargetLowering::LowerOperationWrapper(), and llvm::SystemZTargetLowering::splitValueIntoRegisterParts().
|
static |
Definition at line 3166 of file SystemZISelLowering.cpp.
References DL, llvm::SelectionDAG::getConstant(), llvm::SelectionDAG::getNode(), llvm::Hi, llvm::Lo, llvm::Mul, llvm::ISD::MUL, llvm::ISD::SRL, and llvm::ISD::TRUNCATE.
|
static |
Definition at line 5053 of file SystemZISelLowering.cpp.
References From, P, and llvm::SystemZ::VectorBytes.
Referenced by matchDoublePermute().
|
static |
Definition at line 5075 of file SystemZISelLowering.cpp.
References matchDoublePermute(), P, and PermuteForms.
|
static |
Definition at line 5016 of file SystemZISelLowering.cpp.
References chooseShuffleOpNos(), I, P, and llvm::SystemZ::VectorBytes.
Referenced by matchPermute().
|
static |
Definition at line 5040 of file SystemZISelLowering.cpp.
References matchPermute(), P, and PermuteForms.
Definition at line 7363 of file SystemZISelLowering.cpp.
References llvm::SDNode::getOperand().
|
static |
Definition at line 1275 of file SystemZISelLowering.cpp.
References assert(), llvm::StringRef::end(), llvm::Failed(), llvm::StringRef::getAsInteger(), llvm::StringRef::size(), Size, and llvm::StringRef::slice().
Referenced by llvm::SystemZTargetLowering::getRegForInlineAsmConstraint().
Definition at line 2590 of file SystemZISelLowering.cpp.
References llvm::ISD::AND, llvm::CallingConv::C, llvm::ISD::Constant, isNaturalMemoryOperand(), llvm::ISD::SIGN_EXTEND, llvm::SystemZICMP::SignedOnly, llvm::SystemZICMP::UnsignedOnly, and llvm::ISD::ZERO_EXTEND.
Referenced by getCmp().
|
static |
Definition at line 1021 of file SystemZISelLowering.cpp.
References llvm::CallingConv::C, getLoadStoreAddrMode(), I, II, llvm::Type::isFloatingPointTy(), and llvm::Type::isVectorTy().
Referenced by llvm::SystemZTargetLowering::isLegalAddressingMode().
|
static |
Definition at line 5633 of file SystemZISelLowering.cpp.
References llvm::ISD::Constant, llvm::SmallVectorBase< Size_T >::empty(), llvm::ISD::EXTRACT_VECTOR_ELT, llvm::SelectionDAG::getBuildVector(), llvm::SDNode::getOperand(), llvm::SelectionDAG::getUNDEF(), llvm::SDNode::getValueType(), llvm::EVT::getVectorNumElements(), I, llvm::SmallVectorTemplateBase< T, bool >::push_back(), llvm::SmallVectorBase< Size_T >::size(), and llvm::ISD::TRUNCATE.
|
static |
Definition at line 4944 of file SystemZISelLowering.cpp.
Referenced by matchDoublePermute(), and matchPermute().