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 | CmpMode { CmpMode::Int, CmpMode::FP, CmpMode::StrictFP, CmpMode::SignalingFP } |
Variables | |
static const Permute | PermuteForms [] |
#define CONV | ( | X | ) |
#define DEBUG_TYPE "systemz-lower" |
Definition at line 32 of file SystemZISelLowering.cpp.
|
strong |
Enumerator | |
---|---|
Int | |
FP | |
StrictFP | |
SignalingFP |
Definition at line 2900 of file SystemZISelLowering.cpp.
|
static |
Definition at line 2440 of file SystemZISelLowering.cpp.
References C1, llvm::ISD::FNEG, N, and llvm::SystemZ::reverseCCMask().
Referenced by getCmp().
|
static |
Definition at line 2463 of file SystemZISelLowering.cpp.
References C1, llvm::ISD::Constant, llvm::SDValue::getOperand(), llvm::MVT::i32, llvm::MVT::i64, N, llvm::ISD::SHL, llvm::ISD::SIGN_EXTEND_INREG, and llvm::SDNode::uses().
Referenced by getCmp().
|
static |
Definition at line 2710 of file SystemZISelLowering.cpp.
References llvm::ISD::AND, llvm::SelectionDAG::computeKnownBits(), llvm::BitmaskEnumDetail::Mask(), and llvm::KnownBits::Zero.
Referenced by getCmp().
|
static |
Definition at line 2420 of file SystemZISelLowering.cpp.
References 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 2619 of file SystemZISelLowering.cpp.
References llvm::ISD::AND, llvm::SystemZICMP::Any, 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(), llvm::MVT::i64, isSimpleShift(), llvm::BitmaskEnumDetail::Mask(), llvm::ISD::SHL, llvm::SystemZICMP::SignedOnly, llvm::ISD::SRL, llvm::SystemZISD::TM, and llvm::SystemZICMP::UnsignedOnly.
Referenced by getCmp().
|
static |
Definition at line 2487 of file SystemZISelLowering.cpp.
References 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 2264 of file SystemZISelLowering.cpp.
References llvm::SystemZICMP::Any, 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::SDValue::getValue(), llvm::MVT::i32, llvm::SPII::Load, llvm::ISD::LOAD, llvm::BitmaskEnumDetail::Mask(), llvm::SelectionDAG::ReplaceAllUsesOfValueWith(), llvm::ISD::SEXTLOAD, llvm::SystemZICMP::SignedOnly, llvm::SystemZICMP::UnsignedOnly, and llvm::ISD::ZEXTLOAD.
Referenced by getCmp().
|
static |
Definition at line 2244 of file SystemZISelLowering.cpp.
References 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 5188 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 5172 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 1643 of file SystemZISelLowering.cpp.
References E, llvm::CCValAssign::getLocInfo(), llvm::CCValAssign::getLocReg(), I, llvm::CCValAssign::Indirect, and llvm::CCValAssign::isRegLoc().
Referenced by llvm::SystemZTargetLowering::LowerCall().
|
static |
Definition at line 2219 of file SystemZISelLowering.cpp.
References CC, llvm::SystemZ::CCMASK_CMP_O, llvm::SystemZ::CCMASK_CMP_UO, CONV, EQ, llvm::AArch64CC::GE, llvm::AArch64CC::GT, llvm::AArch64CC::LE, llvm_unreachable, llvm::AArch64CC::LT, llvm::AArch64CC::NE, llvm::ISD::SETO, and llvm::ISD::SETUO.
Referenced by getCmp().
|
static |
Definition at line 7493 of file SystemZISelLowering.cpp.
References CC, llvm::MachineInstr::definesRegister(), llvm::MachineBasicBlock::end(), MBB, MI, llvm::MachineInstr::readsRegister(), and llvm::MachineBasicBlock::successors().
|
static |
Definition at line 4585 of file SystemZISelLowering.cpp.
Referenced by isShlDoublePermute(), and matchPermute().
Definition at line 6898 of file SystemZISelLowering.cpp.
References llvm::SystemZ::CCMASK_CMP_EQ, llvm::SystemZ::CCMASK_CMP_NE, llvm::SystemZ::CCMASK_ICMP, llvm::tgtok::FalseVal, 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, llvm::ISD::SRA, and llvm::tgtok::TrueVal.
|
static |
Definition at line 7261 of file SystemZISelLowering.cpp.
References llvm::KnownBits::commonBits(), llvm::SelectionDAG::computeKnownBits(), llvm::Depth, and getDemandedSrcElements().
Referenced by llvm::SystemZTargetLowering::computeKnownBitsForTargetNode().
|
static |
Definition at line 7369 of file SystemZISelLowering.cpp.
References assert(), llvm::SelectionDAG::ComputeNumSignBits(), llvm::Depth, getDemandedSrcElements(), llvm::EVT::getScalarSizeInBits(), LHS, llvm::min(), and RHS.
Referenced by llvm::SystemZTargetLowering::ComputeNumSignBitsForTargetNode().
|
static |
Definition at line 1370 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::MVT::i64, llvm::CCValAssign::isExtInLoc(), llvm::MVT::isVector(), llvm::CCValAssign::SExt, llvm::ISD::TRUNCATE, llvm::MVT::v2i64, and llvm::CCValAssign::ZExt.
Referenced by llvm::SystemZTargetLowering::LowerCall(), and llvm::SystemZTargetLowering::LowerFormalArguments().
|
static |
Definition at line 1399 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::MVT::f128, llvm::MVT::f32, llvm::MVT::f64, llvm::ISD::FP_EXTEND, llvm::CCValAssign::Full, llvm::SelectionDAG::getConstant(), llvm::CCValAssign::getLocInfo(), llvm::CCValAssign::getLocVT(), llvm::SelectionDAG::getNode(), llvm::CCValAssign::getValVT(), llvm::MVT::i128, llvm::MVT::i32, llvm::MVT::i64, llvm::MVT::isVector(), llvm_unreachable, llvm::CCValAssign::SExt, llvm::ISD::SIGN_EXTEND, llvm::MVT::v2i64, llvm::ISD::ZERO_EXTEND, and llvm::CCValAssign::ZExt.
Referenced by llvm::SystemZTargetLowering::LowerCall(), and llvm::SystemZTargetLowering::LowerReturn().
|
static |
Definition at line 7538 of file SystemZISelLowering.cpp.
References llvm::MachineInstrBuilder::addMBB(), llvm::MachineInstrBuilder::addReg(), llvm::MachineBasicBlock::begin(), llvm::BuildMI(), DL, llvm::DenseMapBase< DenseMap< KeyT, ValueT, DenseMapInfo< KeyT >, llvm::detail::DenseMapPair< KeyT, ValueT > >, KeyT, ValueT, DenseMapInfo< KeyT >, llvm::detail::DenseMapPair< KeyT, ValueT > >::end(), llvm::DenseMapBase< DenseMap< KeyT, ValueT, DenseMapInfo< KeyT >, llvm::detail::DenseMapPair< KeyT, ValueT > >, KeyT, ValueT, DenseMapInfo< KeyT >, llvm::detail::DenseMapPair< KeyT, ValueT > >::find(), llvm::MachineOperand::getImm(), llvm::TargetSubtargetInfo::getInstrInfo(), llvm::MachineInstr::getOperand(), llvm::MachineBasicBlock::getParent(), llvm::MachineFunction::getProperties(), llvm::MachineFunction::getSubtarget(), MI, llvm::MachineFunctionProperties::NoPHIs, PHI, llvm::MachineFunctionProperties::reset(), std::swap(), and TII.
|
static |
Definition at line 5064 of file SystemZISelLowering.cpp.
References llvm::dbgs(), i, and llvm::AMDGPU::SendMsg::Msg.
|
static |
Definition at line 75 of file SystemZISelLowering.cpp.
|
static |
Definition at line 2825 of file SystemZISelLowering.cpp.
|
static |
Definition at line 2201 of file SystemZISelLowering.cpp.
References llvm::SelectionDAG::getNode(), I, Intr, and llvm::SmallVectorImpl< T >::reserve().
|
static |
Definition at line 2181 of file SystemZISelLowering.cpp.
References assert(), llvm::SelectionDAG::getNode(), llvm::SelectionDAG::getVTList(), I, llvm::MVT::i32, Intr, llvm::MVT::Other, llvm::SelectionDAG::ReplaceAllUsesOfValueWith(), and llvm::SmallVectorImpl< T >::reserve().
|
static |
Definition at line 2886 of file SystemZISelLowering.cpp.
References DL, llvm::SelectionDAG::getConstant(), llvm::SelectionDAG::getNode(), llvm::SelectionDAG::getTargetConstant(), llvm::MVT::i32, and llvm::SystemZISD::SELECT_CCMASK.
Referenced by llvm::SystemZTargetLowering::LowerOperationWrapper().
|
static |
Definition at line 2968 of file SystemZISelLowering.cpp.
References DL, llvm::SelectionDAG::getNode(), llvm::SelectionDAG::getUNDEF(), llvm::SelectionDAG::getVectorShuffle(), llvm::SelectionDAG::getVTList(), llvm::BitmaskEnumDetail::Mask(), llvm::MVT::Other, llvm::SystemZISD::STRICT_VEXTEND, llvm::MVT::v2f64, llvm::MVT::v4f32, and llvm::SystemZISD::VEXTEND.
Definition at line 4796 of file SystemZISelLowering.cpp.
References I, and isZeroVector().
Referenced by getGeneralPermuteNode().
|
static |
Definition at line 7467 of file SystemZISelLowering.cpp.
References llvm::MachineInstrBuilder::add(), llvm::MachineInstrBuilder::addImm(), llvm::MachineInstrBuilder::addReg(), llvm::sampleprof::Base, llvm::BuildMI(), llvm::MachineRegisterInfo::createVirtualRegister(), llvm::MachineBasicBlock::getParent(), llvm::MachineFunction::getRegInfo(), llvm::RISCVISD::LA, MBB, MI, MRI, and TII.
|
static |
Definition at line 3166 of file SystemZISelLowering.cpp.
References llvm::ISD::ABS, DL, llvm::SelectionDAG::getConstant(), llvm::SelectionDAG::getNode(), and llvm::ISD::SUB.
|
static |
Definition at line 4439 of file SystemZISelLowering.cpp.
References DL, llvm::SelectionDAG::getConstant(), llvm::SelectionDAG::getNode(), llvm::MVT::i32, llvm::SystemZISD::IPM, llvm::SystemZ::IPM_CC, and llvm::ISD::SRL.
|
static |
Definition at line 2761 of file SystemZISelLowering.cpp.
References adjustForFNeg(), adjustForLTGFR(), adjustForRedundantAnd(), adjustForSubtraction(), adjustForTestUnderMask(), adjustICmpTruncate(), adjustSubwordCmp(), adjustZeroCmp(), llvm::SystemZICMP::Any, assert(), 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 7164 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::BitmaskEnumDetail::Mask(), llvm::SystemZISD::SELECT_CCMASK, llvm::APInt::setBit(), llvm::APInt::trunc(), and llvm::MVT::v16i8.
Referenced by computeKnownBitsBinOp(), llvm::SystemZTargetLowering::computeKnownBitsForTargetNode(), computeNumSignBitsBinOp(), and llvm::SystemZTargetLowering::ComputeNumSignBitsForTargetNode().
|
static |
Definition at line 4806 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, llvm::MVT::i32, isShlDoublePermute(), isUndef(), llvm::BitmaskEnumDetail::Mask(), llvm::SystemZISD::PERMUTE, llvm::SystemZISD::SHL_DOUBLE, llvm::MVT::v16i8, and llvm::SystemZ::VectorBytes.
|
static |
Definition at line 2728 of file SystemZISelLowering.cpp.
References 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 890 of file SystemZISelLowering.cpp.
References llvm::Type::isIntegerTy(), and llvm::SystemZISD::MVC.
Referenced by supportedAddressingMode().
|
static |
Definition at line 4760 of file SystemZISelLowering.cpp.
References llvm::ISD::BITCAST, DL, llvm::MVT::getIntegerVT(), llvm::SelectionDAG::getNode(), llvm::SelectionDAG::getTargetConstant(), llvm::MVT::getVectorVT(), llvm::MVT::i32, P, llvm::SystemZISD::PACK, llvm::SystemZISD::PERMUTE_DWORDS, and llvm::SystemZ::VectorBytes.
|
static |
Definition at line 4709 of file SystemZISelLowering.cpp.
References llvm::sampleprof::Base, and I.
|
static |
Definition at line 2527 of file SystemZISelLowering.cpp.
References assert(), 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::countLeadingZeros(), llvm::countTrailingZeros(), High, llvm::SystemZ::isImmHH(), llvm::SystemZ::isImmHL(), llvm::SystemZ::isImmLH(), llvm::SystemZ::isImmLL(), llvm::Low, llvm::BitmaskEnumDetail::Mask(), and llvm::SystemZICMP::SignedOnly.
Referenced by adjustForTestUnderMask().
|
static |
Definition at line 2901 of file SystemZISelLowering.cpp.
References CC, FP, Int, llvm_unreachable, Mode, llvm::ISD::SETEQ, llvm::ISD::SETGE, llvm::ISD::SETGT, llvm::ISD::SETOEQ, llvm::ISD::SETOGE, llvm::ISD::SETOGT, llvm::ISD::SETUGT, SignalingFP, llvm::SystemZISD::STRICT_VFCMPE, llvm::SystemZISD::STRICT_VFCMPES, llvm::SystemZISD::STRICT_VFCMPH, llvm::SystemZISD::STRICT_VFCMPHE, llvm::SystemZISD::STRICT_VFCMPHES, llvm::SystemZISD::STRICT_VFCMPHS, StrictFP, 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 2950 of file SystemZISelLowering.cpp.
References CC, llvm::MVT::f32, llvm::ISD::getSetCCInverse(), getVectorComparison(), llvm::MVT::i32, Int, and Mode.
|
static |
Definition at line 4677 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 62 of file SystemZISelLowering.cpp.
References llvm::EVT::getSimpleVT(), llvm::MVT::i32, llvm::MVT::i64, llvm_unreachable, and llvm::MVT::SimpleTy.
Referenced by lowerGR128Binary().
Definition at line 3155 of file SystemZISelLowering.cpp.
References llvm::ISD::Constant, llvm::SDValue::getOpcode(), llvm::SDValue::getOperand(), llvm::ISD::SIGN_EXTEND, and llvm::ISD::SUB.
|
static |
Definition at line 3993 of file SystemZISelLowering.cpp.
References llvm::ISD::ADDCARRY, llvm::SDValue::getOpcode(), llvm::SDValue::getOperand(), and llvm::ISD::UADDO.
|
static |
Definition at line 2023 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().
|
static |
Definition at line 1996 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().
|
static |
Definition at line 2338 of file SystemZISelLowering.cpp.
References llvm::MVT::i8, llvm::SPII::Load, llvm::ISD::NON_EXTLOAD, llvm::ISD::SEXTLOAD, llvm::SystemZICMP::SignedOnly, llvm::SystemZICMP::UnsignedOnly, and llvm::ISD::ZEXTLOAD.
Referenced by shouldSwapCmpOperands().
|
static |
Definition at line 6369 of file SystemZISelLowering.cpp.
References llvm::EVT::getStoreSize(), llvm::EVT::isRound(), llvm::SelectionDAG::isSplatValue(), llvm::ARM_MB::ST, and llvm::SDNode::uses().
|
static |
Definition at line 5163 of file SystemZISelLowering.cpp.
|
static |
Definition at line 7518 of file SystemZISelLowering.cpp.
References MI.
|
static |
Definition at line 4732 of file SystemZISelLowering.cpp.
References chooseShuffleOpNos(), I, Shift, and llvm::SystemZ::VectorBytes.
Referenced by getGeneralPermuteNode().
|
static |
Definition at line 2508 of file SystemZISelLowering.cpp.
Referenced by adjustForTestUnderMask().
|
static |
Definition at line 3999 of file SystemZISelLowering.cpp.
References llvm::SDValue::getOpcode(), llvm::SDValue::getOperand(), llvm::ISD::SUBCARRY, and llvm::ISD::USUBO.
Definition at line 6353 of file SystemZISelLowering.cpp.
References llvm::EVT::getScalarSizeInBits(), llvm::EVT::getSizeInBits(), llvm::EVT::getVectorNumElements(), i, llvm::EVT::isSimple(), llvm::EVT::isVector(), and M.
|
static |
Definition at line 4786 of file SystemZISelLowering.cpp.
References llvm::ISD::BITCAST, llvm::ISD::isBuildVectorAllZeros(), N, and llvm::ISD::SPLAT_VECTOR.
Referenced by findZeroVectorIdx().
Definition at line 5204 of file SystemZISelLowering.cpp.
References llvm::ISD::ANY_EXTEND, DL, llvm::SelectionDAG::getNode(), llvm::SelectionDAG::getUNDEF(), llvm::MVT::i64, llvm::SDValue::isUndef(), llvm::SystemZISD::JOIN_DWORDS, and llvm::MVT::v2i64.
|
static |
Definition at line 2874 of file SystemZISelLowering.cpp.
References DL, llvm::SystemZ::even128(), llvm::SelectionDAG::getNode(), llvm::SelectionDAG::getTargetExtractSubreg(), is32Bit(), llvm::SystemZ::odd128(), and llvm::MVT::Untyped.
|
static |
Definition at line 1445 of file SystemZISelLowering.cpp.
References llvm::ISD::BUILD_PAIR, DL, llvm::SelectionDAG::getNode(), llvm::SelectionDAG::getTargetExtractSubreg(), llvm::MVT::i128, llvm::MVT::i64, and llvm::tgtok::In.
Referenced by llvm::SystemZTargetLowering::joinRegisterPartsIntoValue(), and llvm::SystemZTargetLowering::LowerOperationWrapper().
|
static |
Definition at line 1434 of file SystemZISelLowering.cpp.
References DL, llvm::ISD::EXTRACT_ELEMENT, llvm::SelectionDAG::getIntPtrConstant(), llvm::SelectionDAG::getMachineNode(), llvm::SelectionDAG::getNode(), llvm::MVT::i64, llvm::tgtok::In, and llvm::MVT::Untyped.
Referenced by llvm::SystemZTargetLowering::LowerCall(), llvm::SystemZTargetLowering::LowerOperationWrapper(), and llvm::SystemZTargetLowering::splitValueIntoRegisterParts().
|
static |
Definition at line 2858 of file SystemZISelLowering.cpp.
References DL, llvm::SelectionDAG::getConstant(), llvm::SelectionDAG::getNode(), llvm::MVT::i32, llvm::MVT::i64, Mul, llvm::ISD::MUL, llvm::ISD::SRL, and llvm::ISD::TRUNCATE.
|
static |
Definition at line 4645 of file SystemZISelLowering.cpp.
References From, P, and llvm::SystemZ::VectorBytes.
Referenced by matchDoublePermute().
|
static |
Definition at line 4667 of file SystemZISelLowering.cpp.
References matchDoublePermute(), P, and PermuteForms.
|
static |
Definition at line 4608 of file SystemZISelLowering.cpp.
References chooseShuffleOpNos(), I, P, and llvm::SystemZ::VectorBytes.
Referenced by matchPermute().
|
static |
Definition at line 4632 of file SystemZISelLowering.cpp.
References matchPermute(), P, and PermuteForms.
Definition at line 6613 of file SystemZISelLowering.cpp.
References llvm::SDNode::getOperand().
|
static |
Definition at line 1160 of file SystemZISelLowering.cpp.
References assert(), llvm::StringRef::end(), llvm::Failed(), llvm::StringRef::getAsInteger(), Index, llvm::StringRef::size(), and llvm::StringRef::slice().
Referenced by llvm::SystemZTargetLowering::getRegForInlineAsmConstraint().
|
static |
Definition at line 2360 of file SystemZISelLowering.cpp.
References llvm::ISD::AND, llvm::ISD::Constant, llvm::MVT::f128, isNaturalMemoryOperand(), llvm::ISD::SIGN_EXTEND, llvm::SystemZICMP::SignedOnly, llvm::SystemZICMP::UnsignedOnly, and llvm::ISD::ZERO_EXTEND.
Referenced by getCmp().
|
static |
Definition at line 906 of file SystemZISelLowering.cpp.
References getLoadStoreAddrMode(), I, llvm::Type::isFloatingPointTy(), llvm::Type::isVectorTy(), and memcpy().
Referenced by llvm::SystemZTargetLowering::isLegalAddressingMode().
|
static |
Definition at line 5225 of file SystemZISelLowering.cpp.
References llvm::ISD::Constant, llvm::ISD::EXTRACT_VECTOR_ELT, llvm::SelectionDAG::getBuildVector(), llvm::SDNode::getOperand(), llvm::SelectionDAG::getUNDEF(), llvm::SDNode::getValueType(), llvm::EVT::getVectorNumElements(), llvm::X86AS::GS, I, and llvm::ISD::TRUNCATE.
Definition at line 1352 of file SystemZISelLowering.cpp.
References llvm::EVT::isVector(), llvm::MVT::isVector(), and llvm::report_fatal_error().
Referenced by VerifyVectorTypes().
|
static |
Definition at line 1357 of file SystemZISelLowering.cpp.
References i, llvm::MipsISD::Ins, and VerifyVectorType().
Referenced by llvm::SystemZTargetLowering::CanLowerReturn(), llvm::SystemZTargetLowering::LowerCall(), llvm::SystemZTargetLowering::LowerFormalArguments(), and llvm::SystemZTargetLowering::LowerReturn().
|
static |
Definition at line 1362 of file SystemZISelLowering.cpp.
References i, and VerifyVectorType().
|
static |
Definition at line 4536 of file SystemZISelLowering.cpp.
Referenced by matchDoublePermute(), and matchPermute().