Lines Matching refs:Subtarget

50   const X86Subtarget *Subtarget;  member in __anon47f1d02c0111::X86FastISel
56 Subtarget = &funcInfo.MF->getSubtarget<X86Subtarget>(); in X86FastISel()
130 return Subtarget->getInstrInfo(); in getInstrInfo()
150 return (VT == MVT::f64 && Subtarget->hasSSE2()) || in isScalarFPTypeInSSEReg()
151 (VT == MVT::f32 && Subtarget->hasSSE1()) || VT == MVT::f16; in isScalarFPTypeInSSEReg()
301 if (VT == MVT::f64 && !Subtarget->hasSSE2()) in isTypeLegal()
303 if (VT == MVT::f32 && !Subtarget->hasSSE1()) in isTypeLegal()
321 bool HasSSE1 = Subtarget->hasSSE1(); in X86FastEmitLoad()
322 bool HasSSE2 = Subtarget->hasSSE2(); in X86FastEmitLoad()
323 bool HasSSE41 = Subtarget->hasSSE41(); in X86FastEmitLoad()
324 bool HasAVX = Subtarget->hasAVX(); in X86FastEmitLoad()
325 bool HasAVX2 = Subtarget->hasAVX2(); in X86FastEmitLoad()
326 bool HasAVX512 = Subtarget->hasAVX512(); in X86FastEmitLoad()
327 bool HasVLX = Subtarget->hasVLX(); in X86FastEmitLoad()
483 bool HasSSE1 = Subtarget->hasSSE1(); in X86FastEmitStore()
484 bool HasSSE2 = Subtarget->hasSSE2(); in X86FastEmitStore()
485 bool HasSSE4A = Subtarget->hasSSE4A(); in X86FastEmitStore()
486 bool HasAVX = Subtarget->hasAVX(); in X86FastEmitStore()
487 bool HasAVX512 = Subtarget->hasAVX512(); in X86FastEmitStore()
488 bool HasVLX = Subtarget->hasVLX(); in X86FastEmitStore()
730 if (!Subtarget->isPICStyleRIPRel() || in handleConstantAddresses()
736 unsigned char GVFlags = Subtarget->classifyGlobalReference(GV); in handleConstantAddresses()
747 if (Subtarget->isPICStyleRIPRel()) { in handleConstantAddresses()
783 if (Subtarget->isPICStyleRIPRel() || GVFlags == X86II::MO_GOTPCREL || in handleConstantAddresses()
808 if (!AM.GV || !Subtarget->isPICStyleRIPRel()) { in handleConstantAddresses()
933 (!AM.GV || !Subtarget->isPICStyleRIPRel()) && in X86SelectAddress()
1053 if (Subtarget->isPICStyleRIPRel() && in X86SelectCallAddress()
1068 if (Subtarget->isPICStyleRIPRel()) { in X86SelectCallAddress()
1074 AM.GVOpFlags = Subtarget->classifyLocalReference(nullptr); in X86SelectCallAddress()
1081 if (!AM.GV || !Subtarget->isPICStyleRIPRel()) { in X86SelectCallAddress()
1086 if (Reg && Subtarget->isTarget64BitILP32()) { in X86SelectCallAddress()
1289 unsigned RetReg = Subtarget->isTarget64BitLP64() ? X86::RAX : X86::EAX; in X86SelectRet()
1299 TII.get(Subtarget->is64Bit() ? X86::RETI64 : X86::RETI32)) in X86SelectRet()
1303 TII.get(Subtarget->is64Bit() ? X86::RET64 : X86::RET32)); in X86SelectRet()
1353 static unsigned X86ChooseCmpOpcode(EVT VT, const X86Subtarget *Subtarget) { in X86ChooseCmpOpcode() argument
1354 bool HasAVX512 = Subtarget->hasAVX512(); in X86ChooseCmpOpcode()
1355 bool HasAVX = Subtarget->hasAVX(); in X86ChooseCmpOpcode()
1356 bool HasSSE1 = Subtarget->hasSSE1(); in X86ChooseCmpOpcode()
1357 bool HasSSE2 = Subtarget->hasSSE2(); in X86ChooseCmpOpcode()
1428 unsigned CompareOpc = X86ChooseCmpOpcode(VT, Subtarget); in X86FastEmitCompare()
1934 if (!Subtarget->is64Bit()) in X86SelectDivRem()
2001 OpEntry.DivRemResultReg == X86::AH && Subtarget->is64Bit()) { in X86SelectDivRem()
2030 if (!Subtarget->canUseCMOV()) in X86FastEmitCMoveSelect()
2141 const TargetRegisterInfo &TRI = *Subtarget->getRegisterInfo(); in X86FastEmitCMoveSelect()
2162 !((Subtarget->hasSSE1() && RetVT == MVT::f32) || in X86FastEmitSSESelect()
2163 (Subtarget->hasSSE2() && RetVT == MVT::f64))) in X86FastEmitSSESelect()
2182 if (CC > 7 && !Subtarget->hasAVX()) in X86FastEmitSSESelect()
2201 if (Subtarget->hasAVX512()) { in X86FastEmitSSESelect()
2228 } else if (Subtarget->hasAVX()) { in X86FastEmitSSESelect()
2285 Opc = Subtarget->hasAVX512() ? X86::CMOV_FR16X : X86::CMOV_FR16; break; in X86FastEmitPseudoSelect()
2287 Opc = Subtarget->hasAVX512() ? X86::CMOV_FR32X : X86::CMOV_FR32; break; in X86FastEmitPseudoSelect()
2289 Opc = Subtarget->hasAVX512() ? X86::CMOV_FR64X : X86::CMOV_FR64; break; in X86FastEmitPseudoSelect()
2400 bool HasAVX512 = Subtarget->hasAVX512(); in X86SelectIntToFP()
2401 if (!Subtarget->hasAVX() || (!IsSigned && !HasAVX512)) in X86SelectIntToFP()
2462 bool HasAVX = Subtarget->hasAVX(); in X86SelectFPExtOrFPTrunc()
2490 if (Subtarget->hasSSE2() && I->getType()->isDoubleTy() && in X86SelectFPExt()
2492 bool HasAVX512 = Subtarget->hasAVX512(); in X86SelectFPExt()
2496 : Subtarget->hasAVX() ? X86::VCVTSS2SDrr : X86::CVTSS2SDrr; in X86SelectFPExt()
2504 if (Subtarget->hasSSE2() && I->getType()->isFloatTy() && in X86SelectFPTrunc()
2506 bool HasAVX512 = Subtarget->hasAVX512(); in X86SelectFPTrunc()
2510 : Subtarget->hasAVX() ? X86::VCVTSD2SSrr : X86::CVTSD2SSrr; in X86SelectFPTrunc()
2549 return Len <= (Subtarget->is64Bit() ? 32 : 16); in IsMemcpySmall()
2559 bool i64Legal = Subtarget->is64Bit(); in TryEmitSmallMemcpy()
2594 if (Subtarget->useSoftFloat() || !Subtarget->hasF16C()) in fastLowerIntrinsicCall()
2622 unsigned Opc = Subtarget->hasVLX() ? X86::VCVTPS2PHZ128rr in fastLowerIntrinsicCall()
2627 Opc = Subtarget->hasAVX512() ? X86::VMOVPDI2DIZrr in fastLowerIntrinsicCall()
2645 unsigned Opc = Subtarget->hasVLX() ? X86::VCVTPH2PSZ128rr in fastLowerIntrinsicCall()
2685 const X86RegisterInfo *RegInfo = Subtarget->getRegisterInfo(); in fastLowerIntrinsicCall()
2734 unsigned SizeWidth = Subtarget->is64Bit() ? 64 : 32; in fastLowerIntrinsicCall()
2749 unsigned SizeWidth = Subtarget->is64Bit() ? 64 : 32; in fastLowerIntrinsicCall()
2793 if (!Subtarget->hasSSE1()) in fastLowerIntrinsicCall()
2810 unsigned AVXLevel = Subtarget->hasAVX512() ? 2 : in fastLowerIntrinsicCall()
2811 Subtarget->hasAVX() ? 1 : in fastLowerIntrinsicCall()
2974 if (!Subtarget->hasSSE1()) in fastLowerIntrinsicCall()
2980 if (!Subtarget->hasSSE2()) in fastLowerIntrinsicCall()
2999 unsigned AVXLevel = Subtarget->hasAVX512() ? 2 : in fastLowerIntrinsicCall()
3000 Subtarget->hasAVX() ? 1 : in fastLowerIntrinsicCall()
3050 if (Subtarget->isCallingConvWin64(CC)) in fastLowerArguments()
3053 if (!Subtarget->is64Bit()) in fastLowerArguments()
3056 if (Subtarget->useSoftFloat()) in fastLowerArguments()
3086 if (!Subtarget->hasSSE1()) in fastLowerArguments()
3136 static unsigned computeBytesPoppedByCalleeForSRet(const X86Subtarget *Subtarget, in computeBytesPoppedByCalleeForSRet() argument
3139 if (Subtarget->is64Bit()) in computeBytesPoppedByCalleeForSRet()
3141 if (Subtarget->getTargetTriple().isOSMSVCRT()) in computeBytesPoppedByCalleeForSRet()
3150 CB->paramHasAttr(0, Attribute::InReg) || Subtarget->isTargetMCU()) in computeBytesPoppedByCalleeForSRet()
3169 bool Is64Bit = Subtarget->is64Bit(); in fastLowerCall()
3170 bool IsWin64 = Subtarget->isCallingConvWin64(CC); in fastLowerCall()
3186 if (Subtarget->useIndirectThunkCalls()) in fastLowerCall()
3298 const X86RegisterInfo *RegInfo = Subtarget->getRegisterInfo(); in fastLowerCall()
3423 if (Subtarget->isPICStyleGOT()) { in fastLowerCall()
3444 assert((Subtarget->hasSSE1() || !NumXMMRegs) in fastLowerCall()
3476 unsigned char OpFlags = Subtarget->classifyGlobalFunctionReference(GV); in fastLowerCall()
3504 if (Subtarget->isPICStyleGOT()) in fastLowerCall()
3516 X86::isCalleePop(CC, Subtarget->is64Bit(), IsVarArg, in fastLowerCall()
3519 : computeBytesPoppedByCalleeForSRet(Subtarget, CC, CLI.CB); in fastLowerCall()
3540 ((Is64Bit || Ins[i].Flags.isInReg()) && !Subtarget->hasSSE1())) { in fastLowerCall()
3636 if (!Subtarget->hasSSE2()) in fastSelectInstruction()
3728 bool HasSSE1 = Subtarget->hasSSE1(); in X86MaterializeFP()
3729 bool HasSSE2 = Subtarget->hasSSE2(); in X86MaterializeFP()
3730 bool HasAVX = Subtarget->hasAVX(); in X86MaterializeFP()
3731 bool HasAVX512 = Subtarget->hasAVX512(); in X86MaterializeFP()
3756 unsigned char OpFlag = Subtarget->classifyLocalReference(nullptr); in X86MaterializeFP()
3761 else if (Subtarget->is64Bit() && TM.getCodeModel() == CodeModel::Small) in X86MaterializeFP()
3769 if (Subtarget->is64Bit() && CM == CodeModel::Large) { in X86MaterializeFP()
3815 ? (Subtarget->isTarget64BitILP32() ? X86::LEA64_32r : X86::LEA32r) in X86MaterializeGV()
3845 if (!Subtarget->hasSSE1()) in fastMaterializeConstant()
3849 if (!Subtarget->hasSSE2()) in fastMaterializeConstant()
3885 ? (Subtarget->isTarget64BitILP32() ? X86::LEA64_32r : X86::LEA32r) in fastMaterializeAlloca()
3900 bool HasSSE1 = Subtarget->hasSSE1(); in fastMaterializeFloatZero()
3901 bool HasSSE2 = Subtarget->hasSSE2(); in fastMaterializeFloatZero()
3902 bool HasAVX512 = Subtarget->hasAVX512(); in fastMaterializeFloatZero()