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 : Proc<"SI",         SI_Itin, [FeatureSouthernIslands]>;
87
88def : Proc<"tahiti",     SI_Itin, [FeatureSouthernIslands]>;
89
90def : Proc<"pitcairn",   SI_Itin, [FeatureSouthernIslands]>;
91
92def : Proc<"verde",      SI_Itin, [FeatureSouthernIslands]>;
93
94def : Proc<"oland",      SI_Itin, [FeatureSouthernIslands]>;
95
96def : Proc<"hainan",     SI_Itin, [FeatureSouthernIslands]>;
97
98//===----------------------------------------------------------------------===//
99// Sea Islands
100//===----------------------------------------------------------------------===//
101
102def : Proc<"bonaire",    SI_Itin, [FeatureSeaIslands]>;
103
104def : Proc<"kabini",     SI_Itin, [FeatureSeaIslands]>;
105
106def : Proc<"kaveri",     SI_Itin, [FeatureSeaIslands]>;
107
108def : Proc<"hawaii",     SI_Itin, [FeatureSeaIslands]>;
109
110def : Proc<"mullins",    SI_Itin, [FeatureSeaIslands]>;
111