xref: /freebsd-src/contrib/llvm-project/llvm/lib/Target/AMDGPU/GCNProcessors.td (revision 0fca6ea1d4eea4c934cfff25ac9ee8ad6fe95583)
10b57cec5SDimitry Andric//===-- GCNProcessors.td - GCN Processor definitions ----------------------===//
20b57cec5SDimitry Andric//
30b57cec5SDimitry Andric// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
40b57cec5SDimitry Andric// See https://llvm.org/LICENSE.txt for license information.
50b57cec5SDimitry Andric// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
60b57cec5SDimitry Andric//
70b57cec5SDimitry Andric//===----------------------------------------------------------------------===//
80b57cec5SDimitry Andric
90b57cec5SDimitry Andric// The code produced for "generic" is only useful for tests and cannot
100b57cec5SDimitry Andric// reasonably be expected to execute on any particular target.
110b57cec5SDimitry Andricdef : ProcessorModel<"generic", NoSchedModel,
125f757f3fSDimitry Andric  [FeatureWavefrontSize64, FeatureGDS, FeatureGWS]
130b57cec5SDimitry Andric>;
140b57cec5SDimitry Andric
150b57cec5SDimitry Andricdef : ProcessorModel<"generic-hsa", NoSchedModel,
165f757f3fSDimitry Andric  [FeatureWavefrontSize64, FeatureGDS, FeatureGWS, FeatureFlatAddressSpace]
170b57cec5SDimitry Andric>;
180b57cec5SDimitry Andric
190b57cec5SDimitry Andric//===------------------------------------------------------------===//
200b57cec5SDimitry Andric// GCN GFX6 (Southern Islands (SI)).
210b57cec5SDimitry Andric//===------------------------------------------------------------===//
220b57cec5SDimitry Andric
230b57cec5SDimitry Andricdef : ProcessorModel<"gfx600", SIFullSpeedModel,
240b57cec5SDimitry Andric  FeatureISAVersion6_0_0.Features
250b57cec5SDimitry Andric>;
260b57cec5SDimitry Andric
270b57cec5SDimitry Andricdef : ProcessorModel<"tahiti", SIFullSpeedModel,
280b57cec5SDimitry Andric  FeatureISAVersion6_0_0.Features
290b57cec5SDimitry Andric>;
300b57cec5SDimitry Andric
310b57cec5SDimitry Andricdef : ProcessorModel<"gfx601", SIQuarterSpeedModel,
320b57cec5SDimitry Andric  FeatureISAVersion6_0_1.Features
330b57cec5SDimitry Andric>;
340b57cec5SDimitry Andric
350b57cec5SDimitry Andricdef : ProcessorModel<"pitcairn", SIQuarterSpeedModel,
360b57cec5SDimitry Andric  FeatureISAVersion6_0_1.Features
370b57cec5SDimitry Andric>;
380b57cec5SDimitry Andric
390b57cec5SDimitry Andricdef : ProcessorModel<"verde", SIQuarterSpeedModel,
400b57cec5SDimitry Andric  FeatureISAVersion6_0_1.Features
410b57cec5SDimitry Andric>;
420b57cec5SDimitry Andric
43e8d8bef9SDimitry Andricdef : ProcessorModel<"gfx602", SIQuarterSpeedModel,
44e8d8bef9SDimitry Andric  FeatureISAVersion6_0_2.Features
45e8d8bef9SDimitry Andric>;
46e8d8bef9SDimitry Andric
47e8d8bef9SDimitry Andricdef : ProcessorModel<"hainan", SIQuarterSpeedModel,
48e8d8bef9SDimitry Andric  FeatureISAVersion6_0_2.Features
49e8d8bef9SDimitry Andric>;
50e8d8bef9SDimitry Andric
51e8d8bef9SDimitry Andricdef : ProcessorModel<"oland", SIQuarterSpeedModel,
52e8d8bef9SDimitry Andric  FeatureISAVersion6_0_2.Features
53e8d8bef9SDimitry Andric>;
54e8d8bef9SDimitry Andric
550b57cec5SDimitry Andric//===------------------------------------------------------------===//
560b57cec5SDimitry Andric// GCN GFX7 (Sea Islands (CI)).
570b57cec5SDimitry Andric//===------------------------------------------------------------===//
580b57cec5SDimitry Andric
590b57cec5SDimitry Andricdef : ProcessorModel<"gfx700", SIQuarterSpeedModel,
600b57cec5SDimitry Andric  FeatureISAVersion7_0_0.Features
610b57cec5SDimitry Andric>;
620b57cec5SDimitry Andric
630b57cec5SDimitry Andricdef : ProcessorModel<"kaveri", SIQuarterSpeedModel,
640b57cec5SDimitry Andric  FeatureISAVersion7_0_0.Features
650b57cec5SDimitry Andric>;
660b57cec5SDimitry Andric
670b57cec5SDimitry Andricdef : ProcessorModel<"gfx701", SIFullSpeedModel,
680b57cec5SDimitry Andric  FeatureISAVersion7_0_1.Features
690b57cec5SDimitry Andric>;
700b57cec5SDimitry Andric
710b57cec5SDimitry Andricdef : ProcessorModel<"hawaii", SIFullSpeedModel,
720b57cec5SDimitry Andric  FeatureISAVersion7_0_1.Features
730b57cec5SDimitry Andric>;
740b57cec5SDimitry Andric
750b57cec5SDimitry Andricdef : ProcessorModel<"gfx702", SIQuarterSpeedModel,
760b57cec5SDimitry Andric  FeatureISAVersion7_0_2.Features
770b57cec5SDimitry Andric>;
780b57cec5SDimitry Andric
790b57cec5SDimitry Andricdef : ProcessorModel<"gfx703", SIQuarterSpeedModel,
800b57cec5SDimitry Andric  FeatureISAVersion7_0_3.Features
810b57cec5SDimitry Andric>;
820b57cec5SDimitry Andric
830b57cec5SDimitry Andricdef : ProcessorModel<"kabini", SIQuarterSpeedModel,
840b57cec5SDimitry Andric  FeatureISAVersion7_0_3.Features
850b57cec5SDimitry Andric>;
860b57cec5SDimitry Andric
870b57cec5SDimitry Andricdef : ProcessorModel<"mullins", SIQuarterSpeedModel,
880b57cec5SDimitry Andric  FeatureISAVersion7_0_3.Features
890b57cec5SDimitry Andric>;
900b57cec5SDimitry Andric
910b57cec5SDimitry Andricdef : ProcessorModel<"gfx704", SIQuarterSpeedModel,
920b57cec5SDimitry Andric  FeatureISAVersion7_0_4.Features
930b57cec5SDimitry Andric>;
940b57cec5SDimitry Andric
950b57cec5SDimitry Andricdef : ProcessorModel<"bonaire", SIQuarterSpeedModel,
960b57cec5SDimitry Andric  FeatureISAVersion7_0_4.Features
970b57cec5SDimitry Andric>;
980b57cec5SDimitry Andric
99e8d8bef9SDimitry Andricdef : ProcessorModel<"gfx705", SIQuarterSpeedModel,
100e8d8bef9SDimitry Andric  FeatureISAVersion7_0_5.Features
101e8d8bef9SDimitry Andric>;
102e8d8bef9SDimitry Andric
1030b57cec5SDimitry Andric//===------------------------------------------------------------===//
1040b57cec5SDimitry Andric// GCN GFX8 (Volcanic Islands (VI)).
1050b57cec5SDimitry Andric//===------------------------------------------------------------===//
1060b57cec5SDimitry Andric
1070b57cec5SDimitry Andricdef : ProcessorModel<"gfx801", SIQuarterSpeedModel,
1080b57cec5SDimitry Andric  FeatureISAVersion8_0_1.Features
1090b57cec5SDimitry Andric>;
1100b57cec5SDimitry Andric
1110b57cec5SDimitry Andricdef : ProcessorModel<"carrizo", SIQuarterSpeedModel,
1120b57cec5SDimitry Andric  FeatureISAVersion8_0_1.Features
1130b57cec5SDimitry Andric>;
1140b57cec5SDimitry Andric
1150b57cec5SDimitry Andricdef : ProcessorModel<"gfx802", SIQuarterSpeedModel,
1160b57cec5SDimitry Andric  FeatureISAVersion8_0_2.Features
1170b57cec5SDimitry Andric>;
1180b57cec5SDimitry Andric
1190b57cec5SDimitry Andricdef : ProcessorModel<"iceland", SIQuarterSpeedModel,
1200b57cec5SDimitry Andric  FeatureISAVersion8_0_2.Features
1210b57cec5SDimitry Andric>;
1220b57cec5SDimitry Andric
1230b57cec5SDimitry Andricdef : ProcessorModel<"tonga", SIQuarterSpeedModel,
1240b57cec5SDimitry Andric  FeatureISAVersion8_0_2.Features
1250b57cec5SDimitry Andric>;
1260b57cec5SDimitry Andric
1270b57cec5SDimitry Andricdef : ProcessorModel<"gfx803", SIQuarterSpeedModel,
1280b57cec5SDimitry Andric  FeatureISAVersion8_0_3.Features
1290b57cec5SDimitry Andric>;
1300b57cec5SDimitry Andric
1310b57cec5SDimitry Andricdef : ProcessorModel<"fiji", SIQuarterSpeedModel,
1320b57cec5SDimitry Andric  FeatureISAVersion8_0_3.Features
1330b57cec5SDimitry Andric>;
1340b57cec5SDimitry Andric
1350b57cec5SDimitry Andricdef : ProcessorModel<"polaris10", SIQuarterSpeedModel,
1360b57cec5SDimitry Andric  FeatureISAVersion8_0_3.Features
1370b57cec5SDimitry Andric>;
1380b57cec5SDimitry Andric
1390b57cec5SDimitry Andricdef : ProcessorModel<"polaris11", SIQuarterSpeedModel,
1400b57cec5SDimitry Andric  FeatureISAVersion8_0_3.Features
1410b57cec5SDimitry Andric>;
1420b57cec5SDimitry Andric
143e8d8bef9SDimitry Andricdef : ProcessorModel<"gfx805", SIQuarterSpeedModel,
144e8d8bef9SDimitry Andric  FeatureISAVersion8_0_5.Features
145e8d8bef9SDimitry Andric>;
146e8d8bef9SDimitry Andric
147e8d8bef9SDimitry Andricdef : ProcessorModel<"tongapro", SIQuarterSpeedModel,
148e8d8bef9SDimitry Andric  FeatureISAVersion8_0_5.Features
149e8d8bef9SDimitry Andric>;
150e8d8bef9SDimitry Andric
1510b57cec5SDimitry Andricdef : ProcessorModel<"gfx810", SIQuarterSpeedModel,
1520b57cec5SDimitry Andric  FeatureISAVersion8_1_0.Features
1530b57cec5SDimitry Andric>;
1540b57cec5SDimitry Andric
1550b57cec5SDimitry Andricdef : ProcessorModel<"stoney", SIQuarterSpeedModel,
1560b57cec5SDimitry Andric  FeatureISAVersion8_1_0.Features
1570b57cec5SDimitry Andric>;
1580b57cec5SDimitry Andric
1590b57cec5SDimitry Andric//===------------------------------------------------------------===//
1600b57cec5SDimitry Andric// GCN GFX9.
1610b57cec5SDimitry Andric//===------------------------------------------------------------===//
1620b57cec5SDimitry Andric
1630b57cec5SDimitry Andricdef : ProcessorModel<"gfx900", SIQuarterSpeedModel,
1640b57cec5SDimitry Andric  FeatureISAVersion9_0_0.Features
1650b57cec5SDimitry Andric>;
1660b57cec5SDimitry Andric
1670b57cec5SDimitry Andricdef : ProcessorModel<"gfx902", SIQuarterSpeedModel,
1680b57cec5SDimitry Andric  FeatureISAVersion9_0_2.Features
1690b57cec5SDimitry Andric>;
1700b57cec5SDimitry Andric
1710b57cec5SDimitry Andricdef : ProcessorModel<"gfx904", SIQuarterSpeedModel,
1720b57cec5SDimitry Andric  FeatureISAVersion9_0_4.Features
1730b57cec5SDimitry Andric>;
1740b57cec5SDimitry Andric
1750b57cec5SDimitry Andricdef : ProcessorModel<"gfx906", SIQuarterSpeedModel,
1760b57cec5SDimitry Andric  FeatureISAVersion9_0_6.Features
1770b57cec5SDimitry Andric>;
1780b57cec5SDimitry Andric
1790b57cec5SDimitry Andricdef : ProcessorModel<"gfx908", SIQuarterSpeedModel,
1800b57cec5SDimitry Andric  FeatureISAVersion9_0_8.Features
1810b57cec5SDimitry Andric>;
1820b57cec5SDimitry Andric
1830b57cec5SDimitry Andricdef : ProcessorModel<"gfx909", SIQuarterSpeedModel,
1840b57cec5SDimitry Andric  FeatureISAVersion9_0_9.Features
1850b57cec5SDimitry Andric>;
1860b57cec5SDimitry Andric
187fe6060f1SDimitry Andricdef : ProcessorModel<"gfx90a", SIDPFullSpeedModel,
188fe6060f1SDimitry Andric  FeatureISAVersion9_0_A.Features
189fe6060f1SDimitry Andric>;
190fe6060f1SDimitry Andric
191e8d8bef9SDimitry Andricdef : ProcessorModel<"gfx90c", SIQuarterSpeedModel,
192e8d8bef9SDimitry Andric  FeatureISAVersion9_0_C.Features
193e8d8bef9SDimitry Andric>;
194e8d8bef9SDimitry Andric
19581ad6265SDimitry Andricdef : ProcessorModel<"gfx940", SIDPGFX940FullSpeedModel,
19681ad6265SDimitry Andric  FeatureISAVersion9_4_0.Features
19781ad6265SDimitry Andric>;
19881ad6265SDimitry Andric
19906c3fb27SDimitry Andricdef : ProcessorModel<"gfx941", SIDPGFX940FullSpeedModel,
20006c3fb27SDimitry Andric  FeatureISAVersion9_4_1.Features
20106c3fb27SDimitry Andric>;
20206c3fb27SDimitry Andric
20306c3fb27SDimitry Andricdef : ProcessorModel<"gfx942", SIDPGFX940FullSpeedModel,
20406c3fb27SDimitry Andric  FeatureISAVersion9_4_2.Features
20506c3fb27SDimitry Andric>;
20606c3fb27SDimitry Andric
207*0fca6ea1SDimitry Andric// [gfx900, gfx902, gfx904, gfx906, gfx909, gfx90c]
208*0fca6ea1SDimitry Andricdef : ProcessorModel<"gfx9-generic", SIQuarterSpeedModel,
209*0fca6ea1SDimitry Andric  FeatureISAVersion9_Generic.Features
210*0fca6ea1SDimitry Andric>;
211*0fca6ea1SDimitry Andric
2120b57cec5SDimitry Andric//===----------------------------------------------------------------------===//
2130b57cec5SDimitry Andric// GCN GFX10.
2140b57cec5SDimitry Andric//===----------------------------------------------------------------------===//
2150b57cec5SDimitry Andric
2160b57cec5SDimitry Andricdef : ProcessorModel<"gfx1010", GFX10SpeedModel,
2170b57cec5SDimitry Andric  FeatureISAVersion10_1_0.Features
2180b57cec5SDimitry Andric>;
2190b57cec5SDimitry Andric
2200b57cec5SDimitry Andricdef : ProcessorModel<"gfx1011", GFX10SpeedModel,
2210b57cec5SDimitry Andric  FeatureISAVersion10_1_1.Features
2220b57cec5SDimitry Andric>;
2230b57cec5SDimitry Andric
2240b57cec5SDimitry Andricdef : ProcessorModel<"gfx1012", GFX10SpeedModel,
2250b57cec5SDimitry Andric  FeatureISAVersion10_1_2.Features
2260b57cec5SDimitry Andric>;
2275ffd83dbSDimitry Andric
228fe6060f1SDimitry Andricdef : ProcessorModel<"gfx1013", GFX10SpeedModel,
229fe6060f1SDimitry Andric  FeatureISAVersion10_1_3.Features
230fe6060f1SDimitry Andric>;
231fe6060f1SDimitry Andric
2325ffd83dbSDimitry Andricdef : ProcessorModel<"gfx1030", GFX10SpeedModel,
2335ffd83dbSDimitry Andric  FeatureISAVersion10_3_0.Features
2345ffd83dbSDimitry Andric>;
235e8d8bef9SDimitry Andric
236e8d8bef9SDimitry Andricdef : ProcessorModel<"gfx1031", GFX10SpeedModel,
237e8d8bef9SDimitry Andric  FeatureISAVersion10_3_0.Features
238e8d8bef9SDimitry Andric>;
239e8d8bef9SDimitry Andric
240e8d8bef9SDimitry Andricdef : ProcessorModel<"gfx1032", GFX10SpeedModel,
241e8d8bef9SDimitry Andric  FeatureISAVersion10_3_0.Features
242e8d8bef9SDimitry Andric>;
243e8d8bef9SDimitry Andric
244e8d8bef9SDimitry Andricdef : ProcessorModel<"gfx1033", GFX10SpeedModel,
245e8d8bef9SDimitry Andric  FeatureISAVersion10_3_0.Features
246e8d8bef9SDimitry Andric>;
247fe6060f1SDimitry Andric
248fe6060f1SDimitry Andricdef : ProcessorModel<"gfx1034", GFX10SpeedModel,
249fe6060f1SDimitry Andric  FeatureISAVersion10_3_0.Features
250fe6060f1SDimitry Andric>;
251fe6060f1SDimitry Andric
252fe6060f1SDimitry Andricdef : ProcessorModel<"gfx1035", GFX10SpeedModel,
253fe6060f1SDimitry Andric  FeatureISAVersion10_3_0.Features
254fe6060f1SDimitry Andric>;
25581ad6265SDimitry Andric
25681ad6265SDimitry Andricdef : ProcessorModel<"gfx1036", GFX10SpeedModel,
25781ad6265SDimitry Andric  FeatureISAVersion10_3_0.Features
25881ad6265SDimitry Andric>;
25981ad6265SDimitry Andric
260*0fca6ea1SDimitry Andric// [gfx1010, gfx1011, gfx1012, gfx1013]
261*0fca6ea1SDimitry Andricdef : ProcessorModel<"gfx10-1-generic", GFX10SpeedModel,
262*0fca6ea1SDimitry Andric  FeatureISAVersion10_1_Generic.Features
263*0fca6ea1SDimitry Andric>;
264*0fca6ea1SDimitry Andric
265*0fca6ea1SDimitry Andric// [gfx1030, gfx1031, gfx1032, gfx1033, gfx1034, gfx1035, gfx1036]
266*0fca6ea1SDimitry Andricdef : ProcessorModel<"gfx10-3-generic", GFX10SpeedModel,
267*0fca6ea1SDimitry Andric  FeatureISAVersion10_3_Generic.Features
268*0fca6ea1SDimitry Andric>;
269*0fca6ea1SDimitry Andric
27081ad6265SDimitry Andric//===----------------------------------------------------------------------===//
27181ad6265SDimitry Andric// GCN GFX11.
27281ad6265SDimitry Andric//===----------------------------------------------------------------------===//
27381ad6265SDimitry Andric
27481ad6265SDimitry Andricdef : ProcessorModel<"gfx1100", GFX11SpeedModel,
275fcaf7f86SDimitry Andric  FeatureISAVersion11_0_0.Features
27681ad6265SDimitry Andric>;
27781ad6265SDimitry Andric
27881ad6265SDimitry Andricdef : ProcessorModel<"gfx1101", GFX11SpeedModel,
279fcaf7f86SDimitry Andric  FeatureISAVersion11_0_1.Features
28081ad6265SDimitry Andric>;
28181ad6265SDimitry Andric
28281ad6265SDimitry Andricdef : ProcessorModel<"gfx1102", GFX11SpeedModel,
28381ad6265SDimitry Andric  FeatureISAVersion11_0_2.Features
28481ad6265SDimitry Andric>;
28581ad6265SDimitry Andric
28681ad6265SDimitry Andricdef : ProcessorModel<"gfx1103", GFX11SpeedModel,
287bdd1243dSDimitry Andric  FeatureISAVersion11_0_3.Features
28881ad6265SDimitry Andric>;
28906c3fb27SDimitry Andric
29006c3fb27SDimitry Andricdef : ProcessorModel<"gfx1150", GFX11SpeedModel,
29106c3fb27SDimitry Andric  FeatureISAVersion11_5_0.Features
29206c3fb27SDimitry Andric>;
29306c3fb27SDimitry Andric
29406c3fb27SDimitry Andricdef : ProcessorModel<"gfx1151", GFX11SpeedModel,
29506c3fb27SDimitry Andric  FeatureISAVersion11_5_1.Features
29606c3fb27SDimitry Andric>;
2975f757f3fSDimitry Andric
298*0fca6ea1SDimitry Andricdef : ProcessorModel<"gfx1152", GFX11SpeedModel,
299*0fca6ea1SDimitry Andric  FeatureISAVersion11_5_2.Features
300*0fca6ea1SDimitry Andric>;
301*0fca6ea1SDimitry Andric
302*0fca6ea1SDimitry Andric// [gfx1100, gfx1101, gfx1102, gfx1103, gfx1150, gfx1151, gfx1152]
303*0fca6ea1SDimitry Andricdef : ProcessorModel<"gfx11-generic", GFX11SpeedModel,
304*0fca6ea1SDimitry Andric  FeatureISAVersion11_Generic.Features
305*0fca6ea1SDimitry Andric>;
306*0fca6ea1SDimitry Andric
3075f757f3fSDimitry Andric//===----------------------------------------------------------------------===//
3085f757f3fSDimitry Andric// GCN GFX12.
3095f757f3fSDimitry Andric//===----------------------------------------------------------------------===//
3105f757f3fSDimitry Andric
3115f757f3fSDimitry Andricdef : ProcessorModel<"gfx1200", GFX12SpeedModel,
3125f757f3fSDimitry Andric  FeatureISAVersion12.Features
3135f757f3fSDimitry Andric>;
3145f757f3fSDimitry Andric
3155f757f3fSDimitry Andricdef : ProcessorModel<"gfx1201", GFX12SpeedModel,
3165f757f3fSDimitry Andric  FeatureISAVersion12.Features
3175f757f3fSDimitry Andric>;
318*0fca6ea1SDimitry Andric
319*0fca6ea1SDimitry Andric// [gfx1200, gfx1201]
320*0fca6ea1SDimitry Andricdef : ProcessorModel<"gfx12-generic", GFX12SpeedModel,
321*0fca6ea1SDimitry Andric  FeatureISAVersion12_Generic.Features
322*0fca6ea1SDimitry Andric>;
323