Lines Matching refs:dl

157 static SDValue widenVec(SelectionDAG &DAG, SDValue Vec, const SDLoc &dl);
2800 SDLoc dl(N); in SelectAddressRegImm() local
2815 Disp = DAG.getTargetConstant(imm, dl, N.getValueType()); in SelectAddressRegImm()
2854 Disp = DAG.getTargetConstant(imm, dl, N.getValueType()); in SelectAddressRegImm()
2866 Disp = DAG.getTargetConstant(Imm, dl, CN->getValueType(0)); in SelectAddressRegImm()
2880 Disp = DAG.getTargetConstant((short)Addr, dl, MVT::i32); in SelectAddressRegImm()
2882 Base = DAG.getTargetConstant((Addr - (signed short)Addr) >> 16, dl, in SelectAddressRegImm()
2885 Base = SDValue(DAG.getMachineNode(Opc, dl, CN->getValueType(0), Base), 0); in SelectAddressRegImm()
2890 Disp = DAG.getTargetConstant(0, dl, getPointerTy(DAG.getDataLayout())); in SelectAddressRegImm()
2908 SDLoc dl(N); in SelectAddressRegImm34() local
2914 Disp = DAG.getTargetConstant(Imm, dl, N.getValueType()); in SelectAddressRegImm34()
2935 Disp = DAG.getTargetConstant(Imm, dl, N.getValueType()); in SelectAddressRegImm34()
2940 Disp = DAG.getTargetConstant(Imm, dl, N.getValueType()); in SelectAddressRegImm34()
3176 SDValue PPCTargetLowering::getTOCEntry(SelectionDAG &DAG, const SDLoc &dl, in getTOCEntry() argument
3183 : DAG.getNode(PPCISD::GlobalBaseReg, dl, VT); in getTOCEntry()
3186 PPCISD::TOC_ENTRY, dl, DAG.getVTList(VT, MVT::Other), Ops, VT, in getTOCEntry()
3416 SDLoc dl(GA); in LowerGlobalTLSAddressAIX() local
3432 DAG.getTargetGlobalAddress(GV, dl, PtrVT, 0, PPCII::MO_TPREL_FLAG); in LowerGlobalTLSAddressAIX()
3433 SDValue VariableOffset = getTOCEntry(DAG, dl, VariableOffsetTGA); in LowerGlobalTLSAddressAIX()
3463 return DAG.getNode(PPCISD::Lo, dl, PtrVT, VariableOffsetTGA, TLSReg); in LowerGlobalTLSAddressAIX()
3473 TLSReg = DAG.getNode(PPCISD::GET_TPOINTER, dl, PtrVT); in LowerGlobalTLSAddressAIX()
3482 return DAG.getNode(PPCISD::ADD_TLS, dl, PtrVT, TLSReg, VariableOffset); in LowerGlobalTLSAddressAIX()
3499 DAG.getTargetGlobalAddress(GV, dl, PtrVT, 0, PPCII::MO_TLSLD_FLAG); in LowerGlobalTLSAddressAIX()
3500 SDValue VariableOffset = getTOCEntry(DAG, dl, VariableOffsetTGA); in LowerGlobalTLSAddressAIX()
3509 DAG.getTargetGlobalAddress(TLSGV, dl, PtrVT, 0, PPCII::MO_TLSLDM_FLAG); in LowerGlobalTLSAddressAIX()
3510 SDValue ModuleHandleTOC = getTOCEntry(DAG, dl, ModuleHandleTGA); in LowerGlobalTLSAddressAIX()
3512 DAG.getNode(PPCISD::TLSLD_AIX, dl, PtrVT, ModuleHandleTOC); in LowerGlobalTLSAddressAIX()
3526 return DAG.getNode(PPCISD::Lo, dl, PtrVT, VariableOffsetTGA, in LowerGlobalTLSAddressAIX()
3530 return DAG.getNode(ISD::ADD, dl, PtrVT, ModuleHandle, VariableOffset); in LowerGlobalTLSAddressAIX()
3540 DAG.getTargetGlobalAddress(GV, dl, PtrVT, 0, PPCII::MO_TLSGD_FLAG); in LowerGlobalTLSAddressAIX()
3542 DAG.getTargetGlobalAddress(GV, dl, PtrVT, 0, PPCII::MO_TLSGDM_FLAG); in LowerGlobalTLSAddressAIX()
3543 SDValue VariableOffset = getTOCEntry(DAG, dl, VariableOffsetTGA); in LowerGlobalTLSAddressAIX()
3544 SDValue RegionHandle = getTOCEntry(DAG, dl, RegionHandleTGA); in LowerGlobalTLSAddressAIX()
3545 return DAG.getNode(PPCISD::TLSGD_AIX, dl, PtrVT, VariableOffset, in LowerGlobalTLSAddressAIX()
3559 SDLoc dl(GA); in LowerGlobalTLSAddressLinux() local
3572 SDValue TGA = DAG.getTargetGlobalAddress(GV, dl, PtrVT, 0, in LowerGlobalTLSAddressLinux()
3575 DAG.getNode(PPCISD::TLS_LOCAL_EXEC_MAT_ADDR, dl, PtrVT, TGA); in LowerGlobalTLSAddressLinux()
3576 return DAG.getNode(PPCISD::ADD_TLS, dl, PtrVT, TLSReg, MatAddr); in LowerGlobalTLSAddressLinux()
3579 SDValue TGAHi = DAG.getTargetGlobalAddress(GV, dl, PtrVT, 0, in LowerGlobalTLSAddressLinux()
3581 SDValue TGALo = DAG.getTargetGlobalAddress(GV, dl, PtrVT, 0, in LowerGlobalTLSAddressLinux()
3586 SDValue Hi = DAG.getNode(PPCISD::Hi, dl, PtrVT, TGAHi, TLSReg); in LowerGlobalTLSAddressLinux()
3587 return DAG.getNode(PPCISD::Lo, dl, PtrVT, TGALo, Hi); in LowerGlobalTLSAddressLinux()
3593 GV, dl, PtrVT, 0, IsPCRel ? PPCII::MO_GOT_TPREL_PCREL_FLAG : 0); in LowerGlobalTLSAddressLinux()
3595 GV, dl, PtrVT, 0, IsPCRel ? PPCII::MO_TLS_PCREL_FLAG : PPCII::MO_TLS); in LowerGlobalTLSAddressLinux()
3598 SDValue MatPCRel = DAG.getNode(PPCISD::MAT_PCREL_ADDR, dl, PtrVT, TGA); in LowerGlobalTLSAddressLinux()
3599 TPOffset = DAG.getLoad(MVT::i64, dl, DAG.getEntryNode(), MatPCRel, in LowerGlobalTLSAddressLinux()
3607 DAG.getNode(PPCISD::ADDIS_GOT_TPREL_HA, dl, PtrVT, GOTReg, TGA); in LowerGlobalTLSAddressLinux()
3610 GOTPtr = DAG.getNode(PPCISD::PPC32_GOT, dl, PtrVT); in LowerGlobalTLSAddressLinux()
3612 GOTPtr = DAG.getNode(PPCISD::GlobalBaseReg, dl, PtrVT); in LowerGlobalTLSAddressLinux()
3614 GOTPtr = DAG.getNode(PPCISD::PPC32_PICGOT, dl, PtrVT); in LowerGlobalTLSAddressLinux()
3616 TPOffset = DAG.getNode(PPCISD::LD_GOT_TPREL_L, dl, PtrVT, TGA, GOTPtr); in LowerGlobalTLSAddressLinux()
3618 return DAG.getNode(PPCISD::ADD_TLS, dl, PtrVT, TPOffset, TGATLS); in LowerGlobalTLSAddressLinux()
3623 SDValue TGA = DAG.getTargetGlobalAddress(GV, dl, PtrVT, 0, in LowerGlobalTLSAddressLinux()
3625 return DAG.getNode(PPCISD::TLS_DYNAMIC_MAT_PCREL_ADDR, dl, PtrVT, TGA); in LowerGlobalTLSAddressLinux()
3628 SDValue TGA = DAG.getTargetGlobalAddress(GV, dl, PtrVT, 0, 0); in LowerGlobalTLSAddressLinux()
3633 GOTPtr = DAG.getNode(PPCISD::ADDIS_TLSGD_HA, dl, PtrVT, in LowerGlobalTLSAddressLinux()
3637 GOTPtr = DAG.getNode(PPCISD::GlobalBaseReg, dl, PtrVT); in LowerGlobalTLSAddressLinux()
3639 GOTPtr = DAG.getNode(PPCISD::PPC32_PICGOT, dl, PtrVT); in LowerGlobalTLSAddressLinux()
3641 return DAG.getNode(PPCISD::ADDI_TLSGD_L_ADDR, dl, PtrVT, in LowerGlobalTLSAddressLinux()
3647 SDValue TGA = DAG.getTargetGlobalAddress(GV, dl, PtrVT, 0, in LowerGlobalTLSAddressLinux()
3650 DAG.getNode(PPCISD::TLS_DYNAMIC_MAT_PCREL_ADDR, dl, PtrVT, TGA); in LowerGlobalTLSAddressLinux()
3651 return DAG.getNode(PPCISD::PADDI_DTPREL, dl, PtrVT, MatPCRel, TGA); in LowerGlobalTLSAddressLinux()
3654 SDValue TGA = DAG.getTargetGlobalAddress(GV, dl, PtrVT, 0, 0); in LowerGlobalTLSAddressLinux()
3659 GOTPtr = DAG.getNode(PPCISD::ADDIS_TLSLD_HA, dl, PtrVT, in LowerGlobalTLSAddressLinux()
3663 GOTPtr = DAG.getNode(PPCISD::GlobalBaseReg, dl, PtrVT); in LowerGlobalTLSAddressLinux()
3665 GOTPtr = DAG.getNode(PPCISD::PPC32_PICGOT, dl, PtrVT); in LowerGlobalTLSAddressLinux()
3667 SDValue TLSAddr = DAG.getNode(PPCISD::ADDI_TLSLD_L_ADDR, dl, in LowerGlobalTLSAddressLinux()
3669 SDValue DtvOffsetHi = DAG.getNode(PPCISD::ADDIS_DTPREL_HA, dl, in LowerGlobalTLSAddressLinux()
3671 return DAG.getNode(PPCISD::ADDI_DTPREL_L, dl, PtrVT, DtvOffsetHi, TGA); in LowerGlobalTLSAddressLinux()
3734 SDLoc dl(Op); in LowerSETCC() local
3740 softenSetCCOperands(DAG, LHSVT, LHS, RHS, CC, dl, LHS, RHS, Chain, in LowerSETCC()
3743 LHS = DAG.getNode(ISD::SETCC, dl, Op.getValueType(), LHS, RHS, in LowerSETCC()
3746 return DAG.getMergeValues({LHS, Chain}, dl); in LowerSETCC()
3761 dl, MVT::v4i32, DAG.getNode(ISD::BITCAST, dl, MVT::v4i32, LHS), in LowerSETCC()
3762 DAG.getNode(ISD::BITCAST, dl, MVT::v4i32, RHS), CC); in LowerSETCC()
3765 DAG.getVectorShuffle(MVT::v4i32, dl, SetCC32, SetCC32, ShuffV); in LowerSETCC()
3768 dl, MVT::v4i32, Shuff, SetCC32)); in LowerSETCC()
3796 SDValue Sub = DAG.getNode(ISD::XOR, dl, LHSVT, LHS, RHS); in LowerSETCC()
3797 return DAG.getSetCC(dl, VT, Sub, DAG.getConstant(0, dl, LHSVT), CC); in LowerSETCC()
3809 SDLoc dl(Node); in LowerVAARG() local
3814 SDValue GprIndex = DAG.getExtLoad(ISD::ZEXTLOAD, dl, MVT::i32, InChain, in LowerVAARG()
3820 SDValue GprAnd = DAG.getNode(ISD::AND, dl, MVT::i32, GprIndex, in LowerVAARG()
3821 DAG.getConstant(1, dl, MVT::i32)); in LowerVAARG()
3822 SDValue CC64 = DAG.getSetCC(dl, MVT::i32, GprAnd, in LowerVAARG()
3823 DAG.getConstant(0, dl, MVT::i32), ISD::SETNE); in LowerVAARG()
3824 SDValue GprIndexPlusOne = DAG.getNode(ISD::ADD, dl, MVT::i32, GprIndex, in LowerVAARG()
3825 DAG.getConstant(1, dl, MVT::i32)); in LowerVAARG()
3827 GprIndex = DAG.getNode(ISD::SELECT, dl, MVT::i32, CC64, GprIndexPlusOne, in LowerVAARG()
3832 SDValue FprPtr = DAG.getNode(ISD::ADD, dl, PtrVT, VAListPtr, in LowerVAARG()
3833 DAG.getConstant(1, dl, MVT::i32)); in LowerVAARG()
3836 SDValue FprIndex = DAG.getExtLoad(ISD::ZEXTLOAD, dl, MVT::i32, InChain, in LowerVAARG()
3840 SDValue RegSaveAreaPtr = DAG.getNode(ISD::ADD, dl, PtrVT, VAListPtr, in LowerVAARG()
3841 DAG.getConstant(8, dl, MVT::i32)); in LowerVAARG()
3843 SDValue OverflowAreaPtr = DAG.getNode(ISD::ADD, dl, PtrVT, VAListPtr, in LowerVAARG()
3844 DAG.getConstant(4, dl, MVT::i32)); in LowerVAARG()
3848 DAG.getLoad(MVT::i32, dl, InChain, OverflowAreaPtr, MachinePointerInfo()); in LowerVAARG()
3852 DAG.getLoad(MVT::i32, dl, InChain, RegSaveAreaPtr, MachinePointerInfo()); in LowerVAARG()
3856 SDValue CC = DAG.getSetCC(dl, MVT::i32, VT.isInteger() ? GprIndex : FprIndex, in LowerVAARG()
3857 DAG.getConstant(8, dl, MVT::i32), ISD::SETLT); in LowerVAARG()
3860 SDValue RegConstant = DAG.getNode(ISD::MUL, dl, MVT::i32, in LowerVAARG()
3862 DAG.getConstant(VT.isInteger() ? 4 : 8, dl, in LowerVAARG()
3866 SDValue OurReg = DAG.getNode(ISD::ADD, dl, PtrVT, RegSaveArea, in LowerVAARG()
3871 OurReg = DAG.getNode(ISD::ADD, dl, PtrVT, OurReg, in LowerVAARG()
3872 DAG.getConstant(32, dl, MVT::i32)); in LowerVAARG()
3875 SDValue IndexPlus1 = DAG.getNode(ISD::ADD, dl, MVT::i32, in LowerVAARG()
3877 DAG.getConstant(VT == MVT::i64 ? 2 : 1, dl, in LowerVAARG()
3880 InChain = DAG.getTruncStore(InChain, dl, IndexPlus1, in LowerVAARG()
3885 SDValue Result = DAG.getNode(ISD::SELECT, dl, PtrVT, CC, OurReg, OverflowArea); in LowerVAARG()
3888 SDValue OverflowAreaPlusN = DAG.getNode(ISD::ADD, dl, PtrVT, OverflowArea, in LowerVAARG()
3890 dl, MVT::i32)); in LowerVAARG()
3892 OverflowArea = DAG.getNode(ISD::SELECT, dl, MVT::i32, CC, OverflowArea, in LowerVAARG()
3895 InChain = DAG.getTruncStore(InChain, dl, OverflowArea, OverflowAreaPtr, in LowerVAARG()
3898 return DAG.getLoad(VT, dl, InChain, Result, MachinePointerInfo()); in LowerVAARG()
3980 SDLoc dl(Op); in LowerINIT_TRAMPOLINE() local
3993 Entry.Node = DAG.getConstant(isPPC64 ? 48 : 40, dl, in LowerINIT_TRAMPOLINE()
4002 CLI.setDebugLoc(dl).setChain(Chain).setLibCallee( in LowerINIT_TRAMPOLINE()
4015 SDLoc dl(Op); in LowerVASTART() local
4022 return DAG.getStore(Op.getOperand(0), dl, FR, Op.getOperand(1), in LowerVASTART()
4050 SDValue ArgGPR = DAG.getConstant(FuncInfo->getVarArgsNumGPR(), dl, MVT::i32); in LowerVASTART()
4051 SDValue ArgFPR = DAG.getConstant(FuncInfo->getVarArgsNumFPR(), dl, MVT::i32); in LowerVASTART()
4058 SDValue ConstFrameOffset = DAG.getConstant(FrameOffset, dl, PtrVT); in LowerVASTART()
4061 SDValue ConstStackOffset = DAG.getConstant(StackOffset, dl, PtrVT); in LowerVASTART()
4064 SDValue ConstFPROffset = DAG.getConstant(FPROffset, dl, PtrVT); in LowerVASTART()
4070 DAG.getTruncStore(Op.getOperand(0), dl, ArgGPR, Op.getOperand(1), in LowerVASTART()
4073 SDValue nextPtr = DAG.getNode(ISD::ADD, dl, PtrVT, Op.getOperand(1), in LowerVASTART()
4078 DAG.getTruncStore(firstStore, dl, ArgFPR, nextPtr, in LowerVASTART()
4081 nextPtr = DAG.getNode(ISD::ADD, dl, PtrVT, nextPtr, ConstStackOffset); in LowerVASTART()
4084 SDValue thirdStore = DAG.getStore(secondStore, dl, StackOffsetFI, nextPtr, in LowerVASTART()
4087 nextPtr = DAG.getNode(ISD::ADD, dl, PtrVT, nextPtr, ConstFrameOffset); in LowerVASTART()
4090 return DAG.getStore(thirdStore, dl, FR, nextPtr, in LowerVASTART()
4215 const SmallVectorImpl<ISD::InputArg> &Ins, const SDLoc &dl, in LowerFormalArguments() argument
4218 return LowerFormalArguments_AIX(Chain, CallConv, isVarArg, Ins, dl, DAG, in LowerFormalArguments()
4221 return LowerFormalArguments_64SVR4(Chain, CallConv, isVarArg, Ins, dl, DAG, in LowerFormalArguments()
4224 return LowerFormalArguments_32SVR4(Chain, CallConv, isVarArg, Ins, dl, DAG, in LowerFormalArguments()
4230 const SmallVectorImpl<ISD::InputArg> &Ins, const SDLoc &dl, in LowerFormalArguments_32SVR4() argument
4339 SDValue ArgValueLo = DAG.getCopyFromReg(Chain, dl, RegLo, MVT::i32); in LowerFormalArguments_32SVR4()
4340 SDValue ArgValueHi = DAG.getCopyFromReg(Chain, dl, RegHi, MVT::i32); in LowerFormalArguments_32SVR4()
4343 ArgValue = DAG.getNode(PPCISD::BUILD_SPE64, dl, MVT::f64, ArgValueLo, in LowerFormalArguments_32SVR4()
4347 ArgValue = DAG.getCopyFromReg(Chain, dl, Reg, in LowerFormalArguments_32SVR4()
4350 ArgValue = DAG.getNode(ISD::TRUNCATE, dl, MVT::i1, ArgValue); in LowerFormalArguments_32SVR4()
4370 DAG.getLoad(VA.getValVT(), dl, Chain, FIN, MachinePointerInfo())); in LowerFormalArguments_32SVR4()
4441 SDValue Val = DAG.getCopyFromReg(Chain, dl, VReg, PtrVT); in LowerFormalArguments_32SVR4()
4443 DAG.getStore(Val.getValue(1), dl, Val, FIN, MachinePointerInfo()); in LowerFormalArguments_32SVR4()
4446 SDValue PtrOff = DAG.getConstant(PtrVT.getSizeInBits()/8, dl, PtrVT); in LowerFormalArguments_32SVR4()
4447 FIN = DAG.getNode(ISD::ADD, dl, PtrOff.getValueType(), FIN, PtrOff); in LowerFormalArguments_32SVR4()
4460 SDValue Val = DAG.getCopyFromReg(Chain, dl, VReg, MVT::f64); in LowerFormalArguments_32SVR4()
4462 DAG.getStore(Val.getValue(1), dl, Val, FIN, MachinePointerInfo()); in LowerFormalArguments_32SVR4()
4465 SDValue PtrOff = DAG.getConstant(MVT(MVT::f64).getSizeInBits()/8, dl, in LowerFormalArguments_32SVR4()
4467 FIN = DAG.getNode(ISD::ADD, dl, PtrOff.getValueType(), FIN, PtrOff); in LowerFormalArguments_32SVR4()
4472 Chain = DAG.getNode(ISD::TokenFactor, dl, MVT::Other, MemOps); in LowerFormalArguments_32SVR4()
4482 const SDLoc &dl) const { in extendArgForPPC64()
4484 ArgVal = DAG.getNode(ISD::AssertSext, dl, MVT::i64, ArgVal, in extendArgForPPC64()
4487 ArgVal = DAG.getNode(ISD::AssertZext, dl, MVT::i64, ArgVal, in extendArgForPPC64()
4490 return DAG.getNode(ISD::TRUNCATE, dl, ObjectVT, ArgVal); in extendArgForPPC64()
4495 const SmallVectorImpl<ISD::InputArg> &Ins, const SDLoc &dl, in LowerFormalArguments_64SVR4() argument
4636 SDValue ArgOff = DAG.getConstant(PtrByteSize - ObjSize, dl, PtrVT); in LowerFormalArguments_64SVR4()
4637 Arg = DAG.getNode(ISD::ADD, dl, ArgOff.getValueType(), Arg, ArgOff); in LowerFormalArguments_64SVR4()
4644 SDValue Val = DAG.getCopyFromReg(Chain, dl, VReg, PtrVT); in LowerFormalArguments_64SVR4()
4647 DAG.getTruncStore(Val.getValue(1), dl, Val, Arg, in LowerFormalArguments_64SVR4()
4668 SDValue Val = DAG.getCopyFromReg(Chain, dl, VReg, PtrVT); in LowerFormalArguments_64SVR4()
4671 SDValue Off = DAG.getConstant(j, dl, PtrVT); in LowerFormalArguments_64SVR4()
4672 Addr = DAG.getNode(ISD::ADD, dl, Off.getValueType(), Addr, Off); in LowerFormalArguments_64SVR4()
4677 DAG.getTruncStore(Val.getValue(1), dl, Val, Addr, in LowerFormalArguments_64SVR4()
4694 ArgVal = DAG.getCopyFromReg(Chain, dl, VReg, MVT::i64); in LowerFormalArguments_64SVR4()
4697 ArgVal = extendArgForPPC64(Flags, ObjectVT, DAG, ArgVal, dl); in LowerFormalArguments_64SVR4()
4708 ArgVal = DAG.getCopyFromReg(Chain, dl, VReg, MVT::i64); in LowerFormalArguments_64SVR4()
4713 ArgVal = extendArgForPPC64(Flags, ObjectVT, DAG, ArgVal, dl); in LowerFormalArguments_64SVR4()
4743 ArgVal = DAG.getCopyFromReg(Chain, dl, VReg, ObjectVT); in LowerFormalArguments_64SVR4()
4754 ArgVal = DAG.getCopyFromReg(Chain, dl, VReg, MVT::i64); in LowerFormalArguments_64SVR4()
4758 ArgVal = DAG.getNode(ISD::SRL, dl, MVT::i64, ArgVal, in LowerFormalArguments_64SVR4()
4759 DAG.getConstant(32, dl, MVT::i32)); in LowerFormalArguments_64SVR4()
4760 ArgVal = DAG.getNode(ISD::TRUNCATE, dl, MVT::i32, ArgVal); in LowerFormalArguments_64SVR4()
4763 ArgVal = DAG.getNode(ISD::BITCAST, dl, ObjectVT, ArgVal); in LowerFormalArguments_64SVR4()
4794 ArgVal = DAG.getCopyFromReg(Chain, dl, VReg, ObjectVT); in LowerFormalArguments_64SVR4()
4813 ArgVal = DAG.getLoad(ObjectVT, dl, Chain, FIN, MachinePointerInfo()); in LowerFormalArguments_64SVR4()
4853 SDValue Val = DAG.getCopyFromReg(Chain, dl, VReg, PtrVT); in LowerFormalArguments_64SVR4()
4855 DAG.getStore(Val.getValue(1), dl, Val, FIN, MachinePointerInfo()); in LowerFormalArguments_64SVR4()
4858 SDValue PtrOff = DAG.getConstant(PtrByteSize, dl, PtrVT); in LowerFormalArguments_64SVR4()
4859 FIN = DAG.getNode(ISD::ADD, dl, PtrOff.getValueType(), FIN, PtrOff); in LowerFormalArguments_64SVR4()
4864 Chain = DAG.getNode(ISD::TokenFactor, dl, MVT::Other, MemOps); in LowerFormalArguments_64SVR4()
5200 SmallVectorImpl<SDValue> &MemOpChains, const SDLoc &dl) { in StoreTailCallArgumentsToStackSlot() argument
5207 Chain, dl, Arg, FIN, in StoreTailCallArgumentsToStackSlot()
5216 int SPDiff, const SDLoc &dl) { in EmitTailCallStoreFPAndRetAddr() argument
5229 Chain = DAG.getStore(Chain, dl, OldRetAddr, NewRetAddrFrIdx, in EmitTailCallStoreFPAndRetAddr()
5258 SDValue &FPOpOut, const SDLoc &dl) const { in EmitTailCallLoadFPAndRetAddr()
5263 LROpOut = DAG.getLoad(VT, dl, Chain, LROpOut, MachinePointerInfo()); in EmitTailCallLoadFPAndRetAddr()
5277 SelectionDAG &DAG, const SDLoc &dl) { in CreateCopyOfByValArgument() argument
5278 SDValue SizeNode = DAG.getConstant(Flags.getByValSize(), dl, MVT::i32); in CreateCopyOfByValArgument()
5280 Chain, dl, Dst, Src, SizeNode, Flags.getNonZeroByValAlign(), false, false, in CreateCopyOfByValArgument()
5290 SmallVectorImpl<TailCallArgumentInfo> &TailCallArguments, const SDLoc &dl) { in LowerMemOpCallTo() argument
5299 PtrOff = DAG.getNode(ISD::ADD, dl, PtrVT, StackPtr, in LowerMemOpCallTo()
5300 DAG.getConstant(ArgOffset, dl, PtrVT)); in LowerMemOpCallTo()
5303 DAG.getStore(Chain, dl, Arg, PtrOff, MachinePointerInfo())); in LowerMemOpCallTo()
5311 const SDLoc &dl, int SPDiff, unsigned NumBytes, SDValue LROp, in PrepareTailCall() argument
5320 MemOpChains2, dl); in PrepareTailCall()
5322 Chain = DAG.getNode(ISD::TokenFactor, dl, MVT::Other, MemOpChains2); in PrepareTailCall()
5325 Chain = EmitTailCallStoreFPAndRetAddr(DAG, Chain, LROp, FPOp, SPDiff, dl); in PrepareTailCall()
5328 Chain = DAG.getCALLSEQ_END(Chain, NumBytes, 0, InGlue, dl); in PrepareTailCall()
5347 const SmallVectorImpl<ISD::InputArg> &Ins, const SDLoc &dl, in LowerCallResult() argument
5366 SDValue Lo = DAG.getCopyFromReg(Chain, dl, VA.getLocReg(), MVT::i32, in LowerCallResult()
5371 SDValue Hi = DAG.getCopyFromReg(Chain, dl, VA.getLocReg(), MVT::i32, in LowerCallResult()
5377 Val = DAG.getNode(PPCISD::BUILD_SPE64, dl, MVT::f64, Lo, Hi); in LowerCallResult()
5379 Val = DAG.getCopyFromReg(Chain, dl, in LowerCallResult()
5389 Val = DAG.getNode(ISD::TRUNCATE, dl, VA.getValVT(), Val); in LowerCallResult()
5392 Val = DAG.getNode(ISD::AssertZext, dl, VA.getLocVT(), Val, in LowerCallResult()
5394 Val = DAG.getNode(ISD::TRUNCATE, dl, VA.getValVT(), Val); in LowerCallResult()
5397 Val = DAG.getNode(ISD::AssertSext, dl, VA.getLocVT(), Val, in LowerCallResult()
5399 Val = DAG.getNode(ISD::TRUNCATE, dl, VA.getValVT(), Val); in LowerCallResult()
5503 const SDLoc &dl, const PPCSubtarget &Subtarget) { in transformCallee() argument
5544 return DAG.getTargetGlobalAddress(GV, dl, Callee.getValueType(), 0, in transformCallee()
5599 const SDLoc &dl) { in prepareIndirectCall() argument
5602 Chain = DAG.getNode(PPCISD::MTCTR, dl, ReturnTypes, in prepareIndirectCall()
5611 const CallBase *CB, const SDLoc &dl, in prepareDescriptorIndirectCall() argument
5661 SDValue LoadFuncPtr = DAG.getLoad(RegVT, dl, LDChain, Callee, MPI, in prepareDescriptorIndirectCall()
5666 SDValue TOCOff = DAG.getIntPtrConstant(TOCAnchorOffset, dl); in prepareDescriptorIndirectCall()
5667 SDValue AddTOC = DAG.getNode(ISD::ADD, dl, RegVT, Callee, TOCOff); in prepareDescriptorIndirectCall()
5669 DAG.getLoad(RegVT, dl, LDChain, AddTOC, in prepareDescriptorIndirectCall()
5673 SDValue PtrOff = DAG.getIntPtrConstant(EnvPtrOffset, dl); in prepareDescriptorIndirectCall()
5674 SDValue AddPtr = DAG.getNode(ISD::ADD, dl, RegVT, Callee, PtrOff); in prepareDescriptorIndirectCall()
5676 DAG.getLoad(RegVT, dl, LDChain, AddPtr, in prepareDescriptorIndirectCall()
5681 SDValue TOCVal = DAG.getCopyToReg(Chain, dl, TOCReg, TOCPtr, Glue); in prepareDescriptorIndirectCall()
5690 SDValue EnvVal = DAG.getCopyToReg(Chain, dl, EnvPtrReg, LoadEnvPtr, Glue); in prepareDescriptorIndirectCall()
5697 prepareIndirectCall(DAG, LoadFuncPtr, Glue, Chain, dl); in prepareDescriptorIndirectCall()
5702 PPCTargetLowering::CallFlags CFlags, const SDLoc &dl, in buildCallOperands() argument
5734 SDValue TOCOff = DAG.getIntPtrConstant(TOCSaveOffset, dl); in buildCallOperands()
5735 SDValue AddTOC = DAG.getNode(ISD::ADD, dl, RegVT, StackPtr, TOCOff); in buildCallOperands()
5752 Ops.push_back(DAG.getConstant(SPDiff, dl, MVT::i32)); in buildCallOperands()
5784 CallFlags CFlags, const SDLoc &dl, SelectionDAG &DAG, in FinishCall() argument
5799 Callee = transformCallee(Callee, DAG, dl, Subtarget); in FinishCall()
5802 dl, CFlags.HasNest, Subtarget); in FinishCall()
5804 prepareIndirectCall(DAG, Callee, Glue, Chain, dl); in FinishCall()
5808 buildCallOperands(Ops, CFlags, dl, DAG, RegsToPass, Glue, Chain, Callee, in FinishCall()
5828 SDValue Ret = DAG.getNode(CallOpc, dl, MVT::Other, Ops); in FinishCall()
5834 Chain = DAG.getNode(CallOpc, dl, ReturnTypes, Ops); in FinishCall()
5846 Chain = DAG.getCALLSEQ_END(Chain, NumBytes, BytesCalleePops, Glue, dl); in FinishCall()
5849 return LowerCallResult(Chain, Glue, CFlags.CallConv, CFlags.IsVarArg, Ins, dl, in FinishCall()
5896 SDLoc &dl = CLI.DL; in LowerCall() local
5959 return LowerCall_AIX(Chain, Callee, CFlags, Outs, OutVals, Ins, dl, DAG, in LowerCall()
5964 return LowerCall_64SVR4(Chain, Callee, CFlags, Outs, OutVals, Ins, dl, DAG, in LowerCall()
5966 return LowerCall_32SVR4(Chain, Callee, CFlags, Outs, OutVals, Ins, dl, DAG, in LowerCall()
5974 const SmallVectorImpl<ISD::InputArg> &Ins, const SDLoc &dl, in LowerCall_32SVR4() argument
6068 Chain = DAG.getCALLSEQ_START(Chain, NumBytes, 0, dl); in LowerCall_32SVR4()
6074 Chain = EmitTailCallLoadFPAndRetAddr(DAG, SPDiff, Chain, LROp, FPOp, dl); in LowerCall_32SVR4()
6109 SDValue PtrOff = DAG.getIntPtrConstant(LocMemOffset, dl); in LowerCall_32SVR4()
6110 PtrOff = DAG.getNode(ISD::ADD, dl, getPointerTy(MF.getDataLayout()), in LowerCall_32SVR4()
6118 Flags, DAG, dl); in LowerCall_32SVR4()
6139 dl, MVT::i32, Arg); in LowerCall_32SVR4()
6146 SDValue SVal = DAG.getNode(PPCISD::EXTRACT_SPE, dl, MVT::i32, Arg, in LowerCall_32SVR4()
6147 DAG.getIntPtrConstant(IsLE ? 0 : 1, dl)); in LowerCall_32SVR4()
6149 SVal = DAG.getNode(PPCISD::EXTRACT_SPE, dl, MVT::i32, Arg, in LowerCall_32SVR4()
6150 DAG.getIntPtrConstant(IsLE ? 1 : 0, dl)); in LowerCall_32SVR4()
6161 SDValue PtrOff = DAG.getIntPtrConstant(LocMemOffset, dl); in LowerCall_32SVR4()
6162 PtrOff = DAG.getNode(ISD::ADD, dl, getPointerTy(MF.getDataLayout()), in LowerCall_32SVR4()
6166 DAG.getStore(Chain, dl, Arg, PtrOff, MachinePointerInfo())); in LowerCall_32SVR4()
6176 Chain = DAG.getNode(ISD::TokenFactor, dl, MVT::Other, MemOpChains); in LowerCall_32SVR4()
6182 Chain = DAG.getCopyToReg(Chain, dl, RegsToPass[i].first, in LowerCall_32SVR4()
6193 Chain = DAG.getNode(seenFloatArg ? PPCISD::CR6SET : PPCISD::CR6UNSET, dl, in LowerCall_32SVR4()
6200 PrepareTailCall(DAG, InGlue, Chain, dl, SPDiff, NumBytes, LROp, FPOp, in LowerCall_32SVR4()
6203 return FinishCall(CFlags, dl, DAG, RegsToPass, InGlue, Chain, CallSeqStart, in LowerCall_32SVR4()
6211 SelectionDAG &DAG, const SDLoc &dl) const { in createMemcpyOutsideCallSeq()
6214 Flags, DAG, dl); in createMemcpyOutsideCallSeq()
6228 const SmallVectorImpl<ISD::InputArg> &Ins, const SDLoc &dl, in LowerCall_64SVR4() argument
6396 Chain = DAG.getCALLSEQ_START(Chain, NumBytes, 0, dl); in LowerCall_64SVR4()
6402 Chain = EmitTailCallLoadFPAndRetAddr(DAG, SPDiff, Chain, LROp, FPOp, dl); in LowerCall_64SVR4()
6438 PtrOff = DAG.getConstant(ArgOffset, dl, StackPtr.getValueType()); in LowerCall_64SVR4()
6440 PtrOff = DAG.getNode(ISD::ADD, dl, PtrVT, StackPtr, PtrOff); in LowerCall_64SVR4()
6455 Arg = DAG.getNode(ExtOp, dl, MVT::i64, Arg); in LowerCall_64SVR4()
6481 SDValue Load = DAG.getExtLoad(ISD::EXTLOAD, dl, PtrVT, Chain, Arg, in LowerCall_64SVR4()
6494 SDValue Const = DAG.getConstant(PtrByteSize - Size, dl, in LowerCall_64SVR4()
6496 AddPtr = DAG.getNode(ISD::ADD, dl, PtrVT, PtrOff, Const); in LowerCall_64SVR4()
6500 Flags, DAG, dl); in LowerCall_64SVR4()
6513 Flags, DAG, dl); in LowerCall_64SVR4()
6527 SDValue Const = DAG.getConstant(8 - Size, dl, PtrOff.getValueType()); in LowerCall_64SVR4()
6528 AddPtr = DAG.getNode(ISD::ADD, dl, PtrVT, PtrOff, Const); in LowerCall_64SVR4()
6532 Flags, DAG, dl); in LowerCall_64SVR4()
6536 DAG.getLoad(PtrVT, dl, Chain, PtrOff, MachinePointerInfo()); in LowerCall_64SVR4()
6548 SDValue Const = DAG.getConstant(j, dl, PtrOff.getValueType()); in LowerCall_64SVR4()
6549 SDValue AddArg = DAG.getNode(ISD::ADD, dl, PtrVT, Arg, Const); in LowerCall_64SVR4()
6553 SDValue Load = DAG.getExtLoad(ISD::EXTLOAD, dl, PtrVT, Chain, AddArg, in LowerCall_64SVR4()
6591 TailCallArguments, dl); in LowerCall_64SVR4()
6630 ArgVal = DAG.getNode(ISD::BITCAST, dl, MVT::i64, Arg); in LowerCall_64SVR4()
6634 ArgVal = DAG.getNode(ISD::BITCAST, dl, MVT::i32, Arg); in LowerCall_64SVR4()
6635 ArgVal = DAG.getNode(ISD::ANY_EXTEND, dl, MVT::i64, ArgVal); in LowerCall_64SVR4()
6641 Lo = DAG.getNode(ISD::BITCAST, dl, MVT::i32, OutVals[i - 1]); in LowerCall_64SVR4()
6642 Hi = DAG.getNode(ISD::BITCAST, dl, MVT::i32, Arg); in LowerCall_64SVR4()
6645 ArgVal = DAG.getNode(ISD::BUILD_PAIR, dl, MVT::i64, Lo, Hi); in LowerCall_64SVR4()
6649 ArgVal = DAG.getNode(ISD::BITCAST, dl, MVT::i32, Arg); in LowerCall_64SVR4()
6650 ArgVal = DAG.getNode(ISD::ANY_EXTEND, dl, MVT::i64, ArgVal); in LowerCall_64SVR4()
6652 ArgVal = DAG.getNode(ISD::SHL, dl, MVT::i64, ArgVal, in LowerCall_64SVR4()
6653 DAG.getConstant(32, dl, MVT::i32)); in LowerCall_64SVR4()
6670 SDValue ConstFour = DAG.getConstant(4, dl, PtrOff.getValueType()); in LowerCall_64SVR4()
6671 PtrOff = DAG.getNode(ISD::ADD, dl, PtrVT, PtrOff, ConstFour); in LowerCall_64SVR4()
6678 TailCallArguments, dl); in LowerCall_64SVR4()
6715 DAG.getStore(Chain, dl, Arg, PtrOff, MachinePointerInfo()); in LowerCall_64SVR4()
6719 DAG.getLoad(MVT::v4f32, dl, Store, PtrOff, MachinePointerInfo()); in LowerCall_64SVR4()
6727 SDValue Ix = DAG.getNode(ISD::ADD, dl, PtrVT, PtrOff, in LowerCall_64SVR4()
6728 DAG.getConstant(i, dl, PtrVT)); in LowerCall_64SVR4()
6730 DAG.getLoad(PtrVT, dl, Store, Ix, MachinePointerInfo()); in LowerCall_64SVR4()
6748 TailCallArguments, dl); in LowerCall_64SVR4()
6764 Chain = DAG.getNode(ISD::TokenFactor, dl, MVT::Other, MemOpChains); in LowerCall_64SVR4()
6776 SDValue Val = DAG.getCopyFromReg(Chain, dl, PPC::X2, MVT::i64); in LowerCall_64SVR4()
6779 SDValue PtrOff = DAG.getIntPtrConstant(TOCSaveOffset, dl); in LowerCall_64SVR4()
6780 SDValue AddPtr = DAG.getNode(ISD::ADD, dl, PtrVT, StackPtr, PtrOff); in LowerCall_64SVR4()
6781 Chain = DAG.getStore(Val.getValue(1), dl, Val, AddPtr, in LowerCall_64SVR4()
6796 Chain = DAG.getCopyToReg(Chain, dl, RegsToPass[i].first, in LowerCall_64SVR4()
6802 PrepareTailCall(DAG, InGlue, Chain, dl, SPDiff, NumBytes, LROp, FPOp, in LowerCall_64SVR4()
6805 return FinishCall(CFlags, dl, DAG, RegsToPass, InGlue, Chain, CallSeqStart, in LowerCall_64SVR4()
7115 MVT LocVT, const SDLoc &dl) { in truncateScalarIntegerArg() argument
7120 ArgValue = DAG.getNode(ISD::AssertSext, dl, LocVT, ArgValue, in truncateScalarIntegerArg()
7123 ArgValue = DAG.getNode(ISD::AssertZext, dl, LocVT, ArgValue, in truncateScalarIntegerArg()
7126 return DAG.getNode(ISD::TRUNCATE, dl, ValVT, ArgValue); in truncateScalarIntegerArg()
7189 const SmallVectorImpl<ISD::InputArg> &Ins, const SDLoc &dl, in LowerFormalArguments_AIX() argument
7252 DAG.getLoad(ValVT, dl, Chain, FIN, MachinePointerInfo()); in LowerFormalArguments_AIX()
7373 SDValue CopyFrom = DAG.getCopyFromReg(Chain, dl, VReg, LocVT); in LowerFormalArguments_AIX()
7380 CopyFrom.getValue(1), dl, CopyFrom, in LowerFormalArguments_AIX()
7381 DAG.getObjectPtrOffset(dl, FIN, TypeSize::getFixed(Offset)), in LowerFormalArguments_AIX()
7418 SDValue ArgValue = DAG.getCopyFromReg(Chain, dl, VReg, LocVT); in LowerFormalArguments_AIX()
7422 truncateScalarIntegerArg(Flags, ValVT, DAG, ArgValue, LocVT, dl); in LowerFormalArguments_AIX()
7470 SDValue Val = DAG.getCopyFromReg(Chain, dl, VReg, PtrVT); in LowerFormalArguments_AIX()
7472 DAG.getStore(Val.getValue(1), dl, Val, FIN, MachinePointerInfo()); in LowerFormalArguments_AIX()
7475 SDValue PtrOff = DAG.getConstant(PtrByteSize, dl, PtrVT); in LowerFormalArguments_AIX()
7476 FIN = DAG.getNode(ISD::ADD, dl, PtrOff.getValueType(), FIN, PtrOff); in LowerFormalArguments_AIX()
7481 Chain = DAG.getNode(ISD::TokenFactor, dl, MVT::Other, MemOps); in LowerFormalArguments_AIX()
7490 const SmallVectorImpl<ISD::InputArg> &Ins, const SDLoc &dl, in LowerCall_AIX() argument
7534 Chain = DAG.getCALLSEQ_START(Chain, NumBytes, 0, dl); in LowerCall_AIX()
7561 return DAG.getExtLoad(ISD::ZEXTLOAD, dl, PtrVT, Chain, in LowerCall_AIX()
7564 dl, Arg, TypeSize::getFixed(LoadOffset)) in LowerCall_AIX()
7597 dl, Arg, TypeSize::getFixed(LoadOffset)) in LowerCall_AIX()
7600 dl, StackPtr, TypeSize::getFixed(ByValVA.getLocMemOffset())), in LowerCall_AIX()
7601 CallSeqStart, MemcpyFlags, DAG, dl); in LowerCall_AIX()
7633 SDValue SHLAmt = DAG.getConstant(NumSHLBits, dl, ShiftAmountTy); in LowerCall_AIX()
7635 DAG.getNode(ISD::SHL, dl, Load.getValueType(), Load, SHLAmt); in LowerCall_AIX()
7636 ResidueVal = ResidueVal ? DAG.getNode(ISD::OR, dl, PtrVT, ResidueVal, in LowerCall_AIX()
7656 Arg = DAG.getNode(ISD::ZERO_EXTEND, dl, VA.getLocVT(), Arg); in LowerCall_AIX()
7659 Arg = DAG.getNode(ISD::SIGN_EXTEND, dl, VA.getLocVT(), Arg); in LowerCall_AIX()
7674 DAG.getConstant(VA.getLocMemOffset(), dl, StackPtr.getValueType()); in LowerCall_AIX()
7675 PtrOff = DAG.getNode(ISD::ADD, dl, PtrVT, StackPtr, PtrOff); in LowerCall_AIX()
7677 DAG.getStore(Chain, dl, Arg, PtrOff, MachinePointerInfo()); in LowerCall_AIX()
7689 SDValue Add = DAG.getNode(ISD::ADD, dl, PtrVT, PtrOff, in LowerCall_AIX()
7690 DAG.getConstant(LoadOffset, dl, PtrVT)); in LowerCall_AIX()
7691 SDValue Load = DAG.getLoad(PtrVT, dl, Store, Add, MachinePointerInfo()); in LowerCall_AIX()
7716 DAG.getConstant(VA.getLocMemOffset(), dl, StackPtr.getValueType()); in LowerCall_AIX()
7717 PtrOff = DAG.getNode(ISD::ADD, dl, PtrVT, StackPtr, PtrOff); in LowerCall_AIX()
7719 DAG.getStore(Chain, dl, Arg, PtrOff, MachinePointerInfo())); in LowerCall_AIX()
7745 VA.getLocReg(), DAG.getZExtOrTrunc(ArgAsInt, dl, LocVT))); in LowerCall_AIX()
7752 SDValue MSWAsI64 = DAG.getNode(ISD::SRL, dl, MVT::i64, ArgAsInt, in LowerCall_AIX()
7753 DAG.getConstant(32, dl, MVT::i8)); in LowerCall_AIX()
7755 GPR1.getLocReg(), DAG.getZExtOrTrunc(MSWAsI64, dl, MVT::i32))); in LowerCall_AIX()
7765 GPR2.getLocReg(), DAG.getZExtOrTrunc(ArgAsInt, dl, MVT::i32))); in LowerCall_AIX()
7772 Chain = DAG.getNode(ISD::TokenFactor, dl, MVT::Other, MemOpChains); in LowerCall_AIX()
7785 SDValue Val = DAG.getCopyFromReg(Chain, dl, TOCBaseReg, PtrVT); in LowerCall_AIX()
7786 SDValue PtrOff = DAG.getIntPtrConstant(TOCSaveOffset, dl); in LowerCall_AIX()
7788 SDValue AddPtr = DAG.getNode(ISD::ADD, dl, PtrVT, StackPtr, PtrOff); in LowerCall_AIX()
7790 Val.getValue(1), dl, Val, AddPtr, in LowerCall_AIX()
7798 Chain = DAG.getCopyToReg(Chain, dl, Reg.first, Reg.second, InGlue); in LowerCall_AIX()
7803 return FinishCall(CFlags, dl, DAG, RegsToPass, InGlue, Chain, CallSeqStart, in LowerCall_AIX()
7825 const SDLoc &dl, SelectionDAG &DAG) const { in LowerReturn() argument
7848 Arg = DAG.getNode(ISD::ANY_EXTEND, dl, VA.getLocVT(), Arg); in LowerReturn()
7851 Arg = DAG.getNode(ISD::ZERO_EXTEND, dl, VA.getLocVT(), Arg); in LowerReturn()
7854 Arg = DAG.getNode(ISD::SIGN_EXTEND, dl, VA.getLocVT(), Arg); in LowerReturn()
7861 DAG.getNode(PPCISD::EXTRACT_SPE, dl, MVT::i32, Arg, in LowerReturn()
7862 DAG.getIntPtrConstant(isLittleEndian ? 0 : 1, dl)); in LowerReturn()
7863 Chain = DAG.getCopyToReg(Chain, dl, VA.getLocReg(), SVal, Glue); in LowerReturn()
7865 SVal = DAG.getNode(PPCISD::EXTRACT_SPE, dl, MVT::i32, Arg, in LowerReturn()
7866 DAG.getIntPtrConstant(isLittleEndian ? 1 : 0, dl)); in LowerReturn()
7869 Chain = DAG.getCopyToReg(Chain, dl, VA.getLocReg(), SVal, Glue); in LowerReturn()
7871 Chain = DAG.getCopyToReg(Chain, dl, VA.getLocReg(), Arg, Glue); in LowerReturn()
7882 return DAG.getNode(PPCISD::RET_GLUE, dl, MVT::Other, RetOps); in LowerReturn()
7888 SDLoc dl(Op); in LowerGET_DYNAMIC_AREA_OFFSET() local
7899 return DAG.getNode(PPCISD::DYNAREAOFFSET, dl, VTs, Ops); in LowerGET_DYNAMIC_AREA_OFFSET()
7905 SDLoc dl(Op); in LowerSTACKRESTORE() local
7921 DAG.getLoad(PtrVT, dl, Chain, StackPtr, MachinePointerInfo()); in LowerSTACKRESTORE()
7924 Chain = DAG.getCopyToReg(LoadLinkSP.getValue(1), dl, SP, SaveSP); in LowerSTACKRESTORE()
7927 return DAG.getStore(Chain, dl, LoadLinkSP, StackPtr, MachinePointerInfo()); in LowerSTACKRESTORE()
7981 SDLoc dl(Op); in LowerDYNAMIC_STACKALLOC() local
7986 SDValue NegSize = DAG.getNode(ISD::SUB, dl, PtrVT, in LowerDYNAMIC_STACKALLOC()
7987 DAG.getConstant(0, dl, PtrVT), Size); in LowerDYNAMIC_STACKALLOC()
7993 return DAG.getNode(PPCISD::PROBED_ALLOCA, dl, VTs, Ops); in LowerDYNAMIC_STACKALLOC()
7994 return DAG.getNode(PPCISD::DYNALLOC, dl, VTs, Ops); in LowerDYNAMIC_STACKALLOC()
8032 SDLoc dl(Op); in LowerLOAD() local
8040 DAG.getExtLoad(ISD::EXTLOAD, dl, getPointerTy(DAG.getDataLayout()), Chain, in LowerLOAD()
8042 SDValue Result = DAG.getNode(ISD::TRUNCATE, dl, MVT::i1, NewLD); in LowerLOAD()
8045 return DAG.getMergeValues(Ops, dl); in LowerLOAD()
8057 SDLoc dl(Op); in LowerSTORE() local
8065 Value = DAG.getNode(ISD::ZERO_EXTEND, dl, getPointerTy(DAG.getDataLayout()), in LowerSTORE()
8067 return DAG.getTruncStore(Chain, dl, Value, BasePtr, MVT::i8, MMO); in LowerSTORE()
8168 SDLoc dl(Op); in LowerSELECT_CC() local
8175 dl, getSetCCResultType(DAG.getDataLayout(), *DAG.getContext(), CmpVT), in LowerSELECT_CC()
8177 SDValue Zero = DAG.getConstant(0, dl, Z.getValueType()); in LowerSELECT_CC()
8178 return DAG.getSelectCC(dl, Z, Zero, TV, FV, ISD::SETNE); in LowerSELECT_CC()
8196 return DAG.getNode(PPCISD::XSMAXC, dl, Op.getValueType(), LHS, RHS); in LowerSELECT_CC()
8199 return DAG.getNode(PPCISD::XSMINC, dl, Op.getValueType(), LHS, RHS); in LowerSELECT_CC()
8223 LHS = DAG.getNode(ISD::FP_EXTEND, dl, MVT::f64, LHS); in LowerSELECT_CC()
8224 Sel1 = DAG.getNode(PPCISD::FSEL, dl, ResVT, LHS, TV, FV); in LowerSELECT_CC()
8226 Sel1 = DAG.getNode(ISD::FP_EXTEND, dl, MVT::f64, Sel1); in LowerSELECT_CC()
8227 return DAG.getNode(PPCISD::FSEL, dl, ResVT, in LowerSELECT_CC()
8228 DAG.getNode(ISD::FNEG, dl, MVT::f64, LHS), Sel1, FV); in LowerSELECT_CC()
8236 LHS = DAG.getNode(ISD::FP_EXTEND, dl, MVT::f64, LHS); in LowerSELECT_CC()
8237 return DAG.getNode(PPCISD::FSEL, dl, ResVT, LHS, TV, FV); in LowerSELECT_CC()
8245 LHS = DAG.getNode(ISD::FP_EXTEND, dl, MVT::f64, LHS); in LowerSELECT_CC()
8246 return DAG.getNode(PPCISD::FSEL, dl, ResVT, in LowerSELECT_CC()
8247 DAG.getNode(ISD::FNEG, dl, MVT::f64, LHS), TV, FV); in LowerSELECT_CC()
8257 Cmp = DAG.getNode(ISD::FSUB, dl, CmpVT, LHS, RHS, Flags); in LowerSELECT_CC()
8259 Cmp = DAG.getNode(ISD::FP_EXTEND, dl, MVT::f64, Cmp); in LowerSELECT_CC()
8260 Sel1 = DAG.getNode(PPCISD::FSEL, dl, ResVT, Cmp, TV, FV); in LowerSELECT_CC()
8262 Sel1 = DAG.getNode(ISD::FP_EXTEND, dl, MVT::f64, Sel1); in LowerSELECT_CC()
8263 return DAG.getNode(PPCISD::FSEL, dl, ResVT, in LowerSELECT_CC()
8264 DAG.getNode(ISD::FNEG, dl, MVT::f64, Cmp), Sel1, FV); in LowerSELECT_CC()
8267 Cmp = DAG.getNode(ISD::FSUB, dl, CmpVT, LHS, RHS, Flags); in LowerSELECT_CC()
8269 Cmp = DAG.getNode(ISD::FP_EXTEND, dl, MVT::f64, Cmp); in LowerSELECT_CC()
8270 return DAG.getNode(PPCISD::FSEL, dl, ResVT, Cmp, FV, TV); in LowerSELECT_CC()
8273 Cmp = DAG.getNode(ISD::FSUB, dl, CmpVT, LHS, RHS, Flags); in LowerSELECT_CC()
8275 Cmp = DAG.getNode(ISD::FP_EXTEND, dl, MVT::f64, Cmp); in LowerSELECT_CC()
8276 return DAG.getNode(PPCISD::FSEL, dl, ResVT, Cmp, TV, FV); in LowerSELECT_CC()
8279 Cmp = DAG.getNode(ISD::FSUB, dl, CmpVT, RHS, LHS, Flags); in LowerSELECT_CC()
8281 Cmp = DAG.getNode(ISD::FP_EXTEND, dl, MVT::f64, Cmp); in LowerSELECT_CC()
8282 return DAG.getNode(PPCISD::FSEL, dl, ResVT, Cmp, FV, TV); in LowerSELECT_CC()
8285 Cmp = DAG.getNode(ISD::FSUB, dl, CmpVT, RHS, LHS, Flags); in LowerSELECT_CC()
8287 Cmp = DAG.getNode(ISD::FP_EXTEND, dl, MVT::f64, Cmp); in LowerSELECT_CC()
8288 return DAG.getNode(PPCISD::FSEL, dl, ResVT, Cmp, TV, FV); in LowerSELECT_CC()
8318 SDLoc dl(Op); in convertFPToInt() local
8338 DAG.getNode(ISD::STRICT_FP_EXTEND, dl, in convertFPToInt()
8342 Src = DAG.getNode(ISD::FP_EXTEND, dl, MVT::f64, Src); in convertFPToInt()
8362 Conv = DAG.getNode(Opc, dl, DAG.getVTList(ConvTy, MVT::Other), {Chain, Src}, in convertFPToInt()
8365 Conv = DAG.getNode(Opc, dl, ConvTy, Src); in convertFPToInt()
8372 const SDLoc &dl) const { in LowerFP_TO_INTForReuse()
8395 Chain = DAG.getMemIntrinsicNode(PPCISD::STFIWX, dl, in LowerFP_TO_INTForReuse()
8398 Chain = DAG.getStore(Chain, dl, Tmp, FIPtr, MPI, Alignment); in LowerFP_TO_INTForReuse()
8403 FIPtr = DAG.getNode(ISD::ADD, dl, FIPtr.getValueType(), FIPtr, in LowerFP_TO_INTForReuse()
8404 DAG.getConstant(4, dl, FIPtr.getValueType())); in LowerFP_TO_INTForReuse()
8419 const SDLoc &dl) const { in LowerFP_TO_INTDirectMove()
8421 SDValue Mov = DAG.getNode(PPCISD::MFVSR, dl, Op.getValueType(), Conv); in LowerFP_TO_INTDirectMove()
8423 return DAG.getMergeValues({Mov, Conv.getValue(1)}, dl); in LowerFP_TO_INTDirectMove()
8429 const SDLoc &dl) const { in LowerFP_TO_INT()
8453 std::tie(Lo, Hi) = DAG.SplitScalar(Src, dl, MVT::f64, MVT::f64); in LowerFP_TO_INT()
8458 SDValue Res = DAG.getNode(PPCISD::STRICT_FADDRTZ, dl, in LowerFP_TO_INT()
8461 return DAG.getNode(ISD::STRICT_FP_TO_SINT, dl, in LowerFP_TO_INT()
8465 SDValue Res = DAG.getNode(PPCISD::FADDRTZ, dl, MVT::f64, Lo, Hi); in LowerFP_TO_INT()
8466 return DAG.getNode(ISD::FP_TO_SINT, dl, MVT::i32, Res); in LowerFP_TO_INT()
8471 SDValue Cst = DAG.getConstantFP(APF, dl, SrcVT); in LowerFP_TO_INT()
8472 SDValue SignMask = DAG.getConstant(0x80000000, dl, DstVT); in LowerFP_TO_INT()
8483 SDValue Sel = DAG.getSetCC(dl, SetCCVT, Src, Cst, ISD::SETLT, in LowerFP_TO_INT()
8488 dl, SrcVT, Sel, DAG.getConstantFP(0.0, dl, SrcVT), Cst); in LowerFP_TO_INT()
8489 Sel = DAG.getBoolExtOrTrunc(Sel, dl, DstSetCCVT, DstVT); in LowerFP_TO_INT()
8491 SDValue Val = DAG.getNode(ISD::STRICT_FSUB, dl, in LowerFP_TO_INT()
8495 SDValue SInt = DAG.getNode(ISD::STRICT_FP_TO_SINT, dl, in LowerFP_TO_INT()
8500 dl, DstVT, Sel, DAG.getConstant(0, dl, DstVT), SignMask); in LowerFP_TO_INT()
8501 SDValue Result = DAG.getNode(ISD::XOR, dl, DstVT, SInt, IntOfs); in LowerFP_TO_INT()
8502 return DAG.getMergeValues({Result, Chain}, dl); in LowerFP_TO_INT()
8506 SDValue True = DAG.getNode(ISD::FSUB, dl, MVT::ppcf128, Src, Cst); in LowerFP_TO_INT()
8507 True = DAG.getNode(ISD::FP_TO_SINT, dl, MVT::i32, True); in LowerFP_TO_INT()
8508 True = DAG.getNode(ISD::ADD, dl, MVT::i32, True, SignMask); in LowerFP_TO_INT()
8509 SDValue False = DAG.getNode(ISD::FP_TO_SINT, dl, MVT::i32, Src); in LowerFP_TO_INT()
8510 return DAG.getSelectCC(dl, Src, Cst, True, False, ISD::SETGE); in LowerFP_TO_INT()
8519 return LowerFP_TO_INTDirectMove(Op, DAG, dl); in LowerFP_TO_INT()
8522 LowerFP_TO_INTForReuse(Op, RLI, DAG, dl); in LowerFP_TO_INT()
8524 return DAG.getLoad(Op.getValueType(), dl, RLI.Chain, RLI.Ptr, RLI.MPI, in LowerFP_TO_INT()
8544 SDLoc dl(Op); in canReuseLoadAddress() local
8552 LowerFP_TO_INTForReuse(Op, RLI, DAG, dl); in canReuseLoadAddress()
8574 RLI.Ptr = DAG.getNode(ISD::ADD, dl, RLI.Ptr.getValueType(), RLI.Ptr, in canReuseLoadAddress()
8600 SDLoc dl(NewResChain); in spliceIntoChain() local
8602 SDValue TF = DAG.getNode(ISD::TokenFactor, dl, MVT::Other, in spliceIntoChain()
8649 SDLoc dl(Op); in convertIntToFP() local
8664 return DAG.getNode(getPPCStrictOpcode(ConvOpc), dl, in convertIntToFP()
8667 return DAG.getNode(ConvOpc, dl, ConvTy, Src); in convertIntToFP()
8675 const SDLoc &dl) const { in LowerINT_TO_FPDirectMove()
8686 SDValue Mov = DAG.getNode(MovOpc, dl, MVT::f64, Src); in LowerINT_TO_FPDirectMove()
8690 static SDValue widenVec(SelectionDAG &DAG, SDValue Vec, const SDLoc &dl) { in widenVec() argument
8707 return DAG.getNode(ISD::CONCAT_VECTORS, dl, WideVT, Ops); in widenVec()
8711 const SDLoc &dl) const { in LowerINT_TO_FPVector()
8728 SDValue Wide = widenVec(DAG, Src, dl); in LowerINT_TO_FPVector()
8747 SignedConv ? DAG.getUNDEF(WideVT) : DAG.getConstant(0, dl, WideVT); in LowerINT_TO_FPVector()
8748 SDValue Arrange = DAG.getVectorShuffle(WideVT, dl, Wide, ShuffleSrc2, ShuffV); in LowerINT_TO_FPVector()
8758 Extend = DAG.getNode(ISD::SIGN_EXTEND_INREG, dl, IntermediateVT, Arrange, in LowerINT_TO_FPVector()
8761 Extend = DAG.getNode(ISD::BITCAST, dl, IntermediateVT, Arrange); in LowerINT_TO_FPVector()
8764 return DAG.getNode(Opc, dl, DAG.getVTList(Op.getValueType(), MVT::Other), in LowerINT_TO_FPVector()
8767 return DAG.getNode(Opc, dl, Op.getValueType(), Extend); in LowerINT_TO_FPVector()
8772 SDLoc dl(Op); in LowerINT_TO_FP() local
8787 return LowerINT_TO_FPVector(Op, DAG, dl); in LowerINT_TO_FP()
8798 SDValue Sel = DAG.getNode(ISD::SELECT, dl, Op.getValueType(), Src, in LowerINT_TO_FP()
8799 DAG.getConstantFP(1.0, dl, Op.getValueType()), in LowerINT_TO_FP()
8800 DAG.getConstantFP(0.0, dl, Op.getValueType())); in LowerINT_TO_FP()
8802 return DAG.getMergeValues({Sel, Chain}, dl); in LowerINT_TO_FP()
8811 return LowerINT_TO_FPDirectMove(Op, DAG, dl); in LowerINT_TO_FP()
8838 SDValue Round = DAG.getNode(ISD::AND, dl, MVT::i64, in LowerINT_TO_FP()
8839 SINT, DAG.getConstant(2047, dl, MVT::i64)); in LowerINT_TO_FP()
8840 Round = DAG.getNode(ISD::ADD, dl, MVT::i64, in LowerINT_TO_FP()
8841 Round, DAG.getConstant(2047, dl, MVT::i64)); in LowerINT_TO_FP()
8842 Round = DAG.getNode(ISD::OR, dl, MVT::i64, Round, SINT); in LowerINT_TO_FP()
8843 Round = DAG.getNode(ISD::AND, dl, MVT::i64, in LowerINT_TO_FP()
8844 Round, DAG.getConstant(-2048, dl, MVT::i64)); in LowerINT_TO_FP()
8854 SDValue Cond = DAG.getNode(ISD::SRA, dl, MVT::i64, in LowerINT_TO_FP()
8855 SINT, DAG.getConstant(53, dl, MVT::i32)); in LowerINT_TO_FP()
8856 Cond = DAG.getNode(ISD::ADD, dl, MVT::i64, in LowerINT_TO_FP()
8857 Cond, DAG.getConstant(1, dl, MVT::i64)); in LowerINT_TO_FP()
8859 dl, in LowerINT_TO_FP()
8861 Cond, DAG.getConstant(1, dl, MVT::i64), ISD::SETUGT); in LowerINT_TO_FP()
8863 SINT = DAG.getNode(ISD::SELECT, dl, MVT::i64, Cond, Round, SINT); in LowerINT_TO_FP()
8871 Bits = DAG.getLoad(MVT::f64, dl, RLI.Chain, RLI.Ptr, RLI.MPI, in LowerINT_TO_FP()
8880 Bits = DAG.getMemIntrinsicNode(PPCISD::LFIWAX, dl, in LowerINT_TO_FP()
8890 Bits = DAG.getMemIntrinsicNode(PPCISD::LFIWZX, dl, in LowerINT_TO_FP()
8905 SDValue Store = DAG.getStore(Chain, dl, SINT.getOperand(0), FIdx, in LowerINT_TO_FP()
8925 dl, DAG.getVTList(MVT::f64, MVT::Other), in LowerINT_TO_FP()
8929 Bits = DAG.getNode(ISD::BITCAST, dl, MVT::f64, SINT); in LowerINT_TO_FP()
8937 FP = DAG.getNode(ISD::STRICT_FP_ROUND, dl, in LowerINT_TO_FP()
8939 {Chain, FP, DAG.getIntPtrConstant(0, dl)}, Flags); in LowerINT_TO_FP()
8941 FP = DAG.getNode(ISD::FP_ROUND, dl, MVT::f32, FP, in LowerINT_TO_FP()
8942 DAG.getIntPtrConstant(0, dl, /*isTarget=*/true)); in LowerINT_TO_FP()
8965 SDValue Store = DAG.getStore(Chain, dl, Src, FIdx, in LowerINT_TO_FP()
8984 Ld = DAG.getMemIntrinsicNode(IsSigned ? PPCISD::LFIWAX : PPCISD::LFIWZX, dl, in LowerINT_TO_FP()
8997 SDValue Ext64 = DAG.getNode(ISD::SIGN_EXTEND, dl, MVT::i64, Src); in LowerINT_TO_FP()
9001 Chain, dl, Ext64, FIdx, in LowerINT_TO_FP()
9007 MVT::f64, dl, Chain, FIdx, in LowerINT_TO_FP()
9018 FP = DAG.getNode(ISD::STRICT_FP_ROUND, dl, in LowerINT_TO_FP()
9020 {Chain, FP, DAG.getIntPtrConstant(0, dl)}, Flags); in LowerINT_TO_FP()
9022 FP = DAG.getNode(ISD::FP_ROUND, dl, MVT::f32, FP, in LowerINT_TO_FP()
9023 DAG.getIntPtrConstant(0, dl, /*isTarget=*/true)); in LowerINT_TO_FP()
9030 SDLoc dl(Op); in LowerGET_ROUNDING() local
9056 SDValue MFFS = DAG.getNode(PPCISD::MFFS, dl, {MVT::f64, MVT::Other}, Chain); in LowerGET_ROUNDING()
9061 CWD = DAG.getNode(ISD::TRUNCATE, dl, MVT::i32, in LowerGET_ROUNDING()
9062 DAG.getNode(ISD::BITCAST, dl, MVT::i64, MFFS)); in LowerGET_ROUNDING()
9067 Chain = DAG.getStore(Chain, dl, MFFS, StackSlot, MachinePointerInfo()); in LowerGET_ROUNDING()
9072 SDValue Four = DAG.getConstant(4, dl, PtrVT); in LowerGET_ROUNDING()
9073 SDValue Addr = DAG.getNode(ISD::ADD, dl, PtrVT, StackSlot, Four); in LowerGET_ROUNDING()
9074 CWD = DAG.getLoad(MVT::i32, dl, Chain, Addr, MachinePointerInfo()); in LowerGET_ROUNDING()
9080 DAG.getNode(ISD::AND, dl, MVT::i32, in LowerGET_ROUNDING()
9081 CWD, DAG.getConstant(3, dl, MVT::i32)); in LowerGET_ROUNDING()
9083 DAG.getNode(ISD::SRL, dl, MVT::i32, in LowerGET_ROUNDING()
9084 DAG.getNode(ISD::AND, dl, MVT::i32, in LowerGET_ROUNDING()
9085 DAG.getNode(ISD::XOR, dl, MVT::i32, in LowerGET_ROUNDING()
9086 CWD, DAG.getConstant(3, dl, MVT::i32)), in LowerGET_ROUNDING()
9087 DAG.getConstant(3, dl, MVT::i32)), in LowerGET_ROUNDING()
9088 DAG.getConstant(1, dl, MVT::i32)); in LowerGET_ROUNDING()
9091 DAG.getNode(ISD::XOR, dl, MVT::i32, CWD1, CWD2); in LowerGET_ROUNDING()
9095 dl, VT, RetVal); in LowerGET_ROUNDING()
9097 return DAG.getMergeValues({RetVal, Chain}, dl); in LowerGET_ROUNDING()
9103 SDLoc dl(Op); in LowerSHL_PARTS() local
9115 SDValue Tmp1 = DAG.getNode(ISD::SUB, dl, AmtVT, in LowerSHL_PARTS()
9116 DAG.getConstant(BitWidth, dl, AmtVT), Amt); in LowerSHL_PARTS()
9117 SDValue Tmp2 = DAG.getNode(PPCISD::SHL, dl, VT, Hi, Amt); in LowerSHL_PARTS()
9118 SDValue Tmp3 = DAG.getNode(PPCISD::SRL, dl, VT, Lo, Tmp1); in LowerSHL_PARTS()
9119 SDValue Tmp4 = DAG.getNode(ISD::OR , dl, VT, Tmp2, Tmp3); in LowerSHL_PARTS()
9120 SDValue Tmp5 = DAG.getNode(ISD::ADD, dl, AmtVT, Amt, in LowerSHL_PARTS()
9121 DAG.getConstant(-BitWidth, dl, AmtVT)); in LowerSHL_PARTS()
9122 SDValue Tmp6 = DAG.getNode(PPCISD::SHL, dl, VT, Lo, Tmp5); in LowerSHL_PARTS()
9123 SDValue OutHi = DAG.getNode(ISD::OR, dl, VT, Tmp4, Tmp6); in LowerSHL_PARTS()
9124 SDValue OutLo = DAG.getNode(PPCISD::SHL, dl, VT, Lo, Amt); in LowerSHL_PARTS()
9126 return DAG.getMergeValues(OutOps, dl); in LowerSHL_PARTS()
9131 SDLoc dl(Op); in LowerSRL_PARTS() local
9144 SDValue Tmp1 = DAG.getNode(ISD::SUB, dl, AmtVT, in LowerSRL_PARTS()
9145 DAG.getConstant(BitWidth, dl, AmtVT), Amt); in LowerSRL_PARTS()
9146 SDValue Tmp2 = DAG.getNode(PPCISD::SRL, dl, VT, Lo, Amt); in LowerSRL_PARTS()
9147 SDValue Tmp3 = DAG.getNode(PPCISD::SHL, dl, VT, Hi, Tmp1); in LowerSRL_PARTS()
9148 SDValue Tmp4 = DAG.getNode(ISD::OR, dl, VT, Tmp2, Tmp3); in LowerSRL_PARTS()
9149 SDValue Tmp5 = DAG.getNode(ISD::ADD, dl, AmtVT, Amt, in LowerSRL_PARTS()
9150 DAG.getConstant(-BitWidth, dl, AmtVT)); in LowerSRL_PARTS()
9151 SDValue Tmp6 = DAG.getNode(PPCISD::SRL, dl, VT, Hi, Tmp5); in LowerSRL_PARTS()
9152 SDValue OutLo = DAG.getNode(ISD::OR, dl, VT, Tmp4, Tmp6); in LowerSRL_PARTS()
9153 SDValue OutHi = DAG.getNode(PPCISD::SRL, dl, VT, Hi, Amt); in LowerSRL_PARTS()
9155 return DAG.getMergeValues(OutOps, dl); in LowerSRL_PARTS()
9159 SDLoc dl(Op); in LowerSRA_PARTS() local
9172 SDValue Tmp1 = DAG.getNode(ISD::SUB, dl, AmtVT, in LowerSRA_PARTS()
9173 DAG.getConstant(BitWidth, dl, AmtVT), Amt); in LowerSRA_PARTS()
9174 SDValue Tmp2 = DAG.getNode(PPCISD::SRL, dl, VT, Lo, Amt); in LowerSRA_PARTS()
9175 SDValue Tmp3 = DAG.getNode(PPCISD::SHL, dl, VT, Hi, Tmp1); in LowerSRA_PARTS()
9176 SDValue Tmp4 = DAG.getNode(ISD::OR, dl, VT, Tmp2, Tmp3); in LowerSRA_PARTS()
9177 SDValue Tmp5 = DAG.getNode(ISD::ADD, dl, AmtVT, Amt, in LowerSRA_PARTS()
9178 DAG.getConstant(-BitWidth, dl, AmtVT)); in LowerSRA_PARTS()
9179 SDValue Tmp6 = DAG.getNode(PPCISD::SRA, dl, VT, Hi, Tmp5); in LowerSRA_PARTS()
9180 SDValue OutHi = DAG.getNode(PPCISD::SRA, dl, VT, Hi, Amt); in LowerSRA_PARTS()
9181 SDValue OutLo = DAG.getSelectCC(dl, Tmp5, DAG.getConstant(0, dl, AmtVT), in LowerSRA_PARTS()
9184 return DAG.getMergeValues(OutOps, dl); in LowerSRA_PARTS()
9189 SDLoc dl(Op); in LowerFunnelShift() local
9203 Z = DAG.getNode(ISD::AND, dl, AmtVT, Z, in LowerFunnelShift()
9204 DAG.getConstant(BitWidth - 1, dl, AmtVT)); in LowerFunnelShift()
9206 DAG.getNode(ISD::SUB, dl, AmtVT, DAG.getConstant(BitWidth, dl, AmtVT), Z); in LowerFunnelShift()
9207 X = DAG.getNode(PPCISD::SHL, dl, VT, X, IsFSHL ? Z : SubZ); in LowerFunnelShift()
9208 Y = DAG.getNode(PPCISD::SRL, dl, VT, Y, IsFSHL ? SubZ : Z); in LowerFunnelShift()
9209 return DAG.getNode(ISD::OR, dl, VT, X, Y); in LowerFunnelShift()
9219 SelectionDAG &DAG, const SDLoc &dl) { in getCanonicalConstSplat() argument
9235 return DAG.getBitcast(ReqVT, DAG.getConstant(Val, dl, CanonicalVT)); in getCanonicalConstSplat()
9241 const SDLoc &dl, EVT DestVT = MVT::Other) { in BuildIntrinsicOp() argument
9243 return DAG.getNode(ISD::INTRINSIC_WO_CHAIN, dl, DestVT, in BuildIntrinsicOp()
9244 DAG.getConstant(IID, dl, MVT::i32), Op); in BuildIntrinsicOp()
9250 SelectionDAG &DAG, const SDLoc &dl, in BuildIntrinsicOp() argument
9253 return DAG.getNode(ISD::INTRINSIC_WO_CHAIN, dl, DestVT, in BuildIntrinsicOp()
9254 DAG.getConstant(IID, dl, MVT::i32), LHS, RHS); in BuildIntrinsicOp()
9260 SDValue Op2, SelectionDAG &DAG, const SDLoc &dl, in BuildIntrinsicOp() argument
9263 return DAG.getNode(ISD::INTRINSIC_WO_CHAIN, dl, DestVT, in BuildIntrinsicOp()
9264 DAG.getConstant(IID, dl, MVT::i32), Op0, Op1, Op2); in BuildIntrinsicOp()
9270 SelectionDAG &DAG, const SDLoc &dl) { in BuildVSLDOI() argument
9272 LHS = DAG.getNode(ISD::BITCAST, dl, MVT::v16i8, LHS); in BuildVSLDOI()
9273 RHS = DAG.getNode(ISD::BITCAST, dl, MVT::v16i8, RHS); in BuildVSLDOI()
9278 SDValue T = DAG.getVectorShuffle(MVT::v16i8, dl, LHS, RHS, Ops); in BuildVSLDOI()
9279 return DAG.getNode(ISD::BITCAST, dl, VT, T); in BuildVSLDOI()
9338 SDLoc dl(Op); in LowerBITCAST() local
9353 return DAG.getNode(PPCISD::BUILD_FP128, dl, MVT::f128, Lo, Hi); in LowerBITCAST()
9454 SDLoc dl(Op); in LowerBUILD_VECTOR() local
9477 PPCISD::XXSPLTI_SP_TO_DP, dl, MVT::v2f64, in LowerBUILD_VECTOR()
9478 DAG.getTargetConstant(APSplatBits.getZExtValue(), dl, MVT::i32)); in LowerBUILD_VECTOR()
9491 SplatNode = DAG.getTargetConstant(0, dl, MVT::v2i64); in LowerBUILD_VECTOR()
9495 PPCISD::XXSPLTI32DX, dl, MVT::v2i64, SplatNode, in LowerBUILD_VECTOR()
9496 DAG.getTargetConstant(0, dl, MVT::i32), in LowerBUILD_VECTOR()
9497 DAG.getTargetConstant(Hi, dl, MVT::i32)); in LowerBUILD_VECTOR()
9501 DAG.getNode(PPCISD::XXSPLTI32DX, dl, MVT::v2i64, SplatNode, in LowerBUILD_VECTOR()
9502 DAG.getTargetConstant(1, dl, MVT::i32), in LowerBUILD_VECTOR()
9503 DAG.getTargetConstant(Lo, dl, MVT::i32)); in LowerBUILD_VECTOR()
9575 NewOpcode, dl, DAG.getVTList(Op.getValueType(), MVT::Other), Ops, in LowerBUILD_VECTOR()
9605 SDValue Z = DAG.getConstant(0, dl, MVT::v4i32); in LowerBUILD_VECTOR()
9606 Op = DAG.getNode(ISD::BITCAST, dl, Op.getValueType(), Z); in LowerBUILD_VECTOR()
9618 Op.getValueType(), DAG, dl); in LowerBUILD_VECTOR()
9622 dl); in LowerBUILD_VECTOR()
9627 dl); in LowerBUILD_VECTOR()
9634 dl); in LowerBUILD_VECTOR()
9649 SDValue Elt = DAG.getConstant(SextVal, dl, MVT::i32); in LowerBUILD_VECTOR()
9652 SDValue EltSize = DAG.getConstant(SplatSize, dl, MVT::i32); in LowerBUILD_VECTOR()
9653 SDValue RetVal = DAG.getNode(PPCISD::VADD_SPLAT, dl, VT, Elt, EltSize); in LowerBUILD_VECTOR()
9657 return DAG.getNode(ISD::BITCAST, dl, Op.getValueType(), RetVal); in LowerBUILD_VECTOR()
9665 SDValue OnesV = getCanonicalConstSplat(-1, 4, MVT::v4i32, DAG, dl); in LowerBUILD_VECTOR()
9669 OnesV, DAG, dl); in LowerBUILD_VECTOR()
9672 Res = DAG.getNode(ISD::XOR, dl, MVT::v4i32, Res, OnesV); in LowerBUILD_VECTOR()
9673 return DAG.getNode(ISD::BITCAST, dl, Op.getValueType(), Res); in LowerBUILD_VECTOR()
9693 SDValue Res = getCanonicalConstSplat(i, SplatSize, MVT::Other, DAG, dl); in LowerBUILD_VECTOR()
9698 Res = BuildIntrinsicOp(IIDs[SplatSize-1], Res, Res, DAG, dl); in LowerBUILD_VECTOR()
9699 return DAG.getNode(ISD::BITCAST, dl, Op.getValueType(), Res); in LowerBUILD_VECTOR()
9704 SDValue Res = getCanonicalConstSplat(i, SplatSize, MVT::Other, DAG, dl); in LowerBUILD_VECTOR()
9709 Res = BuildIntrinsicOp(IIDs[SplatSize-1], Res, Res, DAG, dl); in LowerBUILD_VECTOR()
9710 return DAG.getNode(ISD::BITCAST, dl, Op.getValueType(), Res); in LowerBUILD_VECTOR()
9716 SDValue Res = getCanonicalConstSplat(i, SplatSize, MVT::Other, DAG, dl); in LowerBUILD_VECTOR()
9721 Res = BuildIntrinsicOp(IIDs[SplatSize-1], Res, Res, DAG, dl); in LowerBUILD_VECTOR()
9722 return DAG.getNode(ISD::BITCAST, dl, Op.getValueType(), Res); in LowerBUILD_VECTOR()
9727 SDValue T = getCanonicalConstSplat(i, SplatSize, MVT::v16i8, DAG, dl); in LowerBUILD_VECTOR()
9729 return BuildVSLDOI(T, T, Amt, Op.getValueType(), DAG, dl); in LowerBUILD_VECTOR()
9733 SDValue T = getCanonicalConstSplat(i, SplatSize, MVT::v16i8, DAG, dl); in LowerBUILD_VECTOR()
9735 return BuildVSLDOI(T, T, Amt, Op.getValueType(), DAG, dl); in LowerBUILD_VECTOR()
9739 SDValue T = getCanonicalConstSplat(i, SplatSize, MVT::v16i8, DAG, dl); in LowerBUILD_VECTOR()
9741 return BuildVSLDOI(T, T, Amt, Op.getValueType(), DAG, dl); in LowerBUILD_VECTOR()
9752 const SDLoc &dl) { in GeneratePerfectShuffle() argument
9777 OpLHS = GeneratePerfectShuffle(PerfectShuffleTable[LHSID], LHS, RHS, DAG, dl); in GeneratePerfectShuffle()
9778 OpRHS = GeneratePerfectShuffle(PerfectShuffleTable[RHSID], LHS, RHS, DAG, dl); in GeneratePerfectShuffle()
9812 return BuildVSLDOI(OpLHS, OpRHS, 4, OpLHS.getValueType(), DAG, dl); in GeneratePerfectShuffle()
9814 return BuildVSLDOI(OpLHS, OpRHS, 8, OpLHS.getValueType(), DAG, dl); in GeneratePerfectShuffle()
9816 return BuildVSLDOI(OpLHS, OpRHS, 12, OpLHS.getValueType(), DAG, dl); in GeneratePerfectShuffle()
9819 OpLHS = DAG.getNode(ISD::BITCAST, dl, MVT::v16i8, OpLHS); in GeneratePerfectShuffle()
9820 OpRHS = DAG.getNode(ISD::BITCAST, dl, MVT::v16i8, OpRHS); in GeneratePerfectShuffle()
9821 SDValue T = DAG.getVectorShuffle(MVT::v16i8, dl, OpLHS, OpRHS, ShufIdxs); in GeneratePerfectShuffle()
9822 return DAG.getNode(ISD::BITCAST, dl, VT, T); in GeneratePerfectShuffle()
9832 SDLoc dl(N); in lowerToVINSERTB() local
9917 SDValue Shl = DAG.getNode(PPCISD::VECSHL, dl, MVT::v16i8, V2, V2, in lowerToVINSERTB()
9918 DAG.getConstant(ShiftElts, dl, MVT::i32)); in lowerToVINSERTB()
9919 return DAG.getNode(PPCISD::VECINSERT, dl, MVT::v16i8, V1, Shl, in lowerToVINSERTB()
9920 DAG.getConstant(InsertAtByte, dl, MVT::i32)); in lowerToVINSERTB()
9922 return DAG.getNode(PPCISD::VECINSERT, dl, MVT::v16i8, V1, V2, in lowerToVINSERTB()
9923 DAG.getConstant(InsertAtByte, dl, MVT::i32)); in lowerToVINSERTB()
9938 SDLoc dl(N); in lowerToVINSERTH() local
10022 SDValue Conv1 = DAG.getNode(ISD::BITCAST, dl, MVT::v8i16, V1); in lowerToVINSERTH()
10025 SDValue Shl = DAG.getNode(PPCISD::VECSHL, dl, MVT::v16i8, V2, V2, in lowerToVINSERTH()
10026 DAG.getConstant(2 * ShiftElts, dl, MVT::i32)); in lowerToVINSERTH()
10027 SDValue Conv2 = DAG.getNode(ISD::BITCAST, dl, MVT::v8i16, Shl); in lowerToVINSERTH()
10028 SDValue Ins = DAG.getNode(PPCISD::VECINSERT, dl, MVT::v8i16, Conv1, Conv2, in lowerToVINSERTH()
10029 DAG.getConstant(InsertAtByte, dl, MVT::i32)); in lowerToVINSERTH()
10030 return DAG.getNode(ISD::BITCAST, dl, MVT::v16i8, Ins); in lowerToVINSERTH()
10032 SDValue Conv2 = DAG.getNode(ISD::BITCAST, dl, MVT::v8i16, V2); in lowerToVINSERTH()
10033 SDValue Ins = DAG.getNode(PPCISD::VECINSERT, dl, MVT::v8i16, Conv1, Conv2, in lowerToVINSERTH()
10034 DAG.getConstant(InsertAtByte, dl, MVT::i32)); in lowerToVINSERTH()
10035 return DAG.getNode(ISD::BITCAST, dl, MVT::v16i8, Ins); in lowerToVINSERTH()
10120 SDLoc dl(Op); in LowerROTL() local
10129 DAG.getVectorShuffle(MVT::v16i8, dl, DAG.getBitcast(MVT::v16i8, N0), in LowerROTL()
10131 return DAG.getNode(ISD::BITCAST, dl, MVT::v1i128, Shuffle); in LowerROTL()
10134 SDValue SHLOp = DAG.getNode(ISD::SHL, dl, MVT::i128, ArgVal, in LowerROTL()
10135 DAG.getConstant(SHLAmt, dl, MVT::i32)); in LowerROTL()
10136 SDValue SRLOp = DAG.getNode(ISD::SRL, dl, MVT::i128, ArgVal, in LowerROTL()
10137 DAG.getConstant(128 - SHLAmt, dl, MVT::i32)); in LowerROTL()
10138 SDValue OROp = DAG.getNode(ISD::OR, dl, MVT::i128, SHLOp, SRLOp); in LowerROTL()
10139 return DAG.getNode(ISD::BITCAST, dl, MVT::v1i128, OROp); in LowerROTL()
10148 SDLoc dl(Op); in LowerVECTOR_SHUFFLE() local
10209 BasePtr = DAG.getNode(ISD::ADD, dl, getPointerTy(DAG.getDataLayout()), in LowerVECTOR_SHUFFLE()
10210 BasePtr, DAG.getIntPtrConstant(Offset, dl)); in LowerVECTOR_SHUFFLE()
10219 DAG.getMemIntrinsicNode(PPCISD::LD_SPLAT, dl, VTL, in LowerVECTOR_SHUFFLE()
10239 SDValue Conv1 = DAG.getNode(ISD::BITCAST, dl, MVT::v4i32, V1); in LowerVECTOR_SHUFFLE()
10240 SDValue Conv2 = DAG.getNode(ISD::BITCAST, dl, MVT::v4i32, V2); in LowerVECTOR_SHUFFLE()
10242 SDValue Shl = DAG.getNode(PPCISD::VECSHL, dl, MVT::v4i32, Conv2, Conv2, in LowerVECTOR_SHUFFLE()
10243 DAG.getConstant(ShiftElts, dl, MVT::i32)); in LowerVECTOR_SHUFFLE()
10244 SDValue Ins = DAG.getNode(PPCISD::VECINSERT, dl, MVT::v4i32, Conv1, Shl, in LowerVECTOR_SHUFFLE()
10245 DAG.getConstant(InsertAtByte, dl, MVT::i32)); in LowerVECTOR_SHUFFLE()
10246 return DAG.getNode(ISD::BITCAST, dl, MVT::v16i8, Ins); in LowerVECTOR_SHUFFLE()
10248 SDValue Ins = DAG.getNode(PPCISD::VECINSERT, dl, MVT::v4i32, Conv1, Conv2, in LowerVECTOR_SHUFFLE()
10249 DAG.getConstant(InsertAtByte, dl, MVT::i32)); in LowerVECTOR_SHUFFLE()
10250 return DAG.getNode(ISD::BITCAST, dl, MVT::v16i8, Ins); in LowerVECTOR_SHUFFLE()
10272 SDValue Conv1 = DAG.getNode(ISD::BITCAST, dl, MVT::v4i32, V1); in LowerVECTOR_SHUFFLE()
10274 DAG.getNode(ISD::BITCAST, dl, MVT::v4i32, V2.isUndef() ? V1 : V2); in LowerVECTOR_SHUFFLE()
10276 SDValue Shl = DAG.getNode(PPCISD::VECSHL, dl, MVT::v4i32, Conv1, Conv2, in LowerVECTOR_SHUFFLE()
10277 DAG.getConstant(ShiftElts, dl, MVT::i32)); in LowerVECTOR_SHUFFLE()
10278 return DAG.getNode(ISD::BITCAST, dl, MVT::v16i8, Shl); in LowerVECTOR_SHUFFLE()
10285 SDValue Conv1 = DAG.getNode(ISD::BITCAST, dl, MVT::v2i64, V1); in LowerVECTOR_SHUFFLE()
10287 DAG.getNode(ISD::BITCAST, dl, MVT::v2i64, V2.isUndef() ? V1 : V2); in LowerVECTOR_SHUFFLE()
10289 SDValue PermDI = DAG.getNode(PPCISD::XXPERMDI, dl, MVT::v2i64, Conv1, Conv2, in LowerVECTOR_SHUFFLE()
10290 DAG.getConstant(ShiftElts, dl, MVT::i32)); in LowerVECTOR_SHUFFLE()
10291 return DAG.getNode(ISD::BITCAST, dl, MVT::v16i8, PermDI); in LowerVECTOR_SHUFFLE()
10296 SDValue Conv = DAG.getNode(ISD::BITCAST, dl, MVT::v8i16, V1); in LowerVECTOR_SHUFFLE()
10297 SDValue ReveHWord = DAG.getNode(ISD::BSWAP, dl, MVT::v8i16, Conv); in LowerVECTOR_SHUFFLE()
10298 return DAG.getNode(ISD::BITCAST, dl, MVT::v16i8, ReveHWord); in LowerVECTOR_SHUFFLE()
10300 SDValue Conv = DAG.getNode(ISD::BITCAST, dl, MVT::v4i32, V1); in LowerVECTOR_SHUFFLE()
10301 SDValue ReveWord = DAG.getNode(ISD::BSWAP, dl, MVT::v4i32, Conv); in LowerVECTOR_SHUFFLE()
10302 return DAG.getNode(ISD::BITCAST, dl, MVT::v16i8, ReveWord); in LowerVECTOR_SHUFFLE()
10304 SDValue Conv = DAG.getNode(ISD::BITCAST, dl, MVT::v2i64, V1); in LowerVECTOR_SHUFFLE()
10305 SDValue ReveDWord = DAG.getNode(ISD::BSWAP, dl, MVT::v2i64, Conv); in LowerVECTOR_SHUFFLE()
10306 return DAG.getNode(ISD::BITCAST, dl, MVT::v16i8, ReveDWord); in LowerVECTOR_SHUFFLE()
10308 SDValue Conv = DAG.getNode(ISD::BITCAST, dl, MVT::v1i128, V1); in LowerVECTOR_SHUFFLE()
10309 SDValue ReveQWord = DAG.getNode(ISD::BSWAP, dl, MVT::v1i128, Conv); in LowerVECTOR_SHUFFLE()
10310 return DAG.getNode(ISD::BITCAST, dl, MVT::v16i8, ReveQWord); in LowerVECTOR_SHUFFLE()
10318 SDValue Conv = DAG.getNode(ISD::BITCAST, dl, MVT::v4i32, V1); in LowerVECTOR_SHUFFLE()
10319 SDValue Splat = DAG.getNode(PPCISD::XXSPLT, dl, MVT::v4i32, Conv, in LowerVECTOR_SHUFFLE()
10320 DAG.getConstant(SplatIdx, dl, MVT::i32)); in LowerVECTOR_SHUFFLE()
10321 return DAG.getNode(ISD::BITCAST, dl, MVT::v16i8, Splat); in LowerVECTOR_SHUFFLE()
10326 SDValue Conv = DAG.getNode(ISD::BITCAST, dl, MVT::v2f64, V1); in LowerVECTOR_SHUFFLE()
10327 SDValue Swap = DAG.getNode(PPCISD::SWAP_NO_CHAIN, dl, MVT::v2f64, Conv); in LowerVECTOR_SHUFFLE()
10328 return DAG.getNode(ISD::BITCAST, dl, MVT::v16i8, Swap); in LowerVECTOR_SHUFFLE()
10430 return GeneratePerfectShuffle(PFEntry, V1, V2, DAG, dl); in LowerVECTOR_SHUFFLE()
10446 SDLoc dl(Op); in LowerVPERM() local
10521 DAG.getConstant(31 - (SrcElt * BytesPerElement + j), dl, MVT::i32)); in LowerVPERM()
10524 DAG.getConstant(SrcElt * BytesPerElement + j, dl, MVT::i32)); in LowerVPERM()
10528 dl = SDLoc(V1->getOperand(0)); in LowerVPERM()
10532 dl = SDLoc(V2->getOperand(0)); in LowerVPERM()
10544 SDValue VPermMask = DAG.getBuildVector(MVT::v16i8, dl, ResultMask); in LowerVPERM()
10566 DAG.getNode(Opcode, dl, V1.getValueType(), V1, V2, VPermMask); in LowerVPERM()
10864 SDLoc dl(Op); in LowerINTRINSIC_WO_CHAIN() local
10880 return DAG.getNode(ISD::ROTL, dl, MVT::i64, Src, Op.getOperand(3)); in LowerINTRINSIC_WO_CHAIN()
10887 Src = DAG.getNode(ISD::ROTL, dl, MVT::i64, Src, in LowerINTRINSIC_WO_CHAIN()
10888 DAG.getConstant(ME + SH + 1, dl, MVT::i32)); in LowerINTRINSIC_WO_CHAIN()
10890 Src = DAG.getNode(ISD::ROTL, dl, MVT::i64, Src, in LowerINTRINSIC_WO_CHAIN()
10891 DAG.getConstant(ME + SH - 63, dl, MVT::i32)); in LowerINTRINSIC_WO_CHAIN()
10894 DAG.getMachineNode(PPC::RLDIMI, dl, MVT::i64, in LowerINTRINSIC_WO_CHAIN()
10896 DAG.getTargetConstant(63 - ME, dl, MVT::i32), in LowerINTRINSIC_WO_CHAIN()
10897 DAG.getTargetConstant(MB, dl, MVT::i32)}), in LowerINTRINSIC_WO_CHAIN()
10906 return DAG.getNode(ISD::ROTL, dl, MVT::i32, Op.getOperand(1), in LowerINTRINSIC_WO_CHAIN()
10912 PPC::RLWIMI, dl, MVT::i32, in LowerINTRINSIC_WO_CHAIN()
10914 DAG.getTargetConstant(MB, dl, MVT::i32), in LowerINTRINSIC_WO_CHAIN()
10915 DAG.getTargetConstant(ME, dl, MVT::i32)}), in LowerINTRINSIC_WO_CHAIN()
10921 return DAG.getConstant(0, dl, MVT::i32); in LowerINTRINSIC_WO_CHAIN()
10926 DAG.getMachineNode(PPC::RLWNM, dl, MVT::i32, in LowerINTRINSIC_WO_CHAIN()
10928 DAG.getTargetConstant(MB, dl, MVT::i32), in LowerINTRINSIC_WO_CHAIN()
10929 DAG.getTargetConstant(ME, dl, MVT::i32)}), in LowerINTRINSIC_WO_CHAIN()
10937 SDValue(DAG.getMachineNode(PPC::DMXXEXTFDMR512, dl, ReturnTypes, in LowerINTRINSIC_WO_CHAIN()
10946 PPCISD::EXTRACT_VSX_REG, dl, MVT::v16i8, in LowerINTRINSIC_WO_CHAIN()
10949 dl, getPointerTy(DAG.getDataLayout()))); in LowerINTRINSIC_WO_CHAIN()
10952 PPCISD::EXTRACT_VSX_REG, dl, MVT::v16i8, in LowerINTRINSIC_WO_CHAIN()
10955 dl, getPointerTy(DAG.getDataLayout()))); in LowerINTRINSIC_WO_CHAIN()
10958 PPCISD::EXTRACT_VSX_REG, dl, MVT::v16i8, in LowerINTRINSIC_WO_CHAIN()
10961 dl, getPointerTy(DAG.getDataLayout()))); in LowerINTRINSIC_WO_CHAIN()
10964 PPCISD::EXTRACT_VSX_REG, dl, MVT::v16i8, in LowerINTRINSIC_WO_CHAIN()
10967 dl, getPointerTy(DAG.getDataLayout()))); in LowerINTRINSIC_WO_CHAIN()
10969 return DAG.getMergeValues(RetOps, dl); in LowerINTRINSIC_WO_CHAIN()
10978 WideVec = DAG.getNode(PPCISD::XXMFACC, dl, MVT::v512i1, WideVec); in LowerINTRINSIC_WO_CHAIN()
10983 PPCISD::EXTRACT_VSX_REG, dl, MVT::v16i8, WideVec, in LowerINTRINSIC_WO_CHAIN()
10986 dl, getPointerTy(DAG.getDataLayout()))); in LowerINTRINSIC_WO_CHAIN()
10989 return DAG.getMergeValues(RetOps, dl); in LowerINTRINSIC_WO_CHAIN()
11010 return DAG.getNode(ISD::EXTRACT_ELEMENT, dl, MVT::f64, Op.getOperand(1), in LowerINTRINSIC_WO_CHAIN()
11011 DAG.getConstant(!!(Idx->getSExtValue()), dl, in LowerINTRINSIC_WO_CHAIN()
11036 PPC::SELECT_CC_I4, dl, MVT::i32, in LowerINTRINSIC_WO_CHAIN()
11037 {SDValue(DAG.getMachineNode(PPC::XSCMPEXPDP, dl, MVT::i32, in LowerINTRINSIC_WO_CHAIN()
11040 DAG.getConstant(1, dl, MVT::i32), DAG.getConstant(0, dl, MVT::i32), in LowerINTRINSIC_WO_CHAIN()
11041 DAG.getTargetConstant(Pred, dl, MVT::i32)}), in LowerINTRINSIC_WO_CHAIN()
11051 PPC::SELECT_CC_I4, dl, MVT::i32, in LowerINTRINSIC_WO_CHAIN()
11052 {SDValue(DAG.getMachineNode(CmprOpc, dl, MVT::i32, Op.getOperand(2), in LowerINTRINSIC_WO_CHAIN()
11055 DAG.getConstant(1, dl, MVT::i32), DAG.getConstant(0, dl, MVT::i32), in LowerINTRINSIC_WO_CHAIN()
11056 DAG.getTargetConstant(PPC::PRED_EQ, dl, MVT::i32)}), in LowerINTRINSIC_WO_CHAIN()
11063 ISD::FNEG, dl, VT, in LowerINTRINSIC_WO_CHAIN()
11064 DAG.getNode(ISD::FMA, dl, VT, Op.getOperand(1), Op.getOperand(2), in LowerINTRINSIC_WO_CHAIN()
11065 DAG.getNode(ISD::FNEG, dl, VT, Op.getOperand(3)))); in LowerINTRINSIC_WO_CHAIN()
11066 return DAG.getNode(PPCISD::FNMSUB, dl, VT, Op.getOperand(1), in LowerINTRINSIC_WO_CHAIN()
11077 dl, SDValue()); in LowerINTRINSIC_WO_CHAIN()
11101 DAG.getSelectCC(dl, Res, Op.getOperand(I), Res, Op.getOperand(I), CC); in LowerINTRINSIC_WO_CHAIN()
11116 SDValue Tmp = DAG.getNode(PPCISD::VCMP, dl, Op.getOperand(2).getValueType(), in LowerINTRINSIC_WO_CHAIN()
11118 DAG.getConstant(CompareOpc, dl, MVT::i32)); in LowerINTRINSIC_WO_CHAIN()
11119 return DAG.getNode(ISD::BITCAST, dl, Op.getValueType(), Tmp); in LowerINTRINSIC_WO_CHAIN()
11126 DAG.getConstant(CompareOpc, dl, MVT::i32) in LowerINTRINSIC_WO_CHAIN()
11129 SDValue CompNode = DAG.getNode(PPCISD::VCMP_rec, dl, VTs, Ops); in LowerINTRINSIC_WO_CHAIN()
11133 SDValue Flags = DAG.getNode(PPCISD::MFOCRF, dl, MVT::i32, in LowerINTRINSIC_WO_CHAIN()
11157 Flags = DAG.getNode(ISD::SRL, dl, MVT::i32, Flags, in LowerINTRINSIC_WO_CHAIN()
11158 DAG.getConstant(8 - (3 - BitNo), dl, MVT::i32)); in LowerINTRINSIC_WO_CHAIN()
11160 Flags = DAG.getNode(ISD::AND, dl, MVT::i32, Flags, in LowerINTRINSIC_WO_CHAIN()
11161 DAG.getConstant(1, dl, MVT::i32)); in LowerINTRINSIC_WO_CHAIN()
11165 Flags = DAG.getNode(ISD::XOR, dl, MVT::i32, Flags, in LowerINTRINSIC_WO_CHAIN()
11166 DAG.getConstant(1, dl, MVT::i32)); in LowerINTRINSIC_WO_CHAIN()
11202 SDLoc dl(Op); in LowerBSWAP() local
11206 Op = DAG.getNode(ISD::BUILD_VECTOR, dl, MVT::v2i64, Op.getOperand(0), in LowerBSWAP()
11209 Op = DAG.getNode(ISD::BSWAP, dl, MVT::v2i64, Op); in LowerBSWAP()
11214 Op = DAG.getNode(ISD::EXTRACT_VECTOR_ELT, dl, MVT::i64, Op, in LowerBSWAP()
11215 DAG.getTargetConstant(VectorIndex, dl, MVT::i32)); in LowerBSWAP()
11225 SDLoc dl(Op); in LowerATOMIC_CMP_SWAP() local
11240 DAG.getNode(ISD::AND, dl, MVT::i32, CmpOp, in LowerATOMIC_CMP_SWAP()
11241 DAG.getConstant(MaskVal, dl, MVT::i32)); in LowerATOMIC_CMP_SWAP()
11252 return DAG.getMemIntrinsicNode(NodeTy, dl, Tys, Ops, MemVT, MMO); in LowerATOMIC_CMP_SWAP()
11261 SDLoc dl(N); in LowerATOMIC_LOAD_STORE() local
11270 DAG.getConstant(Intrinsic::ppc_atomic_load_i128, dl, MVT::i32)}; in LowerATOMIC_LOAD_STORE()
11273 SDValue LoadedVal = DAG.getMemIntrinsicNode(ISD::INTRINSIC_W_CHAIN, dl, Tys, in LowerATOMIC_LOAD_STORE()
11275 SDValue ValLo = DAG.getNode(ISD::ZERO_EXTEND, dl, MVT::i128, LoadedVal); in LowerATOMIC_LOAD_STORE()
11277 DAG.getNode(ISD::ZERO_EXTEND, dl, MVT::i128, LoadedVal.getValue(1)); in LowerATOMIC_LOAD_STORE()
11278 ValHi = DAG.getNode(ISD::SHL, dl, MVT::i128, ValHi, in LowerATOMIC_LOAD_STORE()
11279 DAG.getConstant(64, dl, MVT::i32)); in LowerATOMIC_LOAD_STORE()
11281 DAG.getNode(ISD::OR, dl, {MVT::i128, MVT::Other}, {ValLo, ValHi}); in LowerATOMIC_LOAD_STORE()
11282 return DAG.getNode(ISD::MERGE_VALUES, dl, {MVT::i128, MVT::Other}, in LowerATOMIC_LOAD_STORE()
11291 DAG.getConstant(Intrinsic::ppc_atomic_store_i128, dl, MVT::i32)}; in LowerATOMIC_LOAD_STORE()
11293 SDValue ValLo = DAG.getNode(ISD::TRUNCATE, dl, MVT::i64, Val); in LowerATOMIC_LOAD_STORE()
11294 SDValue ValHi = DAG.getNode(ISD::SRL, dl, MVT::i128, Val, in LowerATOMIC_LOAD_STORE()
11295 DAG.getConstant(64, dl, MVT::i32)); in LowerATOMIC_LOAD_STORE()
11296 ValHi = DAG.getNode(ISD::TRUNCATE, dl, MVT::i64, ValHi); in LowerATOMIC_LOAD_STORE()
11300 return DAG.getMemIntrinsicNode(ISD::INTRINSIC_VOID, dl, Tys, Ops, MemVT, in LowerATOMIC_LOAD_STORE()
11457 SDLoc dl(Op); in LowerSCALAR_TO_VECTOR() local
11465 SDValue Store = DAG.getStore(DAG.getEntryNode(), dl, Op.getOperand(0), FIdx, in LowerSCALAR_TO_VECTOR()
11468 return DAG.getLoad(Op.getValueType(), dl, Store, FIdx, MachinePointerInfo()); in LowerSCALAR_TO_VECTOR()
11479 SDLoc dl(Op); in LowerINSERT_VECTOR_ELT() local
11500 DAG.getNode(ISD::INSERT_VECTOR_ELT, dl, MVT::v4i32, BitcastVector, in LowerINSERT_VECTOR_ELT()
11523 SDValue Mtvsrz = DAG.getNode(PPCISD::MTVSRZ, dl, VT, V2); in LowerINSERT_VECTOR_ELT()
11530 return DAG.getNode(PPCISD::VECINSERT, dl, VT, V1, Mtvsrz, in LowerINSERT_VECTOR_ELT()
11531 DAG.getConstant(InsertAtByte, dl, MVT::i32)); in LowerINSERT_VECTOR_ELT()
11538 SDLoc dl(Op); in LowerVectorLoad() local
11560 DAG.getLoad(MVT::v16i8, dl, LoadChain, BasePtr, in LowerVectorLoad()
11564 BasePtr = DAG.getNode(ISD::ADD, dl, BasePtr.getValueType(), BasePtr, in LowerVectorLoad()
11565 DAG.getConstant(16, dl, BasePtr.getValueType())); in LowerVectorLoad()
11573 SDValue TF = DAG.getNode(ISD::TokenFactor, dl, MVT::Other, LoadChains); in LowerVectorLoad()
11576 dl, VT, Loads); in LowerVectorLoad()
11578 return DAG.getMergeValues(RetOps, dl); in LowerVectorLoad()
11583 SDLoc dl(Op); in LowerVectorStore() local
11608 PPC::DMXXEXTFDMR512, dl, ReturnTypes, Op.getOperand(1)); in LowerVectorStore()
11613 Value = DAG.getNode(PPCISD::XXMFACC, dl, MVT::v512i1, Value); in LowerVectorStore()
11621 Elt = DAG.getNode(PPCISD::EXTRACT_VSX_REG, dl, MVT::v16i8, in LowerVectorStore()
11623 DAG.getConstant(VecNum, dl, getPointerTy(DAG.getDataLayout()))); in LowerVectorStore()
11625 Elt = DAG.getNode(PPCISD::EXTRACT_VSX_REG, dl, MVT::v16i8, Value, in LowerVectorStore()
11626 DAG.getConstant(VecNum, dl, getPointerTy(DAG.getDataLayout()))); in LowerVectorStore()
11629 DAG.getStore(StoreChain, dl, Elt, BasePtr, in LowerVectorStore()
11633 BasePtr = DAG.getNode(ISD::ADD, dl, BasePtr.getValueType(), BasePtr, in LowerVectorStore()
11634 DAG.getConstant(16, dl, BasePtr.getValueType())); in LowerVectorStore()
11637 SDValue TF = DAG.getTokenFactor(dl, Stores); in LowerVectorStore()
11642 SDLoc dl(Op); in LowerMUL() local
11646 SDValue Zero = getCanonicalConstSplat(0, 1, MVT::v4i32, DAG, dl); in LowerMUL()
11648 SDValue Neg16 = getCanonicalConstSplat(-16, 4, MVT::v4i32, DAG, dl); in LowerMUL()
11650 BuildIntrinsicOp(Intrinsic::ppc_altivec_vrlw, RHS, Neg16, DAG, dl); in LowerMUL()
11653 LHS = DAG.getNode(ISD::BITCAST, dl, MVT::v8i16, LHS); in LowerMUL()
11654 RHS = DAG.getNode(ISD::BITCAST, dl, MVT::v8i16, RHS); in LowerMUL()
11655 RHSSwap = DAG.getNode(ISD::BITCAST, dl, MVT::v8i16, RHSSwap); in LowerMUL()
11660 LHS, RHS, DAG, dl, MVT::v4i32); in LowerMUL()
11663 LHS, RHSSwap, Zero, DAG, dl, MVT::v4i32); in LowerMUL()
11666 Neg16, DAG, dl); in LowerMUL()
11667 return DAG.getNode(ISD::ADD, dl, MVT::v4i32, LoProd, HiProd); in LowerMUL()
11674 LHS, RHS, DAG, dl, MVT::v8i16); in LowerMUL()
11675 EvenParts = DAG.getNode(ISD::BITCAST, dl, MVT::v16i8, EvenParts); in LowerMUL()
11679 LHS, RHS, DAG, dl, MVT::v8i16); in LowerMUL()
11680 OddParts = DAG.getNode(ISD::BITCAST, dl, MVT::v16i8, OddParts); in LowerMUL()
11697 return DAG.getVectorShuffle(MVT::v16i8, dl, OddParts, EvenParts, Ops); in LowerMUL()
11699 return DAG.getVectorShuffle(MVT::v16i8, dl, EvenParts, OddParts, Ops); in LowerMUL()
11726 SDLoc dl(Op); in LowerFP_EXTEND() local
11753 return DAG.getNode(PPCISD::FP_EXTEND_HALF, dl, MVT::v2f64, in LowerFP_EXTEND()
11754 Op0.getOperand(0), DAG.getConstant(DWord, dl, MVT::i32)); in LowerFP_EXTEND()
11769 PPCISD::LD_VSX_LH, dl, DAG.getVTList(MVT::v4f32, MVT::Other), LoadOps, in LowerFP_EXTEND()
11775 return DAG.getNode(PPCISD::FP_EXTEND_HALF, dl, MVT::v2f64, NewOp, in LowerFP_EXTEND()
11776 DAG.getConstant(0, dl, MVT::i32)); in LowerFP_EXTEND()
11782 PPCISD::LD_VSX_LH, dl, DAG.getVTList(MVT::v4f32, MVT::Other), LoadOps, in LowerFP_EXTEND()
11784 return DAG.getNode(PPCISD::FP_EXTEND_HALF, dl, MVT::v2f64, NewLd, in LowerFP_EXTEND()
11785 DAG.getConstant(0, dl, MVT::i32)); in LowerFP_EXTEND()
11890 SDLoc dl(N); in ReplaceNodeResults() local
11902 SDValue RTB = DAG.getNode(PPCISD::READ_TIME_BASE, dl, VTs, N->getOperand(0)); in ReplaceNodeResults()
11905 DAG.getNode(ISD::BUILD_PAIR, dl, MVT::i64, RTB, RTB.getValue(1))); in ReplaceNodeResults()
11918 SDValue NewInt = DAG.getNode(N->getOpcode(), dl, VTs, N->getOperand(0), in ReplaceNodeResults()
11921 Results.push_back(DAG.getNode(ISD::TRUNCATE, dl, MVT::i1, NewInt)); in ReplaceNodeResults()
11928 Results.push_back(DAG.getNode(ISD::BUILD_PAIR, dl, MVT::ppcf128, in ReplaceNodeResults()
11962 SDValue LoweredValue = LowerFP_TO_INT(SDValue(N, 0), DAG, dl); in ReplaceNodeResults()
12074 DebugLoc dl = MI.getDebugLoc(); in EmitAtomicBinary() local
12116 BuildMI(BB, dl, TII->get(LoadMnemonic), dest) in EmitAtomicBinary()
12119 BuildMI(BB, dl, TII->get(BinOpcode), TmpReg).addReg(incr).addReg(dest); in EmitAtomicBinary()
12125 BuildMI(BB, dl, TII->get(AtomicSize == 1 ? PPC::EXTSB : PPC::EXTSH), in EmitAtomicBinary()
12127 BuildMI(BB, dl, TII->get(CmpOpcode), CrReg).addReg(ExtReg).addReg(incr); in EmitAtomicBinary()
12129 BuildMI(BB, dl, TII->get(CmpOpcode), CrReg).addReg(dest).addReg(incr); in EmitAtomicBinary()
12131 BuildMI(BB, dl, TII->get(PPC::BCC)) in EmitAtomicBinary()
12139 BuildMI(BB, dl, TII->get(StoreMnemonic)) in EmitAtomicBinary()
12141 BuildMI(BB, dl, TII->get(PPC::BCC)) in EmitAtomicBinary()
12217 DebugLoc dl = MI.getDebugLoc(); in EmitPartwordAtomicBinary() local
12226 BuildMI(*BB, MI, dl, TII->get(is8bit ? PPC::EXTSB : PPC::EXTSH), ValueReg) in EmitPartwordAtomicBinary()
12311 BuildMI(BB, dl, TII->get(is64bit ? PPC::ADD8 : PPC::ADD4), Ptr1Reg) in EmitPartwordAtomicBinary()
12319 BuildMI(BB, dl, TII->get(PPC::RLWINM), Shift1Reg) in EmitPartwordAtomicBinary()
12325 BuildMI(BB, dl, TII->get(PPC::XORI), ShiftReg) in EmitPartwordAtomicBinary()
12329 BuildMI(BB, dl, TII->get(PPC::RLDICR), PtrReg) in EmitPartwordAtomicBinary()
12334 BuildMI(BB, dl, TII->get(PPC::RLWINM), PtrReg) in EmitPartwordAtomicBinary()
12339 BuildMI(BB, dl, TII->get(PPC::SLW), Incr2Reg).addReg(incr).addReg(ShiftReg); in EmitPartwordAtomicBinary()
12341 BuildMI(BB, dl, TII->get(PPC::LI), Mask2Reg).addImm(255); in EmitPartwordAtomicBinary()
12343 BuildMI(BB, dl, TII->get(PPC::LI), Mask3Reg).addImm(0); in EmitPartwordAtomicBinary()
12344 BuildMI(BB, dl, TII->get(PPC::ORI), Mask2Reg) in EmitPartwordAtomicBinary()
12348 BuildMI(BB, dl, TII->get(PPC::SLW), MaskReg) in EmitPartwordAtomicBinary()
12353 BuildMI(BB, dl, TII->get(PPC::LWARX), TmpDestReg) in EmitPartwordAtomicBinary()
12357 BuildMI(BB, dl, TII->get(BinOpcode), TmpReg) in EmitPartwordAtomicBinary()
12360 BuildMI(BB, dl, TII->get(PPC::ANDC), Tmp2Reg) in EmitPartwordAtomicBinary()
12363 BuildMI(BB, dl, TII->get(PPC::AND), Tmp3Reg).addReg(TmpReg).addReg(MaskReg); in EmitPartwordAtomicBinary()
12369 BuildMI(BB, dl, TII->get(PPC::AND), SReg) in EmitPartwordAtomicBinary()
12376 BuildMI(BB, dl, TII->get(PPC::SRW), ValueReg) in EmitPartwordAtomicBinary()
12380 BuildMI(BB, dl, TII->get(is8bit ? PPC::EXTSB : PPC::EXTSH), ValueSReg) in EmitPartwordAtomicBinary()
12385 BuildMI(BB, dl, TII->get(CmpOpcode), CrReg).addReg(ValueReg).addReg(CmpReg); in EmitPartwordAtomicBinary()
12386 BuildMI(BB, dl, TII->get(PPC::BCC)) in EmitPartwordAtomicBinary()
12394 BuildMI(BB, dl, TII->get(PPC::OR), Tmp4Reg).addReg(Tmp3Reg).addReg(Tmp2Reg); in EmitPartwordAtomicBinary()
12395 BuildMI(BB, dl, TII->get(PPC::STWCX)) in EmitPartwordAtomicBinary()
12399 BuildMI(BB, dl, TII->get(PPC::BCC)) in EmitPartwordAtomicBinary()
12411 BuildMI(*BB, BB->begin(), dl, TII->get(PPC::RLWINM), dest) in EmitPartwordAtomicBinary()
12416 BuildMI(*BB, BB->begin(), dl, TII->get(PPC::SRW), SrwDestReg) in EmitPartwordAtomicBinary()
12944 DebugLoc dl = MI.getDebugLoc(); in EmitInstrWithCustomInserter() local
12945 TII->insertSelect(*BB, MI, dl, MI.getOperand(0).getReg(), Cond, in EmitInstrWithCustomInserter()
12961 DebugLoc dl = MI.getDebugLoc(); in EmitInstrWithCustomInserter() local
12981 BuildMI(BB, dl, TII->get(PPC::BC)) in EmitInstrWithCustomInserter()
12986 BuildMI(BB, dl, TII->get(PPC::BCC)) in EmitInstrWithCustomInserter()
13004 BuildMI(*BB, BB->begin(), dl, TII->get(PPC::PHI), MI.getOperand(0).getReg()) in EmitInstrWithCustomInserter()
13024 DebugLoc dl = MI.getDebugLoc(); in EmitInstrWithCustomInserter() local
13041 BuildMI(BB, dl, TII->get(PPC::MFSPR), HiReg).addImm(269); in EmitInstrWithCustomInserter()
13042 BuildMI(BB, dl, TII->get(PPC::MFSPR), LoReg).addImm(268); in EmitInstrWithCustomInserter()
13043 BuildMI(BB, dl, TII->get(PPC::MFSPR), ReadAgainReg).addImm(269); in EmitInstrWithCustomInserter()
13047 BuildMI(BB, dl, TII->get(PPC::CMPW), CmpReg) in EmitInstrWithCustomInserter()
13050 BuildMI(BB, dl, TII->get(PPC::BCC)) in EmitInstrWithCustomInserter()
13194 DebugLoc dl = MI.getDebugLoc(); in EmitInstrWithCustomInserter() local
13221 BuildMI(BB, dl, TII->get(LoadMnemonic), dest).addReg(ptrA).addReg(ptrB); in EmitInstrWithCustomInserter()
13222 BuildMI(BB, dl, TII->get(is64bit ? PPC::CMPD : PPC::CMPW), CrReg) in EmitInstrWithCustomInserter()
13225 BuildMI(BB, dl, TII->get(PPC::BCC)) in EmitInstrWithCustomInserter()
13233 BuildMI(BB, dl, TII->get(StoreMnemonic)) in EmitInstrWithCustomInserter()
13237 BuildMI(BB, dl, TII->get(PPC::BCC)) in EmitInstrWithCustomInserter()
13241 BuildMI(BB, dl, TII->get(PPC::B)).addMBB(exitMBB); in EmitInstrWithCustomInserter()
13262 DebugLoc dl = MI.getDebugLoc(); in EmitInstrWithCustomInserter() local
13329 BuildMI(BB, dl, TII->get(is64bit ? PPC::ADD8 : PPC::ADD4), Ptr1Reg) in EmitInstrWithCustomInserter()
13338 BuildMI(BB, dl, TII->get(PPC::RLWINM), Shift1Reg) in EmitInstrWithCustomInserter()
13344 BuildMI(BB, dl, TII->get(PPC::XORI), ShiftReg) in EmitInstrWithCustomInserter()
13348 BuildMI(BB, dl, TII->get(PPC::RLDICR), PtrReg) in EmitInstrWithCustomInserter()
13353 BuildMI(BB, dl, TII->get(PPC::RLWINM), PtrReg) in EmitInstrWithCustomInserter()
13358 BuildMI(BB, dl, TII->get(PPC::SLW), NewVal2Reg) in EmitInstrWithCustomInserter()
13361 BuildMI(BB, dl, TII->get(PPC::SLW), OldVal2Reg) in EmitInstrWithCustomInserter()
13365 BuildMI(BB, dl, TII->get(PPC::LI), Mask2Reg).addImm(255); in EmitInstrWithCustomInserter()
13367 BuildMI(BB, dl, TII->get(PPC::LI), Mask3Reg).addImm(0); in EmitInstrWithCustomInserter()
13368 BuildMI(BB, dl, TII->get(PPC::ORI), Mask2Reg) in EmitInstrWithCustomInserter()
13372 BuildMI(BB, dl, TII->get(PPC::SLW), MaskReg) in EmitInstrWithCustomInserter()
13375 BuildMI(BB, dl, TII->get(PPC::AND), NewVal3Reg) in EmitInstrWithCustomInserter()
13378 BuildMI(BB, dl, TII->get(PPC::AND), OldVal3Reg) in EmitInstrWithCustomInserter()
13383 BuildMI(BB, dl, TII->get(PPC::LWARX), TmpDestReg) in EmitInstrWithCustomInserter()
13386 BuildMI(BB, dl, TII->get(PPC::AND), TmpReg) in EmitInstrWithCustomInserter()
13389 BuildMI(BB, dl, TII->get(PPC::CMPW), CrReg) in EmitInstrWithCustomInserter()
13392 BuildMI(BB, dl, TII->get(PPC::BCC)) in EmitInstrWithCustomInserter()
13400 BuildMI(BB, dl, TII->get(PPC::ANDC), Tmp2Reg) in EmitInstrWithCustomInserter()
13403 BuildMI(BB, dl, TII->get(PPC::OR), Tmp4Reg) in EmitInstrWithCustomInserter()
13406 BuildMI(BB, dl, TII->get(PPC::STWCX)) in EmitInstrWithCustomInserter()
13410 BuildMI(BB, dl, TII->get(PPC::BCC)) in EmitInstrWithCustomInserter()
13414 BuildMI(BB, dl, TII->get(PPC::B)).addMBB(exitMBB); in EmitInstrWithCustomInserter()
13421 BuildMI(*BB, BB->begin(), dl, TII->get(PPC::SRW), dest) in EmitInstrWithCustomInserter()
13431 DebugLoc dl = MI.getDebugLoc(); in EmitInstrWithCustomInserter() local
13437 BuildMI(*BB, MI, dl, TII->get(PPC::MFFS), MFFSReg); in EmitInstrWithCustomInserter()
13440 BuildMI(*BB, MI, dl, TII->get(PPC::MTFSB1)) in EmitInstrWithCustomInserter()
13444 BuildMI(*BB, MI, dl, TII->get(PPC::MTFSB0)) in EmitInstrWithCustomInserter()
13449 auto MIB = BuildMI(*BB, MI, dl, TII->get(PPC::FADD), Dest) in EmitInstrWithCustomInserter()
13456 BuildMI(*BB, MI, dl, TII->get(PPC::MTFSFb)).addImm(1).addReg(MFFSReg); in EmitInstrWithCustomInserter()
13495 DebugLoc dl = MI.getDebugLoc(); in EmitInstrWithCustomInserter() local
13500 BuildMI(*BB, MI, dl, TII->get(TargetOpcode::IMPLICIT_DEF), OldFPSCRReg); in EmitInstrWithCustomInserter()
13502 BuildMI(*BB, MI, dl, TII->get(PPC::MFFS), OldFPSCRReg); in EmitInstrWithCustomInserter()
13514 BuildMI(*BB, MI, dl, TII->get((Mode & 1) ? PPC::MTFSB1 : PPC::MTFSB0)) in EmitInstrWithCustomInserter()
13518 BuildMI(*BB, MI, dl, TII->get((Mode & 2) ? PPC::MTFSB1 : PPC::MTFSB0)) in EmitInstrWithCustomInserter()
13522 DebugLoc dl = MI.getDebugLoc(); in EmitInstrWithCustomInserter() local
13531 BuildMI(*BB, MI, dl, TII->get(TargetOpcode::COPY), DestReg) in EmitInstrWithCustomInserter()
13561 BuildMI(*BB, MI, dl, TII->get(StoreOp)) in EmitInstrWithCustomInserter()
13575 BuildMI(*BB, MI, dl, TII->get(LoadOp), DestReg) in EmitInstrWithCustomInserter()
13585 BuildMI(*BB, MI, dl, TII->get(PPC::MFFS), OldFPSCRReg); in EmitInstrWithCustomInserter()
13607 BuildMI(*BB, MI, dl, TII->get(TargetOpcode::IMPLICIT_DEF), ImDefReg); in EmitInstrWithCustomInserter()
13608 BuildMI(*BB, MI, dl, TII->get(PPC::INSERT_SUBREG), ExtSrcReg) in EmitInstrWithCustomInserter()
13614 BuildMI(*BB, MI, dl, TII->get(PPC::RLDIMI), NewFPSCRTmpReg) in EmitInstrWithCustomInserter()
13625 BuildMI(*BB, MI, dl, TII->get(PPC::MTFSF)) in EmitInstrWithCustomInserter()
14073 SDLoc dl(N); in DAGCombineTruncBoolExt() local
14300 RepValue = DAG.getNode(ISD::TRUNCATE, dl, MVT::i1, RepValue); in DAGCombineTruncBoolExt()
14331 Ops[C+i] = DAG.getNode(ISD::TRUNCATE, dl, MVT::i1, Ops[C+i]); in DAGCombineTruncBoolExt()
14334 DAG.getNode(PromOp.getOpcode(), dl, MVT::i1, Ops)); in DAGCombineTruncBoolExt()
14349 SDLoc dl(N); in DAGCombineExtBoolTrunc() local
14512 DAG.getSExtOrTrunc(InSrc, dl, N->getValueType(0))); in DAGCombineExtBoolTrunc()
14515 DAG.getZExtOrTrunc(InSrc, dl, N->getValueType(0))); in DAGCombineExtBoolTrunc()
14518 DAG.getAnyExtOrTrunc(InSrc, dl, N->getValueType(0))); in DAGCombineExtBoolTrunc()
14576 Ops[C+i] = DAG.getSExtOrTrunc(Ops[C+i], dl, N->getValueType(0)); in DAGCombineExtBoolTrunc()
14578 Ops[C+i] = DAG.getZExtOrTrunc(Ops[C+i], dl, N->getValueType(0)); in DAGCombineExtBoolTrunc()
14580 Ops[C+i] = DAG.getAnyExtOrTrunc(Ops[C+i], dl, N->getValueType(0)); in DAGCombineExtBoolTrunc()
14589 Ops[0] = DAG.getNode(ISD::TRUNCATE, dl, SI0->second, Ops[0]); in DAGCombineExtBoolTrunc()
14592 Ops[1] = DAG.getNode(ISD::TRUNCATE, dl, SI1->second, Ops[1]); in DAGCombineExtBoolTrunc()
14596 DAG.getNode(PromOp.getOpcode(), dl, N->getValueType(0), Ops)); in DAGCombineExtBoolTrunc()
14606 return DAG.getNode(ISD::AND, dl, N->getValueType(0), N->getOperand(0), in DAGCombineExtBoolTrunc()
14609 dl, N->getValueType(0))); in DAGCombineExtBoolTrunc()
14615 DAG.getConstant(N->getValueSizeInBits(0) - PromBits, dl, ShiftAmountTy); in DAGCombineExtBoolTrunc()
14617 ISD::SRA, dl, N->getValueType(0), in DAGCombineExtBoolTrunc()
14618 DAG.getNode(ISD::SHL, dl, N->getValueType(0), N->getOperand(0), ShiftCst), in DAGCombineExtBoolTrunc()
14675 SDLoc dl(N); in combineElementTruncationToVectorTruncation() local
14727 DAG.getNode(ISD::FP_ROUND, dl, MVT::f32, In.getOperand(0), in combineElementTruncationToVectorTruncation()
14728 DAG.getIntPtrConstant(1, dl, /*isTarget=*/true)); in combineElementTruncationToVectorTruncation()
14743 SDValue BV = DAG.getBuildVector(NewVT, dl, Ops); in combineElementTruncationToVectorTruncation()
14744 return DAG.getNode(Opcode, dl, TargetVT, BV); in combineElementTruncationToVectorTruncation()
14759 SDLoc dl(N); in combineBVOfConsecutiveLoads() local
14826 WideLoad = DAG.getLoad(N->getValueType(0), dl, FirstLoad->getChain(), in combineBVOfConsecutiveLoads()
14833 WideLoad = DAG.getLoad(N->getValueType(0), dl, LastLoad->getChain(), in combineBVOfConsecutiveLoads()
14840 ReturnSDVal = DAG.getVectorShuffle(N->getValueType(0), dl, WideLoad, in combineBVOfConsecutiveLoads()
14856 SDLoc dl(N); in addShuffleForVecExtend() local
14874 DAG.getVectorShuffle(Input.getValueType(), dl, Input, in addShuffleForVecExtend()
14883 return DAG.getNode(ISD::SIGN_EXTEND_INREG, dl, VT, Conv, in addShuffleForVecExtend()
15032 SDLoc dl(N); in DAGCombineBuildVector() local
15113 return DAG.getNode(NodeType, dl, MVT::v2f64, in DAGCombineBuildVector()
15114 SrcVec, DAG.getIntPtrConstant(SubvecIdx, dl)); in DAGCombineBuildVector()
15127 SDLoc dl(N); in combineFPToIntToFP() local
15152 dl, false); in combineFPToIntToFP()
15155 SDValue Ld = DAG.getMemIntrinsicNode(PPCISD::LXSIZX, dl, in combineFPToIntToFP()
15163 SDValue Ext = DAG.getNode(PPCISD::VEXTS, dl, MVT::f64, ExtOps); in combineFPToIntToFP()
15164 return DAG.getNode(ConvOp, dl, DstDouble ? MVT::f64 : MVT::f32, Ext); in combineFPToIntToFP()
15166 return DAG.getNode(ConvOp, dl, DstDouble ? MVT::f64 : MVT::f32, Ld); in combineFPToIntToFP()
15198 Src = DAG.getNode(ISD::FP_EXTEND, dl, MVT::f64, Src); in combineFPToIntToFP()
15209 SDValue Tmp = DAG.getNode(FCTOp, dl, MVT::f64, Src); in combineFPToIntToFP()
15210 SDValue FP = DAG.getNode(FCFOp, dl, FCFTy, Tmp); in combineFPToIntToFP()
15213 FP = DAG.getNode(ISD::FP_ROUND, dl, MVT::f32, FP, in combineFPToIntToFP()
15214 DAG.getIntPtrConstant(0, dl, /*isTarget=*/true)); in combineFPToIntToFP()
15234 SDLoc dl(N); in expandVSXLoadForLE() local
15268 SDValue Load = DAG.getMemIntrinsicNode(PPCISD::LXVD2X, dl, in expandVSXLoadForLE()
15275 PPCISD::XXSWAPD, dl, DAG.getVTList(MVT::v2f64, MVT::Other), Chain, Load); in expandVSXLoadForLE()
15280 SDValue N = DAG.getNode(ISD::BITCAST, dl, VecTy, Swap); in expandVSXLoadForLE()
15283 return DAG.getNode(ISD::MERGE_VALUES, dl, DAG.getVTList(VecTy, MVT::Other), in expandVSXLoadForLE()
15300 SDLoc dl(N); in expandVSXStoreForLE() local
15338 Src = DAG.getNode(ISD::BITCAST, dl, MVT::v2f64, Src); in expandVSXStoreForLE()
15342 SDValue Swap = DAG.getNode(PPCISD::XXSWAPD, dl, in expandVSXStoreForLE()
15347 SDValue Store = DAG.getMemIntrinsicNode(PPCISD::STXVD2X, dl, in expandVSXStoreForLE()
15358 SDLoc dl(N); in combineStoreFPToInt() local
15392 DAG.getIntPtrConstant(ByteSize, dl, false), in combineStoreFPToInt()
15395 Val = DAG.getMemIntrinsicNode(PPCISD::ST_VSR_SCAL_INT, dl, in combineStoreFPToInt()
15475 SDLoc dl(OrigSToV); in getSToVPermuted() local
15496 return DAG.getVectorShuffle(VT, dl, OrigVector, OrigVector, NewMask); in getSToVPermuted()
15499 return DAG.getNode(PPCISD::SCALAR_TO_VECTOR_PERMUTED, dl, VT, in getSToVPermuted()
15522 SDLoc dl(SVN); in combineVectorShuffle() local
15615 Res = DAG.getVectorShuffle(SVN->getValueType(0), dl, LHS, RHS, ShuffV); in combineVectorShuffle()
15684 TheSplat = DAG.getSplatBuildVector(TheSplat.getValueType(), dl, SplatVal); in combineVectorShuffle()
15690 return DAG.getVectorShuffle(SVN->getValueType(0), dl, LHS, RHS, ShuffV); in combineVectorShuffle()
15737 SDLoc dl(LSBase); in combineVReverseMemOP() local
15740 PPCISD::LOAD_VEC_BE, dl, DAG.getVTList(VT, MVT::Other), LoadOps, in combineVReverseMemOP()
15751 SDLoc dl(LSBase); in combineVReverseMemOP() local
15755 PPCISD::STORE_VEC_BE, dl, DAG.getVTList(MVT::Other), StoreOps, in combineVReverseMemOP()
15780 SDLoc dl(N); in PerformDAGCombine() local
15805 SDValue ConstOp = DAG.getConstant(Imm, dl, MVT::i32); in PerformDAGCombine()
15806 SDValue NarrowAnd = DAG.getNode(ISD::AND, dl, MVT::i32, NarrowOp, ConstOp); in PerformDAGCombine()
15807 return DAG.getZExtOrTrunc(NarrowAnd, dl, N->getValueType(0)); in PerformDAGCombine()
15890 BSwapOp = DAG.getNode(ISD::ANY_EXTEND, dl, MVT::i32, BSwapOp); in PerformDAGCombine()
15896 BSwapOp = DAG.getNode(ISD::SRL, dl, Op1VT, BSwapOp, in PerformDAGCombine()
15897 DAG.getConstant(Shift, dl, MVT::i32)); in PerformDAGCombine()
15900 BSwapOp = DAG.getNode(ISD::TRUNCATE, dl, MVT::i32, BSwapOp); in PerformDAGCombine()
15907 DAG.getMemIntrinsicNode(PPCISD::STBRX, dl, DAG.getVTList(MVT::Other), in PerformDAGCombine()
15920 SDValue Const64 = DAG.getConstant(Val64, dl, MVT::i64); in PerformDAGCombine()
16027 DAG.getNode(ISD::ADD, dl, BasePtr.getValueType(), BasePtr, in PerformDAGCombine()
16033 SDValue FloatLoad = DAG.getLoad(MVT::f32, dl, LD->getChain(), BasePtr, in PerformDAGCombine()
16037 DAG.getNode(ISD::ADD, dl, BasePtr.getValueType(), in PerformDAGCombine()
16038 BasePtr, DAG.getIntPtrConstant(4, dl)); in PerformDAGCombine()
16040 MVT::f32, dl, SDValue(FloatLoad.getNode(), 1), AddPtr, in PerformDAGCombine()
16110 SDValue PermCntl = BuildIntrinsicOp(Intr, Ptr, DAG, dl, PermCntlTy); in PerformDAGCombine()
16125 DAG.getTargetConstant(IntrLD, dl, getPointerTy(MF.getDataLayout())); in PerformDAGCombine()
16128 DAG.getMemIntrinsicNode(ISD::INTRINSIC_W_CHAIN, dl, in PerformDAGCombine()
16150 DAG.getConstant(IncValue, dl, getPointerTy(MF.getDataLayout())); in PerformDAGCombine()
16151 Ptr = DAG.getNode(ISD::ADD, dl, Ptr.getValueType(), Ptr, Increment); in PerformDAGCombine()
16158 DAG.getMemIntrinsicNode(ISD::INTRINSIC_W_CHAIN, dl, in PerformDAGCombine()
16162 SDValue TF = DAG.getNode(ISD::TokenFactor, dl, MVT::Other, in PerformDAGCombine()
16173 ExtraLoad, BaseLoad, PermCntl, DAG, dl); in PerformDAGCombine()
16176 BaseLoad, ExtraLoad, PermCntl, DAG, dl); in PerformDAGCombine()
16180 ? DAG.getNode(ISD::BITCAST, dl, VT, Perm) in PerformDAGCombine()
16181 : DAG.getNode(ISD::FP_ROUND, dl, VT, Perm, in PerformDAGCombine()
16182 DAG.getTargetConstant(1, dl, MVT::i64)); in PerformDAGCombine()
16255 return DAG.getNode(ISD::ABS, dl, V2.getValueType(), V2); in PerformDAGCombine()
16261 return DAG.getNode(ISD::ABS, dl, V1.getValueType(), V1); in PerformDAGCombine()
16267 return DAG.getNode(ISD::ABS, dl, V1.getValueType(), V1); in PerformDAGCombine()
16341 DAG.getMemIntrinsicNode(PPCISD::LBRX, dl, in PerformDAGCombine()
16349 ResVal = DAG.getNode(ISD::TRUNCATE, dl, MVT::i16, BSLoad); in PerformDAGCombine()
16373 SDValue Lo = DAG.getLoad(MVT::i32, dl, LD->getChain(), BasePtr, in PerformDAGCombine()
16375 Lo = DAG.getNode(ISD::BSWAP, dl, MVT::i32, Lo); in PerformDAGCombine()
16376 BasePtr = DAG.getNode(ISD::ADD, dl, BasePtr.getValueType(), BasePtr, in PerformDAGCombine()
16377 DAG.getIntPtrConstant(4, dl)); in PerformDAGCombine()
16380 SDValue Hi = DAG.getLoad(MVT::i32, dl, LD->getChain(), BasePtr, NewMMO); in PerformDAGCombine()
16381 Hi = DAG.getNode(ISD::BSWAP, dl, MVT::i32, Hi); in PerformDAGCombine()
16384 Res = DAG.getNode(ISD::BUILD_PAIR, dl, MVT::i64, Hi, Lo); in PerformDAGCombine()
16386 Res = DAG.getNode(ISD::BUILD_PAIR, dl, MVT::i64, Lo, Hi); in PerformDAGCombine()
16388 DAG.getNode(ISD::TokenFactor, dl, MVT::Other, in PerformDAGCombine()
16474 return DAG.getNode(ISD::BR, dl, MVT::Other, in PerformDAGCombine()
16496 DAG.getConstant(StoreWidth, dl, MVT::i32)}; in PerformDAGCombine()
16499 PPCISD::STORE_COND, dl, in PerformDAGCombine()
16513 InChain = DAG.getNode(ISD::TokenFactor, dl, MVT::Other, InChains); in PerformDAGCombine()
16516 return DAG.getNode(PPCISD::COND_BRANCH, dl, MVT::Other, InChain, in PerformDAGCombine()
16517 DAG.getConstant(CompOpc, dl, MVT::i32), in PerformDAGCombine()
16534 DAG.getConstant(CompareOpc, dl, MVT::i32) in PerformDAGCombine()
16537 SDValue CompNode = DAG.getNode(PPCISD::VCMP_rec, dl, VTs, Ops); in PerformDAGCombine()
16557 return DAG.getNode(PPCISD::COND_BRANCH, dl, MVT::Other, N->getOperand(0), in PerformDAGCombine()
16558 DAG.getConstant(CompOpc, dl, MVT::i32), in PerformDAGCombine()
16958 SDLoc dl(Op); in LowerAsmOperandForConstraint() local
16966 Result = DAG.getTargetConstant(Value, dl, TCVT); in LowerAsmOperandForConstraint()
16970 Result = DAG.getTargetConstant(Value, dl, TCVT); in LowerAsmOperandForConstraint()
16974 Result = DAG.getTargetConstant(Value, dl, TCVT); in LowerAsmOperandForConstraint()
16978 Result = DAG.getTargetConstant(Value, dl, TCVT); in LowerAsmOperandForConstraint()
16982 Result = DAG.getTargetConstant(Value, dl, TCVT); in LowerAsmOperandForConstraint()
16986 Result = DAG.getTargetConstant(Value, dl, TCVT); in LowerAsmOperandForConstraint()
16990 Result = DAG.getTargetConstant(Value, dl, TCVT); in LowerAsmOperandForConstraint()
16994 Result = DAG.getTargetConstant(Value, dl, TCVT); in LowerAsmOperandForConstraint()
17080 SDLoc dl(Op); in LowerRETURNADDR() local
17095 DAG.getLoad(Op.getValueType(), dl, DAG.getEntryNode(), in LowerRETURNADDR()
17098 DAG.getConstant(Subtarget.getFrameLowering()->getReturnSaveOffset(), dl, in LowerRETURNADDR()
17100 return DAG.getLoad(PtrVT, dl, DAG.getEntryNode(), in LowerRETURNADDR()
17101 DAG.getNode(ISD::ADD, dl, PtrVT, FrameAddr, Offset), in LowerRETURNADDR()
17107 return DAG.getLoad(PtrVT, dl, DAG.getEntryNode(), RetAddrFI, in LowerRETURNADDR()
17113 SDLoc dl(Op); in LowerFRAMEADDR() local
17131 SDValue FrameAddr = DAG.getCopyFromReg(DAG.getEntryNode(), dl, FrameReg, in LowerFRAMEADDR()
17134 FrameAddr = DAG.getLoad(Op.getValueType(), dl, DAG.getEntryNode(), in LowerFRAMEADDR()
17998 SDLoc dl(N); in combineTRUNCATE() local
18026 ISD::EXTRACT_VECTOR_ELT, dl, MVT::i64, Bitcast, in combineTRUNCATE()
18027 DCI.DAG.getTargetConstant(EltToExtract, dl, MVT::i32)); in combineTRUNCATE()