1/*===- TableGen'erated file -------------------------------------*- C++ -*-===*\
2|* *|
3|* Target Register and Register Classes Information *|
4|* *|
5|* Automatically generated file, do not edit! *|
6|* *|
7\*===----------------------------------------------------------------------===*/
8
9namespace llvm {
10
11extern const MCRegisterClassStorage<37, 2871, 4948, 122, 5, 39> R600MCRegisterClassStorage;
12
13static const MVT::SimpleValueType R600VTLists[] = {
14 /* 0 */ MVT::f32, MVT::i32, MVT::Other,
15 /* 3 */ MVT::v2f32, MVT::v2i32, MVT::i64, MVT::f64, MVT::Other,
16 /* 8 */ MVT::v2f32, MVT::v2i32, MVT::Other,
17 /* 11 */ MVT::v4f32, MVT::v4i32, MVT::Other,
18};
19
20#ifdef __GNUC__
21#pragma GCC diagnostic push
22#pragma GCC diagnostic ignored "-Woverlength-strings"
23#endif
24static constexpr char R600SubRegIndexStrings[] = {
25 /* 0 */ "sub10\000"
26 /* 6 */ "sub0\000"
27 /* 11 */ "sub11\000"
28 /* 17 */ "sub1\000"
29 /* 22 */ "sub12\000"
30 /* 28 */ "sub2\000"
31 /* 33 */ "sub13\000"
32 /* 39 */ "sub3\000"
33 /* 44 */ "sub14\000"
34 /* 50 */ "sub4\000"
35 /* 55 */ "sub15\000"
36 /* 61 */ "sub5\000"
37 /* 66 */ "sub6\000"
38 /* 71 */ "sub7\000"
39 /* 76 */ "sub8\000"
40 /* 81 */ "sub9\000"
41};
42#ifdef __GNUC__
43#pragma GCC diagnostic pop
44#endif
45
46
47static constexpr uint32_t R600SubRegIndexNameOffsets[] = {
48 6,
49 17,
50 28,
51 39,
52 50,
53 61,
54 66,
55 71,
56 76,
57 81,
58 0,
59 11,
60 22,
61 33,
62 44,
63 55,
64};
65
66static const TargetRegisterInfo::SubRegCoveredBits R600SubRegIdxRangeTable[] = {
67 { .Offset: 4294967295, .Size: 4294967295 },
68 { .Offset: 0, .Size: 32 }, // sub0
69 { .Offset: 32, .Size: 32 }, // sub1
70 { .Offset: 64, .Size: 32 }, // sub2
71 { .Offset: 96, .Size: 32 }, // sub3
72 { .Offset: 128, .Size: 32 }, // sub4
73 { .Offset: 160, .Size: 32 }, // sub5
74 { .Offset: 192, .Size: 32 }, // sub6
75 { .Offset: 224, .Size: 32 }, // sub7
76 { .Offset: 256, .Size: 32 }, // sub8
77 { .Offset: 288, .Size: 32 }, // sub9
78 { .Offset: 320, .Size: 32 }, // sub10
79 { .Offset: 352, .Size: 32 }, // sub11
80 { .Offset: 384, .Size: 32 }, // sub12
81 { .Offset: 416, .Size: 32 }, // sub13
82 { .Offset: 448, .Size: 32 }, // sub14
83 { .Offset: 480, .Size: 32 }, // sub15
84};
85
86
87static const LaneBitmask R600SubRegIndexLaneMaskTable[] = {
88 LaneBitmask::getAll(),
89 LaneBitmask(0x0000000000000001), // sub0
90 LaneBitmask(0x0000000000000002), // sub1
91 LaneBitmask(0x0000000000000004), // sub2
92 LaneBitmask(0x0000000000000008), // sub3
93 LaneBitmask(0x0000000000000010), // sub4
94 LaneBitmask(0x0000000000000020), // sub5
95 LaneBitmask(0x0000000000000040), // sub6
96 LaneBitmask(0x0000000000000080), // sub7
97 LaneBitmask(0x0000000000000100), // sub8
98 LaneBitmask(0x0000000000000200), // sub9
99 LaneBitmask(0x0000000000000400), // sub10
100 LaneBitmask(0x0000000000000800), // sub11
101 LaneBitmask(0x0000000000001000), // sub12
102 LaneBitmask(0x0000000000002000), // sub13
103 LaneBitmask(0x0000000000004000), // sub14
104 LaneBitmask(0x0000000000008000), // sub15
105 };
106
107
108
109static const TargetRegisterInfo::RegClassInfo R600RegClassInfos[] = {
110 // Mode = 0 (DefaultMode)
111 { .RegSize: 32, .SpillSize: 32, .SpillAlignment: 32, /*R600VTLists+*/.VTListOffset: 0 }, // R600_Reg32
112 { .RegSize: 32, .SpillSize: 32, .SpillAlignment: 32, /*R600VTLists+*/.VTListOffset: 0 }, // R600_TReg32
113 { .RegSize: 32, .SpillSize: 32, .SpillAlignment: 32, /*R600VTLists+*/.VTListOffset: 0 }, // R600_TReg32_X
114 { .RegSize: 32, .SpillSize: 32, .SpillAlignment: 32, /*R600VTLists+*/.VTListOffset: 1 }, // R600_Addr
115 { .RegSize: 32, .SpillSize: 32, .SpillAlignment: 32, /*R600VTLists+*/.VTListOffset: 0 }, // R600_KC0
116 { .RegSize: 32, .SpillSize: 32, .SpillAlignment: 32, /*R600VTLists+*/.VTListOffset: 0 }, // R600_KC1
117 { .RegSize: 32, .SpillSize: 32, .SpillAlignment: 32, /*R600VTLists+*/.VTListOffset: 0 }, // R600_TReg32_W
118 { .RegSize: 32, .SpillSize: 32, .SpillAlignment: 32, /*R600VTLists+*/.VTListOffset: 0 }, // R600_TReg32_Y
119 { .RegSize: 32, .SpillSize: 32, .SpillAlignment: 32, /*R600VTLists+*/.VTListOffset: 0 }, // R600_TReg32_Z
120 { .RegSize: 32, .SpillSize: 32, .SpillAlignment: 32, /*R600VTLists+*/.VTListOffset: 0 }, // R600_ArrayBase
121 { .RegSize: 32, .SpillSize: 32, .SpillAlignment: 32, /*R600VTLists+*/.VTListOffset: 0 }, // R600_KC0_W
122 { .RegSize: 32, .SpillSize: 32, .SpillAlignment: 32, /*R600VTLists+*/.VTListOffset: 0 }, // R600_KC0_X
123 { .RegSize: 32, .SpillSize: 32, .SpillAlignment: 32, /*R600VTLists+*/.VTListOffset: 0 }, // R600_KC0_Y
124 { .RegSize: 32, .SpillSize: 32, .SpillAlignment: 32, /*R600VTLists+*/.VTListOffset: 0 }, // R600_KC0_Z
125 { .RegSize: 32, .SpillSize: 32, .SpillAlignment: 32, /*R600VTLists+*/.VTListOffset: 0 }, // R600_KC1_W
126 { .RegSize: 32, .SpillSize: 32, .SpillAlignment: 32, /*R600VTLists+*/.VTListOffset: 0 }, // R600_KC1_X
127 { .RegSize: 32, .SpillSize: 32, .SpillAlignment: 32, /*R600VTLists+*/.VTListOffset: 0 }, // R600_KC1_Y
128 { .RegSize: 32, .SpillSize: 32, .SpillAlignment: 32, /*R600VTLists+*/.VTListOffset: 0 }, // R600_KC1_Z
129 { .RegSize: 32, .SpillSize: 32, .SpillAlignment: 32, /*R600VTLists+*/.VTListOffset: 1 }, // R600_LDS_SRC_REG
130 { .RegSize: 32, .SpillSize: 32, .SpillAlignment: 32, /*R600VTLists+*/.VTListOffset: 1 }, // R600_Predicate
131 { .RegSize: 32, .SpillSize: 32, .SpillAlignment: 32, /*R600VTLists+*/.VTListOffset: 1 }, // R600_Addr_W
132 { .RegSize: 32, .SpillSize: 32, .SpillAlignment: 32, /*R600VTLists+*/.VTListOffset: 1 }, // R600_Addr_Y
133 { .RegSize: 32, .SpillSize: 32, .SpillAlignment: 32, /*R600VTLists+*/.VTListOffset: 1 }, // R600_Addr_Z
134 { .RegSize: 32, .SpillSize: 32, .SpillAlignment: 32, /*R600VTLists+*/.VTListOffset: 0 }, // R600_LDS_SRC_REG_and_R600_Reg32
135 { .RegSize: 32, .SpillSize: 32, .SpillAlignment: 32, /*R600VTLists+*/.VTListOffset: 1 }, // R600_Predicate_Bit
136 { .RegSize: 64, .SpillSize: 64, .SpillAlignment: 64, /*R600VTLists+*/.VTListOffset: 3 }, // R600_Reg64
137 { .RegSize: 64, .SpillSize: 64, .SpillAlignment: 64, /*R600VTLists+*/.VTListOffset: 8 }, // R600_Reg64Vertical
138 { .RegSize: 64, .SpillSize: 64, .SpillAlignment: 64, /*R600VTLists+*/.VTListOffset: 8 }, // R600_Reg64Vertical_with_sub0_in_R600_TReg32_W
139 { .RegSize: 64, .SpillSize: 64, .SpillAlignment: 64, /*R600VTLists+*/.VTListOffset: 8 }, // R600_Reg64Vertical_with_sub0_in_R600_TReg32_X
140 { .RegSize: 64, .SpillSize: 64, .SpillAlignment: 64, /*R600VTLists+*/.VTListOffset: 8 }, // R600_Reg64Vertical_with_sub0_in_R600_TReg32_Y
141 { .RegSize: 64, .SpillSize: 64, .SpillAlignment: 64, /*R600VTLists+*/.VTListOffset: 8 }, // R600_Reg64Vertical_with_sub0_in_R600_TReg32_Z
142 { .RegSize: 128, .SpillSize: 128, .SpillAlignment: 128, /*R600VTLists+*/.VTListOffset: 11 }, // R600_Reg128
143 { .RegSize: 128, .SpillSize: 128, .SpillAlignment: 128, /*R600VTLists+*/.VTListOffset: 11 }, // R600_Reg128Vertical
144 { .RegSize: 128, .SpillSize: 128, .SpillAlignment: 128, /*R600VTLists+*/.VTListOffset: 11 }, // R600_Reg128Vertical_with_sub0_in_R600_TReg32_W
145 { .RegSize: 128, .SpillSize: 128, .SpillAlignment: 128, /*R600VTLists+*/.VTListOffset: 11 }, // R600_Reg128Vertical_with_sub0_in_R600_TReg32_X
146 { .RegSize: 128, .SpillSize: 128, .SpillAlignment: 128, /*R600VTLists+*/.VTListOffset: 11 }, // R600_Reg128Vertical_with_sub0_in_R600_TReg32_Y
147 { .RegSize: 128, .SpillSize: 128, .SpillAlignment: 128, /*R600VTLists+*/.VTListOffset: 11 }, // R600_Reg128Vertical_with_sub0_in_R600_TReg32_Z
148};
149
150static const uint8_t R600CostPerUseTable[] = {
1510, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, };
152
153
154static const bool R600InAllocatableClassTable[] = {
155false, true, false, true, false, false, true, true, true, true, false, false, true, true, true, true, false, true, false, false, true, true, true, true, false, false, true, false, false, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, };
156
157
158static const TargetRegisterInfoDesc R600RegInfoDesc = { // Extra Descriptors
159.CostPerUse: R600CostPerUseTable, .NumCosts: 1, .InAllocatableClass: R600InAllocatableClassTable};
160
161unsigned R600GenRegisterInfo::composeSubRegIndicesImpl(unsigned IdxA, unsigned IdxB) const {
162 static const uint8_t Rows[1][16] = {
163 { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, },
164 };
165
166 --IdxA; assert(IdxA < 16); (void) IdxA;
167 --IdxB; assert(IdxB < 16);
168 return Rows[0][IdxB];
169}
170
171unsigned R600GenRegisterInfo::reverseComposeSubRegIndicesImpl(unsigned IdxA, unsigned IdxB) const {
172 static const uint8_t Table[16][16] = {
173 { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, },
174 { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, },
175 { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, },
176 { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, },
177 { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, },
178 { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, },
179 { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, },
180 { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, },
181 { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, },
182 { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, },
183 { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, },
184 { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, },
185 { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, },
186 { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, },
187 { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, },
188 { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, },
189 };
190
191 --IdxA; assert(IdxA < 16);
192 --IdxB; assert(IdxB < 16);
193 return Table[IdxA][IdxB];
194 }
195
196 struct MaskRolOp {
197 LaneBitmask Mask;
198 uint8_t RotateLeft;
199 };
200 static const MaskRolOp LaneMaskComposeSequences[] = {
201 { .Mask: LaneBitmask(0xFFFFFFFFFFFFFFFF), .RotateLeft: 0 }, { .Mask: LaneBitmask::getNone(), .RotateLeft: 0 }, // Sequence 0
202 { .Mask: LaneBitmask(0xFFFFFFFFFFFFFFFF), .RotateLeft: 1 }, { .Mask: LaneBitmask::getNone(), .RotateLeft: 0 }, // Sequence 2
203 { .Mask: LaneBitmask(0xFFFFFFFFFFFFFFFF), .RotateLeft: 2 }, { .Mask: LaneBitmask::getNone(), .RotateLeft: 0 }, // Sequence 4
204 { .Mask: LaneBitmask(0xFFFFFFFFFFFFFFFF), .RotateLeft: 3 }, { .Mask: LaneBitmask::getNone(), .RotateLeft: 0 }, // Sequence 6
205 { .Mask: LaneBitmask(0xFFFFFFFFFFFFFFFF), .RotateLeft: 4 }, { .Mask: LaneBitmask::getNone(), .RotateLeft: 0 }, // Sequence 8
206 { .Mask: LaneBitmask(0xFFFFFFFFFFFFFFFF), .RotateLeft: 5 }, { .Mask: LaneBitmask::getNone(), .RotateLeft: 0 }, // Sequence 10
207 { .Mask: LaneBitmask(0xFFFFFFFFFFFFFFFF), .RotateLeft: 6 }, { .Mask: LaneBitmask::getNone(), .RotateLeft: 0 }, // Sequence 12
208 { .Mask: LaneBitmask(0xFFFFFFFFFFFFFFFF), .RotateLeft: 7 }, { .Mask: LaneBitmask::getNone(), .RotateLeft: 0 }, // Sequence 14
209 { .Mask: LaneBitmask(0xFFFFFFFFFFFFFFFF), .RotateLeft: 8 }, { .Mask: LaneBitmask::getNone(), .RotateLeft: 0 }, // Sequence 16
210 { .Mask: LaneBitmask(0xFFFFFFFFFFFFFFFF), .RotateLeft: 9 }, { .Mask: LaneBitmask::getNone(), .RotateLeft: 0 }, // Sequence 18
211 { .Mask: LaneBitmask(0xFFFFFFFFFFFFFFFF), .RotateLeft: 10 }, { .Mask: LaneBitmask::getNone(), .RotateLeft: 0 }, // Sequence 20
212 { .Mask: LaneBitmask(0xFFFFFFFFFFFFFFFF), .RotateLeft: 11 }, { .Mask: LaneBitmask::getNone(), .RotateLeft: 0 }, // Sequence 22
213 { .Mask: LaneBitmask(0xFFFFFFFFFFFFFFFF), .RotateLeft: 12 }, { .Mask: LaneBitmask::getNone(), .RotateLeft: 0 }, // Sequence 24
214 { .Mask: LaneBitmask(0xFFFFFFFFFFFFFFFF), .RotateLeft: 13 }, { .Mask: LaneBitmask::getNone(), .RotateLeft: 0 }, // Sequence 26
215 { .Mask: LaneBitmask(0xFFFFFFFFFFFFFFFF), .RotateLeft: 14 }, { .Mask: LaneBitmask::getNone(), .RotateLeft: 0 }, // Sequence 28
216 { .Mask: LaneBitmask(0xFFFFFFFFFFFFFFFF), .RotateLeft: 15 }, { .Mask: LaneBitmask::getNone(), .RotateLeft: 0 } // Sequence 30
217 };
218 static const uint8_t CompositeSequences[] = {
219 0, // to sub0
220 2, // to sub1
221 4, // to sub2
222 6, // to sub3
223 8, // to sub4
224 10, // to sub5
225 12, // to sub6
226 14, // to sub7
227 16, // to sub8
228 18, // to sub9
229 20, // to sub10
230 22, // to sub11
231 24, // to sub12
232 26, // to sub13
233 28, // to sub14
234 30 // to sub15
235 };
236
237LaneBitmask R600GenRegisterInfo::composeSubRegIndexLaneMaskImpl(unsigned IdxA, LaneBitmask LaneMask) const {
238 --IdxA; assert(IdxA < 16 && "Subregister index out of bounds");
239 LaneBitmask Result;
240 for (const MaskRolOp *Ops =
241 &LaneMaskComposeSequences[CompositeSequences[IdxA]];
242 Ops->Mask.any(); ++Ops) {
243 LaneBitmask::Type M = LaneMask.getAsInteger() & Ops->Mask.getAsInteger();
244 if (unsigned S = Ops->RotateLeft)
245 Result |= LaneBitmask((M << S) | (M >> (LaneBitmask::BitWidth - S)));
246 else
247 Result |= LaneBitmask(M);
248 }
249 return Result;
250}
251
252LaneBitmask R600GenRegisterInfo::reverseComposeSubRegIndexLaneMaskImpl(unsigned IdxA, LaneBitmask LaneMask) const {
253 LaneMask &= getSubRegIndexLaneMask(SubIdx: IdxA);
254 --IdxA; assert(IdxA < 16 && "Subregister index out of bounds");
255 LaneBitmask Result;
256 for (const MaskRolOp *Ops =
257 &LaneMaskComposeSequences[CompositeSequences[IdxA]];
258 Ops->Mask.any(); ++Ops) {
259 LaneBitmask::Type M = LaneMask.getAsInteger();
260 if (unsigned S = Ops->RotateLeft)
261 Result |= LaneBitmask((M >> S) | (M << (LaneBitmask::BitWidth - S)));
262 else
263 Result |= LaneBitmask(M);
264 }
265 return Result;
266}
267
268const TargetRegisterClass *R600GenRegisterInfo::getSubClassWithSubReg(const TargetRegisterClass *RC, unsigned Idx) const {
269 static constexpr uint8_t Table[37][16] = {
270 { // R600_Reg32
271 0, // sub0
272 0, // sub1
273 0, // sub2
274 0, // sub3
275 0, // sub4
276 0, // sub5
277 0, // sub6
278 0, // sub7
279 0, // sub8
280 0, // sub9
281 0, // sub10
282 0, // sub11
283 0, // sub12
284 0, // sub13
285 0, // sub14
286 0, // sub15
287 },
288 { // R600_TReg32
289 0, // sub0
290 0, // sub1
291 0, // sub2
292 0, // sub3
293 0, // sub4
294 0, // sub5
295 0, // sub6
296 0, // sub7
297 0, // sub8
298 0, // sub9
299 0, // sub10
300 0, // sub11
301 0, // sub12
302 0, // sub13
303 0, // sub14
304 0, // sub15
305 },
306 { // R600_TReg32_X
307 0, // sub0
308 0, // sub1
309 0, // sub2
310 0, // sub3
311 0, // sub4
312 0, // sub5
313 0, // sub6
314 0, // sub7
315 0, // sub8
316 0, // sub9
317 0, // sub10
318 0, // sub11
319 0, // sub12
320 0, // sub13
321 0, // sub14
322 0, // sub15
323 },
324 { // R600_Addr
325 0, // sub0
326 0, // sub1
327 0, // sub2
328 0, // sub3
329 0, // sub4
330 0, // sub5
331 0, // sub6
332 0, // sub7
333 0, // sub8
334 0, // sub9
335 0, // sub10
336 0, // sub11
337 0, // sub12
338 0, // sub13
339 0, // sub14
340 0, // sub15
341 },
342 { // R600_KC0
343 0, // sub0
344 0, // sub1
345 0, // sub2
346 0, // sub3
347 0, // sub4
348 0, // sub5
349 0, // sub6
350 0, // sub7
351 0, // sub8
352 0, // sub9
353 0, // sub10
354 0, // sub11
355 0, // sub12
356 0, // sub13
357 0, // sub14
358 0, // sub15
359 },
360 { // R600_KC1
361 0, // sub0
362 0, // sub1
363 0, // sub2
364 0, // sub3
365 0, // sub4
366 0, // sub5
367 0, // sub6
368 0, // sub7
369 0, // sub8
370 0, // sub9
371 0, // sub10
372 0, // sub11
373 0, // sub12
374 0, // sub13
375 0, // sub14
376 0, // sub15
377 },
378 { // R600_TReg32_W
379 0, // sub0
380 0, // sub1
381 0, // sub2
382 0, // sub3
383 0, // sub4
384 0, // sub5
385 0, // sub6
386 0, // sub7
387 0, // sub8
388 0, // sub9
389 0, // sub10
390 0, // sub11
391 0, // sub12
392 0, // sub13
393 0, // sub14
394 0, // sub15
395 },
396 { // R600_TReg32_Y
397 0, // sub0
398 0, // sub1
399 0, // sub2
400 0, // sub3
401 0, // sub4
402 0, // sub5
403 0, // sub6
404 0, // sub7
405 0, // sub8
406 0, // sub9
407 0, // sub10
408 0, // sub11
409 0, // sub12
410 0, // sub13
411 0, // sub14
412 0, // sub15
413 },
414 { // R600_TReg32_Z
415 0, // sub0
416 0, // sub1
417 0, // sub2
418 0, // sub3
419 0, // sub4
420 0, // sub5
421 0, // sub6
422 0, // sub7
423 0, // sub8
424 0, // sub9
425 0, // sub10
426 0, // sub11
427 0, // sub12
428 0, // sub13
429 0, // sub14
430 0, // sub15
431 },
432 { // R600_ArrayBase
433 0, // sub0
434 0, // sub1
435 0, // sub2
436 0, // sub3
437 0, // sub4
438 0, // sub5
439 0, // sub6
440 0, // sub7
441 0, // sub8
442 0, // sub9
443 0, // sub10
444 0, // sub11
445 0, // sub12
446 0, // sub13
447 0, // sub14
448 0, // sub15
449 },
450 { // R600_KC0_W
451 0, // sub0
452 0, // sub1
453 0, // sub2
454 0, // sub3
455 0, // sub4
456 0, // sub5
457 0, // sub6
458 0, // sub7
459 0, // sub8
460 0, // sub9
461 0, // sub10
462 0, // sub11
463 0, // sub12
464 0, // sub13
465 0, // sub14
466 0, // sub15
467 },
468 { // R600_KC0_X
469 0, // sub0
470 0, // sub1
471 0, // sub2
472 0, // sub3
473 0, // sub4
474 0, // sub5
475 0, // sub6
476 0, // sub7
477 0, // sub8
478 0, // sub9
479 0, // sub10
480 0, // sub11
481 0, // sub12
482 0, // sub13
483 0, // sub14
484 0, // sub15
485 },
486 { // R600_KC0_Y
487 0, // sub0
488 0, // sub1
489 0, // sub2
490 0, // sub3
491 0, // sub4
492 0, // sub5
493 0, // sub6
494 0, // sub7
495 0, // sub8
496 0, // sub9
497 0, // sub10
498 0, // sub11
499 0, // sub12
500 0, // sub13
501 0, // sub14
502 0, // sub15
503 },
504 { // R600_KC0_Z
505 0, // sub0
506 0, // sub1
507 0, // sub2
508 0, // sub3
509 0, // sub4
510 0, // sub5
511 0, // sub6
512 0, // sub7
513 0, // sub8
514 0, // sub9
515 0, // sub10
516 0, // sub11
517 0, // sub12
518 0, // sub13
519 0, // sub14
520 0, // sub15
521 },
522 { // R600_KC1_W
523 0, // sub0
524 0, // sub1
525 0, // sub2
526 0, // sub3
527 0, // sub4
528 0, // sub5
529 0, // sub6
530 0, // sub7
531 0, // sub8
532 0, // sub9
533 0, // sub10
534 0, // sub11
535 0, // sub12
536 0, // sub13
537 0, // sub14
538 0, // sub15
539 },
540 { // R600_KC1_X
541 0, // sub0
542 0, // sub1
543 0, // sub2
544 0, // sub3
545 0, // sub4
546 0, // sub5
547 0, // sub6
548 0, // sub7
549 0, // sub8
550 0, // sub9
551 0, // sub10
552 0, // sub11
553 0, // sub12
554 0, // sub13
555 0, // sub14
556 0, // sub15
557 },
558 { // R600_KC1_Y
559 0, // sub0
560 0, // sub1
561 0, // sub2
562 0, // sub3
563 0, // sub4
564 0, // sub5
565 0, // sub6
566 0, // sub7
567 0, // sub8
568 0, // sub9
569 0, // sub10
570 0, // sub11
571 0, // sub12
572 0, // sub13
573 0, // sub14
574 0, // sub15
575 },
576 { // R600_KC1_Z
577 0, // sub0
578 0, // sub1
579 0, // sub2
580 0, // sub3
581 0, // sub4
582 0, // sub5
583 0, // sub6
584 0, // sub7
585 0, // sub8
586 0, // sub9
587 0, // sub10
588 0, // sub11
589 0, // sub12
590 0, // sub13
591 0, // sub14
592 0, // sub15
593 },
594 { // R600_LDS_SRC_REG
595 0, // sub0
596 0, // sub1
597 0, // sub2
598 0, // sub3
599 0, // sub4
600 0, // sub5
601 0, // sub6
602 0, // sub7
603 0, // sub8
604 0, // sub9
605 0, // sub10
606 0, // sub11
607 0, // sub12
608 0, // sub13
609 0, // sub14
610 0, // sub15
611 },
612 { // R600_Predicate
613 0, // sub0
614 0, // sub1
615 0, // sub2
616 0, // sub3
617 0, // sub4
618 0, // sub5
619 0, // sub6
620 0, // sub7
621 0, // sub8
622 0, // sub9
623 0, // sub10
624 0, // sub11
625 0, // sub12
626 0, // sub13
627 0, // sub14
628 0, // sub15
629 },
630 { // R600_Addr_W
631 0, // sub0
632 0, // sub1
633 0, // sub2
634 0, // sub3
635 0, // sub4
636 0, // sub5
637 0, // sub6
638 0, // sub7
639 0, // sub8
640 0, // sub9
641 0, // sub10
642 0, // sub11
643 0, // sub12
644 0, // sub13
645 0, // sub14
646 0, // sub15
647 },
648 { // R600_Addr_Y
649 0, // sub0
650 0, // sub1
651 0, // sub2
652 0, // sub3
653 0, // sub4
654 0, // sub5
655 0, // sub6
656 0, // sub7
657 0, // sub8
658 0, // sub9
659 0, // sub10
660 0, // sub11
661 0, // sub12
662 0, // sub13
663 0, // sub14
664 0, // sub15
665 },
666 { // R600_Addr_Z
667 0, // sub0
668 0, // sub1
669 0, // sub2
670 0, // sub3
671 0, // sub4
672 0, // sub5
673 0, // sub6
674 0, // sub7
675 0, // sub8
676 0, // sub9
677 0, // sub10
678 0, // sub11
679 0, // sub12
680 0, // sub13
681 0, // sub14
682 0, // sub15
683 },
684 { // R600_LDS_SRC_REG_and_R600_Reg32
685 0, // sub0
686 0, // sub1
687 0, // sub2
688 0, // sub3
689 0, // sub4
690 0, // sub5
691 0, // sub6
692 0, // sub7
693 0, // sub8
694 0, // sub9
695 0, // sub10
696 0, // sub11
697 0, // sub12
698 0, // sub13
699 0, // sub14
700 0, // sub15
701 },
702 { // R600_Predicate_Bit
703 0, // sub0
704 0, // sub1
705 0, // sub2
706 0, // sub3
707 0, // sub4
708 0, // sub5
709 0, // sub6
710 0, // sub7
711 0, // sub8
712 0, // sub9
713 0, // sub10
714 0, // sub11
715 0, // sub12
716 0, // sub13
717 0, // sub14
718 0, // sub15
719 },
720 { // R600_Reg64
721 26, // sub0 -> R600_Reg64
722 26, // sub1 -> R600_Reg64
723 0, // sub2
724 0, // sub3
725 0, // sub4
726 0, // sub5
727 0, // sub6
728 0, // sub7
729 0, // sub8
730 0, // sub9
731 0, // sub10
732 0, // sub11
733 0, // sub12
734 0, // sub13
735 0, // sub14
736 0, // sub15
737 },
738 { // R600_Reg64Vertical
739 27, // sub0 -> R600_Reg64Vertical
740 27, // sub1 -> R600_Reg64Vertical
741 0, // sub2
742 0, // sub3
743 0, // sub4
744 0, // sub5
745 0, // sub6
746 0, // sub7
747 0, // sub8
748 0, // sub9
749 0, // sub10
750 0, // sub11
751 0, // sub12
752 0, // sub13
753 0, // sub14
754 0, // sub15
755 },
756 { // R600_Reg64Vertical_with_sub0_in_R600_TReg32_W
757 28, // sub0 -> R600_Reg64Vertical_with_sub0_in_R600_TReg32_W
758 28, // sub1 -> R600_Reg64Vertical_with_sub0_in_R600_TReg32_W
759 0, // sub2
760 0, // sub3
761 0, // sub4
762 0, // sub5
763 0, // sub6
764 0, // sub7
765 0, // sub8
766 0, // sub9
767 0, // sub10
768 0, // sub11
769 0, // sub12
770 0, // sub13
771 0, // sub14
772 0, // sub15
773 },
774 { // R600_Reg64Vertical_with_sub0_in_R600_TReg32_X
775 29, // sub0 -> R600_Reg64Vertical_with_sub0_in_R600_TReg32_X
776 29, // sub1 -> R600_Reg64Vertical_with_sub0_in_R600_TReg32_X
777 0, // sub2
778 0, // sub3
779 0, // sub4
780 0, // sub5
781 0, // sub6
782 0, // sub7
783 0, // sub8
784 0, // sub9
785 0, // sub10
786 0, // sub11
787 0, // sub12
788 0, // sub13
789 0, // sub14
790 0, // sub15
791 },
792 { // R600_Reg64Vertical_with_sub0_in_R600_TReg32_Y
793 30, // sub0 -> R600_Reg64Vertical_with_sub0_in_R600_TReg32_Y
794 30, // sub1 -> R600_Reg64Vertical_with_sub0_in_R600_TReg32_Y
795 0, // sub2
796 0, // sub3
797 0, // sub4
798 0, // sub5
799 0, // sub6
800 0, // sub7
801 0, // sub8
802 0, // sub9
803 0, // sub10
804 0, // sub11
805 0, // sub12
806 0, // sub13
807 0, // sub14
808 0, // sub15
809 },
810 { // R600_Reg64Vertical_with_sub0_in_R600_TReg32_Z
811 31, // sub0 -> R600_Reg64Vertical_with_sub0_in_R600_TReg32_Z
812 31, // sub1 -> R600_Reg64Vertical_with_sub0_in_R600_TReg32_Z
813 0, // sub2
814 0, // sub3
815 0, // sub4
816 0, // sub5
817 0, // sub6
818 0, // sub7
819 0, // sub8
820 0, // sub9
821 0, // sub10
822 0, // sub11
823 0, // sub12
824 0, // sub13
825 0, // sub14
826 0, // sub15
827 },
828 { // R600_Reg128
829 32, // sub0 -> R600_Reg128
830 32, // sub1 -> R600_Reg128
831 32, // sub2 -> R600_Reg128
832 32, // sub3 -> R600_Reg128
833 0, // sub4
834 0, // sub5
835 0, // sub6
836 0, // sub7
837 0, // sub8
838 0, // sub9
839 0, // sub10
840 0, // sub11
841 0, // sub12
842 0, // sub13
843 0, // sub14
844 0, // sub15
845 },
846 { // R600_Reg128Vertical
847 33, // sub0 -> R600_Reg128Vertical
848 33, // sub1 -> R600_Reg128Vertical
849 33, // sub2 -> R600_Reg128Vertical
850 33, // sub3 -> R600_Reg128Vertical
851 0, // sub4
852 0, // sub5
853 0, // sub6
854 0, // sub7
855 0, // sub8
856 0, // sub9
857 0, // sub10
858 0, // sub11
859 0, // sub12
860 0, // sub13
861 0, // sub14
862 0, // sub15
863 },
864 { // R600_Reg128Vertical_with_sub0_in_R600_TReg32_W
865 34, // sub0 -> R600_Reg128Vertical_with_sub0_in_R600_TReg32_W
866 34, // sub1 -> R600_Reg128Vertical_with_sub0_in_R600_TReg32_W
867 34, // sub2 -> R600_Reg128Vertical_with_sub0_in_R600_TReg32_W
868 34, // sub3 -> R600_Reg128Vertical_with_sub0_in_R600_TReg32_W
869 0, // sub4
870 0, // sub5
871 0, // sub6
872 0, // sub7
873 0, // sub8
874 0, // sub9
875 0, // sub10
876 0, // sub11
877 0, // sub12
878 0, // sub13
879 0, // sub14
880 0, // sub15
881 },
882 { // R600_Reg128Vertical_with_sub0_in_R600_TReg32_X
883 35, // sub0 -> R600_Reg128Vertical_with_sub0_in_R600_TReg32_X
884 35, // sub1 -> R600_Reg128Vertical_with_sub0_in_R600_TReg32_X
885 35, // sub2 -> R600_Reg128Vertical_with_sub0_in_R600_TReg32_X
886 35, // sub3 -> R600_Reg128Vertical_with_sub0_in_R600_TReg32_X
887 0, // sub4
888 0, // sub5
889 0, // sub6
890 0, // sub7
891 0, // sub8
892 0, // sub9
893 0, // sub10
894 0, // sub11
895 0, // sub12
896 0, // sub13
897 0, // sub14
898 0, // sub15
899 },
900 { // R600_Reg128Vertical_with_sub0_in_R600_TReg32_Y
901 36, // sub0 -> R600_Reg128Vertical_with_sub0_in_R600_TReg32_Y
902 36, // sub1 -> R600_Reg128Vertical_with_sub0_in_R600_TReg32_Y
903 36, // sub2 -> R600_Reg128Vertical_with_sub0_in_R600_TReg32_Y
904 36, // sub3 -> R600_Reg128Vertical_with_sub0_in_R600_TReg32_Y
905 0, // sub4
906 0, // sub5
907 0, // sub6
908 0, // sub7
909 0, // sub8
910 0, // sub9
911 0, // sub10
912 0, // sub11
913 0, // sub12
914 0, // sub13
915 0, // sub14
916 0, // sub15
917 },
918 { // R600_Reg128Vertical_with_sub0_in_R600_TReg32_Z
919 37, // sub0 -> R600_Reg128Vertical_with_sub0_in_R600_TReg32_Z
920 37, // sub1 -> R600_Reg128Vertical_with_sub0_in_R600_TReg32_Z
921 37, // sub2 -> R600_Reg128Vertical_with_sub0_in_R600_TReg32_Z
922 37, // sub3 -> R600_Reg128Vertical_with_sub0_in_R600_TReg32_Z
923 0, // sub4
924 0, // sub5
925 0, // sub6
926 0, // sub7
927 0, // sub8
928 0, // sub9
929 0, // sub10
930 0, // sub11
931 0, // sub12
932 0, // sub13
933 0, // sub14
934 0, // sub15
935 },
936
937 };
938 assert(RC && "Missing regclass");
939 if (!Idx) return RC;
940 --Idx;
941 assert(Idx < 16 && "Bad subreg");
942 unsigned TV = Table[RC->getID()][Idx];
943 return TV ? getRegClass(i: TV - 1) : nullptr;
944}const TargetRegisterClass *R600GenRegisterInfo::getSubRegisterClass(const TargetRegisterClass *RC, unsigned Idx) const {
945 static constexpr uint8_t Table[37][16] = {
946 { // R600_Reg32
947 0, // R600_Reg32:sub0
948 0, // R600_Reg32:sub1
949 0, // R600_Reg32:sub2
950 0, // R600_Reg32:sub3
951 0, // R600_Reg32:sub4
952 0, // R600_Reg32:sub5
953 0, // R600_Reg32:sub6
954 0, // R600_Reg32:sub7
955 0, // R600_Reg32:sub8
956 0, // R600_Reg32:sub9
957 0, // R600_Reg32:sub10
958 0, // R600_Reg32:sub11
959 0, // R600_Reg32:sub12
960 0, // R600_Reg32:sub13
961 0, // R600_Reg32:sub14
962 0, // R600_Reg32:sub15
963 },
964 { // R600_TReg32
965 0, // R600_TReg32:sub0
966 0, // R600_TReg32:sub1
967 0, // R600_TReg32:sub2
968 0, // R600_TReg32:sub3
969 0, // R600_TReg32:sub4
970 0, // R600_TReg32:sub5
971 0, // R600_TReg32:sub6
972 0, // R600_TReg32:sub7
973 0, // R600_TReg32:sub8
974 0, // R600_TReg32:sub9
975 0, // R600_TReg32:sub10
976 0, // R600_TReg32:sub11
977 0, // R600_TReg32:sub12
978 0, // R600_TReg32:sub13
979 0, // R600_TReg32:sub14
980 0, // R600_TReg32:sub15
981 },
982 { // R600_TReg32_X
983 0, // R600_TReg32_X:sub0
984 0, // R600_TReg32_X:sub1
985 0, // R600_TReg32_X:sub2
986 0, // R600_TReg32_X:sub3
987 0, // R600_TReg32_X:sub4
988 0, // R600_TReg32_X:sub5
989 0, // R600_TReg32_X:sub6
990 0, // R600_TReg32_X:sub7
991 0, // R600_TReg32_X:sub8
992 0, // R600_TReg32_X:sub9
993 0, // R600_TReg32_X:sub10
994 0, // R600_TReg32_X:sub11
995 0, // R600_TReg32_X:sub12
996 0, // R600_TReg32_X:sub13
997 0, // R600_TReg32_X:sub14
998 0, // R600_TReg32_X:sub15
999 },
1000 { // R600_Addr
1001 0, // R600_Addr:sub0
1002 0, // R600_Addr:sub1
1003 0, // R600_Addr:sub2
1004 0, // R600_Addr:sub3
1005 0, // R600_Addr:sub4
1006 0, // R600_Addr:sub5
1007 0, // R600_Addr:sub6
1008 0, // R600_Addr:sub7
1009 0, // R600_Addr:sub8
1010 0, // R600_Addr:sub9
1011 0, // R600_Addr:sub10
1012 0, // R600_Addr:sub11
1013 0, // R600_Addr:sub12
1014 0, // R600_Addr:sub13
1015 0, // R600_Addr:sub14
1016 0, // R600_Addr:sub15
1017 },
1018 { // R600_KC0
1019 0, // R600_KC0:sub0
1020 0, // R600_KC0:sub1
1021 0, // R600_KC0:sub2
1022 0, // R600_KC0:sub3
1023 0, // R600_KC0:sub4
1024 0, // R600_KC0:sub5
1025 0, // R600_KC0:sub6
1026 0, // R600_KC0:sub7
1027 0, // R600_KC0:sub8
1028 0, // R600_KC0:sub9
1029 0, // R600_KC0:sub10
1030 0, // R600_KC0:sub11
1031 0, // R600_KC0:sub12
1032 0, // R600_KC0:sub13
1033 0, // R600_KC0:sub14
1034 0, // R600_KC0:sub15
1035 },
1036 { // R600_KC1
1037 0, // R600_KC1:sub0
1038 0, // R600_KC1:sub1
1039 0, // R600_KC1:sub2
1040 0, // R600_KC1:sub3
1041 0, // R600_KC1:sub4
1042 0, // R600_KC1:sub5
1043 0, // R600_KC1:sub6
1044 0, // R600_KC1:sub7
1045 0, // R600_KC1:sub8
1046 0, // R600_KC1:sub9
1047 0, // R600_KC1:sub10
1048 0, // R600_KC1:sub11
1049 0, // R600_KC1:sub12
1050 0, // R600_KC1:sub13
1051 0, // R600_KC1:sub14
1052 0, // R600_KC1:sub15
1053 },
1054 { // R600_TReg32_W
1055 0, // R600_TReg32_W:sub0
1056 0, // R600_TReg32_W:sub1
1057 0, // R600_TReg32_W:sub2
1058 0, // R600_TReg32_W:sub3
1059 0, // R600_TReg32_W:sub4
1060 0, // R600_TReg32_W:sub5
1061 0, // R600_TReg32_W:sub6
1062 0, // R600_TReg32_W:sub7
1063 0, // R600_TReg32_W:sub8
1064 0, // R600_TReg32_W:sub9
1065 0, // R600_TReg32_W:sub10
1066 0, // R600_TReg32_W:sub11
1067 0, // R600_TReg32_W:sub12
1068 0, // R600_TReg32_W:sub13
1069 0, // R600_TReg32_W:sub14
1070 0, // R600_TReg32_W:sub15
1071 },
1072 { // R600_TReg32_Y
1073 0, // R600_TReg32_Y:sub0
1074 0, // R600_TReg32_Y:sub1
1075 0, // R600_TReg32_Y:sub2
1076 0, // R600_TReg32_Y:sub3
1077 0, // R600_TReg32_Y:sub4
1078 0, // R600_TReg32_Y:sub5
1079 0, // R600_TReg32_Y:sub6
1080 0, // R600_TReg32_Y:sub7
1081 0, // R600_TReg32_Y:sub8
1082 0, // R600_TReg32_Y:sub9
1083 0, // R600_TReg32_Y:sub10
1084 0, // R600_TReg32_Y:sub11
1085 0, // R600_TReg32_Y:sub12
1086 0, // R600_TReg32_Y:sub13
1087 0, // R600_TReg32_Y:sub14
1088 0, // R600_TReg32_Y:sub15
1089 },
1090 { // R600_TReg32_Z
1091 0, // R600_TReg32_Z:sub0
1092 0, // R600_TReg32_Z:sub1
1093 0, // R600_TReg32_Z:sub2
1094 0, // R600_TReg32_Z:sub3
1095 0, // R600_TReg32_Z:sub4
1096 0, // R600_TReg32_Z:sub5
1097 0, // R600_TReg32_Z:sub6
1098 0, // R600_TReg32_Z:sub7
1099 0, // R600_TReg32_Z:sub8
1100 0, // R600_TReg32_Z:sub9
1101 0, // R600_TReg32_Z:sub10
1102 0, // R600_TReg32_Z:sub11
1103 0, // R600_TReg32_Z:sub12
1104 0, // R600_TReg32_Z:sub13
1105 0, // R600_TReg32_Z:sub14
1106 0, // R600_TReg32_Z:sub15
1107 },
1108 { // R600_ArrayBase
1109 0, // R600_ArrayBase:sub0
1110 0, // R600_ArrayBase:sub1
1111 0, // R600_ArrayBase:sub2
1112 0, // R600_ArrayBase:sub3
1113 0, // R600_ArrayBase:sub4
1114 0, // R600_ArrayBase:sub5
1115 0, // R600_ArrayBase:sub6
1116 0, // R600_ArrayBase:sub7
1117 0, // R600_ArrayBase:sub8
1118 0, // R600_ArrayBase:sub9
1119 0, // R600_ArrayBase:sub10
1120 0, // R600_ArrayBase:sub11
1121 0, // R600_ArrayBase:sub12
1122 0, // R600_ArrayBase:sub13
1123 0, // R600_ArrayBase:sub14
1124 0, // R600_ArrayBase:sub15
1125 },
1126 { // R600_KC0_W
1127 0, // R600_KC0_W:sub0
1128 0, // R600_KC0_W:sub1
1129 0, // R600_KC0_W:sub2
1130 0, // R600_KC0_W:sub3
1131 0, // R600_KC0_W:sub4
1132 0, // R600_KC0_W:sub5
1133 0, // R600_KC0_W:sub6
1134 0, // R600_KC0_W:sub7
1135 0, // R600_KC0_W:sub8
1136 0, // R600_KC0_W:sub9
1137 0, // R600_KC0_W:sub10
1138 0, // R600_KC0_W:sub11
1139 0, // R600_KC0_W:sub12
1140 0, // R600_KC0_W:sub13
1141 0, // R600_KC0_W:sub14
1142 0, // R600_KC0_W:sub15
1143 },
1144 { // R600_KC0_X
1145 0, // R600_KC0_X:sub0
1146 0, // R600_KC0_X:sub1
1147 0, // R600_KC0_X:sub2
1148 0, // R600_KC0_X:sub3
1149 0, // R600_KC0_X:sub4
1150 0, // R600_KC0_X:sub5
1151 0, // R600_KC0_X:sub6
1152 0, // R600_KC0_X:sub7
1153 0, // R600_KC0_X:sub8
1154 0, // R600_KC0_X:sub9
1155 0, // R600_KC0_X:sub10
1156 0, // R600_KC0_X:sub11
1157 0, // R600_KC0_X:sub12
1158 0, // R600_KC0_X:sub13
1159 0, // R600_KC0_X:sub14
1160 0, // R600_KC0_X:sub15
1161 },
1162 { // R600_KC0_Y
1163 0, // R600_KC0_Y:sub0
1164 0, // R600_KC0_Y:sub1
1165 0, // R600_KC0_Y:sub2
1166 0, // R600_KC0_Y:sub3
1167 0, // R600_KC0_Y:sub4
1168 0, // R600_KC0_Y:sub5
1169 0, // R600_KC0_Y:sub6
1170 0, // R600_KC0_Y:sub7
1171 0, // R600_KC0_Y:sub8
1172 0, // R600_KC0_Y:sub9
1173 0, // R600_KC0_Y:sub10
1174 0, // R600_KC0_Y:sub11
1175 0, // R600_KC0_Y:sub12
1176 0, // R600_KC0_Y:sub13
1177 0, // R600_KC0_Y:sub14
1178 0, // R600_KC0_Y:sub15
1179 },
1180 { // R600_KC0_Z
1181 0, // R600_KC0_Z:sub0
1182 0, // R600_KC0_Z:sub1
1183 0, // R600_KC0_Z:sub2
1184 0, // R600_KC0_Z:sub3
1185 0, // R600_KC0_Z:sub4
1186 0, // R600_KC0_Z:sub5
1187 0, // R600_KC0_Z:sub6
1188 0, // R600_KC0_Z:sub7
1189 0, // R600_KC0_Z:sub8
1190 0, // R600_KC0_Z:sub9
1191 0, // R600_KC0_Z:sub10
1192 0, // R600_KC0_Z:sub11
1193 0, // R600_KC0_Z:sub12
1194 0, // R600_KC0_Z:sub13
1195 0, // R600_KC0_Z:sub14
1196 0, // R600_KC0_Z:sub15
1197 },
1198 { // R600_KC1_W
1199 0, // R600_KC1_W:sub0
1200 0, // R600_KC1_W:sub1
1201 0, // R600_KC1_W:sub2
1202 0, // R600_KC1_W:sub3
1203 0, // R600_KC1_W:sub4
1204 0, // R600_KC1_W:sub5
1205 0, // R600_KC1_W:sub6
1206 0, // R600_KC1_W:sub7
1207 0, // R600_KC1_W:sub8
1208 0, // R600_KC1_W:sub9
1209 0, // R600_KC1_W:sub10
1210 0, // R600_KC1_W:sub11
1211 0, // R600_KC1_W:sub12
1212 0, // R600_KC1_W:sub13
1213 0, // R600_KC1_W:sub14
1214 0, // R600_KC1_W:sub15
1215 },
1216 { // R600_KC1_X
1217 0, // R600_KC1_X:sub0
1218 0, // R600_KC1_X:sub1
1219 0, // R600_KC1_X:sub2
1220 0, // R600_KC1_X:sub3
1221 0, // R600_KC1_X:sub4
1222 0, // R600_KC1_X:sub5
1223 0, // R600_KC1_X:sub6
1224 0, // R600_KC1_X:sub7
1225 0, // R600_KC1_X:sub8
1226 0, // R600_KC1_X:sub9
1227 0, // R600_KC1_X:sub10
1228 0, // R600_KC1_X:sub11
1229 0, // R600_KC1_X:sub12
1230 0, // R600_KC1_X:sub13
1231 0, // R600_KC1_X:sub14
1232 0, // R600_KC1_X:sub15
1233 },
1234 { // R600_KC1_Y
1235 0, // R600_KC1_Y:sub0
1236 0, // R600_KC1_Y:sub1
1237 0, // R600_KC1_Y:sub2
1238 0, // R600_KC1_Y:sub3
1239 0, // R600_KC1_Y:sub4
1240 0, // R600_KC1_Y:sub5
1241 0, // R600_KC1_Y:sub6
1242 0, // R600_KC1_Y:sub7
1243 0, // R600_KC1_Y:sub8
1244 0, // R600_KC1_Y:sub9
1245 0, // R600_KC1_Y:sub10
1246 0, // R600_KC1_Y:sub11
1247 0, // R600_KC1_Y:sub12
1248 0, // R600_KC1_Y:sub13
1249 0, // R600_KC1_Y:sub14
1250 0, // R600_KC1_Y:sub15
1251 },
1252 { // R600_KC1_Z
1253 0, // R600_KC1_Z:sub0
1254 0, // R600_KC1_Z:sub1
1255 0, // R600_KC1_Z:sub2
1256 0, // R600_KC1_Z:sub3
1257 0, // R600_KC1_Z:sub4
1258 0, // R600_KC1_Z:sub5
1259 0, // R600_KC1_Z:sub6
1260 0, // R600_KC1_Z:sub7
1261 0, // R600_KC1_Z:sub8
1262 0, // R600_KC1_Z:sub9
1263 0, // R600_KC1_Z:sub10
1264 0, // R600_KC1_Z:sub11
1265 0, // R600_KC1_Z:sub12
1266 0, // R600_KC1_Z:sub13
1267 0, // R600_KC1_Z:sub14
1268 0, // R600_KC1_Z:sub15
1269 },
1270 { // R600_LDS_SRC_REG
1271 0, // R600_LDS_SRC_REG:sub0
1272 0, // R600_LDS_SRC_REG:sub1
1273 0, // R600_LDS_SRC_REG:sub2
1274 0, // R600_LDS_SRC_REG:sub3
1275 0, // R600_LDS_SRC_REG:sub4
1276 0, // R600_LDS_SRC_REG:sub5
1277 0, // R600_LDS_SRC_REG:sub6
1278 0, // R600_LDS_SRC_REG:sub7
1279 0, // R600_LDS_SRC_REG:sub8
1280 0, // R600_LDS_SRC_REG:sub9
1281 0, // R600_LDS_SRC_REG:sub10
1282 0, // R600_LDS_SRC_REG:sub11
1283 0, // R600_LDS_SRC_REG:sub12
1284 0, // R600_LDS_SRC_REG:sub13
1285 0, // R600_LDS_SRC_REG:sub14
1286 0, // R600_LDS_SRC_REG:sub15
1287 },
1288 { // R600_Predicate
1289 0, // R600_Predicate:sub0
1290 0, // R600_Predicate:sub1
1291 0, // R600_Predicate:sub2
1292 0, // R600_Predicate:sub3
1293 0, // R600_Predicate:sub4
1294 0, // R600_Predicate:sub5
1295 0, // R600_Predicate:sub6
1296 0, // R600_Predicate:sub7
1297 0, // R600_Predicate:sub8
1298 0, // R600_Predicate:sub9
1299 0, // R600_Predicate:sub10
1300 0, // R600_Predicate:sub11
1301 0, // R600_Predicate:sub12
1302 0, // R600_Predicate:sub13
1303 0, // R600_Predicate:sub14
1304 0, // R600_Predicate:sub15
1305 },
1306 { // R600_Addr_W
1307 0, // R600_Addr_W:sub0
1308 0, // R600_Addr_W:sub1
1309 0, // R600_Addr_W:sub2
1310 0, // R600_Addr_W:sub3
1311 0, // R600_Addr_W:sub4
1312 0, // R600_Addr_W:sub5
1313 0, // R600_Addr_W:sub6
1314 0, // R600_Addr_W:sub7
1315 0, // R600_Addr_W:sub8
1316 0, // R600_Addr_W:sub9
1317 0, // R600_Addr_W:sub10
1318 0, // R600_Addr_W:sub11
1319 0, // R600_Addr_W:sub12
1320 0, // R600_Addr_W:sub13
1321 0, // R600_Addr_W:sub14
1322 0, // R600_Addr_W:sub15
1323 },
1324 { // R600_Addr_Y
1325 0, // R600_Addr_Y:sub0
1326 0, // R600_Addr_Y:sub1
1327 0, // R600_Addr_Y:sub2
1328 0, // R600_Addr_Y:sub3
1329 0, // R600_Addr_Y:sub4
1330 0, // R600_Addr_Y:sub5
1331 0, // R600_Addr_Y:sub6
1332 0, // R600_Addr_Y:sub7
1333 0, // R600_Addr_Y:sub8
1334 0, // R600_Addr_Y:sub9
1335 0, // R600_Addr_Y:sub10
1336 0, // R600_Addr_Y:sub11
1337 0, // R600_Addr_Y:sub12
1338 0, // R600_Addr_Y:sub13
1339 0, // R600_Addr_Y:sub14
1340 0, // R600_Addr_Y:sub15
1341 },
1342 { // R600_Addr_Z
1343 0, // R600_Addr_Z:sub0
1344 0, // R600_Addr_Z:sub1
1345 0, // R600_Addr_Z:sub2
1346 0, // R600_Addr_Z:sub3
1347 0, // R600_Addr_Z:sub4
1348 0, // R600_Addr_Z:sub5
1349 0, // R600_Addr_Z:sub6
1350 0, // R600_Addr_Z:sub7
1351 0, // R600_Addr_Z:sub8
1352 0, // R600_Addr_Z:sub9
1353 0, // R600_Addr_Z:sub10
1354 0, // R600_Addr_Z:sub11
1355 0, // R600_Addr_Z:sub12
1356 0, // R600_Addr_Z:sub13
1357 0, // R600_Addr_Z:sub14
1358 0, // R600_Addr_Z:sub15
1359 },
1360 { // R600_LDS_SRC_REG_and_R600_Reg32
1361 0, // R600_LDS_SRC_REG_and_R600_Reg32:sub0
1362 0, // R600_LDS_SRC_REG_and_R600_Reg32:sub1
1363 0, // R600_LDS_SRC_REG_and_R600_Reg32:sub2
1364 0, // R600_LDS_SRC_REG_and_R600_Reg32:sub3
1365 0, // R600_LDS_SRC_REG_and_R600_Reg32:sub4
1366 0, // R600_LDS_SRC_REG_and_R600_Reg32:sub5
1367 0, // R600_LDS_SRC_REG_and_R600_Reg32:sub6
1368 0, // R600_LDS_SRC_REG_and_R600_Reg32:sub7
1369 0, // R600_LDS_SRC_REG_and_R600_Reg32:sub8
1370 0, // R600_LDS_SRC_REG_and_R600_Reg32:sub9
1371 0, // R600_LDS_SRC_REG_and_R600_Reg32:sub10
1372 0, // R600_LDS_SRC_REG_and_R600_Reg32:sub11
1373 0, // R600_LDS_SRC_REG_and_R600_Reg32:sub12
1374 0, // R600_LDS_SRC_REG_and_R600_Reg32:sub13
1375 0, // R600_LDS_SRC_REG_and_R600_Reg32:sub14
1376 0, // R600_LDS_SRC_REG_and_R600_Reg32:sub15
1377 },
1378 { // R600_Predicate_Bit
1379 0, // R600_Predicate_Bit:sub0
1380 0, // R600_Predicate_Bit:sub1
1381 0, // R600_Predicate_Bit:sub2
1382 0, // R600_Predicate_Bit:sub3
1383 0, // R600_Predicate_Bit:sub4
1384 0, // R600_Predicate_Bit:sub5
1385 0, // R600_Predicate_Bit:sub6
1386 0, // R600_Predicate_Bit:sub7
1387 0, // R600_Predicate_Bit:sub8
1388 0, // R600_Predicate_Bit:sub9
1389 0, // R600_Predicate_Bit:sub10
1390 0, // R600_Predicate_Bit:sub11
1391 0, // R600_Predicate_Bit:sub12
1392 0, // R600_Predicate_Bit:sub13
1393 0, // R600_Predicate_Bit:sub14
1394 0, // R600_Predicate_Bit:sub15
1395 },
1396 { // R600_Reg64
1397 3, // R600_Reg64:sub0 -> R600_TReg32_X
1398 8, // R600_Reg64:sub1 -> R600_TReg32_Y
1399 0, // R600_Reg64:sub2
1400 0, // R600_Reg64:sub3
1401 0, // R600_Reg64:sub4
1402 0, // R600_Reg64:sub5
1403 0, // R600_Reg64:sub6
1404 0, // R600_Reg64:sub7
1405 0, // R600_Reg64:sub8
1406 0, // R600_Reg64:sub9
1407 0, // R600_Reg64:sub10
1408 0, // R600_Reg64:sub11
1409 0, // R600_Reg64:sub12
1410 0, // R600_Reg64:sub13
1411 0, // R600_Reg64:sub14
1412 0, // R600_Reg64:sub15
1413 },
1414 { // R600_Reg64Vertical
1415 2, // R600_Reg64Vertical:sub0 -> R600_TReg32
1416 2, // R600_Reg64Vertical:sub1 -> R600_TReg32
1417 0, // R600_Reg64Vertical:sub2
1418 0, // R600_Reg64Vertical:sub3
1419 0, // R600_Reg64Vertical:sub4
1420 0, // R600_Reg64Vertical:sub5
1421 0, // R600_Reg64Vertical:sub6
1422 0, // R600_Reg64Vertical:sub7
1423 0, // R600_Reg64Vertical:sub8
1424 0, // R600_Reg64Vertical:sub9
1425 0, // R600_Reg64Vertical:sub10
1426 0, // R600_Reg64Vertical:sub11
1427 0, // R600_Reg64Vertical:sub12
1428 0, // R600_Reg64Vertical:sub13
1429 0, // R600_Reg64Vertical:sub14
1430 0, // R600_Reg64Vertical:sub15
1431 },
1432 { // R600_Reg64Vertical_with_sub0_in_R600_TReg32_W
1433 7, // R600_Reg64Vertical_with_sub0_in_R600_TReg32_W:sub0 -> R600_TReg32_W
1434 7, // R600_Reg64Vertical_with_sub0_in_R600_TReg32_W:sub1 -> R600_TReg32_W
1435 0, // R600_Reg64Vertical_with_sub0_in_R600_TReg32_W:sub2
1436 0, // R600_Reg64Vertical_with_sub0_in_R600_TReg32_W:sub3
1437 0, // R600_Reg64Vertical_with_sub0_in_R600_TReg32_W:sub4
1438 0, // R600_Reg64Vertical_with_sub0_in_R600_TReg32_W:sub5
1439 0, // R600_Reg64Vertical_with_sub0_in_R600_TReg32_W:sub6
1440 0, // R600_Reg64Vertical_with_sub0_in_R600_TReg32_W:sub7
1441 0, // R600_Reg64Vertical_with_sub0_in_R600_TReg32_W:sub8
1442 0, // R600_Reg64Vertical_with_sub0_in_R600_TReg32_W:sub9
1443 0, // R600_Reg64Vertical_with_sub0_in_R600_TReg32_W:sub10
1444 0, // R600_Reg64Vertical_with_sub0_in_R600_TReg32_W:sub11
1445 0, // R600_Reg64Vertical_with_sub0_in_R600_TReg32_W:sub12
1446 0, // R600_Reg64Vertical_with_sub0_in_R600_TReg32_W:sub13
1447 0, // R600_Reg64Vertical_with_sub0_in_R600_TReg32_W:sub14
1448 0, // R600_Reg64Vertical_with_sub0_in_R600_TReg32_W:sub15
1449 },
1450 { // R600_Reg64Vertical_with_sub0_in_R600_TReg32_X
1451 3, // R600_Reg64Vertical_with_sub0_in_R600_TReg32_X:sub0 -> R600_TReg32_X
1452 3, // R600_Reg64Vertical_with_sub0_in_R600_TReg32_X:sub1 -> R600_TReg32_X
1453 0, // R600_Reg64Vertical_with_sub0_in_R600_TReg32_X:sub2
1454 0, // R600_Reg64Vertical_with_sub0_in_R600_TReg32_X:sub3
1455 0, // R600_Reg64Vertical_with_sub0_in_R600_TReg32_X:sub4
1456 0, // R600_Reg64Vertical_with_sub0_in_R600_TReg32_X:sub5
1457 0, // R600_Reg64Vertical_with_sub0_in_R600_TReg32_X:sub6
1458 0, // R600_Reg64Vertical_with_sub0_in_R600_TReg32_X:sub7
1459 0, // R600_Reg64Vertical_with_sub0_in_R600_TReg32_X:sub8
1460 0, // R600_Reg64Vertical_with_sub0_in_R600_TReg32_X:sub9
1461 0, // R600_Reg64Vertical_with_sub0_in_R600_TReg32_X:sub10
1462 0, // R600_Reg64Vertical_with_sub0_in_R600_TReg32_X:sub11
1463 0, // R600_Reg64Vertical_with_sub0_in_R600_TReg32_X:sub12
1464 0, // R600_Reg64Vertical_with_sub0_in_R600_TReg32_X:sub13
1465 0, // R600_Reg64Vertical_with_sub0_in_R600_TReg32_X:sub14
1466 0, // R600_Reg64Vertical_with_sub0_in_R600_TReg32_X:sub15
1467 },
1468 { // R600_Reg64Vertical_with_sub0_in_R600_TReg32_Y
1469 8, // R600_Reg64Vertical_with_sub0_in_R600_TReg32_Y:sub0 -> R600_TReg32_Y
1470 8, // R600_Reg64Vertical_with_sub0_in_R600_TReg32_Y:sub1 -> R600_TReg32_Y
1471 0, // R600_Reg64Vertical_with_sub0_in_R600_TReg32_Y:sub2
1472 0, // R600_Reg64Vertical_with_sub0_in_R600_TReg32_Y:sub3
1473 0, // R600_Reg64Vertical_with_sub0_in_R600_TReg32_Y:sub4
1474 0, // R600_Reg64Vertical_with_sub0_in_R600_TReg32_Y:sub5
1475 0, // R600_Reg64Vertical_with_sub0_in_R600_TReg32_Y:sub6
1476 0, // R600_Reg64Vertical_with_sub0_in_R600_TReg32_Y:sub7
1477 0, // R600_Reg64Vertical_with_sub0_in_R600_TReg32_Y:sub8
1478 0, // R600_Reg64Vertical_with_sub0_in_R600_TReg32_Y:sub9
1479 0, // R600_Reg64Vertical_with_sub0_in_R600_TReg32_Y:sub10
1480 0, // R600_Reg64Vertical_with_sub0_in_R600_TReg32_Y:sub11
1481 0, // R600_Reg64Vertical_with_sub0_in_R600_TReg32_Y:sub12
1482 0, // R600_Reg64Vertical_with_sub0_in_R600_TReg32_Y:sub13
1483 0, // R600_Reg64Vertical_with_sub0_in_R600_TReg32_Y:sub14
1484 0, // R600_Reg64Vertical_with_sub0_in_R600_TReg32_Y:sub15
1485 },
1486 { // R600_Reg64Vertical_with_sub0_in_R600_TReg32_Z
1487 9, // R600_Reg64Vertical_with_sub0_in_R600_TReg32_Z:sub0 -> R600_TReg32_Z
1488 9, // R600_Reg64Vertical_with_sub0_in_R600_TReg32_Z:sub1 -> R600_TReg32_Z
1489 0, // R600_Reg64Vertical_with_sub0_in_R600_TReg32_Z:sub2
1490 0, // R600_Reg64Vertical_with_sub0_in_R600_TReg32_Z:sub3
1491 0, // R600_Reg64Vertical_with_sub0_in_R600_TReg32_Z:sub4
1492 0, // R600_Reg64Vertical_with_sub0_in_R600_TReg32_Z:sub5
1493 0, // R600_Reg64Vertical_with_sub0_in_R600_TReg32_Z:sub6
1494 0, // R600_Reg64Vertical_with_sub0_in_R600_TReg32_Z:sub7
1495 0, // R600_Reg64Vertical_with_sub0_in_R600_TReg32_Z:sub8
1496 0, // R600_Reg64Vertical_with_sub0_in_R600_TReg32_Z:sub9
1497 0, // R600_Reg64Vertical_with_sub0_in_R600_TReg32_Z:sub10
1498 0, // R600_Reg64Vertical_with_sub0_in_R600_TReg32_Z:sub11
1499 0, // R600_Reg64Vertical_with_sub0_in_R600_TReg32_Z:sub12
1500 0, // R600_Reg64Vertical_with_sub0_in_R600_TReg32_Z:sub13
1501 0, // R600_Reg64Vertical_with_sub0_in_R600_TReg32_Z:sub14
1502 0, // R600_Reg64Vertical_with_sub0_in_R600_TReg32_Z:sub15
1503 },
1504 { // R600_Reg128
1505 3, // R600_Reg128:sub0 -> R600_TReg32_X
1506 8, // R600_Reg128:sub1 -> R600_TReg32_Y
1507 9, // R600_Reg128:sub2 -> R600_TReg32_Z
1508 7, // R600_Reg128:sub3 -> R600_TReg32_W
1509 0, // R600_Reg128:sub4
1510 0, // R600_Reg128:sub5
1511 0, // R600_Reg128:sub6
1512 0, // R600_Reg128:sub7
1513 0, // R600_Reg128:sub8
1514 0, // R600_Reg128:sub9
1515 0, // R600_Reg128:sub10
1516 0, // R600_Reg128:sub11
1517 0, // R600_Reg128:sub12
1518 0, // R600_Reg128:sub13
1519 0, // R600_Reg128:sub14
1520 0, // R600_Reg128:sub15
1521 },
1522 { // R600_Reg128Vertical
1523 2, // R600_Reg128Vertical:sub0 -> R600_TReg32
1524 2, // R600_Reg128Vertical:sub1 -> R600_TReg32
1525 2, // R600_Reg128Vertical:sub2 -> R600_TReg32
1526 2, // R600_Reg128Vertical:sub3 -> R600_TReg32
1527 0, // R600_Reg128Vertical:sub4
1528 0, // R600_Reg128Vertical:sub5
1529 0, // R600_Reg128Vertical:sub6
1530 0, // R600_Reg128Vertical:sub7
1531 0, // R600_Reg128Vertical:sub8
1532 0, // R600_Reg128Vertical:sub9
1533 0, // R600_Reg128Vertical:sub10
1534 0, // R600_Reg128Vertical:sub11
1535 0, // R600_Reg128Vertical:sub12
1536 0, // R600_Reg128Vertical:sub13
1537 0, // R600_Reg128Vertical:sub14
1538 0, // R600_Reg128Vertical:sub15
1539 },
1540 { // R600_Reg128Vertical_with_sub0_in_R600_TReg32_W
1541 7, // R600_Reg128Vertical_with_sub0_in_R600_TReg32_W:sub0 -> R600_TReg32_W
1542 7, // R600_Reg128Vertical_with_sub0_in_R600_TReg32_W:sub1 -> R600_TReg32_W
1543 7, // R600_Reg128Vertical_with_sub0_in_R600_TReg32_W:sub2 -> R600_TReg32_W
1544 7, // R600_Reg128Vertical_with_sub0_in_R600_TReg32_W:sub3 -> R600_TReg32_W
1545 0, // R600_Reg128Vertical_with_sub0_in_R600_TReg32_W:sub4
1546 0, // R600_Reg128Vertical_with_sub0_in_R600_TReg32_W:sub5
1547 0, // R600_Reg128Vertical_with_sub0_in_R600_TReg32_W:sub6
1548 0, // R600_Reg128Vertical_with_sub0_in_R600_TReg32_W:sub7
1549 0, // R600_Reg128Vertical_with_sub0_in_R600_TReg32_W:sub8
1550 0, // R600_Reg128Vertical_with_sub0_in_R600_TReg32_W:sub9
1551 0, // R600_Reg128Vertical_with_sub0_in_R600_TReg32_W:sub10
1552 0, // R600_Reg128Vertical_with_sub0_in_R600_TReg32_W:sub11
1553 0, // R600_Reg128Vertical_with_sub0_in_R600_TReg32_W:sub12
1554 0, // R600_Reg128Vertical_with_sub0_in_R600_TReg32_W:sub13
1555 0, // R600_Reg128Vertical_with_sub0_in_R600_TReg32_W:sub14
1556 0, // R600_Reg128Vertical_with_sub0_in_R600_TReg32_W:sub15
1557 },
1558 { // R600_Reg128Vertical_with_sub0_in_R600_TReg32_X
1559 3, // R600_Reg128Vertical_with_sub0_in_R600_TReg32_X:sub0 -> R600_TReg32_X
1560 3, // R600_Reg128Vertical_with_sub0_in_R600_TReg32_X:sub1 -> R600_TReg32_X
1561 3, // R600_Reg128Vertical_with_sub0_in_R600_TReg32_X:sub2 -> R600_TReg32_X
1562 3, // R600_Reg128Vertical_with_sub0_in_R600_TReg32_X:sub3 -> R600_TReg32_X
1563 0, // R600_Reg128Vertical_with_sub0_in_R600_TReg32_X:sub4
1564 0, // R600_Reg128Vertical_with_sub0_in_R600_TReg32_X:sub5
1565 0, // R600_Reg128Vertical_with_sub0_in_R600_TReg32_X:sub6
1566 0, // R600_Reg128Vertical_with_sub0_in_R600_TReg32_X:sub7
1567 0, // R600_Reg128Vertical_with_sub0_in_R600_TReg32_X:sub8
1568 0, // R600_Reg128Vertical_with_sub0_in_R600_TReg32_X:sub9
1569 0, // R600_Reg128Vertical_with_sub0_in_R600_TReg32_X:sub10
1570 0, // R600_Reg128Vertical_with_sub0_in_R600_TReg32_X:sub11
1571 0, // R600_Reg128Vertical_with_sub0_in_R600_TReg32_X:sub12
1572 0, // R600_Reg128Vertical_with_sub0_in_R600_TReg32_X:sub13
1573 0, // R600_Reg128Vertical_with_sub0_in_R600_TReg32_X:sub14
1574 0, // R600_Reg128Vertical_with_sub0_in_R600_TReg32_X:sub15
1575 },
1576 { // R600_Reg128Vertical_with_sub0_in_R600_TReg32_Y
1577 8, // R600_Reg128Vertical_with_sub0_in_R600_TReg32_Y:sub0 -> R600_TReg32_Y
1578 8, // R600_Reg128Vertical_with_sub0_in_R600_TReg32_Y:sub1 -> R600_TReg32_Y
1579 8, // R600_Reg128Vertical_with_sub0_in_R600_TReg32_Y:sub2 -> R600_TReg32_Y
1580 8, // R600_Reg128Vertical_with_sub0_in_R600_TReg32_Y:sub3 -> R600_TReg32_Y
1581 0, // R600_Reg128Vertical_with_sub0_in_R600_TReg32_Y:sub4
1582 0, // R600_Reg128Vertical_with_sub0_in_R600_TReg32_Y:sub5
1583 0, // R600_Reg128Vertical_with_sub0_in_R600_TReg32_Y:sub6
1584 0, // R600_Reg128Vertical_with_sub0_in_R600_TReg32_Y:sub7
1585 0, // R600_Reg128Vertical_with_sub0_in_R600_TReg32_Y:sub8
1586 0, // R600_Reg128Vertical_with_sub0_in_R600_TReg32_Y:sub9
1587 0, // R600_Reg128Vertical_with_sub0_in_R600_TReg32_Y:sub10
1588 0, // R600_Reg128Vertical_with_sub0_in_R600_TReg32_Y:sub11
1589 0, // R600_Reg128Vertical_with_sub0_in_R600_TReg32_Y:sub12
1590 0, // R600_Reg128Vertical_with_sub0_in_R600_TReg32_Y:sub13
1591 0, // R600_Reg128Vertical_with_sub0_in_R600_TReg32_Y:sub14
1592 0, // R600_Reg128Vertical_with_sub0_in_R600_TReg32_Y:sub15
1593 },
1594 { // R600_Reg128Vertical_with_sub0_in_R600_TReg32_Z
1595 9, // R600_Reg128Vertical_with_sub0_in_R600_TReg32_Z:sub0 -> R600_TReg32_Z
1596 9, // R600_Reg128Vertical_with_sub0_in_R600_TReg32_Z:sub1 -> R600_TReg32_Z
1597 9, // R600_Reg128Vertical_with_sub0_in_R600_TReg32_Z:sub2 -> R600_TReg32_Z
1598 9, // R600_Reg128Vertical_with_sub0_in_R600_TReg32_Z:sub3 -> R600_TReg32_Z
1599 0, // R600_Reg128Vertical_with_sub0_in_R600_TReg32_Z:sub4
1600 0, // R600_Reg128Vertical_with_sub0_in_R600_TReg32_Z:sub5
1601 0, // R600_Reg128Vertical_with_sub0_in_R600_TReg32_Z:sub6
1602 0, // R600_Reg128Vertical_with_sub0_in_R600_TReg32_Z:sub7
1603 0, // R600_Reg128Vertical_with_sub0_in_R600_TReg32_Z:sub8
1604 0, // R600_Reg128Vertical_with_sub0_in_R600_TReg32_Z:sub9
1605 0, // R600_Reg128Vertical_with_sub0_in_R600_TReg32_Z:sub10
1606 0, // R600_Reg128Vertical_with_sub0_in_R600_TReg32_Z:sub11
1607 0, // R600_Reg128Vertical_with_sub0_in_R600_TReg32_Z:sub12
1608 0, // R600_Reg128Vertical_with_sub0_in_R600_TReg32_Z:sub13
1609 0, // R600_Reg128Vertical_with_sub0_in_R600_TReg32_Z:sub14
1610 0, // R600_Reg128Vertical_with_sub0_in_R600_TReg32_Z:sub15
1611 },
1612
1613 };
1614 assert(RC && "Missing regclass");
1615 if (!Idx) return RC;
1616 --Idx;
1617 assert(Idx < 16 && "Bad subreg");
1618 unsigned TV = Table[RC->getID()][Idx];
1619 return TV ? getRegClass(i: TV - 1) : nullptr;
1620}/// Get the weight in units of pressure for this register class.
1621const RegClassWeight &R600GenRegisterInfo::
1622getRegClassWeight(const TargetRegisterClass *RC) const {
1623 static const RegClassWeight RCWeightTable[] = {
1624 {.RegWeight: 0, .WeightLimit: 942}, // R600_Reg32
1625 {.RegWeight: 0, .WeightLimit: 513}, // R600_TReg32
1626 {.RegWeight: 0, .WeightLimit: 129}, // R600_TReg32_X
1627 {.RegWeight: 0, .WeightLimit: 128}, // R600_Addr
1628 {.RegWeight: 0, .WeightLimit: 128}, // R600_KC0
1629 {.RegWeight: 0, .WeightLimit: 128}, // R600_KC1
1630 {.RegWeight: 0, .WeightLimit: 128}, // R600_TReg32_W
1631 {.RegWeight: 0, .WeightLimit: 128}, // R600_TReg32_Y
1632 {.RegWeight: 0, .WeightLimit: 128}, // R600_TReg32_Z
1633 {.RegWeight: 0, .WeightLimit: 33}, // R600_ArrayBase
1634 {.RegWeight: 0, .WeightLimit: 32}, // R600_KC0_W
1635 {.RegWeight: 0, .WeightLimit: 32}, // R600_KC0_X
1636 {.RegWeight: 0, .WeightLimit: 32}, // R600_KC0_Y
1637 {.RegWeight: 0, .WeightLimit: 32}, // R600_KC0_Z
1638 {.RegWeight: 0, .WeightLimit: 32}, // R600_KC1_W
1639 {.RegWeight: 0, .WeightLimit: 32}, // R600_KC1_X
1640 {.RegWeight: 0, .WeightLimit: 32}, // R600_KC1_Y
1641 {.RegWeight: 0, .WeightLimit: 32}, // R600_KC1_Z
1642 {.RegWeight: 0, .WeightLimit: 1}, // R600_LDS_SRC_REG
1643 {.RegWeight: 0, .WeightLimit: 3}, // R600_Predicate
1644 {.RegWeight: 0, .WeightLimit: 0}, // R600_Addr_W
1645 {.RegWeight: 0, .WeightLimit: 0}, // R600_Addr_Y
1646 {.RegWeight: 0, .WeightLimit: 0}, // R600_Addr_Z
1647 {.RegWeight: 1, .WeightLimit: 1}, // R600_LDS_SRC_REG_and_R600_Reg32
1648 {.RegWeight: 0, .WeightLimit: 1}, // R600_Predicate_Bit
1649 {.RegWeight: 0, .WeightLimit: 128}, // R600_Reg64
1650 {.RegWeight: 0, .WeightLimit: 16}, // R600_Reg64Vertical
1651 {.RegWeight: 2, .WeightLimit: 4}, // R600_Reg64Vertical_with_sub0_in_R600_TReg32_W
1652 {.RegWeight: 2, .WeightLimit: 4}, // R600_Reg64Vertical_with_sub0_in_R600_TReg32_X
1653 {.RegWeight: 2, .WeightLimit: 4}, // R600_Reg64Vertical_with_sub0_in_R600_TReg32_Y
1654 {.RegWeight: 2, .WeightLimit: 4}, // R600_Reg64Vertical_with_sub0_in_R600_TReg32_Z
1655 {.RegWeight: 0, .WeightLimit: 512}, // R600_Reg128
1656 {.RegWeight: 0, .WeightLimit: 16}, // R600_Reg128Vertical
1657 {.RegWeight: 4, .WeightLimit: 4}, // R600_Reg128Vertical_with_sub0_in_R600_TReg32_W
1658 {.RegWeight: 4, .WeightLimit: 4}, // R600_Reg128Vertical_with_sub0_in_R600_TReg32_X
1659 {.RegWeight: 4, .WeightLimit: 4}, // R600_Reg128Vertical_with_sub0_in_R600_TReg32_Y
1660 {.RegWeight: 4, .WeightLimit: 4}, // R600_Reg128Vertical_with_sub0_in_R600_TReg32_Z
1661 };
1662 return RCWeightTable[RC->getID()];
1663}
1664
1665/// Get the weight in units of pressure for this register unit.
1666unsigned R600GenRegisterInfo::
1667getRegUnitWeight(MCRegUnit RegUnit) const {
1668 assert(static_cast<unsigned>(RegUnit) < 1342 && "invalid register unit");
1669 // All register units have unit weight.
1670 return 1;
1671}
1672
1673
1674// Get the number of dimensions of register pressure.
1675unsigned R600GenRegisterInfo::getNumRegPressureSets() const {
1676 return 23;
1677}
1678
1679// Get the name of this register unit pressure set.
1680const char *R600GenRegisterInfo::
1681getRegPressureSetName(unsigned Idx) const {
1682 static const char *PressureNameTable[] = {
1683 "R600_LDS_SRC_REG_and_R600_Reg32",
1684 "R600_Predicate_Bit",
1685 "R600_Predicate",
1686 "R600_Reg64Vertical_with_sub0_in_R600_TReg32_W",
1687 "R600_Reg64Vertical_with_sub0_in_R600_TReg32_X",
1688 "R600_Reg64Vertical_with_sub0_in_R600_TReg32_Y",
1689 "R600_Reg64Vertical_with_sub0_in_R600_TReg32_Z",
1690 "R600_Reg64Vertical",
1691 "R600_ArrayBase",
1692 "R600_TReg32_W",
1693 "R600_TReg32_Y",
1694 "R600_TReg32_Z",
1695 "R600_Reg64",
1696 "R600_TReg32_X",
1697 "R600_Reg64_with_R600_Reg64Vertical",
1698 "R600_TReg32_W_with_R600_Reg64Vertical",
1699 "R600_TReg32_Y_with_R600_Reg64Vertical",
1700 "R600_TReg32_Z_with_R600_Reg64Vertical",
1701 "R600_TReg32_X_with_R600_Reg64Vertical",
1702 "R600_TReg32_Y_with_R600_Reg64",
1703 "R600_TReg32_X_with_R600_Reg64",
1704 "R600_TReg32",
1705 "R600_Reg32",
1706 };
1707 return PressureNameTable[Idx];
1708}
1709
1710// Get the register unit pressure limit for this dimension.
1711// This limit must be adjusted dynamically for reserved registers.
1712unsigned R600GenRegisterInfo::
1713getRegPressureSetLimit(const MachineFunction &MF, unsigned Idx) const {
1714 static const uint16_t PressureLimitTable[] = {
1715 1, // 0: R600_LDS_SRC_REG_and_R600_Reg32
1716 1, // 1: R600_Predicate_Bit
1717 3, // 2: R600_Predicate
1718 4, // 3: R600_Reg64Vertical_with_sub0_in_R600_TReg32_W
1719 4, // 4: R600_Reg64Vertical_with_sub0_in_R600_TReg32_X
1720 4, // 5: R600_Reg64Vertical_with_sub0_in_R600_TReg32_Y
1721 4, // 6: R600_Reg64Vertical_with_sub0_in_R600_TReg32_Z
1722 16, // 7: R600_Reg64Vertical
1723 33, // 8: R600_ArrayBase
1724 128, // 9: R600_TReg32_W
1725 128, // 10: R600_TReg32_Y
1726 128, // 11: R600_TReg32_Z
1727 128, // 12: R600_Reg64
1728 129, // 13: R600_TReg32_X
1729 136, // 14: R600_Reg64_with_R600_Reg64Vertical
1730 140, // 15: R600_TReg32_W_with_R600_Reg64Vertical
1731 140, // 16: R600_TReg32_Y_with_R600_Reg64Vertical
1732 140, // 17: R600_TReg32_Z_with_R600_Reg64Vertical
1733 141, // 18: R600_TReg32_X_with_R600_Reg64Vertical
1734 192, // 19: R600_TReg32_Y_with_R600_Reg64
1735 193, // 20: R600_TReg32_X_with_R600_Reg64
1736 513, // 21: R600_TReg32
1737 942, // 22: R600_Reg32
1738 };
1739 return PressureLimitTable[Idx];
1740}
1741
1742/// Table of pressure sets per register class or unit.
1743static const int RCSetsTable[] = {
1744 /* 0 */ 1, -1,
1745 /* 2 */ 2, -1,
1746 /* 4 */ 0, 22, -1,
1747 /* 7 */ 8, 22, -1,
1748 /* 10 */ 9, 15, 21, 22, -1,
1749 /* 15 */ 11, 17, 21, 22, -1,
1750 /* 20 */ 7, 14, 15, 16, 17, 18, 21, 22, -1,
1751 /* 29 */ 3, 7, 9, 14, 15, 16, 17, 18, 21, 22, -1,
1752 /* 40 */ 6, 7, 11, 14, 15, 16, 17, 18, 21, 22, -1,
1753 /* 51 */ 10, 16, 19, 21, 22, -1,
1754 /* 57 */ 13, 18, 20, 21, 22, -1,
1755 /* 63 */ 12, 14, 19, 20, 21, 22, -1,
1756 /* 70 */ 10, 12, 14, 16, 19, 20, 21, 22, -1,
1757 /* 79 */ 12, 13, 14, 18, 19, 20, 21, 22, -1,
1758 /* 88 */ 5, 7, 10, 12, 14, 15, 16, 17, 18, 19, 20, 21, 22, -1,
1759 /* 102 */ 4, 7, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, -1,
1760};
1761
1762/// Get the dimensions of register pressure impacted by this register class.
1763/// Returns a -1 terminated array of pressure set IDs
1764const int *R600GenRegisterInfo::
1765getRegClassPressureSets(const TargetRegisterClass *RC) const {
1766 static const uint8_t RCSetStartTable[] = {
1767 5,12,57,1,1,1,10,51,15,7,1,1,1,1,1,1,1,1,1,2,1,1,1,4,0,63,20,29,102,88,40,12,20,29,102,88,40,};
1768 return &RCSetsTable[RCSetStartTable[RC->getID()]];
1769}
1770
1771/// Get the dimensions of register pressure impacted by this register unit.
1772/// Returns a -1 terminated array of pressure set IDs
1773const int *R600GenRegisterInfo::
1774getRegUnitPressureSets(MCRegUnit RegUnit) const {
1775 assert(static_cast<unsigned>(RegUnit) < 1342 && "invalid register unit");
1776 static const uint8_t RUSetStartTable[] = {
1777 5,1,5,1,1,5,57,5,5,1,1,5,5,5,5,1,4,1,1,0,2,2,2,1,1,5,1,1,5,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,29,29,29,29,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,102,102,102,102,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,88,88,88,88,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,40,40,40,40,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,};
1778 return &RCSetsTable[RUSetStartTable[static_cast<unsigned>(RegUnit)]];
1779}
1780
1781
1782// Register to minimal register class mapping
1783
1784const TargetRegisterClass *R600GenRegisterInfo::getMinimalPhysRegClass(MCRegister Reg) const {
1785 static const uint16_t InvalidRegClassID = UINT16_MAX;
1786
1787 static const uint16_t Mapping[1675] = {
1788 InvalidRegClassID, // NoRegister
1789 R600::R600_Reg32RegClassID, // ALU_CONST
1790 InvalidRegClassID, // ALU_LITERAL_W
1791 R600::R600_Reg32RegClassID, // ALU_LITERAL_X
1792 InvalidRegClassID, // ALU_LITERAL_Y
1793 InvalidRegClassID, // ALU_LITERAL_Z
1794 R600::R600_Reg32RegClassID, // ALU_PARAM
1795 R600::R600_TReg32_XRegClassID, // AR_X
1796 R600::R600_Reg32RegClassID, // HALF
1797 R600::R600_Reg32RegClassID, // INDIRECT_BASE_ADDR
1798 R600::R600_LDS_SRC_REGRegClassID, // LDS_DIRECT_A
1799 R600::R600_LDS_SRC_REGRegClassID, // LDS_DIRECT_B
1800 R600::R600_Reg32RegClassID, // NEG_HALF
1801 R600::R600_Reg32RegClassID, // NEG_ONE
1802 R600::R600_Reg32RegClassID, // ONE
1803 R600::R600_Reg32RegClassID, // ONE_INT
1804 R600::R600_LDS_SRC_REGRegClassID, // OQA
1805 R600::R600_LDS_SRC_REG_and_R600_Reg32RegClassID, // OQAP
1806 R600::R600_LDS_SRC_REGRegClassID, // OQB
1807 R600::R600_LDS_SRC_REGRegClassID, // OQBP
1808 R600::R600_Predicate_BitRegClassID, // PREDICATE_BIT
1809 R600::R600_PredicateRegClassID, // PRED_SEL_OFF
1810 R600::R600_PredicateRegClassID, // PRED_SEL_ONE
1811 R600::R600_PredicateRegClassID, // PRED_SEL_ZERO
1812 InvalidRegClassID, // PS
1813 InvalidRegClassID, // PV_W
1814 R600::R600_Reg32RegClassID, // PV_X
1815 InvalidRegClassID, // PV_Y
1816 InvalidRegClassID, // PV_Z
1817 R600::R600_Reg32RegClassID, // ZERO
1818 R600::R600_ArrayBaseRegClassID, // ArrayBase448
1819 R600::R600_ArrayBaseRegClassID, // ArrayBase449
1820 R600::R600_ArrayBaseRegClassID, // ArrayBase450
1821 R600::R600_ArrayBaseRegClassID, // ArrayBase451
1822 R600::R600_ArrayBaseRegClassID, // ArrayBase452
1823 R600::R600_ArrayBaseRegClassID, // ArrayBase453
1824 R600::R600_ArrayBaseRegClassID, // ArrayBase454
1825 R600::R600_ArrayBaseRegClassID, // ArrayBase455
1826 R600::R600_ArrayBaseRegClassID, // ArrayBase456
1827 R600::R600_ArrayBaseRegClassID, // ArrayBase457
1828 R600::R600_ArrayBaseRegClassID, // ArrayBase458
1829 R600::R600_ArrayBaseRegClassID, // ArrayBase459
1830 R600::R600_ArrayBaseRegClassID, // ArrayBase460
1831 R600::R600_ArrayBaseRegClassID, // ArrayBase461
1832 R600::R600_ArrayBaseRegClassID, // ArrayBase462
1833 R600::R600_ArrayBaseRegClassID, // ArrayBase463
1834 R600::R600_ArrayBaseRegClassID, // ArrayBase464
1835 R600::R600_ArrayBaseRegClassID, // ArrayBase465
1836 R600::R600_ArrayBaseRegClassID, // ArrayBase466
1837 R600::R600_ArrayBaseRegClassID, // ArrayBase467
1838 R600::R600_ArrayBaseRegClassID, // ArrayBase468
1839 R600::R600_ArrayBaseRegClassID, // ArrayBase469
1840 R600::R600_ArrayBaseRegClassID, // ArrayBase470
1841 R600::R600_ArrayBaseRegClassID, // ArrayBase471
1842 R600::R600_ArrayBaseRegClassID, // ArrayBase472
1843 R600::R600_ArrayBaseRegClassID, // ArrayBase473
1844 R600::R600_ArrayBaseRegClassID, // ArrayBase474
1845 R600::R600_ArrayBaseRegClassID, // ArrayBase475
1846 R600::R600_ArrayBaseRegClassID, // ArrayBase476
1847 R600::R600_ArrayBaseRegClassID, // ArrayBase477
1848 R600::R600_ArrayBaseRegClassID, // ArrayBase478
1849 R600::R600_ArrayBaseRegClassID, // ArrayBase479
1850 R600::R600_ArrayBaseRegClassID, // ArrayBase480
1851 R600::R600_Addr_WRegClassID, // Addr0_W
1852 InvalidRegClassID, // Addr1_W
1853 InvalidRegClassID, // Addr2_W
1854 InvalidRegClassID, // Addr3_W
1855 InvalidRegClassID, // Addr4_W
1856 InvalidRegClassID, // Addr5_W
1857 InvalidRegClassID, // Addr6_W
1858 InvalidRegClassID, // Addr7_W
1859 InvalidRegClassID, // Addr8_W
1860 InvalidRegClassID, // Addr9_W
1861 InvalidRegClassID, // Addr10_W
1862 InvalidRegClassID, // Addr11_W
1863 InvalidRegClassID, // Addr12_W
1864 InvalidRegClassID, // Addr13_W
1865 InvalidRegClassID, // Addr14_W
1866 InvalidRegClassID, // Addr15_W
1867 InvalidRegClassID, // Addr16_W
1868 InvalidRegClassID, // Addr17_W
1869 InvalidRegClassID, // Addr18_W
1870 InvalidRegClassID, // Addr19_W
1871 InvalidRegClassID, // Addr20_W
1872 InvalidRegClassID, // Addr21_W
1873 InvalidRegClassID, // Addr22_W
1874 InvalidRegClassID, // Addr23_W
1875 InvalidRegClassID, // Addr24_W
1876 InvalidRegClassID, // Addr25_W
1877 InvalidRegClassID, // Addr26_W
1878 InvalidRegClassID, // Addr27_W
1879 InvalidRegClassID, // Addr28_W
1880 InvalidRegClassID, // Addr29_W
1881 InvalidRegClassID, // Addr30_W
1882 InvalidRegClassID, // Addr31_W
1883 InvalidRegClassID, // Addr32_W
1884 InvalidRegClassID, // Addr33_W
1885 InvalidRegClassID, // Addr34_W
1886 InvalidRegClassID, // Addr35_W
1887 InvalidRegClassID, // Addr36_W
1888 InvalidRegClassID, // Addr37_W
1889 InvalidRegClassID, // Addr38_W
1890 InvalidRegClassID, // Addr39_W
1891 InvalidRegClassID, // Addr40_W
1892 InvalidRegClassID, // Addr41_W
1893 InvalidRegClassID, // Addr42_W
1894 InvalidRegClassID, // Addr43_W
1895 InvalidRegClassID, // Addr44_W
1896 InvalidRegClassID, // Addr45_W
1897 InvalidRegClassID, // Addr46_W
1898 InvalidRegClassID, // Addr47_W
1899 InvalidRegClassID, // Addr48_W
1900 InvalidRegClassID, // Addr49_W
1901 InvalidRegClassID, // Addr50_W
1902 InvalidRegClassID, // Addr51_W
1903 InvalidRegClassID, // Addr52_W
1904 InvalidRegClassID, // Addr53_W
1905 InvalidRegClassID, // Addr54_W
1906 InvalidRegClassID, // Addr55_W
1907 InvalidRegClassID, // Addr56_W
1908 InvalidRegClassID, // Addr57_W
1909 InvalidRegClassID, // Addr58_W
1910 InvalidRegClassID, // Addr59_W
1911 InvalidRegClassID, // Addr60_W
1912 InvalidRegClassID, // Addr61_W
1913 InvalidRegClassID, // Addr62_W
1914 InvalidRegClassID, // Addr63_W
1915 InvalidRegClassID, // Addr64_W
1916 InvalidRegClassID, // Addr65_W
1917 InvalidRegClassID, // Addr66_W
1918 InvalidRegClassID, // Addr67_W
1919 InvalidRegClassID, // Addr68_W
1920 InvalidRegClassID, // Addr69_W
1921 InvalidRegClassID, // Addr70_W
1922 InvalidRegClassID, // Addr71_W
1923 InvalidRegClassID, // Addr72_W
1924 InvalidRegClassID, // Addr73_W
1925 InvalidRegClassID, // Addr74_W
1926 InvalidRegClassID, // Addr75_W
1927 InvalidRegClassID, // Addr76_W
1928 InvalidRegClassID, // Addr77_W
1929 InvalidRegClassID, // Addr78_W
1930 InvalidRegClassID, // Addr79_W
1931 InvalidRegClassID, // Addr80_W
1932 InvalidRegClassID, // Addr81_W
1933 InvalidRegClassID, // Addr82_W
1934 InvalidRegClassID, // Addr83_W
1935 InvalidRegClassID, // Addr84_W
1936 InvalidRegClassID, // Addr85_W
1937 InvalidRegClassID, // Addr86_W
1938 InvalidRegClassID, // Addr87_W
1939 InvalidRegClassID, // Addr88_W
1940 InvalidRegClassID, // Addr89_W
1941 InvalidRegClassID, // Addr90_W
1942 InvalidRegClassID, // Addr91_W
1943 InvalidRegClassID, // Addr92_W
1944 InvalidRegClassID, // Addr93_W
1945 InvalidRegClassID, // Addr94_W
1946 InvalidRegClassID, // Addr95_W
1947 InvalidRegClassID, // Addr96_W
1948 InvalidRegClassID, // Addr97_W
1949 InvalidRegClassID, // Addr98_W
1950 InvalidRegClassID, // Addr99_W
1951 InvalidRegClassID, // Addr100_W
1952 InvalidRegClassID, // Addr101_W
1953 InvalidRegClassID, // Addr102_W
1954 InvalidRegClassID, // Addr103_W
1955 InvalidRegClassID, // Addr104_W
1956 InvalidRegClassID, // Addr105_W
1957 InvalidRegClassID, // Addr106_W
1958 InvalidRegClassID, // Addr107_W
1959 InvalidRegClassID, // Addr108_W
1960 InvalidRegClassID, // Addr109_W
1961 InvalidRegClassID, // Addr110_W
1962 InvalidRegClassID, // Addr111_W
1963 InvalidRegClassID, // Addr112_W
1964 InvalidRegClassID, // Addr113_W
1965 InvalidRegClassID, // Addr114_W
1966 InvalidRegClassID, // Addr115_W
1967 InvalidRegClassID, // Addr116_W
1968 InvalidRegClassID, // Addr117_W
1969 InvalidRegClassID, // Addr118_W
1970 InvalidRegClassID, // Addr119_W
1971 InvalidRegClassID, // Addr120_W
1972 InvalidRegClassID, // Addr121_W
1973 InvalidRegClassID, // Addr122_W
1974 InvalidRegClassID, // Addr123_W
1975 InvalidRegClassID, // Addr124_W
1976 InvalidRegClassID, // Addr125_W
1977 InvalidRegClassID, // Addr126_W
1978 InvalidRegClassID, // Addr127_W
1979 R600::R600_AddrRegClassID, // Addr0_X
1980 R600::R600_AddrRegClassID, // Addr1_X
1981 R600::R600_AddrRegClassID, // Addr2_X
1982 R600::R600_AddrRegClassID, // Addr3_X
1983 R600::R600_AddrRegClassID, // Addr4_X
1984 R600::R600_AddrRegClassID, // Addr5_X
1985 R600::R600_AddrRegClassID, // Addr6_X
1986 R600::R600_AddrRegClassID, // Addr7_X
1987 R600::R600_AddrRegClassID, // Addr8_X
1988 R600::R600_AddrRegClassID, // Addr9_X
1989 R600::R600_AddrRegClassID, // Addr10_X
1990 R600::R600_AddrRegClassID, // Addr11_X
1991 R600::R600_AddrRegClassID, // Addr12_X
1992 R600::R600_AddrRegClassID, // Addr13_X
1993 R600::R600_AddrRegClassID, // Addr14_X
1994 R600::R600_AddrRegClassID, // Addr15_X
1995 R600::R600_AddrRegClassID, // Addr16_X
1996 R600::R600_AddrRegClassID, // Addr17_X
1997 R600::R600_AddrRegClassID, // Addr18_X
1998 R600::R600_AddrRegClassID, // Addr19_X
1999 R600::R600_AddrRegClassID, // Addr20_X
2000 R600::R600_AddrRegClassID, // Addr21_X
2001 R600::R600_AddrRegClassID, // Addr22_X
2002 R600::R600_AddrRegClassID, // Addr23_X
2003 R600::R600_AddrRegClassID, // Addr24_X
2004 R600::R600_AddrRegClassID, // Addr25_X
2005 R600::R600_AddrRegClassID, // Addr26_X
2006 R600::R600_AddrRegClassID, // Addr27_X
2007 R600::R600_AddrRegClassID, // Addr28_X
2008 R600::R600_AddrRegClassID, // Addr29_X
2009 R600::R600_AddrRegClassID, // Addr30_X
2010 R600::R600_AddrRegClassID, // Addr31_X
2011 R600::R600_AddrRegClassID, // Addr32_X
2012 R600::R600_AddrRegClassID, // Addr33_X
2013 R600::R600_AddrRegClassID, // Addr34_X
2014 R600::R600_AddrRegClassID, // Addr35_X
2015 R600::R600_AddrRegClassID, // Addr36_X
2016 R600::R600_AddrRegClassID, // Addr37_X
2017 R600::R600_AddrRegClassID, // Addr38_X
2018 R600::R600_AddrRegClassID, // Addr39_X
2019 R600::R600_AddrRegClassID, // Addr40_X
2020 R600::R600_AddrRegClassID, // Addr41_X
2021 R600::R600_AddrRegClassID, // Addr42_X
2022 R600::R600_AddrRegClassID, // Addr43_X
2023 R600::R600_AddrRegClassID, // Addr44_X
2024 R600::R600_AddrRegClassID, // Addr45_X
2025 R600::R600_AddrRegClassID, // Addr46_X
2026 R600::R600_AddrRegClassID, // Addr47_X
2027 R600::R600_AddrRegClassID, // Addr48_X
2028 R600::R600_AddrRegClassID, // Addr49_X
2029 R600::R600_AddrRegClassID, // Addr50_X
2030 R600::R600_AddrRegClassID, // Addr51_X
2031 R600::R600_AddrRegClassID, // Addr52_X
2032 R600::R600_AddrRegClassID, // Addr53_X
2033 R600::R600_AddrRegClassID, // Addr54_X
2034 R600::R600_AddrRegClassID, // Addr55_X
2035 R600::R600_AddrRegClassID, // Addr56_X
2036 R600::R600_AddrRegClassID, // Addr57_X
2037 R600::R600_AddrRegClassID, // Addr58_X
2038 R600::R600_AddrRegClassID, // Addr59_X
2039 R600::R600_AddrRegClassID, // Addr60_X
2040 R600::R600_AddrRegClassID, // Addr61_X
2041 R600::R600_AddrRegClassID, // Addr62_X
2042 R600::R600_AddrRegClassID, // Addr63_X
2043 R600::R600_AddrRegClassID, // Addr64_X
2044 R600::R600_AddrRegClassID, // Addr65_X
2045 R600::R600_AddrRegClassID, // Addr66_X
2046 R600::R600_AddrRegClassID, // Addr67_X
2047 R600::R600_AddrRegClassID, // Addr68_X
2048 R600::R600_AddrRegClassID, // Addr69_X
2049 R600::R600_AddrRegClassID, // Addr70_X
2050 R600::R600_AddrRegClassID, // Addr71_X
2051 R600::R600_AddrRegClassID, // Addr72_X
2052 R600::R600_AddrRegClassID, // Addr73_X
2053 R600::R600_AddrRegClassID, // Addr74_X
2054 R600::R600_AddrRegClassID, // Addr75_X
2055 R600::R600_AddrRegClassID, // Addr76_X
2056 R600::R600_AddrRegClassID, // Addr77_X
2057 R600::R600_AddrRegClassID, // Addr78_X
2058 R600::R600_AddrRegClassID, // Addr79_X
2059 R600::R600_AddrRegClassID, // Addr80_X
2060 R600::R600_AddrRegClassID, // Addr81_X
2061 R600::R600_AddrRegClassID, // Addr82_X
2062 R600::R600_AddrRegClassID, // Addr83_X
2063 R600::R600_AddrRegClassID, // Addr84_X
2064 R600::R600_AddrRegClassID, // Addr85_X
2065 R600::R600_AddrRegClassID, // Addr86_X
2066 R600::R600_AddrRegClassID, // Addr87_X
2067 R600::R600_AddrRegClassID, // Addr88_X
2068 R600::R600_AddrRegClassID, // Addr89_X
2069 R600::R600_AddrRegClassID, // Addr90_X
2070 R600::R600_AddrRegClassID, // Addr91_X
2071 R600::R600_AddrRegClassID, // Addr92_X
2072 R600::R600_AddrRegClassID, // Addr93_X
2073 R600::R600_AddrRegClassID, // Addr94_X
2074 R600::R600_AddrRegClassID, // Addr95_X
2075 R600::R600_AddrRegClassID, // Addr96_X
2076 R600::R600_AddrRegClassID, // Addr97_X
2077 R600::R600_AddrRegClassID, // Addr98_X
2078 R600::R600_AddrRegClassID, // Addr99_X
2079 R600::R600_AddrRegClassID, // Addr100_X
2080 R600::R600_AddrRegClassID, // Addr101_X
2081 R600::R600_AddrRegClassID, // Addr102_X
2082 R600::R600_AddrRegClassID, // Addr103_X
2083 R600::R600_AddrRegClassID, // Addr104_X
2084 R600::R600_AddrRegClassID, // Addr105_X
2085 R600::R600_AddrRegClassID, // Addr106_X
2086 R600::R600_AddrRegClassID, // Addr107_X
2087 R600::R600_AddrRegClassID, // Addr108_X
2088 R600::R600_AddrRegClassID, // Addr109_X
2089 R600::R600_AddrRegClassID, // Addr110_X
2090 R600::R600_AddrRegClassID, // Addr111_X
2091 R600::R600_AddrRegClassID, // Addr112_X
2092 R600::R600_AddrRegClassID, // Addr113_X
2093 R600::R600_AddrRegClassID, // Addr114_X
2094 R600::R600_AddrRegClassID, // Addr115_X
2095 R600::R600_AddrRegClassID, // Addr116_X
2096 R600::R600_AddrRegClassID, // Addr117_X
2097 R600::R600_AddrRegClassID, // Addr118_X
2098 R600::R600_AddrRegClassID, // Addr119_X
2099 R600::R600_AddrRegClassID, // Addr120_X
2100 R600::R600_AddrRegClassID, // Addr121_X
2101 R600::R600_AddrRegClassID, // Addr122_X
2102 R600::R600_AddrRegClassID, // Addr123_X
2103 R600::R600_AddrRegClassID, // Addr124_X
2104 R600::R600_AddrRegClassID, // Addr125_X
2105 R600::R600_AddrRegClassID, // Addr126_X
2106 R600::R600_AddrRegClassID, // Addr127_X
2107 R600::R600_Addr_YRegClassID, // Addr0_Y
2108 InvalidRegClassID, // Addr1_Y
2109 InvalidRegClassID, // Addr2_Y
2110 InvalidRegClassID, // Addr3_Y
2111 InvalidRegClassID, // Addr4_Y
2112 InvalidRegClassID, // Addr5_Y
2113 InvalidRegClassID, // Addr6_Y
2114 InvalidRegClassID, // Addr7_Y
2115 InvalidRegClassID, // Addr8_Y
2116 InvalidRegClassID, // Addr9_Y
2117 InvalidRegClassID, // Addr10_Y
2118 InvalidRegClassID, // Addr11_Y
2119 InvalidRegClassID, // Addr12_Y
2120 InvalidRegClassID, // Addr13_Y
2121 InvalidRegClassID, // Addr14_Y
2122 InvalidRegClassID, // Addr15_Y
2123 InvalidRegClassID, // Addr16_Y
2124 InvalidRegClassID, // Addr17_Y
2125 InvalidRegClassID, // Addr18_Y
2126 InvalidRegClassID, // Addr19_Y
2127 InvalidRegClassID, // Addr20_Y
2128 InvalidRegClassID, // Addr21_Y
2129 InvalidRegClassID, // Addr22_Y
2130 InvalidRegClassID, // Addr23_Y
2131 InvalidRegClassID, // Addr24_Y
2132 InvalidRegClassID, // Addr25_Y
2133 InvalidRegClassID, // Addr26_Y
2134 InvalidRegClassID, // Addr27_Y
2135 InvalidRegClassID, // Addr28_Y
2136 InvalidRegClassID, // Addr29_Y
2137 InvalidRegClassID, // Addr30_Y
2138 InvalidRegClassID, // Addr31_Y
2139 InvalidRegClassID, // Addr32_Y
2140 InvalidRegClassID, // Addr33_Y
2141 InvalidRegClassID, // Addr34_Y
2142 InvalidRegClassID, // Addr35_Y
2143 InvalidRegClassID, // Addr36_Y
2144 InvalidRegClassID, // Addr37_Y
2145 InvalidRegClassID, // Addr38_Y
2146 InvalidRegClassID, // Addr39_Y
2147 InvalidRegClassID, // Addr40_Y
2148 InvalidRegClassID, // Addr41_Y
2149 InvalidRegClassID, // Addr42_Y
2150 InvalidRegClassID, // Addr43_Y
2151 InvalidRegClassID, // Addr44_Y
2152 InvalidRegClassID, // Addr45_Y
2153 InvalidRegClassID, // Addr46_Y
2154 InvalidRegClassID, // Addr47_Y
2155 InvalidRegClassID, // Addr48_Y
2156 InvalidRegClassID, // Addr49_Y
2157 InvalidRegClassID, // Addr50_Y
2158 InvalidRegClassID, // Addr51_Y
2159 InvalidRegClassID, // Addr52_Y
2160 InvalidRegClassID, // Addr53_Y
2161 InvalidRegClassID, // Addr54_Y
2162 InvalidRegClassID, // Addr55_Y
2163 InvalidRegClassID, // Addr56_Y
2164 InvalidRegClassID, // Addr57_Y
2165 InvalidRegClassID, // Addr58_Y
2166 InvalidRegClassID, // Addr59_Y
2167 InvalidRegClassID, // Addr60_Y
2168 InvalidRegClassID, // Addr61_Y
2169 InvalidRegClassID, // Addr62_Y
2170 InvalidRegClassID, // Addr63_Y
2171 InvalidRegClassID, // Addr64_Y
2172 InvalidRegClassID, // Addr65_Y
2173 InvalidRegClassID, // Addr66_Y
2174 InvalidRegClassID, // Addr67_Y
2175 InvalidRegClassID, // Addr68_Y
2176 InvalidRegClassID, // Addr69_Y
2177 InvalidRegClassID, // Addr70_Y
2178 InvalidRegClassID, // Addr71_Y
2179 InvalidRegClassID, // Addr72_Y
2180 InvalidRegClassID, // Addr73_Y
2181 InvalidRegClassID, // Addr74_Y
2182 InvalidRegClassID, // Addr75_Y
2183 InvalidRegClassID, // Addr76_Y
2184 InvalidRegClassID, // Addr77_Y
2185 InvalidRegClassID, // Addr78_Y
2186 InvalidRegClassID, // Addr79_Y
2187 InvalidRegClassID, // Addr80_Y
2188 InvalidRegClassID, // Addr81_Y
2189 InvalidRegClassID, // Addr82_Y
2190 InvalidRegClassID, // Addr83_Y
2191 InvalidRegClassID, // Addr84_Y
2192 InvalidRegClassID, // Addr85_Y
2193 InvalidRegClassID, // Addr86_Y
2194 InvalidRegClassID, // Addr87_Y
2195 InvalidRegClassID, // Addr88_Y
2196 InvalidRegClassID, // Addr89_Y
2197 InvalidRegClassID, // Addr90_Y
2198 InvalidRegClassID, // Addr91_Y
2199 InvalidRegClassID, // Addr92_Y
2200 InvalidRegClassID, // Addr93_Y
2201 InvalidRegClassID, // Addr94_Y
2202 InvalidRegClassID, // Addr95_Y
2203 InvalidRegClassID, // Addr96_Y
2204 InvalidRegClassID, // Addr97_Y
2205 InvalidRegClassID, // Addr98_Y
2206 InvalidRegClassID, // Addr99_Y
2207 InvalidRegClassID, // Addr100_Y
2208 InvalidRegClassID, // Addr101_Y
2209 InvalidRegClassID, // Addr102_Y
2210 InvalidRegClassID, // Addr103_Y
2211 InvalidRegClassID, // Addr104_Y
2212 InvalidRegClassID, // Addr105_Y
2213 InvalidRegClassID, // Addr106_Y
2214 InvalidRegClassID, // Addr107_Y
2215 InvalidRegClassID, // Addr108_Y
2216 InvalidRegClassID, // Addr109_Y
2217 InvalidRegClassID, // Addr110_Y
2218 InvalidRegClassID, // Addr111_Y
2219 InvalidRegClassID, // Addr112_Y
2220 InvalidRegClassID, // Addr113_Y
2221 InvalidRegClassID, // Addr114_Y
2222 InvalidRegClassID, // Addr115_Y
2223 InvalidRegClassID, // Addr116_Y
2224 InvalidRegClassID, // Addr117_Y
2225 InvalidRegClassID, // Addr118_Y
2226 InvalidRegClassID, // Addr119_Y
2227 InvalidRegClassID, // Addr120_Y
2228 InvalidRegClassID, // Addr121_Y
2229 InvalidRegClassID, // Addr122_Y
2230 InvalidRegClassID, // Addr123_Y
2231 InvalidRegClassID, // Addr124_Y
2232 InvalidRegClassID, // Addr125_Y
2233 InvalidRegClassID, // Addr126_Y
2234 InvalidRegClassID, // Addr127_Y
2235 R600::R600_Addr_ZRegClassID, // Addr0_Z
2236 InvalidRegClassID, // Addr1_Z
2237 InvalidRegClassID, // Addr2_Z
2238 InvalidRegClassID, // Addr3_Z
2239 InvalidRegClassID, // Addr4_Z
2240 InvalidRegClassID, // Addr5_Z
2241 InvalidRegClassID, // Addr6_Z
2242 InvalidRegClassID, // Addr7_Z
2243 InvalidRegClassID, // Addr8_Z
2244 InvalidRegClassID, // Addr9_Z
2245 InvalidRegClassID, // Addr10_Z
2246 InvalidRegClassID, // Addr11_Z
2247 InvalidRegClassID, // Addr12_Z
2248 InvalidRegClassID, // Addr13_Z
2249 InvalidRegClassID, // Addr14_Z
2250 InvalidRegClassID, // Addr15_Z
2251 InvalidRegClassID, // Addr16_Z
2252 InvalidRegClassID, // Addr17_Z
2253 InvalidRegClassID, // Addr18_Z
2254 InvalidRegClassID, // Addr19_Z
2255 InvalidRegClassID, // Addr20_Z
2256 InvalidRegClassID, // Addr21_Z
2257 InvalidRegClassID, // Addr22_Z
2258 InvalidRegClassID, // Addr23_Z
2259 InvalidRegClassID, // Addr24_Z
2260 InvalidRegClassID, // Addr25_Z
2261 InvalidRegClassID, // Addr26_Z
2262 InvalidRegClassID, // Addr27_Z
2263 InvalidRegClassID, // Addr28_Z
2264 InvalidRegClassID, // Addr29_Z
2265 InvalidRegClassID, // Addr30_Z
2266 InvalidRegClassID, // Addr31_Z
2267 InvalidRegClassID, // Addr32_Z
2268 InvalidRegClassID, // Addr33_Z
2269 InvalidRegClassID, // Addr34_Z
2270 InvalidRegClassID, // Addr35_Z
2271 InvalidRegClassID, // Addr36_Z
2272 InvalidRegClassID, // Addr37_Z
2273 InvalidRegClassID, // Addr38_Z
2274 InvalidRegClassID, // Addr39_Z
2275 InvalidRegClassID, // Addr40_Z
2276 InvalidRegClassID, // Addr41_Z
2277 InvalidRegClassID, // Addr42_Z
2278 InvalidRegClassID, // Addr43_Z
2279 InvalidRegClassID, // Addr44_Z
2280 InvalidRegClassID, // Addr45_Z
2281 InvalidRegClassID, // Addr46_Z
2282 InvalidRegClassID, // Addr47_Z
2283 InvalidRegClassID, // Addr48_Z
2284 InvalidRegClassID, // Addr49_Z
2285 InvalidRegClassID, // Addr50_Z
2286 InvalidRegClassID, // Addr51_Z
2287 InvalidRegClassID, // Addr52_Z
2288 InvalidRegClassID, // Addr53_Z
2289 InvalidRegClassID, // Addr54_Z
2290 InvalidRegClassID, // Addr55_Z
2291 InvalidRegClassID, // Addr56_Z
2292 InvalidRegClassID, // Addr57_Z
2293 InvalidRegClassID, // Addr58_Z
2294 InvalidRegClassID, // Addr59_Z
2295 InvalidRegClassID, // Addr60_Z
2296 InvalidRegClassID, // Addr61_Z
2297 InvalidRegClassID, // Addr62_Z
2298 InvalidRegClassID, // Addr63_Z
2299 InvalidRegClassID, // Addr64_Z
2300 InvalidRegClassID, // Addr65_Z
2301 InvalidRegClassID, // Addr66_Z
2302 InvalidRegClassID, // Addr67_Z
2303 InvalidRegClassID, // Addr68_Z
2304 InvalidRegClassID, // Addr69_Z
2305 InvalidRegClassID, // Addr70_Z
2306 InvalidRegClassID, // Addr71_Z
2307 InvalidRegClassID, // Addr72_Z
2308 InvalidRegClassID, // Addr73_Z
2309 InvalidRegClassID, // Addr74_Z
2310 InvalidRegClassID, // Addr75_Z
2311 InvalidRegClassID, // Addr76_Z
2312 InvalidRegClassID, // Addr77_Z
2313 InvalidRegClassID, // Addr78_Z
2314 InvalidRegClassID, // Addr79_Z
2315 InvalidRegClassID, // Addr80_Z
2316 InvalidRegClassID, // Addr81_Z
2317 InvalidRegClassID, // Addr82_Z
2318 InvalidRegClassID, // Addr83_Z
2319 InvalidRegClassID, // Addr84_Z
2320 InvalidRegClassID, // Addr85_Z
2321 InvalidRegClassID, // Addr86_Z
2322 InvalidRegClassID, // Addr87_Z
2323 InvalidRegClassID, // Addr88_Z
2324 InvalidRegClassID, // Addr89_Z
2325 InvalidRegClassID, // Addr90_Z
2326 InvalidRegClassID, // Addr91_Z
2327 InvalidRegClassID, // Addr92_Z
2328 InvalidRegClassID, // Addr93_Z
2329 InvalidRegClassID, // Addr94_Z
2330 InvalidRegClassID, // Addr95_Z
2331 InvalidRegClassID, // Addr96_Z
2332 InvalidRegClassID, // Addr97_Z
2333 InvalidRegClassID, // Addr98_Z
2334 InvalidRegClassID, // Addr99_Z
2335 InvalidRegClassID, // Addr100_Z
2336 InvalidRegClassID, // Addr101_Z
2337 InvalidRegClassID, // Addr102_Z
2338 InvalidRegClassID, // Addr103_Z
2339 InvalidRegClassID, // Addr104_Z
2340 InvalidRegClassID, // Addr105_Z
2341 InvalidRegClassID, // Addr106_Z
2342 InvalidRegClassID, // Addr107_Z
2343 InvalidRegClassID, // Addr108_Z
2344 InvalidRegClassID, // Addr109_Z
2345 InvalidRegClassID, // Addr110_Z
2346 InvalidRegClassID, // Addr111_Z
2347 InvalidRegClassID, // Addr112_Z
2348 InvalidRegClassID, // Addr113_Z
2349 InvalidRegClassID, // Addr114_Z
2350 InvalidRegClassID, // Addr115_Z
2351 InvalidRegClassID, // Addr116_Z
2352 InvalidRegClassID, // Addr117_Z
2353 InvalidRegClassID, // Addr118_Z
2354 InvalidRegClassID, // Addr119_Z
2355 InvalidRegClassID, // Addr120_Z
2356 InvalidRegClassID, // Addr121_Z
2357 InvalidRegClassID, // Addr122_Z
2358 InvalidRegClassID, // Addr123_Z
2359 InvalidRegClassID, // Addr124_Z
2360 InvalidRegClassID, // Addr125_Z
2361 InvalidRegClassID, // Addr126_Z
2362 InvalidRegClassID, // Addr127_Z
2363 R600::R600_TReg32_WRegClassID, // T0_W
2364 R600::R600_TReg32_WRegClassID, // T1_W
2365 R600::R600_TReg32_WRegClassID, // T2_W
2366 R600::R600_TReg32_WRegClassID, // T3_W
2367 R600::R600_TReg32_WRegClassID, // T4_W
2368 R600::R600_TReg32_WRegClassID, // T5_W
2369 R600::R600_TReg32_WRegClassID, // T6_W
2370 R600::R600_TReg32_WRegClassID, // T7_W
2371 R600::R600_TReg32_WRegClassID, // T8_W
2372 R600::R600_TReg32_WRegClassID, // T9_W
2373 R600::R600_TReg32_WRegClassID, // T10_W
2374 R600::R600_TReg32_WRegClassID, // T11_W
2375 R600::R600_TReg32_WRegClassID, // T12_W
2376 R600::R600_TReg32_WRegClassID, // T13_W
2377 R600::R600_TReg32_WRegClassID, // T14_W
2378 R600::R600_TReg32_WRegClassID, // T15_W
2379 R600::R600_TReg32_WRegClassID, // T16_W
2380 R600::R600_TReg32_WRegClassID, // T17_W
2381 R600::R600_TReg32_WRegClassID, // T18_W
2382 R600::R600_TReg32_WRegClassID, // T19_W
2383 R600::R600_TReg32_WRegClassID, // T20_W
2384 R600::R600_TReg32_WRegClassID, // T21_W
2385 R600::R600_TReg32_WRegClassID, // T22_W
2386 R600::R600_TReg32_WRegClassID, // T23_W
2387 R600::R600_TReg32_WRegClassID, // T24_W
2388 R600::R600_TReg32_WRegClassID, // T25_W
2389 R600::R600_TReg32_WRegClassID, // T26_W
2390 R600::R600_TReg32_WRegClassID, // T27_W
2391 R600::R600_TReg32_WRegClassID, // T28_W
2392 R600::R600_TReg32_WRegClassID, // T29_W
2393 R600::R600_TReg32_WRegClassID, // T30_W
2394 R600::R600_TReg32_WRegClassID, // T31_W
2395 R600::R600_TReg32_WRegClassID, // T32_W
2396 R600::R600_TReg32_WRegClassID, // T33_W
2397 R600::R600_TReg32_WRegClassID, // T34_W
2398 R600::R600_TReg32_WRegClassID, // T35_W
2399 R600::R600_TReg32_WRegClassID, // T36_W
2400 R600::R600_TReg32_WRegClassID, // T37_W
2401 R600::R600_TReg32_WRegClassID, // T38_W
2402 R600::R600_TReg32_WRegClassID, // T39_W
2403 R600::R600_TReg32_WRegClassID, // T40_W
2404 R600::R600_TReg32_WRegClassID, // T41_W
2405 R600::R600_TReg32_WRegClassID, // T42_W
2406 R600::R600_TReg32_WRegClassID, // T43_W
2407 R600::R600_TReg32_WRegClassID, // T44_W
2408 R600::R600_TReg32_WRegClassID, // T45_W
2409 R600::R600_TReg32_WRegClassID, // T46_W
2410 R600::R600_TReg32_WRegClassID, // T47_W
2411 R600::R600_TReg32_WRegClassID, // T48_W
2412 R600::R600_TReg32_WRegClassID, // T49_W
2413 R600::R600_TReg32_WRegClassID, // T50_W
2414 R600::R600_TReg32_WRegClassID, // T51_W
2415 R600::R600_TReg32_WRegClassID, // T52_W
2416 R600::R600_TReg32_WRegClassID, // T53_W
2417 R600::R600_TReg32_WRegClassID, // T54_W
2418 R600::R600_TReg32_WRegClassID, // T55_W
2419 R600::R600_TReg32_WRegClassID, // T56_W
2420 R600::R600_TReg32_WRegClassID, // T57_W
2421 R600::R600_TReg32_WRegClassID, // T58_W
2422 R600::R600_TReg32_WRegClassID, // T59_W
2423 R600::R600_TReg32_WRegClassID, // T60_W
2424 R600::R600_TReg32_WRegClassID, // T61_W
2425 R600::R600_TReg32_WRegClassID, // T62_W
2426 R600::R600_TReg32_WRegClassID, // T63_W
2427 R600::R600_TReg32_WRegClassID, // T64_W
2428 R600::R600_TReg32_WRegClassID, // T65_W
2429 R600::R600_TReg32_WRegClassID, // T66_W
2430 R600::R600_TReg32_WRegClassID, // T67_W
2431 R600::R600_TReg32_WRegClassID, // T68_W
2432 R600::R600_TReg32_WRegClassID, // T69_W
2433 R600::R600_TReg32_WRegClassID, // T70_W
2434 R600::R600_TReg32_WRegClassID, // T71_W
2435 R600::R600_TReg32_WRegClassID, // T72_W
2436 R600::R600_TReg32_WRegClassID, // T73_W
2437 R600::R600_TReg32_WRegClassID, // T74_W
2438 R600::R600_TReg32_WRegClassID, // T75_W
2439 R600::R600_TReg32_WRegClassID, // T76_W
2440 R600::R600_TReg32_WRegClassID, // T77_W
2441 R600::R600_TReg32_WRegClassID, // T78_W
2442 R600::R600_TReg32_WRegClassID, // T79_W
2443 R600::R600_TReg32_WRegClassID, // T80_W
2444 R600::R600_TReg32_WRegClassID, // T81_W
2445 R600::R600_TReg32_WRegClassID, // T82_W
2446 R600::R600_TReg32_WRegClassID, // T83_W
2447 R600::R600_TReg32_WRegClassID, // T84_W
2448 R600::R600_TReg32_WRegClassID, // T85_W
2449 R600::R600_TReg32_WRegClassID, // T86_W
2450 R600::R600_TReg32_WRegClassID, // T87_W
2451 R600::R600_TReg32_WRegClassID, // T88_W
2452 R600::R600_TReg32_WRegClassID, // T89_W
2453 R600::R600_TReg32_WRegClassID, // T90_W
2454 R600::R600_TReg32_WRegClassID, // T91_W
2455 R600::R600_TReg32_WRegClassID, // T92_W
2456 R600::R600_TReg32_WRegClassID, // T93_W
2457 R600::R600_TReg32_WRegClassID, // T94_W
2458 R600::R600_TReg32_WRegClassID, // T95_W
2459 R600::R600_TReg32_WRegClassID, // T96_W
2460 R600::R600_TReg32_WRegClassID, // T97_W
2461 R600::R600_TReg32_WRegClassID, // T98_W
2462 R600::R600_TReg32_WRegClassID, // T99_W
2463 R600::R600_TReg32_WRegClassID, // T100_W
2464 R600::R600_TReg32_WRegClassID, // T101_W
2465 R600::R600_TReg32_WRegClassID, // T102_W
2466 R600::R600_TReg32_WRegClassID, // T103_W
2467 R600::R600_TReg32_WRegClassID, // T104_W
2468 R600::R600_TReg32_WRegClassID, // T105_W
2469 R600::R600_TReg32_WRegClassID, // T106_W
2470 R600::R600_TReg32_WRegClassID, // T107_W
2471 R600::R600_TReg32_WRegClassID, // T108_W
2472 R600::R600_TReg32_WRegClassID, // T109_W
2473 R600::R600_TReg32_WRegClassID, // T110_W
2474 R600::R600_TReg32_WRegClassID, // T111_W
2475 R600::R600_TReg32_WRegClassID, // T112_W
2476 R600::R600_TReg32_WRegClassID, // T113_W
2477 R600::R600_TReg32_WRegClassID, // T114_W
2478 R600::R600_TReg32_WRegClassID, // T115_W
2479 R600::R600_TReg32_WRegClassID, // T116_W
2480 R600::R600_TReg32_WRegClassID, // T117_W
2481 R600::R600_TReg32_WRegClassID, // T118_W
2482 R600::R600_TReg32_WRegClassID, // T119_W
2483 R600::R600_TReg32_WRegClassID, // T120_W
2484 R600::R600_TReg32_WRegClassID, // T121_W
2485 R600::R600_TReg32_WRegClassID, // T122_W
2486 R600::R600_TReg32_WRegClassID, // T123_W
2487 R600::R600_TReg32_WRegClassID, // T124_W
2488 R600::R600_TReg32_WRegClassID, // T125_W
2489 R600::R600_TReg32_WRegClassID, // T126_W
2490 R600::R600_TReg32_WRegClassID, // T127_W
2491 R600::R600_TReg32_XRegClassID, // T0_X
2492 R600::R600_TReg32_XRegClassID, // T1_X
2493 R600::R600_TReg32_XRegClassID, // T2_X
2494 R600::R600_TReg32_XRegClassID, // T3_X
2495 R600::R600_TReg32_XRegClassID, // T4_X
2496 R600::R600_TReg32_XRegClassID, // T5_X
2497 R600::R600_TReg32_XRegClassID, // T6_X
2498 R600::R600_TReg32_XRegClassID, // T7_X
2499 R600::R600_TReg32_XRegClassID, // T8_X
2500 R600::R600_TReg32_XRegClassID, // T9_X
2501 R600::R600_TReg32_XRegClassID, // T10_X
2502 R600::R600_TReg32_XRegClassID, // T11_X
2503 R600::R600_TReg32_XRegClassID, // T12_X
2504 R600::R600_TReg32_XRegClassID, // T13_X
2505 R600::R600_TReg32_XRegClassID, // T14_X
2506 R600::R600_TReg32_XRegClassID, // T15_X
2507 R600::R600_TReg32_XRegClassID, // T16_X
2508 R600::R600_TReg32_XRegClassID, // T17_X
2509 R600::R600_TReg32_XRegClassID, // T18_X
2510 R600::R600_TReg32_XRegClassID, // T19_X
2511 R600::R600_TReg32_XRegClassID, // T20_X
2512 R600::R600_TReg32_XRegClassID, // T21_X
2513 R600::R600_TReg32_XRegClassID, // T22_X
2514 R600::R600_TReg32_XRegClassID, // T23_X
2515 R600::R600_TReg32_XRegClassID, // T24_X
2516 R600::R600_TReg32_XRegClassID, // T25_X
2517 R600::R600_TReg32_XRegClassID, // T26_X
2518 R600::R600_TReg32_XRegClassID, // T27_X
2519 R600::R600_TReg32_XRegClassID, // T28_X
2520 R600::R600_TReg32_XRegClassID, // T29_X
2521 R600::R600_TReg32_XRegClassID, // T30_X
2522 R600::R600_TReg32_XRegClassID, // T31_X
2523 R600::R600_TReg32_XRegClassID, // T32_X
2524 R600::R600_TReg32_XRegClassID, // T33_X
2525 R600::R600_TReg32_XRegClassID, // T34_X
2526 R600::R600_TReg32_XRegClassID, // T35_X
2527 R600::R600_TReg32_XRegClassID, // T36_X
2528 R600::R600_TReg32_XRegClassID, // T37_X
2529 R600::R600_TReg32_XRegClassID, // T38_X
2530 R600::R600_TReg32_XRegClassID, // T39_X
2531 R600::R600_TReg32_XRegClassID, // T40_X
2532 R600::R600_TReg32_XRegClassID, // T41_X
2533 R600::R600_TReg32_XRegClassID, // T42_X
2534 R600::R600_TReg32_XRegClassID, // T43_X
2535 R600::R600_TReg32_XRegClassID, // T44_X
2536 R600::R600_TReg32_XRegClassID, // T45_X
2537 R600::R600_TReg32_XRegClassID, // T46_X
2538 R600::R600_TReg32_XRegClassID, // T47_X
2539 R600::R600_TReg32_XRegClassID, // T48_X
2540 R600::R600_TReg32_XRegClassID, // T49_X
2541 R600::R600_TReg32_XRegClassID, // T50_X
2542 R600::R600_TReg32_XRegClassID, // T51_X
2543 R600::R600_TReg32_XRegClassID, // T52_X
2544 R600::R600_TReg32_XRegClassID, // T53_X
2545 R600::R600_TReg32_XRegClassID, // T54_X
2546 R600::R600_TReg32_XRegClassID, // T55_X
2547 R600::R600_TReg32_XRegClassID, // T56_X
2548 R600::R600_TReg32_XRegClassID, // T57_X
2549 R600::R600_TReg32_XRegClassID, // T58_X
2550 R600::R600_TReg32_XRegClassID, // T59_X
2551 R600::R600_TReg32_XRegClassID, // T60_X
2552 R600::R600_TReg32_XRegClassID, // T61_X
2553 R600::R600_TReg32_XRegClassID, // T62_X
2554 R600::R600_TReg32_XRegClassID, // T63_X
2555 R600::R600_TReg32_XRegClassID, // T64_X
2556 R600::R600_TReg32_XRegClassID, // T65_X
2557 R600::R600_TReg32_XRegClassID, // T66_X
2558 R600::R600_TReg32_XRegClassID, // T67_X
2559 R600::R600_TReg32_XRegClassID, // T68_X
2560 R600::R600_TReg32_XRegClassID, // T69_X
2561 R600::R600_TReg32_XRegClassID, // T70_X
2562 R600::R600_TReg32_XRegClassID, // T71_X
2563 R600::R600_TReg32_XRegClassID, // T72_X
2564 R600::R600_TReg32_XRegClassID, // T73_X
2565 R600::R600_TReg32_XRegClassID, // T74_X
2566 R600::R600_TReg32_XRegClassID, // T75_X
2567 R600::R600_TReg32_XRegClassID, // T76_X
2568 R600::R600_TReg32_XRegClassID, // T77_X
2569 R600::R600_TReg32_XRegClassID, // T78_X
2570 R600::R600_TReg32_XRegClassID, // T79_X
2571 R600::R600_TReg32_XRegClassID, // T80_X
2572 R600::R600_TReg32_XRegClassID, // T81_X
2573 R600::R600_TReg32_XRegClassID, // T82_X
2574 R600::R600_TReg32_XRegClassID, // T83_X
2575 R600::R600_TReg32_XRegClassID, // T84_X
2576 R600::R600_TReg32_XRegClassID, // T85_X
2577 R600::R600_TReg32_XRegClassID, // T86_X
2578 R600::R600_TReg32_XRegClassID, // T87_X
2579 R600::R600_TReg32_XRegClassID, // T88_X
2580 R600::R600_TReg32_XRegClassID, // T89_X
2581 R600::R600_TReg32_XRegClassID, // T90_X
2582 R600::R600_TReg32_XRegClassID, // T91_X
2583 R600::R600_TReg32_XRegClassID, // T92_X
2584 R600::R600_TReg32_XRegClassID, // T93_X
2585 R600::R600_TReg32_XRegClassID, // T94_X
2586 R600::R600_TReg32_XRegClassID, // T95_X
2587 R600::R600_TReg32_XRegClassID, // T96_X
2588 R600::R600_TReg32_XRegClassID, // T97_X
2589 R600::R600_TReg32_XRegClassID, // T98_X
2590 R600::R600_TReg32_XRegClassID, // T99_X
2591 R600::R600_TReg32_XRegClassID, // T100_X
2592 R600::R600_TReg32_XRegClassID, // T101_X
2593 R600::R600_TReg32_XRegClassID, // T102_X
2594 R600::R600_TReg32_XRegClassID, // T103_X
2595 R600::R600_TReg32_XRegClassID, // T104_X
2596 R600::R600_TReg32_XRegClassID, // T105_X
2597 R600::R600_TReg32_XRegClassID, // T106_X
2598 R600::R600_TReg32_XRegClassID, // T107_X
2599 R600::R600_TReg32_XRegClassID, // T108_X
2600 R600::R600_TReg32_XRegClassID, // T109_X
2601 R600::R600_TReg32_XRegClassID, // T110_X
2602 R600::R600_TReg32_XRegClassID, // T111_X
2603 R600::R600_TReg32_XRegClassID, // T112_X
2604 R600::R600_TReg32_XRegClassID, // T113_X
2605 R600::R600_TReg32_XRegClassID, // T114_X
2606 R600::R600_TReg32_XRegClassID, // T115_X
2607 R600::R600_TReg32_XRegClassID, // T116_X
2608 R600::R600_TReg32_XRegClassID, // T117_X
2609 R600::R600_TReg32_XRegClassID, // T118_X
2610 R600::R600_TReg32_XRegClassID, // T119_X
2611 R600::R600_TReg32_XRegClassID, // T120_X
2612 R600::R600_TReg32_XRegClassID, // T121_X
2613 R600::R600_TReg32_XRegClassID, // T122_X
2614 R600::R600_TReg32_XRegClassID, // T123_X
2615 R600::R600_TReg32_XRegClassID, // T124_X
2616 R600::R600_TReg32_XRegClassID, // T125_X
2617 R600::R600_TReg32_XRegClassID, // T126_X
2618 R600::R600_TReg32_XRegClassID, // T127_X
2619 R600::R600_Reg64RegClassID, // T0_XY
2620 R600::R600_Reg64RegClassID, // T1_XY
2621 R600::R600_Reg64RegClassID, // T2_XY
2622 R600::R600_Reg64RegClassID, // T3_XY
2623 R600::R600_Reg64RegClassID, // T4_XY
2624 R600::R600_Reg64RegClassID, // T5_XY
2625 R600::R600_Reg64RegClassID, // T6_XY
2626 R600::R600_Reg64RegClassID, // T7_XY
2627 R600::R600_Reg64RegClassID, // T8_XY
2628 R600::R600_Reg64RegClassID, // T9_XY
2629 R600::R600_Reg64RegClassID, // T10_XY
2630 R600::R600_Reg64RegClassID, // T11_XY
2631 R600::R600_Reg64RegClassID, // T12_XY
2632 R600::R600_Reg64RegClassID, // T13_XY
2633 R600::R600_Reg64RegClassID, // T14_XY
2634 R600::R600_Reg64RegClassID, // T15_XY
2635 R600::R600_Reg64RegClassID, // T16_XY
2636 R600::R600_Reg64RegClassID, // T17_XY
2637 R600::R600_Reg64RegClassID, // T18_XY
2638 R600::R600_Reg64RegClassID, // T19_XY
2639 R600::R600_Reg64RegClassID, // T20_XY
2640 R600::R600_Reg64RegClassID, // T21_XY
2641 R600::R600_Reg64RegClassID, // T22_XY
2642 R600::R600_Reg64RegClassID, // T23_XY
2643 R600::R600_Reg64RegClassID, // T24_XY
2644 R600::R600_Reg64RegClassID, // T25_XY
2645 R600::R600_Reg64RegClassID, // T26_XY
2646 R600::R600_Reg64RegClassID, // T27_XY
2647 R600::R600_Reg64RegClassID, // T28_XY
2648 R600::R600_Reg64RegClassID, // T29_XY
2649 R600::R600_Reg64RegClassID, // T30_XY
2650 R600::R600_Reg64RegClassID, // T31_XY
2651 R600::R600_Reg64RegClassID, // T32_XY
2652 R600::R600_Reg64RegClassID, // T33_XY
2653 R600::R600_Reg64RegClassID, // T34_XY
2654 R600::R600_Reg64RegClassID, // T35_XY
2655 R600::R600_Reg64RegClassID, // T36_XY
2656 R600::R600_Reg64RegClassID, // T37_XY
2657 R600::R600_Reg64RegClassID, // T38_XY
2658 R600::R600_Reg64RegClassID, // T39_XY
2659 R600::R600_Reg64RegClassID, // T40_XY
2660 R600::R600_Reg64RegClassID, // T41_XY
2661 R600::R600_Reg64RegClassID, // T42_XY
2662 R600::R600_Reg64RegClassID, // T43_XY
2663 R600::R600_Reg64RegClassID, // T44_XY
2664 R600::R600_Reg64RegClassID, // T45_XY
2665 R600::R600_Reg64RegClassID, // T46_XY
2666 R600::R600_Reg64RegClassID, // T47_XY
2667 R600::R600_Reg64RegClassID, // T48_XY
2668 R600::R600_Reg64RegClassID, // T49_XY
2669 R600::R600_Reg64RegClassID, // T50_XY
2670 R600::R600_Reg64RegClassID, // T51_XY
2671 R600::R600_Reg64RegClassID, // T52_XY
2672 R600::R600_Reg64RegClassID, // T53_XY
2673 R600::R600_Reg64RegClassID, // T54_XY
2674 R600::R600_Reg64RegClassID, // T55_XY
2675 R600::R600_Reg64RegClassID, // T56_XY
2676 R600::R600_Reg64RegClassID, // T57_XY
2677 R600::R600_Reg64RegClassID, // T58_XY
2678 R600::R600_Reg64RegClassID, // T59_XY
2679 R600::R600_Reg64RegClassID, // T60_XY
2680 R600::R600_Reg64RegClassID, // T61_XY
2681 R600::R600_Reg64RegClassID, // T62_XY
2682 R600::R600_Reg64RegClassID, // T63_XY
2683 InvalidRegClassID, // T64_XY
2684 InvalidRegClassID, // T65_XY
2685 InvalidRegClassID, // T66_XY
2686 InvalidRegClassID, // T67_XY
2687 InvalidRegClassID, // T68_XY
2688 InvalidRegClassID, // T69_XY
2689 InvalidRegClassID, // T70_XY
2690 InvalidRegClassID, // T71_XY
2691 InvalidRegClassID, // T72_XY
2692 InvalidRegClassID, // T73_XY
2693 InvalidRegClassID, // T74_XY
2694 InvalidRegClassID, // T75_XY
2695 InvalidRegClassID, // T76_XY
2696 InvalidRegClassID, // T77_XY
2697 InvalidRegClassID, // T78_XY
2698 InvalidRegClassID, // T79_XY
2699 InvalidRegClassID, // T80_XY
2700 InvalidRegClassID, // T81_XY
2701 InvalidRegClassID, // T82_XY
2702 InvalidRegClassID, // T83_XY
2703 InvalidRegClassID, // T84_XY
2704 InvalidRegClassID, // T85_XY
2705 InvalidRegClassID, // T86_XY
2706 InvalidRegClassID, // T87_XY
2707 InvalidRegClassID, // T88_XY
2708 InvalidRegClassID, // T89_XY
2709 InvalidRegClassID, // T90_XY
2710 InvalidRegClassID, // T91_XY
2711 InvalidRegClassID, // T92_XY
2712 InvalidRegClassID, // T93_XY
2713 InvalidRegClassID, // T94_XY
2714 InvalidRegClassID, // T95_XY
2715 InvalidRegClassID, // T96_XY
2716 InvalidRegClassID, // T97_XY
2717 InvalidRegClassID, // T98_XY
2718 InvalidRegClassID, // T99_XY
2719 InvalidRegClassID, // T100_XY
2720 InvalidRegClassID, // T101_XY
2721 InvalidRegClassID, // T102_XY
2722 InvalidRegClassID, // T103_XY
2723 InvalidRegClassID, // T104_XY
2724 InvalidRegClassID, // T105_XY
2725 InvalidRegClassID, // T106_XY
2726 InvalidRegClassID, // T107_XY
2727 InvalidRegClassID, // T108_XY
2728 InvalidRegClassID, // T109_XY
2729 InvalidRegClassID, // T110_XY
2730 InvalidRegClassID, // T111_XY
2731 InvalidRegClassID, // T112_XY
2732 InvalidRegClassID, // T113_XY
2733 InvalidRegClassID, // T114_XY
2734 InvalidRegClassID, // T115_XY
2735 InvalidRegClassID, // T116_XY
2736 InvalidRegClassID, // T117_XY
2737 InvalidRegClassID, // T118_XY
2738 InvalidRegClassID, // T119_XY
2739 InvalidRegClassID, // T120_XY
2740 InvalidRegClassID, // T121_XY
2741 InvalidRegClassID, // T122_XY
2742 InvalidRegClassID, // T123_XY
2743 InvalidRegClassID, // T124_XY
2744 InvalidRegClassID, // T125_XY
2745 InvalidRegClassID, // T126_XY
2746 InvalidRegClassID, // T127_XY
2747 R600::R600_Reg128RegClassID, // T0_XYZW
2748 R600::R600_Reg128RegClassID, // T1_XYZW
2749 R600::R600_Reg128RegClassID, // T2_XYZW
2750 R600::R600_Reg128RegClassID, // T3_XYZW
2751 R600::R600_Reg128RegClassID, // T4_XYZW
2752 R600::R600_Reg128RegClassID, // T5_XYZW
2753 R600::R600_Reg128RegClassID, // T6_XYZW
2754 R600::R600_Reg128RegClassID, // T7_XYZW
2755 R600::R600_Reg128RegClassID, // T8_XYZW
2756 R600::R600_Reg128RegClassID, // T9_XYZW
2757 R600::R600_Reg128RegClassID, // T10_XYZW
2758 R600::R600_Reg128RegClassID, // T11_XYZW
2759 R600::R600_Reg128RegClassID, // T12_XYZW
2760 R600::R600_Reg128RegClassID, // T13_XYZW
2761 R600::R600_Reg128RegClassID, // T14_XYZW
2762 R600::R600_Reg128RegClassID, // T15_XYZW
2763 R600::R600_Reg128RegClassID, // T16_XYZW
2764 R600::R600_Reg128RegClassID, // T17_XYZW
2765 R600::R600_Reg128RegClassID, // T18_XYZW
2766 R600::R600_Reg128RegClassID, // T19_XYZW
2767 R600::R600_Reg128RegClassID, // T20_XYZW
2768 R600::R600_Reg128RegClassID, // T21_XYZW
2769 R600::R600_Reg128RegClassID, // T22_XYZW
2770 R600::R600_Reg128RegClassID, // T23_XYZW
2771 R600::R600_Reg128RegClassID, // T24_XYZW
2772 R600::R600_Reg128RegClassID, // T25_XYZW
2773 R600::R600_Reg128RegClassID, // T26_XYZW
2774 R600::R600_Reg128RegClassID, // T27_XYZW
2775 R600::R600_Reg128RegClassID, // T28_XYZW
2776 R600::R600_Reg128RegClassID, // T29_XYZW
2777 R600::R600_Reg128RegClassID, // T30_XYZW
2778 R600::R600_Reg128RegClassID, // T31_XYZW
2779 R600::R600_Reg128RegClassID, // T32_XYZW
2780 R600::R600_Reg128RegClassID, // T33_XYZW
2781 R600::R600_Reg128RegClassID, // T34_XYZW
2782 R600::R600_Reg128RegClassID, // T35_XYZW
2783 R600::R600_Reg128RegClassID, // T36_XYZW
2784 R600::R600_Reg128RegClassID, // T37_XYZW
2785 R600::R600_Reg128RegClassID, // T38_XYZW
2786 R600::R600_Reg128RegClassID, // T39_XYZW
2787 R600::R600_Reg128RegClassID, // T40_XYZW
2788 R600::R600_Reg128RegClassID, // T41_XYZW
2789 R600::R600_Reg128RegClassID, // T42_XYZW
2790 R600::R600_Reg128RegClassID, // T43_XYZW
2791 R600::R600_Reg128RegClassID, // T44_XYZW
2792 R600::R600_Reg128RegClassID, // T45_XYZW
2793 R600::R600_Reg128RegClassID, // T46_XYZW
2794 R600::R600_Reg128RegClassID, // T47_XYZW
2795 R600::R600_Reg128RegClassID, // T48_XYZW
2796 R600::R600_Reg128RegClassID, // T49_XYZW
2797 R600::R600_Reg128RegClassID, // T50_XYZW
2798 R600::R600_Reg128RegClassID, // T51_XYZW
2799 R600::R600_Reg128RegClassID, // T52_XYZW
2800 R600::R600_Reg128RegClassID, // T53_XYZW
2801 R600::R600_Reg128RegClassID, // T54_XYZW
2802 R600::R600_Reg128RegClassID, // T55_XYZW
2803 R600::R600_Reg128RegClassID, // T56_XYZW
2804 R600::R600_Reg128RegClassID, // T57_XYZW
2805 R600::R600_Reg128RegClassID, // T58_XYZW
2806 R600::R600_Reg128RegClassID, // T59_XYZW
2807 R600::R600_Reg128RegClassID, // T60_XYZW
2808 R600::R600_Reg128RegClassID, // T61_XYZW
2809 R600::R600_Reg128RegClassID, // T62_XYZW
2810 R600::R600_Reg128RegClassID, // T63_XYZW
2811 R600::R600_Reg128RegClassID, // T64_XYZW
2812 R600::R600_Reg128RegClassID, // T65_XYZW
2813 R600::R600_Reg128RegClassID, // T66_XYZW
2814 R600::R600_Reg128RegClassID, // T67_XYZW
2815 R600::R600_Reg128RegClassID, // T68_XYZW
2816 R600::R600_Reg128RegClassID, // T69_XYZW
2817 R600::R600_Reg128RegClassID, // T70_XYZW
2818 R600::R600_Reg128RegClassID, // T71_XYZW
2819 R600::R600_Reg128RegClassID, // T72_XYZW
2820 R600::R600_Reg128RegClassID, // T73_XYZW
2821 R600::R600_Reg128RegClassID, // T74_XYZW
2822 R600::R600_Reg128RegClassID, // T75_XYZW
2823 R600::R600_Reg128RegClassID, // T76_XYZW
2824 R600::R600_Reg128RegClassID, // T77_XYZW
2825 R600::R600_Reg128RegClassID, // T78_XYZW
2826 R600::R600_Reg128RegClassID, // T79_XYZW
2827 R600::R600_Reg128RegClassID, // T80_XYZW
2828 R600::R600_Reg128RegClassID, // T81_XYZW
2829 R600::R600_Reg128RegClassID, // T82_XYZW
2830 R600::R600_Reg128RegClassID, // T83_XYZW
2831 R600::R600_Reg128RegClassID, // T84_XYZW
2832 R600::R600_Reg128RegClassID, // T85_XYZW
2833 R600::R600_Reg128RegClassID, // T86_XYZW
2834 R600::R600_Reg128RegClassID, // T87_XYZW
2835 R600::R600_Reg128RegClassID, // T88_XYZW
2836 R600::R600_Reg128RegClassID, // T89_XYZW
2837 R600::R600_Reg128RegClassID, // T90_XYZW
2838 R600::R600_Reg128RegClassID, // T91_XYZW
2839 R600::R600_Reg128RegClassID, // T92_XYZW
2840 R600::R600_Reg128RegClassID, // T93_XYZW
2841 R600::R600_Reg128RegClassID, // T94_XYZW
2842 R600::R600_Reg128RegClassID, // T95_XYZW
2843 R600::R600_Reg128RegClassID, // T96_XYZW
2844 R600::R600_Reg128RegClassID, // T97_XYZW
2845 R600::R600_Reg128RegClassID, // T98_XYZW
2846 R600::R600_Reg128RegClassID, // T99_XYZW
2847 R600::R600_Reg128RegClassID, // T100_XYZW
2848 R600::R600_Reg128RegClassID, // T101_XYZW
2849 R600::R600_Reg128RegClassID, // T102_XYZW
2850 R600::R600_Reg128RegClassID, // T103_XYZW
2851 R600::R600_Reg128RegClassID, // T104_XYZW
2852 R600::R600_Reg128RegClassID, // T105_XYZW
2853 R600::R600_Reg128RegClassID, // T106_XYZW
2854 R600::R600_Reg128RegClassID, // T107_XYZW
2855 R600::R600_Reg128RegClassID, // T108_XYZW
2856 R600::R600_Reg128RegClassID, // T109_XYZW
2857 R600::R600_Reg128RegClassID, // T110_XYZW
2858 R600::R600_Reg128RegClassID, // T111_XYZW
2859 R600::R600_Reg128RegClassID, // T112_XYZW
2860 R600::R600_Reg128RegClassID, // T113_XYZW
2861 R600::R600_Reg128RegClassID, // T114_XYZW
2862 R600::R600_Reg128RegClassID, // T115_XYZW
2863 R600::R600_Reg128RegClassID, // T116_XYZW
2864 R600::R600_Reg128RegClassID, // T117_XYZW
2865 R600::R600_Reg128RegClassID, // T118_XYZW
2866 R600::R600_Reg128RegClassID, // T119_XYZW
2867 R600::R600_Reg128RegClassID, // T120_XYZW
2868 R600::R600_Reg128RegClassID, // T121_XYZW
2869 R600::R600_Reg128RegClassID, // T122_XYZW
2870 R600::R600_Reg128RegClassID, // T123_XYZW
2871 R600::R600_Reg128RegClassID, // T124_XYZW
2872 R600::R600_Reg128RegClassID, // T125_XYZW
2873 R600::R600_Reg128RegClassID, // T126_XYZW
2874 R600::R600_Reg128RegClassID, // T127_XYZW
2875 R600::R600_TReg32_YRegClassID, // T0_Y
2876 R600::R600_TReg32_YRegClassID, // T1_Y
2877 R600::R600_TReg32_YRegClassID, // T2_Y
2878 R600::R600_TReg32_YRegClassID, // T3_Y
2879 R600::R600_TReg32_YRegClassID, // T4_Y
2880 R600::R600_TReg32_YRegClassID, // T5_Y
2881 R600::R600_TReg32_YRegClassID, // T6_Y
2882 R600::R600_TReg32_YRegClassID, // T7_Y
2883 R600::R600_TReg32_YRegClassID, // T8_Y
2884 R600::R600_TReg32_YRegClassID, // T9_Y
2885 R600::R600_TReg32_YRegClassID, // T10_Y
2886 R600::R600_TReg32_YRegClassID, // T11_Y
2887 R600::R600_TReg32_YRegClassID, // T12_Y
2888 R600::R600_TReg32_YRegClassID, // T13_Y
2889 R600::R600_TReg32_YRegClassID, // T14_Y
2890 R600::R600_TReg32_YRegClassID, // T15_Y
2891 R600::R600_TReg32_YRegClassID, // T16_Y
2892 R600::R600_TReg32_YRegClassID, // T17_Y
2893 R600::R600_TReg32_YRegClassID, // T18_Y
2894 R600::R600_TReg32_YRegClassID, // T19_Y
2895 R600::R600_TReg32_YRegClassID, // T20_Y
2896 R600::R600_TReg32_YRegClassID, // T21_Y
2897 R600::R600_TReg32_YRegClassID, // T22_Y
2898 R600::R600_TReg32_YRegClassID, // T23_Y
2899 R600::R600_TReg32_YRegClassID, // T24_Y
2900 R600::R600_TReg32_YRegClassID, // T25_Y
2901 R600::R600_TReg32_YRegClassID, // T26_Y
2902 R600::R600_TReg32_YRegClassID, // T27_Y
2903 R600::R600_TReg32_YRegClassID, // T28_Y
2904 R600::R600_TReg32_YRegClassID, // T29_Y
2905 R600::R600_TReg32_YRegClassID, // T30_Y
2906 R600::R600_TReg32_YRegClassID, // T31_Y
2907 R600::R600_TReg32_YRegClassID, // T32_Y
2908 R600::R600_TReg32_YRegClassID, // T33_Y
2909 R600::R600_TReg32_YRegClassID, // T34_Y
2910 R600::R600_TReg32_YRegClassID, // T35_Y
2911 R600::R600_TReg32_YRegClassID, // T36_Y
2912 R600::R600_TReg32_YRegClassID, // T37_Y
2913 R600::R600_TReg32_YRegClassID, // T38_Y
2914 R600::R600_TReg32_YRegClassID, // T39_Y
2915 R600::R600_TReg32_YRegClassID, // T40_Y
2916 R600::R600_TReg32_YRegClassID, // T41_Y
2917 R600::R600_TReg32_YRegClassID, // T42_Y
2918 R600::R600_TReg32_YRegClassID, // T43_Y
2919 R600::R600_TReg32_YRegClassID, // T44_Y
2920 R600::R600_TReg32_YRegClassID, // T45_Y
2921 R600::R600_TReg32_YRegClassID, // T46_Y
2922 R600::R600_TReg32_YRegClassID, // T47_Y
2923 R600::R600_TReg32_YRegClassID, // T48_Y
2924 R600::R600_TReg32_YRegClassID, // T49_Y
2925 R600::R600_TReg32_YRegClassID, // T50_Y
2926 R600::R600_TReg32_YRegClassID, // T51_Y
2927 R600::R600_TReg32_YRegClassID, // T52_Y
2928 R600::R600_TReg32_YRegClassID, // T53_Y
2929 R600::R600_TReg32_YRegClassID, // T54_Y
2930 R600::R600_TReg32_YRegClassID, // T55_Y
2931 R600::R600_TReg32_YRegClassID, // T56_Y
2932 R600::R600_TReg32_YRegClassID, // T57_Y
2933 R600::R600_TReg32_YRegClassID, // T58_Y
2934 R600::R600_TReg32_YRegClassID, // T59_Y
2935 R600::R600_TReg32_YRegClassID, // T60_Y
2936 R600::R600_TReg32_YRegClassID, // T61_Y
2937 R600::R600_TReg32_YRegClassID, // T62_Y
2938 R600::R600_TReg32_YRegClassID, // T63_Y
2939 R600::R600_TReg32_YRegClassID, // T64_Y
2940 R600::R600_TReg32_YRegClassID, // T65_Y
2941 R600::R600_TReg32_YRegClassID, // T66_Y
2942 R600::R600_TReg32_YRegClassID, // T67_Y
2943 R600::R600_TReg32_YRegClassID, // T68_Y
2944 R600::R600_TReg32_YRegClassID, // T69_Y
2945 R600::R600_TReg32_YRegClassID, // T70_Y
2946 R600::R600_TReg32_YRegClassID, // T71_Y
2947 R600::R600_TReg32_YRegClassID, // T72_Y
2948 R600::R600_TReg32_YRegClassID, // T73_Y
2949 R600::R600_TReg32_YRegClassID, // T74_Y
2950 R600::R600_TReg32_YRegClassID, // T75_Y
2951 R600::R600_TReg32_YRegClassID, // T76_Y
2952 R600::R600_TReg32_YRegClassID, // T77_Y
2953 R600::R600_TReg32_YRegClassID, // T78_Y
2954 R600::R600_TReg32_YRegClassID, // T79_Y
2955 R600::R600_TReg32_YRegClassID, // T80_Y
2956 R600::R600_TReg32_YRegClassID, // T81_Y
2957 R600::R600_TReg32_YRegClassID, // T82_Y
2958 R600::R600_TReg32_YRegClassID, // T83_Y
2959 R600::R600_TReg32_YRegClassID, // T84_Y
2960 R600::R600_TReg32_YRegClassID, // T85_Y
2961 R600::R600_TReg32_YRegClassID, // T86_Y
2962 R600::R600_TReg32_YRegClassID, // T87_Y
2963 R600::R600_TReg32_YRegClassID, // T88_Y
2964 R600::R600_TReg32_YRegClassID, // T89_Y
2965 R600::R600_TReg32_YRegClassID, // T90_Y
2966 R600::R600_TReg32_YRegClassID, // T91_Y
2967 R600::R600_TReg32_YRegClassID, // T92_Y
2968 R600::R600_TReg32_YRegClassID, // T93_Y
2969 R600::R600_TReg32_YRegClassID, // T94_Y
2970 R600::R600_TReg32_YRegClassID, // T95_Y
2971 R600::R600_TReg32_YRegClassID, // T96_Y
2972 R600::R600_TReg32_YRegClassID, // T97_Y
2973 R600::R600_TReg32_YRegClassID, // T98_Y
2974 R600::R600_TReg32_YRegClassID, // T99_Y
2975 R600::R600_TReg32_YRegClassID, // T100_Y
2976 R600::R600_TReg32_YRegClassID, // T101_Y
2977 R600::R600_TReg32_YRegClassID, // T102_Y
2978 R600::R600_TReg32_YRegClassID, // T103_Y
2979 R600::R600_TReg32_YRegClassID, // T104_Y
2980 R600::R600_TReg32_YRegClassID, // T105_Y
2981 R600::R600_TReg32_YRegClassID, // T106_Y
2982 R600::R600_TReg32_YRegClassID, // T107_Y
2983 R600::R600_TReg32_YRegClassID, // T108_Y
2984 R600::R600_TReg32_YRegClassID, // T109_Y
2985 R600::R600_TReg32_YRegClassID, // T110_Y
2986 R600::R600_TReg32_YRegClassID, // T111_Y
2987 R600::R600_TReg32_YRegClassID, // T112_Y
2988 R600::R600_TReg32_YRegClassID, // T113_Y
2989 R600::R600_TReg32_YRegClassID, // T114_Y
2990 R600::R600_TReg32_YRegClassID, // T115_Y
2991 R600::R600_TReg32_YRegClassID, // T116_Y
2992 R600::R600_TReg32_YRegClassID, // T117_Y
2993 R600::R600_TReg32_YRegClassID, // T118_Y
2994 R600::R600_TReg32_YRegClassID, // T119_Y
2995 R600::R600_TReg32_YRegClassID, // T120_Y
2996 R600::R600_TReg32_YRegClassID, // T121_Y
2997 R600::R600_TReg32_YRegClassID, // T122_Y
2998 R600::R600_TReg32_YRegClassID, // T123_Y
2999 R600::R600_TReg32_YRegClassID, // T124_Y
3000 R600::R600_TReg32_YRegClassID, // T125_Y
3001 R600::R600_TReg32_YRegClassID, // T126_Y
3002 R600::R600_TReg32_YRegClassID, // T127_Y
3003 R600::R600_TReg32_ZRegClassID, // T0_Z
3004 R600::R600_TReg32_ZRegClassID, // T1_Z
3005 R600::R600_TReg32_ZRegClassID, // T2_Z
3006 R600::R600_TReg32_ZRegClassID, // T3_Z
3007 R600::R600_TReg32_ZRegClassID, // T4_Z
3008 R600::R600_TReg32_ZRegClassID, // T5_Z
3009 R600::R600_TReg32_ZRegClassID, // T6_Z
3010 R600::R600_TReg32_ZRegClassID, // T7_Z
3011 R600::R600_TReg32_ZRegClassID, // T8_Z
3012 R600::R600_TReg32_ZRegClassID, // T9_Z
3013 R600::R600_TReg32_ZRegClassID, // T10_Z
3014 R600::R600_TReg32_ZRegClassID, // T11_Z
3015 R600::R600_TReg32_ZRegClassID, // T12_Z
3016 R600::R600_TReg32_ZRegClassID, // T13_Z
3017 R600::R600_TReg32_ZRegClassID, // T14_Z
3018 R600::R600_TReg32_ZRegClassID, // T15_Z
3019 R600::R600_TReg32_ZRegClassID, // T16_Z
3020 R600::R600_TReg32_ZRegClassID, // T17_Z
3021 R600::R600_TReg32_ZRegClassID, // T18_Z
3022 R600::R600_TReg32_ZRegClassID, // T19_Z
3023 R600::R600_TReg32_ZRegClassID, // T20_Z
3024 R600::R600_TReg32_ZRegClassID, // T21_Z
3025 R600::R600_TReg32_ZRegClassID, // T22_Z
3026 R600::R600_TReg32_ZRegClassID, // T23_Z
3027 R600::R600_TReg32_ZRegClassID, // T24_Z
3028 R600::R600_TReg32_ZRegClassID, // T25_Z
3029 R600::R600_TReg32_ZRegClassID, // T26_Z
3030 R600::R600_TReg32_ZRegClassID, // T27_Z
3031 R600::R600_TReg32_ZRegClassID, // T28_Z
3032 R600::R600_TReg32_ZRegClassID, // T29_Z
3033 R600::R600_TReg32_ZRegClassID, // T30_Z
3034 R600::R600_TReg32_ZRegClassID, // T31_Z
3035 R600::R600_TReg32_ZRegClassID, // T32_Z
3036 R600::R600_TReg32_ZRegClassID, // T33_Z
3037 R600::R600_TReg32_ZRegClassID, // T34_Z
3038 R600::R600_TReg32_ZRegClassID, // T35_Z
3039 R600::R600_TReg32_ZRegClassID, // T36_Z
3040 R600::R600_TReg32_ZRegClassID, // T37_Z
3041 R600::R600_TReg32_ZRegClassID, // T38_Z
3042 R600::R600_TReg32_ZRegClassID, // T39_Z
3043 R600::R600_TReg32_ZRegClassID, // T40_Z
3044 R600::R600_TReg32_ZRegClassID, // T41_Z
3045 R600::R600_TReg32_ZRegClassID, // T42_Z
3046 R600::R600_TReg32_ZRegClassID, // T43_Z
3047 R600::R600_TReg32_ZRegClassID, // T44_Z
3048 R600::R600_TReg32_ZRegClassID, // T45_Z
3049 R600::R600_TReg32_ZRegClassID, // T46_Z
3050 R600::R600_TReg32_ZRegClassID, // T47_Z
3051 R600::R600_TReg32_ZRegClassID, // T48_Z
3052 R600::R600_TReg32_ZRegClassID, // T49_Z
3053 R600::R600_TReg32_ZRegClassID, // T50_Z
3054 R600::R600_TReg32_ZRegClassID, // T51_Z
3055 R600::R600_TReg32_ZRegClassID, // T52_Z
3056 R600::R600_TReg32_ZRegClassID, // T53_Z
3057 R600::R600_TReg32_ZRegClassID, // T54_Z
3058 R600::R600_TReg32_ZRegClassID, // T55_Z
3059 R600::R600_TReg32_ZRegClassID, // T56_Z
3060 R600::R600_TReg32_ZRegClassID, // T57_Z
3061 R600::R600_TReg32_ZRegClassID, // T58_Z
3062 R600::R600_TReg32_ZRegClassID, // T59_Z
3063 R600::R600_TReg32_ZRegClassID, // T60_Z
3064 R600::R600_TReg32_ZRegClassID, // T61_Z
3065 R600::R600_TReg32_ZRegClassID, // T62_Z
3066 R600::R600_TReg32_ZRegClassID, // T63_Z
3067 R600::R600_TReg32_ZRegClassID, // T64_Z
3068 R600::R600_TReg32_ZRegClassID, // T65_Z
3069 R600::R600_TReg32_ZRegClassID, // T66_Z
3070 R600::R600_TReg32_ZRegClassID, // T67_Z
3071 R600::R600_TReg32_ZRegClassID, // T68_Z
3072 R600::R600_TReg32_ZRegClassID, // T69_Z
3073 R600::R600_TReg32_ZRegClassID, // T70_Z
3074 R600::R600_TReg32_ZRegClassID, // T71_Z
3075 R600::R600_TReg32_ZRegClassID, // T72_Z
3076 R600::R600_TReg32_ZRegClassID, // T73_Z
3077 R600::R600_TReg32_ZRegClassID, // T74_Z
3078 R600::R600_TReg32_ZRegClassID, // T75_Z
3079 R600::R600_TReg32_ZRegClassID, // T76_Z
3080 R600::R600_TReg32_ZRegClassID, // T77_Z
3081 R600::R600_TReg32_ZRegClassID, // T78_Z
3082 R600::R600_TReg32_ZRegClassID, // T79_Z
3083 R600::R600_TReg32_ZRegClassID, // T80_Z
3084 R600::R600_TReg32_ZRegClassID, // T81_Z
3085 R600::R600_TReg32_ZRegClassID, // T82_Z
3086 R600::R600_TReg32_ZRegClassID, // T83_Z
3087 R600::R600_TReg32_ZRegClassID, // T84_Z
3088 R600::R600_TReg32_ZRegClassID, // T85_Z
3089 R600::R600_TReg32_ZRegClassID, // T86_Z
3090 R600::R600_TReg32_ZRegClassID, // T87_Z
3091 R600::R600_TReg32_ZRegClassID, // T88_Z
3092 R600::R600_TReg32_ZRegClassID, // T89_Z
3093 R600::R600_TReg32_ZRegClassID, // T90_Z
3094 R600::R600_TReg32_ZRegClassID, // T91_Z
3095 R600::R600_TReg32_ZRegClassID, // T92_Z
3096 R600::R600_TReg32_ZRegClassID, // T93_Z
3097 R600::R600_TReg32_ZRegClassID, // T94_Z
3098 R600::R600_TReg32_ZRegClassID, // T95_Z
3099 R600::R600_TReg32_ZRegClassID, // T96_Z
3100 R600::R600_TReg32_ZRegClassID, // T97_Z
3101 R600::R600_TReg32_ZRegClassID, // T98_Z
3102 R600::R600_TReg32_ZRegClassID, // T99_Z
3103 R600::R600_TReg32_ZRegClassID, // T100_Z
3104 R600::R600_TReg32_ZRegClassID, // T101_Z
3105 R600::R600_TReg32_ZRegClassID, // T102_Z
3106 R600::R600_TReg32_ZRegClassID, // T103_Z
3107 R600::R600_TReg32_ZRegClassID, // T104_Z
3108 R600::R600_TReg32_ZRegClassID, // T105_Z
3109 R600::R600_TReg32_ZRegClassID, // T106_Z
3110 R600::R600_TReg32_ZRegClassID, // T107_Z
3111 R600::R600_TReg32_ZRegClassID, // T108_Z
3112 R600::R600_TReg32_ZRegClassID, // T109_Z
3113 R600::R600_TReg32_ZRegClassID, // T110_Z
3114 R600::R600_TReg32_ZRegClassID, // T111_Z
3115 R600::R600_TReg32_ZRegClassID, // T112_Z
3116 R600::R600_TReg32_ZRegClassID, // T113_Z
3117 R600::R600_TReg32_ZRegClassID, // T114_Z
3118 R600::R600_TReg32_ZRegClassID, // T115_Z
3119 R600::R600_TReg32_ZRegClassID, // T116_Z
3120 R600::R600_TReg32_ZRegClassID, // T117_Z
3121 R600::R600_TReg32_ZRegClassID, // T118_Z
3122 R600::R600_TReg32_ZRegClassID, // T119_Z
3123 R600::R600_TReg32_ZRegClassID, // T120_Z
3124 R600::R600_TReg32_ZRegClassID, // T121_Z
3125 R600::R600_TReg32_ZRegClassID, // T122_Z
3126 R600::R600_TReg32_ZRegClassID, // T123_Z
3127 R600::R600_TReg32_ZRegClassID, // T124_Z
3128 R600::R600_TReg32_ZRegClassID, // T125_Z
3129 R600::R600_TReg32_ZRegClassID, // T126_Z
3130 R600::R600_TReg32_ZRegClassID, // T127_Z
3131 R600::R600_Reg64Vertical_with_sub0_in_R600_TReg32_WRegClassID, // V01_W
3132 R600::R600_Reg64Vertical_with_sub0_in_R600_TReg32_WRegClassID, // V23_W
3133 R600::R600_Reg128Vertical_with_sub0_in_R600_TReg32_WRegClassID, // V0123_W
3134 R600::R600_Reg64Vertical_with_sub0_in_R600_TReg32_XRegClassID, // V01_X
3135 R600::R600_Reg64Vertical_with_sub0_in_R600_TReg32_XRegClassID, // V23_X
3136 R600::R600_Reg128Vertical_with_sub0_in_R600_TReg32_XRegClassID, // V0123_X
3137 R600::R600_Reg64Vertical_with_sub0_in_R600_TReg32_YRegClassID, // V01_Y
3138 R600::R600_Reg64Vertical_with_sub0_in_R600_TReg32_YRegClassID, // V23_Y
3139 R600::R600_Reg128Vertical_with_sub0_in_R600_TReg32_YRegClassID, // V0123_Y
3140 R600::R600_Reg64Vertical_with_sub0_in_R600_TReg32_ZRegClassID, // V01_Z
3141 R600::R600_Reg64Vertical_with_sub0_in_R600_TReg32_ZRegClassID, // V23_Z
3142 R600::R600_Reg128Vertical_with_sub0_in_R600_TReg32_ZRegClassID, // V0123_Z
3143 R600::R600_KC0_WRegClassID, // KC0_128_W
3144 R600::R600_KC0_WRegClassID, // KC0_129_W
3145 R600::R600_KC0_WRegClassID, // KC0_130_W
3146 R600::R600_KC0_WRegClassID, // KC0_131_W
3147 R600::R600_KC0_WRegClassID, // KC0_132_W
3148 R600::R600_KC0_WRegClassID, // KC0_133_W
3149 R600::R600_KC0_WRegClassID, // KC0_134_W
3150 R600::R600_KC0_WRegClassID, // KC0_135_W
3151 R600::R600_KC0_WRegClassID, // KC0_136_W
3152 R600::R600_KC0_WRegClassID, // KC0_137_W
3153 R600::R600_KC0_WRegClassID, // KC0_138_W
3154 R600::R600_KC0_WRegClassID, // KC0_139_W
3155 R600::R600_KC0_WRegClassID, // KC0_140_W
3156 R600::R600_KC0_WRegClassID, // KC0_141_W
3157 R600::R600_KC0_WRegClassID, // KC0_142_W
3158 R600::R600_KC0_WRegClassID, // KC0_143_W
3159 R600::R600_KC0_WRegClassID, // KC0_144_W
3160 R600::R600_KC0_WRegClassID, // KC0_145_W
3161 R600::R600_KC0_WRegClassID, // KC0_146_W
3162 R600::R600_KC0_WRegClassID, // KC0_147_W
3163 R600::R600_KC0_WRegClassID, // KC0_148_W
3164 R600::R600_KC0_WRegClassID, // KC0_149_W
3165 R600::R600_KC0_WRegClassID, // KC0_150_W
3166 R600::R600_KC0_WRegClassID, // KC0_151_W
3167 R600::R600_KC0_WRegClassID, // KC0_152_W
3168 R600::R600_KC0_WRegClassID, // KC0_153_W
3169 R600::R600_KC0_WRegClassID, // KC0_154_W
3170 R600::R600_KC0_WRegClassID, // KC0_155_W
3171 R600::R600_KC0_WRegClassID, // KC0_156_W
3172 R600::R600_KC0_WRegClassID, // KC0_157_W
3173 R600::R600_KC0_WRegClassID, // KC0_158_W
3174 R600::R600_KC0_WRegClassID, // KC0_159_W
3175 R600::R600_KC1_WRegClassID, // KC1_160_W
3176 R600::R600_KC1_WRegClassID, // KC1_161_W
3177 R600::R600_KC1_WRegClassID, // KC1_162_W
3178 R600::R600_KC1_WRegClassID, // KC1_163_W
3179 R600::R600_KC1_WRegClassID, // KC1_164_W
3180 R600::R600_KC1_WRegClassID, // KC1_165_W
3181 R600::R600_KC1_WRegClassID, // KC1_166_W
3182 R600::R600_KC1_WRegClassID, // KC1_167_W
3183 R600::R600_KC1_WRegClassID, // KC1_168_W
3184 R600::R600_KC1_WRegClassID, // KC1_169_W
3185 R600::R600_KC1_WRegClassID, // KC1_170_W
3186 R600::R600_KC1_WRegClassID, // KC1_171_W
3187 R600::R600_KC1_WRegClassID, // KC1_172_W
3188 R600::R600_KC1_WRegClassID, // KC1_173_W
3189 R600::R600_KC1_WRegClassID, // KC1_174_W
3190 R600::R600_KC1_WRegClassID, // KC1_175_W
3191 R600::R600_KC1_WRegClassID, // KC1_176_W
3192 R600::R600_KC1_WRegClassID, // KC1_177_W
3193 R600::R600_KC1_WRegClassID, // KC1_178_W
3194 R600::R600_KC1_WRegClassID, // KC1_179_W
3195 R600::R600_KC1_WRegClassID, // KC1_180_W
3196 R600::R600_KC1_WRegClassID, // KC1_181_W
3197 R600::R600_KC1_WRegClassID, // KC1_182_W
3198 R600::R600_KC1_WRegClassID, // KC1_183_W
3199 R600::R600_KC1_WRegClassID, // KC1_184_W
3200 R600::R600_KC1_WRegClassID, // KC1_185_W
3201 R600::R600_KC1_WRegClassID, // KC1_186_W
3202 R600::R600_KC1_WRegClassID, // KC1_187_W
3203 R600::R600_KC1_WRegClassID, // KC1_188_W
3204 R600::R600_KC1_WRegClassID, // KC1_189_W
3205 R600::R600_KC1_WRegClassID, // KC1_190_W
3206 R600::R600_KC1_WRegClassID, // KC1_191_W
3207 R600::R600_KC0_XRegClassID, // KC0_128_X
3208 R600::R600_KC0_XRegClassID, // KC0_129_X
3209 R600::R600_KC0_XRegClassID, // KC0_130_X
3210 R600::R600_KC0_XRegClassID, // KC0_131_X
3211 R600::R600_KC0_XRegClassID, // KC0_132_X
3212 R600::R600_KC0_XRegClassID, // KC0_133_X
3213 R600::R600_KC0_XRegClassID, // KC0_134_X
3214 R600::R600_KC0_XRegClassID, // KC0_135_X
3215 R600::R600_KC0_XRegClassID, // KC0_136_X
3216 R600::R600_KC0_XRegClassID, // KC0_137_X
3217 R600::R600_KC0_XRegClassID, // KC0_138_X
3218 R600::R600_KC0_XRegClassID, // KC0_139_X
3219 R600::R600_KC0_XRegClassID, // KC0_140_X
3220 R600::R600_KC0_XRegClassID, // KC0_141_X
3221 R600::R600_KC0_XRegClassID, // KC0_142_X
3222 R600::R600_KC0_XRegClassID, // KC0_143_X
3223 R600::R600_KC0_XRegClassID, // KC0_144_X
3224 R600::R600_KC0_XRegClassID, // KC0_145_X
3225 R600::R600_KC0_XRegClassID, // KC0_146_X
3226 R600::R600_KC0_XRegClassID, // KC0_147_X
3227 R600::R600_KC0_XRegClassID, // KC0_148_X
3228 R600::R600_KC0_XRegClassID, // KC0_149_X
3229 R600::R600_KC0_XRegClassID, // KC0_150_X
3230 R600::R600_KC0_XRegClassID, // KC0_151_X
3231 R600::R600_KC0_XRegClassID, // KC0_152_X
3232 R600::R600_KC0_XRegClassID, // KC0_153_X
3233 R600::R600_KC0_XRegClassID, // KC0_154_X
3234 R600::R600_KC0_XRegClassID, // KC0_155_X
3235 R600::R600_KC0_XRegClassID, // KC0_156_X
3236 R600::R600_KC0_XRegClassID, // KC0_157_X
3237 R600::R600_KC0_XRegClassID, // KC0_158_X
3238 R600::R600_KC0_XRegClassID, // KC0_159_X
3239 R600::R600_KC1_XRegClassID, // KC1_160_X
3240 R600::R600_KC1_XRegClassID, // KC1_161_X
3241 R600::R600_KC1_XRegClassID, // KC1_162_X
3242 R600::R600_KC1_XRegClassID, // KC1_163_X
3243 R600::R600_KC1_XRegClassID, // KC1_164_X
3244 R600::R600_KC1_XRegClassID, // KC1_165_X
3245 R600::R600_KC1_XRegClassID, // KC1_166_X
3246 R600::R600_KC1_XRegClassID, // KC1_167_X
3247 R600::R600_KC1_XRegClassID, // KC1_168_X
3248 R600::R600_KC1_XRegClassID, // KC1_169_X
3249 R600::R600_KC1_XRegClassID, // KC1_170_X
3250 R600::R600_KC1_XRegClassID, // KC1_171_X
3251 R600::R600_KC1_XRegClassID, // KC1_172_X
3252 R600::R600_KC1_XRegClassID, // KC1_173_X
3253 R600::R600_KC1_XRegClassID, // KC1_174_X
3254 R600::R600_KC1_XRegClassID, // KC1_175_X
3255 R600::R600_KC1_XRegClassID, // KC1_176_X
3256 R600::R600_KC1_XRegClassID, // KC1_177_X
3257 R600::R600_KC1_XRegClassID, // KC1_178_X
3258 R600::R600_KC1_XRegClassID, // KC1_179_X
3259 R600::R600_KC1_XRegClassID, // KC1_180_X
3260 R600::R600_KC1_XRegClassID, // KC1_181_X
3261 R600::R600_KC1_XRegClassID, // KC1_182_X
3262 R600::R600_KC1_XRegClassID, // KC1_183_X
3263 R600::R600_KC1_XRegClassID, // KC1_184_X
3264 R600::R600_KC1_XRegClassID, // KC1_185_X
3265 R600::R600_KC1_XRegClassID, // KC1_186_X
3266 R600::R600_KC1_XRegClassID, // KC1_187_X
3267 R600::R600_KC1_XRegClassID, // KC1_188_X
3268 R600::R600_KC1_XRegClassID, // KC1_189_X
3269 R600::R600_KC1_XRegClassID, // KC1_190_X
3270 R600::R600_KC1_XRegClassID, // KC1_191_X
3271 InvalidRegClassID, // KC0_128_XYZW
3272 InvalidRegClassID, // KC0_129_XYZW
3273 InvalidRegClassID, // KC0_130_XYZW
3274 InvalidRegClassID, // KC0_131_XYZW
3275 InvalidRegClassID, // KC0_132_XYZW
3276 InvalidRegClassID, // KC0_133_XYZW
3277 InvalidRegClassID, // KC0_134_XYZW
3278 InvalidRegClassID, // KC0_135_XYZW
3279 InvalidRegClassID, // KC0_136_XYZW
3280 InvalidRegClassID, // KC0_137_XYZW
3281 InvalidRegClassID, // KC0_138_XYZW
3282 InvalidRegClassID, // KC0_139_XYZW
3283 InvalidRegClassID, // KC0_140_XYZW
3284 InvalidRegClassID, // KC0_141_XYZW
3285 InvalidRegClassID, // KC0_142_XYZW
3286 InvalidRegClassID, // KC0_143_XYZW
3287 InvalidRegClassID, // KC0_144_XYZW
3288 InvalidRegClassID, // KC0_145_XYZW
3289 InvalidRegClassID, // KC0_146_XYZW
3290 InvalidRegClassID, // KC0_147_XYZW
3291 InvalidRegClassID, // KC0_148_XYZW
3292 InvalidRegClassID, // KC0_149_XYZW
3293 InvalidRegClassID, // KC0_150_XYZW
3294 InvalidRegClassID, // KC0_151_XYZW
3295 InvalidRegClassID, // KC0_152_XYZW
3296 InvalidRegClassID, // KC0_153_XYZW
3297 InvalidRegClassID, // KC0_154_XYZW
3298 InvalidRegClassID, // KC0_155_XYZW
3299 InvalidRegClassID, // KC0_156_XYZW
3300 InvalidRegClassID, // KC0_157_XYZW
3301 InvalidRegClassID, // KC0_158_XYZW
3302 InvalidRegClassID, // KC0_159_XYZW
3303 InvalidRegClassID, // KC1_160_XYZW
3304 InvalidRegClassID, // KC1_161_XYZW
3305 InvalidRegClassID, // KC1_162_XYZW
3306 InvalidRegClassID, // KC1_163_XYZW
3307 InvalidRegClassID, // KC1_164_XYZW
3308 InvalidRegClassID, // KC1_165_XYZW
3309 InvalidRegClassID, // KC1_166_XYZW
3310 InvalidRegClassID, // KC1_167_XYZW
3311 InvalidRegClassID, // KC1_168_XYZW
3312 InvalidRegClassID, // KC1_169_XYZW
3313 InvalidRegClassID, // KC1_170_XYZW
3314 InvalidRegClassID, // KC1_171_XYZW
3315 InvalidRegClassID, // KC1_172_XYZW
3316 InvalidRegClassID, // KC1_173_XYZW
3317 InvalidRegClassID, // KC1_174_XYZW
3318 InvalidRegClassID, // KC1_175_XYZW
3319 InvalidRegClassID, // KC1_176_XYZW
3320 InvalidRegClassID, // KC1_177_XYZW
3321 InvalidRegClassID, // KC1_178_XYZW
3322 InvalidRegClassID, // KC1_179_XYZW
3323 InvalidRegClassID, // KC1_180_XYZW
3324 InvalidRegClassID, // KC1_181_XYZW
3325 InvalidRegClassID, // KC1_182_XYZW
3326 InvalidRegClassID, // KC1_183_XYZW
3327 InvalidRegClassID, // KC1_184_XYZW
3328 InvalidRegClassID, // KC1_185_XYZW
3329 InvalidRegClassID, // KC1_186_XYZW
3330 InvalidRegClassID, // KC1_187_XYZW
3331 InvalidRegClassID, // KC1_188_XYZW
3332 InvalidRegClassID, // KC1_189_XYZW
3333 InvalidRegClassID, // KC1_190_XYZW
3334 InvalidRegClassID, // KC1_191_XYZW
3335 R600::R600_KC0_YRegClassID, // KC0_128_Y
3336 R600::R600_KC0_YRegClassID, // KC0_129_Y
3337 R600::R600_KC0_YRegClassID, // KC0_130_Y
3338 R600::R600_KC0_YRegClassID, // KC0_131_Y
3339 R600::R600_KC0_YRegClassID, // KC0_132_Y
3340 R600::R600_KC0_YRegClassID, // KC0_133_Y
3341 R600::R600_KC0_YRegClassID, // KC0_134_Y
3342 R600::R600_KC0_YRegClassID, // KC0_135_Y
3343 R600::R600_KC0_YRegClassID, // KC0_136_Y
3344 R600::R600_KC0_YRegClassID, // KC0_137_Y
3345 R600::R600_KC0_YRegClassID, // KC0_138_Y
3346 R600::R600_KC0_YRegClassID, // KC0_139_Y
3347 R600::R600_KC0_YRegClassID, // KC0_140_Y
3348 R600::R600_KC0_YRegClassID, // KC0_141_Y
3349 R600::R600_KC0_YRegClassID, // KC0_142_Y
3350 R600::R600_KC0_YRegClassID, // KC0_143_Y
3351 R600::R600_KC0_YRegClassID, // KC0_144_Y
3352 R600::R600_KC0_YRegClassID, // KC0_145_Y
3353 R600::R600_KC0_YRegClassID, // KC0_146_Y
3354 R600::R600_KC0_YRegClassID, // KC0_147_Y
3355 R600::R600_KC0_YRegClassID, // KC0_148_Y
3356 R600::R600_KC0_YRegClassID, // KC0_149_Y
3357 R600::R600_KC0_YRegClassID, // KC0_150_Y
3358 R600::R600_KC0_YRegClassID, // KC0_151_Y
3359 R600::R600_KC0_YRegClassID, // KC0_152_Y
3360 R600::R600_KC0_YRegClassID, // KC0_153_Y
3361 R600::R600_KC0_YRegClassID, // KC0_154_Y
3362 R600::R600_KC0_YRegClassID, // KC0_155_Y
3363 R600::R600_KC0_YRegClassID, // KC0_156_Y
3364 R600::R600_KC0_YRegClassID, // KC0_157_Y
3365 R600::R600_KC0_YRegClassID, // KC0_158_Y
3366 R600::R600_KC0_YRegClassID, // KC0_159_Y
3367 R600::R600_KC1_YRegClassID, // KC1_160_Y
3368 R600::R600_KC1_YRegClassID, // KC1_161_Y
3369 R600::R600_KC1_YRegClassID, // KC1_162_Y
3370 R600::R600_KC1_YRegClassID, // KC1_163_Y
3371 R600::R600_KC1_YRegClassID, // KC1_164_Y
3372 R600::R600_KC1_YRegClassID, // KC1_165_Y
3373 R600::R600_KC1_YRegClassID, // KC1_166_Y
3374 R600::R600_KC1_YRegClassID, // KC1_167_Y
3375 R600::R600_KC1_YRegClassID, // KC1_168_Y
3376 R600::R600_KC1_YRegClassID, // KC1_169_Y
3377 R600::R600_KC1_YRegClassID, // KC1_170_Y
3378 R600::R600_KC1_YRegClassID, // KC1_171_Y
3379 R600::R600_KC1_YRegClassID, // KC1_172_Y
3380 R600::R600_KC1_YRegClassID, // KC1_173_Y
3381 R600::R600_KC1_YRegClassID, // KC1_174_Y
3382 R600::R600_KC1_YRegClassID, // KC1_175_Y
3383 R600::R600_KC1_YRegClassID, // KC1_176_Y
3384 R600::R600_KC1_YRegClassID, // KC1_177_Y
3385 R600::R600_KC1_YRegClassID, // KC1_178_Y
3386 R600::R600_KC1_YRegClassID, // KC1_179_Y
3387 R600::R600_KC1_YRegClassID, // KC1_180_Y
3388 R600::R600_KC1_YRegClassID, // KC1_181_Y
3389 R600::R600_KC1_YRegClassID, // KC1_182_Y
3390 R600::R600_KC1_YRegClassID, // KC1_183_Y
3391 R600::R600_KC1_YRegClassID, // KC1_184_Y
3392 R600::R600_KC1_YRegClassID, // KC1_185_Y
3393 R600::R600_KC1_YRegClassID, // KC1_186_Y
3394 R600::R600_KC1_YRegClassID, // KC1_187_Y
3395 R600::R600_KC1_YRegClassID, // KC1_188_Y
3396 R600::R600_KC1_YRegClassID, // KC1_189_Y
3397 R600::R600_KC1_YRegClassID, // KC1_190_Y
3398 R600::R600_KC1_YRegClassID, // KC1_191_Y
3399 R600::R600_KC0_ZRegClassID, // KC0_128_Z
3400 R600::R600_KC0_ZRegClassID, // KC0_129_Z
3401 R600::R600_KC0_ZRegClassID, // KC0_130_Z
3402 R600::R600_KC0_ZRegClassID, // KC0_131_Z
3403 R600::R600_KC0_ZRegClassID, // KC0_132_Z
3404 R600::R600_KC0_ZRegClassID, // KC0_133_Z
3405 R600::R600_KC0_ZRegClassID, // KC0_134_Z
3406 R600::R600_KC0_ZRegClassID, // KC0_135_Z
3407 R600::R600_KC0_ZRegClassID, // KC0_136_Z
3408 R600::R600_KC0_ZRegClassID, // KC0_137_Z
3409 R600::R600_KC0_ZRegClassID, // KC0_138_Z
3410 R600::R600_KC0_ZRegClassID, // KC0_139_Z
3411 R600::R600_KC0_ZRegClassID, // KC0_140_Z
3412 R600::R600_KC0_ZRegClassID, // KC0_141_Z
3413 R600::R600_KC0_ZRegClassID, // KC0_142_Z
3414 R600::R600_KC0_ZRegClassID, // KC0_143_Z
3415 R600::R600_KC0_ZRegClassID, // KC0_144_Z
3416 R600::R600_KC0_ZRegClassID, // KC0_145_Z
3417 R600::R600_KC0_ZRegClassID, // KC0_146_Z
3418 R600::R600_KC0_ZRegClassID, // KC0_147_Z
3419 R600::R600_KC0_ZRegClassID, // KC0_148_Z
3420 R600::R600_KC0_ZRegClassID, // KC0_149_Z
3421 R600::R600_KC0_ZRegClassID, // KC0_150_Z
3422 R600::R600_KC0_ZRegClassID, // KC0_151_Z
3423 R600::R600_KC0_ZRegClassID, // KC0_152_Z
3424 R600::R600_KC0_ZRegClassID, // KC0_153_Z
3425 R600::R600_KC0_ZRegClassID, // KC0_154_Z
3426 R600::R600_KC0_ZRegClassID, // KC0_155_Z
3427 R600::R600_KC0_ZRegClassID, // KC0_156_Z
3428 R600::R600_KC0_ZRegClassID, // KC0_157_Z
3429 R600::R600_KC0_ZRegClassID, // KC0_158_Z
3430 R600::R600_KC0_ZRegClassID, // KC0_159_Z
3431 R600::R600_KC1_ZRegClassID, // KC1_160_Z
3432 R600::R600_KC1_ZRegClassID, // KC1_161_Z
3433 R600::R600_KC1_ZRegClassID, // KC1_162_Z
3434 R600::R600_KC1_ZRegClassID, // KC1_163_Z
3435 R600::R600_KC1_ZRegClassID, // KC1_164_Z
3436 R600::R600_KC1_ZRegClassID, // KC1_165_Z
3437 R600::R600_KC1_ZRegClassID, // KC1_166_Z
3438 R600::R600_KC1_ZRegClassID, // KC1_167_Z
3439 R600::R600_KC1_ZRegClassID, // KC1_168_Z
3440 R600::R600_KC1_ZRegClassID, // KC1_169_Z
3441 R600::R600_KC1_ZRegClassID, // KC1_170_Z
3442 R600::R600_KC1_ZRegClassID, // KC1_171_Z
3443 R600::R600_KC1_ZRegClassID, // KC1_172_Z
3444 R600::R600_KC1_ZRegClassID, // KC1_173_Z
3445 R600::R600_KC1_ZRegClassID, // KC1_174_Z
3446 R600::R600_KC1_ZRegClassID, // KC1_175_Z
3447 R600::R600_KC1_ZRegClassID, // KC1_176_Z
3448 R600::R600_KC1_ZRegClassID, // KC1_177_Z
3449 R600::R600_KC1_ZRegClassID, // KC1_178_Z
3450 R600::R600_KC1_ZRegClassID, // KC1_179_Z
3451 R600::R600_KC1_ZRegClassID, // KC1_180_Z
3452 R600::R600_KC1_ZRegClassID, // KC1_181_Z
3453 R600::R600_KC1_ZRegClassID, // KC1_182_Z
3454 R600::R600_KC1_ZRegClassID, // KC1_183_Z
3455 R600::R600_KC1_ZRegClassID, // KC1_184_Z
3456 R600::R600_KC1_ZRegClassID, // KC1_185_Z
3457 R600::R600_KC1_ZRegClassID, // KC1_186_Z
3458 R600::R600_KC1_ZRegClassID, // KC1_187_Z
3459 R600::R600_KC1_ZRegClassID, // KC1_188_Z
3460 R600::R600_KC1_ZRegClassID, // KC1_189_Z
3461 R600::R600_KC1_ZRegClassID, // KC1_190_Z
3462 R600::R600_KC1_ZRegClassID, // KC1_191_Z
3463 };
3464
3465 assert(Reg < ArrayRef(Mapping).size());
3466 unsigned RCID = Mapping[Reg.id()];
3467 if (RCID == InvalidRegClassID)
3468 return nullptr;
3469 return &R600MCRegisterClassStorage.Classes[RCID];
3470}
3471extern const MCRegisterDesc R600RegDesc[];
3472extern const int16_t R600RegDiffLists[];
3473extern const LaneBitmask R600LaneMaskLists[];
3474extern const char R600RegStrings[];
3475extern const char R600RegClassStrings[];
3476extern const MCPhysReg R600RegUnitRoots[][2];
3477extern const uint16_t R600SubRegIdxLists[];
3478extern const uint16_t R600RegEncodingTable[];
3479
3480R600GenRegisterInfo::
3481R600GenRegisterInfo(unsigned RA, unsigned DwarfFlavour, unsigned EHFlavour,
3482 unsigned PC, unsigned HwMode)
3483 : TargetRegisterInfo(&R600RegInfoDesc,
3484 R600SubRegIndexStrings, R600SubRegIndexNameOffsets,
3485 R600SubRegIdxRangeTable, R600SubRegIndexLaneMaskTable,
3486
3487 LaneBitmask(0xFFFFFFFFFFFFFFF0), R600RegClassInfos, R600VTLists, HwMode) {
3488 InitMCRegisterInfo(D: R600RegDesc, NR: 1675, RA, PC,
3489 C: &getR600MCRegisterClass(RC: 0), NC: 37, RURoots: R600RegUnitRoots, NRU: 1342, DL: R600RegDiffLists,
3490 RUMS: R600LaneMaskLists, Strings: R600RegStrings, ClassStrings: R600RegClassStrings, SubIndices: R600SubRegIdxLists, NumIndices: 17,
3491 RET: R600RegEncodingTable, RUI: nullptr);
3492
3493}
3494
3495
3496
3497ArrayRef<const uint32_t *> R600GenRegisterInfo::getRegMasks() const {
3498 return {};
3499}
3500
3501bool R600GenRegisterInfo::
3502isGeneralPurposeRegister(const MachineFunction &MF, MCRegister PhysReg) const {
3503 return
3504 false;
3505}
3506
3507bool R600GenRegisterInfo::
3508isGeneralPurposeRegisterClass(const TargetRegisterClass *RC) const {
3509 return
3510 false;
3511}
3512
3513bool R600GenRegisterInfo::
3514isFixedRegister(const MachineFunction &MF, MCRegister PhysReg) const {
3515 return
3516 false;
3517}
3518
3519bool R600GenRegisterInfo::
3520isArgumentRegister(const MachineFunction &MF, MCRegister PhysReg) const {
3521 return
3522 false;
3523}
3524
3525bool R600GenRegisterInfo::
3526isConstantPhysReg(MCRegister PhysReg) const {
3527 return
3528 false;
3529}
3530
3531ArrayRef<const char *> R600GenRegisterInfo::getRegMaskNames() const {
3532 return {};
3533}
3534
3535const R600FrameLowering *
3536R600GenRegisterInfo::getFrameLowering(const MachineFunction &MF) {
3537 return static_cast<const R600FrameLowering *>(
3538 MF.getSubtarget().getFrameLowering());
3539}
3540
3541
3542} // namespace llvm
3543