1848b8605Smrg/*
2848b8605Smrg * Copyright 2010 Jerome Glisse <glisse@freedesktop.org>
3848b8605Smrg *
4848b8605Smrg * Permission is hereby granted, free of charge, to any person obtaining a
5848b8605Smrg * copy of this software and associated documentation files (the "Software"),
6848b8605Smrg * to deal in the Software without restriction, including without limitation
7848b8605Smrg * on the rights to use, copy, modify, merge, publish, distribute, sub
8848b8605Smrg * license, and/or sell copies of the Software, and to permit persons to whom
9848b8605Smrg * the Software is furnished to do so, subject to the following conditions:
10848b8605Smrg *
11848b8605Smrg * The above copyright notice and this permission notice (including the next
12848b8605Smrg * paragraph) shall be included in all copies or substantial portions of the
13848b8605Smrg * Software.
14848b8605Smrg *
15848b8605Smrg * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16848b8605Smrg * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17848b8605Smrg * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL
18848b8605Smrg * THE AUTHOR(S) AND/OR THEIR SUPPLIERS BE LIABLE FOR ANY CLAIM,
19848b8605Smrg * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
20848b8605Smrg * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE
21848b8605Smrg * USE OR OTHER DEALINGS IN THE SOFTWARE.
22848b8605Smrg *
23848b8605Smrg * Authors:
24848b8605Smrg *      Jerome Glisse
25848b8605Smrg */
26848b8605Smrg#ifndef R700_SQ_H
27848b8605Smrg#define R700_SQ_H
28848b8605Smrg
29848b8605Smrg#define P_SQ_CF_WORD0
30b8e80941Smrg#define   S_SQ_CF_WORD0_ADDR(x)                                      (((unsigned)(x) & 0xFFFFFFFF) << 0)
31848b8605Smrg#define   G_SQ_CF_WORD0_ADDR(x)                                      (((x) >> 0) & 0xFFFFFFFF)
32848b8605Smrg#define   C_SQ_CF_WORD0_ADDR                                         0x00000000
33848b8605Smrg#define P_SQ_CF_WORD1
34b8e80941Smrg#define   S_SQ_CF_WORD1_POP_COUNT(x)                                 (((unsigned)(x) & 0x7) << 0)
35848b8605Smrg#define   G_SQ_CF_WORD1_POP_COUNT(x)                                 (((x) >> 0) & 0x7)
36848b8605Smrg#define   C_SQ_CF_WORD1_POP_COUNT                                    0xFFFFFFF8
37b8e80941Smrg#define   S_SQ_CF_WORD1_CF_CONST(x)                                  (((unsigned)(x) & 0x1F) << 3)
38848b8605Smrg#define   G_SQ_CF_WORD1_CF_CONST(x)                                  (((x) >> 3) & 0x1F)
39848b8605Smrg#define   C_SQ_CF_WORD1_CF_CONST                                     0xFFFFFF07
40b8e80941Smrg#define   S_SQ_CF_WORD1_COND(x)                                      (((unsigned)(x) & 0x3) << 8)
41848b8605Smrg#define   G_SQ_CF_WORD1_COND(x)                                      (((x) >> 8) & 0x3)
42848b8605Smrg#define   C_SQ_CF_WORD1_COND                                         0xFFFFFCFF
43b8e80941Smrg#define   S_SQ_CF_WORD1_COUNT(x)                                     (((unsigned)(x) & 0x7) << 10)
44848b8605Smrg#define   G_SQ_CF_WORD1_COUNT(x)                                     (((x) >> 10) & 0x7)
45848b8605Smrg#define   C_SQ_CF_WORD1_COUNT                                        0xFFFFE3FF
46b8e80941Smrg#define   S_SQ_CF_WORD1_CALL_COUNT(x)                                (((unsigned)(x) & 0x3F) << 13)
47848b8605Smrg#define   G_SQ_CF_WORD1_CALL_COUNT(x)                                (((x) >> 13) & 0x3F)
48848b8605Smrg#define   C_SQ_CF_WORD1_CALL_COUNT                                   0xFFF81FFF
49b8e80941Smrg#define   S_SQ_CF_WORD1_END_OF_PROGRAM(x)                            (((unsigned)(x) & 0x1) << 21)
50848b8605Smrg#define   G_SQ_CF_WORD1_END_OF_PROGRAM(x)                            (((x) >> 21) & 0x1)
51848b8605Smrg#define   C_SQ_CF_WORD1_END_OF_PROGRAM                               0xFFDFFFFF
52b8e80941Smrg#define   S_SQ_CF_WORD1_VALID_PIXEL_MODE(x)                          (((unsigned)(x) & 0x1) << 22)
53848b8605Smrg#define   G_SQ_CF_WORD1_VALID_PIXEL_MODE(x)                          (((x) >> 22) & 0x1)
54848b8605Smrg#define   C_SQ_CF_WORD1_VALID_PIXEL_MODE                             0xFFBFFFFF
55b8e80941Smrg#define   S_SQ_CF_WORD1_CF_INST(x)                                   (((unsigned)(x) & 0x7F) << 23)
56848b8605Smrg#define   G_SQ_CF_WORD1_CF_INST(x)                                   (((x) >> 23) & 0x7F)
57848b8605Smrg#define   C_SQ_CF_WORD1_CF_INST                                      0xC07FFFFF
58b8e80941Smrg#define   S_SQ_CF_WORD1_WHOLE_QUAD_MODE(x)                           (((unsigned)(x) & 0x1) << 30)
59848b8605Smrg#define   G_SQ_CF_WORD1_WHOLE_QUAD_MODE(x)                           (((x) >> 30) & 0x1)
60848b8605Smrg#define   C_SQ_CF_WORD1_WHOLE_QUAD_MODE                              0xBFFFFFFF
61b8e80941Smrg#define   S_SQ_CF_WORD1_BARRIER(x)                                   (((unsigned)(x) & 0x1) << 31)
62848b8605Smrg#define   G_SQ_CF_WORD1_BARRIER(x)                                   (((x) >> 31) & 0x1)
63848b8605Smrg#define   C_SQ_CF_WORD1_BARRIER                                      0x7FFFFFFF
64b8e80941Smrg#define   S_SQ_CF_WORD1_COUNT_3(x)                                   (((unsigned)(x) & 0x1) << 19)
65848b8605Smrg#define   G_SQ_CF_WORD1_COUNT_3(x)                                   (((x) >> 19) & 0x1)
66848b8605Smrg#define   C_SQ_CF_WORD1_COUNT_3                                      0xFFF7FFFF
67848b8605Smrg#define P_SQ_CF_ALU_WORD0
68b8e80941Smrg#define   S_SQ_CF_ALU_WORD0_ADDR(x)                                  (((unsigned)(x) & 0x3FFFFF) << 0)
69848b8605Smrg#define   G_SQ_CF_ALU_WORD0_ADDR(x)                                  (((x) >> 0) & 0x3FFFFF)
70848b8605Smrg#define   C_SQ_CF_ALU_WORD0_ADDR                                     0xFFC00000
71b8e80941Smrg#define   S_SQ_CF_ALU_WORD0_KCACHE_BANK0(x)                          (((unsigned)(x) & 0xF) << 22)
72848b8605Smrg#define   G_SQ_CF_ALU_WORD0_KCACHE_BANK0(x)                          (((x) >> 22) & 0xF)
73848b8605Smrg#define   C_SQ_CF_ALU_WORD0_KCACHE_BANK0                             0xFC3FFFFF
74b8e80941Smrg#define   S_SQ_CF_ALU_WORD0_KCACHE_BANK1(x)                          (((unsigned)(x) & 0xF) << 26)
75848b8605Smrg#define   G_SQ_CF_ALU_WORD0_KCACHE_BANK1(x)                          (((x) >> 26) & 0xF)
76848b8605Smrg#define   C_SQ_CF_ALU_WORD0_KCACHE_BANK1                             0xC3FFFFFF
77b8e80941Smrg#define   S_SQ_CF_ALU_WORD0_KCACHE_MODE0(x)                          (((unsigned)(x) & 0x3) << 30)
78848b8605Smrg#define   G_SQ_CF_ALU_WORD0_KCACHE_MODE0(x)                          (((x) >> 30) & 0x3)
79848b8605Smrg#define   C_SQ_CF_ALU_WORD0_KCACHE_MODE0                             0x3FFFFFFF
80848b8605Smrg#define P_SQ_CF_ALU_WORD1
81b8e80941Smrg#define   S_SQ_CF_ALU_WORD1_KCACHE_MODE1(x)                          (((unsigned)(x) & 0x3) << 0)
82848b8605Smrg#define   G_SQ_CF_ALU_WORD1_KCACHE_MODE1(x)                          (((x) >> 0) & 0x3)
83848b8605Smrg#define   C_SQ_CF_ALU_WORD1_KCACHE_MODE1                             0xFFFFFFFC
84b8e80941Smrg#define   S_SQ_CF_ALU_WORD1_KCACHE_ADDR0(x)                          (((unsigned)(x) & 0xFF) << 2)
85848b8605Smrg#define   G_SQ_CF_ALU_WORD1_KCACHE_ADDR0(x)                          (((x) >> 2) & 0xFF)
86848b8605Smrg#define   C_SQ_CF_ALU_WORD1_KCACHE_ADDR0                             0xFFFFFC03
87b8e80941Smrg#define   S_SQ_CF_ALU_WORD1_KCACHE_ADDR1(x)                          (((unsigned)(x) & 0xFF) << 10)
88848b8605Smrg#define   G_SQ_CF_ALU_WORD1_KCACHE_ADDR1(x)                          (((x) >> 10) & 0xFF)
89848b8605Smrg#define   C_SQ_CF_ALU_WORD1_KCACHE_ADDR1                             0xFFFC03FF
90b8e80941Smrg#define   S_SQ_CF_ALU_WORD1_COUNT(x)                                 (((unsigned)(x) & 0x7F) << 18)
91848b8605Smrg#define   G_SQ_CF_ALU_WORD1_COUNT(x)                                 (((x) >> 18) & 0x7F)
92848b8605Smrg#define   C_SQ_CF_ALU_WORD1_COUNT                                    0xFE03FFFF
93b8e80941Smrg#define   S_SQ_CF_ALU_WORD1_USES_WATERFALL(x)                        (((unsigned)(x) & 0x1) << 25)
94848b8605Smrg#define   G_SQ_CF_ALU_WORD1_USES_WATERFALL(x)                        (((x) >> 25) & 0x1)
95848b8605Smrg#define   C_SQ_CF_ALU_WORD1_USES_WATERFALL                           0xFDFFFFFF
96b8e80941Smrg#define   S_SQ_CF_ALU_WORD1_CF_INST(x)                               (((unsigned)(x) & 0xF) << 26)
97848b8605Smrg#define   G_SQ_CF_ALU_WORD1_CF_INST(x)                               (((x) >> 26) & 0xF)
98848b8605Smrg#define   C_SQ_CF_ALU_WORD1_CF_INST                                  0xC3FFFFFF
99b8e80941Smrg#define   S_SQ_CF_ALU_WORD1_WHOLE_QUAD_MODE(x)                       (((unsigned)(x) & 0x1) << 30)
100848b8605Smrg#define   G_SQ_CF_ALU_WORD1_WHOLE_QUAD_MODE(x)                       (((x) >> 30) & 0x1)
101848b8605Smrg#define   C_SQ_CF_ALU_WORD1_WHOLE_QUAD_MODE                          0xBFFFFFFF
102b8e80941Smrg#define   S_SQ_CF_ALU_WORD1_BARRIER(x)                               (((unsigned)(x) & 0x1) << 31)
103848b8605Smrg#define   G_SQ_CF_ALU_WORD1_BARRIER(x)                               (((x) >> 31) & 0x1)
104848b8605Smrg#define   C_SQ_CF_ALU_WORD1_BARRIER                                  0x7FFFFFFF
105b8e80941Smrg#define   S_SQ_CF_ALU_WORD1_ALT_CONST(x)                             (((unsigned)(x) & 0x1) << 25)
106848b8605Smrg#define   G_SQ_CF_ALU_WORD1_ALT_CONST(x)                             (((x) >> 25) & 0x1)
107848b8605Smrg#define   C_SQ_CF_ALU_WORD1_ALT_CONST                                0xFDFFFFFF
108848b8605Smrg#define P_SQ_CF_ALLOC_EXPORT_WORD0
109b8e80941Smrg#define   S_SQ_CF_ALLOC_EXPORT_WORD0_ARRAY_BASE(x)                   (((unsigned)(x) & 0x1FFF) << 0)
110848b8605Smrg#define   G_SQ_CF_ALLOC_EXPORT_WORD0_ARRAY_BASE(x)                   (((x) >> 0) & 0x1FFF)
111848b8605Smrg#define   C_SQ_CF_ALLOC_EXPORT_WORD0_ARRAY_BASE                      0xFFFFE000
112b8e80941Smrg#define   S_SQ_CF_ALLOC_EXPORT_WORD0_TYPE(x)                         (((unsigned)(x) & 0x3) << 13)
113848b8605Smrg#define   G_SQ_CF_ALLOC_EXPORT_WORD0_TYPE(x)                         (((x) >> 13) & 0x3)
114848b8605Smrg#define   C_SQ_CF_ALLOC_EXPORT_WORD0_TYPE                            0xFFFF9FFF
115848b8605Smrg#define     V_SQ_CF_ALLOC_EXPORT_WORD0_SQ_EXPORT_PIXEL               0x00000000
116848b8605Smrg#define     V_SQ_CF_ALLOC_EXPORT_WORD0_SQ_EXPORT_POS                 0x00000001
117848b8605Smrg#define     V_SQ_CF_ALLOC_EXPORT_WORD0_SQ_EXPORT_PARAM               0x00000002
118848b8605Smrg#define     V_SQ_CF_ALLOC_EXPORT_WORD0_SQ_EXPORT_SX                  0x00000003
119b8e80941Smrg#define   S_SQ_CF_ALLOC_EXPORT_WORD0_RW_GPR(x)                       (((unsigned)(x) & 0x7F) << 15)
120848b8605Smrg#define   G_SQ_CF_ALLOC_EXPORT_WORD0_RW_GPR(x)                       (((x) >> 15) & 0x7F)
121848b8605Smrg#define   C_SQ_CF_ALLOC_EXPORT_WORD0_RW_GPR                          0xFFC07FFF
122b8e80941Smrg#define   S_SQ_CF_ALLOC_EXPORT_WORD0_RW_REL(x)                       (((unsigned)(x) & 0x1) << 22)
123848b8605Smrg#define   G_SQ_CF_ALLOC_EXPORT_WORD0_RW_REL(x)                       (((x) >> 22) & 0x1)
124848b8605Smrg#define   C_SQ_CF_ALLOC_EXPORT_WORD0_RW_REL                          0xFFBFFFFF
125b8e80941Smrg#define   S_SQ_CF_ALLOC_EXPORT_WORD0_INDEX_GPR(x)                    (((unsigned)(x) & 0x7F) << 23)
126848b8605Smrg#define   G_SQ_CF_ALLOC_EXPORT_WORD0_INDEX_GPR(x)                    (((x) >> 23) & 0x7F)
127848b8605Smrg#define   C_SQ_CF_ALLOC_EXPORT_WORD0_INDEX_GPR                       0xC07FFFFF
128b8e80941Smrg#define   S_SQ_CF_ALLOC_EXPORT_WORD0_ELEM_SIZE(x)                    (((unsigned)(x) & 0x3) << 30)
129848b8605Smrg#define   G_SQ_CF_ALLOC_EXPORT_WORD0_ELEM_SIZE(x)                    (((x) >> 30) & 0x3)
130848b8605Smrg#define   C_SQ_CF_ALLOC_EXPORT_WORD0_ELEM_SIZE                       0x3FFFFFFF
131848b8605Smrg#define P_SQ_CF_ALLOC_EXPORT_WORD1
132b8e80941Smrg#define   S_SQ_CF_ALLOC_EXPORT_WORD1_BURST_COUNT(x)                  (((unsigned)(x) & 0xF) << 17)
133848b8605Smrg#define   G_SQ_CF_ALLOC_EXPORT_WORD1_BURST_COUNT(x)                  (((x) >> 17) & 0xF)
134848b8605Smrg#define   C_SQ_CF_ALLOC_EXPORT_WORD1_BURST_COUNT                     0xFFE1FFFF
135b8e80941Smrg#define   S_SQ_CF_ALLOC_EXPORT_WORD1_END_OF_PROGRAM(x)               (((unsigned)(x) & 0x1) << 21)
136848b8605Smrg#define   G_SQ_CF_ALLOC_EXPORT_WORD1_END_OF_PROGRAM(x)               (((x) >> 21) & 0x1)
137848b8605Smrg#define   C_SQ_CF_ALLOC_EXPORT_WORD1_END_OF_PROGRAM                  0xFFDFFFFF
138b8e80941Smrg#define   S_SQ_CF_ALLOC_EXPORT_WORD1_VALID_PIXEL_MODE(x)             (((unsigned)(x) & 0x1) << 22)
139848b8605Smrg#define   G_SQ_CF_ALLOC_EXPORT_WORD1_VALID_PIXEL_MODE(x)             (((x) >> 22) & 0x1)
140848b8605Smrg#define   C_SQ_CF_ALLOC_EXPORT_WORD1_VALID_PIXEL_MODE                0xFFBFFFFF
141b8e80941Smrg#define   S_SQ_CF_ALLOC_EXPORT_WORD1_CF_INST(x)                      (((unsigned)(x) & 0x7F) << 23)
142848b8605Smrg#define   G_SQ_CF_ALLOC_EXPORT_WORD1_CF_INST(x)                      (((x) >> 23) & 0x7F)
143848b8605Smrg#define   C_SQ_CF_ALLOC_EXPORT_WORD1_CF_INST                         0xC07FFFFF
144b8e80941Smrg#define   S_SQ_CF_ALLOC_EXPORT_WORD1_WHOLE_QUAD_MODE(x)              (((unsigned)(x) & 0x1) << 30)
145848b8605Smrg#define   G_SQ_CF_ALLOC_EXPORT_WORD1_WHOLE_QUAD_MODE(x)              (((x) >> 30) & 0x1)
146848b8605Smrg#define   C_SQ_CF_ALLOC_EXPORT_WORD1_WHOLE_QUAD_MODE                 0xBFFFFFFF
147b8e80941Smrg#define   S_SQ_CF_ALLOC_EXPORT_WORD1_BARRIER(x)                      (((unsigned)(x) & 0x1) << 31)
148848b8605Smrg#define   G_SQ_CF_ALLOC_EXPORT_WORD1_BARRIER(x)                      (((x) >> 31) & 0x1)
149848b8605Smrg#define   C_SQ_CF_ALLOC_EXPORT_WORD1_BARRIER                         0x7FFFFFFF
150848b8605Smrg#define P_SQ_CF_ALLOC_EXPORT_WORD1_BUF
151b8e80941Smrg#define   S_SQ_CF_ALLOC_EXPORT_WORD1_BUF_ARRAY_SIZE(x)               (((unsigned)(x) & 0xFFF) << 0)
152848b8605Smrg#define   G_SQ_CF_ALLOC_EXPORT_WORD1_BUF_ARRAY_SIZE(x)               (((x) >> 0) & 0xFFF)
153848b8605Smrg#define   C_SQ_CF_ALLOC_EXPORT_WORD1_BUF_ARRAY_SIZE                  0xFFFFF000
154b8e80941Smrg#define   S_SQ_CF_ALLOC_EXPORT_WORD1_BUF_COMP_MASK(x)                (((unsigned)(x) & 0xF) << 12)
155848b8605Smrg#define   G_SQ_CF_ALLOC_EXPORT_WORD1_BUF_COMP_MASK(x)                (((x) >> 12) & 0xF)
156848b8605Smrg#define   C_SQ_CF_ALLOC_EXPORT_WORD1_BUF_COMP_MASK                   0xFFFF0FFF
157848b8605Smrg#define P_SQ_CF_ALLOC_EXPORT_WORD1_SWIZ
158b8e80941Smrg#define   S_SQ_CF_ALLOC_EXPORT_WORD1_SWIZ_SEL_X(x)                   (((unsigned)(x) & 0x7) << 0)
159848b8605Smrg#define   G_SQ_CF_ALLOC_EXPORT_WORD1_SWIZ_SEL_X(x)                   (((x) >> 0) & 0x7)
160848b8605Smrg#define   C_SQ_CF_ALLOC_EXPORT_WORD1_SWIZ_SEL_X                      0xFFFFFFF8
161b8e80941Smrg#define   S_SQ_CF_ALLOC_EXPORT_WORD1_SWIZ_SEL_Y(x)                   (((unsigned)(x) & 0x7) << 3)
162848b8605Smrg#define   G_SQ_CF_ALLOC_EXPORT_WORD1_SWIZ_SEL_Y(x)                   (((x) >> 3) & 0x7)
163848b8605Smrg#define   C_SQ_CF_ALLOC_EXPORT_WORD1_SWIZ_SEL_Y                      0xFFFFFFC7
164b8e80941Smrg#define   S_SQ_CF_ALLOC_EXPORT_WORD1_SWIZ_SEL_Z(x)                   (((unsigned)(x) & 0x7) << 6)
165848b8605Smrg#define   G_SQ_CF_ALLOC_EXPORT_WORD1_SWIZ_SEL_Z(x)                   (((x) >> 6) & 0x7)
166848b8605Smrg#define   C_SQ_CF_ALLOC_EXPORT_WORD1_SWIZ_SEL_Z                      0xFFFFFE3F
167b8e80941Smrg#define   S_SQ_CF_ALLOC_EXPORT_WORD1_SWIZ_SEL_W(x)                   (((unsigned)(x) & 0x7) << 9)
168848b8605Smrg#define   G_SQ_CF_ALLOC_EXPORT_WORD1_SWIZ_SEL_W(x)                   (((x) >> 9) & 0x7)
169848b8605Smrg#define   C_SQ_CF_ALLOC_EXPORT_WORD1_SWIZ_SEL_W                      0xFFFFF1FF
170848b8605Smrg#define P_SQ_ALU_WORD0
171b8e80941Smrg#define   S_SQ_ALU_WORD0_SRC0_SEL(x)                                 (((unsigned)(x) & 0x1FF) << 0)
172848b8605Smrg#define   G_SQ_ALU_WORD0_SRC0_SEL(x)                                 (((x) >> 0) & 0x1FF)
173848b8605Smrg#define   C_SQ_ALU_WORD0_SRC0_SEL                                    0xFFFFFE00
174b8e80941Smrg#define   S_SQ_ALU_WORD0_SRC0_REL(x)                                 (((unsigned)(x) & 0x1) << 9)
175848b8605Smrg#define   G_SQ_ALU_WORD0_SRC0_REL(x)                                 (((x) >> 9) & 0x1)
176848b8605Smrg#define   C_SQ_ALU_WORD0_SRC0_REL                                    0xFFFFFDFF
177b8e80941Smrg#define   S_SQ_ALU_WORD0_SRC0_CHAN(x)                                (((unsigned)(x) & 0x3) << 10)
178848b8605Smrg#define   G_SQ_ALU_WORD0_SRC0_CHAN(x)                                (((x) >> 10) & 0x3)
179848b8605Smrg#define   C_SQ_ALU_WORD0_SRC0_CHAN                                   0xFFFFF3FF
180b8e80941Smrg#define   S_SQ_ALU_WORD0_SRC0_NEG(x)                                 (((unsigned)(x) & 0x1) << 12)
181848b8605Smrg#define   G_SQ_ALU_WORD0_SRC0_NEG(x)                                 (((x) >> 12) & 0x1)
182848b8605Smrg#define   C_SQ_ALU_WORD0_SRC0_NEG                                    0xFFFFEFFF
183b8e80941Smrg#define   S_SQ_ALU_WORD0_SRC1_SEL(x)                                 (((unsigned)(x) & 0x1FF) << 13)
184848b8605Smrg#define   G_SQ_ALU_WORD0_SRC1_SEL(x)                                 (((x) >> 13) & 0x1FF)
185848b8605Smrg#define   C_SQ_ALU_WORD0_SRC1_SEL                                    0xFFC01FFF
186b8e80941Smrg#define   S_SQ_ALU_WORD0_SRC1_REL(x)                                 (((unsigned)(x) & 0x1) << 22)
187848b8605Smrg#define   G_SQ_ALU_WORD0_SRC1_REL(x)                                 (((x) >> 22) & 0x1)
188848b8605Smrg#define   C_SQ_ALU_WORD0_SRC1_REL                                    0xFFBFFFFF
189b8e80941Smrg#define   S_SQ_ALU_WORD0_SRC1_CHAN(x)                                (((unsigned)(x) & 0x3) << 23)
190848b8605Smrg#define   G_SQ_ALU_WORD0_SRC1_CHAN(x)                                (((x) >> 23) & 0x3)
191848b8605Smrg#define   C_SQ_ALU_WORD0_SRC1_CHAN                                   0xFE7FFFFF
192b8e80941Smrg#define   S_SQ_ALU_WORD0_SRC1_NEG(x)                                 (((unsigned)(x) & 0x1) << 25)
193848b8605Smrg#define   G_SQ_ALU_WORD0_SRC1_NEG(x)                                 (((x) >> 25) & 0x1)
194848b8605Smrg#define   C_SQ_ALU_WORD0_SRC1_NEG                                    0xFDFFFFFF
195b8e80941Smrg#define   S_SQ_ALU_WORD0_INDEX_MODE(x)                               (((unsigned)(x) & 0x7) << 26)
196848b8605Smrg#define   G_SQ_ALU_WORD0_INDEX_MODE(x)                               (((x) >> 26) & 0x7)
197848b8605Smrg#define   C_SQ_ALU_WORD0_INDEX_MODE                                  0xE3FFFFFF
198b8e80941Smrg#define   S_SQ_ALU_WORD0_PRED_SEL(x)                                 (((unsigned)(x) & 0x3) << 29)
199848b8605Smrg#define   G_SQ_ALU_WORD0_PRED_SEL(x)                                 (((x) >> 29) & 0x3)
200848b8605Smrg#define   C_SQ_ALU_WORD0_PRED_SEL                                    0x9FFFFFFF
201b8e80941Smrg#define   S_SQ_ALU_WORD0_LAST(x)                                     (((unsigned)(x) & 0x1) << 31)
202848b8605Smrg#define   G_SQ_ALU_WORD0_LAST(x)                                     (((x) >> 31) & 0x1)
203848b8605Smrg#define   C_SQ_ALU_WORD0_LAST                                        0x7FFFFFFF
204848b8605Smrg#define P_SQ_ALU_WORD1
205b8e80941Smrg#define   S_SQ_ALU_WORD1_ENCODING(x)                                 (((unsigned)(x) & 0x7) << 15)
206848b8605Smrg#define   G_SQ_ALU_WORD1_ENCODING(x)                                 (((x) >> 15) & 0x7)
207848b8605Smrg#define   C_SQ_ALU_WORD1_ENCODING                                    0xFFFC7FFF
208b8e80941Smrg#define   S_SQ_ALU_WORD1_BANK_SWIZZLE(x)                             (((unsigned)(x) & 0x7) << 18)
209848b8605Smrg#define   G_SQ_ALU_WORD1_BANK_SWIZZLE(x)                             (((x) >> 18) & 0x7)
210848b8605Smrg#define   C_SQ_ALU_WORD1_BANK_SWIZZLE                                0xFFE3FFFF
211b8e80941Smrg#define   S_SQ_ALU_WORD1_DST_GPR(x)                                  (((unsigned)(x) & 0x7F) << 21)
212848b8605Smrg#define   G_SQ_ALU_WORD1_DST_GPR(x)                                  (((x) >> 21) & 0x7F)
213848b8605Smrg#define   C_SQ_ALU_WORD1_DST_GPR                                     0xF01FFFFF
214b8e80941Smrg#define   S_SQ_ALU_WORD1_DST_REL(x)                                  (((unsigned)(x) & 0x1) << 28)
215848b8605Smrg#define   G_SQ_ALU_WORD1_DST_REL(x)                                  (((x) >> 28) & 0x1)
216848b8605Smrg#define   C_SQ_ALU_WORD1_DST_REL                                     0xEFFFFFFF
217b8e80941Smrg#define   S_SQ_ALU_WORD1_DST_CHAN(x)                                 (((unsigned)(x) & 0x3) << 29)
218848b8605Smrg#define   G_SQ_ALU_WORD1_DST_CHAN(x)                                 (((x) >> 29) & 0x3)
219848b8605Smrg#define   C_SQ_ALU_WORD1_DST_CHAN                                    0x9FFFFFFF
220b8e80941Smrg#define   S_SQ_ALU_WORD1_CLAMP(x)                                    (((unsigned)(x) & 0x1) << 31)
221848b8605Smrg#define   G_SQ_ALU_WORD1_CLAMP(x)                                    (((x) >> 31) & 0x1)
222848b8605Smrg#define   C_SQ_ALU_WORD1_CLAMP                                       0x7FFFFFFF
223848b8605Smrg#define P_SQ_ALU_WORD1_OP2
224b8e80941Smrg#define   S_SQ_ALU_WORD1_OP2_SRC0_ABS(x)                             (((unsigned)(x) & 0x1) << 0)
225848b8605Smrg#define   G_SQ_ALU_WORD1_OP2_SRC0_ABS(x)                             (((x) >> 0) & 0x1)
226848b8605Smrg#define   C_SQ_ALU_WORD1_OP2_SRC0_ABS                                0xFFFFFFFE
227b8e80941Smrg#define   S_SQ_ALU_WORD1_OP2_SRC1_ABS(x)                             (((unsigned)(x) & 0x1) << 1)
228848b8605Smrg#define   G_SQ_ALU_WORD1_OP2_SRC1_ABS(x)                             (((x) >> 1) & 0x1)
229848b8605Smrg#define   C_SQ_ALU_WORD1_OP2_SRC1_ABS                                0xFFFFFFFD
230b8e80941Smrg#define   S_SQ_ALU_WORD1_OP2_UPDATE_EXECUTE_MASK(x)                  (((unsigned)(x) & 0x1) << 2)
231848b8605Smrg#define   G_SQ_ALU_WORD1_OP2_UPDATE_EXECUTE_MASK(x)                  (((x) >> 2) & 0x1)
232848b8605Smrg#define   C_SQ_ALU_WORD1_OP2_UPDATE_EXECUTE_MASK                     0xFFFFFFFB
233b8e80941Smrg#define   S_SQ_ALU_WORD1_OP2_UPDATE_PRED(x)                          (((unsigned)(x) & 0x1) << 3)
234848b8605Smrg#define   G_SQ_ALU_WORD1_OP2_UPDATE_PRED(x)                          (((x) >> 3) & 0x1)
235848b8605Smrg#define   C_SQ_ALU_WORD1_OP2_UPDATE_PRED                             0xFFFFFFF7
236b8e80941Smrg#define   S_SQ_ALU_WORD1_OP2_WRITE_MASK(x)                           (((unsigned)(x) & 0x1) << 4)
237848b8605Smrg#define   G_SQ_ALU_WORD1_OP2_WRITE_MASK(x)                           (((x) >> 4) & 0x1)
238848b8605Smrg#define   C_SQ_ALU_WORD1_OP2_WRITE_MASK                              0xFFFFFFEF
239b8e80941Smrg#define   S_SQ_ALU_WORD1_OP2_OMOD(x)                                 (((unsigned)(x) & 0x3) << 5)
240848b8605Smrg#define   G_SQ_ALU_WORD1_OP2_OMOD(x)                                 (((x) >> 5) & 0x3)
241848b8605Smrg#define   C_SQ_ALU_WORD1_OP2_OMOD                                    0xFFFFFF9F
242b8e80941Smrg#define   S_SQ_ALU_WORD1_OP2_ALU_INST(x)                             (((unsigned)(x) & 0x7FF) << 7)
243848b8605Smrg#define   G_SQ_ALU_WORD1_OP2_ALU_INST(x)                             (((x) >> 7) & 0x7FF)
244848b8605Smrg#define   C_SQ_ALU_WORD1_OP2_ALU_INST                                0xFFFC007F
245848b8605Smrg#define     V_SQ_ALU_WORD1_OP2_SQ_OP2_INST_ADD                       0x00000000
246848b8605Smrg#define     V_SQ_ALU_WORD1_OP2_SQ_OP2_INST_MUL                       0x00000001
247848b8605Smrg#define     V_SQ_ALU_WORD1_OP2_SQ_OP2_INST_MUL_IEEE                  0x00000002
248848b8605Smrg#define     V_SQ_ALU_WORD1_OP2_SQ_OP2_INST_MAX                       0x00000003
249848b8605Smrg#define     V_SQ_ALU_WORD1_OP2_SQ_OP2_INST_MIN                       0x00000004
250848b8605Smrg#define     V_SQ_ALU_WORD1_OP2_SQ_OP2_INST_MAX_DX10                  0x00000005
251848b8605Smrg#define     V_SQ_ALU_WORD1_OP2_SQ_OP2_INST_MIN_DX10                  0x00000006
252848b8605Smrg#define     V_SQ_ALU_WORD1_OP2_SQ_OP2_INST_SETE                      0x00000008
253848b8605Smrg#define     V_SQ_ALU_WORD1_OP2_SQ_OP2_INST_SETGT                     0x00000009
254848b8605Smrg#define     V_SQ_ALU_WORD1_OP2_SQ_OP2_INST_SETGE                     0x0000000A
255848b8605Smrg#define     V_SQ_ALU_WORD1_OP2_SQ_OP2_INST_SETNE                     0x0000000B
256848b8605Smrg#define     V_SQ_ALU_WORD1_OP2_SQ_OP2_INST_SETE_DX10                 0x0000000C
257848b8605Smrg#define     V_SQ_ALU_WORD1_OP2_SQ_OP2_INST_SETGT_DX10                0x0000000D
258848b8605Smrg#define     V_SQ_ALU_WORD1_OP2_SQ_OP2_INST_SETGE_DX10                0x0000000E
259848b8605Smrg#define     V_SQ_ALU_WORD1_OP2_SQ_OP2_INST_SETNE_DX10                0x0000000F
260848b8605Smrg#define     V_SQ_ALU_WORD1_OP2_SQ_OP2_INST_FRACT                     0x00000010
261848b8605Smrg#define     V_SQ_ALU_WORD1_OP2_SQ_OP2_INST_TRUNC                     0x00000011
262848b8605Smrg#define     V_SQ_ALU_WORD1_OP2_SQ_OP2_INST_CEIL                      0x00000012
263848b8605Smrg#define     V_SQ_ALU_WORD1_OP2_SQ_OP2_INST_RNDNE                     0x00000013
264848b8605Smrg#define     V_SQ_ALU_WORD1_OP2_SQ_OP2_INST_FLOOR                     0x00000014
265848b8605Smrg#define     V_SQ_ALU_WORD1_OP2_SQ_OP2_INST_MOVA                      0x00000015
266848b8605Smrg#define     V_SQ_ALU_WORD1_OP2_SQ_OP2_INST_MOVA_FLOOR                0x00000016
267848b8605Smrg#define     V_SQ_ALU_WORD1_OP2_SQ_OP2_INST_MOVA_INT                  0x00000018
268848b8605Smrg#define     V_SQ_ALU_WORD1_OP2_SQ_OP2_INST_MOV                       0x00000019
269848b8605Smrg#define     V_SQ_ALU_WORD1_OP2_SQ_OP2_INST_NOP                       0x0000001A
270848b8605Smrg#define     V_SQ_ALU_WORD1_OP2_SQ_OP2_INST_PRED_SETGT_UINT           0x0000001E
271848b8605Smrg#define     V_SQ_ALU_WORD1_OP2_SQ_OP2_INST_PRED_SETGE_UINT           0x0000001F
272848b8605Smrg#define     V_SQ_ALU_WORD1_OP2_SQ_OP2_INST_PRED_SETE                 0x00000020
273848b8605Smrg#define     V_SQ_ALU_WORD1_OP2_SQ_OP2_INST_PRED_SETGT                0x00000021
274848b8605Smrg#define     V_SQ_ALU_WORD1_OP2_SQ_OP2_INST_PRED_SETGE                0x00000022
275848b8605Smrg#define     V_SQ_ALU_WORD1_OP2_SQ_OP2_INST_PRED_SETNE                0x00000023
276848b8605Smrg#define     V_SQ_ALU_WORD1_OP2_SQ_OP2_INST_PRED_SET_INV              0x00000024
277848b8605Smrg#define     V_SQ_ALU_WORD1_OP2_SQ_OP2_INST_PRED_SET_POP              0x00000025
278848b8605Smrg#define     V_SQ_ALU_WORD1_OP2_SQ_OP2_INST_PRED_SET_CLR              0x00000026
279848b8605Smrg#define     V_SQ_ALU_WORD1_OP2_SQ_OP2_INST_PRED_SET_RESTORE          0x00000027
280848b8605Smrg#define     V_SQ_ALU_WORD1_OP2_SQ_OP2_INST_PRED_SETE_PUSH            0x00000028
281848b8605Smrg#define     V_SQ_ALU_WORD1_OP2_SQ_OP2_INST_PRED_SETGT_PUSH           0x00000029
282848b8605Smrg#define     V_SQ_ALU_WORD1_OP2_SQ_OP2_INST_PRED_SETGE_PUSH           0x0000002A
283848b8605Smrg#define     V_SQ_ALU_WORD1_OP2_SQ_OP2_INST_PRED_SETNE_PUSH           0x0000002B
284848b8605Smrg#define     V_SQ_ALU_WORD1_OP2_SQ_OP2_INST_KILLE                     0x0000002C
285848b8605Smrg#define     V_SQ_ALU_WORD1_OP2_SQ_OP2_INST_KILLGT                    0x0000002D
286848b8605Smrg#define     V_SQ_ALU_WORD1_OP2_SQ_OP2_INST_KILLGE                    0x0000002E
287848b8605Smrg#define     V_SQ_ALU_WORD1_OP2_SQ_OP2_INST_KILLNE                    0x0000002F
288848b8605Smrg#define     V_SQ_ALU_WORD1_OP2_SQ_OP2_INST_AND_INT                   0x00000030
289848b8605Smrg#define     V_SQ_ALU_WORD1_OP2_SQ_OP2_INST_OR_INT                    0x00000031
290848b8605Smrg#define     V_SQ_ALU_WORD1_OP2_SQ_OP2_INST_XOR_INT                   0x00000032
291848b8605Smrg#define     V_SQ_ALU_WORD1_OP2_SQ_OP2_INST_NOT_INT                   0x00000033
292848b8605Smrg#define     V_SQ_ALU_WORD1_OP2_SQ_OP2_INST_ADD_INT                   0x00000034
293848b8605Smrg#define     V_SQ_ALU_WORD1_OP2_SQ_OP2_INST_SUB_INT                   0x00000035
294848b8605Smrg#define     V_SQ_ALU_WORD1_OP2_SQ_OP2_INST_MAX_INT                   0x00000036
295848b8605Smrg#define     V_SQ_ALU_WORD1_OP2_SQ_OP2_INST_MIN_INT                   0x00000037
296848b8605Smrg#define     V_SQ_ALU_WORD1_OP2_SQ_OP2_INST_MAX_UINT                  0x00000038
297848b8605Smrg#define     V_SQ_ALU_WORD1_OP2_SQ_OP2_INST_MIN_UINT                  0x00000039
298848b8605Smrg#define     V_SQ_ALU_WORD1_OP2_SQ_OP2_INST_SETE_INT                  0x0000003A
299848b8605Smrg#define     V_SQ_ALU_WORD1_OP2_SQ_OP2_INST_SETGT_INT                 0x0000003B
300848b8605Smrg#define     V_SQ_ALU_WORD1_OP2_SQ_OP2_INST_SETGE_INT                 0x0000003C
301848b8605Smrg#define     V_SQ_ALU_WORD1_OP2_SQ_OP2_INST_SETNE_INT                 0x0000003D
302848b8605Smrg#define     V_SQ_ALU_WORD1_OP2_SQ_OP2_INST_SETGT_UINT                0x0000003E
303848b8605Smrg#define     V_SQ_ALU_WORD1_OP2_SQ_OP2_INST_SETGE_UINT                0x0000003F
304848b8605Smrg#define     V_SQ_ALU_WORD1_OP2_SQ_OP2_INST_KILLGT_UINT               0x00000040
305848b8605Smrg#define     V_SQ_ALU_WORD1_OP2_SQ_OP2_INST_KILLGE_UINT               0x00000041
306848b8605Smrg#define     V_SQ_ALU_WORD1_OP2_SQ_OP2_INST_PRED_SETE_INT             0x00000042
307848b8605Smrg#define     V_SQ_ALU_WORD1_OP2_SQ_OP2_INST_PRED_SETGT_INT            0x00000043
308848b8605Smrg#define     V_SQ_ALU_WORD1_OP2_SQ_OP2_INST_PRED_SETGE_INT            0x00000044
309848b8605Smrg#define     V_SQ_ALU_WORD1_OP2_SQ_OP2_INST_PRED_SETNE_INT            0x00000045
310848b8605Smrg#define     V_SQ_ALU_WORD1_OP2_SQ_OP2_INST_KILLE_INT                 0x00000046
311848b8605Smrg#define     V_SQ_ALU_WORD1_OP2_SQ_OP2_INST_KILLGT_INT                0x00000047
312848b8605Smrg#define     V_SQ_ALU_WORD1_OP2_SQ_OP2_INST_KILLGE_INT                0x00000048
313848b8605Smrg#define     V_SQ_ALU_WORD1_OP2_SQ_OP2_INST_KILLNE_INT                0x00000049
314848b8605Smrg#define     V_SQ_ALU_WORD1_OP2_SQ_OP2_INST_PRED_SETE_PUSH_INT        0x0000004A
315848b8605Smrg#define     V_SQ_ALU_WORD1_OP2_SQ_OP2_INST_PRED_SETGT_PUSH_INT       0x0000004B
316848b8605Smrg#define     V_SQ_ALU_WORD1_OP2_SQ_OP2_INST_PRED_SETGE_PUSH_INT       0x0000004C
317848b8605Smrg#define     V_SQ_ALU_WORD1_OP2_SQ_OP2_INST_PRED_SETNE_PUSH_INT       0x0000004D
318848b8605Smrg#define     V_SQ_ALU_WORD1_OP2_SQ_OP2_INST_PRED_SETLT_PUSH_INT       0x0000004E
319848b8605Smrg#define     V_SQ_ALU_WORD1_OP2_SQ_OP2_INST_PRED_SETLE_PUSH_INT       0x0000004F
320848b8605Smrg#define     V_SQ_ALU_WORD1_OP2_SQ_OP2_INST_DOT4                      0x00000050
321848b8605Smrg#define     V_SQ_ALU_WORD1_OP2_SQ_OP2_INST_DOT4_IEEE                 0x00000051
322848b8605Smrg#define     V_SQ_ALU_WORD1_OP2_SQ_OP2_INST_CUBE                      0x00000052
323848b8605Smrg#define     V_SQ_ALU_WORD1_OP2_SQ_OP2_INST_MAX4                      0x00000053
324848b8605Smrg#define     V_SQ_ALU_WORD1_OP2_SQ_OP2_INST_MOVA_GPR_INT              0x00000060
325848b8605Smrg#define     V_SQ_ALU_WORD1_OP2_SQ_OP2_INST_EXP_IEEE                  0x00000061
326848b8605Smrg#define     V_SQ_ALU_WORD1_OP2_SQ_OP2_INST_LOG_CLAMPED               0x00000062
327848b8605Smrg#define     V_SQ_ALU_WORD1_OP2_SQ_OP2_INST_LOG_IEEE                  0x00000063
328848b8605Smrg#define     V_SQ_ALU_WORD1_OP2_SQ_OP2_INST_RECIP_CLAMPED             0x00000064
329848b8605Smrg#define     V_SQ_ALU_WORD1_OP2_SQ_OP2_INST_RECIP_FF                  0x00000065
330848b8605Smrg#define     V_SQ_ALU_WORD1_OP2_SQ_OP2_INST_RECIP_IEEE                0x00000066
331848b8605Smrg#define     V_SQ_ALU_WORD1_OP2_SQ_OP2_INST_RECIPSQRT_CLAMPED         0x00000067
332848b8605Smrg#define     V_SQ_ALU_WORD1_OP2_SQ_OP2_INST_RECIPSQRT_FF              0x00000068
333848b8605Smrg#define     V_SQ_ALU_WORD1_OP2_SQ_OP2_INST_RECIPSQRT_IEEE            0x00000069
334848b8605Smrg#define     V_SQ_ALU_WORD1_OP2_SQ_OP2_INST_SQRT_IEEE                 0x0000006A
335848b8605Smrg#define     V_SQ_ALU_WORD1_OP2_SQ_OP2_INST_FLT_TO_INT                0x0000006B
336848b8605Smrg#define     V_SQ_ALU_WORD1_OP2_SQ_OP2_INST_INT_TO_FLT                0x0000006C
337848b8605Smrg#define     V_SQ_ALU_WORD1_OP2_SQ_OP2_INST_UINT_TO_FLT               0x0000006D
338848b8605Smrg#define     V_SQ_ALU_WORD1_OP2_SQ_OP2_INST_SIN                       0x0000006E
339848b8605Smrg#define     V_SQ_ALU_WORD1_OP2_SQ_OP2_INST_COS                       0x0000006F
340848b8605Smrg#define     V_SQ_ALU_WORD1_OP2_SQ_OP2_INST_ASHR_INT                  0x00000070
341848b8605Smrg#define     V_SQ_ALU_WORD1_OP2_SQ_OP2_INST_LSHR_INT                  0x00000071
342848b8605Smrg#define     V_SQ_ALU_WORD1_OP2_SQ_OP2_INST_LSHL_INT                  0x00000072
343848b8605Smrg#define     V_SQ_ALU_WORD1_OP2_SQ_OP2_INST_MULLO_INT                 0x00000073
344848b8605Smrg#define     V_SQ_ALU_WORD1_OP2_SQ_OP2_INST_MULHI_INT                 0x00000074
345848b8605Smrg#define     V_SQ_ALU_WORD1_OP2_SQ_OP2_INST_MULLO_UINT                0x00000075
346848b8605Smrg#define     V_SQ_ALU_WORD1_OP2_SQ_OP2_INST_MULHI_UINT                0x00000076
347848b8605Smrg#define     V_SQ_ALU_WORD1_OP2_SQ_OP2_INST_RECIP_INT                 0x00000077
348848b8605Smrg#define     V_SQ_ALU_WORD1_OP2_SQ_OP2_INST_RECIP_UINT                0x00000078
349848b8605Smrg#define     V_SQ_ALU_WORD1_OP2_SQ_OP2_INST_FLT_TO_UINT               0x00000079
350848b8605Smrg#define P_SQ_ALU_WORD1_OP3
351b8e80941Smrg#define   S_SQ_ALU_WORD1_OP3_SRC2_SEL(x)                             (((unsigned)(x) & 0x1FF) << 0)
352848b8605Smrg#define   G_SQ_ALU_WORD1_OP3_SRC2_SEL(x)                             (((x) >> 0) & 0x1FF)
353848b8605Smrg#define   C_SQ_ALU_WORD1_OP3_SRC2_SEL                                0xFFFFFE00
354b8e80941Smrg#define   S_SQ_ALU_WORD1_OP3_SRC2_REL(x)                             (((unsigned)(x) & 0x1) << 9)
355848b8605Smrg#define   G_SQ_ALU_WORD1_OP3_SRC2_REL(x)                             (((x) >> 9) & 0x1)
356848b8605Smrg#define   C_SQ_ALU_WORD1_OP3_SRC2_REL                                0xFFFFFDFF
357b8e80941Smrg#define   S_SQ_ALU_WORD1_OP3_SRC2_CHAN(x)                            (((unsigned)(x) & 0x3) << 10)
358848b8605Smrg#define   G_SQ_ALU_WORD1_OP3_SRC2_CHAN(x)                            (((x) >> 10) & 0x3)
359848b8605Smrg#define   C_SQ_ALU_WORD1_OP3_SRC2_CHAN                               0xFFFFF3FF
360b8e80941Smrg#define   S_SQ_ALU_WORD1_OP3_SRC2_NEG(x)                             (((unsigned)(x) & 0x1) << 12)
361848b8605Smrg#define   G_SQ_ALU_WORD1_OP3_SRC2_NEG(x)                             (((x) >> 12) & 0x1)
362848b8605Smrg#define   C_SQ_ALU_WORD1_OP3_SRC2_NEG                                0xFFFFEFFF
363b8e80941Smrg#define   S_SQ_ALU_WORD1_OP3_ALU_INST(x)                             (((unsigned)(x) & 0x1F) << 13)
364848b8605Smrg#define   G_SQ_ALU_WORD1_OP3_ALU_INST(x)                             (((x) >> 13) & 0x1F)
365848b8605Smrg#define   C_SQ_ALU_WORD1_OP3_ALU_INST                                0xFFFC1FFF
366848b8605Smrg#define     V_SQ_ALU_WORD1_OP3_SQ_OP3_INST_MUL_LIT                   0x0000000C
367848b8605Smrg#define     V_SQ_ALU_WORD1_OP3_SQ_OP3_INST_MUL_LIT_M2                0x0000000D
368848b8605Smrg#define     V_SQ_ALU_WORD1_OP3_SQ_OP3_INST_MUL_LIT_M4                0x0000000E
369848b8605Smrg#define     V_SQ_ALU_WORD1_OP3_SQ_OP3_INST_MUL_LIT_D2                0x0000000F
370848b8605Smrg#define     V_SQ_ALU_WORD1_OP3_SQ_OP3_INST_MULADD                    0x00000010
371848b8605Smrg#define     V_SQ_ALU_WORD1_OP3_SQ_OP3_INST_MULADD_M2                 0x00000011
372848b8605Smrg#define     V_SQ_ALU_WORD1_OP3_SQ_OP3_INST_MULADD_M4                 0x00000012
373848b8605Smrg#define     V_SQ_ALU_WORD1_OP3_SQ_OP3_INST_MULADD_D2                 0x00000013
374848b8605Smrg#define     V_SQ_ALU_WORD1_OP3_SQ_OP3_INST_MULADD_IEEE               0x00000014
375848b8605Smrg#define     V_SQ_ALU_WORD1_OP3_SQ_OP3_INST_MULADD_IEEE_M2            0x00000015
376848b8605Smrg#define     V_SQ_ALU_WORD1_OP3_SQ_OP3_INST_MULADD_IEEE_M4            0x00000016
377848b8605Smrg#define     V_SQ_ALU_WORD1_OP3_SQ_OP3_INST_MULADD_IEEE_D2            0x00000017
378848b8605Smrg#define     V_SQ_ALU_WORD1_OP3_SQ_OP3_INST_CNDE                      0x00000018
379848b8605Smrg#define     V_SQ_ALU_WORD1_OP3_SQ_OP3_INST_CNDGT                     0x00000019
380848b8605Smrg#define     V_SQ_ALU_WORD1_OP3_SQ_OP3_INST_CNDGE                     0x0000001A
381848b8605Smrg#define     V_SQ_ALU_WORD1_OP3_SQ_OP3_INST_CNDE_INT                  0x0000001C
382848b8605Smrg#define     V_SQ_ALU_WORD1_OP3_SQ_OP3_INST_CNDGT_INT                 0x0000001D
383848b8605Smrg#define     V_SQ_ALU_WORD1_OP3_SQ_OP3_INST_CNDGE_INT                 0x0000001E
384848b8605Smrg#define P_SQ_VTX_WORD0
385b8e80941Smrg#define   S_SQ_VTX_WORD0_VTX_INST(x)                                 (((unsigned)(x) & 0x1F) << 0)
386848b8605Smrg#define   G_SQ_VTX_WORD0_VTX_INST(x)                                 (((x) >> 0) & 0x1F)
387848b8605Smrg#define   C_SQ_VTX_WORD0_VTX_INST                                    0xFFFFFFE0
388b8e80941Smrg#define   S_SQ_VTX_WORD0_FETCH_TYPE(x)                               (((unsigned)(x) & 0x3) << 5)
389848b8605Smrg#define   G_SQ_VTX_WORD0_FETCH_TYPE(x)                               (((x) >> 5) & 0x3)
390848b8605Smrg#define   C_SQ_VTX_WORD0_FETCH_TYPE                                  0xFFFFFF9F
391b8e80941Smrg#define   S_SQ_VTX_WORD0_FETCH_WHOLE_QUAD(x)                         (((unsigned)(x) & 0x1) << 7)
392848b8605Smrg#define   G_SQ_VTX_WORD0_FETCH_WHOLE_QUAD(x)                         (((x) >> 7) & 0x1)
393848b8605Smrg#define   C_SQ_VTX_WORD0_FETCH_WHOLE_QUAD                            0xFFFFFF7F
394b8e80941Smrg#define   S_SQ_VTX_WORD0_BUFFER_ID(x)                                (((unsigned)(x) & 0xFF) << 8)
395848b8605Smrg#define   G_SQ_VTX_WORD0_BUFFER_ID(x)                                (((x) >> 8) & 0xFF)
396848b8605Smrg#define   C_SQ_VTX_WORD0_BUFFER_ID                                   0xFFFF00FF
397b8e80941Smrg#define   S_SQ_VTX_WORD0_SRC_GPR(x)                                  (((unsigned)(x) & 0x7F) << 16)
398848b8605Smrg#define   G_SQ_VTX_WORD0_SRC_GPR(x)                                  (((x) >> 16) & 0x7F)
399848b8605Smrg#define   C_SQ_VTX_WORD0_SRC_GPR                                     0xFF80FFFF
400b8e80941Smrg#define   S_SQ_VTX_WORD0_SRC_REL(x)                                  (((unsigned)(x) & 0x1) << 23)
401848b8605Smrg#define   G_SQ_VTX_WORD0_SRC_REL(x)                                  (((x) >> 23) & 0x1)
402848b8605Smrg#define   C_SQ_VTX_WORD0_SRC_REL                                     0xFF7FFFFF
403b8e80941Smrg#define   S_SQ_VTX_WORD0_SRC_SEL_X(x)                                (((unsigned)(x) & 0x3) << 24)
404848b8605Smrg#define   G_SQ_VTX_WORD0_SRC_SEL_X(x)                                (((x) >> 24) & 0x3)
405848b8605Smrg#define   C_SQ_VTX_WORD0_SRC_SEL_X                                   0xFCFFFFFF
406b8e80941Smrg#define   S_SQ_VTX_WORD0_MEGA_FETCH_COUNT(x)                         (((unsigned)(x) & 0x3F) << 26)
407848b8605Smrg#define   G_SQ_VTX_WORD0_MEGA_FETCH_COUNT(x)                         (((x) >> 26) & 0x3F)
408848b8605Smrg#define   C_SQ_VTX_WORD0_MEGA_FETCH_COUNT                            0x03FFFFFF
409848b8605Smrg#define P_SQ_VTX_WORD1
410b8e80941Smrg#define   S_SQ_VTX_WORD1_DST_SEL_X(x)                                (((unsigned)(x) & 0x7) << 9)
411848b8605Smrg#define   G_SQ_VTX_WORD1_DST_SEL_X(x)                                (((x) >> 9) & 0x7)
412848b8605Smrg#define   C_SQ_VTX_WORD1_DST_SEL_X                                   0xFFFFF1FF
413b8e80941Smrg#define   S_SQ_VTX_WORD1_DST_SEL_Y(x)                                (((unsigned)(x) & 0x7) << 12)
414848b8605Smrg#define   G_SQ_VTX_WORD1_DST_SEL_Y(x)                                (((x) >> 12) & 0x7)
415848b8605Smrg#define   C_SQ_VTX_WORD1_DST_SEL_Y                                   0xFFFF8FFF
416b8e80941Smrg#define   S_SQ_VTX_WORD1_DST_SEL_Z(x)                                (((unsigned)(x) & 0x7) << 15)
417848b8605Smrg#define   G_SQ_VTX_WORD1_DST_SEL_Z(x)                                (((x) >> 15) & 0x7)
418848b8605Smrg#define   C_SQ_VTX_WORD1_DST_SEL_Z                                   0xFFFC7FFF
419b8e80941Smrg#define   S_SQ_VTX_WORD1_DST_SEL_W(x)                                (((unsigned)(x) & 0x7) << 18)
420848b8605Smrg#define   G_SQ_VTX_WORD1_DST_SEL_W(x)                                (((x) >> 18) & 0x7)
421848b8605Smrg#define   C_SQ_VTX_WORD1_DST_SEL_W                                   0xFFE3FFFF
422b8e80941Smrg#define   S_SQ_VTX_WORD1_USE_CONST_FIELDS(x)                         (((unsigned)(x) & 0x1) << 21)
423848b8605Smrg#define   G_SQ_VTX_WORD1_USE_CONST_FIELDS(x)                         (((x) >> 21) & 0x1)
424848b8605Smrg#define   C_SQ_VTX_WORD1_USE_CONST_FIELDS                            0xFFDFFFFF
425b8e80941Smrg#define   S_SQ_VTX_WORD1_DATA_FORMAT(x)                              (((unsigned)(x) & 0x3F) << 22)
426848b8605Smrg#define   G_SQ_VTX_WORD1_DATA_FORMAT(x)                              (((x) >> 22) & 0x3F)
427848b8605Smrg#define   C_SQ_VTX_WORD1_DATA_FORMAT                                 0xF03FFFFF
428b8e80941Smrg#define   S_SQ_VTX_WORD1_NUM_FORMAT_ALL(x)                           (((unsigned)(x) & 0x3) << 28)
429848b8605Smrg#define   G_SQ_VTX_WORD1_NUM_FORMAT_ALL(x)                           (((x) >> 28) & 0x3)
430848b8605Smrg#define   C_SQ_VTX_WORD1_NUM_FORMAT_ALL                              0xCFFFFFFF
431b8e80941Smrg#define   S_SQ_VTX_WORD1_FORMAT_COMP_ALL(x)                          (((unsigned)(x) & 0x1) << 30)
432848b8605Smrg#define   G_SQ_VTX_WORD1_FORMAT_COMP_ALL(x)                          (((x) >> 30) & 0x1)
433848b8605Smrg#define   C_SQ_VTX_WORD1_FORMAT_COMP_ALL                             0xBFFFFFFF
434b8e80941Smrg#define   S_SQ_VTX_WORD1_SRF_MODE_ALL(x)                             (((unsigned)(x) & 0x1) << 31)
435848b8605Smrg#define   G_SQ_VTX_WORD1_SRF_MODE_ALL(x)                             (((x) >> 31) & 0x1)
436848b8605Smrg#define   C_SQ_VTX_WORD1_SRF_MODE_ALL                                0x7FFFFFFF
437848b8605Smrg#define P_SQ_VTX_WORD1_GPR
438b8e80941Smrg#define   S_SQ_VTX_WORD1_GPR_DST_GPR(x)                              (((unsigned)(x) & 0x7F) << 0)
439848b8605Smrg#define   G_SQ_VTX_WORD1_GPR_DST_GPR(x)                              (((x) >> 0) & 0x7F)
440848b8605Smrg#define   C_SQ_VTX_WORD1_GPR_DST_GPR                                 0xFFFFFF80
441b8e80941Smrg#define   S_SQ_VTX_WORD1_GPR_DST_REL(x)                              (((unsigned)(x) & 0x1) << 7)
442848b8605Smrg#define   G_SQ_VTX_WORD1_GPR_DST_REL(x)                              (((x) >> 7) & 0x1)
443848b8605Smrg#define   C_SQ_VTX_WORD1_GPR_DST_REL                                 0xFFFFFF7F
444848b8605Smrg#define P_SQ_VTX_WORD1_SEM
445b8e80941Smrg#define   S_SQ_VTX_WORD1_SEM_SEMANTIC_ID(x)                          (((unsigned)(x) & 0xFF) << 0)
446848b8605Smrg#define   G_SQ_VTX_WORD1_SEM_SEMANTIC_ID(x)                          (((x) >> 0) & 0xFF)
447848b8605Smrg#define   C_SQ_VTX_WORD1_SEM_SEMANTIC_ID                             0xFFFFFF00
448848b8605Smrg#define P_SQ_VTX_WORD2
449b8e80941Smrg#define   S_SQ_VTX_WORD2_OFFSET(x)                                   (((unsigned)(x) & 0xFFFF) << 0)
450848b8605Smrg#define   G_SQ_VTX_WORD2_OFFSET(x)                                   (((x) >> 0) & 0xFFFF)
451848b8605Smrg#define   C_SQ_VTX_WORD2_OFFSET                                      0xFFFF0000
452b8e80941Smrg#define   S_SQ_VTX_WORD2_ENDIAN_SWAP(x)                              (((unsigned)(x) & 0x3) << 16)
453848b8605Smrg#define   G_SQ_VTX_WORD2_ENDIAN_SWAP(x)                              (((x) >> 16) & 0x3)
454848b8605Smrg#define   C_SQ_VTX_WORD2_ENDIAN_SWAP                                 0xFFFCFFFF
455b8e80941Smrg#define   S_SQ_VTX_WORD2_CONST_BUF_NO_STRIDE(x)                      (((unsigned)(x) & 0x1) << 18)
456848b8605Smrg#define   G_SQ_VTX_WORD2_CONST_BUF_NO_STRIDE(x)                      (((x) >> 18) & 0x1)
457848b8605Smrg#define   C_SQ_VTX_WORD2_CONST_BUF_NO_STRIDE                         0xFFFBFFFF
458b8e80941Smrg#define   S_SQ_VTX_WORD2_MEGA_FETCH(x)                               (((unsigned)(x) & 0x1) << 19)
459848b8605Smrg#define   G_SQ_VTX_WORD2_MEGA_FETCH(x)                               (((x) >> 19) & 0x1)
460848b8605Smrg#define   C_SQ_VTX_WORD2_MEGA_FETCH                                  0xFFF7FFFF
461b8e80941Smrg#define   S_SQ_VTX_WORD2_ALT_CONST(x)                                (((unsigned)(x) & 0x1) << 20)
462848b8605Smrg#define   G_SQ_VTX_WORD2_ALT_CONST(x)                                (((x) >> 20) & 0x1)
463848b8605Smrg#define   C_SQ_VTX_WORD2_ALT_CONST                                   0xFFEFFFFF
464848b8605Smrg#define P_SQ_TEX_WORD0
465b8e80941Smrg#define   S_SQ_TEX_WORD0_TEX_INST(x)                                 (((unsigned)(x) & 0x1F) << 0)
466848b8605Smrg#define   G_SQ_TEX_WORD0_TEX_INST(x)                                 (((x) >> 0) & 0x1F)
467848b8605Smrg#define   C_SQ_TEX_WORD0_TEX_INST                                    0xFFFFFFE0
468b8e80941Smrg#define   S_SQ_TEX_WORD0_BC_FRAC_MODE(x)                             (((unsigned)(x) & 0x1) << 5)
469848b8605Smrg#define   G_SQ_TEX_WORD0_BC_FRAC_MODE(x)                             (((x) >> 5) & 0x1)
470848b8605Smrg#define   C_SQ_TEX_WORD0_BC_FRAC_MODE                                0xFFFFFFDF
471b8e80941Smrg#define   S_SQ_TEX_WORD0_FETCH_WHOLE_QUAD(x)                         (((unsigned)(x) & 0x1) << 7)
472848b8605Smrg#define   G_SQ_TEX_WORD0_FETCH_WHOLE_QUAD(x)                         (((x) >> 7) & 0x1)
473848b8605Smrg#define   C_SQ_TEX_WORD0_FETCH_WHOLE_QUAD                            0xFFFFFF7F
474b8e80941Smrg#define   S_SQ_TEX_WORD0_RESOURCE_ID(x)                              (((unsigned)(x) & 0xFF) << 8)
475848b8605Smrg#define   G_SQ_TEX_WORD0_RESOURCE_ID(x)                              (((x) >> 8) & 0xFF)
476848b8605Smrg#define   C_SQ_TEX_WORD0_RESOURCE_ID                                 0xFFFF00FF
477b8e80941Smrg#define   S_SQ_TEX_WORD0_SRC_GPR(x)                                  (((unsigned)(x) & 0x7F) << 16)
478848b8605Smrg#define   G_SQ_TEX_WORD0_SRC_GPR(x)                                  (((x) >> 16) & 0x7F)
479848b8605Smrg#define   C_SQ_TEX_WORD0_SRC_GPR                                     0xFF80FFFF
480b8e80941Smrg#define   S_SQ_TEX_WORD0_SRC_REL(x)                                  (((unsigned)(x) & 0x1) << 23)
481848b8605Smrg#define   G_SQ_TEX_WORD0_SRC_REL(x)                                  (((x) >> 23) & 0x1)
482848b8605Smrg#define   C_SQ_TEX_WORD0_SRC_REL                                     0xFF7FFFFF
483b8e80941Smrg#define   S_SQ_TEX_WORD0_ALT_CONST(x)                                (((unsigned)(x) & 0x1) << 24)
484848b8605Smrg#define   G_SQ_TEX_WORD0_ALT_CONST(x)                                (((x) >> 24) & 0x1)
485848b8605Smrg#define   C_SQ_TEX_WORD0_ALT_CONST                                   0xFEFFFFFF
486848b8605Smrg#define P_SQ_TEX_WORD1
487b8e80941Smrg#define   S_SQ_TEX_WORD1_DST_GPR(x)                                  (((unsigned)(x) & 0x7F) << 0)
488848b8605Smrg#define   G_SQ_TEX_WORD1_DST_GPR(x)                                  (((x) >> 0) & 0x7F)
489848b8605Smrg#define   C_SQ_TEX_WORD1_DST_GPR                                     0xFFFFFF80
490b8e80941Smrg#define   S_SQ_TEX_WORD1_DST_REL(x)                                  (((unsigned)(x) & 0x1) << 7)
491848b8605Smrg#define   G_SQ_TEX_WORD1_DST_REL(x)                                  (((x) >> 7) & 0x1)
492848b8605Smrg#define   C_SQ_TEX_WORD1_DST_REL                                     0xFFFFFF7F
493b8e80941Smrg#define   S_SQ_TEX_WORD1_DST_SEL_X(x)                                (((unsigned)(x) & 0x7) << 9)
494848b8605Smrg#define   G_SQ_TEX_WORD1_DST_SEL_X(x)                                (((x) >> 9) & 0x7)
495848b8605Smrg#define   C_SQ_TEX_WORD1_DST_SEL_X                                   0xFFFFF1FF
496b8e80941Smrg#define   S_SQ_TEX_WORD1_DST_SEL_Y(x)                                (((unsigned)(x) & 0x7) << 12)
497848b8605Smrg#define   G_SQ_TEX_WORD1_DST_SEL_Y(x)                                (((x) >> 12) & 0x7)
498848b8605Smrg#define   C_SQ_TEX_WORD1_DST_SEL_Y                                   0xFFFF8FFF
499b8e80941Smrg#define   S_SQ_TEX_WORD1_DST_SEL_Z(x)                                (((unsigned)(x) & 0x7) << 15)
500848b8605Smrg#define   G_SQ_TEX_WORD1_DST_SEL_Z(x)                                (((x) >> 15) & 0x7)
501848b8605Smrg#define   C_SQ_TEX_WORD1_DST_SEL_Z                                   0xFFFC7FFF
502b8e80941Smrg#define   S_SQ_TEX_WORD1_DST_SEL_W(x)                                (((unsigned)(x) & 0x7) << 18)
503848b8605Smrg#define   G_SQ_TEX_WORD1_DST_SEL_W(x)                                (((x) >> 18) & 0x7)
504848b8605Smrg#define   C_SQ_TEX_WORD1_DST_SEL_W                                   0xFFE3FFFF
505b8e80941Smrg#define   S_SQ_TEX_WORD1_LOD_BIAS(x)                                 (((unsigned)(x) & 0x7F) << 21)
506848b8605Smrg#define   G_SQ_TEX_WORD1_LOD_BIAS(x)                                 (((x) >> 21) & 0x7F)
507848b8605Smrg#define   C_SQ_TEX_WORD1_LOD_BIAS                                    0xF01FFFFF
508b8e80941Smrg#define   S_SQ_TEX_WORD1_COORD_TYPE_X(x)                             (((unsigned)(x) & 0x1) << 28)
509848b8605Smrg#define   G_SQ_TEX_WORD1_COORD_TYPE_X(x)                             (((x) >> 28) & 0x1)
510848b8605Smrg#define   C_SQ_TEX_WORD1_COORD_TYPE_X                                0xEFFFFFFF
511b8e80941Smrg#define   S_SQ_TEX_WORD1_COORD_TYPE_Y(x)                             (((unsigned)(x) & 0x1) << 29)
512848b8605Smrg#define   G_SQ_TEX_WORD1_COORD_TYPE_Y(x)                             (((x) >> 29) & 0x1)
513848b8605Smrg#define   C_SQ_TEX_WORD1_COORD_TYPE_Y                                0xDFFFFFFF
514b8e80941Smrg#define   S_SQ_TEX_WORD1_COORD_TYPE_Z(x)                             (((unsigned)(x) & 0x1) << 30)
515848b8605Smrg#define   G_SQ_TEX_WORD1_COORD_TYPE_Z(x)                             (((x) >> 30) & 0x1)
516848b8605Smrg#define   C_SQ_TEX_WORD1_COORD_TYPE_Z                                0xBFFFFFFF
517b8e80941Smrg#define   S_SQ_TEX_WORD1_COORD_TYPE_W(x)                             (((unsigned)(x) & 0x1) << 31)
518848b8605Smrg#define   G_SQ_TEX_WORD1_COORD_TYPE_W(x)                             (((x) >> 31) & 0x1)
519848b8605Smrg#define   C_SQ_TEX_WORD1_COORD_TYPE_W                                0x7FFFFFFF
520848b8605Smrg#define P_SQ_TEX_WORD2
521b8e80941Smrg#define   S_SQ_TEX_WORD2_OFFSET_X(x)                                 (((unsigned)(x) & 0x1F) << 0)
522848b8605Smrg#define   G_SQ_TEX_WORD2_OFFSET_X(x)                                 (((x) >> 0) & 0x1F)
523848b8605Smrg#define   C_SQ_TEX_WORD2_OFFSET_X                                    0xFFFFFFE0
524b8e80941Smrg#define   S_SQ_TEX_WORD2_OFFSET_Y(x)                                 (((unsigned)(x) & 0x1F) << 5)
525848b8605Smrg#define   G_SQ_TEX_WORD2_OFFSET_Y(x)                                 (((x) >> 5) & 0x1F)
526848b8605Smrg#define   C_SQ_TEX_WORD2_OFFSET_Y                                    0xFFFFFC1F
527b8e80941Smrg#define   S_SQ_TEX_WORD2_OFFSET_Z(x)                                 (((unsigned)(x) & 0x1F) << 10)
528848b8605Smrg#define   G_SQ_TEX_WORD2_OFFSET_Z(x)                                 (((x) >> 10) & 0x1F)
529848b8605Smrg#define   C_SQ_TEX_WORD2_OFFSET_Z                                    0xFFFF83FF
530b8e80941Smrg#define   S_SQ_TEX_WORD2_SAMPLER_ID(x)                               (((unsigned)(x) & 0x1F) << 15)
531848b8605Smrg#define   G_SQ_TEX_WORD2_SAMPLER_ID(x)                               (((x) >> 15) & 0x1F)
532848b8605Smrg#define   C_SQ_TEX_WORD2_SAMPLER_ID                                  0xFFF07FFF
533b8e80941Smrg#define   S_SQ_TEX_WORD2_SRC_SEL_X(x)                                (((unsigned)(x) & 0x7) << 20)
534848b8605Smrg#define   G_SQ_TEX_WORD2_SRC_SEL_X(x)                                (((x) >> 20) & 0x7)
535848b8605Smrg#define   C_SQ_TEX_WORD2_SRC_SEL_X                                   0xFF8FFFFF
536b8e80941Smrg#define   S_SQ_TEX_WORD2_SRC_SEL_Y(x)                                (((unsigned)(x) & 0x7) << 23)
537848b8605Smrg#define   G_SQ_TEX_WORD2_SRC_SEL_Y(x)                                (((x) >> 23) & 0x7)
538848b8605Smrg#define   C_SQ_TEX_WORD2_SRC_SEL_Y                                   0xFC7FFFFF
539b8e80941Smrg#define   S_SQ_TEX_WORD2_SRC_SEL_Z(x)                                (((unsigned)(x) & 0x7) << 26)
540848b8605Smrg#define   G_SQ_TEX_WORD2_SRC_SEL_Z(x)                                (((x) >> 26) & 0x7)
541848b8605Smrg#define   C_SQ_TEX_WORD2_SRC_SEL_Z                                   0xE3FFFFFF
542b8e80941Smrg#define   S_SQ_TEX_WORD2_SRC_SEL_W(x)                                (((unsigned)(x) & 0x7) << 29)
543848b8605Smrg#define   G_SQ_TEX_WORD2_SRC_SEL_W(x)                                (((x) >> 29) & 0x7)
544848b8605Smrg#define   C_SQ_TEX_WORD2_SRC_SEL_W                                   0x1FFFFFFF
545848b8605Smrg
546b8e80941Smrg#define P_SQ_MEM_RD_WORD0
547b8e80941Smrg#define   S_SQ_MEM_RD_WORD0_MEM_INST(x)                              (((x) & 0x1F) << 0)
548b8e80941Smrg#define   S_SQ_MEM_RD_WORD0_ELEM_SIZE(x)                             (((x) & 0x3) << 5)
549b8e80941Smrg#define   S_SQ_MEM_RD_WORD0_FETCH_WHOLE_QUAD(x)                      (((x) & 0x1) << 7)
550b8e80941Smrg#define   S_SQ_MEM_RD_WORD0_MEM_OP(x)                                (((x) & 0x7) << 8)
551b8e80941Smrg#define   S_SQ_MEM_RD_WORD0_UNCACHED(x)                              (((x) & 0x1) << 11)
552b8e80941Smrg#define   S_SQ_MEM_RD_WORD0_INDEXED(x)                               (((x) & 0x1) << 12)
553b8e80941Smrg#define   S_SQ_MEM_RD_WORD0_SRC_SEL_Y(x)                             (((x) & 0x3) << 13)
554b8e80941Smrg#define   S_SQ_MEM_RD_WORD0_SRC_GPR(x)                               (((x) & 0x7F) << 16)
555b8e80941Smrg#define   S_SQ_MEM_RD_WORD0_SRC_REL(x)                               (((x) & 0x1) << 23)
556b8e80941Smrg#define   S_SQ_MEM_RD_WORD0_SRC_SEL_X(x)                             (((x) & 0x3) << 24)
557b8e80941Smrg#define   S_SQ_MEM_RD_WORD0_BURST_COUNT(x)                           (((x) & 0xF) << 26)
558b8e80941Smrg#define   S_SQ_MEM_RD_WORD0_LDS_REQ(x)                               (((x) & 0x1) << 30)
559b8e80941Smrg#define   S_SQ_MEM_RD_WORD0_COALESCED_READ(x)                        (((x) & 0x1) << 31)
560b8e80941Smrg#define P_SQ_MEM_RD_WORD1
561b8e80941Smrg#define   S_SQ_MEM_RD_WORD1_DST_GPR(x)                               (((x) & 0x7f) << 0)
562b8e80941Smrg#define   S_SQ_MEM_RD_WORD1_DST_REL(x)                               (((x) & 0x1) << 7)
563b8e80941Smrg#define   S_SQ_MEM_RD_WORD1_DST_SEL_X(x)                             (((x) & 0x7) << 9)
564b8e80941Smrg#define   S_SQ_MEM_RD_WORD1_DST_SEL_Y(x)                             (((x) & 0x7) << 12)
565b8e80941Smrg#define   S_SQ_MEM_RD_WORD1_DST_SEL_Z(x)                             (((x) & 0x7) << 15)
566b8e80941Smrg#define   S_SQ_MEM_RD_WORD1_DST_SEL_W(x)                             (((x) & 0x7) << 18)
567b8e80941Smrg#define   S_SQ_MEM_RD_WORD1_DATA_FORMAT(x)                           (((x) & 0x3F) << 22)
568b8e80941Smrg#define   S_SQ_MEM_RD_WORD1_NUM_FORMAT_ALL(x)                        (((x) & 0x3) << 28)
569b8e80941Smrg#define   S_SQ_MEM_RD_WORD1_FORMAT_COMP_ALL(x)                       (((x) & 0x1) << 30)
570b8e80941Smrg#define   S_SQ_MEM_RD_WORD1_SRF_MODE_ALL(x)                          (((x) & 0x1) << 31)
571b8e80941Smrg#define P_SQ_MEM_RD_WORD2
572b8e80941Smrg#define   S_SQ_MEM_RD_WORD2_ARRAY_BASE(x)                            (((x) & 0x1FFF) << 0)
573b8e80941Smrg#define   S_SQ_MEM_RD_WORD2_ENDIAN_SWAP(x)                           (((x) & 0x3) << 16)
574b8e80941Smrg#define   S_SQ_MEM_RD_WORD2_ARRAY_SIZE(x)                            (((x) & 0xFFF) << 20)
575b8e80941Smrg
576848b8605Smrg#endif
577