• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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",       R600_VLIW5_Itin,
17    [FeatureR600, FeatureVertexCache, FeatureWavefrontSize64]>;
18
19def : Proc<"r630",       R600_VLIW5_Itin,
20    [FeatureR600, FeatureVertexCache, FeatureWavefrontSize32]>;
21
22def : Proc<"rs880",      R600_VLIW5_Itin,
23    [FeatureR600, FeatureWavefrontSize16]>;
24
25def : Proc<"rv670",      R600_VLIW5_Itin,
26    [FeatureR600, FeatureFP64, FeatureVertexCache, FeatureWavefrontSize64]>;
27
28//===----------------------------------------------------------------------===//
29// R700
30//===----------------------------------------------------------------------===//
31
32def : Proc<"rv710",      R600_VLIW5_Itin,
33    [FeatureR700, FeatureVertexCache, FeatureWavefrontSize32]>;
34
35def : Proc<"rv730",      R600_VLIW5_Itin,
36    [FeatureR700, FeatureVertexCache, FeatureWavefrontSize32]>;
37
38def : Proc<"rv770",      R600_VLIW5_Itin,
39    [FeatureR700, FeatureFP64, FeatureVertexCache, FeatureWavefrontSize64]>;
40
41//===----------------------------------------------------------------------===//
42// Evergreen
43//===----------------------------------------------------------------------===//
44
45def : Proc<"cedar",      R600_VLIW5_Itin,
46    [FeatureEvergreen, FeatureVertexCache, FeatureWavefrontSize32,
47     FeatureCFALUBug]>;
48
49def : Proc<"redwood",    R600_VLIW5_Itin,
50    [FeatureEvergreen, FeatureVertexCache, FeatureWavefrontSize64,
51     FeatureCFALUBug]>;
52
53def : Proc<"sumo",       R600_VLIW5_Itin,
54    [FeatureEvergreen, FeatureWavefrontSize64, FeatureCFALUBug]>;
55
56def : Proc<"juniper",    R600_VLIW5_Itin,
57    [FeatureEvergreen, FeatureVertexCache, FeatureWavefrontSize64]>;
58
59def : Proc<"cypress",    R600_VLIW5_Itin,
60    [FeatureEvergreen, FeatureFP64, FeatureVertexCache,
61     FeatureWavefrontSize64]>;
62
63//===----------------------------------------------------------------------===//
64// Northern Islands
65//===----------------------------------------------------------------------===//
66
67def : Proc<"barts",      R600_VLIW5_Itin,
68    [FeatureNorthernIslands, FeatureVertexCache, FeatureCFALUBug]>;
69
70def : Proc<"turks",      R600_VLIW5_Itin,
71    [FeatureNorthernIslands, FeatureVertexCache, FeatureCFALUBug]>;
72
73def : Proc<"caicos",     R600_VLIW5_Itin,
74    [FeatureNorthernIslands, FeatureCFALUBug]>;
75
76def : Proc<"cayman",     R600_VLIW4_Itin,
77    [FeatureNorthernIslands, FeatureFP64, FeatureCaymanISA]>;
78
79//===----------------------------------------------------------------------===//
80// Southern Islands
81//===----------------------------------------------------------------------===//
82
83def : ProcessorModel<"SI", SIFullSpeedModel,
84  [FeatureSouthernIslands, FeatureFastFMAF32, HalfRate64Ops]
85>;
86
87def : ProcessorModel<"tahiti", SIFullSpeedModel,
88  [FeatureSouthernIslands, FeatureFastFMAF32, HalfRate64Ops]
89>;
90
91def : ProcessorModel<"pitcairn", SIQuarterSpeedModel, [FeatureSouthernIslands]>;
92
93def : ProcessorModel<"verde",    SIQuarterSpeedModel, [FeatureSouthernIslands]>;
94
95def : ProcessorModel<"oland",    SIQuarterSpeedModel, [FeatureSouthernIslands]>;
96
97def : ProcessorModel<"hainan",   SIQuarterSpeedModel, [FeatureSouthernIslands]>;
98
99//===----------------------------------------------------------------------===//
100// Sea Islands
101//===----------------------------------------------------------------------===//
102
103def : ProcessorModel<"bonaire",    SIQuarterSpeedModel,
104  [FeatureSeaIslands, FeatureLDSBankCount32, FeatureISAVersion7_0_0]
105>;
106
107def : ProcessorModel<"kabini",     SIQuarterSpeedModel,
108  [FeatureSeaIslands, FeatureLDSBankCount16]
109>;
110
111def : ProcessorModel<"kaveri",     SIQuarterSpeedModel,
112  [FeatureSeaIslands, FeatureLDSBankCount32, FeatureISAVersion7_0_0]
113>;
114
115def : ProcessorModel<"hawaii", SIFullSpeedModel,
116  [FeatureSeaIslands, FeatureFastFMAF32, HalfRate64Ops,
117   FeatureLDSBankCount32, FeatureISAVersion7_0_1]
118>;
119
120def : ProcessorModel<"mullins",    SIQuarterSpeedModel,
121  [FeatureSeaIslands, FeatureLDSBankCount16]>;
122
123//===----------------------------------------------------------------------===//
124// Volcanic Islands
125//===----------------------------------------------------------------------===//
126
127def : ProcessorModel<"tonga",   SIQuarterSpeedModel,
128  [FeatureVolcanicIslands, FeatureSGPRInitBug, FeatureISAVersion8_0_0,
129   FeatureLDSBankCount32]
130>;
131
132def : ProcessorModel<"iceland", SIQuarterSpeedModel,
133  [FeatureVolcanicIslands, FeatureSGPRInitBug, FeatureISAVersion8_0_0,
134   FeatureLDSBankCount32]
135>;
136
137def : ProcessorModel<"carrizo", SIQuarterSpeedModel,
138  [FeatureVolcanicIslands, FeatureISAVersion8_0_1, FeatureLDSBankCount32]
139>;
140
141def : ProcessorModel<"fiji", SIQuarterSpeedModel,
142  [FeatureVolcanicIslands, FeatureISAVersion8_0_3, FeatureLDSBankCount32]
143>;
144
145def : ProcessorModel<"stoney", SIQuarterSpeedModel,
146  [FeatureVolcanicIslands, FeatureISAVersion8_0_1, FeatureLDSBankCount16]
147>;
148
149def : ProcessorModel<"polaris10", SIQuarterSpeedModel,
150  [FeatureVolcanicIslands, FeatureISAVersion8_0_1, FeatureLDSBankCount32]
151>;
152
153def : ProcessorModel<"polaris11", SIQuarterSpeedModel,
154  [FeatureVolcanicIslands, FeatureISAVersion8_0_1, FeatureLDSBankCount32]
155>;
156