Lines Matching refs:dl
147 static SDValue widenVec(SelectionDAG &DAG, SDValue Vec, const SDLoc &dl);
2795 SDLoc dl(N); in SelectAddressRegImm() local
2810 Disp = DAG.getTargetConstant(imm, dl, N.getValueType()); in SelectAddressRegImm()
2849 Disp = DAG.getTargetConstant(imm, dl, N.getValueType()); in SelectAddressRegImm()
2861 Disp = DAG.getTargetConstant(Imm, dl, CN->getValueType(0)); in SelectAddressRegImm()
2875 Disp = DAG.getTargetConstant((short)Addr, dl, MVT::i32); in SelectAddressRegImm()
2877 Base = DAG.getTargetConstant((Addr - (signed short)Addr) >> 16, dl, in SelectAddressRegImm()
2880 Base = SDValue(DAG.getMachineNode(Opc, dl, CN->getValueType(0), Base), 0); in SelectAddressRegImm()
2885 Disp = DAG.getTargetConstant(0, dl, getPointerTy(DAG.getDataLayout())); in SelectAddressRegImm()
2903 SDLoc dl(N); in SelectAddressRegImm34() local
2909 Disp = DAG.getTargetConstant(Imm, dl, N.getValueType()); in SelectAddressRegImm34()
2930 Disp = DAG.getTargetConstant(Imm, dl, N.getValueType()); in SelectAddressRegImm34()
2935 Disp = DAG.getTargetConstant(Imm, dl, N.getValueType()); in SelectAddressRegImm34()
3171 SDValue PPCTargetLowering::getTOCEntry(SelectionDAG &DAG, const SDLoc &dl, in getTOCEntry() argument
3178 : DAG.getNode(PPCISD::GlobalBaseReg, dl, VT); in getTOCEntry()
3181 PPCISD::TOC_ENTRY, dl, DAG.getVTList(VT, MVT::Other), Ops, VT, in getTOCEntry()
3363 SDLoc dl(GA); in LowerGlobalTLSAddressAIX() local
3373 DAG.getTargetGlobalAddress(GV, dl, PtrVT, 0, PPCII::MO_TPREL_FLAG); in LowerGlobalTLSAddressAIX()
3374 SDValue VariableOffset = getTOCEntry(DAG, dl, VariableOffsetTGA); in LowerGlobalTLSAddressAIX()
3397 return DAG.getNode(PPCISD::Lo, dl, PtrVT, VariableOffsetTGA, TLSReg); in LowerGlobalTLSAddressAIX()
3407 TLSReg = DAG.getNode(PPCISD::GET_TPOINTER, dl, PtrVT); in LowerGlobalTLSAddressAIX()
3415 return DAG.getNode(PPCISD::ADD_TLS, dl, PtrVT, TLSReg, VariableOffset); in LowerGlobalTLSAddressAIX()
3426 DAG.getTargetGlobalAddress(GV, dl, PtrVT, 0, PPCII::MO_TLSGD_FLAG); in LowerGlobalTLSAddressAIX()
3428 DAG.getTargetGlobalAddress(GV, dl, PtrVT, 0, PPCII::MO_TLSGDM_FLAG); in LowerGlobalTLSAddressAIX()
3429 SDValue VariableOffset = getTOCEntry(DAG, dl, VariableOffsetTGA); in LowerGlobalTLSAddressAIX()
3430 SDValue RegionHandle = getTOCEntry(DAG, dl, RegionHandleTGA); in LowerGlobalTLSAddressAIX()
3431 return DAG.getNode(PPCISD::TLSGD_AIX, dl, PtrVT, VariableOffset, in LowerGlobalTLSAddressAIX()
3445 SDLoc dl(GA); in LowerGlobalTLSAddressLinux() local
3458 SDValue TGA = DAG.getTargetGlobalAddress(GV, dl, PtrVT, 0, in LowerGlobalTLSAddressLinux()
3461 DAG.getNode(PPCISD::TLS_LOCAL_EXEC_MAT_ADDR, dl, PtrVT, TGA); in LowerGlobalTLSAddressLinux()
3462 return DAG.getNode(PPCISD::ADD_TLS, dl, PtrVT, TLSReg, MatAddr); in LowerGlobalTLSAddressLinux()
3465 SDValue TGAHi = DAG.getTargetGlobalAddress(GV, dl, PtrVT, 0, in LowerGlobalTLSAddressLinux()
3467 SDValue TGALo = DAG.getTargetGlobalAddress(GV, dl, PtrVT, 0, in LowerGlobalTLSAddressLinux()
3472 SDValue Hi = DAG.getNode(PPCISD::Hi, dl, PtrVT, TGAHi, TLSReg); in LowerGlobalTLSAddressLinux()
3473 return DAG.getNode(PPCISD::Lo, dl, PtrVT, TGALo, Hi); in LowerGlobalTLSAddressLinux()
3479 GV, dl, PtrVT, 0, IsPCRel ? PPCII::MO_GOT_TPREL_PCREL_FLAG : 0); in LowerGlobalTLSAddressLinux()
3481 GV, dl, PtrVT, 0, IsPCRel ? PPCII::MO_TLS_PCREL_FLAG : PPCII::MO_TLS); in LowerGlobalTLSAddressLinux()
3484 SDValue MatPCRel = DAG.getNode(PPCISD::MAT_PCREL_ADDR, dl, PtrVT, TGA); in LowerGlobalTLSAddressLinux()
3485 TPOffset = DAG.getLoad(MVT::i64, dl, DAG.getEntryNode(), MatPCRel, in LowerGlobalTLSAddressLinux()
3493 DAG.getNode(PPCISD::ADDIS_GOT_TPREL_HA, dl, PtrVT, GOTReg, TGA); in LowerGlobalTLSAddressLinux()
3496 GOTPtr = DAG.getNode(PPCISD::PPC32_GOT, dl, PtrVT); in LowerGlobalTLSAddressLinux()
3498 GOTPtr = DAG.getNode(PPCISD::GlobalBaseReg, dl, PtrVT); in LowerGlobalTLSAddressLinux()
3500 GOTPtr = DAG.getNode(PPCISD::PPC32_PICGOT, dl, PtrVT); in LowerGlobalTLSAddressLinux()
3502 TPOffset = DAG.getNode(PPCISD::LD_GOT_TPREL_L, dl, PtrVT, TGA, GOTPtr); in LowerGlobalTLSAddressLinux()
3504 return DAG.getNode(PPCISD::ADD_TLS, dl, PtrVT, TPOffset, TGATLS); in LowerGlobalTLSAddressLinux()
3509 SDValue TGA = DAG.getTargetGlobalAddress(GV, dl, PtrVT, 0, in LowerGlobalTLSAddressLinux()
3511 return DAG.getNode(PPCISD::TLS_DYNAMIC_MAT_PCREL_ADDR, dl, PtrVT, TGA); in LowerGlobalTLSAddressLinux()
3514 SDValue TGA = DAG.getTargetGlobalAddress(GV, dl, PtrVT, 0, 0); in LowerGlobalTLSAddressLinux()
3519 GOTPtr = DAG.getNode(PPCISD::ADDIS_TLSGD_HA, dl, PtrVT, in LowerGlobalTLSAddressLinux()
3523 GOTPtr = DAG.getNode(PPCISD::GlobalBaseReg, dl, PtrVT); in LowerGlobalTLSAddressLinux()
3525 GOTPtr = DAG.getNode(PPCISD::PPC32_PICGOT, dl, PtrVT); in LowerGlobalTLSAddressLinux()
3527 return DAG.getNode(PPCISD::ADDI_TLSGD_L_ADDR, dl, PtrVT, in LowerGlobalTLSAddressLinux()
3533 SDValue TGA = DAG.getTargetGlobalAddress(GV, dl, PtrVT, 0, in LowerGlobalTLSAddressLinux()
3536 DAG.getNode(PPCISD::TLS_DYNAMIC_MAT_PCREL_ADDR, dl, PtrVT, TGA); in LowerGlobalTLSAddressLinux()
3537 return DAG.getNode(PPCISD::PADDI_DTPREL, dl, PtrVT, MatPCRel, TGA); in LowerGlobalTLSAddressLinux()
3540 SDValue TGA = DAG.getTargetGlobalAddress(GV, dl, PtrVT, 0, 0); in LowerGlobalTLSAddressLinux()
3545 GOTPtr = DAG.getNode(PPCISD::ADDIS_TLSLD_HA, dl, PtrVT, in LowerGlobalTLSAddressLinux()
3549 GOTPtr = DAG.getNode(PPCISD::GlobalBaseReg, dl, PtrVT); in LowerGlobalTLSAddressLinux()
3551 GOTPtr = DAG.getNode(PPCISD::PPC32_PICGOT, dl, PtrVT); in LowerGlobalTLSAddressLinux()
3553 SDValue TLSAddr = DAG.getNode(PPCISD::ADDI_TLSLD_L_ADDR, dl, in LowerGlobalTLSAddressLinux()
3555 SDValue DtvOffsetHi = DAG.getNode(PPCISD::ADDIS_DTPREL_HA, dl, in LowerGlobalTLSAddressLinux()
3557 return DAG.getNode(PPCISD::ADDI_DTPREL_L, dl, PtrVT, DtvOffsetHi, TGA); in LowerGlobalTLSAddressLinux()
3620 SDLoc dl(Op); in LowerSETCC() local
3626 softenSetCCOperands(DAG, LHSVT, LHS, RHS, CC, dl, LHS, RHS, Chain, in LowerSETCC()
3629 LHS = DAG.getNode(ISD::SETCC, dl, Op.getValueType(), LHS, RHS, in LowerSETCC()
3632 return DAG.getMergeValues({LHS, Chain}, dl); in LowerSETCC()
3647 dl, MVT::v4i32, DAG.getNode(ISD::BITCAST, dl, MVT::v4i32, LHS), in LowerSETCC()
3648 DAG.getNode(ISD::BITCAST, dl, MVT::v4i32, RHS), CC); in LowerSETCC()
3651 DAG.getVectorShuffle(MVT::v4i32, dl, SetCC32, SetCC32, ShuffV); in LowerSETCC()
3654 dl, MVT::v4i32, Shuff, SetCC32)); in LowerSETCC()
3682 SDValue Sub = DAG.getNode(ISD::XOR, dl, LHSVT, LHS, RHS); in LowerSETCC()
3683 return DAG.getSetCC(dl, VT, Sub, DAG.getConstant(0, dl, LHSVT), CC); in LowerSETCC()
3695 SDLoc dl(Node); in LowerVAARG() local
3700 SDValue GprIndex = DAG.getExtLoad(ISD::ZEXTLOAD, dl, MVT::i32, InChain, in LowerVAARG()
3706 SDValue GprAnd = DAG.getNode(ISD::AND, dl, MVT::i32, GprIndex, in LowerVAARG()
3707 DAG.getConstant(1, dl, MVT::i32)); in LowerVAARG()
3708 SDValue CC64 = DAG.getSetCC(dl, MVT::i32, GprAnd, in LowerVAARG()
3709 DAG.getConstant(0, dl, MVT::i32), ISD::SETNE); in LowerVAARG()
3710 SDValue GprIndexPlusOne = DAG.getNode(ISD::ADD, dl, MVT::i32, GprIndex, in LowerVAARG()
3711 DAG.getConstant(1, dl, MVT::i32)); in LowerVAARG()
3713 GprIndex = DAG.getNode(ISD::SELECT, dl, MVT::i32, CC64, GprIndexPlusOne, in LowerVAARG()
3718 SDValue FprPtr = DAG.getNode(ISD::ADD, dl, PtrVT, VAListPtr, in LowerVAARG()
3719 DAG.getConstant(1, dl, MVT::i32)); in LowerVAARG()
3722 SDValue FprIndex = DAG.getExtLoad(ISD::ZEXTLOAD, dl, MVT::i32, InChain, in LowerVAARG()
3726 SDValue RegSaveAreaPtr = DAG.getNode(ISD::ADD, dl, PtrVT, VAListPtr, in LowerVAARG()
3727 DAG.getConstant(8, dl, MVT::i32)); in LowerVAARG()
3729 SDValue OverflowAreaPtr = DAG.getNode(ISD::ADD, dl, PtrVT, VAListPtr, in LowerVAARG()
3730 DAG.getConstant(4, dl, MVT::i32)); in LowerVAARG()
3734 DAG.getLoad(MVT::i32, dl, InChain, OverflowAreaPtr, MachinePointerInfo()); in LowerVAARG()
3738 DAG.getLoad(MVT::i32, dl, InChain, RegSaveAreaPtr, MachinePointerInfo()); in LowerVAARG()
3742 SDValue CC = DAG.getSetCC(dl, MVT::i32, VT.isInteger() ? GprIndex : FprIndex, in LowerVAARG()
3743 DAG.getConstant(8, dl, MVT::i32), ISD::SETLT); in LowerVAARG()
3746 SDValue RegConstant = DAG.getNode(ISD::MUL, dl, MVT::i32, in LowerVAARG()
3748 DAG.getConstant(VT.isInteger() ? 4 : 8, dl, in LowerVAARG()
3752 SDValue OurReg = DAG.getNode(ISD::ADD, dl, PtrVT, RegSaveArea, in LowerVAARG()
3757 OurReg = DAG.getNode(ISD::ADD, dl, PtrVT, OurReg, in LowerVAARG()
3758 DAG.getConstant(32, dl, MVT::i32)); in LowerVAARG()
3761 SDValue IndexPlus1 = DAG.getNode(ISD::ADD, dl, MVT::i32, in LowerVAARG()
3763 DAG.getConstant(VT == MVT::i64 ? 2 : 1, dl, in LowerVAARG()
3766 InChain = DAG.getTruncStore(InChain, dl, IndexPlus1, in LowerVAARG()
3771 SDValue Result = DAG.getNode(ISD::SELECT, dl, PtrVT, CC, OurReg, OverflowArea); in LowerVAARG()
3774 SDValue OverflowAreaPlusN = DAG.getNode(ISD::ADD, dl, PtrVT, OverflowArea, in LowerVAARG()
3776 dl, MVT::i32)); in LowerVAARG()
3778 OverflowArea = DAG.getNode(ISD::SELECT, dl, MVT::i32, CC, OverflowArea, in LowerVAARG()
3781 InChain = DAG.getTruncStore(InChain, dl, OverflowArea, OverflowAreaPtr, in LowerVAARG()
3784 return DAG.getLoad(VT, dl, InChain, Result, MachinePointerInfo()); in LowerVAARG()
3866 SDLoc dl(Op); in LowerINIT_TRAMPOLINE() local
3879 Entry.Node = DAG.getConstant(isPPC64 ? 48 : 40, dl, in LowerINIT_TRAMPOLINE()
3888 CLI.setDebugLoc(dl).setChain(Chain).setLibCallee( in LowerINIT_TRAMPOLINE()
3901 SDLoc dl(Op); in LowerVASTART() local
3908 return DAG.getStore(Op.getOperand(0), dl, FR, Op.getOperand(1), in LowerVASTART()
3936 SDValue ArgGPR = DAG.getConstant(FuncInfo->getVarArgsNumGPR(), dl, MVT::i32); in LowerVASTART()
3937 SDValue ArgFPR = DAG.getConstant(FuncInfo->getVarArgsNumFPR(), dl, MVT::i32); in LowerVASTART()
3944 SDValue ConstFrameOffset = DAG.getConstant(FrameOffset, dl, PtrVT); in LowerVASTART()
3947 SDValue ConstStackOffset = DAG.getConstant(StackOffset, dl, PtrVT); in LowerVASTART()
3950 SDValue ConstFPROffset = DAG.getConstant(FPROffset, dl, PtrVT); in LowerVASTART()
3956 DAG.getTruncStore(Op.getOperand(0), dl, ArgGPR, Op.getOperand(1), in LowerVASTART()
3959 SDValue nextPtr = DAG.getNode(ISD::ADD, dl, PtrVT, Op.getOperand(1), in LowerVASTART()
3964 DAG.getTruncStore(firstStore, dl, ArgFPR, nextPtr, in LowerVASTART()
3967 nextPtr = DAG.getNode(ISD::ADD, dl, PtrVT, nextPtr, ConstStackOffset); in LowerVASTART()
3970 SDValue thirdStore = DAG.getStore(secondStore, dl, StackOffsetFI, nextPtr, in LowerVASTART()
3973 nextPtr = DAG.getNode(ISD::ADD, dl, PtrVT, nextPtr, ConstFrameOffset); in LowerVASTART()
3976 return DAG.getStore(thirdStore, dl, FR, nextPtr, in LowerVASTART()
4101 const SmallVectorImpl<ISD::InputArg> &Ins, const SDLoc &dl, in LowerFormalArguments() argument
4104 return LowerFormalArguments_AIX(Chain, CallConv, isVarArg, Ins, dl, DAG, in LowerFormalArguments()
4107 return LowerFormalArguments_64SVR4(Chain, CallConv, isVarArg, Ins, dl, DAG, in LowerFormalArguments()
4110 return LowerFormalArguments_32SVR4(Chain, CallConv, isVarArg, Ins, dl, DAG, in LowerFormalArguments()
4116 const SmallVectorImpl<ISD::InputArg> &Ins, const SDLoc &dl, in LowerFormalArguments_32SVR4() argument
4225 SDValue ArgValueLo = DAG.getCopyFromReg(Chain, dl, RegLo, MVT::i32); in LowerFormalArguments_32SVR4()
4226 SDValue ArgValueHi = DAG.getCopyFromReg(Chain, dl, RegHi, MVT::i32); in LowerFormalArguments_32SVR4()
4229 ArgValue = DAG.getNode(PPCISD::BUILD_SPE64, dl, MVT::f64, ArgValueLo, in LowerFormalArguments_32SVR4()
4233 ArgValue = DAG.getCopyFromReg(Chain, dl, Reg, in LowerFormalArguments_32SVR4()
4236 ArgValue = DAG.getNode(ISD::TRUNCATE, dl, MVT::i1, ArgValue); in LowerFormalArguments_32SVR4()
4256 DAG.getLoad(VA.getValVT(), dl, Chain, FIN, MachinePointerInfo())); in LowerFormalArguments_32SVR4()
4327 SDValue Val = DAG.getCopyFromReg(Chain, dl, VReg, PtrVT); in LowerFormalArguments_32SVR4()
4329 DAG.getStore(Val.getValue(1), dl, Val, FIN, MachinePointerInfo()); in LowerFormalArguments_32SVR4()
4332 SDValue PtrOff = DAG.getConstant(PtrVT.getSizeInBits()/8, dl, PtrVT); in LowerFormalArguments_32SVR4()
4333 FIN = DAG.getNode(ISD::ADD, dl, PtrOff.getValueType(), FIN, PtrOff); in LowerFormalArguments_32SVR4()
4346 SDValue Val = DAG.getCopyFromReg(Chain, dl, VReg, MVT::f64); in LowerFormalArguments_32SVR4()
4348 DAG.getStore(Val.getValue(1), dl, Val, FIN, MachinePointerInfo()); in LowerFormalArguments_32SVR4()
4351 SDValue PtrOff = DAG.getConstant(MVT(MVT::f64).getSizeInBits()/8, dl, in LowerFormalArguments_32SVR4()
4353 FIN = DAG.getNode(ISD::ADD, dl, PtrOff.getValueType(), FIN, PtrOff); in LowerFormalArguments_32SVR4()
4358 Chain = DAG.getNode(ISD::TokenFactor, dl, MVT::Other, MemOps); in LowerFormalArguments_32SVR4()
4368 const SDLoc &dl) const { in extendArgForPPC64()
4370 ArgVal = DAG.getNode(ISD::AssertSext, dl, MVT::i64, ArgVal, in extendArgForPPC64()
4373 ArgVal = DAG.getNode(ISD::AssertZext, dl, MVT::i64, ArgVal, in extendArgForPPC64()
4376 return DAG.getNode(ISD::TRUNCATE, dl, ObjectVT, ArgVal); in extendArgForPPC64()
4381 const SmallVectorImpl<ISD::InputArg> &Ins, const SDLoc &dl, in LowerFormalArguments_64SVR4() argument
4522 SDValue ArgOff = DAG.getConstant(PtrByteSize - ObjSize, dl, PtrVT); in LowerFormalArguments_64SVR4()
4523 Arg = DAG.getNode(ISD::ADD, dl, ArgOff.getValueType(), Arg, ArgOff); in LowerFormalArguments_64SVR4()
4530 SDValue Val = DAG.getCopyFromReg(Chain, dl, VReg, PtrVT); in LowerFormalArguments_64SVR4()
4533 DAG.getTruncStore(Val.getValue(1), dl, Val, Arg, in LowerFormalArguments_64SVR4()
4554 SDValue Val = DAG.getCopyFromReg(Chain, dl, VReg, PtrVT); in LowerFormalArguments_64SVR4()
4557 SDValue Off = DAG.getConstant(j, dl, PtrVT); in LowerFormalArguments_64SVR4()
4558 Addr = DAG.getNode(ISD::ADD, dl, Off.getValueType(), Addr, Off); in LowerFormalArguments_64SVR4()
4563 DAG.getTruncStore(Val.getValue(1), dl, Val, Addr, in LowerFormalArguments_64SVR4()
4580 ArgVal = DAG.getCopyFromReg(Chain, dl, VReg, MVT::i64); in LowerFormalArguments_64SVR4()
4583 ArgVal = extendArgForPPC64(Flags, ObjectVT, DAG, ArgVal, dl); in LowerFormalArguments_64SVR4()
4594 ArgVal = DAG.getCopyFromReg(Chain, dl, VReg, MVT::i64); in LowerFormalArguments_64SVR4()
4599 ArgVal = extendArgForPPC64(Flags, ObjectVT, DAG, ArgVal, dl); in LowerFormalArguments_64SVR4()
4629 ArgVal = DAG.getCopyFromReg(Chain, dl, VReg, ObjectVT); in LowerFormalArguments_64SVR4()
4640 ArgVal = DAG.getCopyFromReg(Chain, dl, VReg, MVT::i64); in LowerFormalArguments_64SVR4()
4644 ArgVal = DAG.getNode(ISD::SRL, dl, MVT::i64, ArgVal, in LowerFormalArguments_64SVR4()
4645 DAG.getConstant(32, dl, MVT::i32)); in LowerFormalArguments_64SVR4()
4646 ArgVal = DAG.getNode(ISD::TRUNCATE, dl, MVT::i32, ArgVal); in LowerFormalArguments_64SVR4()
4649 ArgVal = DAG.getNode(ISD::BITCAST, dl, ObjectVT, ArgVal); in LowerFormalArguments_64SVR4()
4680 ArgVal = DAG.getCopyFromReg(Chain, dl, VReg, ObjectVT); in LowerFormalArguments_64SVR4()
4699 ArgVal = DAG.getLoad(ObjectVT, dl, Chain, FIN, MachinePointerInfo()); in LowerFormalArguments_64SVR4()
4739 SDValue Val = DAG.getCopyFromReg(Chain, dl, VReg, PtrVT); in LowerFormalArguments_64SVR4()
4741 DAG.getStore(Val.getValue(1), dl, Val, FIN, MachinePointerInfo()); in LowerFormalArguments_64SVR4()
4744 SDValue PtrOff = DAG.getConstant(PtrByteSize, dl, PtrVT); in LowerFormalArguments_64SVR4()
4745 FIN = DAG.getNode(ISD::ADD, dl, PtrOff.getValueType(), FIN, PtrOff); in LowerFormalArguments_64SVR4()
4750 Chain = DAG.getNode(ISD::TokenFactor, dl, MVT::Other, MemOps); in LowerFormalArguments_64SVR4()
5086 SmallVectorImpl<SDValue> &MemOpChains, const SDLoc &dl) { in StoreTailCallArgumentsToStackSlot() argument
5093 Chain, dl, Arg, FIN, in StoreTailCallArgumentsToStackSlot()
5102 int SPDiff, const SDLoc &dl) { in EmitTailCallStoreFPAndRetAddr() argument
5115 Chain = DAG.getStore(Chain, dl, OldRetAddr, NewRetAddrFrIdx, in EmitTailCallStoreFPAndRetAddr()
5144 SDValue &FPOpOut, const SDLoc &dl) const { in EmitTailCallLoadFPAndRetAddr()
5149 LROpOut = DAG.getLoad(VT, dl, Chain, LROpOut, MachinePointerInfo()); in EmitTailCallLoadFPAndRetAddr()
5163 SelectionDAG &DAG, const SDLoc &dl) { in CreateCopyOfByValArgument() argument
5164 SDValue SizeNode = DAG.getConstant(Flags.getByValSize(), dl, MVT::i32); in CreateCopyOfByValArgument()
5165 return DAG.getMemcpy(Chain, dl, Dst, Src, SizeNode, in CreateCopyOfByValArgument()
5176 SmallVectorImpl<TailCallArgumentInfo> &TailCallArguments, const SDLoc &dl) { in LowerMemOpCallTo() argument
5185 PtrOff = DAG.getNode(ISD::ADD, dl, PtrVT, StackPtr, in LowerMemOpCallTo()
5186 DAG.getConstant(ArgOffset, dl, PtrVT)); in LowerMemOpCallTo()
5189 DAG.getStore(Chain, dl, Arg, PtrOff, MachinePointerInfo())); in LowerMemOpCallTo()
5197 const SDLoc &dl, int SPDiff, unsigned NumBytes, SDValue LROp, in PrepareTailCall() argument
5206 MemOpChains2, dl); in PrepareTailCall()
5208 Chain = DAG.getNode(ISD::TokenFactor, dl, MVT::Other, MemOpChains2); in PrepareTailCall()
5211 Chain = EmitTailCallStoreFPAndRetAddr(DAG, Chain, LROp, FPOp, SPDiff, dl); in PrepareTailCall()
5214 Chain = DAG.getCALLSEQ_END(Chain, NumBytes, 0, InGlue, dl); in PrepareTailCall()
5233 const SmallVectorImpl<ISD::InputArg> &Ins, const SDLoc &dl, in LowerCallResult() argument
5252 SDValue Lo = DAG.getCopyFromReg(Chain, dl, VA.getLocReg(), MVT::i32, in LowerCallResult()
5257 SDValue Hi = DAG.getCopyFromReg(Chain, dl, VA.getLocReg(), MVT::i32, in LowerCallResult()
5263 Val = DAG.getNode(PPCISD::BUILD_SPE64, dl, MVT::f64, Lo, Hi); in LowerCallResult()
5265 Val = DAG.getCopyFromReg(Chain, dl, in LowerCallResult()
5275 Val = DAG.getNode(ISD::TRUNCATE, dl, VA.getValVT(), Val); in LowerCallResult()
5278 Val = DAG.getNode(ISD::AssertZext, dl, VA.getLocVT(), Val, in LowerCallResult()
5280 Val = DAG.getNode(ISD::TRUNCATE, dl, VA.getValVT(), Val); in LowerCallResult()
5283 Val = DAG.getNode(ISD::AssertSext, dl, VA.getLocVT(), Val, in LowerCallResult()
5285 Val = DAG.getNode(ISD::TRUNCATE, dl, VA.getValVT(), Val); in LowerCallResult()
5389 const SDLoc &dl, const PPCSubtarget &Subtarget) { in transformCallee() argument
5431 return DAG.getTargetGlobalAddress(GV, dl, Callee.getValueType(), 0, in transformCallee()
5486 const SDLoc &dl) { in prepareIndirectCall() argument
5489 Chain = DAG.getNode(PPCISD::MTCTR, dl, ArrayRef(ReturnTypes, 2), in prepareIndirectCall()
5498 const CallBase *CB, const SDLoc &dl, in prepareDescriptorIndirectCall() argument
5548 SDValue LoadFuncPtr = DAG.getLoad(RegVT, dl, LDChain, Callee, MPI, in prepareDescriptorIndirectCall()
5553 SDValue TOCOff = DAG.getIntPtrConstant(TOCAnchorOffset, dl); in prepareDescriptorIndirectCall()
5554 SDValue AddTOC = DAG.getNode(ISD::ADD, dl, RegVT, Callee, TOCOff); in prepareDescriptorIndirectCall()
5556 DAG.getLoad(RegVT, dl, LDChain, AddTOC, in prepareDescriptorIndirectCall()
5560 SDValue PtrOff = DAG.getIntPtrConstant(EnvPtrOffset, dl); in prepareDescriptorIndirectCall()
5561 SDValue AddPtr = DAG.getNode(ISD::ADD, dl, RegVT, Callee, PtrOff); in prepareDescriptorIndirectCall()
5563 DAG.getLoad(RegVT, dl, LDChain, AddPtr, in prepareDescriptorIndirectCall()
5568 SDValue TOCVal = DAG.getCopyToReg(Chain, dl, TOCReg, TOCPtr, Glue); in prepareDescriptorIndirectCall()
5577 SDValue EnvVal = DAG.getCopyToReg(Chain, dl, EnvPtrReg, LoadEnvPtr, Glue); in prepareDescriptorIndirectCall()
5584 prepareIndirectCall(DAG, LoadFuncPtr, Glue, Chain, dl); in prepareDescriptorIndirectCall()
5589 PPCTargetLowering::CallFlags CFlags, const SDLoc &dl, in buildCallOperands() argument
5621 SDValue TOCOff = DAG.getIntPtrConstant(TOCSaveOffset, dl); in buildCallOperands()
5622 SDValue AddTOC = DAG.getNode(ISD::ADD, dl, RegVT, StackPtr, TOCOff); in buildCallOperands()
5639 Ops.push_back(DAG.getConstant(SPDiff, dl, MVT::i32)); in buildCallOperands()
5671 CallFlags CFlags, const SDLoc &dl, SelectionDAG &DAG, in FinishCall() argument
5686 Callee = transformCallee(Callee, DAG, dl, Subtarget); in FinishCall()
5689 dl, CFlags.HasNest, Subtarget); in FinishCall()
5691 prepareIndirectCall(DAG, Callee, Glue, Chain, dl); in FinishCall()
5695 buildCallOperands(Ops, CFlags, dl, DAG, RegsToPass, Glue, Chain, Callee, in FinishCall()
5715 SDValue Ret = DAG.getNode(CallOpc, dl, MVT::Other, Ops); in FinishCall()
5721 Chain = DAG.getNode(CallOpc, dl, ReturnTypes, Ops); in FinishCall()
5733 Chain = DAG.getCALLSEQ_END(Chain, NumBytes, BytesCalleePops, Glue, dl); in FinishCall()
5736 return LowerCallResult(Chain, Glue, CFlags.CallConv, CFlags.IsVarArg, Ins, dl, in FinishCall()
5783 SDLoc &dl = CLI.DL; in LowerCall() local
5846 return LowerCall_AIX(Chain, Callee, CFlags, Outs, OutVals, Ins, dl, DAG, in LowerCall()
5851 return LowerCall_64SVR4(Chain, Callee, CFlags, Outs, OutVals, Ins, dl, DAG, in LowerCall()
5853 return LowerCall_32SVR4(Chain, Callee, CFlags, Outs, OutVals, Ins, dl, DAG, in LowerCall()
5861 const SmallVectorImpl<ISD::InputArg> &Ins, const SDLoc &dl, in LowerCall_32SVR4() argument
5955 Chain = DAG.getCALLSEQ_START(Chain, NumBytes, 0, dl); in LowerCall_32SVR4()
5961 Chain = EmitTailCallLoadFPAndRetAddr(DAG, SPDiff, Chain, LROp, FPOp, dl); in LowerCall_32SVR4()
5996 SDValue PtrOff = DAG.getIntPtrConstant(LocMemOffset, dl); in LowerCall_32SVR4()
5997 PtrOff = DAG.getNode(ISD::ADD, dl, getPointerTy(MF.getDataLayout()), in LowerCall_32SVR4()
6005 Flags, DAG, dl); in LowerCall_32SVR4()
6026 dl, MVT::i32, Arg); in LowerCall_32SVR4()
6033 SDValue SVal = DAG.getNode(PPCISD::EXTRACT_SPE, dl, MVT::i32, Arg, in LowerCall_32SVR4()
6034 DAG.getIntPtrConstant(IsLE ? 0 : 1, dl)); in LowerCall_32SVR4()
6036 SVal = DAG.getNode(PPCISD::EXTRACT_SPE, dl, MVT::i32, Arg, in LowerCall_32SVR4()
6037 DAG.getIntPtrConstant(IsLE ? 1 : 0, dl)); in LowerCall_32SVR4()
6048 SDValue PtrOff = DAG.getIntPtrConstant(LocMemOffset, dl); in LowerCall_32SVR4()
6049 PtrOff = DAG.getNode(ISD::ADD, dl, getPointerTy(MF.getDataLayout()), in LowerCall_32SVR4()
6053 DAG.getStore(Chain, dl, Arg, PtrOff, MachinePointerInfo())); in LowerCall_32SVR4()
6063 Chain = DAG.getNode(ISD::TokenFactor, dl, MVT::Other, MemOpChains); in LowerCall_32SVR4()
6069 Chain = DAG.getCopyToReg(Chain, dl, RegsToPass[i].first, in LowerCall_32SVR4()
6080 Chain = DAG.getNode(seenFloatArg ? PPCISD::CR6SET : PPCISD::CR6UNSET, dl, in LowerCall_32SVR4()
6087 PrepareTailCall(DAG, InGlue, Chain, dl, SPDiff, NumBytes, LROp, FPOp, in LowerCall_32SVR4()
6090 return FinishCall(CFlags, dl, DAG, RegsToPass, InGlue, Chain, CallSeqStart, in LowerCall_32SVR4()
6098 SelectionDAG &DAG, const SDLoc &dl) const { in createMemcpyOutsideCallSeq()
6101 Flags, DAG, dl); in createMemcpyOutsideCallSeq()
6115 const SmallVectorImpl<ISD::InputArg> &Ins, const SDLoc &dl, in LowerCall_64SVR4() argument
6283 Chain = DAG.getCALLSEQ_START(Chain, NumBytes, 0, dl); in LowerCall_64SVR4()
6289 Chain = EmitTailCallLoadFPAndRetAddr(DAG, SPDiff, Chain, LROp, FPOp, dl); in LowerCall_64SVR4()
6325 PtrOff = DAG.getConstant(ArgOffset, dl, StackPtr.getValueType()); in LowerCall_64SVR4()
6327 PtrOff = DAG.getNode(ISD::ADD, dl, PtrVT, StackPtr, PtrOff); in LowerCall_64SVR4()
6342 Arg = DAG.getNode(ExtOp, dl, MVT::i64, Arg); in LowerCall_64SVR4()
6368 SDValue Load = DAG.getExtLoad(ISD::EXTLOAD, dl, PtrVT, Chain, Arg, in LowerCall_64SVR4()
6381 SDValue Const = DAG.getConstant(PtrByteSize - Size, dl, in LowerCall_64SVR4()
6383 AddPtr = DAG.getNode(ISD::ADD, dl, PtrVT, PtrOff, Const); in LowerCall_64SVR4()
6387 Flags, DAG, dl); in LowerCall_64SVR4()
6400 Flags, DAG, dl); in LowerCall_64SVR4()
6414 SDValue Const = DAG.getConstant(8 - Size, dl, PtrOff.getValueType()); in LowerCall_64SVR4()
6415 AddPtr = DAG.getNode(ISD::ADD, dl, PtrVT, PtrOff, Const); in LowerCall_64SVR4()
6419 Flags, DAG, dl); in LowerCall_64SVR4()
6423 DAG.getLoad(PtrVT, dl, Chain, PtrOff, MachinePointerInfo()); in LowerCall_64SVR4()
6435 SDValue Const = DAG.getConstant(j, dl, PtrOff.getValueType()); in LowerCall_64SVR4()
6436 SDValue AddArg = DAG.getNode(ISD::ADD, dl, PtrVT, Arg, Const); in LowerCall_64SVR4()
6440 SDValue Load = DAG.getExtLoad(ISD::EXTLOAD, dl, PtrVT, Chain, AddArg, in LowerCall_64SVR4()
6478 TailCallArguments, dl); in LowerCall_64SVR4()
6517 ArgVal = DAG.getNode(ISD::BITCAST, dl, MVT::i64, Arg); in LowerCall_64SVR4()
6521 ArgVal = DAG.getNode(ISD::BITCAST, dl, MVT::i32, Arg); in LowerCall_64SVR4()
6522 ArgVal = DAG.getNode(ISD::ANY_EXTEND, dl, MVT::i64, ArgVal); in LowerCall_64SVR4()
6528 Lo = DAG.getNode(ISD::BITCAST, dl, MVT::i32, OutVals[i - 1]); in LowerCall_64SVR4()
6529 Hi = DAG.getNode(ISD::BITCAST, dl, MVT::i32, Arg); in LowerCall_64SVR4()
6532 ArgVal = DAG.getNode(ISD::BUILD_PAIR, dl, MVT::i64, Lo, Hi); in LowerCall_64SVR4()
6536 ArgVal = DAG.getNode(ISD::BITCAST, dl, MVT::i32, Arg); in LowerCall_64SVR4()
6537 ArgVal = DAG.getNode(ISD::ANY_EXTEND, dl, MVT::i64, ArgVal); in LowerCall_64SVR4()
6539 ArgVal = DAG.getNode(ISD::SHL, dl, MVT::i64, ArgVal, in LowerCall_64SVR4()
6540 DAG.getConstant(32, dl, MVT::i32)); in LowerCall_64SVR4()
6557 SDValue ConstFour = DAG.getConstant(4, dl, PtrOff.getValueType()); in LowerCall_64SVR4()
6558 PtrOff = DAG.getNode(ISD::ADD, dl, PtrVT, PtrOff, ConstFour); in LowerCall_64SVR4()
6565 TailCallArguments, dl); in LowerCall_64SVR4()
6602 DAG.getStore(Chain, dl, Arg, PtrOff, MachinePointerInfo()); in LowerCall_64SVR4()
6606 DAG.getLoad(MVT::v4f32, dl, Store, PtrOff, MachinePointerInfo()); in LowerCall_64SVR4()
6614 SDValue Ix = DAG.getNode(ISD::ADD, dl, PtrVT, PtrOff, in LowerCall_64SVR4()
6615 DAG.getConstant(i, dl, PtrVT)); in LowerCall_64SVR4()
6617 DAG.getLoad(PtrVT, dl, Store, Ix, MachinePointerInfo()); in LowerCall_64SVR4()
6635 TailCallArguments, dl); in LowerCall_64SVR4()
6651 Chain = DAG.getNode(ISD::TokenFactor, dl, MVT::Other, MemOpChains); in LowerCall_64SVR4()
6663 SDValue Val = DAG.getCopyFromReg(Chain, dl, PPC::X2, MVT::i64); in LowerCall_64SVR4()
6666 SDValue PtrOff = DAG.getIntPtrConstant(TOCSaveOffset, dl); in LowerCall_64SVR4()
6667 SDValue AddPtr = DAG.getNode(ISD::ADD, dl, PtrVT, StackPtr, PtrOff); in LowerCall_64SVR4()
6668 Chain = DAG.getStore(Val.getValue(1), dl, Val, AddPtr, in LowerCall_64SVR4()
6683 Chain = DAG.getCopyToReg(Chain, dl, RegsToPass[i].first, in LowerCall_64SVR4()
6689 PrepareTailCall(DAG, InGlue, Chain, dl, SPDiff, NumBytes, LROp, FPOp, in LowerCall_64SVR4()
6692 return FinishCall(CFlags, dl, DAG, RegsToPass, InGlue, Chain, CallSeqStart, in LowerCall_64SVR4()
6987 MVT LocVT, const SDLoc &dl) { in truncateScalarIntegerArg() argument
6992 ArgValue = DAG.getNode(ISD::AssertSext, dl, LocVT, ArgValue, in truncateScalarIntegerArg()
6995 ArgValue = DAG.getNode(ISD::AssertZext, dl, LocVT, ArgValue, in truncateScalarIntegerArg()
6998 return DAG.getNode(ISD::TRUNCATE, dl, ValVT, ArgValue); in truncateScalarIntegerArg()
7061 const SmallVectorImpl<ISD::InputArg> &Ins, const SDLoc &dl, in LowerFormalArguments_AIX() argument
7124 DAG.getLoad(ValVT, dl, Chain, FIN, MachinePointerInfo()); in LowerFormalArguments_AIX()
7248 SDValue CopyFrom = DAG.getCopyFromReg(Chain, dl, VReg, LocVT); in LowerFormalArguments_AIX()
7255 CopyFrom.getValue(1), dl, CopyFrom, in LowerFormalArguments_AIX()
7256 DAG.getObjectPtrOffset(dl, FIN, TypeSize::getFixed(Offset)), in LowerFormalArguments_AIX()
7293 SDValue ArgValue = DAG.getCopyFromReg(Chain, dl, VReg, LocVT); in LowerFormalArguments_AIX()
7297 truncateScalarIntegerArg(Flags, ValVT, DAG, ArgValue, LocVT, dl); in LowerFormalArguments_AIX()
7345 SDValue Val = DAG.getCopyFromReg(Chain, dl, VReg, PtrVT); in LowerFormalArguments_AIX()
7347 DAG.getStore(Val.getValue(1), dl, Val, FIN, MachinePointerInfo()); in LowerFormalArguments_AIX()
7350 SDValue PtrOff = DAG.getConstant(PtrByteSize, dl, PtrVT); in LowerFormalArguments_AIX()
7351 FIN = DAG.getNode(ISD::ADD, dl, PtrOff.getValueType(), FIN, PtrOff); in LowerFormalArguments_AIX()
7356 Chain = DAG.getNode(ISD::TokenFactor, dl, MVT::Other, MemOps); in LowerFormalArguments_AIX()
7365 const SmallVectorImpl<ISD::InputArg> &Ins, const SDLoc &dl, in LowerCall_AIX() argument
7409 Chain = DAG.getCALLSEQ_START(Chain, NumBytes, 0, dl); in LowerCall_AIX()
7436 return DAG.getExtLoad(ISD::ZEXTLOAD, dl, PtrVT, Chain, in LowerCall_AIX()
7439 dl, Arg, TypeSize::getFixed(LoadOffset)) in LowerCall_AIX()
7472 dl, Arg, TypeSize::getFixed(LoadOffset)) in LowerCall_AIX()
7475 dl, StackPtr, TypeSize::getFixed(ByValVA.getLocMemOffset())), in LowerCall_AIX()
7476 CallSeqStart, MemcpyFlags, DAG, dl); in LowerCall_AIX()
7508 SDValue SHLAmt = DAG.getConstant(NumSHLBits, dl, ShiftAmountTy); in LowerCall_AIX()
7510 DAG.getNode(ISD::SHL, dl, Load.getValueType(), Load, SHLAmt); in LowerCall_AIX()
7511 ResidueVal = ResidueVal ? DAG.getNode(ISD::OR, dl, PtrVT, ResidueVal, in LowerCall_AIX()
7531 Arg = DAG.getNode(ISD::ZERO_EXTEND, dl, VA.getLocVT(), Arg); in LowerCall_AIX()
7534 Arg = DAG.getNode(ISD::SIGN_EXTEND, dl, VA.getLocVT(), Arg); in LowerCall_AIX()
7549 DAG.getConstant(VA.getLocMemOffset(), dl, StackPtr.getValueType()); in LowerCall_AIX()
7550 PtrOff = DAG.getNode(ISD::ADD, dl, PtrVT, StackPtr, PtrOff); in LowerCall_AIX()
7552 DAG.getStore(Chain, dl, Arg, PtrOff, MachinePointerInfo()); in LowerCall_AIX()
7564 SDValue Add = DAG.getNode(ISD::ADD, dl, PtrVT, PtrOff, in LowerCall_AIX()
7565 DAG.getConstant(LoadOffset, dl, PtrVT)); in LowerCall_AIX()
7566 SDValue Load = DAG.getLoad(PtrVT, dl, Store, Add, MachinePointerInfo()); in LowerCall_AIX()
7591 DAG.getConstant(VA.getLocMemOffset(), dl, StackPtr.getValueType()); in LowerCall_AIX()
7592 PtrOff = DAG.getNode(ISD::ADD, dl, PtrVT, StackPtr, PtrOff); in LowerCall_AIX()
7594 DAG.getStore(Chain, dl, Arg, PtrOff, MachinePointerInfo())); in LowerCall_AIX()
7620 VA.getLocReg(), DAG.getZExtOrTrunc(ArgAsInt, dl, LocVT))); in LowerCall_AIX()
7627 SDValue MSWAsI64 = DAG.getNode(ISD::SRL, dl, MVT::i64, ArgAsInt, in LowerCall_AIX()
7628 DAG.getConstant(32, dl, MVT::i8)); in LowerCall_AIX()
7630 GPR1.getLocReg(), DAG.getZExtOrTrunc(MSWAsI64, dl, MVT::i32))); in LowerCall_AIX()
7640 GPR2.getLocReg(), DAG.getZExtOrTrunc(ArgAsInt, dl, MVT::i32))); in LowerCall_AIX()
7647 Chain = DAG.getNode(ISD::TokenFactor, dl, MVT::Other, MemOpChains); in LowerCall_AIX()
7660 SDValue Val = DAG.getCopyFromReg(Chain, dl, TOCBaseReg, PtrVT); in LowerCall_AIX()
7661 SDValue PtrOff = DAG.getIntPtrConstant(TOCSaveOffset, dl); in LowerCall_AIX()
7663 SDValue AddPtr = DAG.getNode(ISD::ADD, dl, PtrVT, StackPtr, PtrOff); in LowerCall_AIX()
7665 Val.getValue(1), dl, Val, AddPtr, in LowerCall_AIX()
7673 Chain = DAG.getCopyToReg(Chain, dl, Reg.first, Reg.second, InGlue); in LowerCall_AIX()
7678 return FinishCall(CFlags, dl, DAG, RegsToPass, InGlue, Chain, CallSeqStart, in LowerCall_AIX()
7700 const SDLoc &dl, SelectionDAG &DAG) const { in LowerReturn() argument
7723 Arg = DAG.getNode(ISD::ANY_EXTEND, dl, VA.getLocVT(), Arg); in LowerReturn()
7726 Arg = DAG.getNode(ISD::ZERO_EXTEND, dl, VA.getLocVT(), Arg); in LowerReturn()
7729 Arg = DAG.getNode(ISD::SIGN_EXTEND, dl, VA.getLocVT(), Arg); in LowerReturn()
7736 DAG.getNode(PPCISD::EXTRACT_SPE, dl, MVT::i32, Arg, in LowerReturn()
7737 DAG.getIntPtrConstant(isLittleEndian ? 0 : 1, dl)); in LowerReturn()
7738 Chain = DAG.getCopyToReg(Chain, dl, VA.getLocReg(), SVal, Glue); in LowerReturn()
7740 SVal = DAG.getNode(PPCISD::EXTRACT_SPE, dl, MVT::i32, Arg, in LowerReturn()
7741 DAG.getIntPtrConstant(isLittleEndian ? 1 : 0, dl)); in LowerReturn()
7744 Chain = DAG.getCopyToReg(Chain, dl, VA.getLocReg(), SVal, Glue); in LowerReturn()
7746 Chain = DAG.getCopyToReg(Chain, dl, VA.getLocReg(), Arg, Glue); in LowerReturn()
7757 return DAG.getNode(PPCISD::RET_GLUE, dl, MVT::Other, RetOps); in LowerReturn()
7763 SDLoc dl(Op); in LowerGET_DYNAMIC_AREA_OFFSET() local
7774 return DAG.getNode(PPCISD::DYNAREAOFFSET, dl, VTs, Ops); in LowerGET_DYNAMIC_AREA_OFFSET()
7780 SDLoc dl(Op); in LowerSTACKRESTORE() local
7796 DAG.getLoad(PtrVT, dl, Chain, StackPtr, MachinePointerInfo()); in LowerSTACKRESTORE()
7799 Chain = DAG.getCopyToReg(LoadLinkSP.getValue(1), dl, SP, SaveSP); in LowerSTACKRESTORE()
7802 return DAG.getStore(Chain, dl, LoadLinkSP, StackPtr, MachinePointerInfo()); in LowerSTACKRESTORE()
7856 SDLoc dl(Op); in LowerDYNAMIC_STACKALLOC() local
7861 SDValue NegSize = DAG.getNode(ISD::SUB, dl, PtrVT, in LowerDYNAMIC_STACKALLOC()
7862 DAG.getConstant(0, dl, PtrVT), Size); in LowerDYNAMIC_STACKALLOC()
7868 return DAG.getNode(PPCISD::PROBED_ALLOCA, dl, VTs, Ops); in LowerDYNAMIC_STACKALLOC()
7869 return DAG.getNode(PPCISD::DYNALLOC, dl, VTs, Ops); in LowerDYNAMIC_STACKALLOC()
7907 SDLoc dl(Op); in LowerLOAD() local
7915 DAG.getExtLoad(ISD::EXTLOAD, dl, getPointerTy(DAG.getDataLayout()), Chain, in LowerLOAD()
7917 SDValue Result = DAG.getNode(ISD::TRUNCATE, dl, MVT::i1, NewLD); in LowerLOAD()
7920 return DAG.getMergeValues(Ops, dl); in LowerLOAD()
7932 SDLoc dl(Op); in LowerSTORE() local
7940 Value = DAG.getNode(ISD::ZERO_EXTEND, dl, getPointerTy(DAG.getDataLayout()), in LowerSTORE()
7942 return DAG.getTruncStore(Chain, dl, Value, BasePtr, MVT::i8, MMO); in LowerSTORE()
8043 SDLoc dl(Op); in LowerSELECT_CC() local
8050 dl, getSetCCResultType(DAG.getDataLayout(), *DAG.getContext(), CmpVT), in LowerSELECT_CC()
8052 SDValue Zero = DAG.getConstant(0, dl, Z.getValueType()); in LowerSELECT_CC()
8053 return DAG.getSelectCC(dl, Z, Zero, TV, FV, ISD::SETNE); in LowerSELECT_CC()
8071 return DAG.getNode(PPCISD::XSMAXC, dl, Op.getValueType(), LHS, RHS); in LowerSELECT_CC()
8074 return DAG.getNode(PPCISD::XSMINC, dl, Op.getValueType(), LHS, RHS); in LowerSELECT_CC()
8098 LHS = DAG.getNode(ISD::FP_EXTEND, dl, MVT::f64, LHS); in LowerSELECT_CC()
8099 Sel1 = DAG.getNode(PPCISD::FSEL, dl, ResVT, LHS, TV, FV); in LowerSELECT_CC()
8101 Sel1 = DAG.getNode(ISD::FP_EXTEND, dl, MVT::f64, Sel1); in LowerSELECT_CC()
8102 return DAG.getNode(PPCISD::FSEL, dl, ResVT, in LowerSELECT_CC()
8103 DAG.getNode(ISD::FNEG, dl, MVT::f64, LHS), Sel1, FV); in LowerSELECT_CC()
8111 LHS = DAG.getNode(ISD::FP_EXTEND, dl, MVT::f64, LHS); in LowerSELECT_CC()
8112 return DAG.getNode(PPCISD::FSEL, dl, ResVT, LHS, TV, FV); in LowerSELECT_CC()
8120 LHS = DAG.getNode(ISD::FP_EXTEND, dl, MVT::f64, LHS); in LowerSELECT_CC()
8121 return DAG.getNode(PPCISD::FSEL, dl, ResVT, in LowerSELECT_CC()
8122 DAG.getNode(ISD::FNEG, dl, MVT::f64, LHS), TV, FV); in LowerSELECT_CC()
8132 Cmp = DAG.getNode(ISD::FSUB, dl, CmpVT, LHS, RHS, Flags); in LowerSELECT_CC()
8134 Cmp = DAG.getNode(ISD::FP_EXTEND, dl, MVT::f64, Cmp); in LowerSELECT_CC()
8135 Sel1 = DAG.getNode(PPCISD::FSEL, dl, ResVT, Cmp, TV, FV); in LowerSELECT_CC()
8137 Sel1 = DAG.getNode(ISD::FP_EXTEND, dl, MVT::f64, Sel1); in LowerSELECT_CC()
8138 return DAG.getNode(PPCISD::FSEL, dl, ResVT, in LowerSELECT_CC()
8139 DAG.getNode(ISD::FNEG, dl, MVT::f64, Cmp), Sel1, FV); in LowerSELECT_CC()
8142 Cmp = DAG.getNode(ISD::FSUB, dl, CmpVT, LHS, RHS, Flags); in LowerSELECT_CC()
8144 Cmp = DAG.getNode(ISD::FP_EXTEND, dl, MVT::f64, Cmp); in LowerSELECT_CC()
8145 return DAG.getNode(PPCISD::FSEL, dl, ResVT, Cmp, FV, TV); in LowerSELECT_CC()
8148 Cmp = DAG.getNode(ISD::FSUB, dl, CmpVT, LHS, RHS, Flags); in LowerSELECT_CC()
8150 Cmp = DAG.getNode(ISD::FP_EXTEND, dl, MVT::f64, Cmp); in LowerSELECT_CC()
8151 return DAG.getNode(PPCISD::FSEL, dl, ResVT, Cmp, TV, FV); in LowerSELECT_CC()
8154 Cmp = DAG.getNode(ISD::FSUB, dl, CmpVT, RHS, LHS, Flags); in LowerSELECT_CC()
8156 Cmp = DAG.getNode(ISD::FP_EXTEND, dl, MVT::f64, Cmp); in LowerSELECT_CC()
8157 return DAG.getNode(PPCISD::FSEL, dl, ResVT, Cmp, FV, TV); in LowerSELECT_CC()
8160 Cmp = DAG.getNode(ISD::FSUB, dl, CmpVT, RHS, LHS, Flags); in LowerSELECT_CC()
8162 Cmp = DAG.getNode(ISD::FP_EXTEND, dl, MVT::f64, Cmp); in LowerSELECT_CC()
8163 return DAG.getNode(PPCISD::FSEL, dl, ResVT, Cmp, TV, FV); in LowerSELECT_CC()
8193 SDLoc dl(Op); in convertFPToInt() local
8213 DAG.getNode(ISD::STRICT_FP_EXTEND, dl, in convertFPToInt()
8217 Src = DAG.getNode(ISD::FP_EXTEND, dl, MVT::f64, Src); in convertFPToInt()
8237 Conv = DAG.getNode(Opc, dl, DAG.getVTList(ConvTy, MVT::Other), {Chain, Src}, in convertFPToInt()
8240 Conv = DAG.getNode(Opc, dl, ConvTy, Src); in convertFPToInt()
8247 const SDLoc &dl) const { in LowerFP_TO_INTForReuse()
8270 Chain = DAG.getMemIntrinsicNode(PPCISD::STFIWX, dl, in LowerFP_TO_INTForReuse()
8273 Chain = DAG.getStore(Chain, dl, Tmp, FIPtr, MPI, Alignment); in LowerFP_TO_INTForReuse()
8278 FIPtr = DAG.getNode(ISD::ADD, dl, FIPtr.getValueType(), FIPtr, in LowerFP_TO_INTForReuse()
8279 DAG.getConstant(4, dl, FIPtr.getValueType())); in LowerFP_TO_INTForReuse()
8294 const SDLoc &dl) const { in LowerFP_TO_INTDirectMove()
8296 SDValue Mov = DAG.getNode(PPCISD::MFVSR, dl, Op.getValueType(), Conv); in LowerFP_TO_INTDirectMove()
8298 return DAG.getMergeValues({Mov, Conv.getValue(1)}, dl); in LowerFP_TO_INTDirectMove()
8304 const SDLoc &dl) const { in LowerFP_TO_INT()
8328 std::tie(Lo, Hi) = DAG.SplitScalar(Src, dl, MVT::f64, MVT::f64); in LowerFP_TO_INT()
8333 SDValue Res = DAG.getNode(PPCISD::STRICT_FADDRTZ, dl, in LowerFP_TO_INT()
8336 return DAG.getNode(ISD::STRICT_FP_TO_SINT, dl, in LowerFP_TO_INT()
8340 SDValue Res = DAG.getNode(PPCISD::FADDRTZ, dl, MVT::f64, Lo, Hi); in LowerFP_TO_INT()
8341 return DAG.getNode(ISD::FP_TO_SINT, dl, MVT::i32, Res); in LowerFP_TO_INT()
8346 SDValue Cst = DAG.getConstantFP(APF, dl, SrcVT); in LowerFP_TO_INT()
8347 SDValue SignMask = DAG.getConstant(0x80000000, dl, DstVT); in LowerFP_TO_INT()
8358 SDValue Sel = DAG.getSetCC(dl, SetCCVT, Src, Cst, ISD::SETLT, in LowerFP_TO_INT()
8363 dl, SrcVT, Sel, DAG.getConstantFP(0.0, dl, SrcVT), Cst); in LowerFP_TO_INT()
8364 Sel = DAG.getBoolExtOrTrunc(Sel, dl, DstSetCCVT, DstVT); in LowerFP_TO_INT()
8366 SDValue Val = DAG.getNode(ISD::STRICT_FSUB, dl, in LowerFP_TO_INT()
8370 SDValue SInt = DAG.getNode(ISD::STRICT_FP_TO_SINT, dl, in LowerFP_TO_INT()
8375 dl, DstVT, Sel, DAG.getConstant(0, dl, DstVT), SignMask); in LowerFP_TO_INT()
8376 SDValue Result = DAG.getNode(ISD::XOR, dl, DstVT, SInt, IntOfs); in LowerFP_TO_INT()
8377 return DAG.getMergeValues({Result, Chain}, dl); in LowerFP_TO_INT()
8381 SDValue True = DAG.getNode(ISD::FSUB, dl, MVT::ppcf128, Src, Cst); in LowerFP_TO_INT()
8382 True = DAG.getNode(ISD::FP_TO_SINT, dl, MVT::i32, True); in LowerFP_TO_INT()
8383 True = DAG.getNode(ISD::ADD, dl, MVT::i32, True, SignMask); in LowerFP_TO_INT()
8384 SDValue False = DAG.getNode(ISD::FP_TO_SINT, dl, MVT::i32, Src); in LowerFP_TO_INT()
8385 return DAG.getSelectCC(dl, Src, Cst, True, False, ISD::SETGE); in LowerFP_TO_INT()
8394 return LowerFP_TO_INTDirectMove(Op, DAG, dl); in LowerFP_TO_INT()
8397 LowerFP_TO_INTForReuse(Op, RLI, DAG, dl); in LowerFP_TO_INT()
8399 return DAG.getLoad(Op.getValueType(), dl, RLI.Chain, RLI.Ptr, RLI.MPI, in LowerFP_TO_INT()
8419 SDLoc dl(Op); in canReuseLoadAddress() local
8427 LowerFP_TO_INTForReuse(Op, RLI, DAG, dl); in canReuseLoadAddress()
8449 RLI.Ptr = DAG.getNode(ISD::ADD, dl, RLI.Ptr.getValueType(), RLI.Ptr, in canReuseLoadAddress()
8475 SDLoc dl(NewResChain); in spliceIntoChain() local
8477 SDValue TF = DAG.getNode(ISD::TokenFactor, dl, MVT::Other, in spliceIntoChain()
8523 SDLoc dl(Op); in convertIntToFP() local
8538 return DAG.getNode(getPPCStrictOpcode(ConvOpc), dl, in convertIntToFP()
8541 return DAG.getNode(ConvOpc, dl, ConvTy, Src); in convertIntToFP()
8549 const SDLoc &dl) const { in LowerINT_TO_FPDirectMove()
8560 SDValue Mov = DAG.getNode(MovOpc, dl, MVT::f64, Src); in LowerINT_TO_FPDirectMove()
8564 static SDValue widenVec(SelectionDAG &DAG, SDValue Vec, const SDLoc &dl) { in widenVec() argument
8581 return DAG.getNode(ISD::CONCAT_VECTORS, dl, WideVT, Ops); in widenVec()
8585 const SDLoc &dl) const { in LowerINT_TO_FPVector()
8602 SDValue Wide = widenVec(DAG, Src, dl); in LowerINT_TO_FPVector()
8621 SignedConv ? DAG.getUNDEF(WideVT) : DAG.getConstant(0, dl, WideVT); in LowerINT_TO_FPVector()
8622 SDValue Arrange = DAG.getVectorShuffle(WideVT, dl, Wide, ShuffleSrc2, ShuffV); in LowerINT_TO_FPVector()
8632 Extend = DAG.getNode(ISD::SIGN_EXTEND_INREG, dl, IntermediateVT, Arrange, in LowerINT_TO_FPVector()
8635 Extend = DAG.getNode(ISD::BITCAST, dl, IntermediateVT, Arrange); in LowerINT_TO_FPVector()
8638 return DAG.getNode(Opc, dl, DAG.getVTList(Op.getValueType(), MVT::Other), in LowerINT_TO_FPVector()
8641 return DAG.getNode(Opc, dl, Op.getValueType(), Extend); in LowerINT_TO_FPVector()
8646 SDLoc dl(Op); in LowerINT_TO_FP() local
8661 return LowerINT_TO_FPVector(Op, DAG, dl); in LowerINT_TO_FP()
8672 SDValue Sel = DAG.getNode(ISD::SELECT, dl, Op.getValueType(), Src, in LowerINT_TO_FP()
8673 DAG.getConstantFP(1.0, dl, Op.getValueType()), in LowerINT_TO_FP()
8674 DAG.getConstantFP(0.0, dl, Op.getValueType())); in LowerINT_TO_FP()
8676 return DAG.getMergeValues({Sel, Chain}, dl); in LowerINT_TO_FP()
8685 return LowerINT_TO_FPDirectMove(Op, DAG, dl); in LowerINT_TO_FP()
8712 SDValue Round = DAG.getNode(ISD::AND, dl, MVT::i64, in LowerINT_TO_FP()
8713 SINT, DAG.getConstant(2047, dl, MVT::i64)); in LowerINT_TO_FP()
8714 Round = DAG.getNode(ISD::ADD, dl, MVT::i64, in LowerINT_TO_FP()
8715 Round, DAG.getConstant(2047, dl, MVT::i64)); in LowerINT_TO_FP()
8716 Round = DAG.getNode(ISD::OR, dl, MVT::i64, Round, SINT); in LowerINT_TO_FP()
8717 Round = DAG.getNode(ISD::AND, dl, MVT::i64, in LowerINT_TO_FP()
8718 Round, DAG.getConstant(-2048, dl, MVT::i64)); in LowerINT_TO_FP()
8728 SDValue Cond = DAG.getNode(ISD::SRA, dl, MVT::i64, in LowerINT_TO_FP()
8729 SINT, DAG.getConstant(53, dl, MVT::i32)); in LowerINT_TO_FP()
8730 Cond = DAG.getNode(ISD::ADD, dl, MVT::i64, in LowerINT_TO_FP()
8731 Cond, DAG.getConstant(1, dl, MVT::i64)); in LowerINT_TO_FP()
8733 dl, in LowerINT_TO_FP()
8735 Cond, DAG.getConstant(1, dl, MVT::i64), ISD::SETUGT); in LowerINT_TO_FP()
8737 SINT = DAG.getNode(ISD::SELECT, dl, MVT::i64, Cond, Round, SINT); in LowerINT_TO_FP()
8745 Bits = DAG.getLoad(MVT::f64, dl, RLI.Chain, RLI.Ptr, RLI.MPI, in LowerINT_TO_FP()
8754 Bits = DAG.getMemIntrinsicNode(PPCISD::LFIWAX, dl, in LowerINT_TO_FP()
8764 Bits = DAG.getMemIntrinsicNode(PPCISD::LFIWZX, dl, in LowerINT_TO_FP()
8779 SDValue Store = DAG.getStore(Chain, dl, SINT.getOperand(0), FIdx, in LowerINT_TO_FP()
8799 dl, DAG.getVTList(MVT::f64, MVT::Other), in LowerINT_TO_FP()
8803 Bits = DAG.getNode(ISD::BITCAST, dl, MVT::f64, SINT); in LowerINT_TO_FP()
8811 FP = DAG.getNode(ISD::STRICT_FP_ROUND, dl, in LowerINT_TO_FP()
8813 {Chain, FP, DAG.getIntPtrConstant(0, dl)}, Flags); in LowerINT_TO_FP()
8815 FP = DAG.getNode(ISD::FP_ROUND, dl, MVT::f32, FP, in LowerINT_TO_FP()
8816 DAG.getIntPtrConstant(0, dl, /*isTarget=*/true)); in LowerINT_TO_FP()
8839 SDValue Store = DAG.getStore(Chain, dl, Src, FIdx, in LowerINT_TO_FP()
8858 Ld = DAG.getMemIntrinsicNode(IsSigned ? PPCISD::LFIWAX : PPCISD::LFIWZX, dl, in LowerINT_TO_FP()
8871 SDValue Ext64 = DAG.getNode(ISD::SIGN_EXTEND, dl, MVT::i64, Src); in LowerINT_TO_FP()
8875 Chain, dl, Ext64, FIdx, in LowerINT_TO_FP()
8881 MVT::f64, dl, Chain, FIdx, in LowerINT_TO_FP()
8892 FP = DAG.getNode(ISD::STRICT_FP_ROUND, dl, in LowerINT_TO_FP()
8894 {Chain, FP, DAG.getIntPtrConstant(0, dl)}, Flags); in LowerINT_TO_FP()
8896 FP = DAG.getNode(ISD::FP_ROUND, dl, MVT::f32, FP, in LowerINT_TO_FP()
8897 DAG.getIntPtrConstant(0, dl, /*isTarget=*/true)); in LowerINT_TO_FP()
8904 SDLoc dl(Op); in LowerGET_ROUNDING() local
8930 SDValue MFFS = DAG.getNode(PPCISD::MFFS, dl, {MVT::f64, MVT::Other}, Chain); in LowerGET_ROUNDING()
8935 CWD = DAG.getNode(ISD::TRUNCATE, dl, MVT::i32, in LowerGET_ROUNDING()
8936 DAG.getNode(ISD::BITCAST, dl, MVT::i64, MFFS)); in LowerGET_ROUNDING()
8941 Chain = DAG.getStore(Chain, dl, MFFS, StackSlot, MachinePointerInfo()); in LowerGET_ROUNDING()
8946 SDValue Four = DAG.getConstant(4, dl, PtrVT); in LowerGET_ROUNDING()
8947 SDValue Addr = DAG.getNode(ISD::ADD, dl, PtrVT, StackSlot, Four); in LowerGET_ROUNDING()
8948 CWD = DAG.getLoad(MVT::i32, dl, Chain, Addr, MachinePointerInfo()); in LowerGET_ROUNDING()
8954 DAG.getNode(ISD::AND, dl, MVT::i32, in LowerGET_ROUNDING()
8955 CWD, DAG.getConstant(3, dl, MVT::i32)); in LowerGET_ROUNDING()
8957 DAG.getNode(ISD::SRL, dl, MVT::i32, in LowerGET_ROUNDING()
8958 DAG.getNode(ISD::AND, dl, MVT::i32, in LowerGET_ROUNDING()
8959 DAG.getNode(ISD::XOR, dl, MVT::i32, in LowerGET_ROUNDING()
8960 CWD, DAG.getConstant(3, dl, MVT::i32)), in LowerGET_ROUNDING()
8961 DAG.getConstant(3, dl, MVT::i32)), in LowerGET_ROUNDING()
8962 DAG.getConstant(1, dl, MVT::i32)); in LowerGET_ROUNDING()
8965 DAG.getNode(ISD::XOR, dl, MVT::i32, CWD1, CWD2); in LowerGET_ROUNDING()
8969 dl, VT, RetVal); in LowerGET_ROUNDING()
8971 return DAG.getMergeValues({RetVal, Chain}, dl); in LowerGET_ROUNDING()
8977 SDLoc dl(Op); in LowerSHL_PARTS() local
8989 SDValue Tmp1 = DAG.getNode(ISD::SUB, dl, AmtVT, in LowerSHL_PARTS()
8990 DAG.getConstant(BitWidth, dl, AmtVT), Amt); in LowerSHL_PARTS()
8991 SDValue Tmp2 = DAG.getNode(PPCISD::SHL, dl, VT, Hi, Amt); in LowerSHL_PARTS()
8992 SDValue Tmp3 = DAG.getNode(PPCISD::SRL, dl, VT, Lo, Tmp1); in LowerSHL_PARTS()
8993 SDValue Tmp4 = DAG.getNode(ISD::OR , dl, VT, Tmp2, Tmp3); in LowerSHL_PARTS()
8994 SDValue Tmp5 = DAG.getNode(ISD::ADD, dl, AmtVT, Amt, in LowerSHL_PARTS()
8995 DAG.getConstant(-BitWidth, dl, AmtVT)); in LowerSHL_PARTS()
8996 SDValue Tmp6 = DAG.getNode(PPCISD::SHL, dl, VT, Lo, Tmp5); in LowerSHL_PARTS()
8997 SDValue OutHi = DAG.getNode(ISD::OR, dl, VT, Tmp4, Tmp6); in LowerSHL_PARTS()
8998 SDValue OutLo = DAG.getNode(PPCISD::SHL, dl, VT, Lo, Amt); in LowerSHL_PARTS()
9000 return DAG.getMergeValues(OutOps, dl); in LowerSHL_PARTS()
9005 SDLoc dl(Op); in LowerSRL_PARTS() local
9018 SDValue Tmp1 = DAG.getNode(ISD::SUB, dl, AmtVT, in LowerSRL_PARTS()
9019 DAG.getConstant(BitWidth, dl, AmtVT), Amt); in LowerSRL_PARTS()
9020 SDValue Tmp2 = DAG.getNode(PPCISD::SRL, dl, VT, Lo, Amt); in LowerSRL_PARTS()
9021 SDValue Tmp3 = DAG.getNode(PPCISD::SHL, dl, VT, Hi, Tmp1); in LowerSRL_PARTS()
9022 SDValue Tmp4 = DAG.getNode(ISD::OR, dl, VT, Tmp2, Tmp3); in LowerSRL_PARTS()
9023 SDValue Tmp5 = DAG.getNode(ISD::ADD, dl, AmtVT, Amt, in LowerSRL_PARTS()
9024 DAG.getConstant(-BitWidth, dl, AmtVT)); in LowerSRL_PARTS()
9025 SDValue Tmp6 = DAG.getNode(PPCISD::SRL, dl, VT, Hi, Tmp5); in LowerSRL_PARTS()
9026 SDValue OutLo = DAG.getNode(ISD::OR, dl, VT, Tmp4, Tmp6); in LowerSRL_PARTS()
9027 SDValue OutHi = DAG.getNode(PPCISD::SRL, dl, VT, Hi, Amt); in LowerSRL_PARTS()
9029 return DAG.getMergeValues(OutOps, dl); in LowerSRL_PARTS()
9033 SDLoc dl(Op); in LowerSRA_PARTS() local
9046 SDValue Tmp1 = DAG.getNode(ISD::SUB, dl, AmtVT, in LowerSRA_PARTS()
9047 DAG.getConstant(BitWidth, dl, AmtVT), Amt); in LowerSRA_PARTS()
9048 SDValue Tmp2 = DAG.getNode(PPCISD::SRL, dl, VT, Lo, Amt); in LowerSRA_PARTS()
9049 SDValue Tmp3 = DAG.getNode(PPCISD::SHL, dl, VT, Hi, Tmp1); in LowerSRA_PARTS()
9050 SDValue Tmp4 = DAG.getNode(ISD::OR, dl, VT, Tmp2, Tmp3); in LowerSRA_PARTS()
9051 SDValue Tmp5 = DAG.getNode(ISD::ADD, dl, AmtVT, Amt, in LowerSRA_PARTS()
9052 DAG.getConstant(-BitWidth, dl, AmtVT)); in LowerSRA_PARTS()
9053 SDValue Tmp6 = DAG.getNode(PPCISD::SRA, dl, VT, Hi, Tmp5); in LowerSRA_PARTS()
9054 SDValue OutHi = DAG.getNode(PPCISD::SRA, dl, VT, Hi, Amt); in LowerSRA_PARTS()
9055 SDValue OutLo = DAG.getSelectCC(dl, Tmp5, DAG.getConstant(0, dl, AmtVT), in LowerSRA_PARTS()
9058 return DAG.getMergeValues(OutOps, dl); in LowerSRA_PARTS()
9063 SDLoc dl(Op); in LowerFunnelShift() local
9077 Z = DAG.getNode(ISD::AND, dl, AmtVT, Z, in LowerFunnelShift()
9078 DAG.getConstant(BitWidth - 1, dl, AmtVT)); in LowerFunnelShift()
9080 DAG.getNode(ISD::SUB, dl, AmtVT, DAG.getConstant(BitWidth, dl, AmtVT), Z); in LowerFunnelShift()
9081 X = DAG.getNode(PPCISD::SHL, dl, VT, X, IsFSHL ? Z : SubZ); in LowerFunnelShift()
9082 Y = DAG.getNode(PPCISD::SRL, dl, VT, Y, IsFSHL ? SubZ : Z); in LowerFunnelShift()
9083 return DAG.getNode(ISD::OR, dl, VT, X, Y); in LowerFunnelShift()
9093 SelectionDAG &DAG, const SDLoc &dl) { in getCanonicalConstSplat() argument
9109 return DAG.getBitcast(ReqVT, DAG.getConstant(Val, dl, CanonicalVT)); in getCanonicalConstSplat()
9115 const SDLoc &dl, EVT DestVT = MVT::Other) { in BuildIntrinsicOp() argument
9117 return DAG.getNode(ISD::INTRINSIC_WO_CHAIN, dl, DestVT, in BuildIntrinsicOp()
9118 DAG.getConstant(IID, dl, MVT::i32), Op); in BuildIntrinsicOp()
9124 SelectionDAG &DAG, const SDLoc &dl, in BuildIntrinsicOp() argument
9127 return DAG.getNode(ISD::INTRINSIC_WO_CHAIN, dl, DestVT, in BuildIntrinsicOp()
9128 DAG.getConstant(IID, dl, MVT::i32), LHS, RHS); in BuildIntrinsicOp()
9134 SDValue Op2, SelectionDAG &DAG, const SDLoc &dl, in BuildIntrinsicOp() argument
9137 return DAG.getNode(ISD::INTRINSIC_WO_CHAIN, dl, DestVT, in BuildIntrinsicOp()
9138 DAG.getConstant(IID, dl, MVT::i32), Op0, Op1, Op2); in BuildIntrinsicOp()
9144 SelectionDAG &DAG, const SDLoc &dl) { in BuildVSLDOI() argument
9146 LHS = DAG.getNode(ISD::BITCAST, dl, MVT::v16i8, LHS); in BuildVSLDOI()
9147 RHS = DAG.getNode(ISD::BITCAST, dl, MVT::v16i8, RHS); in BuildVSLDOI()
9152 SDValue T = DAG.getVectorShuffle(MVT::v16i8, dl, LHS, RHS, Ops); in BuildVSLDOI()
9153 return DAG.getNode(ISD::BITCAST, dl, VT, T); in BuildVSLDOI()
9212 SDLoc dl(Op); in LowerBITCAST() local
9221 return DAG.getNode(PPCISD::BUILD_FP128, dl, MVT::f128, Op0.getOperand(0), in LowerBITCAST()
9323 SDLoc dl(Op); in LowerBUILD_VECTOR() local
9346 PPCISD::XXSPLTI_SP_TO_DP, dl, MVT::v2f64, in LowerBUILD_VECTOR()
9347 DAG.getTargetConstant(APSplatBits.getZExtValue(), dl, MVT::i32)); in LowerBUILD_VECTOR()
9360 SplatNode = DAG.getTargetConstant(0, dl, MVT::v2i64); in LowerBUILD_VECTOR()
9364 PPCISD::XXSPLTI32DX, dl, MVT::v2i64, SplatNode, in LowerBUILD_VECTOR()
9365 DAG.getTargetConstant(0, dl, MVT::i32), in LowerBUILD_VECTOR()
9366 DAG.getTargetConstant(Hi, dl, MVT::i32)); in LowerBUILD_VECTOR()
9370 DAG.getNode(PPCISD::XXSPLTI32DX, dl, MVT::v2i64, SplatNode, in LowerBUILD_VECTOR()
9371 DAG.getTargetConstant(1, dl, MVT::i32), in LowerBUILD_VECTOR()
9372 DAG.getTargetConstant(Lo, dl, MVT::i32)); in LowerBUILD_VECTOR()
9444 NewOpcode, dl, DAG.getVTList(Op.getValueType(), MVT::Other), Ops, in LowerBUILD_VECTOR()
9474 SDValue Z = DAG.getConstant(0, dl, MVT::v4i32); in LowerBUILD_VECTOR()
9475 Op = DAG.getNode(ISD::BITCAST, dl, Op.getValueType(), Z); in LowerBUILD_VECTOR()
9487 Op.getValueType(), DAG, dl); in LowerBUILD_VECTOR()
9491 dl); in LowerBUILD_VECTOR()
9496 dl); in LowerBUILD_VECTOR()
9503 dl); in LowerBUILD_VECTOR()
9518 SDValue Elt = DAG.getConstant(SextVal, dl, MVT::i32); in LowerBUILD_VECTOR()
9521 SDValue EltSize = DAG.getConstant(SplatSize, dl, MVT::i32); in LowerBUILD_VECTOR()
9522 SDValue RetVal = DAG.getNode(PPCISD::VADD_SPLAT, dl, VT, Elt, EltSize); in LowerBUILD_VECTOR()
9526 return DAG.getNode(ISD::BITCAST, dl, Op.getValueType(), RetVal); in LowerBUILD_VECTOR()
9534 SDValue OnesV = getCanonicalConstSplat(-1, 4, MVT::v4i32, DAG, dl); in LowerBUILD_VECTOR()
9538 OnesV, DAG, dl); in LowerBUILD_VECTOR()
9541 Res = DAG.getNode(ISD::XOR, dl, MVT::v4i32, Res, OnesV); in LowerBUILD_VECTOR()
9542 return DAG.getNode(ISD::BITCAST, dl, Op.getValueType(), Res); in LowerBUILD_VECTOR()
9562 SDValue Res = getCanonicalConstSplat(i, SplatSize, MVT::Other, DAG, dl); in LowerBUILD_VECTOR()
9567 Res = BuildIntrinsicOp(IIDs[SplatSize-1], Res, Res, DAG, dl); in LowerBUILD_VECTOR()
9568 return DAG.getNode(ISD::BITCAST, dl, Op.getValueType(), Res); in LowerBUILD_VECTOR()
9573 SDValue Res = getCanonicalConstSplat(i, SplatSize, MVT::Other, DAG, dl); in LowerBUILD_VECTOR()
9578 Res = BuildIntrinsicOp(IIDs[SplatSize-1], Res, Res, DAG, dl); in LowerBUILD_VECTOR()
9579 return DAG.getNode(ISD::BITCAST, dl, Op.getValueType(), Res); in LowerBUILD_VECTOR()
9585 SDValue Res = getCanonicalConstSplat(i, SplatSize, MVT::Other, DAG, dl); in LowerBUILD_VECTOR()
9590 Res = BuildIntrinsicOp(IIDs[SplatSize-1], Res, Res, DAG, dl); in LowerBUILD_VECTOR()
9591 return DAG.getNode(ISD::BITCAST, dl, Op.getValueType(), Res); in LowerBUILD_VECTOR()
9596 SDValue T = getCanonicalConstSplat(i, SplatSize, MVT::v16i8, DAG, dl); in LowerBUILD_VECTOR()
9598 return BuildVSLDOI(T, T, Amt, Op.getValueType(), DAG, dl); in LowerBUILD_VECTOR()
9602 SDValue T = getCanonicalConstSplat(i, SplatSize, MVT::v16i8, DAG, dl); in LowerBUILD_VECTOR()
9604 return BuildVSLDOI(T, T, Amt, Op.getValueType(), DAG, dl); in LowerBUILD_VECTOR()
9608 SDValue T = getCanonicalConstSplat(i, SplatSize, MVT::v16i8, DAG, dl); in LowerBUILD_VECTOR()
9610 return BuildVSLDOI(T, T, Amt, Op.getValueType(), DAG, dl); in LowerBUILD_VECTOR()
9621 const SDLoc &dl) { in GeneratePerfectShuffle() argument
9646 OpLHS = GeneratePerfectShuffle(PerfectShuffleTable[LHSID], LHS, RHS, DAG, dl); in GeneratePerfectShuffle()
9647 OpRHS = GeneratePerfectShuffle(PerfectShuffleTable[RHSID], LHS, RHS, DAG, dl); in GeneratePerfectShuffle()
9681 return BuildVSLDOI(OpLHS, OpRHS, 4, OpLHS.getValueType(), DAG, dl); in GeneratePerfectShuffle()
9683 return BuildVSLDOI(OpLHS, OpRHS, 8, OpLHS.getValueType(), DAG, dl); in GeneratePerfectShuffle()
9685 return BuildVSLDOI(OpLHS, OpRHS, 12, OpLHS.getValueType(), DAG, dl); in GeneratePerfectShuffle()
9688 OpLHS = DAG.getNode(ISD::BITCAST, dl, MVT::v16i8, OpLHS); in GeneratePerfectShuffle()
9689 OpRHS = DAG.getNode(ISD::BITCAST, dl, MVT::v16i8, OpRHS); in GeneratePerfectShuffle()
9690 SDValue T = DAG.getVectorShuffle(MVT::v16i8, dl, OpLHS, OpRHS, ShufIdxs); in GeneratePerfectShuffle()
9691 return DAG.getNode(ISD::BITCAST, dl, VT, T); in GeneratePerfectShuffle()
9701 SDLoc dl(N); in lowerToVINSERTB() local
9786 SDValue Shl = DAG.getNode(PPCISD::VECSHL, dl, MVT::v16i8, V2, V2, in lowerToVINSERTB()
9787 DAG.getConstant(ShiftElts, dl, MVT::i32)); in lowerToVINSERTB()
9788 return DAG.getNode(PPCISD::VECINSERT, dl, MVT::v16i8, V1, Shl, in lowerToVINSERTB()
9789 DAG.getConstant(InsertAtByte, dl, MVT::i32)); in lowerToVINSERTB()
9791 return DAG.getNode(PPCISD::VECINSERT, dl, MVT::v16i8, V1, V2, in lowerToVINSERTB()
9792 DAG.getConstant(InsertAtByte, dl, MVT::i32)); in lowerToVINSERTB()
9807 SDLoc dl(N); in lowerToVINSERTH() local
9891 SDValue Conv1 = DAG.getNode(ISD::BITCAST, dl, MVT::v8i16, V1); in lowerToVINSERTH()
9894 SDValue Shl = DAG.getNode(PPCISD::VECSHL, dl, MVT::v16i8, V2, V2, in lowerToVINSERTH()
9895 DAG.getConstant(2 * ShiftElts, dl, MVT::i32)); in lowerToVINSERTH()
9896 SDValue Conv2 = DAG.getNode(ISD::BITCAST, dl, MVT::v8i16, Shl); in lowerToVINSERTH()
9897 SDValue Ins = DAG.getNode(PPCISD::VECINSERT, dl, MVT::v8i16, Conv1, Conv2, in lowerToVINSERTH()
9898 DAG.getConstant(InsertAtByte, dl, MVT::i32)); in lowerToVINSERTH()
9899 return DAG.getNode(ISD::BITCAST, dl, MVT::v16i8, Ins); in lowerToVINSERTH()
9901 SDValue Conv2 = DAG.getNode(ISD::BITCAST, dl, MVT::v8i16, V2); in lowerToVINSERTH()
9902 SDValue Ins = DAG.getNode(PPCISD::VECINSERT, dl, MVT::v8i16, Conv1, Conv2, in lowerToVINSERTH()
9903 DAG.getConstant(InsertAtByte, dl, MVT::i32)); in lowerToVINSERTH()
9904 return DAG.getNode(ISD::BITCAST, dl, MVT::v16i8, Ins); in lowerToVINSERTH()
9989 SDLoc dl(Op); in LowerROTL() local
9998 DAG.getVectorShuffle(MVT::v16i8, dl, DAG.getBitcast(MVT::v16i8, N0), in LowerROTL()
10000 return DAG.getNode(ISD::BITCAST, dl, MVT::v1i128, Shuffle); in LowerROTL()
10003 SDValue SHLOp = DAG.getNode(ISD::SHL, dl, MVT::i128, ArgVal, in LowerROTL()
10004 DAG.getConstant(SHLAmt, dl, MVT::i32)); in LowerROTL()
10005 SDValue SRLOp = DAG.getNode(ISD::SRL, dl, MVT::i128, ArgVal, in LowerROTL()
10006 DAG.getConstant(128 - SHLAmt, dl, MVT::i32)); in LowerROTL()
10007 SDValue OROp = DAG.getNode(ISD::OR, dl, MVT::i128, SHLOp, SRLOp); in LowerROTL()
10008 return DAG.getNode(ISD::BITCAST, dl, MVT::v1i128, OROp); in LowerROTL()
10017 SDLoc dl(Op); in LowerVECTOR_SHUFFLE() local
10078 BasePtr = DAG.getNode(ISD::ADD, dl, getPointerTy(DAG.getDataLayout()), in LowerVECTOR_SHUFFLE()
10079 BasePtr, DAG.getIntPtrConstant(Offset, dl)); in LowerVECTOR_SHUFFLE()
10088 DAG.getMemIntrinsicNode(PPCISD::LD_SPLAT, dl, VTL, in LowerVECTOR_SHUFFLE()
10106 SDValue Conv1 = DAG.getNode(ISD::BITCAST, dl, MVT::v4i32, V1); in LowerVECTOR_SHUFFLE()
10107 SDValue Conv2 = DAG.getNode(ISD::BITCAST, dl, MVT::v4i32, V2); in LowerVECTOR_SHUFFLE()
10109 SDValue Shl = DAG.getNode(PPCISD::VECSHL, dl, MVT::v4i32, Conv2, Conv2, in LowerVECTOR_SHUFFLE()
10110 DAG.getConstant(ShiftElts, dl, MVT::i32)); in LowerVECTOR_SHUFFLE()
10111 SDValue Ins = DAG.getNode(PPCISD::VECINSERT, dl, MVT::v4i32, Conv1, Shl, in LowerVECTOR_SHUFFLE()
10112 DAG.getConstant(InsertAtByte, dl, MVT::i32)); in LowerVECTOR_SHUFFLE()
10113 return DAG.getNode(ISD::BITCAST, dl, MVT::v16i8, Ins); in LowerVECTOR_SHUFFLE()
10115 SDValue Ins = DAG.getNode(PPCISD::VECINSERT, dl, MVT::v4i32, Conv1, Conv2, in LowerVECTOR_SHUFFLE()
10116 DAG.getConstant(InsertAtByte, dl, MVT::i32)); in LowerVECTOR_SHUFFLE()
10117 return DAG.getNode(ISD::BITCAST, dl, MVT::v16i8, Ins); in LowerVECTOR_SHUFFLE()
10139 SDValue Conv1 = DAG.getNode(ISD::BITCAST, dl, MVT::v4i32, V1); in LowerVECTOR_SHUFFLE()
10141 DAG.getNode(ISD::BITCAST, dl, MVT::v4i32, V2.isUndef() ? V1 : V2); in LowerVECTOR_SHUFFLE()
10143 SDValue Shl = DAG.getNode(PPCISD::VECSHL, dl, MVT::v4i32, Conv1, Conv2, in LowerVECTOR_SHUFFLE()
10144 DAG.getConstant(ShiftElts, dl, MVT::i32)); in LowerVECTOR_SHUFFLE()
10145 return DAG.getNode(ISD::BITCAST, dl, MVT::v16i8, Shl); in LowerVECTOR_SHUFFLE()
10152 SDValue Conv1 = DAG.getNode(ISD::BITCAST, dl, MVT::v2i64, V1); in LowerVECTOR_SHUFFLE()
10154 DAG.getNode(ISD::BITCAST, dl, MVT::v2i64, V2.isUndef() ? V1 : V2); in LowerVECTOR_SHUFFLE()
10156 SDValue PermDI = DAG.getNode(PPCISD::XXPERMDI, dl, MVT::v2i64, Conv1, Conv2, in LowerVECTOR_SHUFFLE()
10157 DAG.getConstant(ShiftElts, dl, MVT::i32)); in LowerVECTOR_SHUFFLE()
10158 return DAG.getNode(ISD::BITCAST, dl, MVT::v16i8, PermDI); in LowerVECTOR_SHUFFLE()
10163 SDValue Conv = DAG.getNode(ISD::BITCAST, dl, MVT::v8i16, V1); in LowerVECTOR_SHUFFLE()
10164 SDValue ReveHWord = DAG.getNode(ISD::BSWAP, dl, MVT::v8i16, Conv); in LowerVECTOR_SHUFFLE()
10165 return DAG.getNode(ISD::BITCAST, dl, MVT::v16i8, ReveHWord); in LowerVECTOR_SHUFFLE()
10167 SDValue Conv = DAG.getNode(ISD::BITCAST, dl, MVT::v4i32, V1); in LowerVECTOR_SHUFFLE()
10168 SDValue ReveWord = DAG.getNode(ISD::BSWAP, dl, MVT::v4i32, Conv); in LowerVECTOR_SHUFFLE()
10169 return DAG.getNode(ISD::BITCAST, dl, MVT::v16i8, ReveWord); in LowerVECTOR_SHUFFLE()
10171 SDValue Conv = DAG.getNode(ISD::BITCAST, dl, MVT::v2i64, V1); in LowerVECTOR_SHUFFLE()
10172 SDValue ReveDWord = DAG.getNode(ISD::BSWAP, dl, MVT::v2i64, Conv); in LowerVECTOR_SHUFFLE()
10173 return DAG.getNode(ISD::BITCAST, dl, MVT::v16i8, ReveDWord); in LowerVECTOR_SHUFFLE()
10175 SDValue Conv = DAG.getNode(ISD::BITCAST, dl, MVT::v1i128, V1); in LowerVECTOR_SHUFFLE()
10176 SDValue ReveQWord = DAG.getNode(ISD::BSWAP, dl, MVT::v1i128, Conv); in LowerVECTOR_SHUFFLE()
10177 return DAG.getNode(ISD::BITCAST, dl, MVT::v16i8, ReveQWord); in LowerVECTOR_SHUFFLE()
10185 SDValue Conv = DAG.getNode(ISD::BITCAST, dl, MVT::v4i32, V1); in LowerVECTOR_SHUFFLE()
10186 SDValue Splat = DAG.getNode(PPCISD::XXSPLT, dl, MVT::v4i32, Conv, in LowerVECTOR_SHUFFLE()
10187 DAG.getConstant(SplatIdx, dl, MVT::i32)); in LowerVECTOR_SHUFFLE()
10188 return DAG.getNode(ISD::BITCAST, dl, MVT::v16i8, Splat); in LowerVECTOR_SHUFFLE()
10193 SDValue Conv = DAG.getNode(ISD::BITCAST, dl, MVT::v2f64, V1); in LowerVECTOR_SHUFFLE()
10194 SDValue Swap = DAG.getNode(PPCISD::SWAP_NO_CHAIN, dl, MVT::v2f64, Conv); in LowerVECTOR_SHUFFLE()
10195 return DAG.getNode(ISD::BITCAST, dl, MVT::v16i8, Swap); in LowerVECTOR_SHUFFLE()
10297 return GeneratePerfectShuffle(PFEntry, V1, V2, DAG, dl); in LowerVECTOR_SHUFFLE()
10313 SDLoc dl(Op); in LowerVPERM() local
10388 DAG.getConstant(31 - (SrcElt * BytesPerElement + j), dl, MVT::i32)); in LowerVPERM()
10391 DAG.getConstant(SrcElt * BytesPerElement + j, dl, MVT::i32)); in LowerVPERM()
10395 dl = SDLoc(V1->getOperand(0)); in LowerVPERM()
10399 dl = SDLoc(V2->getOperand(0)); in LowerVPERM()
10411 SDValue VPermMask = DAG.getBuildVector(MVT::v16i8, dl, ResultMask); in LowerVPERM()
10433 DAG.getNode(Opcode, dl, V1.getValueType(), V1, V2, VPermMask); in LowerVPERM()
10731 SDLoc dl(Op); in LowerINTRINSIC_WO_CHAIN() local
10743 SDValue WideVec = SDValue(DAG.getMachineNode(PPC::DMXXEXTFDMR512, dl, in LowerINTRINSIC_WO_CHAIN()
10753 PPCISD::EXTRACT_VSX_REG, dl, MVT::v16i8, in LowerINTRINSIC_WO_CHAIN()
10756 dl, getPointerTy(DAG.getDataLayout()))); in LowerINTRINSIC_WO_CHAIN()
10759 PPCISD::EXTRACT_VSX_REG, dl, MVT::v16i8, in LowerINTRINSIC_WO_CHAIN()
10762 dl, getPointerTy(DAG.getDataLayout()))); in LowerINTRINSIC_WO_CHAIN()
10765 PPCISD::EXTRACT_VSX_REG, dl, MVT::v16i8, in LowerINTRINSIC_WO_CHAIN()
10768 dl, getPointerTy(DAG.getDataLayout()))); in LowerINTRINSIC_WO_CHAIN()
10771 PPCISD::EXTRACT_VSX_REG, dl, MVT::v16i8, in LowerINTRINSIC_WO_CHAIN()
10774 dl, getPointerTy(DAG.getDataLayout()))); in LowerINTRINSIC_WO_CHAIN()
10776 return DAG.getMergeValues(RetOps, dl); in LowerINTRINSIC_WO_CHAIN()
10785 WideVec = DAG.getNode(PPCISD::XXMFACC, dl, MVT::v512i1, WideVec); in LowerINTRINSIC_WO_CHAIN()
10790 PPCISD::EXTRACT_VSX_REG, dl, MVT::v16i8, WideVec, in LowerINTRINSIC_WO_CHAIN()
10793 dl, getPointerTy(DAG.getDataLayout()))); in LowerINTRINSIC_WO_CHAIN()
10796 return DAG.getMergeValues(RetOps, dl); in LowerINTRINSIC_WO_CHAIN()
10817 return DAG.getNode(ISD::EXTRACT_ELEMENT, dl, MVT::f64, Op.getOperand(1), in LowerINTRINSIC_WO_CHAIN()
10818 DAG.getConstant(!!(Idx->getSExtValue()), dl, in LowerINTRINSIC_WO_CHAIN()
10843 PPC::SELECT_CC_I4, dl, MVT::i32, in LowerINTRINSIC_WO_CHAIN()
10844 {SDValue(DAG.getMachineNode(PPC::XSCMPEXPDP, dl, MVT::i32, in LowerINTRINSIC_WO_CHAIN()
10847 DAG.getConstant(1, dl, MVT::i32), DAG.getConstant(0, dl, MVT::i32), in LowerINTRINSIC_WO_CHAIN()
10848 DAG.getTargetConstant(Pred, dl, MVT::i32)}), in LowerINTRINSIC_WO_CHAIN()
10858 PPC::SELECT_CC_I4, dl, MVT::i32, in LowerINTRINSIC_WO_CHAIN()
10859 {SDValue(DAG.getMachineNode(CmprOpc, dl, MVT::i32, Op.getOperand(2), in LowerINTRINSIC_WO_CHAIN()
10862 DAG.getConstant(1, dl, MVT::i32), DAG.getConstant(0, dl, MVT::i32), in LowerINTRINSIC_WO_CHAIN()
10863 DAG.getTargetConstant(PPC::PRED_EQ, dl, MVT::i32)}), in LowerINTRINSIC_WO_CHAIN()
10870 ISD::FNEG, dl, VT, in LowerINTRINSIC_WO_CHAIN()
10871 DAG.getNode(ISD::FMA, dl, VT, Op.getOperand(1), Op.getOperand(2), in LowerINTRINSIC_WO_CHAIN()
10872 DAG.getNode(ISD::FNEG, dl, VT, Op.getOperand(3)))); in LowerINTRINSIC_WO_CHAIN()
10873 return DAG.getNode(PPCISD::FNMSUB, dl, VT, Op.getOperand(1), in LowerINTRINSIC_WO_CHAIN()
10884 dl, SDValue()); in LowerINTRINSIC_WO_CHAIN()
10908 DAG.getSelectCC(dl, Res, Op.getOperand(I), Res, Op.getOperand(I), CC); in LowerINTRINSIC_WO_CHAIN()
10923 SDValue Tmp = DAG.getNode(PPCISD::VCMP, dl, Op.getOperand(2).getValueType(), in LowerINTRINSIC_WO_CHAIN()
10925 DAG.getConstant(CompareOpc, dl, MVT::i32)); in LowerINTRINSIC_WO_CHAIN()
10926 return DAG.getNode(ISD::BITCAST, dl, Op.getValueType(), Tmp); in LowerINTRINSIC_WO_CHAIN()
10933 DAG.getConstant(CompareOpc, dl, MVT::i32) in LowerINTRINSIC_WO_CHAIN()
10936 SDValue CompNode = DAG.getNode(PPCISD::VCMP_rec, dl, VTs, Ops); in LowerINTRINSIC_WO_CHAIN()
10940 SDValue Flags = DAG.getNode(PPCISD::MFOCRF, dl, MVT::i32, in LowerINTRINSIC_WO_CHAIN()
10964 Flags = DAG.getNode(ISD::SRL, dl, MVT::i32, Flags, in LowerINTRINSIC_WO_CHAIN()
10965 DAG.getConstant(8 - (3 - BitNo), dl, MVT::i32)); in LowerINTRINSIC_WO_CHAIN()
10967 Flags = DAG.getNode(ISD::AND, dl, MVT::i32, Flags, in LowerINTRINSIC_WO_CHAIN()
10968 DAG.getConstant(1, dl, MVT::i32)); in LowerINTRINSIC_WO_CHAIN()
10972 Flags = DAG.getNode(ISD::XOR, dl, MVT::i32, Flags, in LowerINTRINSIC_WO_CHAIN()
10973 DAG.getConstant(1, dl, MVT::i32)); in LowerINTRINSIC_WO_CHAIN()
11009 SDLoc dl(Op); in LowerBSWAP() local
11013 Op = DAG.getNode(ISD::BUILD_VECTOR, dl, MVT::v2i64, Op.getOperand(0), in LowerBSWAP()
11016 Op = DAG.getNode(ISD::BSWAP, dl, MVT::v2i64, Op); in LowerBSWAP()
11021 Op = DAG.getNode(ISD::EXTRACT_VECTOR_ELT, dl, MVT::i64, Op, in LowerBSWAP()
11022 DAG.getTargetConstant(VectorIndex, dl, MVT::i32)); in LowerBSWAP()
11032 SDLoc dl(Op); in LowerATOMIC_CMP_SWAP() local
11047 DAG.getNode(ISD::AND, dl, MVT::i32, CmpOp, in LowerATOMIC_CMP_SWAP()
11048 DAG.getConstant(MaskVal, dl, MVT::i32)); in LowerATOMIC_CMP_SWAP()
11059 return DAG.getMemIntrinsicNode(NodeTy, dl, Tys, Ops, MemVT, MMO); in LowerATOMIC_CMP_SWAP()
11068 SDLoc dl(N); in LowerATOMIC_LOAD_STORE() local
11077 DAG.getConstant(Intrinsic::ppc_atomic_load_i128, dl, MVT::i32)}; in LowerATOMIC_LOAD_STORE()
11080 SDValue LoadedVal = DAG.getMemIntrinsicNode(ISD::INTRINSIC_W_CHAIN, dl, Tys, in LowerATOMIC_LOAD_STORE()
11082 SDValue ValLo = DAG.getNode(ISD::ZERO_EXTEND, dl, MVT::i128, LoadedVal); in LowerATOMIC_LOAD_STORE()
11084 DAG.getNode(ISD::ZERO_EXTEND, dl, MVT::i128, LoadedVal.getValue(1)); in LowerATOMIC_LOAD_STORE()
11085 ValHi = DAG.getNode(ISD::SHL, dl, MVT::i128, ValHi, in LowerATOMIC_LOAD_STORE()
11086 DAG.getConstant(64, dl, MVT::i32)); in LowerATOMIC_LOAD_STORE()
11088 DAG.getNode(ISD::OR, dl, {MVT::i128, MVT::Other}, {ValLo, ValHi}); in LowerATOMIC_LOAD_STORE()
11089 return DAG.getNode(ISD::MERGE_VALUES, dl, {MVT::i128, MVT::Other}, in LowerATOMIC_LOAD_STORE()
11098 DAG.getConstant(Intrinsic::ppc_atomic_store_i128, dl, MVT::i32)}; in LowerATOMIC_LOAD_STORE()
11100 SDValue ValLo = DAG.getNode(ISD::TRUNCATE, dl, MVT::i64, Val); in LowerATOMIC_LOAD_STORE()
11101 SDValue ValHi = DAG.getNode(ISD::SRL, dl, MVT::i128, Val, in LowerATOMIC_LOAD_STORE()
11102 DAG.getConstant(64, dl, MVT::i32)); in LowerATOMIC_LOAD_STORE()
11103 ValHi = DAG.getNode(ISD::TRUNCATE, dl, MVT::i64, ValHi); in LowerATOMIC_LOAD_STORE()
11107 return DAG.getMemIntrinsicNode(ISD::INTRINSIC_VOID, dl, Tys, Ops, MemVT, in LowerATOMIC_LOAD_STORE()
11264 SDLoc dl(Op); in LowerSCALAR_TO_VECTOR() local
11272 SDValue Store = DAG.getStore(DAG.getEntryNode(), dl, Op.getOperand(0), FIdx, in LowerSCALAR_TO_VECTOR()
11275 return DAG.getLoad(Op.getValueType(), dl, Store, FIdx, MachinePointerInfo()); in LowerSCALAR_TO_VECTOR()
11286 SDLoc dl(Op); in LowerINSERT_VECTOR_ELT() local
11307 DAG.getNode(ISD::INSERT_VECTOR_ELT, dl, MVT::v4i32, BitcastVector, in LowerINSERT_VECTOR_ELT()
11330 SDValue Mtvsrz = DAG.getNode(PPCISD::MTVSRZ, dl, VT, V2); in LowerINSERT_VECTOR_ELT()
11337 return DAG.getNode(PPCISD::VECINSERT, dl, VT, V1, Mtvsrz, in LowerINSERT_VECTOR_ELT()
11338 DAG.getConstant(InsertAtByte, dl, MVT::i32)); in LowerINSERT_VECTOR_ELT()
11345 SDLoc dl(Op); in LowerVectorLoad() local
11367 DAG.getLoad(MVT::v16i8, dl, LoadChain, BasePtr, in LowerVectorLoad()
11371 BasePtr = DAG.getNode(ISD::ADD, dl, BasePtr.getValueType(), BasePtr, in LowerVectorLoad()
11372 DAG.getConstant(16, dl, BasePtr.getValueType())); in LowerVectorLoad()
11380 SDValue TF = DAG.getNode(ISD::TokenFactor, dl, MVT::Other, LoadChains); in LowerVectorLoad()
11383 dl, VT, Loads); in LowerVectorLoad()
11385 return DAG.getMergeValues(RetOps, dl); in LowerVectorLoad()
11390 SDLoc dl(Op); in LowerVectorStore() local
11415 PPC::DMXXEXTFDMR512, dl, ArrayRef(ReturnTypes, 2), Op.getOperand(1)); in LowerVectorStore()
11420 Value = DAG.getNode(PPCISD::XXMFACC, dl, MVT::v512i1, Value); in LowerVectorStore()
11428 Elt = DAG.getNode(PPCISD::EXTRACT_VSX_REG, dl, MVT::v16i8, in LowerVectorStore()
11430 DAG.getConstant(VecNum, dl, getPointerTy(DAG.getDataLayout()))); in LowerVectorStore()
11432 Elt = DAG.getNode(PPCISD::EXTRACT_VSX_REG, dl, MVT::v16i8, Value, in LowerVectorStore()
11433 DAG.getConstant(VecNum, dl, getPointerTy(DAG.getDataLayout()))); in LowerVectorStore()
11436 DAG.getStore(StoreChain, dl, Elt, BasePtr, in LowerVectorStore()
11440 BasePtr = DAG.getNode(ISD::ADD, dl, BasePtr.getValueType(), BasePtr, in LowerVectorStore()
11441 DAG.getConstant(16, dl, BasePtr.getValueType())); in LowerVectorStore()
11444 SDValue TF = DAG.getTokenFactor(dl, Stores); in LowerVectorStore()
11449 SDLoc dl(Op); in LowerMUL() local
11453 SDValue Zero = getCanonicalConstSplat(0, 1, MVT::v4i32, DAG, dl); in LowerMUL()
11455 SDValue Neg16 = getCanonicalConstSplat(-16, 4, MVT::v4i32, DAG, dl); in LowerMUL()
11457 BuildIntrinsicOp(Intrinsic::ppc_altivec_vrlw, RHS, Neg16, DAG, dl); in LowerMUL()
11460 LHS = DAG.getNode(ISD::BITCAST, dl, MVT::v8i16, LHS); in LowerMUL()
11461 RHS = DAG.getNode(ISD::BITCAST, dl, MVT::v8i16, RHS); in LowerMUL()
11462 RHSSwap = DAG.getNode(ISD::BITCAST, dl, MVT::v8i16, RHSSwap); in LowerMUL()
11467 LHS, RHS, DAG, dl, MVT::v4i32); in LowerMUL()
11470 LHS, RHSSwap, Zero, DAG, dl, MVT::v4i32); in LowerMUL()
11473 Neg16, DAG, dl); in LowerMUL()
11474 return DAG.getNode(ISD::ADD, dl, MVT::v4i32, LoProd, HiProd); in LowerMUL()
11481 LHS, RHS, DAG, dl, MVT::v8i16); in LowerMUL()
11482 EvenParts = DAG.getNode(ISD::BITCAST, dl, MVT::v16i8, EvenParts); in LowerMUL()
11486 LHS, RHS, DAG, dl, MVT::v8i16); in LowerMUL()
11487 OddParts = DAG.getNode(ISD::BITCAST, dl, MVT::v16i8, OddParts); in LowerMUL()
11504 return DAG.getVectorShuffle(MVT::v16i8, dl, OddParts, EvenParts, Ops); in LowerMUL()
11506 return DAG.getVectorShuffle(MVT::v16i8, dl, EvenParts, OddParts, Ops); in LowerMUL()
11533 SDLoc dl(Op); in LowerFP_EXTEND() local
11560 return DAG.getNode(PPCISD::FP_EXTEND_HALF, dl, MVT::v2f64, in LowerFP_EXTEND()
11561 Op0.getOperand(0), DAG.getConstant(DWord, dl, MVT::i32)); in LowerFP_EXTEND()
11576 PPCISD::LD_VSX_LH, dl, DAG.getVTList(MVT::v4f32, MVT::Other), LoadOps, in LowerFP_EXTEND()
11582 return DAG.getNode(PPCISD::FP_EXTEND_HALF, dl, MVT::v2f64, NewOp, in LowerFP_EXTEND()
11583 DAG.getConstant(0, dl, MVT::i32)); in LowerFP_EXTEND()
11589 PPCISD::LD_VSX_LH, dl, DAG.getVTList(MVT::v4f32, MVT::Other), LoadOps, in LowerFP_EXTEND()
11591 return DAG.getNode(PPCISD::FP_EXTEND_HALF, dl, MVT::v2f64, NewLd, in LowerFP_EXTEND()
11592 DAG.getConstant(0, dl, MVT::i32)); in LowerFP_EXTEND()
11697 SDLoc dl(N); in ReplaceNodeResults() local
11709 SDValue RTB = DAG.getNode(PPCISD::READ_TIME_BASE, dl, VTs, N->getOperand(0)); in ReplaceNodeResults()
11712 DAG.getNode(ISD::BUILD_PAIR, dl, MVT::i64, RTB, RTB.getValue(1))); in ReplaceNodeResults()
11725 SDValue NewInt = DAG.getNode(N->getOpcode(), dl, VTs, N->getOperand(0), in ReplaceNodeResults()
11728 Results.push_back(DAG.getNode(ISD::TRUNCATE, dl, MVT::i1, NewInt)); in ReplaceNodeResults()
11735 Results.push_back(DAG.getNode(ISD::BUILD_PAIR, dl, MVT::ppcf128, in ReplaceNodeResults()
11769 SDValue LoweredValue = LowerFP_TO_INT(SDValue(N, 0), DAG, dl); in ReplaceNodeResults()
11881 DebugLoc dl = MI.getDebugLoc(); in EmitAtomicBinary() local
11923 BuildMI(BB, dl, TII->get(LoadMnemonic), dest) in EmitAtomicBinary()
11926 BuildMI(BB, dl, TII->get(BinOpcode), TmpReg).addReg(incr).addReg(dest); in EmitAtomicBinary()
11932 BuildMI(BB, dl, TII->get(AtomicSize == 1 ? PPC::EXTSB : PPC::EXTSH), in EmitAtomicBinary()
11934 BuildMI(BB, dl, TII->get(CmpOpcode), CrReg).addReg(ExtReg).addReg(incr); in EmitAtomicBinary()
11936 BuildMI(BB, dl, TII->get(CmpOpcode), CrReg).addReg(dest).addReg(incr); in EmitAtomicBinary()
11938 BuildMI(BB, dl, TII->get(PPC::BCC)) in EmitAtomicBinary()
11946 BuildMI(BB, dl, TII->get(StoreMnemonic)) in EmitAtomicBinary()
11948 BuildMI(BB, dl, TII->get(PPC::BCC)) in EmitAtomicBinary()
12024 DebugLoc dl = MI.getDebugLoc(); in EmitPartwordAtomicBinary() local
12033 BuildMI(*BB, MI, dl, TII->get(is8bit ? PPC::EXTSB : PPC::EXTSH), ValueReg) in EmitPartwordAtomicBinary()
12118 BuildMI(BB, dl, TII->get(is64bit ? PPC::ADD8 : PPC::ADD4), Ptr1Reg) in EmitPartwordAtomicBinary()
12126 BuildMI(BB, dl, TII->get(PPC::RLWINM), Shift1Reg) in EmitPartwordAtomicBinary()
12132 BuildMI(BB, dl, TII->get(PPC::XORI), ShiftReg) in EmitPartwordAtomicBinary()
12136 BuildMI(BB, dl, TII->get(PPC::RLDICR), PtrReg) in EmitPartwordAtomicBinary()
12141 BuildMI(BB, dl, TII->get(PPC::RLWINM), PtrReg) in EmitPartwordAtomicBinary()
12146 BuildMI(BB, dl, TII->get(PPC::SLW), Incr2Reg).addReg(incr).addReg(ShiftReg); in EmitPartwordAtomicBinary()
12148 BuildMI(BB, dl, TII->get(PPC::LI), Mask2Reg).addImm(255); in EmitPartwordAtomicBinary()
12150 BuildMI(BB, dl, TII->get(PPC::LI), Mask3Reg).addImm(0); in EmitPartwordAtomicBinary()
12151 BuildMI(BB, dl, TII->get(PPC::ORI), Mask2Reg) in EmitPartwordAtomicBinary()
12155 BuildMI(BB, dl, TII->get(PPC::SLW), MaskReg) in EmitPartwordAtomicBinary()
12160 BuildMI(BB, dl, TII->get(PPC::LWARX), TmpDestReg) in EmitPartwordAtomicBinary()
12164 BuildMI(BB, dl, TII->get(BinOpcode), TmpReg) in EmitPartwordAtomicBinary()
12167 BuildMI(BB, dl, TII->get(PPC::ANDC), Tmp2Reg) in EmitPartwordAtomicBinary()
12170 BuildMI(BB, dl, TII->get(PPC::AND), Tmp3Reg).addReg(TmpReg).addReg(MaskReg); in EmitPartwordAtomicBinary()
12176 BuildMI(BB, dl, TII->get(PPC::AND), SReg) in EmitPartwordAtomicBinary()
12183 BuildMI(BB, dl, TII->get(PPC::SRW), ValueReg) in EmitPartwordAtomicBinary()
12187 BuildMI(BB, dl, TII->get(is8bit ? PPC::EXTSB : PPC::EXTSH), ValueSReg) in EmitPartwordAtomicBinary()
12192 BuildMI(BB, dl, TII->get(CmpOpcode), CrReg).addReg(ValueReg).addReg(CmpReg); in EmitPartwordAtomicBinary()
12193 BuildMI(BB, dl, TII->get(PPC::BCC)) in EmitPartwordAtomicBinary()
12201 BuildMI(BB, dl, TII->get(PPC::OR), Tmp4Reg).addReg(Tmp3Reg).addReg(Tmp2Reg); in EmitPartwordAtomicBinary()
12202 BuildMI(BB, dl, TII->get(PPC::STWCX)) in EmitPartwordAtomicBinary()
12206 BuildMI(BB, dl, TII->get(PPC::BCC)) in EmitPartwordAtomicBinary()
12218 BuildMI(*BB, BB->begin(), dl, TII->get(PPC::RLWINM), dest) in EmitPartwordAtomicBinary()
12223 BuildMI(*BB, BB->begin(), dl, TII->get(PPC::SRW), SrwDestReg) in EmitPartwordAtomicBinary()
12712 DebugLoc dl = MI.getDebugLoc(); in EmitInstrWithCustomInserter() local
12713 TII->insertSelect(*BB, MI, dl, MI.getOperand(0).getReg(), Cond, in EmitInstrWithCustomInserter()
12746 DebugLoc dl = MI.getDebugLoc(); in EmitInstrWithCustomInserter() local
12768 BuildMI(BB, dl, TII->get(PPC::BC)) in EmitInstrWithCustomInserter()
12773 BuildMI(BB, dl, TII->get(PPC::BCC)) in EmitInstrWithCustomInserter()
12791 BuildMI(*BB, BB->begin(), dl, TII->get(PPC::PHI), MI.getOperand(0).getReg()) in EmitInstrWithCustomInserter()
12811 DebugLoc dl = MI.getDebugLoc(); in EmitInstrWithCustomInserter() local
12828 BuildMI(BB, dl, TII->get(PPC::MFSPR), HiReg).addImm(269); in EmitInstrWithCustomInserter()
12829 BuildMI(BB, dl, TII->get(PPC::MFSPR), LoReg).addImm(268); in EmitInstrWithCustomInserter()
12830 BuildMI(BB, dl, TII->get(PPC::MFSPR), ReadAgainReg).addImm(269); in EmitInstrWithCustomInserter()
12834 BuildMI(BB, dl, TII->get(PPC::CMPW), CmpReg) in EmitInstrWithCustomInserter()
12837 BuildMI(BB, dl, TII->get(PPC::BCC)) in EmitInstrWithCustomInserter()
12981 DebugLoc dl = MI.getDebugLoc(); in EmitInstrWithCustomInserter() local
13008 BuildMI(BB, dl, TII->get(LoadMnemonic), dest).addReg(ptrA).addReg(ptrB); in EmitInstrWithCustomInserter()
13009 BuildMI(BB, dl, TII->get(is64bit ? PPC::CMPD : PPC::CMPW), CrReg) in EmitInstrWithCustomInserter()
13012 BuildMI(BB, dl, TII->get(PPC::BCC)) in EmitInstrWithCustomInserter()
13020 BuildMI(BB, dl, TII->get(StoreMnemonic)) in EmitInstrWithCustomInserter()
13024 BuildMI(BB, dl, TII->get(PPC::BCC)) in EmitInstrWithCustomInserter()
13028 BuildMI(BB, dl, TII->get(PPC::B)).addMBB(exitMBB); in EmitInstrWithCustomInserter()
13049 DebugLoc dl = MI.getDebugLoc(); in EmitInstrWithCustomInserter() local
13116 BuildMI(BB, dl, TII->get(is64bit ? PPC::ADD8 : PPC::ADD4), Ptr1Reg) in EmitInstrWithCustomInserter()
13125 BuildMI(BB, dl, TII->get(PPC::RLWINM), Shift1Reg) in EmitInstrWithCustomInserter()
13131 BuildMI(BB, dl, TII->get(PPC::XORI), ShiftReg) in EmitInstrWithCustomInserter()
13135 BuildMI(BB, dl, TII->get(PPC::RLDICR), PtrReg) in EmitInstrWithCustomInserter()
13140 BuildMI(BB, dl, TII->get(PPC::RLWINM), PtrReg) in EmitInstrWithCustomInserter()
13145 BuildMI(BB, dl, TII->get(PPC::SLW), NewVal2Reg) in EmitInstrWithCustomInserter()
13148 BuildMI(BB, dl, TII->get(PPC::SLW), OldVal2Reg) in EmitInstrWithCustomInserter()
13152 BuildMI(BB, dl, TII->get(PPC::LI), Mask2Reg).addImm(255); in EmitInstrWithCustomInserter()
13154 BuildMI(BB, dl, TII->get(PPC::LI), Mask3Reg).addImm(0); in EmitInstrWithCustomInserter()
13155 BuildMI(BB, dl, TII->get(PPC::ORI), Mask2Reg) in EmitInstrWithCustomInserter()
13159 BuildMI(BB, dl, TII->get(PPC::SLW), MaskReg) in EmitInstrWithCustomInserter()
13162 BuildMI(BB, dl, TII->get(PPC::AND), NewVal3Reg) in EmitInstrWithCustomInserter()
13165 BuildMI(BB, dl, TII->get(PPC::AND), OldVal3Reg) in EmitInstrWithCustomInserter()
13170 BuildMI(BB, dl, TII->get(PPC::LWARX), TmpDestReg) in EmitInstrWithCustomInserter()
13173 BuildMI(BB, dl, TII->get(PPC::AND), TmpReg) in EmitInstrWithCustomInserter()
13176 BuildMI(BB, dl, TII->get(PPC::CMPW), CrReg) in EmitInstrWithCustomInserter()
13179 BuildMI(BB, dl, TII->get(PPC::BCC)) in EmitInstrWithCustomInserter()
13187 BuildMI(BB, dl, TII->get(PPC::ANDC), Tmp2Reg) in EmitInstrWithCustomInserter()
13190 BuildMI(BB, dl, TII->get(PPC::OR), Tmp4Reg) in EmitInstrWithCustomInserter()
13193 BuildMI(BB, dl, TII->get(PPC::STWCX)) in EmitInstrWithCustomInserter()
13197 BuildMI(BB, dl, TII->get(PPC::BCC)) in EmitInstrWithCustomInserter()
13201 BuildMI(BB, dl, TII->get(PPC::B)).addMBB(exitMBB); in EmitInstrWithCustomInserter()
13208 BuildMI(*BB, BB->begin(), dl, TII->get(PPC::SRW), dest) in EmitInstrWithCustomInserter()
13218 DebugLoc dl = MI.getDebugLoc(); in EmitInstrWithCustomInserter() local
13224 BuildMI(*BB, MI, dl, TII->get(PPC::MFFS), MFFSReg); in EmitInstrWithCustomInserter()
13227 BuildMI(*BB, MI, dl, TII->get(PPC::MTFSB1)) in EmitInstrWithCustomInserter()
13231 BuildMI(*BB, MI, dl, TII->get(PPC::MTFSB0)) in EmitInstrWithCustomInserter()
13236 auto MIB = BuildMI(*BB, MI, dl, TII->get(PPC::FADD), Dest) in EmitInstrWithCustomInserter()
13243 BuildMI(*BB, MI, dl, TII->get(PPC::MTFSFb)).addImm(1).addReg(MFFSReg); in EmitInstrWithCustomInserter()
13282 DebugLoc dl = MI.getDebugLoc(); in EmitInstrWithCustomInserter() local
13287 BuildMI(*BB, MI, dl, TII->get(TargetOpcode::IMPLICIT_DEF), OldFPSCRReg); in EmitInstrWithCustomInserter()
13289 BuildMI(*BB, MI, dl, TII->get(PPC::MFFS), OldFPSCRReg); in EmitInstrWithCustomInserter()
13301 BuildMI(*BB, MI, dl, TII->get((Mode & 1) ? PPC::MTFSB1 : PPC::MTFSB0)) in EmitInstrWithCustomInserter()
13305 BuildMI(*BB, MI, dl, TII->get((Mode & 2) ? PPC::MTFSB1 : PPC::MTFSB0)) in EmitInstrWithCustomInserter()
13309 DebugLoc dl = MI.getDebugLoc(); in EmitInstrWithCustomInserter() local
13318 BuildMI(*BB, MI, dl, TII->get(TargetOpcode::COPY), DestReg) in EmitInstrWithCustomInserter()
13348 BuildMI(*BB, MI, dl, TII->get(StoreOp)) in EmitInstrWithCustomInserter()
13362 BuildMI(*BB, MI, dl, TII->get(LoadOp), DestReg) in EmitInstrWithCustomInserter()
13372 BuildMI(*BB, MI, dl, TII->get(PPC::MFFS), OldFPSCRReg); in EmitInstrWithCustomInserter()
13394 BuildMI(*BB, MI, dl, TII->get(TargetOpcode::IMPLICIT_DEF), ImDefReg); in EmitInstrWithCustomInserter()
13395 BuildMI(*BB, MI, dl, TII->get(PPC::INSERT_SUBREG), ExtSrcReg) in EmitInstrWithCustomInserter()
13401 BuildMI(*BB, MI, dl, TII->get(PPC::RLDIMI), NewFPSCRTmpReg) in EmitInstrWithCustomInserter()
13412 BuildMI(*BB, MI, dl, TII->get(PPC::MTFSF)) in EmitInstrWithCustomInserter()
13860 SDLoc dl(N); in DAGCombineTruncBoolExt() local
14087 RepValue = DAG.getNode(ISD::TRUNCATE, dl, MVT::i1, RepValue); in DAGCombineTruncBoolExt()
14118 Ops[C+i] = DAG.getNode(ISD::TRUNCATE, dl, MVT::i1, Ops[C+i]); in DAGCombineTruncBoolExt()
14121 DAG.getNode(PromOp.getOpcode(), dl, MVT::i1, Ops)); in DAGCombineTruncBoolExt()
14136 SDLoc dl(N); in DAGCombineExtBoolTrunc() local
14299 DAG.getSExtOrTrunc(InSrc, dl, N->getValueType(0))); in DAGCombineExtBoolTrunc()
14302 DAG.getZExtOrTrunc(InSrc, dl, N->getValueType(0))); in DAGCombineExtBoolTrunc()
14305 DAG.getAnyExtOrTrunc(InSrc, dl, N->getValueType(0))); in DAGCombineExtBoolTrunc()
14363 Ops[C+i] = DAG.getSExtOrTrunc(Ops[C+i], dl, N->getValueType(0)); in DAGCombineExtBoolTrunc()
14365 Ops[C+i] = DAG.getZExtOrTrunc(Ops[C+i], dl, N->getValueType(0)); in DAGCombineExtBoolTrunc()
14367 Ops[C+i] = DAG.getAnyExtOrTrunc(Ops[C+i], dl, N->getValueType(0)); in DAGCombineExtBoolTrunc()
14376 Ops[0] = DAG.getNode(ISD::TRUNCATE, dl, SI0->second, Ops[0]); in DAGCombineExtBoolTrunc()
14379 Ops[1] = DAG.getNode(ISD::TRUNCATE, dl, SI1->second, Ops[1]); in DAGCombineExtBoolTrunc()
14383 DAG.getNode(PromOp.getOpcode(), dl, N->getValueType(0), Ops)); in DAGCombineExtBoolTrunc()
14393 return DAG.getNode(ISD::AND, dl, N->getValueType(0), N->getOperand(0), in DAGCombineExtBoolTrunc()
14396 dl, N->getValueType(0))); in DAGCombineExtBoolTrunc()
14402 DAG.getConstant(N->getValueSizeInBits(0) - PromBits, dl, ShiftAmountTy); in DAGCombineExtBoolTrunc()
14404 ISD::SRA, dl, N->getValueType(0), in DAGCombineExtBoolTrunc()
14405 DAG.getNode(ISD::SHL, dl, N->getValueType(0), N->getOperand(0), ShiftCst), in DAGCombineExtBoolTrunc()
14462 SDLoc dl(N); in combineElementTruncationToVectorTruncation() local
14514 DAG.getNode(ISD::FP_ROUND, dl, MVT::f32, In.getOperand(0), in combineElementTruncationToVectorTruncation()
14515 DAG.getIntPtrConstant(1, dl, /*isTarget=*/true)); in combineElementTruncationToVectorTruncation()
14530 SDValue BV = DAG.getBuildVector(NewVT, dl, Ops); in combineElementTruncationToVectorTruncation()
14531 return DAG.getNode(Opcode, dl, TargetVT, BV); in combineElementTruncationToVectorTruncation()
14546 SDLoc dl(N); in combineBVOfConsecutiveLoads() local
14613 WideLoad = DAG.getLoad(N->getValueType(0), dl, FirstLoad->getChain(), in combineBVOfConsecutiveLoads()
14620 WideLoad = DAG.getLoad(N->getValueType(0), dl, LastLoad->getChain(), in combineBVOfConsecutiveLoads()
14627 ReturnSDVal = DAG.getVectorShuffle(N->getValueType(0), dl, WideLoad, in combineBVOfConsecutiveLoads()
14643 SDLoc dl(N); in addShuffleForVecExtend() local
14661 DAG.getVectorShuffle(Input.getValueType(), dl, Input, in addShuffleForVecExtend()
14670 return DAG.getNode(ISD::SIGN_EXTEND_INREG, dl, VT, Conv, in addShuffleForVecExtend()
14819 SDLoc dl(N); in DAGCombineBuildVector() local
14900 return DAG.getNode(NodeType, dl, MVT::v2f64, in DAGCombineBuildVector()
14901 SrcVec, DAG.getIntPtrConstant(SubvecIdx, dl)); in DAGCombineBuildVector()
14914 SDLoc dl(N); in combineFPToIntToFP() local
14939 dl, false); in combineFPToIntToFP()
14942 SDValue Ld = DAG.getMemIntrinsicNode(PPCISD::LXSIZX, dl, in combineFPToIntToFP()
14950 SDValue Ext = DAG.getNode(PPCISD::VEXTS, dl, MVT::f64, ExtOps); in combineFPToIntToFP()
14951 return DAG.getNode(ConvOp, dl, DstDouble ? MVT::f64 : MVT::f32, Ext); in combineFPToIntToFP()
14953 return DAG.getNode(ConvOp, dl, DstDouble ? MVT::f64 : MVT::f32, Ld); in combineFPToIntToFP()
14985 Src = DAG.getNode(ISD::FP_EXTEND, dl, MVT::f64, Src); in combineFPToIntToFP()
14996 SDValue Tmp = DAG.getNode(FCTOp, dl, MVT::f64, Src); in combineFPToIntToFP()
14997 SDValue FP = DAG.getNode(FCFOp, dl, FCFTy, Tmp); in combineFPToIntToFP()
15000 FP = DAG.getNode(ISD::FP_ROUND, dl, MVT::f32, FP, in combineFPToIntToFP()
15001 DAG.getIntPtrConstant(0, dl, /*isTarget=*/true)); in combineFPToIntToFP()
15021 SDLoc dl(N); in expandVSXLoadForLE() local
15055 SDValue Load = DAG.getMemIntrinsicNode(PPCISD::LXVD2X, dl, in expandVSXLoadForLE()
15062 PPCISD::XXSWAPD, dl, DAG.getVTList(MVT::v2f64, MVT::Other), Chain, Load); in expandVSXLoadForLE()
15067 SDValue N = DAG.getNode(ISD::BITCAST, dl, VecTy, Swap); in expandVSXLoadForLE()
15070 return DAG.getNode(ISD::MERGE_VALUES, dl, DAG.getVTList(VecTy, MVT::Other), in expandVSXLoadForLE()
15087 SDLoc dl(N); in expandVSXStoreForLE() local
15125 Src = DAG.getNode(ISD::BITCAST, dl, MVT::v2f64, Src); in expandVSXStoreForLE()
15129 SDValue Swap = DAG.getNode(PPCISD::XXSWAPD, dl, in expandVSXStoreForLE()
15134 SDValue Store = DAG.getMemIntrinsicNode(PPCISD::STXVD2X, dl, in expandVSXStoreForLE()
15145 SDLoc dl(N); in combineStoreFPToInt() local
15179 DAG.getIntPtrConstant(ByteSize, dl, false), in combineStoreFPToInt()
15182 Val = DAG.getMemIntrinsicNode(PPCISD::ST_VSR_SCAL_INT, dl, in combineStoreFPToInt()
15262 SDLoc dl(OrigSToV); in getSToVPermuted() local
15283 return DAG.getVectorShuffle(VT, dl, OrigVector, OrigVector, NewMask); in getSToVPermuted()
15286 return DAG.getNode(PPCISD::SCALAR_TO_VECTOR_PERMUTED, dl, VT, in getSToVPermuted()
15309 SDLoc dl(SVN); in combineVectorShuffle() local
15402 Res = DAG.getVectorShuffle(SVN->getValueType(0), dl, LHS, RHS, ShuffV); in combineVectorShuffle()
15471 TheSplat = DAG.getSplatBuildVector(TheSplat.getValueType(), dl, SplatVal); in combineVectorShuffle()
15477 return DAG.getVectorShuffle(SVN->getValueType(0), dl, LHS, RHS, ShuffV); in combineVectorShuffle()
15524 SDLoc dl(LSBase); in combineVReverseMemOP() local
15527 PPCISD::LOAD_VEC_BE, dl, DAG.getVTList(VT, MVT::Other), LoadOps, in combineVReverseMemOP()
15538 SDLoc dl(LSBase); in combineVReverseMemOP() local
15542 PPCISD::STORE_VEC_BE, dl, DAG.getVTList(MVT::Other), StoreOps, in combineVReverseMemOP()
15567 SDLoc dl(N); in PerformDAGCombine() local
15592 SDValue ConstOp = DAG.getConstant(Imm, dl, MVT::i32); in PerformDAGCombine()
15593 SDValue NarrowAnd = DAG.getNode(ISD::AND, dl, MVT::i32, NarrowOp, ConstOp); in PerformDAGCombine()
15594 return DAG.getZExtOrTrunc(NarrowAnd, dl, N->getValueType(0)); in PerformDAGCombine()
15677 BSwapOp = DAG.getNode(ISD::ANY_EXTEND, dl, MVT::i32, BSwapOp); in PerformDAGCombine()
15683 BSwapOp = DAG.getNode(ISD::SRL, dl, Op1VT, BSwapOp, in PerformDAGCombine()
15684 DAG.getConstant(Shift, dl, MVT::i32)); in PerformDAGCombine()
15687 BSwapOp = DAG.getNode(ISD::TRUNCATE, dl, MVT::i32, BSwapOp); in PerformDAGCombine()
15694 DAG.getMemIntrinsicNode(PPCISD::STBRX, dl, DAG.getVTList(MVT::Other), in PerformDAGCombine()
15707 SDValue Const64 = DAG.getConstant(Val64, dl, MVT::i64); in PerformDAGCombine()
15814 DAG.getNode(ISD::ADD, dl, BasePtr.getValueType(), BasePtr, in PerformDAGCombine()
15820 SDValue FloatLoad = DAG.getLoad(MVT::f32, dl, LD->getChain(), BasePtr, in PerformDAGCombine()
15824 DAG.getNode(ISD::ADD, dl, BasePtr.getValueType(), in PerformDAGCombine()
15825 BasePtr, DAG.getIntPtrConstant(4, dl)); in PerformDAGCombine()
15827 MVT::f32, dl, SDValue(FloatLoad.getNode(), 1), AddPtr, in PerformDAGCombine()
15897 SDValue PermCntl = BuildIntrinsicOp(Intr, Ptr, DAG, dl, PermCntlTy); in PerformDAGCombine()
15912 DAG.getTargetConstant(IntrLD, dl, getPointerTy(MF.getDataLayout())); in PerformDAGCombine()
15915 DAG.getMemIntrinsicNode(ISD::INTRINSIC_W_CHAIN, dl, in PerformDAGCombine()
15937 DAG.getConstant(IncValue, dl, getPointerTy(MF.getDataLayout())); in PerformDAGCombine()
15938 Ptr = DAG.getNode(ISD::ADD, dl, Ptr.getValueType(), Ptr, Increment); in PerformDAGCombine()
15945 DAG.getMemIntrinsicNode(ISD::INTRINSIC_W_CHAIN, dl, in PerformDAGCombine()
15949 SDValue TF = DAG.getNode(ISD::TokenFactor, dl, MVT::Other, in PerformDAGCombine()
15960 ExtraLoad, BaseLoad, PermCntl, DAG, dl); in PerformDAGCombine()
15963 BaseLoad, ExtraLoad, PermCntl, DAG, dl); in PerformDAGCombine()
15967 ? DAG.getNode(ISD::BITCAST, dl, VT, Perm) in PerformDAGCombine()
15968 : DAG.getNode(ISD::FP_ROUND, dl, VT, Perm, in PerformDAGCombine()
15969 DAG.getTargetConstant(1, dl, MVT::i64)); in PerformDAGCombine()
16042 return DAG.getNode(ISD::ABS, dl, V2.getValueType(), V2); in PerformDAGCombine()
16048 return DAG.getNode(ISD::ABS, dl, V1.getValueType(), V1); in PerformDAGCombine()
16054 return DAG.getNode(ISD::ABS, dl, V1.getValueType(), V1); in PerformDAGCombine()
16128 DAG.getMemIntrinsicNode(PPCISD::LBRX, dl, in PerformDAGCombine()
16136 ResVal = DAG.getNode(ISD::TRUNCATE, dl, MVT::i16, BSLoad); in PerformDAGCombine()
16160 SDValue Lo = DAG.getLoad(MVT::i32, dl, LD->getChain(), BasePtr, in PerformDAGCombine()
16162 Lo = DAG.getNode(ISD::BSWAP, dl, MVT::i32, Lo); in PerformDAGCombine()
16163 BasePtr = DAG.getNode(ISD::ADD, dl, BasePtr.getValueType(), BasePtr, in PerformDAGCombine()
16164 DAG.getIntPtrConstant(4, dl)); in PerformDAGCombine()
16167 SDValue Hi = DAG.getLoad(MVT::i32, dl, LD->getChain(), BasePtr, NewMMO); in PerformDAGCombine()
16168 Hi = DAG.getNode(ISD::BSWAP, dl, MVT::i32, Hi); in PerformDAGCombine()
16171 Res = DAG.getNode(ISD::BUILD_PAIR, dl, MVT::i64, Hi, Lo); in PerformDAGCombine()
16173 Res = DAG.getNode(ISD::BUILD_PAIR, dl, MVT::i64, Lo, Hi); in PerformDAGCombine()
16175 DAG.getNode(ISD::TokenFactor, dl, MVT::Other, in PerformDAGCombine()
16261 return DAG.getNode(ISD::BR, dl, MVT::Other, in PerformDAGCombine()
16283 DAG.getConstant(StoreWidth, dl, MVT::i32)}; in PerformDAGCombine()
16286 PPCISD::STORE_COND, dl, in PerformDAGCombine()
16300 InChain = DAG.getNode(ISD::TokenFactor, dl, MVT::Other, InChains); in PerformDAGCombine()
16303 return DAG.getNode(PPCISD::COND_BRANCH, dl, MVT::Other, InChain, in PerformDAGCombine()
16304 DAG.getConstant(CompOpc, dl, MVT::i32), in PerformDAGCombine()
16321 DAG.getConstant(CompareOpc, dl, MVT::i32) in PerformDAGCombine()
16324 SDValue CompNode = DAG.getNode(PPCISD::VCMP_rec, dl, VTs, Ops); in PerformDAGCombine()
16344 return DAG.getNode(PPCISD::COND_BRANCH, dl, MVT::Other, N->getOperand(0), in PerformDAGCombine()
16345 DAG.getConstant(CompOpc, dl, MVT::i32), in PerformDAGCombine()
16744 SDLoc dl(Op); in LowerAsmOperandForConstraint() local
16752 Result = DAG.getTargetConstant(Value, dl, TCVT); in LowerAsmOperandForConstraint()
16756 Result = DAG.getTargetConstant(Value, dl, TCVT); in LowerAsmOperandForConstraint()
16760 Result = DAG.getTargetConstant(Value, dl, TCVT); in LowerAsmOperandForConstraint()
16764 Result = DAG.getTargetConstant(Value, dl, TCVT); in LowerAsmOperandForConstraint()
16768 Result = DAG.getTargetConstant(Value, dl, TCVT); in LowerAsmOperandForConstraint()
16772 Result = DAG.getTargetConstant(Value, dl, TCVT); in LowerAsmOperandForConstraint()
16776 Result = DAG.getTargetConstant(Value, dl, TCVT); in LowerAsmOperandForConstraint()
16780 Result = DAG.getTargetConstant(Value, dl, TCVT); in LowerAsmOperandForConstraint()
16868 SDLoc dl(Op); in LowerRETURNADDR() local
16883 DAG.getLoad(Op.getValueType(), dl, DAG.getEntryNode(), in LowerRETURNADDR()
16886 DAG.getConstant(Subtarget.getFrameLowering()->getReturnSaveOffset(), dl, in LowerRETURNADDR()
16888 return DAG.getLoad(PtrVT, dl, DAG.getEntryNode(), in LowerRETURNADDR()
16889 DAG.getNode(ISD::ADD, dl, PtrVT, FrameAddr, Offset), in LowerRETURNADDR()
16895 return DAG.getLoad(PtrVT, dl, DAG.getEntryNode(), RetAddrFI, in LowerRETURNADDR()
16901 SDLoc dl(Op); in LowerFRAMEADDR() local
16919 SDValue FrameAddr = DAG.getCopyFromReg(DAG.getEntryNode(), dl, FrameReg, in LowerFRAMEADDR()
16922 FrameAddr = DAG.getLoad(Op.getValueType(), dl, DAG.getEntryNode(), in LowerFRAMEADDR()
17786 SDLoc dl(N); in combineTRUNCATE() local
17814 ISD::EXTRACT_VECTOR_ELT, dl, MVT::i64, Bitcast, in combineTRUNCATE()
17815 DCI.DAG.getTargetConstant(EltToExtract, dl, MVT::i32)); in combineTRUNCATE()