blob: f39b3dc1bfd46c953bce33963027dadcec44664c [file] [log] [blame]
Konstantin Zhuravlyov27b0a032017-11-10 20:01:58 +00001//===-- R600Processors.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
Tom Stellardc5a154d2018-06-28 23:47:12 +000010class SubtargetFeatureFetchLimit <string Value> :
11 SubtargetFeature <"fetch"#Value,
12 "TexVTXClauseSize",
13 Value,
14 "Limit the maximum number of fetches in a clause to "#Value
15>;
16
17def FeatureR600ALUInst : SubtargetFeature<"R600ALUInst",
18 "R600ALUInst",
19 "false",
20 "Older version of ALU instructions encoding"
21>;
22
23def FeatureFetchLimit8 : SubtargetFeatureFetchLimit <"8">;
24def FeatureFetchLimit16 : SubtargetFeatureFetchLimit <"16">;
25
26def FeatureVertexCache : SubtargetFeature<"HasVertexCache",
27 "HasVertexCache",
28 "true",
29 "Specify use of dedicated vertex cache"
30>;
31
32def FeatureCaymanISA : SubtargetFeature<"caymanISA",
33 "CaymanISA",
34 "true",
35 "Use Cayman ISA"
36>;
37
38def FeatureCFALUBug : SubtargetFeature<"cfalubug",
39 "CFALUBug",
40 "true",
41 "GPU has CF_ALU bug"
42>;
43
44class R600SubtargetFeatureGeneration <string Value,
45 list<SubtargetFeature> Implies> :
46 SubtargetFeatureGeneration <Value, "R600Subtarget", Implies>;
47
48def FeatureR600 : R600SubtargetFeatureGeneration<"R600",
49 [FeatureR600ALUInst, FeatureFetchLimit8, FeatureLocalMemorySize0]
50>;
51
52def FeatureR700 : R600SubtargetFeatureGeneration<"R700",
53 [FeatureFetchLimit16, FeatureLocalMemorySize0]
54>;
55
56def FeatureEvergreen : R600SubtargetFeatureGeneration<"EVERGREEN",
57 [FeatureFetchLimit16, FeatureLocalMemorySize32768]
58>;
59
60def FeatureNorthernIslands : R600SubtargetFeatureGeneration<"NORTHERN_ISLANDS",
61 [FeatureFetchLimit16, FeatureWavefrontSize64,
62 FeatureLocalMemorySize32768]
63>;
64
65
Konstantin Zhuravlyov27b0a032017-11-10 20:01:58 +000066//===----------------------------------------------------------------------===//
67// Radeon HD 2000/3000 Series (R600).
68//===----------------------------------------------------------------------===//
69
70def : Processor<"r600", R600_VLIW5_Itin,
71 [FeatureR600, FeatureWavefrontSize64, FeatureVertexCache]
72>;
73
74def : Processor<"r630", R600_VLIW5_Itin,
75 [FeatureR600, FeatureWavefrontSize32, FeatureVertexCache]
76>;
77
78def : Processor<"rs880", R600_VLIW5_Itin,
79 [FeatureR600, FeatureWavefrontSize16]
80>;
81
82def : Processor<"rv670", R600_VLIW5_Itin,
Jan Veselyd1c9b612017-12-04 22:57:29 +000083 [FeatureR600, FeatureWavefrontSize64, FeatureVertexCache]
Konstantin Zhuravlyov27b0a032017-11-10 20:01:58 +000084>;
85
86//===----------------------------------------------------------------------===//
87// Radeon HD 4000 Series (R700).
88//===----------------------------------------------------------------------===//
89
90def : Processor<"rv710", R600_VLIW5_Itin,
91 [FeatureR700, FeatureWavefrontSize32, FeatureVertexCache]
92>;
93
94def : Processor<"rv730", R600_VLIW5_Itin,
95 [FeatureR700, FeatureWavefrontSize32, FeatureVertexCache]
96>;
97
98def : Processor<"rv770", R600_VLIW5_Itin,
Jan Veselyd1c9b612017-12-04 22:57:29 +000099 [FeatureR700, FeatureWavefrontSize64, FeatureVertexCache]
Konstantin Zhuravlyov27b0a032017-11-10 20:01:58 +0000100>;
101
102//===----------------------------------------------------------------------===//
103// Radeon HD 5000 Series (Evergreen).
104//===----------------------------------------------------------------------===//
105
106def : Processor<"cedar", R600_VLIW5_Itin,
107 [FeatureEvergreen, FeatureWavefrontSize32, FeatureVertexCache,
108 FeatureCFALUBug]
109>;
110
111def : Processor<"cypress", R600_VLIW5_Itin,
Jan Vesely39aeab42017-12-04 23:07:28 +0000112 [FeatureEvergreen, FeatureWavefrontSize64, FeatureVertexCache, FeatureFMA]
Konstantin Zhuravlyov27b0a032017-11-10 20:01:58 +0000113>;
114
115def : Processor<"juniper", R600_VLIW5_Itin,
116 [FeatureEvergreen, FeatureWavefrontSize64, FeatureVertexCache]
117>;
118
119def : Processor<"redwood", R600_VLIW5_Itin,
120 [FeatureEvergreen, FeatureWavefrontSize64, FeatureVertexCache,
121 FeatureCFALUBug]
122>;
123
124def : Processor<"sumo", R600_VLIW5_Itin,
125 [FeatureEvergreen, FeatureWavefrontSize64, FeatureCFALUBug]
126>;
127
128//===----------------------------------------------------------------------===//
129// Radeon HD 6000 Series (Northern Islands).
130//===----------------------------------------------------------------------===//
131
132def : Processor<"barts", R600_VLIW5_Itin,
133 [FeatureNorthernIslands, FeatureVertexCache, FeatureCFALUBug]
134>;
135
136def : Processor<"caicos", R600_VLIW5_Itin,
137 [FeatureNorthernIslands, FeatureCFALUBug]
138>;
139
140def : Processor<"cayman", R600_VLIW4_Itin,
Jan Vesely39aeab42017-12-04 23:07:28 +0000141 [FeatureNorthernIslands, FeatureCaymanISA, FeatureFMA]
Konstantin Zhuravlyov27b0a032017-11-10 20:01:58 +0000142>;
143
144def : Processor<"turks", R600_VLIW5_Itin,
145 [FeatureNorthernIslands, FeatureVertexCache, FeatureCFALUBug]
146>;