H A D | RISCVISelLowering.cpp | 85 : TargetLowering(TM), Subtarget(STI) { in RISCVTargetLowering() 87 RISCVABI::ABI ABI = Subtarget.getTargetABI(); in RISCVTargetLowering() 91 !Subtarget.hasStdExtF()) { in RISCVTargetLowering() 95 ABI = Subtarget.is64Bit() ? RISCVABI::ABI_LP64 : RISCVABI::ABI_ILP32; in RISCVTargetLowering() 97 !Subtarget.hasStdExtD()) { in RISCVTargetLowering() 101 ABI = Subtarget.is64Bit() ? RISCVABI::ABI_LP64 : RISCVABI::ABI_ILP32; in RISCVTargetLowering() 118 MVT XLenVT = Subtarget.getXLenVT(); in RISCVTargetLowering() 122 if (Subtarget.is64Bit() && RV64LegalI32) in RISCVTargetLowering() 125 if (Subtarget.hasStdExtZfhmin()) in RISCVTargetLowering() 127 if (Subtarget in RISCVTargetLowering() 2606 useRVVForFixedLengthVectorVT(MVT VT,const RISCVSubtarget & Subtarget) useRVVForFixedLengthVectorVT() argument 2682 getContainerForFixedLengthVector(const TargetLowering & TLI,MVT VT,const RISCVSubtarget & Subtarget) getContainerForFixedLengthVector() argument 2717 getContainerForFixedLengthVector(SelectionDAG & DAG,MVT VT,const RISCVSubtarget & Subtarget) getContainerForFixedLengthVector() argument 2728 convertToScalableVector(EVT VT,SDValue V,SelectionDAG & DAG,const RISCVSubtarget & Subtarget) convertToScalableVector() argument 2740 convertFromScalableVector(EVT VT,SDValue V,SelectionDAG & DAG,const RISCVSubtarget & Subtarget) convertFromScalableVector() argument 2768 getVLOp(uint64_t NumElts,MVT ContainerVT,const SDLoc & DL,SelectionDAG & DAG,const RISCVSubtarget & Subtarget) getVLOp() argument 2782 getDefaultScalableVLOps(MVT VecVT,const SDLoc & DL,SelectionDAG & DAG,const RISCVSubtarget & Subtarget) getDefaultScalableVLOps() argument 2791 getDefaultVLOps(uint64_t NumElts,MVT ContainerVT,const SDLoc & DL,SelectionDAG & DAG,const RISCVSubtarget & Subtarget) getDefaultVLOps() argument 2804 getDefaultVLOps(MVT VecVT,MVT ContainerVT,const SDLoc & DL,SelectionDAG & DAG,const RISCVSubtarget & Subtarget) getDefaultVLOps() argument 2821 computeVLMAXBounds(MVT VecVT,const RISCVSubtarget & Subtarget) computeVLMAXBounds() argument 2905 lowerFP_TO_INT_SAT(SDValue Op,SelectionDAG & DAG,const RISCVSubtarget & Subtarget) lowerFP_TO_INT_SAT() argument 3040 lowerVectorFTRUNC_FCEIL_FFLOOR_FROUND(SDValue Op,SelectionDAG & DAG,const RISCVSubtarget & Subtarget) lowerVectorFTRUNC_FCEIL_FFLOOR_FROUND() argument 3149 lowerVectorStrictFTRUNC_FCEIL_FFLOOR_FROUND(SDValue Op,SelectionDAG & DAG,const RISCVSubtarget & Subtarget) lowerVectorStrictFTRUNC_FCEIL_FFLOOR_FROUND() argument 3250 lowerFTRUNC_FCEIL_FFLOOR_FROUND(SDValue Op,SelectionDAG & DAG,const RISCVSubtarget & Subtarget) lowerFTRUNC_FCEIL_FFLOOR_FROUND() argument 3278 lowerVectorXRINT(SDValue Op,SelectionDAG & DAG,const RISCVSubtarget & Subtarget) lowerVectorXRINT() argument 3302 getVSlidedown(SelectionDAG & DAG,const RISCVSubtarget & Subtarget,const SDLoc & DL,EVT VT,SDValue Merge,SDValue Op,SDValue Offset,SDValue Mask,SDValue VL,unsigned Policy=RISCVII::TAIL_UNDISTURBED_MASK_UNDISTURBED) getVSlidedown() argument 3314 getVSlideup(SelectionDAG & DAG,const RISCVSubtarget & Subtarget,const SDLoc & DL,EVT VT,SDValue Merge,SDValue Op,SDValue Offset,SDValue Mask,SDValue VL,unsigned Policy=RISCVII::TAIL_UNDISTURBED_MASK_UNDISTURBED) getVSlideup() argument 3472 matchSplatAsGather(SDValue SplatVal,MVT VT,const SDLoc & DL,SelectionDAG & DAG,const RISCVSubtarget & Subtarget) matchSplatAsGather() argument 3513 lowerBuildVectorViaDominantValues(SDValue Op,SelectionDAG & DAG,const RISCVSubtarget & Subtarget) lowerBuildVectorViaDominantValues() argument 3620 lowerBuildVectorOfConstants(SDValue Op,SelectionDAG & DAG,const RISCVSubtarget & Subtarget) lowerBuildVectorOfConstants() argument 3921 getPACKOpcode(unsigned DestBW,const RISCVSubtarget & Subtarget) getPACKOpcode() argument 3941 lowerBuildVectorViaPacking(SDValue Op,SelectionDAG & DAG,const RISCVSubtarget & Subtarget) lowerBuildVectorViaPacking() argument 4010 lowerBUILD_VECTOR(SDValue Op,SelectionDAG & DAG,const RISCVSubtarget & Subtarget) lowerBUILD_VECTOR() argument 4307 lowerScalarSplat(SDValue Passthru,SDValue Scalar,SDValue VL,MVT VT,const SDLoc & DL,SelectionDAG & DAG,const RISCVSubtarget & Subtarget) lowerScalarSplat() argument 4345 lowerScalarInsert(SDValue Scalar,SDValue VL,MVT VT,const SDLoc & DL,SelectionDAG & DAG,const RISCVSubtarget & Subtarget) lowerScalarInsert() argument 4405 isDeinterleaveShuffle(MVT VT,MVT ContainerVT,SDValue V1,SDValue V2,ArrayRef<int> Mask,const RISCVSubtarget & Subtarget) isDeinterleaveShuffle() argument 4449 isInterleaveShuffle(ArrayRef<int> Mask,MVT VT,int & EvenSrc,int & OddSrc,const RISCVSubtarget & Subtarget) isInterleaveShuffle() argument 4560 getDeinterleaveViaVNSRL(const SDLoc & DL,MVT VT,SDValue Src,bool EvenElts,const RISCVSubtarget & Subtarget,SelectionDAG & DAG) getDeinterleaveViaVNSRL() argument 4620 lowerVECTOR_SHUFFLEAsVSlidedown(const SDLoc & DL,MVT VT,SDValue V1,SDValue V2,ArrayRef<int> Mask,const RISCVSubtarget & Subtarget,SelectionDAG & DAG) lowerVECTOR_SHUFFLEAsVSlidedown() argument 4697 lowerVECTOR_SHUFFLEAsVSlideup(const SDLoc & DL,MVT VT,SDValue V1,SDValue V2,ArrayRef<int> Mask,const RISCVSubtarget & Subtarget,SelectionDAG & DAG) lowerVECTOR_SHUFFLEAsVSlideup() argument 4741 lowerVECTOR_SHUFFLEAsVSlide1(const SDLoc & DL,MVT VT,SDValue V1,SDValue V2,ArrayRef<int> Mask,const RISCVSubtarget & Subtarget,SelectionDAG & DAG) lowerVECTOR_SHUFFLEAsVSlide1() argument 4794 getWideningInterleave(SDValue EvenV,SDValue OddV,const SDLoc & DL,SelectionDAG & DAG,const RISCVSubtarget & Subtarget) getWideningInterleave() argument 4894 lowerBitreverseShuffle(ShuffleVectorSDNode * SVN,SelectionDAG & DAG,const RISCVSubtarget & Subtarget) lowerBitreverseShuffle() argument 4946 isLegalBitRotate(ShuffleVectorSDNode * SVN,SelectionDAG & DAG,const RISCVSubtarget & Subtarget,MVT & RotateVT,unsigned & RotateAmt) isLegalBitRotate() argument 4969 lowerVECTOR_SHUFFLEAsRotate(ShuffleVectorSDNode * SVN,SelectionDAG & DAG,const RISCVSubtarget & Subtarget) lowerVECTOR_SHUFFLEAsRotate() argument 4997 lowerShuffleViaVRegSplitting(ShuffleVectorSDNode * SVN,SelectionDAG & DAG,const RISCVSubtarget & Subtarget) lowerShuffleViaVRegSplitting() argument 5078 lowerVECTOR_SHUFFLE(SDValue Op,SelectionDAG & DAG,const RISCVSubtarget & Subtarget) lowerVECTOR_SHUFFLE() argument 5617 lowerConstant(SDValue Op,SelectionDAG & DAG,const RISCVSubtarget & Subtarget) lowerConstant() argument 5657 LowerATOMIC_FENCE(SDValue Op,SelectionDAG & DAG,const RISCVSubtarget & Subtarget) LowerATOMIC_FENCE() argument 5860 lowerFMAXIMUM_FMINIMUM(SDValue Op,SelectionDAG & DAG,const RISCVSubtarget & Subtarget) lowerFMAXIMUM_FMINIMUM() argument 7558 combineSelectToBinOp(SDNode * N,SelectionDAG & DAG,const RISCVSubtarget & Subtarget) combineSelectToBinOp() argument 7634 foldBinOpIntoSelectIfProfitable(SDNode * BO,SelectionDAG & DAG,const RISCVSubtarget & Subtarget) foldBinOpIntoSelectIfProfitable() argument 8419 getSmallestVTForIndex(MVT VecVT,unsigned MaxIdx,SDLoc DL,SelectionDAG & DAG,const RISCVSubtarget & Subtarget) getSmallestVTForIndex() argument 8764 lowerVectorIntrinsicScalars(SDValue Op,SelectionDAG & DAG,const RISCVSubtarget & Subtarget) lowerVectorIntrinsicScalars() argument 8952 lowerGetVectorLength(SDNode * N,SelectionDAG & DAG,const RISCVSubtarget & Subtarget) lowerGetVectorLength() argument 8987 lowerCttzElts(SDNode * N,SelectionDAG & DAG,const RISCVSubtarget & Subtarget) lowerCttzElts() argument 9012 const RISCVSubtarget &Subtarget = promoteVCIXScalar() local 9051 const RISCVSubtarget &Subtarget = processVCIXOperands() local 9071 isValidEGW(int EGS,EVT VT,const RISCVSubtarget & Subtarget) isValidEGW() argument 9361 const RISCVSubtarget &Subtarget = getVCIXISDNodeWCHAIN() local 9803 lowerReductionSeq(unsigned RVVOpcode,MVT ResVT,SDValue StartValue,SDValue Vec,SDValue Mask,SDValue VL,const SDLoc & DL,SelectionDAG & DAG,const RISCVSubtarget & Subtarget) lowerReductionSeq() argument 9884 getRVVFPReductionOpAndOperands(SDValue Op,SelectionDAG & DAG,EVT EltVT,const RISCVSubtarget & Subtarget) getRVVFPReductionOpAndOperands() argument 12945 combineBinOpOfExtractToReduceTree(SDNode * N,SelectionDAG & DAG,const RISCVSubtarget & Subtarget) combineBinOpOfExtractToReduceTree() argument 13041 combineBinOpToReduce(SDNode * N,SelectionDAG & DAG,const RISCVSubtarget & Subtarget) combineBinOpToReduce() argument 13147 transformAddShlImm(SDNode * N,SelectionDAG & DAG,const RISCVSubtarget & Subtarget) transformAddShlImm() argument 13203 combineSelectAndUse(SDNode * N,SDValue Slct,SDValue OtherOp,SelectionDAG & DAG,bool AllOnes,const RISCVSubtarget & Subtarget) combineSelectAndUse() argument 13268 combineSelectAndUseCommutative(SDNode * N,SelectionDAG & DAG,bool AllOnes,const RISCVSubtarget & Subtarget) combineSelectAndUseCommutative() argument 13297 transformAddImmMulImm(SDNode * N,SelectionDAG & DAG,const RISCVSubtarget & Subtarget) transformAddImmMulImm() argument 13424 performADDCombine(SDNode * N,TargetLowering::DAGCombinerInfo & DCI,const RISCVSubtarget & Subtarget) performADDCombine() argument 13489 combineSubShiftToOrcB(SDNode * N,SelectionDAG & DAG,const RISCVSubtarget & Subtarget) combineSubShiftToOrcB() argument 13516 performSUBCombine(SDNode * N,SelectionDAG & DAG,const RISCVSubtarget & Subtarget) performSUBCombine() argument 13663 performTRUNCATECombine(SDNode * N,SelectionDAG & DAG,const RISCVSubtarget & Subtarget) performTRUNCATECombine() argument 13690 performANDCombine(SDNode * N,TargetLowering::DAGCombinerInfo & DCI,const RISCVSubtarget & Subtarget) performANDCombine() argument 13763 performORCombine(SDNode * N,TargetLowering::DAGCombinerInfo & DCI,const RISCVSubtarget & Subtarget) performORCombine() argument 13790 performXORCombine(SDNode * N,SelectionDAG & DAG,const RISCVSubtarget & Subtarget) performXORCombine() argument 13864 expandMul(SDNode * N,SelectionDAG & DAG,TargetLowering::DAGCombinerInfo & DCI,const RISCVSubtarget & Subtarget) expandMul() argument 14053 performMULCombine(SDNode * N,SelectionDAG & DAG,TargetLowering::DAGCombinerInfo & DCI,const RISCVSubtarget & Subtarget) performMULCombine() argument 14172 performSETCCCombine(SDNode * N,SelectionDAG & DAG,const RISCVSubtarget & Subtarget) performSETCCCombine() argument 14219 performSIGN_EXTEND_INREGCombine(SDNode * N,SelectionDAG & DAG,const RISCVSubtarget & Subtarget) performSIGN_EXTEND_INREGCombine() argument 14803 canFoldToVWWithSameExtensionImpl(SDNode * Root,const NodeExtensionHelper & LHS,const NodeExtensionHelper & RHS,uint8_t AllowExtMask,SelectionDAG & DAG,const RISCVSubtarget & Subtarget) canFoldToVWWithSameExtensionImpl() argument 14828 canFoldToVWWithSameExtension(SDNode * Root,const NodeExtensionHelper & LHS,const NodeExtensionHelper & RHS,SelectionDAG & DAG,const RISCVSubtarget & Subtarget) canFoldToVWWithSameExtension() argument 14841 canFoldToVW_W(SDNode * Root,const NodeExtensionHelper & LHS,const NodeExtensionHelper & RHS,SelectionDAG & DAG,const RISCVSubtarget & Subtarget) canFoldToVW_W() argument 14869 canFoldToVWWithSEXT(SDNode * Root,const NodeExtensionHelper & LHS,const NodeExtensionHelper & RHS,SelectionDAG & DAG,const RISCVSubtarget & Subtarget) canFoldToVWWithSEXT() argument 14881 canFoldToVWWithZEXT(SDNode * Root,const NodeExtensionHelper & LHS,const NodeExtensionHelper & RHS,SelectionDAG & DAG,const RISCVSubtarget & Subtarget) canFoldToVWWithZEXT() argument 14893 canFoldToVWWithFPEXT(SDNode * Root,const NodeExtensionHelper & LHS,const NodeExtensionHelper & RHS,SelectionDAG & DAG,const RISCVSubtarget & Subtarget) canFoldToVWWithFPEXT() argument 14905 canFoldToVW_SU(SDNode * Root,const NodeExtensionHelper & LHS,const NodeExtensionHelper & RHS,SelectionDAG & DAG,const RISCVSubtarget & Subtarget) canFoldToVW_SU() argument 14982 combineBinOp_VLToVWBinOp_VL(SDNode * N,TargetLowering::DAGCombinerInfo & DCI,const RISCVSubtarget & Subtarget) combineBinOp_VLToVWBinOp_VL() argument 15122 performVWADDSUBW_VLCombine(SDNode * N,TargetLowering::DAGCombinerInfo & DCI,const RISCVSubtarget & Subtarget) performVWADDSUBW_VLCombine() argument 15147 const RISCVSubtarget &Subtarget = MF.getSubtarget<RISCVSubtarget>(); tryMemPairCombine() local 15198 const RISCVSubtarget &Subtarget = MF.getSubtarget<RISCVSubtarget>(); performMemPairCombine() local 15283 performFP_TO_INTCombine(SDNode * N,TargetLowering::DAGCombinerInfo & DCI,const RISCVSubtarget & Subtarget) performFP_TO_INTCombine() argument 15386 performFP_TO_INT_SATCombine(SDNode * N,TargetLowering::DAGCombinerInfo & DCI,const RISCVSubtarget & Subtarget) performFP_TO_INT_SATCombine() argument 15448 performBITREVERSECombine(SDNode * N,SelectionDAG & DAG,const RISCVSubtarget & Subtarget) performBITREVERSECombine() argument 15543 performVFMADD_VLCombine(SDNode * N,SelectionDAG & DAG,const RISCVSubtarget & Subtarget) performVFMADD_VLCombine() argument 15602 performSRACombine(SDNode * N,SelectionDAG & DAG,const RISCVSubtarget & Subtarget) performSRACombine() argument 15773 combine_CC(SDValue & LHS,SDValue & RHS,SDValue & CC,const SDLoc & DL,SelectionDAG & DAG,const RISCVSubtarget & Subtarget) combine_CC() argument 15975 useInversedSetcc(SDNode * N,SelectionDAG & DAG,const RISCVSubtarget & Subtarget) useInversedSetcc() argument 16006 performSELECTCombine(SDNode * N,SelectionDAG & DAG,const RISCVSubtarget & Subtarget) performSELECTCombine() argument 16029 performBUILD_VECTORCombine(SDNode * N,SelectionDAG & DAG,const RISCVSubtarget & Subtarget,const RISCVTargetLowering & TLI) performBUILD_VECTORCombine() argument 16087 performINSERT_VECTOR_ELTCombine(SDNode * N,SelectionDAG & DAG,const RISCVSubtarget & Subtarget,const RISCVTargetLowering & TLI) performINSERT_VECTOR_ELTCombine() argument 16159 performCONCAT_VECTORSCombine(SDNode * N,SelectionDAG & DAG,const RISCVSubtarget & Subtarget,const RISCVTargetLowering & TLI) performCONCAT_VECTORSCombine() argument 16284 combineToVWMACC(SDNode * N,SelectionDAG & DAG,const RISCVSubtarget & Subtarget) combineToVWMACC() argument 16323 __anon765c18b71902(SDNode *N, SelectionDAG &DAG, const RISCVSubtarget &Subtarget) combineToVWMACC() argument 16525 combineTruncToVnclip(SDNode * N,SelectionDAG & DAG,const RISCVSubtarget & Subtarget) combineTruncToVnclip() argument 18163 emitSplitF64Pseudo(MachineInstr & MI,MachineBasicBlock * BB,const RISCVSubtarget & Subtarget) emitSplitF64Pseudo() argument 18198 emitBuildPairF64Pseudo(MachineInstr & MI,MachineBasicBlock * BB,const RISCVSubtarget & Subtarget) emitBuildPairF64Pseudo() argument 18252 emitQuietFCMP(MachineInstr & MI,MachineBasicBlock * BB,unsigned RelOpcode,unsigned EqOpcode,const RISCVSubtarget & Subtarget) emitQuietFCMP() argument 18289 EmitLoweredCascadedSelect(MachineInstr & First,MachineInstr & Second,MachineBasicBlock * ThisMBB,const RISCVSubtarget & Subtarget) EmitLoweredCascadedSelect() argument 18391 emitSelectPseudo(MachineInstr & MI,MachineBasicBlock * BB,const RISCVSubtarget & Subtarget) emitSelectPseudo() argument 18615 emitFROUND(MachineInstr & MI,MachineBasicBlock * MBB,const RISCVSubtarget & Subtarget) emitFROUND() argument 19315 convertLocVTToValVT(SelectionDAG & DAG,SDValue Val,const CCValAssign & VA,const SDLoc & DL,const RISCVSubtarget & Subtarget) convertLocVTToValVT() argument 19379 convertValVTToLocVT(SelectionDAG & DAG,SDValue Val,const CCValAssign & VA,const SDLoc & DL,const RISCVSubtarget & Subtarget) convertValVTToLocVT() argument 19492 const RISCVSubtarget &Subtarget = TLI.getSubtarget(); CC_RISCV_FastCC() local 19616 const RISCVSubtarget &Subtarget = CC_RISCV_GHC() local [all...] |