Revert r354244 "[DAGCombiner] Eliminate dead stores to stack."
[llvm-complete.git] / lib / Target / AMDGPU / R600Processors.td
blob12892840ecc0363f81642d55740156ba82057dcb
1 //===-- R600Processors.td - R600 Processor definitions --------------------===//
2 //
3 // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
4 // See https://llvm.org/LICENSE.txt for license information.
5 // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
6 //
7 //===----------------------------------------------------------------------===//
9 class SubtargetFeatureFetchLimit <string Value> :
10                           SubtargetFeature <"fetch"#Value,
11   "TexVTXClauseSize",
12   Value,
13   "Limit the maximum number of fetches in a clause to "#Value
16 def FeatureR600ALUInst : SubtargetFeature<"R600ALUInst",
17   "R600ALUInst",
18   "false",
19   "Older version of ALU instructions encoding"
22 def FeatureFetchLimit8 : SubtargetFeatureFetchLimit <"8">;
23 def FeatureFetchLimit16 : SubtargetFeatureFetchLimit <"16">;
25 def FeatureVertexCache : SubtargetFeature<"HasVertexCache",
26   "HasVertexCache",
27   "true",
28   "Specify use of dedicated vertex cache"
31 def FeatureCaymanISA : SubtargetFeature<"caymanISA",
32   "CaymanISA",
33   "true",
34   "Use Cayman ISA"
37 def FeatureCFALUBug : SubtargetFeature<"cfalubug",
38   "CFALUBug",
39   "true",
40   "GPU has CF_ALU bug"
43 class R600SubtargetFeatureGeneration <string Value,
44                                   list<SubtargetFeature> Implies> :
45         SubtargetFeatureGeneration <Value, "R600Subtarget", Implies>;
47 def FeatureR600 : R600SubtargetFeatureGeneration<"R600",
48   [FeatureR600ALUInst, FeatureFetchLimit8, FeatureLocalMemorySize0]
51 def FeatureR700 : R600SubtargetFeatureGeneration<"R700",
52   [FeatureFetchLimit16, FeatureLocalMemorySize0]
55 def FeatureEvergreen : R600SubtargetFeatureGeneration<"EVERGREEN",
56   [FeatureFetchLimit16, FeatureLocalMemorySize32768]
59 def FeatureNorthernIslands : R600SubtargetFeatureGeneration<"NORTHERN_ISLANDS",
60   [FeatureFetchLimit16, FeatureWavefrontSize64,
61    FeatureLocalMemorySize32768]
65 //===----------------------------------------------------------------------===//
66 // Radeon HD 2000/3000 Series (R600).
67 //===----------------------------------------------------------------------===//
69 def : Processor<"r600", R600_VLIW5_Itin,
70   [FeatureR600, FeatureWavefrontSize64, FeatureVertexCache]
73 def : Processor<"r630", R600_VLIW5_Itin,
74   [FeatureR600, FeatureWavefrontSize32, FeatureVertexCache]
77 def : Processor<"rs880", R600_VLIW5_Itin,
78   [FeatureR600, FeatureWavefrontSize16]
81 def : Processor<"rv670", R600_VLIW5_Itin,
82   [FeatureR600, FeatureWavefrontSize64, FeatureVertexCache]
85 //===----------------------------------------------------------------------===//
86 // Radeon HD 4000 Series (R700).
87 //===----------------------------------------------------------------------===//
89 def : Processor<"rv710", R600_VLIW5_Itin,
90   [FeatureR700, FeatureWavefrontSize32, FeatureVertexCache]
93 def : Processor<"rv730", R600_VLIW5_Itin,
94   [FeatureR700, FeatureWavefrontSize32, FeatureVertexCache]
97 def : Processor<"rv770", R600_VLIW5_Itin,
98   [FeatureR700, FeatureWavefrontSize64, FeatureVertexCache]
101 //===----------------------------------------------------------------------===//
102 // Radeon HD 5000 Series (Evergreen).
103 //===----------------------------------------------------------------------===//
105 def : Processor<"cedar", R600_VLIW5_Itin,
106   [FeatureEvergreen, FeatureWavefrontSize32, FeatureVertexCache,
107    FeatureCFALUBug]
110 def : Processor<"cypress", R600_VLIW5_Itin,
111   [FeatureEvergreen, FeatureWavefrontSize64, FeatureVertexCache, FeatureFMA]
114 def : Processor<"juniper", R600_VLIW5_Itin,
115   [FeatureEvergreen, FeatureWavefrontSize64, FeatureVertexCache]
118 def : Processor<"redwood", R600_VLIW5_Itin,
119   [FeatureEvergreen, FeatureWavefrontSize64, FeatureVertexCache,
120    FeatureCFALUBug]
123 def : Processor<"sumo", R600_VLIW5_Itin,
124   [FeatureEvergreen, FeatureWavefrontSize64, FeatureCFALUBug]
127 //===----------------------------------------------------------------------===//
128 // Radeon HD 6000 Series (Northern Islands).
129 //===----------------------------------------------------------------------===//
131 def : Processor<"barts", R600_VLIW5_Itin,
132   [FeatureNorthernIslands, FeatureVertexCache, FeatureCFALUBug]
135 def : Processor<"caicos", R600_VLIW5_Itin,
136   [FeatureNorthernIslands, FeatureCFALUBug]
139 def : Processor<"cayman", R600_VLIW4_Itin,
140   [FeatureNorthernIslands, FeatureCaymanISA, FeatureFMA]
143 def : Processor<"turks", R600_VLIW5_Itin,
144   [FeatureNorthernIslands, FeatureVertexCache, FeatureCFALUBug]