Please use GitHub pull requests for new patches. Phabricator shutdown timeline
Changeset View
Changeset View
Standalone View
Standalone View
llvm/trunk/lib/Target/X86/X86.td
Show First 20 Lines • Show All 573 Lines • ▼ Show 20 Lines | def HSWFeatures : ProcessorFeatures<IVBFeatures.Value, [ | ||||
FeatureERMSB, | FeatureERMSB, | ||||
FeatureFMA, | FeatureFMA, | ||||
FeatureLZCNT, | FeatureLZCNT, | ||||
FeatureMOVBE | FeatureMOVBE | ||||
]>; | ]>; | ||||
class HaswellProc<string Name> : ProcModel<Name, HaswellModel, | class HaswellProc<string Name> : ProcModel<Name, HaswellModel, | ||||
HSWFeatures.Value, [ | HSWFeatures.Value, [ | ||||
ProcIntelHSW | ProcIntelHSW, | ||||
FeatureSlowBTMem | |||||
]>; | ]>; | ||||
def : HaswellProc<"haswell">; | def : HaswellProc<"haswell">; | ||||
def : HaswellProc<"core-avx2">; // Legacy alias. | def : HaswellProc<"core-avx2">; // Legacy alias. | ||||
def BDWFeatures : ProcessorFeatures<HSWFeatures.Value, [ | def BDWFeatures : ProcessorFeatures<HSWFeatures.Value, [ | ||||
FeatureADX, | FeatureADX, | ||||
FeatureRDSEED | FeatureRDSEED | ||||
]>; | ]>; | ||||
class BroadwellProc<string Name> : ProcModel<Name, HaswellModel, | class BroadwellProc<string Name> : ProcModel<Name, HaswellModel, | ||||
BDWFeatures.Value, [ | BDWFeatures.Value, [ | ||||
ProcIntelBDW | ProcIntelBDW, | ||||
FeatureSlowBTMem | |||||
]>; | ]>; | ||||
def : BroadwellProc<"broadwell">; | def : BroadwellProc<"broadwell">; | ||||
def SKLFeatures : ProcessorFeatures<BDWFeatures.Value, [ | def SKLFeatures : ProcessorFeatures<BDWFeatures.Value, [ | ||||
FeatureMPX, | FeatureMPX, | ||||
FeatureRTM, | FeatureRTM, | ||||
FeatureXSAVEC, | FeatureXSAVEC, | ||||
FeatureXSAVES, | FeatureXSAVES, | ||||
FeatureSGX, | FeatureSGX, | ||||
FeatureCLFLUSHOPT, | FeatureCLFLUSHOPT, | ||||
FeatureFastVectorFSQRT | FeatureFastVectorFSQRT | ||||
]>; | ]>; | ||||
class SkylakeClientProc<string Name> : ProcModel<Name, SkylakeClientModel, | class SkylakeClientProc<string Name> : ProcModel<Name, SkylakeClientModel, | ||||
SKLFeatures.Value, [ | SKLFeatures.Value, [ | ||||
ProcIntelSKL | ProcIntelSKL, | ||||
FeatureSlowBTMem | |||||
]>; | ]>; | ||||
def : SkylakeClientProc<"skylake">; | def : SkylakeClientProc<"skylake">; | ||||
def KNLFeatures : ProcessorFeatures<IVBFeatures.Value, [ | def KNLFeatures : ProcessorFeatures<IVBFeatures.Value, [ | ||||
FeatureAVX512, | FeatureAVX512, | ||||
FeatureERI, | FeatureERI, | ||||
FeatureCDI, | FeatureCDI, | ||||
FeaturePFI, | FeaturePFI, | ||||
FeaturePREFETCHWT1, | FeaturePREFETCHWT1, | ||||
FeatureADX, | FeatureADX, | ||||
FeatureRDSEED, | FeatureRDSEED, | ||||
FeatureMOVBE, | FeatureMOVBE, | ||||
FeatureLZCNT, | FeatureLZCNT, | ||||
FeatureBMI, | FeatureBMI, | ||||
FeatureBMI2, | FeatureBMI2, | ||||
FeatureFMA | FeatureFMA | ||||
]>; | ]>; | ||||
// FIXME: define KNL model | // FIXME: define KNL model | ||||
class KnightsLandingProc<string Name> : ProcModel<Name, HaswellModel, | class KnightsLandingProc<string Name> : ProcModel<Name, HaswellModel, | ||||
KNLFeatures.Value, [ | KNLFeatures.Value, [ | ||||
ProcIntelKNL, | ProcIntelKNL, | ||||
FeatureSlowBTMem, | |||||
FeatureSlowTwoMemOps, | FeatureSlowTwoMemOps, | ||||
FeatureFastPartialYMMorZMMWrite | FeatureFastPartialYMMorZMMWrite | ||||
]>; | ]>; | ||||
def : KnightsLandingProc<"knl">; | def : KnightsLandingProc<"knl">; | ||||
class KnightsMillProc<string Name> : ProcModel<Name, HaswellModel, | class KnightsMillProc<string Name> : ProcModel<Name, HaswellModel, | ||||
KNLFeatures.Value, [ | KNLFeatures.Value, [ | ||||
ProcIntelKNL, | ProcIntelKNL, | ||||
FeatureSlowBTMem, | |||||
FeatureSlowTwoMemOps, | FeatureSlowTwoMemOps, | ||||
FeatureFastPartialYMMorZMMWrite | FeatureFastPartialYMMorZMMWrite | ||||
]>; | ]>; | ||||
def : KnightsMillProc<"knm">; // TODO Add AVX5124FMAPS/AVX5124VNNIW features | def : KnightsMillProc<"knm">; // TODO Add AVX5124FMAPS/AVX5124VNNIW features | ||||
def SKXFeatures : ProcessorFeatures<SKLFeatures.Value, [ | def SKXFeatures : ProcessorFeatures<SKLFeatures.Value, [ | ||||
FeatureAVX512, | FeatureAVX512, | ||||
FeatureCDI, | FeatureCDI, | ||||
FeatureDQI, | FeatureDQI, | ||||
FeatureBWI, | FeatureBWI, | ||||
FeatureVLX, | FeatureVLX, | ||||
FeaturePKU, | FeaturePKU, | ||||
FeatureCLWB | FeatureCLWB | ||||
]>; | ]>; | ||||
class SkylakeServerProc<string Name> : ProcModel<Name, SkylakeServerModel, | class SkylakeServerProc<string Name> : ProcModel<Name, SkylakeServerModel, | ||||
SKXFeatures.Value, [ | SKXFeatures.Value, [ | ||||
ProcIntelSKX | ProcIntelSKX, | ||||
FeatureSlowBTMem | |||||
]>; | ]>; | ||||
def : SkylakeServerProc<"skylake-avx512">; | def : SkylakeServerProc<"skylake-avx512">; | ||||
def : SkylakeServerProc<"skx">; // Legacy alias. | def : SkylakeServerProc<"skx">; // Legacy alias. | ||||
def CNLFeatures : ProcessorFeatures<SKXFeatures.Value, [ | def CNLFeatures : ProcessorFeatures<SKXFeatures.Value, [ | ||||
FeatureVBMI, | FeatureVBMI, | ||||
FeatureIFMA, | FeatureIFMA, | ||||
FeatureSHA | FeatureSHA | ||||
]>; | ]>; | ||||
class CannonlakeProc<string Name> : ProcModel<Name, HaswellModel, | class CannonlakeProc<string Name> : ProcModel<Name, HaswellModel, | ||||
CNLFeatures.Value, [ | CNLFeatures.Value, [ | ||||
ProcIntelCNL | ProcIntelCNL, | ||||
FeatureSlowBTMem | |||||
]>; | ]>; | ||||
def : CannonlakeProc<"cannonlake">; | def : CannonlakeProc<"cannonlake">; | ||||
// AMD CPUs. | // AMD CPUs. | ||||
def : Proc<"k6", [FeatureX87, FeatureSlowUAMem16, FeatureMMX]>; | def : Proc<"k6", [FeatureX87, FeatureSlowUAMem16, FeatureMMX]>; | ||||
def : Proc<"k6-2", [FeatureX87, FeatureSlowUAMem16, Feature3DNow]>; | def : Proc<"k6-2", [FeatureX87, FeatureSlowUAMem16, Feature3DNow]>; | ||||
def : Proc<"k6-3", [FeatureX87, FeatureSlowUAMem16, Feature3DNow]>; | def : Proc<"k6-3", [FeatureX87, FeatureSlowUAMem16, Feature3DNow]>; | ||||
▲ Show 20 Lines • Show All 324 Lines • Show Last 20 Lines |