R600: Add wavefront size property to the subtargets v2
[oota-llvm.git] / lib / Target / R600 / Processors.td
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
10 class Proc<string Name, ProcessorItineraries itin, list<SubtargetFeature> Features>
11 : Processor<Name, itin, Features>;
12
13 //===----------------------------------------------------------------------===//
14 // R600
15 //===----------------------------------------------------------------------===//
16 def : Proc<"",           R600_VLIW5_Itin,
17     [FeatureR600, FeatureVertexCache]>;
18
19 def : Proc<"r600",       R600_VLIW5_Itin,
20     [FeatureR600 , FeatureVertexCache, FeatureWavefrontSize64]>;
21
22 def : Proc<"r630",       R600_VLIW5_Itin,
23     [FeatureR600, FeatureVertexCache, FeatureWavefrontSize32]>;
24
25 def : Proc<"rs880",      R600_VLIW5_Itin,
26     [FeatureR600, FeatureWavefrontSize16]>;
27
28 def : Proc<"rv670",      R600_VLIW5_Itin,
29     [FeatureR600, FeatureFP64, FeatureVertexCache, FeatureWavefrontSize64]>;
30
31 //===----------------------------------------------------------------------===//
32 // R700
33 //===----------------------------------------------------------------------===//
34
35 def : Proc<"rv710",      R600_VLIW5_Itin,
36     [FeatureR700, FeatureVertexCache, FeatureWavefrontSize32]>;
37
38 def : Proc<"rv730",      R600_VLIW5_Itin,
39     [FeatureR700, FeatureVertexCache, FeatureWavefrontSize32]>;
40
41 def : Proc<"rv770",      R600_VLIW5_Itin,
42     [FeatureR700, FeatureFP64, FeatureVertexCache, FeatureWavefrontSize64]>;
43
44 //===----------------------------------------------------------------------===//
45 // Evergreen
46 //===----------------------------------------------------------------------===//
47
48 def : Proc<"cedar",      R600_VLIW5_Itin,
49     [FeatureEvergreen, FeatureVertexCache, FeatureWavefrontSize32]>;
50
51 def : Proc<"redwood",    R600_VLIW5_Itin,
52     [FeatureEvergreen, FeatureVertexCache, FeatureWavefrontSize64]>;
53
54 def : Proc<"sumo",       R600_VLIW5_Itin,
55     [FeatureEvergreen, FeatureWavefrontSize64]>;
56
57 def : Proc<"juniper",    R600_VLIW5_Itin,
58     [FeatureEvergreen, FeatureVertexCache, FeatureWavefrontSize64]>;
59
60 def : Proc<"cypress",    R600_VLIW5_Itin,
61     [FeatureEvergreen, FeatureFP64, FeatureVertexCache,
62      FeatureWavefrontSize64]>;
63
64 //===----------------------------------------------------------------------===//
65 // Northern Islands
66 //===----------------------------------------------------------------------===//
67
68 def : Proc<"barts",      R600_VLIW5_Itin,
69     [FeatureNorthernIslands, FeatureVertexCache]>;
70
71 def : Proc<"turks",      R600_VLIW5_Itin,
72     [FeatureNorthernIslands, FeatureVertexCache]>;
73
74 def : Proc<"caicos",     R600_VLIW5_Itin,
75     [FeatureNorthernIslands]>;
76
77 def : Proc<"cayman",     R600_VLIW4_Itin,
78     [FeatureNorthernIslands, FeatureFP64, FeatureCaymanISA]>;
79
80 //===----------------------------------------------------------------------===//
81 // Southern Islands
82 //===----------------------------------------------------------------------===//
83
84 def : Proc<"SI",         SI_Itin, [FeatureSouthernIslands]>;
85
86 def : Proc<"tahiti",     SI_Itin, [FeatureSouthernIslands]>;
87
88 def : Proc<"pitcairn",   SI_Itin, [FeatureSouthernIslands]>;
89
90 def : Proc<"verde",      SI_Itin, [FeatureSouthernIslands]>;
91
92 def : Proc<"oland",      SI_Itin, [FeatureSouthernIslands]>;
93
94 def : Proc<"hainan",     SI_Itin, [FeatureSouthernIslands]>;
95
96 //===----------------------------------------------------------------------===//
97 // Sea Islands
98 //===----------------------------------------------------------------------===//
99
100 def : Proc<"bonaire",    SI_Itin, [FeatureSeaIslands]>;
101
102 def : Proc<"kabini",     SI_Itin, [FeatureSeaIslands]>;
103
104 def : Proc<"kaveri",     SI_Itin, [FeatureSeaIslands]>;
105
106 def : Proc<"hawaii",     SI_Itin, [FeatureSeaIslands]>;