1 //===-- R600Processors.td - R600 Processor definitions --------------------===//
3 // The LLVM Compiler Infrastructure
5 // This file is distributed under the University of Illinois Open Source
6 // License. See LICENSE.TXT for details.
8 //===----------------------------------------------------------------------===//
10 class SubtargetFeatureFetchLimit <string Value> :
11 SubtargetFeature <"fetch"#Value,
14 "Limit the maximum number of fetches in a clause to "#Value
17 def FeatureR600ALUInst : SubtargetFeature<"R600ALUInst",
20 "Older version of ALU instructions encoding"
23 def FeatureFetchLimit8 : SubtargetFeatureFetchLimit <"8">;
24 def FeatureFetchLimit16 : SubtargetFeatureFetchLimit <"16">;
26 def FeatureVertexCache : SubtargetFeature<"HasVertexCache",
29 "Specify use of dedicated vertex cache"
32 def FeatureCaymanISA : SubtargetFeature<"caymanISA",
38 def FeatureCFALUBug : SubtargetFeature<"cfalubug",
44 class R600SubtargetFeatureGeneration <string Value,
45 list<SubtargetFeature> Implies> :
46 SubtargetFeatureGeneration <Value, "R600Subtarget", Implies>;
48 def FeatureR600 : R600SubtargetFeatureGeneration<"R600",
49 [FeatureR600ALUInst, FeatureFetchLimit8, FeatureLocalMemorySize0]
52 def FeatureR700 : R600SubtargetFeatureGeneration<"R700",
53 [FeatureFetchLimit16, FeatureLocalMemorySize0]
56 def FeatureEvergreen : R600SubtargetFeatureGeneration<"EVERGREEN",
57 [FeatureFetchLimit16, FeatureLocalMemorySize32768]
60 def FeatureNorthernIslands : R600SubtargetFeatureGeneration<"NORTHERN_ISLANDS",
61 [FeatureFetchLimit16, FeatureWavefrontSize64,
62 FeatureLocalMemorySize32768]
66 //===----------------------------------------------------------------------===//
67 // Radeon HD 2000/3000 Series (R600).
68 //===----------------------------------------------------------------------===//
70 def : Processor<"r600", R600_VLIW5_Itin,
71 [FeatureR600, FeatureWavefrontSize64, FeatureVertexCache]
74 def : Processor<"r630", R600_VLIW5_Itin,
75 [FeatureR600, FeatureWavefrontSize32, FeatureVertexCache]
78 def : Processor<"rs880", R600_VLIW5_Itin,
79 [FeatureR600, FeatureWavefrontSize16]
82 def : Processor<"rv670", R600_VLIW5_Itin,
83 [FeatureR600, FeatureWavefrontSize64, FeatureVertexCache]
86 //===----------------------------------------------------------------------===//
87 // Radeon HD 4000 Series (R700).
88 //===----------------------------------------------------------------------===//
90 def : Processor<"rv710", R600_VLIW5_Itin,
91 [FeatureR700, FeatureWavefrontSize32, FeatureVertexCache]
94 def : Processor<"rv730", R600_VLIW5_Itin,
95 [FeatureR700, FeatureWavefrontSize32, FeatureVertexCache]
98 def : Processor<"rv770", R600_VLIW5_Itin,
99 [FeatureR700, FeatureWavefrontSize64, FeatureVertexCache]
102 //===----------------------------------------------------------------------===//
103 // Radeon HD 5000 Series (Evergreen).
104 //===----------------------------------------------------------------------===//
106 def : Processor<"cedar", R600_VLIW5_Itin,
107 [FeatureEvergreen, FeatureWavefrontSize32, FeatureVertexCache,
111 def : Processor<"cypress", R600_VLIW5_Itin,
112 [FeatureEvergreen, FeatureWavefrontSize64, FeatureVertexCache, FeatureFMA]
115 def : Processor<"juniper", R600_VLIW5_Itin,
116 [FeatureEvergreen, FeatureWavefrontSize64, FeatureVertexCache]
119 def : Processor<"redwood", R600_VLIW5_Itin,
120 [FeatureEvergreen, FeatureWavefrontSize64, FeatureVertexCache,
124 def : Processor<"sumo", R600_VLIW5_Itin,
125 [FeatureEvergreen, FeatureWavefrontSize64, FeatureCFALUBug]
128 //===----------------------------------------------------------------------===//
129 // Radeon HD 6000 Series (Northern Islands).
130 //===----------------------------------------------------------------------===//
132 def : Processor<"barts", R600_VLIW5_Itin,
133 [FeatureNorthernIslands, FeatureVertexCache, FeatureCFALUBug]
136 def : Processor<"caicos", R600_VLIW5_Itin,
137 [FeatureNorthernIslands, FeatureCFALUBug]
140 def : Processor<"cayman", R600_VLIW4_Itin,
141 [FeatureNorthernIslands, FeatureCaymanISA, FeatureFMA]
144 def : Processor<"turks", R600_VLIW5_Itin,
145 [FeatureNorthernIslands, FeatureVertexCache, FeatureCFALUBug]