LLVM 17.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/MachineInstrBuilder.h"
#include "llvm/CodeGen/MachineRegisterInfo.h"
#include "llvm/CodeGen/TargetLoweringObjectFileImpl.h"
#include "llvm/IR/IntrinsicInst.h"
#include "llvm/IR/Intrinsics.h"
#include "llvm/IR/IntrinsicsS390.h"
#include "llvm/Support/CommandLine.h"
#include "llvm/Support/KnownBits.h"
#include <cctype>
#include <optional>
#include "SystemZGenCallingConv.inc"
Go to the source code of this file.
Classes | |
struct | AddressingMode |
Macros | |
#define | DEBUG_TYPE "systemz-lower" |
#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 32 of file SystemZISelLowering.cpp.
#define OPCODE | ( | NAME | ) | case SystemZISD::NAME: return "SystemZISD::" #NAME |
|
strong |
Enumerator | |
---|---|
Int | |
FP | |
StrictFP | |
SignalingFP |
Definition at line 2914 of file SystemZISelLowering.cpp.
|
static |
Definition at line 2455 of file SystemZISelLowering.cpp.
References llvm::CallingConv::C, llvm::ISD::FNEG, N, and llvm::SystemZ::reverseCCMask().
Referenced by getCmp().
|
static |
Definition at line 2478 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 2724 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 2429 of file SystemZISelLowering.cpp.
References llvm::CallingConv::C, llvm::SystemZ::CCMASK_CMP_EQ, llvm::SystemZ::CCMASK_CMP_NE, DL, Flags, llvm::SelectionDAG::getConstant(), N, and llvm::ISD::SUB.
Referenced by getCmp().
|
static |
Definition at line 2633 of file SystemZISelLowering.cpp.
References llvm::ISD::AND, llvm::SystemZICMP::Any, 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, DL, llvm::SelectionDAG::getConstant(), getTestUnderMaskCond(), isSimpleShift(), llvm::ISD::SHL, llvm::SystemZICMP::SignedOnly, llvm::ISD::SRL, llvm::SystemZISD::TM, and llvm::SystemZICMP::UnsignedOnly.
Referenced by getCmp().
|
static |
Definition at line 2502 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 2273 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 2253 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 5200 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 5184 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 1649 of file SystemZISelLowering.cpp.
References E, Flags, 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 2228 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 7517 of file SystemZISelLowering.cpp.
References llvm::MachineInstr::definesRegister(), llvm::MachineBasicBlock::end(), MBB, MI, llvm::MachineInstr::readsRegister(), and llvm::MachineBasicBlock::successors().
Definition at line 4597 of file SystemZISelLowering.cpp.
Referenced by isShlDoublePermute(), and matchPermute().
Definition at line 6910 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 7273 of file SystemZISelLowering.cpp.
References llvm::SelectionDAG::computeKnownBits(), llvm::Depth, getDemandedSrcElements(), and llvm::KnownBits::intersectWith().
Referenced by llvm::SystemZTargetLowering::computeKnownBitsForTargetNode().
|
static |
Definition at line 7381 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 1381 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 1410 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 7562 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 5076 of file SystemZISelLowering.cpp.
References llvm::dbgs(), and llvm::SmallVectorBase< Size_T >::size().
|
static |
Definition at line 75 of file SystemZISelLowering.cpp.
|
static |
Definition at line 2839 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::SelectionDAG::getNode(), llvm::SelectionDAG::getTargetConstant(), llvm::SelectionDAG::getVTList(), llvm::SystemZISD::ICMP, llvm::ISD::INTRINSIC_W_CHAIN, llvm::ISD::INTRINSIC_WO_CHAIN, llvm_unreachable, and llvm::SystemZISD::TM.
|
static |
Definition at line 2210 of file SystemZISelLowering.cpp.
References llvm::SelectionDAG::getNode(), I, Intr, llvm::SmallVectorTemplateBase< T, bool >::push_back(), and llvm::SmallVectorImpl< T >::reserve().
Referenced by emitCmp().
|
static |
Definition at line 2190 of file SystemZISelLowering.cpp.
References assert(), llvm::SelectionDAG::getNode(), 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 2900 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 2982 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 4808 of file SystemZISelLowering.cpp.
References I, and isZeroVector().
Referenced by getGeneralPermuteNode().
|
static |
Definition at line 7491 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 3180 of file SystemZISelLowering.cpp.
References llvm::ISD::ABS, DL, llvm::SelectionDAG::getConstant(), llvm::SelectionDAG::getNode(), and llvm::ISD::SUB.
|
static |
Definition at line 4451 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 2775 of file SystemZISelLowering.cpp.
References adjustForFNeg(), adjustForLTGFR(), adjustForRedundantAnd(), adjustForSubtraction(), adjustForTestUnderMask(), 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, 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 7176 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 4818 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 2742 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 896 of file SystemZISelLowering.cpp.
References llvm::Type::isIntegerTy().
Referenced by supportedAddressingMode().
|
static |
Definition at line 4772 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 4721 of file SystemZISelLowering.cpp.
References llvm::sampleprof::Base, I, and llvm::SmallVectorBase< Size_T >::size().
|
static |
Definition at line 2542 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 2915 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 2964 of file SystemZISelLowering.cpp.
References CC, llvm::ISD::getSetCCInverse(), and getVectorComparison().
|
static |
Definition at line 4689 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.
Definition at line 62 of file SystemZISelLowering.cpp.
References llvm::EVT::getSimpleVT(), llvm_unreachable, and llvm::MVT::SimpleTy.
Referenced by lowerGR128Binary().
Definition at line 3169 of file SystemZISelLowering.cpp.
References llvm::ISD::Constant, llvm::SDValue::getOpcode(), llvm::SDValue::getOperand(), llvm::ISD::SIGN_EXTEND, and llvm::ISD::SUB.
Definition at line 4007 of file SystemZISelLowering.cpp.
References llvm::SDValue::getOpcode(), llvm::SDValue::getOperand(), llvm::ISD::UADDO, and llvm::ISD::UADDO_CARRY.
Definition at line 2032 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 2005 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 2347 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 6381 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 5175 of file SystemZISelLowering.cpp.
|
static |
Definition at line 7542 of file SystemZISelLowering.cpp.
References MI.
|
static |
Definition at line 4744 of file SystemZISelLowering.cpp.
References chooseShuffleOpNos(), I, and llvm::SystemZ::VectorBytes.
Referenced by getGeneralPermuteNode().
Definition at line 2523 of file SystemZISelLowering.cpp.
References N.
Referenced by adjustForTestUnderMask().
Definition at line 4013 of file SystemZISelLowering.cpp.
References llvm::SDValue::getOpcode(), llvm::SDValue::getOperand(), llvm::ISD::USUBO, and llvm::ISD::USUBO_CARRY.
Definition at line 6365 of file SystemZISelLowering.cpp.
References llvm::EVT::getScalarSizeInBits(), llvm::EVT::getSizeInBits(), llvm::EVT::getVectorNumElements(), llvm::EVT::isSimple(), and llvm::EVT::isVector().
Definition at line 4798 of file SystemZISelLowering.cpp.
References llvm::ISD::BITCAST, llvm::ISD::isBuildVectorAllZeros(), N, and llvm::ISD::SPLAT_VECTOR.
Definition at line 5216 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 2888 of file SystemZISelLowering.cpp.
References DL, llvm::SystemZ::even128(), llvm::SelectionDAG::getNode(), llvm::SelectionDAG::getTargetExtractSubreg(), is32Bit(), and llvm::SystemZ::odd128().
|
static |
Definition at line 1454 of file SystemZISelLowering.cpp.
References llvm::ISD::BUILD_PAIR, DL, llvm::SelectionDAG::getNode(), llvm::SelectionDAG::getTargetExtractSubreg(), llvm::Hi, and llvm::Lo.
Referenced by llvm::SystemZTargetLowering::joinRegisterPartsIntoValue(), and llvm::SystemZTargetLowering::LowerOperationWrapper().
|
static |
Definition at line 1445 of file SystemZISelLowering.cpp.
References DL, llvm::SelectionDAG::getMachineNode(), llvm::Hi, llvm::Lo, and llvm::SelectionDAG::SplitScalar().
Referenced by llvm::SystemZTargetLowering::LowerCall(), llvm::SystemZTargetLowering::LowerOperationWrapper(), and llvm::SystemZTargetLowering::splitValueIntoRegisterParts().
|
static |
Definition at line 2872 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 4657 of file SystemZISelLowering.cpp.
References From, P, and llvm::SystemZ::VectorBytes.
Referenced by matchDoublePermute().
|
static |
Definition at line 4679 of file SystemZISelLowering.cpp.
References matchDoublePermute(), P, and PermuteForms.
|
static |
Definition at line 4620 of file SystemZISelLowering.cpp.
References chooseShuffleOpNos(), I, P, and llvm::SystemZ::VectorBytes.
Referenced by matchPermute().
|
static |
Definition at line 4644 of file SystemZISelLowering.cpp.
References matchPermute(), P, and PermuteForms.
Definition at line 6625 of file SystemZISelLowering.cpp.
References llvm::SDNode::getOperand().
|
static |
Definition at line 1165 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 2369 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 912 of file SystemZISelLowering.cpp.
References llvm::CallingConv::C, getLoadStoreAddrMode(), I, llvm::Type::isFloatingPointTy(), and llvm::Type::isVectorTy().
Referenced by llvm::SystemZTargetLowering::isLegalAddressingMode().
|
static |
Definition at line 5237 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.
Definition at line 1363 of file SystemZISelLowering.cpp.
References llvm::MVT::isVector(), llvm::EVT::isVector(), and llvm::report_fatal_error().
Referenced by VerifyVectorTypes().
|
static |
Definition at line 1368 of file SystemZISelLowering.cpp.
References VerifyVectorType().
Referenced by llvm::SystemZTargetLowering::CanLowerReturn(), llvm::SystemZTargetLowering::LowerCall(), llvm::SystemZTargetLowering::LowerFormalArguments(), and llvm::SystemZTargetLowering::LowerReturn().
|
static |
Definition at line 1373 of file SystemZISelLowering.cpp.
References llvm::SmallVectorBase< Size_T >::size(), and VerifyVectorType().
|
static |
Definition at line 4548 of file SystemZISelLowering.cpp.
Referenced by matchDoublePermute(), and matchPermute().