Lines Matching refs:dl
146 static SDValue widenVec(SelectionDAG &DAG, SDValue Vec, const SDLoc &dl);
2734 SDLoc dl(N); in SelectAddressRegImm() local
2749 Disp = DAG.getTargetConstant(imm, dl, N.getValueType()); in SelectAddressRegImm()
2788 Disp = DAG.getTargetConstant(imm, dl, N.getValueType()); in SelectAddressRegImm()
2800 Disp = DAG.getTargetConstant(Imm, dl, CN->getValueType(0)); in SelectAddressRegImm()
2814 Disp = DAG.getTargetConstant((short)Addr, dl, MVT::i32); in SelectAddressRegImm()
2816 Base = DAG.getTargetConstant((Addr - (signed short)Addr) >> 16, dl, in SelectAddressRegImm()
2819 Base = SDValue(DAG.getMachineNode(Opc, dl, CN->getValueType(0), Base), 0); in SelectAddressRegImm()
2824 Disp = DAG.getTargetConstant(0, dl, getPointerTy(DAG.getDataLayout())); in SelectAddressRegImm()
2842 SDLoc dl(N); in SelectAddressRegImm34() local
2848 Disp = DAG.getTargetConstant(Imm, dl, N.getValueType()); in SelectAddressRegImm34()
2869 Disp = DAG.getTargetConstant(Imm, dl, N.getValueType()); in SelectAddressRegImm34()
2874 Disp = DAG.getTargetConstant(Imm, dl, N.getValueType()); in SelectAddressRegImm34()
3110 SDValue PPCTargetLowering::getTOCEntry(SelectionDAG &DAG, const SDLoc &dl, in getTOCEntry() argument
3117 : DAG.getNode(PPCISD::GlobalBaseReg, dl, VT); in getTOCEntry()
3120 PPCISD::TOC_ENTRY, dl, DAG.getVTList(VT, MVT::Other), Ops, VT, in getTOCEntry()
3302 SDLoc dl(GA); in LowerGlobalTLSAddressAIX() local
3313 DAG.getTargetGlobalAddress(GV, dl, PtrVT, 0, PPCII::MO_TLSGD_FLAG); in LowerGlobalTLSAddressAIX()
3315 DAG.getTargetGlobalAddress(GV, dl, PtrVT, 0, PPCII::MO_TLSGDM_FLAG); in LowerGlobalTLSAddressAIX()
3316 SDValue VariableOffset = getTOCEntry(DAG, dl, VariableOffsetTGA); in LowerGlobalTLSAddressAIX()
3317 SDValue RegionHandle = getTOCEntry(DAG, dl, RegionHandleTGA); in LowerGlobalTLSAddressAIX()
3318 return DAG.getNode(PPCISD::TLSGD_AIX, dl, PtrVT, VariableOffset, in LowerGlobalTLSAddressAIX()
3332 SDLoc dl(GA); in LowerGlobalTLSAddressLinux() local
3346 GV, dl, PtrVT, 0, (PPCII::MO_PCREL_FLAG | PPCII::MO_TPREL_FLAG)); in LowerGlobalTLSAddressLinux()
3348 DAG.getNode(PPCISD::TLS_LOCAL_EXEC_MAT_ADDR, dl, PtrVT, TGA); in LowerGlobalTLSAddressLinux()
3349 return DAG.getNode(PPCISD::ADD_TLS, dl, PtrVT, TLSReg, MatAddr); in LowerGlobalTLSAddressLinux()
3352 SDValue TGAHi = DAG.getTargetGlobalAddress(GV, dl, PtrVT, 0, in LowerGlobalTLSAddressLinux()
3354 SDValue TGALo = DAG.getTargetGlobalAddress(GV, dl, PtrVT, 0, in LowerGlobalTLSAddressLinux()
3359 SDValue Hi = DAG.getNode(PPCISD::Hi, dl, PtrVT, TGAHi, TLSReg); in LowerGlobalTLSAddressLinux()
3360 return DAG.getNode(PPCISD::Lo, dl, PtrVT, TGALo, Hi); in LowerGlobalTLSAddressLinux()
3366 GV, dl, PtrVT, 0, IsPCRel ? PPCII::MO_GOT_TPREL_PCREL_FLAG : 0); in LowerGlobalTLSAddressLinux()
3368 GV, dl, PtrVT, 0, in LowerGlobalTLSAddressLinux()
3372 SDValue MatPCRel = DAG.getNode(PPCISD::MAT_PCREL_ADDR, dl, PtrVT, TGA); in LowerGlobalTLSAddressLinux()
3373 TPOffset = DAG.getLoad(MVT::i64, dl, DAG.getEntryNode(), MatPCRel, in LowerGlobalTLSAddressLinux()
3381 DAG.getNode(PPCISD::ADDIS_GOT_TPREL_HA, dl, PtrVT, GOTReg, TGA); in LowerGlobalTLSAddressLinux()
3384 GOTPtr = DAG.getNode(PPCISD::PPC32_GOT, dl, PtrVT); in LowerGlobalTLSAddressLinux()
3386 GOTPtr = DAG.getNode(PPCISD::GlobalBaseReg, dl, PtrVT); in LowerGlobalTLSAddressLinux()
3388 GOTPtr = DAG.getNode(PPCISD::PPC32_PICGOT, dl, PtrVT); in LowerGlobalTLSAddressLinux()
3390 TPOffset = DAG.getNode(PPCISD::LD_GOT_TPREL_L, dl, PtrVT, TGA, GOTPtr); in LowerGlobalTLSAddressLinux()
3392 return DAG.getNode(PPCISD::ADD_TLS, dl, PtrVT, TPOffset, TGATLS); in LowerGlobalTLSAddressLinux()
3397 SDValue TGA = DAG.getTargetGlobalAddress(GV, dl, PtrVT, 0, in LowerGlobalTLSAddressLinux()
3399 return DAG.getNode(PPCISD::TLS_DYNAMIC_MAT_PCREL_ADDR, dl, PtrVT, TGA); in LowerGlobalTLSAddressLinux()
3402 SDValue TGA = DAG.getTargetGlobalAddress(GV, dl, PtrVT, 0, 0); in LowerGlobalTLSAddressLinux()
3407 GOTPtr = DAG.getNode(PPCISD::ADDIS_TLSGD_HA, dl, PtrVT, in LowerGlobalTLSAddressLinux()
3411 GOTPtr = DAG.getNode(PPCISD::GlobalBaseReg, dl, PtrVT); in LowerGlobalTLSAddressLinux()
3413 GOTPtr = DAG.getNode(PPCISD::PPC32_PICGOT, dl, PtrVT); in LowerGlobalTLSAddressLinux()
3415 return DAG.getNode(PPCISD::ADDI_TLSGD_L_ADDR, dl, PtrVT, in LowerGlobalTLSAddressLinux()
3421 SDValue TGA = DAG.getTargetGlobalAddress(GV, dl, PtrVT, 0, in LowerGlobalTLSAddressLinux()
3424 DAG.getNode(PPCISD::TLS_DYNAMIC_MAT_PCREL_ADDR, dl, PtrVT, TGA); in LowerGlobalTLSAddressLinux()
3425 return DAG.getNode(PPCISD::PADDI_DTPREL, dl, PtrVT, MatPCRel, TGA); in LowerGlobalTLSAddressLinux()
3428 SDValue TGA = DAG.getTargetGlobalAddress(GV, dl, PtrVT, 0, 0); in LowerGlobalTLSAddressLinux()
3433 GOTPtr = DAG.getNode(PPCISD::ADDIS_TLSLD_HA, dl, PtrVT, in LowerGlobalTLSAddressLinux()
3437 GOTPtr = DAG.getNode(PPCISD::GlobalBaseReg, dl, PtrVT); in LowerGlobalTLSAddressLinux()
3439 GOTPtr = DAG.getNode(PPCISD::PPC32_PICGOT, dl, PtrVT); in LowerGlobalTLSAddressLinux()
3441 SDValue TLSAddr = DAG.getNode(PPCISD::ADDI_TLSLD_L_ADDR, dl, in LowerGlobalTLSAddressLinux()
3443 SDValue DtvOffsetHi = DAG.getNode(PPCISD::ADDIS_DTPREL_HA, dl, in LowerGlobalTLSAddressLinux()
3445 return DAG.getNode(PPCISD::ADDI_DTPREL_L, dl, PtrVT, DtvOffsetHi, TGA); in LowerGlobalTLSAddressLinux()
3509 SDLoc dl(Op); in LowerSETCC() local
3515 softenSetCCOperands(DAG, LHSVT, LHS, RHS, CC, dl, LHS, RHS, Chain, in LowerSETCC()
3518 LHS = DAG.getNode(ISD::SETCC, dl, Op.getValueType(), LHS, RHS, in LowerSETCC()
3521 return DAG.getMergeValues({LHS, Chain}, dl); in LowerSETCC()
3536 dl, MVT::v4i32, DAG.getNode(ISD::BITCAST, dl, MVT::v4i32, LHS), in LowerSETCC()
3537 DAG.getNode(ISD::BITCAST, dl, MVT::v4i32, RHS), CC); in LowerSETCC()
3540 DAG.getVectorShuffle(MVT::v4i32, dl, SetCC32, SetCC32, ShuffV); in LowerSETCC()
3543 dl, MVT::v4i32, Shuff, SetCC32)); in LowerSETCC()
3571 SDValue Sub = DAG.getNode(ISD::XOR, dl, LHSVT, LHS, RHS); in LowerSETCC()
3572 return DAG.getSetCC(dl, VT, Sub, DAG.getConstant(0, dl, LHSVT), CC); in LowerSETCC()
3584 SDLoc dl(Node); in LowerVAARG() local
3589 SDValue GprIndex = DAG.getExtLoad(ISD::ZEXTLOAD, dl, MVT::i32, InChain, in LowerVAARG()
3595 SDValue GprAnd = DAG.getNode(ISD::AND, dl, MVT::i32, GprIndex, in LowerVAARG()
3596 DAG.getConstant(1, dl, MVT::i32)); in LowerVAARG()
3597 SDValue CC64 = DAG.getSetCC(dl, MVT::i32, GprAnd, in LowerVAARG()
3598 DAG.getConstant(0, dl, MVT::i32), ISD::SETNE); in LowerVAARG()
3599 SDValue GprIndexPlusOne = DAG.getNode(ISD::ADD, dl, MVT::i32, GprIndex, in LowerVAARG()
3600 DAG.getConstant(1, dl, MVT::i32)); in LowerVAARG()
3602 GprIndex = DAG.getNode(ISD::SELECT, dl, MVT::i32, CC64, GprIndexPlusOne, in LowerVAARG()
3607 SDValue FprPtr = DAG.getNode(ISD::ADD, dl, PtrVT, VAListPtr, in LowerVAARG()
3608 DAG.getConstant(1, dl, MVT::i32)); in LowerVAARG()
3611 SDValue FprIndex = DAG.getExtLoad(ISD::ZEXTLOAD, dl, MVT::i32, InChain, in LowerVAARG()
3615 SDValue RegSaveAreaPtr = DAG.getNode(ISD::ADD, dl, PtrVT, VAListPtr, in LowerVAARG()
3616 DAG.getConstant(8, dl, MVT::i32)); in LowerVAARG()
3618 SDValue OverflowAreaPtr = DAG.getNode(ISD::ADD, dl, PtrVT, VAListPtr, in LowerVAARG()
3619 DAG.getConstant(4, dl, MVT::i32)); in LowerVAARG()
3623 DAG.getLoad(MVT::i32, dl, InChain, OverflowAreaPtr, MachinePointerInfo()); in LowerVAARG()
3627 DAG.getLoad(MVT::i32, dl, InChain, RegSaveAreaPtr, MachinePointerInfo()); in LowerVAARG()
3631 SDValue CC = DAG.getSetCC(dl, MVT::i32, VT.isInteger() ? GprIndex : FprIndex, in LowerVAARG()
3632 DAG.getConstant(8, dl, MVT::i32), ISD::SETLT); in LowerVAARG()
3635 SDValue RegConstant = DAG.getNode(ISD::MUL, dl, MVT::i32, in LowerVAARG()
3637 DAG.getConstant(VT.isInteger() ? 4 : 8, dl, in LowerVAARG()
3641 SDValue OurReg = DAG.getNode(ISD::ADD, dl, PtrVT, RegSaveArea, in LowerVAARG()
3646 OurReg = DAG.getNode(ISD::ADD, dl, PtrVT, OurReg, in LowerVAARG()
3647 DAG.getConstant(32, dl, MVT::i32)); in LowerVAARG()
3650 SDValue IndexPlus1 = DAG.getNode(ISD::ADD, dl, MVT::i32, in LowerVAARG()
3652 DAG.getConstant(VT == MVT::i64 ? 2 : 1, dl, in LowerVAARG()
3655 InChain = DAG.getTruncStore(InChain, dl, IndexPlus1, in LowerVAARG()
3660 SDValue Result = DAG.getNode(ISD::SELECT, dl, PtrVT, CC, OurReg, OverflowArea); in LowerVAARG()
3663 SDValue OverflowAreaPlusN = DAG.getNode(ISD::ADD, dl, PtrVT, OverflowArea, in LowerVAARG()
3665 dl, MVT::i32)); in LowerVAARG()
3667 OverflowArea = DAG.getNode(ISD::SELECT, dl, MVT::i32, CC, OverflowArea, in LowerVAARG()
3670 InChain = DAG.getTruncStore(InChain, dl, OverflowArea, OverflowAreaPtr, in LowerVAARG()
3673 return DAG.getLoad(VT, dl, InChain, Result, MachinePointerInfo()); in LowerVAARG()
3755 SDLoc dl(Op); in LowerINIT_TRAMPOLINE() local
3768 Entry.Node = DAG.getConstant(isPPC64 ? 48 : 40, dl, in LowerINIT_TRAMPOLINE()
3777 CLI.setDebugLoc(dl).setChain(Chain).setLibCallee( in LowerINIT_TRAMPOLINE()
3790 SDLoc dl(Op); in LowerVASTART() local
3797 return DAG.getStore(Op.getOperand(0), dl, FR, Op.getOperand(1), in LowerVASTART()
3825 SDValue ArgGPR = DAG.getConstant(FuncInfo->getVarArgsNumGPR(), dl, MVT::i32); in LowerVASTART()
3826 SDValue ArgFPR = DAG.getConstant(FuncInfo->getVarArgsNumFPR(), dl, MVT::i32); in LowerVASTART()
3833 SDValue ConstFrameOffset = DAG.getConstant(FrameOffset, dl, PtrVT); in LowerVASTART()
3836 SDValue ConstStackOffset = DAG.getConstant(StackOffset, dl, PtrVT); in LowerVASTART()
3839 SDValue ConstFPROffset = DAG.getConstant(FPROffset, dl, PtrVT); in LowerVASTART()
3845 DAG.getTruncStore(Op.getOperand(0), dl, ArgGPR, Op.getOperand(1), in LowerVASTART()
3848 SDValue nextPtr = DAG.getNode(ISD::ADD, dl, PtrVT, Op.getOperand(1), in LowerVASTART()
3853 DAG.getTruncStore(firstStore, dl, ArgFPR, nextPtr, in LowerVASTART()
3856 nextPtr = DAG.getNode(ISD::ADD, dl, PtrVT, nextPtr, ConstStackOffset); in LowerVASTART()
3859 SDValue thirdStore = DAG.getStore(secondStore, dl, StackOffsetFI, nextPtr, in LowerVASTART()
3862 nextPtr = DAG.getNode(ISD::ADD, dl, PtrVT, nextPtr, ConstFrameOffset); in LowerVASTART()
3865 return DAG.getStore(thirdStore, dl, FR, nextPtr, in LowerVASTART()
3990 const SmallVectorImpl<ISD::InputArg> &Ins, const SDLoc &dl, in LowerFormalArguments() argument
3993 return LowerFormalArguments_AIX(Chain, CallConv, isVarArg, Ins, dl, DAG, in LowerFormalArguments()
3996 return LowerFormalArguments_64SVR4(Chain, CallConv, isVarArg, Ins, dl, DAG, in LowerFormalArguments()
3999 return LowerFormalArguments_32SVR4(Chain, CallConv, isVarArg, Ins, dl, DAG, in LowerFormalArguments()
4005 const SmallVectorImpl<ISD::InputArg> &Ins, const SDLoc &dl, in LowerFormalArguments_32SVR4() argument
4114 SDValue ArgValueLo = DAG.getCopyFromReg(Chain, dl, RegLo, MVT::i32); in LowerFormalArguments_32SVR4()
4115 SDValue ArgValueHi = DAG.getCopyFromReg(Chain, dl, RegHi, MVT::i32); in LowerFormalArguments_32SVR4()
4118 ArgValue = DAG.getNode(PPCISD::BUILD_SPE64, dl, MVT::f64, ArgValueLo, in LowerFormalArguments_32SVR4()
4122 ArgValue = DAG.getCopyFromReg(Chain, dl, Reg, in LowerFormalArguments_32SVR4()
4125 ArgValue = DAG.getNode(ISD::TRUNCATE, dl, MVT::i1, ArgValue); in LowerFormalArguments_32SVR4()
4145 DAG.getLoad(VA.getValVT(), dl, Chain, FIN, MachinePointerInfo())); in LowerFormalArguments_32SVR4()
4217 SDValue Val = DAG.getCopyFromReg(Chain, dl, VReg, PtrVT); in LowerFormalArguments_32SVR4()
4219 DAG.getStore(Val.getValue(1), dl, Val, FIN, MachinePointerInfo()); in LowerFormalArguments_32SVR4()
4222 SDValue PtrOff = DAG.getConstant(PtrVT.getSizeInBits()/8, dl, PtrVT); in LowerFormalArguments_32SVR4()
4223 FIN = DAG.getNode(ISD::ADD, dl, PtrOff.getValueType(), FIN, PtrOff); in LowerFormalArguments_32SVR4()
4236 SDValue Val = DAG.getCopyFromReg(Chain, dl, VReg, MVT::f64); in LowerFormalArguments_32SVR4()
4238 DAG.getStore(Val.getValue(1), dl, Val, FIN, MachinePointerInfo()); in LowerFormalArguments_32SVR4()
4241 SDValue PtrOff = DAG.getConstant(MVT(MVT::f64).getSizeInBits()/8, dl, in LowerFormalArguments_32SVR4()
4243 FIN = DAG.getNode(ISD::ADD, dl, PtrOff.getValueType(), FIN, PtrOff); in LowerFormalArguments_32SVR4()
4248 Chain = DAG.getNode(ISD::TokenFactor, dl, MVT::Other, MemOps); in LowerFormalArguments_32SVR4()
4258 const SDLoc &dl) const { in extendArgForPPC64()
4260 ArgVal = DAG.getNode(ISD::AssertSext, dl, MVT::i64, ArgVal, in extendArgForPPC64()
4263 ArgVal = DAG.getNode(ISD::AssertZext, dl, MVT::i64, ArgVal, in extendArgForPPC64()
4266 return DAG.getNode(ISD::TRUNCATE, dl, ObjectVT, ArgVal); in extendArgForPPC64()
4271 const SmallVectorImpl<ISD::InputArg> &Ins, const SDLoc &dl, in LowerFormalArguments_64SVR4() argument
4412 SDValue ArgOff = DAG.getConstant(PtrByteSize - ObjSize, dl, PtrVT); in LowerFormalArguments_64SVR4()
4413 Arg = DAG.getNode(ISD::ADD, dl, ArgOff.getValueType(), Arg, ArgOff); in LowerFormalArguments_64SVR4()
4420 SDValue Val = DAG.getCopyFromReg(Chain, dl, VReg, PtrVT); in LowerFormalArguments_64SVR4()
4423 DAG.getTruncStore(Val.getValue(1), dl, Val, Arg, in LowerFormalArguments_64SVR4()
4444 SDValue Val = DAG.getCopyFromReg(Chain, dl, VReg, PtrVT); in LowerFormalArguments_64SVR4()
4447 SDValue Off = DAG.getConstant(j, dl, PtrVT); in LowerFormalArguments_64SVR4()
4448 Addr = DAG.getNode(ISD::ADD, dl, Off.getValueType(), Addr, Off); in LowerFormalArguments_64SVR4()
4453 DAG.getTruncStore(Val.getValue(1), dl, Val, Addr, in LowerFormalArguments_64SVR4()
4470 ArgVal = DAG.getCopyFromReg(Chain, dl, VReg, MVT::i64); in LowerFormalArguments_64SVR4()
4473 ArgVal = extendArgForPPC64(Flags, ObjectVT, DAG, ArgVal, dl); in LowerFormalArguments_64SVR4()
4484 ArgVal = DAG.getCopyFromReg(Chain, dl, VReg, MVT::i64); in LowerFormalArguments_64SVR4()
4489 ArgVal = extendArgForPPC64(Flags, ObjectVT, DAG, ArgVal, dl); in LowerFormalArguments_64SVR4()
4519 ArgVal = DAG.getCopyFromReg(Chain, dl, VReg, ObjectVT); in LowerFormalArguments_64SVR4()
4530 ArgVal = DAG.getCopyFromReg(Chain, dl, VReg, MVT::i64); in LowerFormalArguments_64SVR4()
4534 ArgVal = DAG.getNode(ISD::SRL, dl, MVT::i64, ArgVal, in LowerFormalArguments_64SVR4()
4535 DAG.getConstant(32, dl, MVT::i32)); in LowerFormalArguments_64SVR4()
4536 ArgVal = DAG.getNode(ISD::TRUNCATE, dl, MVT::i32, ArgVal); in LowerFormalArguments_64SVR4()
4539 ArgVal = DAG.getNode(ISD::BITCAST, dl, ObjectVT, ArgVal); in LowerFormalArguments_64SVR4()
4570 ArgVal = DAG.getCopyFromReg(Chain, dl, VReg, ObjectVT); in LowerFormalArguments_64SVR4()
4589 ArgVal = DAG.getLoad(ObjectVT, dl, Chain, FIN, MachinePointerInfo()); in LowerFormalArguments_64SVR4()
4629 SDValue Val = DAG.getCopyFromReg(Chain, dl, VReg, PtrVT); in LowerFormalArguments_64SVR4()
4631 DAG.getStore(Val.getValue(1), dl, Val, FIN, MachinePointerInfo()); in LowerFormalArguments_64SVR4()
4634 SDValue PtrOff = DAG.getConstant(PtrByteSize, dl, PtrVT); in LowerFormalArguments_64SVR4()
4635 FIN = DAG.getNode(ISD::ADD, dl, PtrOff.getValueType(), FIN, PtrOff); in LowerFormalArguments_64SVR4()
4640 Chain = DAG.getNode(ISD::TokenFactor, dl, MVT::Other, MemOps); in LowerFormalArguments_64SVR4()
4984 SmallVectorImpl<SDValue> &MemOpChains, const SDLoc &dl) { in StoreTailCallArgumentsToStackSlot() argument
4991 Chain, dl, Arg, FIN, in StoreTailCallArgumentsToStackSlot()
5000 int SPDiff, const SDLoc &dl) { in EmitTailCallStoreFPAndRetAddr() argument
5013 Chain = DAG.getStore(Chain, dl, OldRetAddr, NewRetAddrFrIdx, in EmitTailCallStoreFPAndRetAddr()
5042 SDValue &FPOpOut, const SDLoc &dl) const { in EmitTailCallLoadFPAndRetAddr()
5047 LROpOut = DAG.getLoad(VT, dl, Chain, LROpOut, MachinePointerInfo()); in EmitTailCallLoadFPAndRetAddr()
5061 SelectionDAG &DAG, const SDLoc &dl) { in CreateCopyOfByValArgument() argument
5062 SDValue SizeNode = DAG.getConstant(Flags.getByValSize(), dl, MVT::i32); in CreateCopyOfByValArgument()
5063 return DAG.getMemcpy(Chain, dl, Dst, Src, SizeNode, in CreateCopyOfByValArgument()
5074 SmallVectorImpl<TailCallArgumentInfo> &TailCallArguments, const SDLoc &dl) { in LowerMemOpCallTo() argument
5083 PtrOff = DAG.getNode(ISD::ADD, dl, PtrVT, StackPtr, in LowerMemOpCallTo()
5084 DAG.getConstant(ArgOffset, dl, PtrVT)); in LowerMemOpCallTo()
5087 DAG.getStore(Chain, dl, Arg, PtrOff, MachinePointerInfo())); in LowerMemOpCallTo()
5095 const SDLoc &dl, int SPDiff, unsigned NumBytes, SDValue LROp, in PrepareTailCall() argument
5104 MemOpChains2, dl); in PrepareTailCall()
5106 Chain = DAG.getNode(ISD::TokenFactor, dl, MVT::Other, MemOpChains2); in PrepareTailCall()
5109 Chain = EmitTailCallStoreFPAndRetAddr(DAG, Chain, LROp, FPOp, SPDiff, dl); in PrepareTailCall()
5112 Chain = DAG.getCALLSEQ_END(Chain, DAG.getIntPtrConstant(NumBytes, dl, true), in PrepareTailCall()
5113 DAG.getIntPtrConstant(0, dl, true), InFlag, dl); in PrepareTailCall()
5133 const SmallVectorImpl<ISD::InputArg> &Ins, const SDLoc &dl, in LowerCallResult() argument
5152 SDValue Lo = DAG.getCopyFromReg(Chain, dl, VA.getLocReg(), MVT::i32, in LowerCallResult()
5157 SDValue Hi = DAG.getCopyFromReg(Chain, dl, VA.getLocReg(), MVT::i32, in LowerCallResult()
5163 Val = DAG.getNode(PPCISD::BUILD_SPE64, dl, MVT::f64, Lo, Hi); in LowerCallResult()
5165 Val = DAG.getCopyFromReg(Chain, dl, in LowerCallResult()
5175 Val = DAG.getNode(ISD::TRUNCATE, dl, VA.getValVT(), Val); in LowerCallResult()
5178 Val = DAG.getNode(ISD::AssertZext, dl, VA.getLocVT(), Val, in LowerCallResult()
5180 Val = DAG.getNode(ISD::TRUNCATE, dl, VA.getValVT(), Val); in LowerCallResult()
5183 Val = DAG.getNode(ISD::AssertSext, dl, VA.getLocVT(), Val, in LowerCallResult()
5185 Val = DAG.getNode(ISD::TRUNCATE, dl, VA.getValVT(), Val); in LowerCallResult()
5284 const SDLoc &dl, const PPCSubtarget &Subtarget) { in transformCallee() argument
5324 return DAG.getTargetGlobalAddress(GV, dl, Callee.getValueType(), 0, in transformCallee()
5379 const SDLoc &dl) { in prepareIndirectCall() argument
5382 Chain = DAG.getNode(PPCISD::MTCTR, dl, makeArrayRef(ReturnTypes, 2), in prepareIndirectCall()
5391 const CallBase *CB, const SDLoc &dl, in prepareDescriptorIndirectCall() argument
5441 SDValue LoadFuncPtr = DAG.getLoad(RegVT, dl, LDChain, Callee, MPI, in prepareDescriptorIndirectCall()
5446 SDValue TOCOff = DAG.getIntPtrConstant(TOCAnchorOffset, dl); in prepareDescriptorIndirectCall()
5447 SDValue AddTOC = DAG.getNode(ISD::ADD, dl, RegVT, Callee, TOCOff); in prepareDescriptorIndirectCall()
5449 DAG.getLoad(RegVT, dl, LDChain, AddTOC, in prepareDescriptorIndirectCall()
5453 SDValue PtrOff = DAG.getIntPtrConstant(EnvPtrOffset, dl); in prepareDescriptorIndirectCall()
5454 SDValue AddPtr = DAG.getNode(ISD::ADD, dl, RegVT, Callee, PtrOff); in prepareDescriptorIndirectCall()
5456 DAG.getLoad(RegVT, dl, LDChain, AddPtr, in prepareDescriptorIndirectCall()
5461 SDValue TOCVal = DAG.getCopyToReg(Chain, dl, TOCReg, TOCPtr, Glue); in prepareDescriptorIndirectCall()
5470 SDValue EnvVal = DAG.getCopyToReg(Chain, dl, EnvPtrReg, LoadEnvPtr, Glue); in prepareDescriptorIndirectCall()
5477 prepareIndirectCall(DAG, LoadFuncPtr, Glue, Chain, dl); in prepareDescriptorIndirectCall()
5482 PPCTargetLowering::CallFlags CFlags, const SDLoc &dl, in buildCallOperands() argument
5514 SDValue TOCOff = DAG.getIntPtrConstant(TOCSaveOffset, dl); in buildCallOperands()
5515 SDValue AddTOC = DAG.getNode(ISD::ADD, dl, RegVT, StackPtr, TOCOff); in buildCallOperands()
5532 Ops.push_back(DAG.getConstant(SPDiff, dl, MVT::i32)); in buildCallOperands()
5564 CallFlags CFlags, const SDLoc &dl, SelectionDAG &DAG, in FinishCall() argument
5579 Callee = transformCallee(Callee, DAG, dl, Subtarget); in FinishCall()
5582 dl, CFlags.HasNest, Subtarget); in FinishCall()
5584 prepareIndirectCall(DAG, Callee, Glue, Chain, dl); in FinishCall()
5588 buildCallOperands(Ops, CFlags, dl, DAG, RegsToPass, Glue, Chain, Callee, in FinishCall()
5608 return DAG.getNode(CallOpc, dl, MVT::Other, Ops); in FinishCall()
5612 Chain = DAG.getNode(CallOpc, dl, ReturnTypes, Ops); in FinishCall()
5624 Chain = DAG.getCALLSEQ_END(Chain, DAG.getIntPtrConstant(NumBytes, dl, true), in FinishCall()
5625 DAG.getIntPtrConstant(BytesCalleePops, dl, true), in FinishCall()
5626 Glue, dl); in FinishCall()
5629 return LowerCallResult(Chain, Glue, CFlags.CallConv, CFlags.IsVarArg, Ins, dl, in FinishCall()
5637 SDLoc &dl = CLI.DL; in LowerCall() local
5699 return LowerCall_AIX(Chain, Callee, CFlags, Outs, OutVals, Ins, dl, DAG, in LowerCall()
5704 return LowerCall_64SVR4(Chain, Callee, CFlags, Outs, OutVals, Ins, dl, DAG, in LowerCall()
5706 return LowerCall_32SVR4(Chain, Callee, CFlags, Outs, OutVals, Ins, dl, DAG, in LowerCall()
5714 const SmallVectorImpl<ISD::InputArg> &Ins, const SDLoc &dl, in LowerCall_32SVR4() argument
5808 Chain = DAG.getCALLSEQ_START(Chain, NumBytes, 0, dl); in LowerCall_32SVR4()
5814 Chain = EmitTailCallLoadFPAndRetAddr(DAG, SPDiff, Chain, LROp, FPOp, dl); in LowerCall_32SVR4()
5849 SDValue PtrOff = DAG.getIntPtrConstant(LocMemOffset, dl); in LowerCall_32SVR4()
5850 PtrOff = DAG.getNode(ISD::ADD, dl, getPointerTy(MF.getDataLayout()), in LowerCall_32SVR4()
5858 Flags, DAG, dl); in LowerCall_32SVR4()
5879 dl, MVT::i32, Arg); in LowerCall_32SVR4()
5886 SDValue SVal = DAG.getNode(PPCISD::EXTRACT_SPE, dl, MVT::i32, Arg, in LowerCall_32SVR4()
5887 DAG.getIntPtrConstant(IsLE ? 0 : 1, dl)); in LowerCall_32SVR4()
5889 SVal = DAG.getNode(PPCISD::EXTRACT_SPE, dl, MVT::i32, Arg, in LowerCall_32SVR4()
5890 DAG.getIntPtrConstant(IsLE ? 1 : 0, dl)); in LowerCall_32SVR4()
5901 SDValue PtrOff = DAG.getIntPtrConstant(LocMemOffset, dl); in LowerCall_32SVR4()
5902 PtrOff = DAG.getNode(ISD::ADD, dl, getPointerTy(MF.getDataLayout()), in LowerCall_32SVR4()
5906 DAG.getStore(Chain, dl, Arg, PtrOff, MachinePointerInfo())); in LowerCall_32SVR4()
5916 Chain = DAG.getNode(ISD::TokenFactor, dl, MVT::Other, MemOpChains); in LowerCall_32SVR4()
5922 Chain = DAG.getCopyToReg(Chain, dl, RegsToPass[i].first, in LowerCall_32SVR4()
5934 dl, VTs, makeArrayRef(Ops, InFlag.getNode() ? 2 : 1)); in LowerCall_32SVR4()
5940 PrepareTailCall(DAG, InFlag, Chain, dl, SPDiff, NumBytes, LROp, FPOp, in LowerCall_32SVR4()
5943 return FinishCall(CFlags, dl, DAG, RegsToPass, InFlag, Chain, CallSeqStart, in LowerCall_32SVR4()
5951 SelectionDAG &DAG, const SDLoc &dl) const { in createMemcpyOutsideCallSeq()
5954 Flags, DAG, dl); in createMemcpyOutsideCallSeq()
5968 const SmallVectorImpl<ISD::InputArg> &Ins, const SDLoc &dl, in LowerCall_64SVR4() argument
6136 Chain = DAG.getCALLSEQ_START(Chain, NumBytes, 0, dl); in LowerCall_64SVR4()
6142 Chain = EmitTailCallLoadFPAndRetAddr(DAG, SPDiff, Chain, LROp, FPOp, dl); in LowerCall_64SVR4()
6178 PtrOff = DAG.getConstant(ArgOffset, dl, StackPtr.getValueType()); in LowerCall_64SVR4()
6180 PtrOff = DAG.getNode(ISD::ADD, dl, PtrVT, StackPtr, PtrOff); in LowerCall_64SVR4()
6195 Arg = DAG.getNode(ExtOp, dl, MVT::i64, Arg); in LowerCall_64SVR4()
6221 SDValue Load = DAG.getExtLoad(ISD::EXTLOAD, dl, PtrVT, Chain, Arg, in LowerCall_64SVR4()
6234 SDValue Const = DAG.getConstant(PtrByteSize - Size, dl, in LowerCall_64SVR4()
6236 AddPtr = DAG.getNode(ISD::ADD, dl, PtrVT, PtrOff, Const); in LowerCall_64SVR4()
6240 Flags, DAG, dl); in LowerCall_64SVR4()
6253 Flags, DAG, dl); in LowerCall_64SVR4()
6267 SDValue Const = DAG.getConstant(8 - Size, dl, PtrOff.getValueType()); in LowerCall_64SVR4()
6268 AddPtr = DAG.getNode(ISD::ADD, dl, PtrVT, PtrOff, Const); in LowerCall_64SVR4()
6272 Flags, DAG, dl); in LowerCall_64SVR4()
6276 DAG.getLoad(PtrVT, dl, Chain, PtrOff, MachinePointerInfo()); in LowerCall_64SVR4()
6288 SDValue Const = DAG.getConstant(j, dl, PtrOff.getValueType()); in LowerCall_64SVR4()
6289 SDValue AddArg = DAG.getNode(ISD::ADD, dl, PtrVT, Arg, Const); in LowerCall_64SVR4()
6293 SDValue Load = DAG.getExtLoad(ISD::EXTLOAD, dl, PtrVT, Chain, AddArg, in LowerCall_64SVR4()
6331 TailCallArguments, dl); in LowerCall_64SVR4()
6370 ArgVal = DAG.getNode(ISD::BITCAST, dl, MVT::i64, Arg); in LowerCall_64SVR4()
6374 ArgVal = DAG.getNode(ISD::BITCAST, dl, MVT::i32, Arg); in LowerCall_64SVR4()
6375 ArgVal = DAG.getNode(ISD::ANY_EXTEND, dl, MVT::i64, ArgVal); in LowerCall_64SVR4()
6381 Lo = DAG.getNode(ISD::BITCAST, dl, MVT::i32, OutVals[i - 1]); in LowerCall_64SVR4()
6382 Hi = DAG.getNode(ISD::BITCAST, dl, MVT::i32, Arg); in LowerCall_64SVR4()
6385 ArgVal = DAG.getNode(ISD::BUILD_PAIR, dl, MVT::i64, Lo, Hi); in LowerCall_64SVR4()
6389 ArgVal = DAG.getNode(ISD::BITCAST, dl, MVT::i32, Arg); in LowerCall_64SVR4()
6390 ArgVal = DAG.getNode(ISD::ANY_EXTEND, dl, MVT::i64, ArgVal); in LowerCall_64SVR4()
6392 ArgVal = DAG.getNode(ISD::SHL, dl, MVT::i64, ArgVal, in LowerCall_64SVR4()
6393 DAG.getConstant(32, dl, MVT::i32)); in LowerCall_64SVR4()
6410 SDValue ConstFour = DAG.getConstant(4, dl, PtrOff.getValueType()); in LowerCall_64SVR4()
6411 PtrOff = DAG.getNode(ISD::ADD, dl, PtrVT, PtrOff, ConstFour); in LowerCall_64SVR4()
6418 TailCallArguments, dl); in LowerCall_64SVR4()
6455 DAG.getStore(Chain, dl, Arg, PtrOff, MachinePointerInfo()); in LowerCall_64SVR4()
6459 DAG.getLoad(MVT::v4f32, dl, Store, PtrOff, MachinePointerInfo()); in LowerCall_64SVR4()
6467 SDValue Ix = DAG.getNode(ISD::ADD, dl, PtrVT, PtrOff, in LowerCall_64SVR4()
6468 DAG.getConstant(i, dl, PtrVT)); in LowerCall_64SVR4()
6470 DAG.getLoad(PtrVT, dl, Store, Ix, MachinePointerInfo()); in LowerCall_64SVR4()
6488 TailCallArguments, dl); in LowerCall_64SVR4()
6504 Chain = DAG.getNode(ISD::TokenFactor, dl, MVT::Other, MemOpChains); in LowerCall_64SVR4()
6516 SDValue Val = DAG.getCopyFromReg(Chain, dl, PPC::X2, MVT::i64); in LowerCall_64SVR4()
6519 SDValue PtrOff = DAG.getIntPtrConstant(TOCSaveOffset, dl); in LowerCall_64SVR4()
6520 SDValue AddPtr = DAG.getNode(ISD::ADD, dl, PtrVT, StackPtr, PtrOff); in LowerCall_64SVR4()
6521 Chain = DAG.getStore(Val.getValue(1), dl, Val, AddPtr, in LowerCall_64SVR4()
6536 Chain = DAG.getCopyToReg(Chain, dl, RegsToPass[i].first, in LowerCall_64SVR4()
6542 PrepareTailCall(DAG, InFlag, Chain, dl, SPDiff, NumBytes, LROp, FPOp, in LowerCall_64SVR4()
6545 return FinishCall(CFlags, dl, DAG, RegsToPass, InFlag, Chain, CallSeqStart, in LowerCall_64SVR4()
6841 MVT LocVT, const SDLoc &dl) { in truncateScalarIntegerArg() argument
6846 ArgValue = DAG.getNode(ISD::AssertSext, dl, LocVT, ArgValue, in truncateScalarIntegerArg()
6849 ArgValue = DAG.getNode(ISD::AssertZext, dl, LocVT, ArgValue, in truncateScalarIntegerArg()
6852 return DAG.getNode(ISD::TRUNCATE, dl, ValVT, ArgValue); in truncateScalarIntegerArg()
6915 const SmallVectorImpl<ISD::InputArg> &Ins, const SDLoc &dl, in LowerFormalArguments_AIX() argument
6978 DAG.getLoad(ValVT, dl, Chain, FIN, MachinePointerInfo()); in LowerFormalArguments_AIX()
7102 SDValue CopyFrom = DAG.getCopyFromReg(Chain, dl, VReg, LocVT); in LowerFormalArguments_AIX()
7109 CopyFrom.getValue(1), dl, CopyFrom, in LowerFormalArguments_AIX()
7110 DAG.getObjectPtrOffset(dl, FIN, TypeSize::Fixed(Offset)), in LowerFormalArguments_AIX()
7147 SDValue ArgValue = DAG.getCopyFromReg(Chain, dl, VReg, LocVT); in LowerFormalArguments_AIX()
7151 truncateScalarIntegerArg(Flags, ValVT, DAG, ArgValue, LocVT, dl); in LowerFormalArguments_AIX()
7199 SDValue Val = DAG.getCopyFromReg(Chain, dl, VReg, PtrVT); in LowerFormalArguments_AIX()
7201 DAG.getStore(Val.getValue(1), dl, Val, FIN, MachinePointerInfo()); in LowerFormalArguments_AIX()
7204 SDValue PtrOff = DAG.getConstant(PtrByteSize, dl, PtrVT); in LowerFormalArguments_AIX()
7205 FIN = DAG.getNode(ISD::ADD, dl, PtrOff.getValueType(), FIN, PtrOff); in LowerFormalArguments_AIX()
7210 Chain = DAG.getNode(ISD::TokenFactor, dl, MVT::Other, MemOps); in LowerFormalArguments_AIX()
7219 const SmallVectorImpl<ISD::InputArg> &Ins, const SDLoc &dl, in LowerCall_AIX() argument
7263 Chain = DAG.getCALLSEQ_START(Chain, NumBytes, 0, dl); in LowerCall_AIX()
7291 ISD::ZEXTLOAD, dl, PtrVT, Chain, in LowerCall_AIX()
7293 ? DAG.getObjectPtrOffset(dl, Arg, TypeSize::Fixed(LoadOffset)) in LowerCall_AIX()
7326 ? DAG.getObjectPtrOffset(dl, Arg, TypeSize::Fixed(LoadOffset)) in LowerCall_AIX()
7328 DAG.getObjectPtrOffset(dl, StackPtr, in LowerCall_AIX()
7330 CallSeqStart, MemcpyFlags, DAG, dl); in LowerCall_AIX()
7362 SDValue SHLAmt = DAG.getConstant(NumSHLBits, dl, ShiftAmountTy); in LowerCall_AIX()
7364 DAG.getNode(ISD::SHL, dl, Load.getValueType(), Load, SHLAmt); in LowerCall_AIX()
7365 ResidueVal = ResidueVal ? DAG.getNode(ISD::OR, dl, PtrVT, ResidueVal, in LowerCall_AIX()
7385 Arg = DAG.getNode(ISD::ZERO_EXTEND, dl, VA.getLocVT(), Arg); in LowerCall_AIX()
7388 Arg = DAG.getNode(ISD::SIGN_EXTEND, dl, VA.getLocVT(), Arg); in LowerCall_AIX()
7403 DAG.getConstant(VA.getLocMemOffset(), dl, StackPtr.getValueType()); in LowerCall_AIX()
7404 PtrOff = DAG.getNode(ISD::ADD, dl, PtrVT, StackPtr, PtrOff); in LowerCall_AIX()
7406 DAG.getStore(Chain, dl, Arg, PtrOff, MachinePointerInfo()); in LowerCall_AIX()
7418 SDValue Add = DAG.getNode(ISD::ADD, dl, PtrVT, PtrOff, in LowerCall_AIX()
7419 DAG.getConstant(LoadOffset, dl, PtrVT)); in LowerCall_AIX()
7420 SDValue Load = DAG.getLoad(PtrVT, dl, Store, Add, MachinePointerInfo()); in LowerCall_AIX()
7445 DAG.getConstant(VA.getLocMemOffset(), dl, StackPtr.getValueType()); in LowerCall_AIX()
7446 PtrOff = DAG.getNode(ISD::ADD, dl, PtrVT, StackPtr, PtrOff); in LowerCall_AIX()
7448 DAG.getStore(Chain, dl, Arg, PtrOff, MachinePointerInfo())); in LowerCall_AIX()
7474 VA.getLocReg(), DAG.getZExtOrTrunc(ArgAsInt, dl, LocVT))); in LowerCall_AIX()
7481 SDValue MSWAsI64 = DAG.getNode(ISD::SRL, dl, MVT::i64, ArgAsInt, in LowerCall_AIX()
7482 DAG.getConstant(32, dl, MVT::i8)); in LowerCall_AIX()
7484 GPR1.getLocReg(), DAG.getZExtOrTrunc(MSWAsI64, dl, MVT::i32))); in LowerCall_AIX()
7494 GPR2.getLocReg(), DAG.getZExtOrTrunc(ArgAsInt, dl, MVT::i32))); in LowerCall_AIX()
7501 Chain = DAG.getNode(ISD::TokenFactor, dl, MVT::Other, MemOpChains); in LowerCall_AIX()
7514 SDValue Val = DAG.getCopyFromReg(Chain, dl, TOCBaseReg, PtrVT); in LowerCall_AIX()
7515 SDValue PtrOff = DAG.getIntPtrConstant(TOCSaveOffset, dl); in LowerCall_AIX()
7517 SDValue AddPtr = DAG.getNode(ISD::ADD, dl, PtrVT, StackPtr, PtrOff); in LowerCall_AIX()
7519 Val.getValue(1), dl, Val, AddPtr, in LowerCall_AIX()
7527 Chain = DAG.getCopyToReg(Chain, dl, Reg.first, Reg.second, InFlag); in LowerCall_AIX()
7532 return FinishCall(CFlags, dl, DAG, RegsToPass, InFlag, Chain, CallSeqStart, in LowerCall_AIX()
7554 const SDLoc &dl, SelectionDAG &DAG) const { in LowerReturn() argument
7577 Arg = DAG.getNode(ISD::ANY_EXTEND, dl, VA.getLocVT(), Arg); in LowerReturn()
7580 Arg = DAG.getNode(ISD::ZERO_EXTEND, dl, VA.getLocVT(), Arg); in LowerReturn()
7583 Arg = DAG.getNode(ISD::SIGN_EXTEND, dl, VA.getLocVT(), Arg); in LowerReturn()
7590 DAG.getNode(PPCISD::EXTRACT_SPE, dl, MVT::i32, Arg, in LowerReturn()
7591 DAG.getIntPtrConstant(isLittleEndian ? 0 : 1, dl)); in LowerReturn()
7592 Chain = DAG.getCopyToReg(Chain, dl, VA.getLocReg(), SVal, Flag); in LowerReturn()
7594 SVal = DAG.getNode(PPCISD::EXTRACT_SPE, dl, MVT::i32, Arg, in LowerReturn()
7595 DAG.getIntPtrConstant(isLittleEndian ? 1 : 0, dl)); in LowerReturn()
7598 Chain = DAG.getCopyToReg(Chain, dl, VA.getLocReg(), SVal, Flag); in LowerReturn()
7600 Chain = DAG.getCopyToReg(Chain, dl, VA.getLocReg(), Arg, Flag); in LowerReturn()
7611 return DAG.getNode(PPCISD::RET_FLAG, dl, MVT::Other, RetOps); in LowerReturn()
7617 SDLoc dl(Op); in LowerGET_DYNAMIC_AREA_OFFSET() local
7628 return DAG.getNode(PPCISD::DYNAREAOFFSET, dl, VTs, Ops); in LowerGET_DYNAMIC_AREA_OFFSET()
7634 SDLoc dl(Op); in LowerSTACKRESTORE() local
7650 DAG.getLoad(PtrVT, dl, Chain, StackPtr, MachinePointerInfo()); in LowerSTACKRESTORE()
7653 Chain = DAG.getCopyToReg(LoadLinkSP.getValue(1), dl, SP, SaveSP); in LowerSTACKRESTORE()
7656 return DAG.getStore(Chain, dl, LoadLinkSP, StackPtr, MachinePointerInfo()); in LowerSTACKRESTORE()
7710 SDLoc dl(Op); in LowerDYNAMIC_STACKALLOC() local
7715 SDValue NegSize = DAG.getNode(ISD::SUB, dl, PtrVT, in LowerDYNAMIC_STACKALLOC()
7716 DAG.getConstant(0, dl, PtrVT), Size); in LowerDYNAMIC_STACKALLOC()
7722 return DAG.getNode(PPCISD::PROBED_ALLOCA, dl, VTs, Ops); in LowerDYNAMIC_STACKALLOC()
7723 return DAG.getNode(PPCISD::DYNALLOC, dl, VTs, Ops); in LowerDYNAMIC_STACKALLOC()
7761 SDLoc dl(Op); in LowerLOAD() local
7769 DAG.getExtLoad(ISD::EXTLOAD, dl, getPointerTy(DAG.getDataLayout()), Chain, in LowerLOAD()
7771 SDValue Result = DAG.getNode(ISD::TRUNCATE, dl, MVT::i1, NewLD); in LowerLOAD()
7774 return DAG.getMergeValues(Ops, dl); in LowerLOAD()
7786 SDLoc dl(Op); in LowerSTORE() local
7794 Value = DAG.getNode(ISD::ZERO_EXTEND, dl, getPointerTy(DAG.getDataLayout()), in LowerSTORE()
7796 return DAG.getTruncStore(Chain, dl, Value, BasePtr, MVT::i8, MMO); in LowerSTORE()
7897 SDLoc dl(Op); in LowerSELECT_CC() local
7904 dl, getSetCCResultType(DAG.getDataLayout(), *DAG.getContext(), CmpVT), in LowerSELECT_CC()
7906 SDValue Zero = DAG.getConstant(0, dl, Z.getValueType()); in LowerSELECT_CC()
7907 return DAG.getSelectCC(dl, Z, Zero, TV, FV, ISD::SETNE); in LowerSELECT_CC()
7925 return DAG.getNode(PPCISD::XSMAXC, dl, Op.getValueType(), LHS, RHS); in LowerSELECT_CC()
7928 return DAG.getNode(PPCISD::XSMINC, dl, Op.getValueType(), LHS, RHS); in LowerSELECT_CC()
7951 LHS = DAG.getNode(ISD::FP_EXTEND, dl, MVT::f64, LHS); in LowerSELECT_CC()
7952 Sel1 = DAG.getNode(PPCISD::FSEL, dl, ResVT, LHS, TV, FV); in LowerSELECT_CC()
7954 Sel1 = DAG.getNode(ISD::FP_EXTEND, dl, MVT::f64, Sel1); in LowerSELECT_CC()
7955 return DAG.getNode(PPCISD::FSEL, dl, ResVT, in LowerSELECT_CC()
7956 DAG.getNode(ISD::FNEG, dl, MVT::f64, LHS), Sel1, FV); in LowerSELECT_CC()
7964 LHS = DAG.getNode(ISD::FP_EXTEND, dl, MVT::f64, LHS); in LowerSELECT_CC()
7965 return DAG.getNode(PPCISD::FSEL, dl, ResVT, LHS, TV, FV); in LowerSELECT_CC()
7973 LHS = DAG.getNode(ISD::FP_EXTEND, dl, MVT::f64, LHS); in LowerSELECT_CC()
7974 return DAG.getNode(PPCISD::FSEL, dl, ResVT, in LowerSELECT_CC()
7975 DAG.getNode(ISD::FNEG, dl, MVT::f64, LHS), TV, FV); in LowerSELECT_CC()
7985 Cmp = DAG.getNode(ISD::FSUB, dl, CmpVT, LHS, RHS, Flags); in LowerSELECT_CC()
7987 Cmp = DAG.getNode(ISD::FP_EXTEND, dl, MVT::f64, Cmp); in LowerSELECT_CC()
7988 Sel1 = DAG.getNode(PPCISD::FSEL, dl, ResVT, Cmp, TV, FV); in LowerSELECT_CC()
7990 Sel1 = DAG.getNode(ISD::FP_EXTEND, dl, MVT::f64, Sel1); in LowerSELECT_CC()
7991 return DAG.getNode(PPCISD::FSEL, dl, ResVT, in LowerSELECT_CC()
7992 DAG.getNode(ISD::FNEG, dl, MVT::f64, Cmp), Sel1, FV); in LowerSELECT_CC()
7995 Cmp = DAG.getNode(ISD::FSUB, dl, CmpVT, LHS, RHS, Flags); in LowerSELECT_CC()
7997 Cmp = DAG.getNode(ISD::FP_EXTEND, dl, MVT::f64, Cmp); in LowerSELECT_CC()
7998 return DAG.getNode(PPCISD::FSEL, dl, ResVT, Cmp, FV, TV); in LowerSELECT_CC()
8001 Cmp = DAG.getNode(ISD::FSUB, dl, CmpVT, LHS, RHS, Flags); in LowerSELECT_CC()
8003 Cmp = DAG.getNode(ISD::FP_EXTEND, dl, MVT::f64, Cmp); in LowerSELECT_CC()
8004 return DAG.getNode(PPCISD::FSEL, dl, ResVT, Cmp, TV, FV); in LowerSELECT_CC()
8007 Cmp = DAG.getNode(ISD::FSUB, dl, CmpVT, RHS, LHS, Flags); in LowerSELECT_CC()
8009 Cmp = DAG.getNode(ISD::FP_EXTEND, dl, MVT::f64, Cmp); in LowerSELECT_CC()
8010 return DAG.getNode(PPCISD::FSEL, dl, ResVT, Cmp, FV, TV); in LowerSELECT_CC()
8013 Cmp = DAG.getNode(ISD::FSUB, dl, CmpVT, RHS, LHS, Flags); in LowerSELECT_CC()
8015 Cmp = DAG.getNode(ISD::FP_EXTEND, dl, MVT::f64, Cmp); in LowerSELECT_CC()
8016 return DAG.getNode(PPCISD::FSEL, dl, ResVT, Cmp, TV, FV); in LowerSELECT_CC()
8046 SDLoc dl(Op); in convertFPToInt() local
8062 DAG.getNode(ISD::STRICT_FP_EXTEND, dl, in convertFPToInt()
8066 Src = DAG.getNode(ISD::FP_EXTEND, dl, MVT::f64, Src); in convertFPToInt()
8083 Conv = DAG.getNode(Opc, dl, DAG.getVTList(MVT::f64, MVT::Other), in convertFPToInt()
8086 Conv = DAG.getNode(Opc, dl, MVT::f64, Src); in convertFPToInt()
8093 const SDLoc &dl) const { in LowerFP_TO_INTForReuse()
8116 Chain = DAG.getMemIntrinsicNode(PPCISD::STFIWX, dl, in LowerFP_TO_INTForReuse()
8119 Chain = DAG.getStore(Chain, dl, Tmp, FIPtr, MPI, Alignment); in LowerFP_TO_INTForReuse()
8124 FIPtr = DAG.getNode(ISD::ADD, dl, FIPtr.getValueType(), FIPtr, in LowerFP_TO_INTForReuse()
8125 DAG.getConstant(4, dl, FIPtr.getValueType())); in LowerFP_TO_INTForReuse()
8140 const SDLoc &dl) const { in LowerFP_TO_INTDirectMove()
8142 SDValue Mov = DAG.getNode(PPCISD::MFVSR, dl, Op.getValueType(), Conv); in LowerFP_TO_INTDirectMove()
8144 return DAG.getMergeValues({Mov, Conv.getValue(1)}, dl); in LowerFP_TO_INTDirectMove()
8150 const SDLoc &dl) const { in LowerFP_TO_INT()
8173 SDValue Lo = DAG.getNode(ISD::EXTRACT_ELEMENT, dl, MVT::f64, Src, in LowerFP_TO_INT()
8174 DAG.getIntPtrConstant(0, dl)); in LowerFP_TO_INT()
8175 SDValue Hi = DAG.getNode(ISD::EXTRACT_ELEMENT, dl, MVT::f64, Src, in LowerFP_TO_INT()
8176 DAG.getIntPtrConstant(1, dl)); in LowerFP_TO_INT()
8181 SDValue Res = DAG.getNode(PPCISD::STRICT_FADDRTZ, dl, in LowerFP_TO_INT()
8184 return DAG.getNode(ISD::STRICT_FP_TO_SINT, dl, in LowerFP_TO_INT()
8188 SDValue Res = DAG.getNode(PPCISD::FADDRTZ, dl, MVT::f64, Lo, Hi); in LowerFP_TO_INT()
8189 return DAG.getNode(ISD::FP_TO_SINT, dl, MVT::i32, Res); in LowerFP_TO_INT()
8194 SDValue Cst = DAG.getConstantFP(APF, dl, SrcVT); in LowerFP_TO_INT()
8195 SDValue SignMask = DAG.getConstant(0x80000000, dl, DstVT); in LowerFP_TO_INT()
8206 SDValue Sel = DAG.getSetCC(dl, SetCCVT, Src, Cst, ISD::SETLT, in LowerFP_TO_INT()
8211 dl, SrcVT, Sel, DAG.getConstantFP(0.0, dl, SrcVT), Cst); in LowerFP_TO_INT()
8212 Sel = DAG.getBoolExtOrTrunc(Sel, dl, DstSetCCVT, DstVT); in LowerFP_TO_INT()
8214 SDValue Val = DAG.getNode(ISD::STRICT_FSUB, dl, in LowerFP_TO_INT()
8218 SDValue SInt = DAG.getNode(ISD::STRICT_FP_TO_SINT, dl, in LowerFP_TO_INT()
8223 dl, DstVT, Sel, DAG.getConstant(0, dl, DstVT), SignMask); in LowerFP_TO_INT()
8224 SDValue Result = DAG.getNode(ISD::XOR, dl, DstVT, SInt, IntOfs); in LowerFP_TO_INT()
8225 return DAG.getMergeValues({Result, Chain}, dl); in LowerFP_TO_INT()
8229 SDValue True = DAG.getNode(ISD::FSUB, dl, MVT::ppcf128, Src, Cst); in LowerFP_TO_INT()
8230 True = DAG.getNode(ISD::FP_TO_SINT, dl, MVT::i32, True); in LowerFP_TO_INT()
8231 True = DAG.getNode(ISD::ADD, dl, MVT::i32, True, SignMask); in LowerFP_TO_INT()
8232 SDValue False = DAG.getNode(ISD::FP_TO_SINT, dl, MVT::i32, Src); in LowerFP_TO_INT()
8233 return DAG.getSelectCC(dl, Src, Cst, True, False, ISD::SETGE); in LowerFP_TO_INT()
8242 return LowerFP_TO_INTDirectMove(Op, DAG, dl); in LowerFP_TO_INT()
8245 LowerFP_TO_INTForReuse(Op, RLI, DAG, dl); in LowerFP_TO_INT()
8247 return DAG.getLoad(Op.getValueType(), dl, RLI.Chain, RLI.Ptr, RLI.MPI, in LowerFP_TO_INT()
8267 SDLoc dl(Op); in canReuseLoadAddress() local
8275 LowerFP_TO_INTForReuse(Op, RLI, DAG, dl); in canReuseLoadAddress()
8297 RLI.Ptr = DAG.getNode(ISD::ADD, dl, RLI.Ptr.getValueType(), RLI.Ptr, in canReuseLoadAddress()
8323 SDLoc dl(NewResChain); in spliceIntoChain() local
8325 SDValue TF = DAG.getNode(ISD::TokenFactor, dl, MVT::Other, in spliceIntoChain()
8371 SDLoc dl(Op); in convertIntToFP() local
8386 return DAG.getNode(getPPCStrictOpcode(ConvOpc), dl, in convertIntToFP()
8389 return DAG.getNode(ConvOpc, dl, ConvTy, Src); in convertIntToFP()
8397 const SDLoc &dl) const { in LowerINT_TO_FPDirectMove()
8408 SDValue Mov = DAG.getNode(MovOpc, dl, MVT::f64, Src); in LowerINT_TO_FPDirectMove()
8412 static SDValue widenVec(SelectionDAG &DAG, SDValue Vec, const SDLoc &dl) { in widenVec() argument
8429 return DAG.getNode(ISD::CONCAT_VECTORS, dl, WideVT, Ops); in widenVec()
8433 const SDLoc &dl) const { in LowerINT_TO_FPVector()
8450 SDValue Wide = widenVec(DAG, Src, dl); in LowerINT_TO_FPVector()
8469 SignedConv ? DAG.getUNDEF(WideVT) : DAG.getConstant(0, dl, WideVT); in LowerINT_TO_FPVector()
8470 SDValue Arrange = DAG.getVectorShuffle(WideVT, dl, Wide, ShuffleSrc2, ShuffV); in LowerINT_TO_FPVector()
8480 Extend = DAG.getNode(ISD::SIGN_EXTEND_INREG, dl, IntermediateVT, Arrange, in LowerINT_TO_FPVector()
8483 Extend = DAG.getNode(ISD::BITCAST, dl, IntermediateVT, Arrange); in LowerINT_TO_FPVector()
8486 return DAG.getNode(Opc, dl, DAG.getVTList(Op.getValueType(), MVT::Other), in LowerINT_TO_FPVector()
8489 return DAG.getNode(Opc, dl, Op.getValueType(), Extend); in LowerINT_TO_FPVector()
8494 SDLoc dl(Op); in LowerINT_TO_FP() local
8509 return LowerINT_TO_FPVector(Op, DAG, dl); in LowerINT_TO_FP()
8520 SDValue Sel = DAG.getNode(ISD::SELECT, dl, Op.getValueType(), Src, in LowerINT_TO_FP()
8521 DAG.getConstantFP(1.0, dl, Op.getValueType()), in LowerINT_TO_FP()
8522 DAG.getConstantFP(0.0, dl, Op.getValueType())); in LowerINT_TO_FP()
8524 return DAG.getMergeValues({Sel, Chain}, dl); in LowerINT_TO_FP()
8533 return LowerINT_TO_FPDirectMove(Op, DAG, dl); in LowerINT_TO_FP()
8560 SDValue Round = DAG.getNode(ISD::AND, dl, MVT::i64, in LowerINT_TO_FP()
8561 SINT, DAG.getConstant(2047, dl, MVT::i64)); in LowerINT_TO_FP()
8562 Round = DAG.getNode(ISD::ADD, dl, MVT::i64, in LowerINT_TO_FP()
8563 Round, DAG.getConstant(2047, dl, MVT::i64)); in LowerINT_TO_FP()
8564 Round = DAG.getNode(ISD::OR, dl, MVT::i64, Round, SINT); in LowerINT_TO_FP()
8565 Round = DAG.getNode(ISD::AND, dl, MVT::i64, in LowerINT_TO_FP()
8566 Round, DAG.getConstant(-2048, dl, MVT::i64)); in LowerINT_TO_FP()
8576 SDValue Cond = DAG.getNode(ISD::SRA, dl, MVT::i64, in LowerINT_TO_FP()
8577 SINT, DAG.getConstant(53, dl, MVT::i32)); in LowerINT_TO_FP()
8578 Cond = DAG.getNode(ISD::ADD, dl, MVT::i64, in LowerINT_TO_FP()
8579 Cond, DAG.getConstant(1, dl, MVT::i64)); in LowerINT_TO_FP()
8581 dl, in LowerINT_TO_FP()
8583 Cond, DAG.getConstant(1, dl, MVT::i64), ISD::SETUGT); in LowerINT_TO_FP()
8585 SINT = DAG.getNode(ISD::SELECT, dl, MVT::i64, Cond, Round, SINT); in LowerINT_TO_FP()
8593 Bits = DAG.getLoad(MVT::f64, dl, RLI.Chain, RLI.Ptr, RLI.MPI, in LowerINT_TO_FP()
8602 Bits = DAG.getMemIntrinsicNode(PPCISD::LFIWAX, dl, in LowerINT_TO_FP()
8612 Bits = DAG.getMemIntrinsicNode(PPCISD::LFIWZX, dl, in LowerINT_TO_FP()
8627 SDValue Store = DAG.getStore(Chain, dl, SINT.getOperand(0), FIdx, in LowerINT_TO_FP()
8647 dl, DAG.getVTList(MVT::f64, MVT::Other), in LowerINT_TO_FP()
8651 Bits = DAG.getNode(ISD::BITCAST, dl, MVT::f64, SINT); in LowerINT_TO_FP()
8659 FP = DAG.getNode(ISD::STRICT_FP_ROUND, dl, in LowerINT_TO_FP()
8661 {Chain, FP, DAG.getIntPtrConstant(0, dl)}, Flags); in LowerINT_TO_FP()
8663 FP = DAG.getNode(ISD::FP_ROUND, dl, MVT::f32, FP, in LowerINT_TO_FP()
8664 DAG.getIntPtrConstant(0, dl)); in LowerINT_TO_FP()
8687 SDValue Store = DAG.getStore(Chain, dl, Src, FIdx, in LowerINT_TO_FP()
8706 Ld = DAG.getMemIntrinsicNode(IsSigned ? PPCISD::LFIWAX : PPCISD::LFIWZX, dl, in LowerINT_TO_FP()
8719 SDValue Ext64 = DAG.getNode(ISD::SIGN_EXTEND, dl, MVT::i64, Src); in LowerINT_TO_FP()
8723 Chain, dl, Ext64, FIdx, in LowerINT_TO_FP()
8729 MVT::f64, dl, Chain, FIdx, in LowerINT_TO_FP()
8740 FP = DAG.getNode(ISD::STRICT_FP_ROUND, dl, in LowerINT_TO_FP()
8742 {Chain, FP, DAG.getIntPtrConstant(0, dl)}, Flags); in LowerINT_TO_FP()
8744 FP = DAG.getNode(ISD::FP_ROUND, dl, MVT::f32, FP, in LowerINT_TO_FP()
8745 DAG.getIntPtrConstant(0, dl)); in LowerINT_TO_FP()
8752 SDLoc dl(Op); in LowerFLT_ROUNDS_() local
8778 SDValue MFFS = DAG.getNode(PPCISD::MFFS, dl, {MVT::f64, MVT::Other}, Chain); in LowerFLT_ROUNDS_()
8783 CWD = DAG.getNode(ISD::TRUNCATE, dl, MVT::i32, in LowerFLT_ROUNDS_()
8784 DAG.getNode(ISD::BITCAST, dl, MVT::i64, MFFS)); in LowerFLT_ROUNDS_()
8789 Chain = DAG.getStore(Chain, dl, MFFS, StackSlot, MachinePointerInfo()); in LowerFLT_ROUNDS_()
8794 SDValue Four = DAG.getConstant(4, dl, PtrVT); in LowerFLT_ROUNDS_()
8795 SDValue Addr = DAG.getNode(ISD::ADD, dl, PtrVT, StackSlot, Four); in LowerFLT_ROUNDS_()
8796 CWD = DAG.getLoad(MVT::i32, dl, Chain, Addr, MachinePointerInfo()); in LowerFLT_ROUNDS_()
8802 DAG.getNode(ISD::AND, dl, MVT::i32, in LowerFLT_ROUNDS_()
8803 CWD, DAG.getConstant(3, dl, MVT::i32)); in LowerFLT_ROUNDS_()
8805 DAG.getNode(ISD::SRL, dl, MVT::i32, in LowerFLT_ROUNDS_()
8806 DAG.getNode(ISD::AND, dl, MVT::i32, in LowerFLT_ROUNDS_()
8807 DAG.getNode(ISD::XOR, dl, MVT::i32, in LowerFLT_ROUNDS_()
8808 CWD, DAG.getConstant(3, dl, MVT::i32)), in LowerFLT_ROUNDS_()
8809 DAG.getConstant(3, dl, MVT::i32)), in LowerFLT_ROUNDS_()
8810 DAG.getConstant(1, dl, MVT::i32)); in LowerFLT_ROUNDS_()
8813 DAG.getNode(ISD::XOR, dl, MVT::i32, CWD1, CWD2); in LowerFLT_ROUNDS_()
8817 dl, VT, RetVal); in LowerFLT_ROUNDS_()
8819 return DAG.getMergeValues({RetVal, Chain}, dl); in LowerFLT_ROUNDS_()
8825 SDLoc dl(Op); in LowerSHL_PARTS() local
8837 SDValue Tmp1 = DAG.getNode(ISD::SUB, dl, AmtVT, in LowerSHL_PARTS()
8838 DAG.getConstant(BitWidth, dl, AmtVT), Amt); in LowerSHL_PARTS()
8839 SDValue Tmp2 = DAG.getNode(PPCISD::SHL, dl, VT, Hi, Amt); in LowerSHL_PARTS()
8840 SDValue Tmp3 = DAG.getNode(PPCISD::SRL, dl, VT, Lo, Tmp1); in LowerSHL_PARTS()
8841 SDValue Tmp4 = DAG.getNode(ISD::OR , dl, VT, Tmp2, Tmp3); in LowerSHL_PARTS()
8842 SDValue Tmp5 = DAG.getNode(ISD::ADD, dl, AmtVT, Amt, in LowerSHL_PARTS()
8843 DAG.getConstant(-BitWidth, dl, AmtVT)); in LowerSHL_PARTS()
8844 SDValue Tmp6 = DAG.getNode(PPCISD::SHL, dl, VT, Lo, Tmp5); in LowerSHL_PARTS()
8845 SDValue OutHi = DAG.getNode(ISD::OR, dl, VT, Tmp4, Tmp6); in LowerSHL_PARTS()
8846 SDValue OutLo = DAG.getNode(PPCISD::SHL, dl, VT, Lo, Amt); in LowerSHL_PARTS()
8848 return DAG.getMergeValues(OutOps, dl); in LowerSHL_PARTS()
8853 SDLoc dl(Op); in LowerSRL_PARTS() local
8866 SDValue Tmp1 = DAG.getNode(ISD::SUB, dl, AmtVT, in LowerSRL_PARTS()
8867 DAG.getConstant(BitWidth, dl, AmtVT), Amt); in LowerSRL_PARTS()
8868 SDValue Tmp2 = DAG.getNode(PPCISD::SRL, dl, VT, Lo, Amt); in LowerSRL_PARTS()
8869 SDValue Tmp3 = DAG.getNode(PPCISD::SHL, dl, VT, Hi, Tmp1); in LowerSRL_PARTS()
8870 SDValue Tmp4 = DAG.getNode(ISD::OR, dl, VT, Tmp2, Tmp3); in LowerSRL_PARTS()
8871 SDValue Tmp5 = DAG.getNode(ISD::ADD, dl, AmtVT, Amt, in LowerSRL_PARTS()
8872 DAG.getConstant(-BitWidth, dl, AmtVT)); in LowerSRL_PARTS()
8873 SDValue Tmp6 = DAG.getNode(PPCISD::SRL, dl, VT, Hi, Tmp5); in LowerSRL_PARTS()
8874 SDValue OutLo = DAG.getNode(ISD::OR, dl, VT, Tmp4, Tmp6); in LowerSRL_PARTS()
8875 SDValue OutHi = DAG.getNode(PPCISD::SRL, dl, VT, Hi, Amt); in LowerSRL_PARTS()
8877 return DAG.getMergeValues(OutOps, dl); in LowerSRL_PARTS()
8881 SDLoc dl(Op); in LowerSRA_PARTS() local
8894 SDValue Tmp1 = DAG.getNode(ISD::SUB, dl, AmtVT, in LowerSRA_PARTS()
8895 DAG.getConstant(BitWidth, dl, AmtVT), Amt); in LowerSRA_PARTS()
8896 SDValue Tmp2 = DAG.getNode(PPCISD::SRL, dl, VT, Lo, Amt); in LowerSRA_PARTS()
8897 SDValue Tmp3 = DAG.getNode(PPCISD::SHL, dl, VT, Hi, Tmp1); in LowerSRA_PARTS()
8898 SDValue Tmp4 = DAG.getNode(ISD::OR, dl, VT, Tmp2, Tmp3); in LowerSRA_PARTS()
8899 SDValue Tmp5 = DAG.getNode(ISD::ADD, dl, AmtVT, Amt, in LowerSRA_PARTS()
8900 DAG.getConstant(-BitWidth, dl, AmtVT)); in LowerSRA_PARTS()
8901 SDValue Tmp6 = DAG.getNode(PPCISD::SRA, dl, VT, Hi, Tmp5); in LowerSRA_PARTS()
8902 SDValue OutHi = DAG.getNode(PPCISD::SRA, dl, VT, Hi, Amt); in LowerSRA_PARTS()
8903 SDValue OutLo = DAG.getSelectCC(dl, Tmp5, DAG.getConstant(0, dl, AmtVT), in LowerSRA_PARTS()
8906 return DAG.getMergeValues(OutOps, dl); in LowerSRA_PARTS()
8911 SDLoc dl(Op); in LowerFunnelShift() local
8925 Z = DAG.getNode(ISD::AND, dl, AmtVT, Z, in LowerFunnelShift()
8926 DAG.getConstant(BitWidth - 1, dl, AmtVT)); in LowerFunnelShift()
8928 DAG.getNode(ISD::SUB, dl, AmtVT, DAG.getConstant(BitWidth, dl, AmtVT), Z); in LowerFunnelShift()
8929 X = DAG.getNode(PPCISD::SHL, dl, VT, X, IsFSHL ? Z : SubZ); in LowerFunnelShift()
8930 Y = DAG.getNode(PPCISD::SRL, dl, VT, Y, IsFSHL ? SubZ : Z); in LowerFunnelShift()
8931 return DAG.getNode(ISD::OR, dl, VT, X, Y); in LowerFunnelShift()
8941 SelectionDAG &DAG, const SDLoc &dl) { in getCanonicalConstSplat() argument
8957 return DAG.getBitcast(ReqVT, DAG.getConstant(Val, dl, CanonicalVT)); in getCanonicalConstSplat()
8963 const SDLoc &dl, EVT DestVT = MVT::Other) { in BuildIntrinsicOp() argument
8965 return DAG.getNode(ISD::INTRINSIC_WO_CHAIN, dl, DestVT, in BuildIntrinsicOp()
8966 DAG.getConstant(IID, dl, MVT::i32), Op); in BuildIntrinsicOp()
8972 SelectionDAG &DAG, const SDLoc &dl, in BuildIntrinsicOp() argument
8975 return DAG.getNode(ISD::INTRINSIC_WO_CHAIN, dl, DestVT, in BuildIntrinsicOp()
8976 DAG.getConstant(IID, dl, MVT::i32), LHS, RHS); in BuildIntrinsicOp()
8982 SDValue Op2, SelectionDAG &DAG, const SDLoc &dl, in BuildIntrinsicOp() argument
8985 return DAG.getNode(ISD::INTRINSIC_WO_CHAIN, dl, DestVT, in BuildIntrinsicOp()
8986 DAG.getConstant(IID, dl, MVT::i32), Op0, Op1, Op2); in BuildIntrinsicOp()
8992 SelectionDAG &DAG, const SDLoc &dl) { in BuildVSLDOI() argument
8994 LHS = DAG.getNode(ISD::BITCAST, dl, MVT::v16i8, LHS); in BuildVSLDOI()
8995 RHS = DAG.getNode(ISD::BITCAST, dl, MVT::v16i8, RHS); in BuildVSLDOI()
9000 SDValue T = DAG.getVectorShuffle(MVT::v16i8, dl, LHS, RHS, Ops); in BuildVSLDOI()
9001 return DAG.getNode(ISD::BITCAST, dl, VT, T); in BuildVSLDOI()
9060 SDLoc dl(Op); in LowerBITCAST() local
9069 return DAG.getNode(PPCISD::BUILD_FP128, dl, MVT::f128, Op0.getOperand(0), in LowerBITCAST()
9171 SDLoc dl(Op); in LowerBUILD_VECTOR() local
9194 PPCISD::XXSPLTI_SP_TO_DP, dl, MVT::v2f64, in LowerBUILD_VECTOR()
9195 DAG.getTargetConstant(APSplatBits.getZExtValue(), dl, MVT::i32)); in LowerBUILD_VECTOR()
9208 SplatNode = DAG.getTargetConstant(0, dl, MVT::v2i64); in LowerBUILD_VECTOR()
9212 PPCISD::XXSPLTI32DX, dl, MVT::v2i64, SplatNode, in LowerBUILD_VECTOR()
9213 DAG.getTargetConstant(0, dl, MVT::i32), in LowerBUILD_VECTOR()
9214 DAG.getTargetConstant(Hi, dl, MVT::i32)); in LowerBUILD_VECTOR()
9218 DAG.getNode(PPCISD::XXSPLTI32DX, dl, MVT::v2i64, SplatNode, in LowerBUILD_VECTOR()
9219 DAG.getTargetConstant(1, dl, MVT::i32), in LowerBUILD_VECTOR()
9220 DAG.getTargetConstant(Lo, dl, MVT::i32)); in LowerBUILD_VECTOR()
9292 NewOpcode, dl, DAG.getVTList(Op.getValueType(), MVT::Other), Ops, in LowerBUILD_VECTOR()
9322 SDValue Z = DAG.getConstant(0, dl, MVT::v4i32); in LowerBUILD_VECTOR()
9323 Op = DAG.getNode(ISD::BITCAST, dl, Op.getValueType(), Z); in LowerBUILD_VECTOR()
9335 Op.getValueType(), DAG, dl); in LowerBUILD_VECTOR()
9339 dl); in LowerBUILD_VECTOR()
9344 dl); in LowerBUILD_VECTOR()
9351 dl); in LowerBUILD_VECTOR()
9366 SDValue Elt = DAG.getConstant(SextVal, dl, MVT::i32); in LowerBUILD_VECTOR()
9369 SDValue EltSize = DAG.getConstant(SplatSize, dl, MVT::i32); in LowerBUILD_VECTOR()
9370 SDValue RetVal = DAG.getNode(PPCISD::VADD_SPLAT, dl, VT, Elt, EltSize); in LowerBUILD_VECTOR()
9374 return DAG.getNode(ISD::BITCAST, dl, Op.getValueType(), RetVal); in LowerBUILD_VECTOR()
9382 SDValue OnesV = getCanonicalConstSplat(-1, 4, MVT::v4i32, DAG, dl); in LowerBUILD_VECTOR()
9386 OnesV, DAG, dl); in LowerBUILD_VECTOR()
9389 Res = DAG.getNode(ISD::XOR, dl, MVT::v4i32, Res, OnesV); in LowerBUILD_VECTOR()
9390 return DAG.getNode(ISD::BITCAST, dl, Op.getValueType(), Res); in LowerBUILD_VECTOR()
9410 SDValue Res = getCanonicalConstSplat(i, SplatSize, MVT::Other, DAG, dl); in LowerBUILD_VECTOR()
9415 Res = BuildIntrinsicOp(IIDs[SplatSize-1], Res, Res, DAG, dl); in LowerBUILD_VECTOR()
9416 return DAG.getNode(ISD::BITCAST, dl, Op.getValueType(), Res); in LowerBUILD_VECTOR()
9421 SDValue Res = getCanonicalConstSplat(i, SplatSize, MVT::Other, DAG, dl); in LowerBUILD_VECTOR()
9426 Res = BuildIntrinsicOp(IIDs[SplatSize-1], Res, Res, DAG, dl); in LowerBUILD_VECTOR()
9427 return DAG.getNode(ISD::BITCAST, dl, Op.getValueType(), Res); in LowerBUILD_VECTOR()
9433 SDValue Res = getCanonicalConstSplat(i, SplatSize, MVT::Other, DAG, dl); in LowerBUILD_VECTOR()
9438 Res = BuildIntrinsicOp(IIDs[SplatSize-1], Res, Res, DAG, dl); in LowerBUILD_VECTOR()
9439 return DAG.getNode(ISD::BITCAST, dl, Op.getValueType(), Res); in LowerBUILD_VECTOR()
9444 SDValue T = getCanonicalConstSplat(i, SplatSize, MVT::v16i8, DAG, dl); in LowerBUILD_VECTOR()
9446 return BuildVSLDOI(T, T, Amt, Op.getValueType(), DAG, dl); in LowerBUILD_VECTOR()
9450 SDValue T = getCanonicalConstSplat(i, SplatSize, MVT::v16i8, DAG, dl); in LowerBUILD_VECTOR()
9452 return BuildVSLDOI(T, T, Amt, Op.getValueType(), DAG, dl); in LowerBUILD_VECTOR()
9456 SDValue T = getCanonicalConstSplat(i, SplatSize, MVT::v16i8, DAG, dl); in LowerBUILD_VECTOR()
9458 return BuildVSLDOI(T, T, Amt, Op.getValueType(), DAG, dl); in LowerBUILD_VECTOR()
9469 const SDLoc &dl) { in GeneratePerfectShuffle() argument
9494 OpLHS = GeneratePerfectShuffle(PerfectShuffleTable[LHSID], LHS, RHS, DAG, dl); in GeneratePerfectShuffle()
9495 OpRHS = GeneratePerfectShuffle(PerfectShuffleTable[RHSID], LHS, RHS, DAG, dl); in GeneratePerfectShuffle()
9529 return BuildVSLDOI(OpLHS, OpRHS, 4, OpLHS.getValueType(), DAG, dl); in GeneratePerfectShuffle()
9531 return BuildVSLDOI(OpLHS, OpRHS, 8, OpLHS.getValueType(), DAG, dl); in GeneratePerfectShuffle()
9533 return BuildVSLDOI(OpLHS, OpRHS, 12, OpLHS.getValueType(), DAG, dl); in GeneratePerfectShuffle()
9536 OpLHS = DAG.getNode(ISD::BITCAST, dl, MVT::v16i8, OpLHS); in GeneratePerfectShuffle()
9537 OpRHS = DAG.getNode(ISD::BITCAST, dl, MVT::v16i8, OpRHS); in GeneratePerfectShuffle()
9538 SDValue T = DAG.getVectorShuffle(MVT::v16i8, dl, OpLHS, OpRHS, ShufIdxs); in GeneratePerfectShuffle()
9539 return DAG.getNode(ISD::BITCAST, dl, VT, T); in GeneratePerfectShuffle()
9549 SDLoc dl(N); in lowerToVINSERTB() local
9634 SDValue Shl = DAG.getNode(PPCISD::VECSHL, dl, MVT::v16i8, V2, V2, in lowerToVINSERTB()
9635 DAG.getConstant(ShiftElts, dl, MVT::i32)); in lowerToVINSERTB()
9636 return DAG.getNode(PPCISD::VECINSERT, dl, MVT::v16i8, V1, Shl, in lowerToVINSERTB()
9637 DAG.getConstant(InsertAtByte, dl, MVT::i32)); in lowerToVINSERTB()
9639 return DAG.getNode(PPCISD::VECINSERT, dl, MVT::v16i8, V1, V2, in lowerToVINSERTB()
9640 DAG.getConstant(InsertAtByte, dl, MVT::i32)); in lowerToVINSERTB()
9655 SDLoc dl(N); in lowerToVINSERTH() local
9739 SDValue Conv1 = DAG.getNode(ISD::BITCAST, dl, MVT::v8i16, V1); in lowerToVINSERTH()
9742 SDValue Shl = DAG.getNode(PPCISD::VECSHL, dl, MVT::v16i8, V2, V2, in lowerToVINSERTH()
9743 DAG.getConstant(2 * ShiftElts, dl, MVT::i32)); in lowerToVINSERTH()
9744 SDValue Conv2 = DAG.getNode(ISD::BITCAST, dl, MVT::v8i16, Shl); in lowerToVINSERTH()
9745 SDValue Ins = DAG.getNode(PPCISD::VECINSERT, dl, MVT::v8i16, Conv1, Conv2, in lowerToVINSERTH()
9746 DAG.getConstant(InsertAtByte, dl, MVT::i32)); in lowerToVINSERTH()
9747 return DAG.getNode(ISD::BITCAST, dl, MVT::v16i8, Ins); in lowerToVINSERTH()
9749 SDValue Conv2 = DAG.getNode(ISD::BITCAST, dl, MVT::v8i16, V2); in lowerToVINSERTH()
9750 SDValue Ins = DAG.getNode(PPCISD::VECINSERT, dl, MVT::v8i16, Conv1, Conv2, in lowerToVINSERTH()
9751 DAG.getConstant(InsertAtByte, dl, MVT::i32)); in lowerToVINSERTH()
9752 return DAG.getNode(ISD::BITCAST, dl, MVT::v16i8, Ins); in lowerToVINSERTH()
9834 SDLoc dl(Op); in LowerROTL() local
9843 DAG.getVectorShuffle(MVT::v16i8, dl, DAG.getBitcast(MVT::v16i8, N0), in LowerROTL()
9845 return DAG.getNode(ISD::BITCAST, dl, MVT::v1i128, Shuffle); in LowerROTL()
9848 SDValue SHLOp = DAG.getNode(ISD::SHL, dl, MVT::i128, ArgVal, in LowerROTL()
9849 DAG.getConstant(SHLAmt, dl, MVT::i32)); in LowerROTL()
9850 SDValue SRLOp = DAG.getNode(ISD::SRL, dl, MVT::i128, ArgVal, in LowerROTL()
9851 DAG.getConstant(128 - SHLAmt, dl, MVT::i32)); in LowerROTL()
9852 SDValue OROp = DAG.getNode(ISD::OR, dl, MVT::i128, SHLOp, SRLOp); in LowerROTL()
9853 return DAG.getNode(ISD::BITCAST, dl, MVT::v1i128, OROp); in LowerROTL()
9862 SDLoc dl(Op); in LowerVECTOR_SHUFFLE() local
9923 BasePtr = DAG.getNode(ISD::ADD, dl, getPointerTy(DAG.getDataLayout()), in LowerVECTOR_SHUFFLE()
9924 BasePtr, DAG.getIntPtrConstant(Offset, dl)); in LowerVECTOR_SHUFFLE()
9933 DAG.getMemIntrinsicNode(PPCISD::LD_SPLAT, dl, VTL, in LowerVECTOR_SHUFFLE()
9951 SDValue Conv1 = DAG.getNode(ISD::BITCAST, dl, MVT::v4i32, V1); in LowerVECTOR_SHUFFLE()
9952 SDValue Conv2 = DAG.getNode(ISD::BITCAST, dl, MVT::v4i32, V2); in LowerVECTOR_SHUFFLE()
9954 SDValue Shl = DAG.getNode(PPCISD::VECSHL, dl, MVT::v4i32, Conv2, Conv2, in LowerVECTOR_SHUFFLE()
9955 DAG.getConstant(ShiftElts, dl, MVT::i32)); in LowerVECTOR_SHUFFLE()
9956 SDValue Ins = DAG.getNode(PPCISD::VECINSERT, dl, MVT::v4i32, Conv1, Shl, in LowerVECTOR_SHUFFLE()
9957 DAG.getConstant(InsertAtByte, dl, MVT::i32)); in LowerVECTOR_SHUFFLE()
9958 return DAG.getNode(ISD::BITCAST, dl, MVT::v16i8, Ins); in LowerVECTOR_SHUFFLE()
9960 SDValue Ins = DAG.getNode(PPCISD::VECINSERT, dl, MVT::v4i32, Conv1, Conv2, in LowerVECTOR_SHUFFLE()
9961 DAG.getConstant(InsertAtByte, dl, MVT::i32)); in LowerVECTOR_SHUFFLE()
9962 return DAG.getNode(ISD::BITCAST, dl, MVT::v16i8, Ins); in LowerVECTOR_SHUFFLE()
9984 SDValue Conv1 = DAG.getNode(ISD::BITCAST, dl, MVT::v4i32, V1); in LowerVECTOR_SHUFFLE()
9986 DAG.getNode(ISD::BITCAST, dl, MVT::v4i32, V2.isUndef() ? V1 : V2); in LowerVECTOR_SHUFFLE()
9988 SDValue Shl = DAG.getNode(PPCISD::VECSHL, dl, MVT::v4i32, Conv1, Conv2, in LowerVECTOR_SHUFFLE()
9989 DAG.getConstant(ShiftElts, dl, MVT::i32)); in LowerVECTOR_SHUFFLE()
9990 return DAG.getNode(ISD::BITCAST, dl, MVT::v16i8, Shl); in LowerVECTOR_SHUFFLE()
9997 SDValue Conv1 = DAG.getNode(ISD::BITCAST, dl, MVT::v2i64, V1); in LowerVECTOR_SHUFFLE()
9999 DAG.getNode(ISD::BITCAST, dl, MVT::v2i64, V2.isUndef() ? V1 : V2); in LowerVECTOR_SHUFFLE()
10001 SDValue PermDI = DAG.getNode(PPCISD::XXPERMDI, dl, MVT::v2i64, Conv1, Conv2, in LowerVECTOR_SHUFFLE()
10002 DAG.getConstant(ShiftElts, dl, MVT::i32)); in LowerVECTOR_SHUFFLE()
10003 return DAG.getNode(ISD::BITCAST, dl, MVT::v16i8, PermDI); in LowerVECTOR_SHUFFLE()
10008 SDValue Conv = DAG.getNode(ISD::BITCAST, dl, MVT::v8i16, V1); in LowerVECTOR_SHUFFLE()
10009 SDValue ReveHWord = DAG.getNode(ISD::BSWAP, dl, MVT::v8i16, Conv); in LowerVECTOR_SHUFFLE()
10010 return DAG.getNode(ISD::BITCAST, dl, MVT::v16i8, ReveHWord); in LowerVECTOR_SHUFFLE()
10012 SDValue Conv = DAG.getNode(ISD::BITCAST, dl, MVT::v4i32, V1); in LowerVECTOR_SHUFFLE()
10013 SDValue ReveWord = DAG.getNode(ISD::BSWAP, dl, MVT::v4i32, Conv); in LowerVECTOR_SHUFFLE()
10014 return DAG.getNode(ISD::BITCAST, dl, MVT::v16i8, ReveWord); in LowerVECTOR_SHUFFLE()
10016 SDValue Conv = DAG.getNode(ISD::BITCAST, dl, MVT::v2i64, V1); in LowerVECTOR_SHUFFLE()
10017 SDValue ReveDWord = DAG.getNode(ISD::BSWAP, dl, MVT::v2i64, Conv); in LowerVECTOR_SHUFFLE()
10018 return DAG.getNode(ISD::BITCAST, dl, MVT::v16i8, ReveDWord); in LowerVECTOR_SHUFFLE()
10020 SDValue Conv = DAG.getNode(ISD::BITCAST, dl, MVT::v1i128, V1); in LowerVECTOR_SHUFFLE()
10021 SDValue ReveQWord = DAG.getNode(ISD::BSWAP, dl, MVT::v1i128, Conv); in LowerVECTOR_SHUFFLE()
10022 return DAG.getNode(ISD::BITCAST, dl, MVT::v16i8, ReveQWord); in LowerVECTOR_SHUFFLE()
10030 SDValue Conv = DAG.getNode(ISD::BITCAST, dl, MVT::v4i32, V1); in LowerVECTOR_SHUFFLE()
10031 SDValue Splat = DAG.getNode(PPCISD::XXSPLT, dl, MVT::v4i32, Conv, in LowerVECTOR_SHUFFLE()
10032 DAG.getConstant(SplatIdx, dl, MVT::i32)); in LowerVECTOR_SHUFFLE()
10033 return DAG.getNode(ISD::BITCAST, dl, MVT::v16i8, Splat); in LowerVECTOR_SHUFFLE()
10038 SDValue Conv = DAG.getNode(ISD::BITCAST, dl, MVT::v2f64, V1); in LowerVECTOR_SHUFFLE()
10039 SDValue Swap = DAG.getNode(PPCISD::SWAP_NO_CHAIN, dl, MVT::v2f64, Conv); in LowerVECTOR_SHUFFLE()
10040 return DAG.getNode(ISD::BITCAST, dl, MVT::v16i8, Swap); in LowerVECTOR_SHUFFLE()
10142 return GeneratePerfectShuffle(PFEntry, V1, V2, DAG, dl); in LowerVECTOR_SHUFFLE()
10167 dl, MVT::i32)); in LowerVECTOR_SHUFFLE()
10169 ResultMask.push_back(DAG.getConstant(SrcElt*BytesPerElement + j, dl, in LowerVECTOR_SHUFFLE()
10174 SDValue VPermMask = DAG.getBuildVector(MVT::v16i8, dl, ResultMask); in LowerVECTOR_SHUFFLE()
10181 return DAG.getNode(PPCISD::VPERM, dl, V1.getValueType(), in LowerVECTOR_SHUFFLE()
10184 return DAG.getNode(PPCISD::VPERM, dl, V1.getValueType(), in LowerVECTOR_SHUFFLE()
10482 SDLoc dl(Op); in LowerINTRINSIC_WO_CHAIN() local
10497 WideVec = DAG.getNode(PPCISD::XXMFACC, dl, MVT::v512i1, WideVec); in LowerINTRINSIC_WO_CHAIN()
10502 PPCISD::EXTRACT_VSX_REG, dl, MVT::v16i8, WideVec, in LowerINTRINSIC_WO_CHAIN()
10505 dl, getPointerTy(DAG.getDataLayout()))); in LowerINTRINSIC_WO_CHAIN()
10508 return DAG.getMergeValues(RetOps, dl); in LowerINTRINSIC_WO_CHAIN()
10515 return DAG.getNode(ISD::EXTRACT_ELEMENT, dl, MVT::f64, Op.getOperand(1), in LowerINTRINSIC_WO_CHAIN()
10516 DAG.getConstant(!!(Idx->getSExtValue()), dl, in LowerINTRINSIC_WO_CHAIN()
10541 PPC::SELECT_CC_I4, dl, MVT::i32, in LowerINTRINSIC_WO_CHAIN()
10542 {SDValue(DAG.getMachineNode(PPC::XSCMPEXPDP, dl, MVT::i32, in LowerINTRINSIC_WO_CHAIN()
10545 DAG.getConstant(1, dl, MVT::i32), DAG.getConstant(0, dl, MVT::i32), in LowerINTRINSIC_WO_CHAIN()
10546 DAG.getTargetConstant(Pred, dl, MVT::i32)}), in LowerINTRINSIC_WO_CHAIN()
10556 PPC::SELECT_CC_I4, dl, MVT::i32, in LowerINTRINSIC_WO_CHAIN()
10557 {SDValue(DAG.getMachineNode(CmprOpc, dl, MVT::i32, Op.getOperand(2), in LowerINTRINSIC_WO_CHAIN()
10560 DAG.getConstant(1, dl, MVT::i32), DAG.getConstant(0, dl, MVT::i32), in LowerINTRINSIC_WO_CHAIN()
10561 DAG.getTargetConstant(PPC::PRED_EQ, dl, MVT::i32)}), in LowerINTRINSIC_WO_CHAIN()
10568 ISD::FNEG, dl, VT, in LowerINTRINSIC_WO_CHAIN()
10569 DAG.getNode(ISD::FMA, dl, VT, Op.getOperand(1), Op.getOperand(2), in LowerINTRINSIC_WO_CHAIN()
10570 DAG.getNode(ISD::FNEG, dl, VT, Op.getOperand(3)))); in LowerINTRINSIC_WO_CHAIN()
10571 return DAG.getNode(PPCISD::FNMSUB, dl, VT, Op.getOperand(1), in LowerINTRINSIC_WO_CHAIN()
10582 dl, SDValue()); in LowerINTRINSIC_WO_CHAIN()
10606 DAG.getSelectCC(dl, Res, Op.getOperand(I), Res, Op.getOperand(I), CC); in LowerINTRINSIC_WO_CHAIN()
10621 SDValue Tmp = DAG.getNode(PPCISD::VCMP, dl, Op.getOperand(2).getValueType(), in LowerINTRINSIC_WO_CHAIN()
10623 DAG.getConstant(CompareOpc, dl, MVT::i32)); in LowerINTRINSIC_WO_CHAIN()
10624 return DAG.getNode(ISD::BITCAST, dl, Op.getValueType(), Tmp); in LowerINTRINSIC_WO_CHAIN()
10631 DAG.getConstant(CompareOpc, dl, MVT::i32) in LowerINTRINSIC_WO_CHAIN()
10634 SDValue CompNode = DAG.getNode(PPCISD::VCMP_rec, dl, VTs, Ops); in LowerINTRINSIC_WO_CHAIN()
10638 SDValue Flags = DAG.getNode(PPCISD::MFOCRF, dl, MVT::i32, in LowerINTRINSIC_WO_CHAIN()
10662 Flags = DAG.getNode(ISD::SRL, dl, MVT::i32, Flags, in LowerINTRINSIC_WO_CHAIN()
10663 DAG.getConstant(8 - (3 - BitNo), dl, MVT::i32)); in LowerINTRINSIC_WO_CHAIN()
10665 Flags = DAG.getNode(ISD::AND, dl, MVT::i32, Flags, in LowerINTRINSIC_WO_CHAIN()
10666 DAG.getConstant(1, dl, MVT::i32)); in LowerINTRINSIC_WO_CHAIN()
10670 Flags = DAG.getNode(ISD::XOR, dl, MVT::i32, Flags, in LowerINTRINSIC_WO_CHAIN()
10671 DAG.getConstant(1, dl, MVT::i32)); in LowerINTRINSIC_WO_CHAIN()
10706 SDLoc dl(Op); in LowerBSWAP() local
10710 Op = DAG.getNode(ISD::BUILD_VECTOR, dl, MVT::v2i64, Op.getOperand(0), in LowerBSWAP()
10713 Op = DAG.getNode(ISD::BSWAP, dl, MVT::v2i64, Op); in LowerBSWAP()
10718 Op = DAG.getNode(ISD::EXTRACT_VECTOR_ELT, dl, MVT::i64, Op, in LowerBSWAP()
10719 DAG.getTargetConstant(VectorIndex, dl, MVT::i32)); in LowerBSWAP()
10729 SDLoc dl(Op); in LowerATOMIC_CMP_SWAP() local
10744 DAG.getNode(ISD::AND, dl, MVT::i32, CmpOp, in LowerATOMIC_CMP_SWAP()
10745 DAG.getConstant(MaskVal, dl, MVT::i32)); in LowerATOMIC_CMP_SWAP()
10756 return DAG.getMemIntrinsicNode(NodeTy, dl, Tys, Ops, MemVT, MMO); in LowerATOMIC_CMP_SWAP()
10765 SDLoc dl(N); in LowerATOMIC_LOAD_STORE() local
10774 DAG.getConstant(Intrinsic::ppc_atomic_load_i128, dl, MVT::i32)}; in LowerATOMIC_LOAD_STORE()
10777 SDValue LoadedVal = DAG.getMemIntrinsicNode(ISD::INTRINSIC_W_CHAIN, dl, Tys, in LowerATOMIC_LOAD_STORE()
10779 SDValue ValLo = DAG.getNode(ISD::ZERO_EXTEND, dl, MVT::i128, LoadedVal); in LowerATOMIC_LOAD_STORE()
10781 DAG.getNode(ISD::ZERO_EXTEND, dl, MVT::i128, LoadedVal.getValue(1)); in LowerATOMIC_LOAD_STORE()
10782 ValHi = DAG.getNode(ISD::SHL, dl, MVT::i128, ValHi, in LowerATOMIC_LOAD_STORE()
10783 DAG.getConstant(64, dl, MVT::i32)); in LowerATOMIC_LOAD_STORE()
10785 DAG.getNode(ISD::OR, dl, {MVT::i128, MVT::Other}, {ValLo, ValHi}); in LowerATOMIC_LOAD_STORE()
10786 return DAG.getNode(ISD::MERGE_VALUES, dl, {MVT::i128, MVT::Other}, in LowerATOMIC_LOAD_STORE()
10795 DAG.getConstant(Intrinsic::ppc_atomic_store_i128, dl, MVT::i32)}; in LowerATOMIC_LOAD_STORE()
10797 SDValue ValLo = DAG.getNode(ISD::TRUNCATE, dl, MVT::i64, Val); in LowerATOMIC_LOAD_STORE()
10798 SDValue ValHi = DAG.getNode(ISD::SRL, dl, MVT::i128, Val, in LowerATOMIC_LOAD_STORE()
10799 DAG.getConstant(64, dl, MVT::i32)); in LowerATOMIC_LOAD_STORE()
10800 ValHi = DAG.getNode(ISD::TRUNCATE, dl, MVT::i64, ValHi); in LowerATOMIC_LOAD_STORE()
10804 return DAG.getMemIntrinsicNode(ISD::INTRINSIC_VOID, dl, Tys, Ops, MemVT, in LowerATOMIC_LOAD_STORE()
10814 SDLoc dl(Op); in LowerSCALAR_TO_VECTOR() local
10822 SDValue Store = DAG.getStore(DAG.getEntryNode(), dl, Op.getOperand(0), FIdx, in LowerSCALAR_TO_VECTOR()
10825 return DAG.getLoad(Op.getValueType(), dl, Store, FIdx, MachinePointerInfo()); in LowerSCALAR_TO_VECTOR()
10836 SDLoc dl(Op); in LowerINSERT_VECTOR_ELT() local
10857 DAG.getNode(ISD::INSERT_VECTOR_ELT, dl, MVT::v4i32, BitcastVector, in LowerINSERT_VECTOR_ELT()
10880 SDValue Mtvsrz = DAG.getNode(PPCISD::MTVSRZ, dl, VT, V2); in LowerINSERT_VECTOR_ELT()
10887 return DAG.getNode(PPCISD::VECINSERT, dl, VT, V1, Mtvsrz, in LowerINSERT_VECTOR_ELT()
10888 DAG.getConstant(InsertAtByte, dl, MVT::i32)); in LowerINSERT_VECTOR_ELT()
10895 SDLoc dl(Op); in LowerVectorLoad() local
10917 DAG.getLoad(MVT::v16i8, dl, LoadChain, BasePtr, in LowerVectorLoad()
10921 BasePtr = DAG.getNode(ISD::ADD, dl, BasePtr.getValueType(), BasePtr, in LowerVectorLoad()
10922 DAG.getConstant(16, dl, BasePtr.getValueType())); in LowerVectorLoad()
10930 SDValue TF = DAG.getNode(ISD::TokenFactor, dl, MVT::Other, LoadChains); in LowerVectorLoad()
10933 dl, VT, Loads); in LowerVectorLoad()
10935 return DAG.getMergeValues(RetOps, dl); in LowerVectorLoad()
10940 SDLoc dl(Op); in LowerVectorStore() local
10961 Value = DAG.getNode(PPCISD::XXMFACC, dl, MVT::v512i1, Value); in LowerVectorStore()
10966 SDValue Elt = DAG.getNode(PPCISD::EXTRACT_VSX_REG, dl, MVT::v16i8, Value, in LowerVectorStore()
10967 DAG.getConstant(VecNum, dl, getPointerTy(DAG.getDataLayout()))); in LowerVectorStore()
10969 DAG.getStore(StoreChain, dl, Elt, BasePtr, in LowerVectorStore()
10973 BasePtr = DAG.getNode(ISD::ADD, dl, BasePtr.getValueType(), BasePtr, in LowerVectorStore()
10974 DAG.getConstant(16, dl, BasePtr.getValueType())); in LowerVectorStore()
10977 SDValue TF = DAG.getTokenFactor(dl, Stores); in LowerVectorStore()
10982 SDLoc dl(Op); in LowerMUL() local
10986 SDValue Zero = getCanonicalConstSplat(0, 1, MVT::v4i32, DAG, dl); in LowerMUL()
10988 SDValue Neg16 = getCanonicalConstSplat(-16, 4, MVT::v4i32, DAG, dl); in LowerMUL()
10990 BuildIntrinsicOp(Intrinsic::ppc_altivec_vrlw, RHS, Neg16, DAG, dl); in LowerMUL()
10993 LHS = DAG.getNode(ISD::BITCAST, dl, MVT::v8i16, LHS); in LowerMUL()
10994 RHS = DAG.getNode(ISD::BITCAST, dl, MVT::v8i16, RHS); in LowerMUL()
10995 RHSSwap = DAG.getNode(ISD::BITCAST, dl, MVT::v8i16, RHSSwap); in LowerMUL()
11000 LHS, RHS, DAG, dl, MVT::v4i32); in LowerMUL()
11003 LHS, RHSSwap, Zero, DAG, dl, MVT::v4i32); in LowerMUL()
11006 Neg16, DAG, dl); in LowerMUL()
11007 return DAG.getNode(ISD::ADD, dl, MVT::v4i32, LoProd, HiProd); in LowerMUL()
11014 LHS, RHS, DAG, dl, MVT::v8i16); in LowerMUL()
11015 EvenParts = DAG.getNode(ISD::BITCAST, dl, MVT::v16i8, EvenParts); in LowerMUL()
11019 LHS, RHS, DAG, dl, MVT::v8i16); in LowerMUL()
11020 OddParts = DAG.getNode(ISD::BITCAST, dl, MVT::v16i8, OddParts); in LowerMUL()
11037 return DAG.getVectorShuffle(MVT::v16i8, dl, OddParts, EvenParts, Ops); in LowerMUL()
11039 return DAG.getVectorShuffle(MVT::v16i8, dl, EvenParts, OddParts, Ops); in LowerMUL()
11066 SDLoc dl(Op); in LowerFP_EXTEND() local
11093 return DAG.getNode(PPCISD::FP_EXTEND_HALF, dl, MVT::v2f64, in LowerFP_EXTEND()
11094 Op0.getOperand(0), DAG.getConstant(DWord, dl, MVT::i32)); in LowerFP_EXTEND()
11109 PPCISD::LD_VSX_LH, dl, DAG.getVTList(MVT::v4f32, MVT::Other), LoadOps, in LowerFP_EXTEND()
11115 return DAG.getNode(PPCISD::FP_EXTEND_HALF, dl, MVT::v2f64, NewOp, in LowerFP_EXTEND()
11116 DAG.getConstant(0, dl, MVT::i32)); in LowerFP_EXTEND()
11122 PPCISD::LD_VSX_LH, dl, DAG.getVTList(MVT::v4f32, MVT::Other), LoadOps, in LowerFP_EXTEND()
11124 return DAG.getNode(PPCISD::FP_EXTEND_HALF, dl, MVT::v2f64, NewLd, in LowerFP_EXTEND()
11125 DAG.getConstant(0, dl, MVT::i32)); in LowerFP_EXTEND()
11228 SDLoc dl(N); in ReplaceNodeResults() local
11240 SDValue RTB = DAG.getNode(PPCISD::READ_TIME_BASE, dl, VTs, N->getOperand(0)); in ReplaceNodeResults()
11243 DAG.getNode(ISD::BUILD_PAIR, dl, MVT::i64, RTB, RTB.getValue(1))); in ReplaceNodeResults()
11257 SDValue NewInt = DAG.getNode(N->getOpcode(), dl, VTs, N->getOperand(0), in ReplaceNodeResults()
11260 Results.push_back(DAG.getNode(ISD::TRUNCATE, dl, MVT::i1, NewInt)); in ReplaceNodeResults()
11267 Results.push_back(DAG.getNode(ISD::BUILD_PAIR, dl, MVT::ppcf128, in ReplaceNodeResults()
11301 SDValue LoweredValue = LowerFP_TO_INT(SDValue(N, 0), DAG, dl); in ReplaceNodeResults()
11413 DebugLoc dl = MI.getDebugLoc(); in EmitAtomicBinary() local
11455 BuildMI(BB, dl, TII->get(LoadMnemonic), dest) in EmitAtomicBinary()
11458 BuildMI(BB, dl, TII->get(BinOpcode), TmpReg).addReg(incr).addReg(dest); in EmitAtomicBinary()
11463 BuildMI(BB, dl, TII->get(AtomicSize == 1 ? PPC::EXTSB : PPC::EXTSH), in EmitAtomicBinary()
11465 BuildMI(BB, dl, TII->get(CmpOpcode), PPC::CR0) in EmitAtomicBinary()
11468 BuildMI(BB, dl, TII->get(CmpOpcode), PPC::CR0) in EmitAtomicBinary()
11471 BuildMI(BB, dl, TII->get(PPC::BCC)) in EmitAtomicBinary()
11477 BuildMI(BB, dl, TII->get(StoreMnemonic)) in EmitAtomicBinary()
11479 BuildMI(BB, dl, TII->get(PPC::BCC)) in EmitAtomicBinary()
11554 DebugLoc dl = MI.getDebugLoc(); in EmitPartwordAtomicBinary() local
11563 BuildMI(*BB, MI, dl, TII->get(is8bit ? PPC::EXTSB : PPC::EXTSH), ValueReg) in EmitPartwordAtomicBinary()
11647 BuildMI(BB, dl, TII->get(is64bit ? PPC::ADD8 : PPC::ADD4), Ptr1Reg) in EmitPartwordAtomicBinary()
11655 BuildMI(BB, dl, TII->get(PPC::RLWINM), Shift1Reg) in EmitPartwordAtomicBinary()
11661 BuildMI(BB, dl, TII->get(PPC::XORI), ShiftReg) in EmitPartwordAtomicBinary()
11665 BuildMI(BB, dl, TII->get(PPC::RLDICR), PtrReg) in EmitPartwordAtomicBinary()
11670 BuildMI(BB, dl, TII->get(PPC::RLWINM), PtrReg) in EmitPartwordAtomicBinary()
11675 BuildMI(BB, dl, TII->get(PPC::SLW), Incr2Reg).addReg(incr).addReg(ShiftReg); in EmitPartwordAtomicBinary()
11677 BuildMI(BB, dl, TII->get(PPC::LI), Mask2Reg).addImm(255); in EmitPartwordAtomicBinary()
11679 BuildMI(BB, dl, TII->get(PPC::LI), Mask3Reg).addImm(0); in EmitPartwordAtomicBinary()
11680 BuildMI(BB, dl, TII->get(PPC::ORI), Mask2Reg) in EmitPartwordAtomicBinary()
11684 BuildMI(BB, dl, TII->get(PPC::SLW), MaskReg) in EmitPartwordAtomicBinary()
11689 BuildMI(BB, dl, TII->get(PPC::LWARX), TmpDestReg) in EmitPartwordAtomicBinary()
11693 BuildMI(BB, dl, TII->get(BinOpcode), TmpReg) in EmitPartwordAtomicBinary()
11696 BuildMI(BB, dl, TII->get(PPC::ANDC), Tmp2Reg) in EmitPartwordAtomicBinary()
11699 BuildMI(BB, dl, TII->get(PPC::AND), Tmp3Reg).addReg(TmpReg).addReg(MaskReg); in EmitPartwordAtomicBinary()
11704 BuildMI(BB, dl, TII->get(PPC::AND), SReg) in EmitPartwordAtomicBinary()
11711 BuildMI(BB, dl, TII->get(PPC::SRW), ValueReg) in EmitPartwordAtomicBinary()
11715 BuildMI(BB, dl, TII->get(is8bit ? PPC::EXTSB : PPC::EXTSH), ValueSReg) in EmitPartwordAtomicBinary()
11720 BuildMI(BB, dl, TII->get(CmpOpcode), PPC::CR0) in EmitPartwordAtomicBinary()
11723 BuildMI(BB, dl, TII->get(PPC::BCC)) in EmitPartwordAtomicBinary()
11731 BuildMI(BB, dl, TII->get(PPC::OR), Tmp4Reg).addReg(Tmp3Reg).addReg(Tmp2Reg); in EmitPartwordAtomicBinary()
11732 BuildMI(BB, dl, TII->get(PPC::STWCX)) in EmitPartwordAtomicBinary()
11736 BuildMI(BB, dl, TII->get(PPC::BCC)) in EmitPartwordAtomicBinary()
11748 BuildMI(*BB, BB->begin(), dl, TII->get(PPC::RLWINM), dest) in EmitPartwordAtomicBinary()
11753 BuildMI(*BB, BB->begin(), dl, TII->get(PPC::SRW), SrwDestReg) in EmitPartwordAtomicBinary()
12245 DebugLoc dl = MI.getDebugLoc(); in EmitInstrWithCustomInserter() local
12246 TII->insertSelect(*BB, MI, dl, MI.getOperand(0).getReg(), Cond, in EmitInstrWithCustomInserter()
12279 DebugLoc dl = MI.getDebugLoc(); in EmitInstrWithCustomInserter() local
12301 BuildMI(BB, dl, TII->get(PPC::BC)) in EmitInstrWithCustomInserter()
12306 BuildMI(BB, dl, TII->get(PPC::BCC)) in EmitInstrWithCustomInserter()
12324 BuildMI(*BB, BB->begin(), dl, TII->get(PPC::PHI), MI.getOperand(0).getReg()) in EmitInstrWithCustomInserter()
12344 DebugLoc dl = MI.getDebugLoc(); in EmitInstrWithCustomInserter() local
12361 BuildMI(BB, dl, TII->get(PPC::MFSPR), HiReg).addImm(269); in EmitInstrWithCustomInserter()
12362 BuildMI(BB, dl, TII->get(PPC::MFSPR), LoReg).addImm(268); in EmitInstrWithCustomInserter()
12363 BuildMI(BB, dl, TII->get(PPC::MFSPR), ReadAgainReg).addImm(269); in EmitInstrWithCustomInserter()
12367 BuildMI(BB, dl, TII->get(PPC::CMPW), CmpReg) in EmitInstrWithCustomInserter()
12370 BuildMI(BB, dl, TII->get(PPC::BCC)) in EmitInstrWithCustomInserter()
12512 DebugLoc dl = MI.getDebugLoc(); in EmitInstrWithCustomInserter() local
12543 BuildMI(BB, dl, TII->get(LoadMnemonic), dest).addReg(ptrA).addReg(ptrB); in EmitInstrWithCustomInserter()
12544 BuildMI(BB, dl, TII->get(is64bit ? PPC::CMPD : PPC::CMPW), PPC::CR0) in EmitInstrWithCustomInserter()
12547 BuildMI(BB, dl, TII->get(PPC::BCC)) in EmitInstrWithCustomInserter()
12555 BuildMI(BB, dl, TII->get(StoreMnemonic)) in EmitInstrWithCustomInserter()
12559 BuildMI(BB, dl, TII->get(PPC::BCC)) in EmitInstrWithCustomInserter()
12563 BuildMI(BB, dl, TII->get(PPC::B)).addMBB(exitMBB); in EmitInstrWithCustomInserter()
12568 BuildMI(BB, dl, TII->get(StoreMnemonic)) in EmitInstrWithCustomInserter()
12591 DebugLoc dl = MI.getDebugLoc(); in EmitInstrWithCustomInserter() local
12661 BuildMI(BB, dl, TII->get(is64bit ? PPC::ADD8 : PPC::ADD4), Ptr1Reg) in EmitInstrWithCustomInserter()
12670 BuildMI(BB, dl, TII->get(PPC::RLWINM), Shift1Reg) in EmitInstrWithCustomInserter()
12676 BuildMI(BB, dl, TII->get(PPC::XORI), ShiftReg) in EmitInstrWithCustomInserter()
12680 BuildMI(BB, dl, TII->get(PPC::RLDICR), PtrReg) in EmitInstrWithCustomInserter()
12685 BuildMI(BB, dl, TII->get(PPC::RLWINM), PtrReg) in EmitInstrWithCustomInserter()
12690 BuildMI(BB, dl, TII->get(PPC::SLW), NewVal2Reg) in EmitInstrWithCustomInserter()
12693 BuildMI(BB, dl, TII->get(PPC::SLW), OldVal2Reg) in EmitInstrWithCustomInserter()
12697 BuildMI(BB, dl, TII->get(PPC::LI), Mask2Reg).addImm(255); in EmitInstrWithCustomInserter()
12699 BuildMI(BB, dl, TII->get(PPC::LI), Mask3Reg).addImm(0); in EmitInstrWithCustomInserter()
12700 BuildMI(BB, dl, TII->get(PPC::ORI), Mask2Reg) in EmitInstrWithCustomInserter()
12704 BuildMI(BB, dl, TII->get(PPC::SLW), MaskReg) in EmitInstrWithCustomInserter()
12707 BuildMI(BB, dl, TII->get(PPC::AND), NewVal3Reg) in EmitInstrWithCustomInserter()
12710 BuildMI(BB, dl, TII->get(PPC::AND), OldVal3Reg) in EmitInstrWithCustomInserter()
12715 BuildMI(BB, dl, TII->get(PPC::LWARX), TmpDestReg) in EmitInstrWithCustomInserter()
12718 BuildMI(BB, dl, TII->get(PPC::AND), TmpReg) in EmitInstrWithCustomInserter()
12721 BuildMI(BB, dl, TII->get(PPC::CMPW), PPC::CR0) in EmitInstrWithCustomInserter()
12724 BuildMI(BB, dl, TII->get(PPC::BCC)) in EmitInstrWithCustomInserter()
12732 BuildMI(BB, dl, TII->get(PPC::ANDC), Tmp2Reg) in EmitInstrWithCustomInserter()
12735 BuildMI(BB, dl, TII->get(PPC::OR), Tmp4Reg) in EmitInstrWithCustomInserter()
12738 BuildMI(BB, dl, TII->get(PPC::STWCX)) in EmitInstrWithCustomInserter()
12742 BuildMI(BB, dl, TII->get(PPC::BCC)) in EmitInstrWithCustomInserter()
12746 BuildMI(BB, dl, TII->get(PPC::B)).addMBB(exitMBB); in EmitInstrWithCustomInserter()
12751 BuildMI(BB, dl, TII->get(PPC::STWCX)) in EmitInstrWithCustomInserter()
12760 BuildMI(*BB, BB->begin(), dl, TII->get(PPC::SRW), dest) in EmitInstrWithCustomInserter()
12770 DebugLoc dl = MI.getDebugLoc(); in EmitInstrWithCustomInserter() local
12776 BuildMI(*BB, MI, dl, TII->get(PPC::MFFS), MFFSReg); in EmitInstrWithCustomInserter()
12779 BuildMI(*BB, MI, dl, TII->get(PPC::MTFSB1)) in EmitInstrWithCustomInserter()
12783 BuildMI(*BB, MI, dl, TII->get(PPC::MTFSB0)) in EmitInstrWithCustomInserter()
12788 auto MIB = BuildMI(*BB, MI, dl, TII->get(PPC::FADD), Dest) in EmitInstrWithCustomInserter()
12795 BuildMI(*BB, MI, dl, TII->get(PPC::MTFSFb)).addImm(1).addReg(MFFSReg); in EmitInstrWithCustomInserter()
12834 DebugLoc dl = MI.getDebugLoc(); in EmitInstrWithCustomInserter() local
12839 BuildMI(*BB, MI, dl, TII->get(TargetOpcode::IMPLICIT_DEF), OldFPSCRReg); in EmitInstrWithCustomInserter()
12841 BuildMI(*BB, MI, dl, TII->get(PPC::MFFS), OldFPSCRReg); in EmitInstrWithCustomInserter()
12853 BuildMI(*BB, MI, dl, TII->get((Mode & 1) ? PPC::MTFSB1 : PPC::MTFSB0)) in EmitInstrWithCustomInserter()
12857 BuildMI(*BB, MI, dl, TII->get((Mode & 2) ? PPC::MTFSB1 : PPC::MTFSB0)) in EmitInstrWithCustomInserter()
12861 DebugLoc dl = MI.getDebugLoc(); in EmitInstrWithCustomInserter() local
12870 BuildMI(*BB, MI, dl, TII->get(TargetOpcode::COPY), DestReg) in EmitInstrWithCustomInserter()
12900 BuildMI(*BB, MI, dl, TII->get(StoreOp)) in EmitInstrWithCustomInserter()
12914 BuildMI(*BB, MI, dl, TII->get(LoadOp), DestReg) in EmitInstrWithCustomInserter()
12924 BuildMI(*BB, MI, dl, TII->get(PPC::MFFS), OldFPSCRReg); in EmitInstrWithCustomInserter()
12946 BuildMI(*BB, MI, dl, TII->get(TargetOpcode::IMPLICIT_DEF), ImDefReg); in EmitInstrWithCustomInserter()
12947 BuildMI(*BB, MI, dl, TII->get(PPC::INSERT_SUBREG), ExtSrcReg) in EmitInstrWithCustomInserter()
12953 BuildMI(*BB, MI, dl, TII->get(PPC::RLDIMI), NewFPSCRTmpReg) in EmitInstrWithCustomInserter()
12964 BuildMI(*BB, MI, dl, TII->get(PPC::MTFSF)) in EmitInstrWithCustomInserter()
13413 SDLoc dl(N); in DAGCombineTruncBoolExt() local
13640 RepValue = DAG.getNode(ISD::TRUNCATE, dl, MVT::i1, RepValue); in DAGCombineTruncBoolExt()
13671 Ops[C+i] = DAG.getNode(ISD::TRUNCATE, dl, MVT::i1, Ops[C+i]); in DAGCombineTruncBoolExt()
13674 DAG.getNode(PromOp.getOpcode(), dl, MVT::i1, Ops)); in DAGCombineTruncBoolExt()
13689 SDLoc dl(N); in DAGCombineExtBoolTrunc() local
13852 DAG.getSExtOrTrunc(InSrc, dl, N->getValueType(0))); in DAGCombineExtBoolTrunc()
13855 DAG.getZExtOrTrunc(InSrc, dl, N->getValueType(0))); in DAGCombineExtBoolTrunc()
13858 DAG.getAnyExtOrTrunc(InSrc, dl, N->getValueType(0))); in DAGCombineExtBoolTrunc()
13916 Ops[C+i] = DAG.getSExtOrTrunc(Ops[C+i], dl, N->getValueType(0)); in DAGCombineExtBoolTrunc()
13918 Ops[C+i] = DAG.getZExtOrTrunc(Ops[C+i], dl, N->getValueType(0)); in DAGCombineExtBoolTrunc()
13920 Ops[C+i] = DAG.getAnyExtOrTrunc(Ops[C+i], dl, N->getValueType(0)); in DAGCombineExtBoolTrunc()
13929 Ops[0] = DAG.getNode(ISD::TRUNCATE, dl, SI0->second, Ops[0]); in DAGCombineExtBoolTrunc()
13932 Ops[1] = DAG.getNode(ISD::TRUNCATE, dl, SI1->second, Ops[1]); in DAGCombineExtBoolTrunc()
13936 DAG.getNode(PromOp.getOpcode(), dl, N->getValueType(0), Ops)); in DAGCombineExtBoolTrunc()
13946 return DAG.getNode(ISD::AND, dl, N->getValueType(0), N->getOperand(0), in DAGCombineExtBoolTrunc()
13949 dl, N->getValueType(0))); in DAGCombineExtBoolTrunc()
13955 DAG.getConstant(N->getValueSizeInBits(0) - PromBits, dl, ShiftAmountTy); in DAGCombineExtBoolTrunc()
13957 ISD::SRA, dl, N->getValueType(0), in DAGCombineExtBoolTrunc()
13958 DAG.getNode(ISD::SHL, dl, N->getValueType(0), N->getOperand(0), ShiftCst), in DAGCombineExtBoolTrunc()
14015 SDLoc dl(N); in combineElementTruncationToVectorTruncation() local
14066 SDValue Trunc = DAG.getNode(ISD::FP_ROUND, dl, in combineElementTruncationToVectorTruncation()
14068 DAG.getIntPtrConstant(1, dl)); in combineElementTruncationToVectorTruncation()
14083 SDValue BV = DAG.getBuildVector(NewVT, dl, Ops); in combineElementTruncationToVectorTruncation()
14084 return DAG.getNode(Opcode, dl, TargetVT, BV); in combineElementTruncationToVectorTruncation()
14099 SDLoc dl(N); in combineBVOfConsecutiveLoads() local
14163 return DAG.getLoad(N->getValueType(0), dl, LD1->getChain(), in combineBVOfConsecutiveLoads()
14170 DAG.getLoad(N->getValueType(0), dl, LDL->getChain(), LDL->getBasePtr(), in combineBVOfConsecutiveLoads()
14176 return DAG.getVectorShuffle(N->getValueType(0), dl, Load, in combineBVOfConsecutiveLoads()
14188 SDLoc dl(N); in addShuffleForVecExtend() local
14206 DAG.getVectorShuffle(Input.getValueType(), dl, Input, in addShuffleForVecExtend()
14215 return DAG.getNode(ISD::SIGN_EXTEND_INREG, dl, VT, Conv, in addShuffleForVecExtend()
14364 SDLoc dl(N); in DAGCombineBuildVector() local
14445 return DAG.getNode(NodeType, dl, MVT::v2f64, in DAGCombineBuildVector()
14446 SrcVec, DAG.getIntPtrConstant(SubvecIdx, dl)); in DAGCombineBuildVector()
14459 SDLoc dl(N); in combineFPToIntToFP() local
14484 dl, false); in combineFPToIntToFP()
14487 SDValue Ld = DAG.getMemIntrinsicNode(PPCISD::LXSIZX, dl, in combineFPToIntToFP()
14494 SDValue Ext = DAG.getNode(PPCISD::VEXTS, dl, MVT::f64, ExtOps); in combineFPToIntToFP()
14495 return DAG.getNode(ConvOp, dl, DstDouble ? MVT::f64 : MVT::f32, Ext); in combineFPToIntToFP()
14497 return DAG.getNode(ConvOp, dl, DstDouble ? MVT::f64 : MVT::f32, Ld); in combineFPToIntToFP()
14529 Src = DAG.getNode(ISD::FP_EXTEND, dl, MVT::f64, Src); in combineFPToIntToFP()
14540 SDValue Tmp = DAG.getNode(FCTOp, dl, MVT::f64, Src); in combineFPToIntToFP()
14541 SDValue FP = DAG.getNode(FCFOp, dl, FCFTy, Tmp); in combineFPToIntToFP()
14544 FP = DAG.getNode(ISD::FP_ROUND, dl, in combineFPToIntToFP()
14545 MVT::f32, FP, DAG.getIntPtrConstant(0, dl)); in combineFPToIntToFP()
14565 SDLoc dl(N); in expandVSXLoadForLE() local
14599 SDValue Load = DAG.getMemIntrinsicNode(PPCISD::LXVD2X, dl, in expandVSXLoadForLE()
14606 PPCISD::XXSWAPD, dl, DAG.getVTList(MVT::v2f64, MVT::Other), Chain, Load); in expandVSXLoadForLE()
14611 SDValue N = DAG.getNode(ISD::BITCAST, dl, VecTy, Swap); in expandVSXLoadForLE()
14614 return DAG.getNode(ISD::MERGE_VALUES, dl, DAG.getVTList(VecTy, MVT::Other), in expandVSXLoadForLE()
14631 SDLoc dl(N); in expandVSXStoreForLE() local
14669 Src = DAG.getNode(ISD::BITCAST, dl, MVT::v2f64, Src); in expandVSXStoreForLE()
14673 SDValue Swap = DAG.getNode(PPCISD::XXSWAPD, dl, in expandVSXStoreForLE()
14678 SDValue Store = DAG.getMemIntrinsicNode(PPCISD::STXVD2X, dl, in expandVSXStoreForLE()
14690 SDLoc dl(N); in combineStoreFPToInt() local
14717 Val = DAG.getNode(ISD::FP_EXTEND, dl, MVT::f64, Val); in combineStoreFPToInt()
14727 dl, ResVT == MVT::f128 ? MVT::f128 : MVT::f64, Val); in combineStoreFPToInt()
14733 DAG.getIntPtrConstant(ByteSize, dl, false), in combineStoreFPToInt()
14736 Val = DAG.getMemIntrinsicNode(PPCISD::ST_VSR_SCAL_INT, dl, in combineStoreFPToInt()
14817 SDLoc dl(OrigSToV); in getSToVPermuted() local
14838 return DAG.getVectorShuffle(VT, dl, OrigVector, OrigVector, NewMask); in getSToVPermuted()
14841 return DAG.getNode(PPCISD::SCALAR_TO_VECTOR_PERMUTED, dl, VT, in getSToVPermuted()
14864 SDLoc dl(SVN); in combineVectorShuffle() local
14957 Res = DAG.getVectorShuffle(SVN->getValueType(0), dl, LHS, RHS, ShuffV); in combineVectorShuffle()
15022 TheSplat = DAG.getSplatBuildVector(TheSplat.getValueType(), dl, SplatVal); in combineVectorShuffle()
15028 return DAG.getVectorShuffle(SVN->getValueType(0), dl, LHS, RHS, ShuffV); in combineVectorShuffle()
15075 SDLoc dl(LSBase); in combineVReverseMemOP() local
15078 PPCISD::LOAD_VEC_BE, dl, DAG.getVTList(VT, MVT::Other), LoadOps, in combineVReverseMemOP()
15089 SDLoc dl(LSBase); in combineVReverseMemOP() local
15093 PPCISD::STORE_VEC_BE, dl, DAG.getVTList(MVT::Other), StoreOps, in combineVReverseMemOP()
15103 SDLoc dl(N); in PerformDAGCombine() local
15188 BSwapOp = DAG.getNode(ISD::ANY_EXTEND, dl, MVT::i32, BSwapOp); in PerformDAGCombine()
15194 BSwapOp = DAG.getNode(ISD::SRL, dl, Op1VT, BSwapOp, in PerformDAGCombine()
15195 DAG.getConstant(Shift, dl, MVT::i32)); in PerformDAGCombine()
15198 BSwapOp = DAG.getNode(ISD::TRUNCATE, dl, MVT::i32, BSwapOp); in PerformDAGCombine()
15205 DAG.getMemIntrinsicNode(PPCISD::STBRX, dl, DAG.getVTList(MVT::Other), in PerformDAGCombine()
15218 SDValue Const64 = DAG.getConstant(Val64, dl, MVT::i64); in PerformDAGCombine()
15325 DAG.getNode(ISD::ADD, dl, BasePtr.getValueType(), BasePtr, in PerformDAGCombine()
15331 SDValue FloatLoad = DAG.getLoad(MVT::f32, dl, LD->getChain(), BasePtr, in PerformDAGCombine()
15335 DAG.getNode(ISD::ADD, dl, BasePtr.getValueType(), in PerformDAGCombine()
15336 BasePtr, DAG.getIntPtrConstant(4, dl)); in PerformDAGCombine()
15338 MVT::f32, dl, SDValue(FloatLoad.getNode(), 1), AddPtr, in PerformDAGCombine()
15408 SDValue PermCntl = BuildIntrinsicOp(Intr, Ptr, DAG, dl, PermCntlTy); in PerformDAGCombine()
15423 DAG.getTargetConstant(IntrLD, dl, getPointerTy(MF.getDataLayout())); in PerformDAGCombine()
15426 DAG.getMemIntrinsicNode(ISD::INTRINSIC_W_CHAIN, dl, in PerformDAGCombine()
15448 DAG.getConstant(IncValue, dl, getPointerTy(MF.getDataLayout())); in PerformDAGCombine()
15449 Ptr = DAG.getNode(ISD::ADD, dl, Ptr.getValueType(), Ptr, Increment); in PerformDAGCombine()
15456 DAG.getMemIntrinsicNode(ISD::INTRINSIC_W_CHAIN, dl, in PerformDAGCombine()
15460 SDValue TF = DAG.getNode(ISD::TokenFactor, dl, MVT::Other, in PerformDAGCombine()
15471 ExtraLoad, BaseLoad, PermCntl, DAG, dl); in PerformDAGCombine()
15474 BaseLoad, ExtraLoad, PermCntl, DAG, dl); in PerformDAGCombine()
15478 ? DAG.getNode(ISD::BITCAST, dl, VT, Perm) in PerformDAGCombine()
15479 : DAG.getNode(ISD::FP_ROUND, dl, VT, Perm, in PerformDAGCombine()
15480 DAG.getTargetConstant(1, dl, MVT::i64)); in PerformDAGCombine()
15555 return DAG.getNode(ISD::ABS, dl, V2.getValueType(), V2); in PerformDAGCombine()
15561 return DAG.getNode(ISD::ABS, dl, V1.getValueType(), V1); in PerformDAGCombine()
15567 return DAG.getNode(ISD::ABS, dl, V1.getValueType(), V1); in PerformDAGCombine()
15620 DAG.getMemIntrinsicNode(PPCISD::LBRX, dl, in PerformDAGCombine()
15628 ResVal = DAG.getNode(ISD::TRUNCATE, dl, MVT::i16, BSLoad); in PerformDAGCombine()
15652 SDValue Lo = DAG.getLoad(MVT::i32, dl, LD->getChain(), BasePtr, in PerformDAGCombine()
15654 Lo = DAG.getNode(ISD::BSWAP, dl, MVT::i32, Lo); in PerformDAGCombine()
15655 BasePtr = DAG.getNode(ISD::ADD, dl, BasePtr.getValueType(), BasePtr, in PerformDAGCombine()
15656 DAG.getIntPtrConstant(4, dl)); in PerformDAGCombine()
15659 SDValue Hi = DAG.getLoad(MVT::i32, dl, LD->getChain(), BasePtr, NewMMO); in PerformDAGCombine()
15660 Hi = DAG.getNode(ISD::BSWAP, dl, MVT::i32, Hi); in PerformDAGCombine()
15663 Res = DAG.getNode(ISD::BUILD_PAIR, dl, MVT::i64, Hi, Lo); in PerformDAGCombine()
15665 Res = DAG.getNode(ISD::BUILD_PAIR, dl, MVT::i64, Lo, Hi); in PerformDAGCombine()
15667 DAG.getNode(ISD::TokenFactor, dl, MVT::Other, in PerformDAGCombine()
15736 return DAG.getNode(PPCISD::BDNZ, dl, MVT::Other, in PerformDAGCombine()
15776 return DAG.getNode(isBDNZ ? PPCISD::BDNZ : PPCISD::BDZ, dl, MVT::Other, in PerformDAGCombine()
15795 return DAG.getNode(ISD::BR, dl, MVT::Other, in PerformDAGCombine()
15805 DAG.getConstant(CompareOpc, dl, MVT::i32) in PerformDAGCombine()
15808 SDValue CompNode = DAG.getNode(PPCISD::VCMP_rec, dl, VTs, Ops); in PerformDAGCombine()
15828 return DAG.getNode(PPCISD::COND_BRANCH, dl, MVT::Other, N->getOperand(0), in PerformDAGCombine()
15829 DAG.getConstant(CompOpc, dl, MVT::i32), in PerformDAGCombine()
16231 SDLoc dl(Op); in LowerAsmOperandForConstraint() local
16239 Result = DAG.getTargetConstant(Value, dl, TCVT); in LowerAsmOperandForConstraint()
16243 Result = DAG.getTargetConstant(Value, dl, TCVT); in LowerAsmOperandForConstraint()
16247 Result = DAG.getTargetConstant(Value, dl, TCVT); in LowerAsmOperandForConstraint()
16251 Result = DAG.getTargetConstant(Value, dl, TCVT); in LowerAsmOperandForConstraint()
16255 Result = DAG.getTargetConstant(Value, dl, TCVT); in LowerAsmOperandForConstraint()
16259 Result = DAG.getTargetConstant(Value, dl, TCVT); in LowerAsmOperandForConstraint()
16263 Result = DAG.getTargetConstant(Value, dl, TCVT); in LowerAsmOperandForConstraint()
16267 Result = DAG.getTargetConstant(Value, dl, TCVT); in LowerAsmOperandForConstraint()
16337 SDLoc dl(Op); in LowerRETURNADDR() local
16352 DAG.getLoad(Op.getValueType(), dl, DAG.getEntryNode(), in LowerRETURNADDR()
16355 DAG.getConstant(Subtarget.getFrameLowering()->getReturnSaveOffset(), dl, in LowerRETURNADDR()
16357 return DAG.getLoad(PtrVT, dl, DAG.getEntryNode(), in LowerRETURNADDR()
16358 DAG.getNode(ISD::ADD, dl, PtrVT, FrameAddr, Offset), in LowerRETURNADDR()
16364 return DAG.getLoad(PtrVT, dl, DAG.getEntryNode(), RetAddrFI, in LowerRETURNADDR()
16370 SDLoc dl(Op); in LowerFRAMEADDR() local
16388 SDValue FrameAddr = DAG.getCopyFromReg(DAG.getEntryNode(), dl, FrameReg, in LowerFRAMEADDR()
16391 FrameAddr = DAG.getLoad(Op.getValueType(), dl, DAG.getEntryNode(), in LowerFRAMEADDR()
17203 SDLoc dl(N); in combineTRUNCATE() local
17217 return DCI.DAG.getNode(PPCISD::VABSD, dl, VT, SubOp0.getOperand(0), in combineTRUNCATE()
17219 DCI.DAG.getTargetConstant(0, dl, MVT::i32)); in combineTRUNCATE()
17249 ISD::EXTRACT_VECTOR_ELT, dl, MVT::i64, Bitcast, in combineTRUNCATE()
17250 DCI.DAG.getTargetConstant(EltToExtract, dl, MVT::i32)); in combineTRUNCATE()
17447 SDLoc dl(N); in combineABS() local
17457 return DAG.getNode(PPCISD::VABSD, dl, N->getOperand(0).getValueType(), in combineABS()
17460 DAG.getTargetConstant(0, dl, MVT::i32)); in combineABS()
17466 return DAG.getNode(PPCISD::VABSD, dl, N->getOperand(0).getValueType(), in combineABS()
17469 DAG.getTargetConstant(1, dl, MVT::i32)); in combineABS()
17488 SDLoc dl(N); in combineVSelect() local
17531 return DAG.getNode(PPCISD::VABSD, dl, N->getOperand(1).getValueType(), in combineVSelect()
17533 DAG.getTargetConstant(0, dl, MVT::i32)); in combineVSelect()