blob: 4eb6d2320cd6899b1648d27286e99e58b0110bfd [file] [edit]
//===-- GCNProcessors.td - GCN Processor definitions ----------------------===//
//
// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
// See https://llvm.org/LICENSE.txt for license information.
// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
//
//===----------------------------------------------------------------------===//
// The code produced for "generic" is only useful for tests and cannot
// be expected to execute on any target.
def : AMDGPUProcessorModel<"generic", NoSchedModel, [], [6, 0, 0]> {
let IsPseudoTarget = true;
}
def : AMDGPUProcessorModel<"generic-hsa", NoSchedModel,
[FeatureFlatAddressSpace], [7, 0, 0]> {
let IsPseudoTarget = true;
}
//===------------------------------------------------------------===//
// GCN GFX6 (Southern Islands (SI)).
//===------------------------------------------------------------===//
def GFX600 : AMDGPUProcessorModel<"gfx600", SIFullSpeedModel,
FeatureISAVersion6_0_0.Features, [6, 0, 0]
>;
def : ProcessorAlias<"tahiti", "gfx600">;
def GFX601 : AMDGPUProcessorModel<"gfx601", SIQuarterSpeedModel,
FeatureISAVersion6_0_1.Features, [6, 0, 1]
>;
def : ProcessorAlias<"pitcairn", "gfx601">;
def : ProcessorAlias<"verde", "gfx601">;
def GFX602 : AMDGPUProcessorModel<"gfx602", SIQuarterSpeedModel,
FeatureISAVersion6_0_2.Features, [6, 0, 2]
>;
def : ProcessorAlias<"hainan", "gfx602">;
def : ProcessorAlias<"oland", "gfx602">;
//===------------------------------------------------------------===//
// GCN GFX7 (Sea Islands (CI)).
//===------------------------------------------------------------===//
def GFX700 : AMDGPUProcessorModel<"gfx700", SIQuarterSpeedModel,
FeatureISAVersion7_0_0.Features, [7, 0, 0]
>;
def : ProcessorAlias<"kaveri", "gfx700">;
def GFX701 : AMDGPUProcessorModel<"gfx701", SIFullSpeedModel,
FeatureISAVersion7_0_1.Features, [7, 0, 1]
>;
def : ProcessorAlias<"hawaii", "gfx701">;
def GFX702 : AMDGPUProcessorModel<"gfx702", SIQuarterSpeedModel,
FeatureISAVersion7_0_2.Features, [7, 0, 2]
>;
def GFX703 : AMDGPUProcessorModel<"gfx703", SIQuarterSpeedModel,
FeatureISAVersion7_0_3.Features, [7, 0, 3]
>;
def : ProcessorAlias<"kabini", "gfx703">;
def : ProcessorAlias<"mullins", "gfx703">;
def GFX704 : AMDGPUProcessorModel<"gfx704", SIQuarterSpeedModel,
FeatureISAVersion7_0_4.Features, [7, 0, 4]
>;
def : ProcessorAlias<"bonaire", "gfx704">;
def GFX705 : AMDGPUProcessorModel<"gfx705", SIQuarterSpeedModel,
FeatureISAVersion7_0_5.Features, [7, 0, 5]
>;
//===------------------------------------------------------------===//
// GCN GFX8 (Volcanic Islands (VI)).
//===------------------------------------------------------------===//
def GFX801 : AMDGPUProcessorModel<"gfx801", SIQuarterSpeedModel,
FeatureISAVersion8_0_1.Features, [8, 0, 1]
>;
def : ProcessorAlias<"carrizo", "gfx801">;
def GFX802 : AMDGPUProcessorModel<"gfx802", SIQuarterSpeedModel,
FeatureISAVersion8_0_2.Features, [8, 0, 2]
>;
def : ProcessorAlias<"iceland", "gfx802">;
def : ProcessorAlias<"tonga", "gfx802">;
def GFX803 : AMDGPUProcessorModel<"gfx803", SIQuarterSpeedModel,
FeatureISAVersion8_0_3.Features, [8, 0, 3]
>;
def : ProcessorAlias<"fiji", "gfx803">;
def : ProcessorAlias<"polaris10", "gfx803">;
def : ProcessorAlias<"polaris11", "gfx803">;
def GFX805 : AMDGPUProcessorModel<"gfx805", SIQuarterSpeedModel,
FeatureISAVersion8_0_5.Features, [8, 0, 5]
>;
def : ProcessorAlias<"tongapro", "gfx805">;
def GFX810 : AMDGPUProcessorModel<"gfx810", SIQuarterSpeedModel,
FeatureISAVersion8_1_0.Features, [8, 1, 0]
>;
def : ProcessorAlias<"stoney", "gfx810">;
//===------------------------------------------------------------===//
// GCN GFX9.
//===------------------------------------------------------------===//
def GFX900 : AMDGPUProcessorModel<"gfx900", SIQuarterSpeedModel,
FeatureISAVersion9_0_0.Features, [9, 0, 0]
>;
def GFX902 : AMDGPUProcessorModel<"gfx902", SIQuarterSpeedModel,
FeatureISAVersion9_0_2.Features, [9, 0, 2]
>;
def GFX904 : AMDGPUProcessorModel<"gfx904", SIQuarterSpeedModel,
FeatureISAVersion9_0_4.Features, [9, 0, 4]
>;
def GFX906 : AMDGPUProcessorModel<"gfx906", SIQuarterSpeedModel,
FeatureISAVersion9_0_6.Features, [9, 0, 6]
>;
def GFX908 : AMDGPUProcessorModel<"gfx908", SIQuarterSpeedModel,
FeatureISAVersion9_0_8.Features, [9, 0, 8]
>;
def GFX909 : AMDGPUProcessorModel<"gfx909", SIQuarterSpeedModel,
FeatureISAVersion9_0_9.Features, [9, 0, 9]
>;
def GFX90A : AMDGPUProcessorModel<"gfx90a", SIDPFullSpeedModel,
FeatureISAVersion9_0_A.Features, [9, 0, 0xa]
>;
def GFX90C : AMDGPUProcessorModel<"gfx90c", SIQuarterSpeedModel,
FeatureISAVersion9_0_C.Features, [9, 0, 0xc]
>;
def GFX942 : AMDGPUProcessorModel<"gfx942", SIDPGFX942FullSpeedModel,
FeatureISAVersion9_4_2.Features, [9, 4, 2]
>;
def GFX950 : AMDGPUProcessorModel<"gfx950", SIDPGFX950FullSpeedModel,
FeatureISAVersion9_5_0.Features, [9, 5, 0]
>;
def GFX9_GENERIC : AMDGPUProcessorModel<"gfx9-generic", SIQuarterSpeedModel,
FeatureISAVersion9_Generic.Features, [9, 0, 0]> {
let CoveredGPUs = [GFX900, GFX902, GFX904, GFX906, GFX909, GFX90C];
}
def GFX9_4_GENERIC : AMDGPUProcessorModel<"gfx9-4-generic", SIDPGFX942FullSpeedModel,
FeatureISAVersion9_4_Generic.Features, [9, 4, 0]> {
let CoveredGPUs = [GFX942, GFX950];
}
//===----------------------------------------------------------------------===//
// GCN GFX10.
//===----------------------------------------------------------------------===//
def GFX1010 : AMDGPUProcessorModel<"gfx1010", GFX10SpeedModel,
FeatureISAVersion10_1_0.Features, [10, 1, 0]
>;
def GFX1011 : AMDGPUProcessorModel<"gfx1011", GFX10SpeedModel,
FeatureISAVersion10_1_1.Features, [10, 1, 1]
>;
def GFX1012 : AMDGPUProcessorModel<"gfx1012", GFX10SpeedModel,
FeatureISAVersion10_1_2.Features, [10, 1, 2]
>;
def GFX1013 : AMDGPUProcessorModel<"gfx1013", GFX10SpeedModel,
FeatureISAVersion10_1_3.Features, [10, 1, 3]
>;
def GFX1030 : AMDGPUProcessorModel<"gfx1030", GFX10SpeedModel,
FeatureISAVersion10_3_0.Features, [10, 3, 0]
>;
def GFX1031 : AMDGPUProcessorModel<"gfx1031", GFX10SpeedModel,
FeatureISAVersion10_3_0.Features, [10, 3, 1]
>;
def GFX1032 : AMDGPUProcessorModel<"gfx1032", GFX10SpeedModel,
FeatureISAVersion10_3_0.Features, [10, 3, 2]
>;
def GFX1033 : AMDGPUProcessorModel<"gfx1033", GFX10SpeedModel,
FeatureISAVersion10_3_0.Features, [10, 3, 3]
>;
def GFX1034 : AMDGPUProcessorModel<"gfx1034", GFX10SpeedModel,
FeatureISAVersion10_3_0.Features, [10, 3, 4]
>;
def GFX1035 : AMDGPUProcessorModel<"gfx1035", GFX10SpeedModel,
FeatureISAVersion10_3_0.Features, [10, 3, 5]
>;
def GFX1036 : AMDGPUProcessorModel<"gfx1036", GFX10SpeedModel,
FeatureISAVersion10_3_0.Features, [10, 3, 6]
>;
def GFX10_1_GENERIC : AMDGPUProcessorModel<"gfx10-1-generic", GFX10SpeedModel,
FeatureISAVersion10_1_Generic.Features, [10, 1, 0]> {
let CoveredGPUs = [GFX1010, GFX1011, GFX1012, GFX1013];
}
def GFX10_3_GENERIC : AMDGPUProcessorModel<"gfx10-3-generic", GFX10SpeedModel,
FeatureISAVersion10_3_Generic.Features, [10, 3, 0]> {
let CoveredGPUs = [GFX1030, GFX1031, GFX1032, GFX1033, GFX1034, GFX1035, GFX1036];
}
//===----------------------------------------------------------------------===//
// GCN GFX11.
//===----------------------------------------------------------------------===//
def GFX1100 : AMDGPUProcessorModel<"gfx1100", GFX11SpeedModel,
FeatureISAVersion11_0_0.Features, [11, 0, 0]
>;
def GFX1101 : AMDGPUProcessorModel<"gfx1101", GFX11SpeedModel,
FeatureISAVersion11_0_1.Features, [11, 0, 1]
>;
def GFX1102 : AMDGPUProcessorModel<"gfx1102", GFX11SpeedModel,
FeatureISAVersion11_0_2.Features, [11, 0, 2]
>;
def GFX1103 : AMDGPUProcessorModel<"gfx1103", GFX11SpeedModel,
FeatureISAVersion11_0_3.Features, [11, 0, 3]
>;
def GFX1150 : AMDGPUProcessorModel<"gfx1150", GFX11SpeedModel,
FeatureISAVersion11_5_0.Features, [11, 5, 0]
>;
def GFX1151 : AMDGPUProcessorModel<"gfx1151", GFX11SpeedModel,
FeatureISAVersion11_5_1.Features, [11, 5, 1]
>;
def GFX1152 : AMDGPUProcessorModel<"gfx1152", GFX11SpeedModel,
FeatureISAVersion11_5_2.Features, [11, 5, 2]
>;
def GFX1153 : AMDGPUProcessorModel<"gfx1153", GFX11SpeedModel,
FeatureISAVersion11_5_Common.Features, [11, 5, 3]
>;
def GFX1154 : AMDGPUProcessorModel<"gfx1154", GFX11SpeedModel,
FeatureISAVersion11_5_Common.Features, [11, 5, 4]
>;
def GFX1170 : AMDGPUProcessorModel<"gfx1170", GFX11SpeedModel,
FeatureISAVersion11_7_Common.Features, [11, 7, 0]
>;
def GFX1171 : AMDGPUProcessorModel<"gfx1171", GFX11SpeedModel,
FeatureISAVersion11_7_Common.Features, [11, 7, 1]
>;
def GFX1172 : AMDGPUProcessorModel<"gfx1172", GFX11SpeedModel,
FeatureISAVersion11_7_Common.Features, [11, 7, 2]
>;
def GFX11_GENERIC : AMDGPUProcessorModel<"gfx11-generic", GFX11SpeedModel,
FeatureISAVersion11_Generic.Features, [11, 0, 3]> {
let CoveredGPUs = [GFX1100, GFX1101, GFX1102, GFX1103, GFX1150, GFX1151, GFX1152, GFX1153,
GFX1154];
}
def GFX11_7_GENERIC : AMDGPUProcessorModel<"gfx11-7-generic", GFX11SpeedModel,
FeatureISAVersion11_7_Generic.Features, [11, 7, 0]> {
let CoveredGPUs = [GFX1170, GFX1171, GFX1172];
}
//===----------------------------------------------------------------------===//
// GCN GFX12.
//===----------------------------------------------------------------------===//
def GFX1200 : AMDGPUProcessorModel<"gfx1200", GFX12SpeedModel,
FeatureISAVersion12.Features, [12, 0, 0]
>;
def GFX1201 : AMDGPUProcessorModel<"gfx1201", GFX12SpeedModel,
FeatureISAVersion12.Features, [12, 0, 1]
>;
def GFX12_GENERIC : AMDGPUProcessorModel<"gfx12-generic", GFX12SpeedModel,
FeatureISAVersion12_Generic.Features, [12, 0, 0]> {
let CoveredGPUs = [GFX1200, GFX1201];
}
def GFX1250_STRICT : AMDGPUProcessorModel<"gfx1250-strict", GFX1250SpeedModel,
FeatureISAVersion12_50_STRICT.Features, [12, 5, 0]> {
let SubArchSpelling = "12.50s";
}
def GFX1250 : AMDGPUProcessorModel<"gfx1250", GFX1250SpeedModel,
FeatureISAVersion12_50.Features, [12, 5, 0]
>;
def GFX1251 : AMDGPUProcessorModel<"gfx1251", GFX1251SpeedModel,
FeatureISAVersion12_51.Features, [12, 5, 1]
>;
def GFX12_5_GENERIC : AMDGPUProcessorModel<"gfx12-5-generic", GFX125xGenericSpeedModel,
FeatureISAVersion12_5_Generic.Features, [12, 5, 0]> {
let CoveredGPUs = [GFX1250, GFX1251];
}
//===----------------------------------------------------------------------===//
// GCN GFX13.
//===----------------------------------------------------------------------===//
def GFX1310 : AMDGPUProcessorModel<"gfx1310", GFX12SpeedModel,
FeatureISAVersion13.Features, [13, 1, 0]
>;
def GFX13_GENERIC : AMDGPUProcessorModel<"gfx13-generic", GFX12SpeedModel,
FeatureISAVersion13_Generic.Features, [13, 1, 0]> {
let CoveredGPUs = [GFX1310];
}
// The gfx6/gfx7/gfx8 families have no "gfxN-generic" target, so their major
// subarch (AMDGPUSubArch6/7/8) is declared here for getMajorSubArch.
def : AMDGPUFamily<"6", [GFX600, GFX601, GFX602]>;
def : AMDGPUFamily<"7", [GFX700, GFX701, GFX702, GFX703, GFX704, GFX705]>;
def : AMDGPUFamily<"8", [GFX801, GFX802, GFX803, GFX805]>;