1//===-- Processors.td - R600 Processor definitions ------------------------===//
2//
3//                     The LLVM Compiler Infrastructure
4//
5// This file is distributed under the University of Illinois Open Source
6// License. See LICENSE.TXT for details.
7//
8//===----------------------------------------------------------------------===//
9
10class Proc<string Name, ProcessorItineraries itin, list<SubtargetFeature> Features>
11: Processor<Name, itin, Features>;
12
13//===----------------------------------------------------------------------===//
14// R600
15//===----------------------------------------------------------------------===//
16def : Proc<"",           R600_VLIW5_Itin,
17    [FeatureR600, FeatureVertexCache]>;
18
19def : Proc<"r600",       R600_VLIW5_Itin,
20    [FeatureR600 , FeatureVertexCache, FeatureWavefrontSize64]>;
21
22def : Proc<"r630",       R600_VLIW5_Itin,
23    [FeatureR600, FeatureVertexCache, FeatureWavefrontSize32]>;
24
25def : Proc<"rs880",      R600_VLIW5_Itin,
26    [FeatureR600, FeatureWavefrontSize16]>;
27
28def : Proc<"rv670",      R600_VLIW5_Itin,
29    [FeatureR600, FeatureFP64, FeatureVertexCache, FeatureWavefrontSize64]>;
30
31//===----------------------------------------------------------------------===//
32// R700
33//===----------------------------------------------------------------------===//
34
35def : Proc<"rv710",      R600_VLIW5_Itin,
36    [FeatureR700, FeatureVertexCache, FeatureWavefrontSize32]>;
37
38def : Proc<"rv730",      R600_VLIW5_Itin,
39    [FeatureR700, FeatureVertexCache, FeatureWavefrontSize32]>;
40
41def : Proc<"rv770",      R600_VLIW5_Itin,
42    [FeatureR700, FeatureFP64, FeatureVertexCache, FeatureWavefrontSize64]>;
43
44//===----------------------------------------------------------------------===//
45// Evergreen
46//===----------------------------------------------------------------------===//
47
48def : Proc<"cedar",      R600_VLIW5_Itin,
49    [FeatureEvergreen, FeatureVertexCache, FeatureWavefrontSize32,
50     FeatureCFALUBug]>;
51
52def : Proc<"redwood",    R600_VLIW5_Itin,
53    [FeatureEvergreen, FeatureVertexCache, FeatureWavefrontSize64,
54     FeatureCFALUBug]>;
55
56def : Proc<"sumo",       R600_VLIW5_Itin,
57    [FeatureEvergreen, FeatureWavefrontSize64, FeatureCFALUBug]>;
58
59def : Proc<"juniper",    R600_VLIW5_Itin,
60    [FeatureEvergreen, FeatureVertexCache, FeatureWavefrontSize64]>;
61
62def : Proc<"cypress",    R600_VLIW5_Itin,
63    [FeatureEvergreen, FeatureFP64, FeatureVertexCache,
64     FeatureWavefrontSize64]>;
65
66//===----------------------------------------------------------------------===//
67// Northern Islands
68//===----------------------------------------------------------------------===//
69
70def : Proc<"barts",      R600_VLIW5_Itin,
71    [FeatureNorthernIslands, FeatureVertexCache, FeatureCFALUBug]>;
72
73def : Proc<"turks",      R600_VLIW5_Itin,
74    [FeatureNorthernIslands, FeatureVertexCache, FeatureCFALUBug]>;
75
76def : Proc<"caicos",     R600_VLIW5_Itin,
77    [FeatureNorthernIslands, FeatureCFALUBug]>;
78
79def : Proc<"cayman",     R600_VLIW4_Itin,
80    [FeatureNorthernIslands, FeatureFP64, FeatureCaymanISA]>;
81
82//===----------------------------------------------------------------------===//
83// Southern Islands
84//===----------------------------------------------------------------------===//
85
86def : ProcessorModel<"SI", SIFullSpeedModel,
87  [FeatureSouthernIslands, FeatureFastFMAF32]
88>;
89
90def : ProcessorModel<"tahiti",   SIFullSpeedModel,
91  [FeatureSouthernIslands, FeatureFastFMAF32]
92>;
93
94def : ProcessorModel<"pitcairn", SIQuarterSpeedModel, [FeatureSouthernIslands]>;
95
96def : ProcessorModel<"verde",    SIQuarterSpeedModel, [FeatureSouthernIslands]>;
97
98def : ProcessorModel<"oland",    SIQuarterSpeedModel, [FeatureSouthernIslands]>;
99
100def : ProcessorModel<"hainan",   SIQuarterSpeedModel, [FeatureSouthernIslands]>;
101
102//===----------------------------------------------------------------------===//
103// Sea Islands
104//===----------------------------------------------------------------------===//
105
106def : ProcessorModel<"bonaire",    SIQuarterSpeedModel,
107  [FeatureSeaIslands, FeatureLDSBankCount32, FeatureISAVersion7_0_0]
108>;
109
110def : ProcessorModel<"kabini",     SIQuarterSpeedModel,
111  [FeatureSeaIslands, FeatureLDSBankCount16]
112>;
113
114def : ProcessorModel<"kaveri",     SIQuarterSpeedModel,
115  [FeatureSeaIslands, FeatureLDSBankCount32, FeatureISAVersion7_0_0]
116>;
117
118def : ProcessorModel<"hawaii", SIFullSpeedModel,
119  [FeatureSeaIslands, FeatureFastFMAF32, FeatureLDSBankCount32,
120   FeatureISAVersion7_0_1]
121>;
122
123def : ProcessorModel<"mullins",    SIQuarterSpeedModel,
124  [FeatureSeaIslands, FeatureLDSBankCount16]>;
125
126//===----------------------------------------------------------------------===//
127// Volcanic Islands
128//===----------------------------------------------------------------------===//
129
130def : ProcessorModel<"tonga",   SIQuarterSpeedModel,
131  [FeatureVolcanicIslands, FeatureSGPRInitBug, FeatureISAVersion8_0_0]
132>;
133
134def : ProcessorModel<"iceland", SIQuarterSpeedModel,
135  [FeatureVolcanicIslands, FeatureSGPRInitBug, FeatureISAVersion8_0_0]
136>;
137
138def : ProcessorModel<"carrizo", SIQuarterSpeedModel,
139  [FeatureVolcanicIslands, FeatureISAVersion8_0_1]
140>;
141
142def : ProcessorModel<"fiji", SIQuarterSpeedModel,
143  [FeatureVolcanicIslands, FeatureISAVersion8_0_1]
144>;
145
146def : ProcessorModel<"stoney", SIQuarterSpeedModel,
147  [FeatureVolcanicIslands, FeatureISAVersion8_0_1]
148>;
149