Lines Matching refs:Subtarget
70 const X86Subtarget &Subtarget) { in handleMaskRegisterForCallingConv() argument
85 if (NumElts == 32 && (!Subtarget.hasBWI() || CC != CallingConv::X86_RegCall)) in handleMaskRegisterForCallingConv()
88 if (NumElts == 64 && Subtarget.hasBWI() && CC != CallingConv::X86_RegCall) { in handleMaskRegisterForCallingConv()
89 if (Subtarget.useAVX512Regs()) in handleMaskRegisterForCallingConv()
95 if (!isPowerOf2_32(NumElts) || (NumElts == 64 && !Subtarget.hasBWI()) || in handleMaskRegisterForCallingConv()
106 if (VT.getVectorElementType() == MVT::i1 && Subtarget.hasAVX512()) { in getRegisterTypeForCallingConv()
112 handleMaskRegisterForCallingConv(NumElts, CC, Subtarget); in getRegisterTypeForCallingConv()
122 if ((VT == MVT::f64 || VT == MVT::f80) && !Subtarget.is64Bit() && in getRegisterTypeForCallingConv()
123 !Subtarget.hasX87()) in getRegisterTypeForCallingConv()
140 if (VT.getVectorElementType() == MVT::i1 && Subtarget.hasAVX512()) { in getNumRegistersForCallingConv()
146 handleMaskRegisterForCallingConv(NumElts, CC, Subtarget); in getNumRegistersForCallingConv()
157 if (!Subtarget.is64Bit() && !Subtarget.hasX87()) { in getNumRegistersForCallingConv()
176 Subtarget.hasAVX512() && in getVectorTypeBreakdownForCallingConv()
178 (VT.getVectorNumElements() == 64 && !Subtarget.hasBWI()) || in getVectorTypeBreakdownForCallingConv()
187 if (VT == MVT::v64i1 && Subtarget.hasBWI() && !Subtarget.useAVX512Regs() && in getVectorTypeBreakdownForCallingConv()
209 if (Subtarget.hasAVX512()) { in getSetCCResultType()
219 if (LegalVT.getSimpleVT().isVector() && Subtarget.hasVLX()) { in getSetCCResultType()
224 if (Subtarget.hasBWI() || EltVT.getSizeInBits() >= 32) in getSetCCResultType()
263 if (Subtarget.is64Bit()) { in getByValTypeAlignment()
272 if (Subtarget.hasSSE1()) in getByValTypeAlignment()
285 (!Subtarget.isUnalignedMem16Slow() || Op.isAligned(Align(16)))) { in getOptimalMemOpType()
287 if (Op.size() >= 64 && Subtarget.hasAVX512() && Subtarget.hasEVEX512() && in getOptimalMemOpType()
288 (Subtarget.getPreferVectorWidth() >= 512)) { in getOptimalMemOpType()
289 return Subtarget.hasBWI() ? MVT::v64i8 : MVT::v16i32; in getOptimalMemOpType()
292 if (Op.size() >= 32 && Subtarget.hasAVX() && in getOptimalMemOpType()
293 Subtarget.useLight256BitInstructions()) { in getOptimalMemOpType()
301 if (Subtarget.hasSSE2() && (Subtarget.getPreferVectorWidth() >= 128)) in getOptimalMemOpType()
305 if (Subtarget.hasSSE1() && (Subtarget.is64Bit() || Subtarget.hasX87()) && in getOptimalMemOpType()
306 (Subtarget.getPreferVectorWidth() >= 128)) in getOptimalMemOpType()
309 Op.size() >= 8 && !Subtarget.is64Bit() && Subtarget.hasSSE2()) { in getOptimalMemOpType()
322 if (Subtarget.is64Bit() && Op.size() >= 8) in getOptimalMemOpType()
329 return Subtarget.hasSSE1(); in isSafeMemOpType()
331 return Subtarget.hasSSE2(); in isSafeMemOpType()
347 return !Subtarget.isUnalignedMem16Slow(); in isMemoryAccessFast()
349 return !Subtarget.isUnalignedMem32Slow(); in isMemoryAccessFast()
366 return (Alignment < 16 || !Subtarget.hasSSE41()); in allowsMisalignedMemoryAccesses()
389 if (!!(Flags & MachineMemOperand::MOLoad) && Subtarget.hasSSE41()) in allowsMemoryAccess()
391 if (!!(Flags & MachineMemOperand::MOStore) && Subtarget.hasSSE2()) in allowsMemoryAccess()
395 if (!!(Flags & MachineMemOperand::MOLoad) && Subtarget.hasAVX2()) in allowsMemoryAccess()
397 if (!!(Flags & MachineMemOperand::MOStore) && Subtarget.hasAVX()) in allowsMemoryAccess()
401 if (Subtarget.hasAVX512() && Subtarget.hasEVEX512()) in allowsMemoryAccess()
417 if (isPositionIndependent() && Subtarget.isPICStyleGOT()) in getJumpTableEncoding()
428 return Subtarget.useSoftFloat(); in useSoftFloat()
435 if (Subtarget.is64Bit()) in markLibCallAttributes()
463 assert(isPositionIndependent() && Subtarget.isPICStyleGOT()); in LowerCustomJumpTableEntry()
473 if (!Subtarget.is64Bit()) in getPICJumpTableRelocBase()
487 if (Subtarget.isPICStyleRIPRel() || in getPICJumpTableRelocBaseExpr()
488 (Subtarget.is64Bit() && in getPICJumpTableRelocBaseExpr()
505 RRC = Subtarget.is64Bit() ? &X86::GR64RegClass : &X86::GR32RegClass; in findRepresentativeClass()
524 if (Subtarget.is64Bit()) in getAddressSpace()
545 if (hasStackGuardSlotTLS(Subtarget.getTargetTriple())) { in getIRStackGuard()
549 if (Subtarget.isTargetFuchsia()) in getIRStackGuard()
559 Offset = (Subtarget.is64Bit()) ? 0x28 : 0x14; in getIRStackGuard()
572 Type *Ty = Subtarget.is64Bit() ? Type::getInt64Ty(M->getContext()) in getIRStackGuard()
577 if (!Subtarget.isTargetDarwin()) in getIRStackGuard()
590 if (Subtarget.getTargetTriple().isWindowsMSVCEnvironment() || in insertSSPDeclarations()
591 Subtarget.getTargetTriple().isWindowsItaniumEnvironment()) { in insertSSPDeclarations()
611 hasStackGuardSlotTLS(Subtarget.getTargetTriple())) in insertSSPDeclarations()
618 if (Subtarget.getTargetTriple().isWindowsMSVCEnvironment() || in getSDagStackGuard()
619 Subtarget.getTargetTriple().isWindowsItaniumEnvironment()) { in getSDagStackGuard()
627 if (Subtarget.getTargetTriple().isWindowsMSVCEnvironment() || in getSSPStackGuardCheck()
628 Subtarget.getTargetTriple().isWindowsItaniumEnvironment()) { in getSSPStackGuardCheck()
639 if (Subtarget.isTargetAndroid()) { in getSafeStackPointerLocation()
642 int Offset = (Subtarget.is64Bit()) ? 0x48 : 0x24; in getSafeStackPointerLocation()
647 if (Subtarget.isTargetFuchsia()) { in getSafeStackPointerLocation()
715 CCValAssign &NextVA, const X86Subtarget &Subtarget) { in Passv64i1ArgInRegs() argument
716 assert(Subtarget.hasBWI() && "Expected AVX512BW target!"); in Passv64i1ArgInRegs()
717 assert(Subtarget.is32Bit() && "Expecting 32 bit target"); in Passv64i1ArgInRegs()
789 if (!Subtarget.hasSSE1() && X86::FR32XRegClass.contains(VA.getLocReg())) { in LowerReturn()
792 } else if (!Subtarget.hasSSE2() && in LowerReturn()
816 if (Subtarget.is64Bit()) { in LowerReturn()
824 if (!Subtarget.hasSSE2()) in LowerReturn()
835 Subtarget); in LowerReturn()
901 = (Subtarget.is64Bit() && !Subtarget.isTarget64BitILP32()) ? in LowerReturn()
919 const X86RegisterInfo *TRI = Subtarget.getRegisterInfo(); in LowerReturn()
983 bool Darwin = Subtarget.getTargetTriple().isOSDarwin(); in getTypeForExtReturn()
1008 const SDLoc &DL, const X86Subtarget &Subtarget, in getv64i1Argument() argument
1010 assert((Subtarget.hasBWI()) && "Expected AVX512BW target!"); in getv64i1Argument()
1011 assert(Subtarget.is32Bit() && "Expecting 32 bit target"); in getv64i1Argument()
1099 const TargetRegisterInfo *TRI = Subtarget.getRegisterInfo(); in LowerCallResult()
1121 if (!Subtarget.hasSSE1() && X86::FR32XRegClass.contains(VA.getLocReg())) { in LowerCallResult()
1127 } else if (!Subtarget.hasSSE2() && in LowerCallResult()
1142 if (!Subtarget.hasX87()) in LowerCallResult()
1153 getv64i1Argument(VA, RVLocs[++I], Chain, DAG, dl, Subtarget, &InGlue); in LowerCallResult()
1201 const X86Subtarget &Subtarget) { in hasCalleePopSRet() argument
1209 if (!Subtarget.is32Bit()) in hasCalleePopSRet()
1221 if (Subtarget.getTargetTriple().isOSMSVCRT()) in hasCalleePopSRet()
1225 if (Subtarget.isTargetMCU()) in hasCalleePopSRet()
1394 if (Subtarget.isTargetWindowsMSVC() && !Subtarget.is64Bit() && in LowerMemArgument()
1411 const X86Subtarget &Subtarget) { in get64BitArgumentGPRs() argument
1412 assert(Subtarget.is64Bit()); in get64BitArgumentGPRs()
1414 if (Subtarget.isCallingConvWin64(CallConv)) { in get64BitArgumentGPRs()
1430 const X86Subtarget &Subtarget) { in get64BitArgumentXMMs() argument
1431 assert(Subtarget.is64Bit()); in get64BitArgumentXMMs()
1432 if (Subtarget.isCallingConvWin64(CallConv)) { in get64BitArgumentXMMs()
1440 bool isSoftFloat = Subtarget.useSoftFloat(); in get64BitArgumentXMMs()
1441 if (isSoftFloat || !Subtarget.hasSSE1()) in get64BitArgumentXMMs()
1467 SelectionDAG &DAG, const X86Subtarget &Subtarget, in VarArgsLoweringHelper() argument
1469 : FuncInfo(FuncInfo), DL(Loc), DAG(DAG), Subtarget(Subtarget), in VarArgsLoweringHelper()
1473 FrameLowering(*Subtarget.getFrameLowering()), in VarArgsLoweringHelper()
1485 bool is64Bit() const { return Subtarget.is64Bit(); } in is64Bit()
1486 bool isWin64() const { return Subtarget.isCallingConvWin64(CallConv); } in isWin64()
1491 const X86Subtarget &Subtarget; member in __anonf8175b470211::VarArgsLoweringHelper
1517 ArrayRef<MCPhysReg> ArgGPRs = get64BitArgumentGPRs(CallConv, Subtarget); in createVarArgAreaAndStoreRegisters()
1519 get64BitArgumentXMMs(TheMachineFunction, CallConv, Subtarget); in createVarArgAreaAndStoreRegisters()
1523 assert(!(NumXMMRegs && !Subtarget.hasSSE1()) && in createVarArgAreaAndStoreRegisters()
1618 if (Subtarget.useAVX512Regs() && in forwardMustTailParameters()
1622 else if (Subtarget.hasAVX()) in forwardMustTailParameters()
1624 else if (Subtarget.hasSSE2()) in forwardMustTailParameters()
1677 if (F.hasExternalLinkage() && Subtarget.isTargetCygMing() && in LowerFormalArguments()
1682 bool Is64Bit = Subtarget.is64Bit(); in LowerFormalArguments()
1683 bool IsWin64 = Subtarget.isCallingConvWin64(CallConv); in LowerFormalArguments()
1726 getv64i1Argument(VA, ArgLocs[++I], Chain, DAG, dl, Subtarget); in LowerFormalArguments()
1738 RC = Subtarget.hasAVX512() ? &X86::FR16XRegClass : &X86::FR16RegClass; in LowerFormalArguments()
1740 RC = Subtarget.hasAVX512() ? &X86::FR32XRegClass : &X86::FR32RegClass; in LowerFormalArguments()
1742 RC = Subtarget.hasAVX512() ? &X86::FR64XRegClass : &X86::FR64RegClass; in LowerFormalArguments()
1750 RC = Subtarget.hasVLX() ? &X86::VR256XRegClass : &X86::VR256RegClass; in LowerFormalArguments()
1752 RC = Subtarget.hasVLX() ? &X86::VR128XRegClass : &X86::VR128RegClass; in LowerFormalArguments()
1816 if (Subtarget.is64Bit()) in LowerFormalArguments()
1857 VarArgsLoweringHelper(FuncInfo, dl, DAG, Subtarget, CallConv, CCInfo) in LowerFormalArguments()
1871 if (!canGuaranteeTCO(CallConv) && hasCalleePopSRet(Ins, Subtarget)) in LowerFormalArguments()
1923 if (Subtarget.isTargetWindowsMSVC() && !Subtarget.is64Bit() && in LowerMemOpCallTo()
1993 bool Is64Bit = Subtarget.is64Bit(); in LowerCall()
1994 bool IsWin64 = Subtarget.isCallingConvWin64(CallConv); in LowerCall()
1998 bool IsCalleePopSRet = !IsGuaranteeTCO && hasCalleePopSRet(Outs, Subtarget); in LowerCall()
2013 if (Subtarget.isPICStyleGOT() && !IsGuaranteeTCO && !IsMustTail) { in LowerCall()
2139 const X86RegisterInfo *RegInfo = Subtarget.getRegisterInfo(); in LowerCall()
2210 Passv64i1ArgInRegs(dl, DAG, Arg, RegsToPass, VA, ArgLocs[++I], Subtarget); in LowerCall()
2242 if (Subtarget.isPICStyleGOT()) { in LowerCall()
2273 (Subtarget.hasSSE1() || !M->getModuleFlag("SkipRaxSetup"))) { in LowerCall()
2288 assert((Subtarget.hasSSE1() || !NumXMMRegs) in LowerCall()
2397 } else if (Subtarget.isTarget64BitILP32() && in LowerCall()
2464 const TargetRegisterInfo *TRI = Subtarget.getRegisterInfo(); in LowerCall()
2599 const Align StackAlignment = Subtarget.getFrameLowering()->getStackAlign(); in GetAlignedArgumentStackSize()
2600 const uint64_t SlotSize = Subtarget.getRegisterInfo()->getSlotSize(); in GetAlignedArgumentStackSize()
2724 bool IsCalleeWin64 = Subtarget.isCallingConvWin64(CalleeCC); in IsEligibleForTailCallOptimization()
2725 bool IsCallerWin64 = Subtarget.isCallingConvWin64(CallerCC); in IsEligibleForTailCallOptimization()
2746 const X86RegisterInfo *RegInfo = Subtarget.getRegisterInfo(); in IsEligibleForTailCallOptimization()
2805 const X86RegisterInfo *TRI = Subtarget.getRegisterInfo(); in IsEligibleForTailCallOptimization()
2835 const X86InstrInfo *TII = Subtarget.getInstrInfo(); in IsEligibleForTailCallOptimization()
2856 if (!Subtarget.is64Bit() && ((!isa<GlobalAddressSDNode>(Callee) && in IsEligibleForTailCallOptimization()
2884 X86::isCalleePop(CalleeCC, Subtarget.is64Bit(), isVarArg, in IsEligibleForTailCallOptimization()