1 // RUN
: not llvm-mc
-triple
=amdgcn
-mcpu
=gfx1010
-show-encoding
%s | FileCheck
-check-prefix
=GFX10
%s
2 // RUN
: not llvm-mc
-triple
=amdgcn
-mcpu
=gfx1010
%s
2>&1 | FileCheck
-check-prefix
=GFX10-ERR
--implicit-check-
not=error
: %s
4 //===----------------------------------------------------------------------===//
5 // Positive tests for legacy format syntax.
6 //===----------------------------------------------------------------------===//
8 // GFX10
: tbuffer_load_format_d16_x v0
, off
, s
[0:3], 0 format
:[BUF_FMT_32_FLOAT
] ; encoding
: [0x00,0x00,0xb0,0xe8,0x00,0x00,0x20,0x80]
9 tbuffer_load_format_d16_x v0
, off
, s
[0:3], format
:22, 0
11 // GFX10
: tbuffer_load_format_d16_xy v0
, off
, s
[0:3], 0 format
:[BUF_FMT_32_FLOAT
] ; encoding
: [0x00,0x00,0xb1,0xe8,0x00,0x00,0x20,0x80]
12 tbuffer_load_format_d16_xy v0
, off
, s
[0:3], format
:22, 0
14 // GFX10
: tbuffer_load_format_d16_xyzw v
[0:1], off
, s
[0:3], 0 format
:[BUF_FMT_32_FLOAT
] ; encoding
: [0x00,0x00,0xb3,0xe8,0x00,0x00,0x20,0x80]
15 tbuffer_load_format_d16_xyzw v
[0:1], off
, s
[0:3], format
:22, 0
17 // GFX10
: tbuffer_load_format_xyzw v
[0:3], off
, s
[0:3], 0 format
:78 ; encoding
: [0x00,0x00,0x73,0xea,0x00,0x00,0x00,0x80]
18 tbuffer_load_format_xyzw v
[0:3], off
, s
[0:3], format
:78, 0
20 // GFX10
: tbuffer_load_format_xyzw v
[8:11], off
, s
[0:3], 0 format
:[BUF_FMT_32_FLOAT
] slc ; encoding
: [0x00,0x00,0xb3,0xe8,0x00,0x08,0x40,0x80]
21 tbuffer_load_format_xyzw v
[8:11], off
, s
[0:3], format
:22, 0 slc
23 // GFX10
: tbuffer_load_format_xyzw v
[4:7], off
, s
[0:3], 0 format
:[BUF_FMT_32_32_SINT
] glc ; encoding
: [0x00,0x40,0xfb,0xe9,0x00,0x04,0x00,0x80]
24 tbuffer_load_format_xyzw v
[4:7], off
, s
[0:3], format
:63, 0 glc
26 // GFX10
: tbuffer_load_format_xyzw v
[12:15], off
, s
[0:3], 0 format
:[BUF_FMT_16_16_UNORM
] glc dlc ; encoding
: [0x00,0xc0,0xbb,0xe8,0x00,0x0c,0x00,0x80]
27 tbuffer_load_format_xyzw v
[12:15], off
, s
[0:3], format
:23, 0 glc dlc
29 // GFX10
: tbuffer_load_format_xyzw v
[0:3], off
, s
[0:3], 0 format
:78 offset
:42 ; encoding
: [0x2a,0x00,0x73,0xea,0x00,0x00,0x00,0x80]
30 tbuffer_load_format_xyzw v
[0:3], off
, s
[0:3], format
:78, 0 offset
:42
32 // GFX10
: tbuffer_load_format_xyzw v
[4:7], off
, s
[0:3], s4 format
:[BUF_FMT_32_32_UINT
] offset
:73 ; encoding
: [0x49,0x00,0xf3,0xe9,0x00,0x04,0x00,0x04]
33 tbuffer_load_format_xyzw v
[4:7], off
, s
[0:3], format
:62, s4 offset
:73
35 // GFX10
: tbuffer_load_format_xyzw v
[0:3], off
, s
[0:3], 61 format
:[BUF_FMT_10_10_10_2_SSCALED
] offset
:4095 ; encoding
: [0xff,0x0f,0x7b,0xe9,0x00,0x00,0x00,0xbd]
36 tbuffer_load_format_xyzw v
[0:3], off
, s
[0:3], format
:47, 61 offset
:4095
38 // GFX10
: tbuffer_load_format_xyzw v
[8:11], off
, s
[0:3], s4 format
:[BUF_FMT_32_32_32_32_FLOAT
] offset
:1 ; encoding
: [0x01,0x00,0x6b,0xea,0x00,0x08,0x00,0x04]
39 tbuffer_load_format_xyzw v
[8:11], off
, s
[0:3], format
:77, s4 offset
:1
41 // GFX10
: tbuffer_load_format_xyzw v
[0:3], v0
, s
[0:3], 0 format
:78 idxen ; encoding
: [0x00,0x20,0x73,0xea,0x00,0x00,0x00,0x80]
42 tbuffer_load_format_xyzw v
[0:3], v0
, s
[0:3], format
:78, 0 idxen
44 // GFX10
: tbuffer_load_format_xyzw v
[0:3], v0
, s
[0:3], 0 format
:78 offen ; encoding
: [0x00,0x10,0x73,0xea,0x00,0x00,0x00,0x80]
45 tbuffer_load_format_xyzw v
[0:3], v0
, s
[0:3], format
:78, 0 offen
47 // GFX10
: tbuffer_load_format_xyzw v
[0:3], v0
, s
[0:3], 0 format
:78 offen offset
:52 ; encoding
: [0x34,0x10,0x73,0xea,0x00,0x00,0x00,0x80]
48 tbuffer_load_format_xyzw v
[0:3], v0
, s
[0:3], format
:78, 0 offen offset
:52
50 // GFX10
: tbuffer_load_format_xyzw v
[0:3], v
[0:1], s
[0:3], 0 format
:78 idxen offen ; encoding
: [0x00,0x30,0x73,0xea,0x00,0x00,0x00,0x80]
51 tbuffer_load_format_xyzw v
[0:3], v
[0:1], s
[0:3], format
:78, 0 idxen offen
53 // GFX10
: tbuffer_load_format_xy v
[0:1], off
, s
[0:3], 0 format
:[BUF_FMT_32_32_32_32_FLOAT
] ; encoding
: [0x00,0x00,0x69,0xea,0x00,0x00,0x00,0x80]
54 tbuffer_load_format_xy v
[0:1], off
, s
[0:3], format
:77, 0
56 // GFX10
: tbuffer_load_format_x v0
, off
, s
[0:3], 0 format
:[BUF_FMT_32_32_32_32_FLOAT
] ; encoding
: [0x00,0x00,0x68,0xea,0x00,0x00,0x00,0x80]
57 tbuffer_load_format_x v0
, off
, s
[0:3], format
:77, 0
59 // GFX10
: tbuffer_store_format_d16_x v0
, v1
, s
[4:7], 0 format
:[BUF_FMT_10_11_11_SSCALED
] idxen ; encoding
: [0x00,0x20,0x0c,0xe9,0x01,0x00,0x21,0x80]
60 tbuffer_store_format_d16_x v0
, v1
, s
[4:7], format
:33, 0 idxen
62 // GFX10
: tbuffer_store_format_d16_xy v0
, v1
, s
[4:7], 0 format
:[BUF_FMT_10_11_11_SSCALED
] idxen ; encoding
: [0x00,0x20,0x0d,0xe9,0x01,0x00,0x21,0x80]
63 tbuffer_store_format_d16_xy v0
, v1
, s
[4:7], format
:33, 0 idxen
65 // GFX10
: tbuffer_store_format_d16_xyzw v
[0:1], v2
, s
[4:7], 0 format
:[BUF_FMT_10_11_11_SSCALED
] idxen ; encoding
: [0x00,0x20,0x0f,0xe9,0x02,0x00,0x21,0x80]
66 tbuffer_store_format_d16_xyzw v
[0:1], v2
, s
[4:7], format
:33, 0 idxen
68 // GFX10
: tbuffer_store_format_xyzw v
[0:3], off
, s
[0:3], 0 format
:[BUF_FMT_10_10_10_2_UNORM
] ; encoding
: [0x00,0x00,0x67,0xe9,0x00,0x00,0x00,0x80]
69 tbuffer_store_format_xyzw v
[0:3], off
, s
[0:3], format
:44, 0
71 // GFX10
: tbuffer_store_format_xyzw v
[4:7], off
, s
[0:3], 0 format
:[BUF_FMT_8_8_8_8_SINT
] glc ; encoding
: [0x00,0x40,0xef,0xe9,0x00,0x04,0x00,0x80]
72 tbuffer_store_format_xyzw v
[4:7], off
, s
[0:3], format
:61, 0 glc
74 // GFX10
: tbuffer_store_format_xyzw v
[8:11], off
, s
[0:3], 0 format
:78 slc ; encoding
: [0x00,0x00,0x77,0xea,0x00,0x08,0x40,0x80]
75 tbuffer_store_format_xyzw v
[8:11], off
, s
[0:3], format
:78, 0 slc
77 // GFX10
: tbuffer_store_format_xyzw v
[8:11], off
, s
[0:3], 0 format
:78 ; encoding
: [0x00,0x00,0x77,0xea,0x00,0x08,0x00,0x80]
78 tbuffer_store_format_xyzw v
[8:11], off
, s
[0:3], format
:78, 0
80 // GFX10
: tbuffer_store_format_xyzw v
[0:3], off
, s
[0:3], 0 format
:117 offset
:42 ; encoding
: [0x2a,0x00,0xaf,0xeb,0x00,0x00,0x00,0x80]
81 tbuffer_store_format_xyzw v
[0:3], off
, s
[0:3], format
:117, 0 offset
:42
83 // GFX10
: tbuffer_store_format_xyzw v
[0:3], off
, s
[0:3], s4 format
:117 offset
:42 ; encoding
: [0x2a,0x00,0xaf,0xeb,0x00,0x00,0x00,0x04]
84 tbuffer_store_format_xyzw v
[0:3], off
, s
[0:3], format
:117, s4 offset
:42
86 // GFX10
: tbuffer_store_format_xyzw v
[0:3], v4
, s
[0:3], 0 format
:[BUF_FMT_10_10_10_2_SSCALED
] idxen ; encoding
: [0x00,0x20,0x7f,0xe9,0x04,0x00,0x00,0x80]
87 tbuffer_store_format_xyzw v
[0:3], v4
, s
[0:3], format
:47, 0 idxen
89 // GFX10
: tbuffer_store_format_xyzw v
[0:3], v4
, s
[0:3], 0 format
:115 offen ; encoding
: [0x00,0x10,0x9f,0xeb,0x04,0x00,0x00,0x80]
90 tbuffer_store_format_xyzw v
[0:3], v4
, s
[0:3], format
:115, 0 offen
92 // GFX10
: tbuffer_store_format_xyzw v
[0:3], v
[4:5], s
[0:3], 0 format
:[BUF_FMT_16_16_16_16_SINT
] idxen offen ; encoding
: [0x00,0x30,0x37,0xea,0x04,0x00,0x00,0x80]
93 tbuffer_store_format_xyzw v
[0:3], v
[4:5], s
[0:3], format
:70, 0 idxen offen
95 // GFX10
: tbuffer_store_format_xyzw v
[0:3], v4
, s
[0:3], 0 format
:[BUF_FMT_32_32_SINT
] idxen ; encoding
: [0x00,0x20,0xff,0xe9,0x04,0x00,0x00,0x80]
96 tbuffer_store_format_xyzw v
[0:3], v4
, s
[0:3], format
:63, 0 idxen
98 // GFX10
: tbuffer_store_format_xyzw v
[0:3], v6
, s
[0:3], 0 format
:[BUF_FMT_10_10_10_2_USCALED
] idxen ; encoding
: [0x00,0x20,0x77,0xe9,0x06,0x00,0x00,0x80]
99 tbuffer_store_format_xyzw v
[0:3], v6
, s
[0:3], format
:46, 0 idxen
101 // GFX10
: tbuffer_store_format_x v0
, v1
, s
[0:3], 0 format
:125 idxen ; encoding
: [0x00,0x20,0xec,0xeb,0x01,0x00,0x00,0x80]
102 tbuffer_store_format_x v0
, v1
, s
[0:3], format
:125, 0 idxen
104 // GFX10
: tbuffer_store_format_xy v
[0:1], v2
, s
[0:3], 0 format
:[BUF_FMT_10_11_11_SSCALED
] idxen ; encoding
: [0x00,0x20,0x0d,0xe9,0x02,0x00,0x00,0x80]
105 tbuffer_store_format_xy v
[0:1], v2
, s
[0:3], format
:33, 0 idxen
107 // GFX10
: tbuffer_store_format_x v0
, v1
, s
[0:3], 0 format
:127 idxen ; encoding
: [0x00,0x20,0xfc,0xeb,0x01,0x00,0x00,0x80]
108 tbuffer_store_format_x v0
, v1
, s
[0:3], format
:127, 0 idxen
110 // GFX10
: tbuffer_store_format_x v0
, v1
, s
[0:3], 0 format
:127 idxen ; encoding
: [0x00,0x20,0xfc,0xeb,0x01,0x00,0x00,0x80]
111 tbuffer_store_format_x v0
, v1
, s
[0:3] format
:127 0 idxen
113 // GFX10
: tbuffer_store_format_x v0
, v1
, s
[0:3], s0 format
:[BUF_FMT_INVALID
] idxen ; encoding
: [0x00,0x20,0x04,0xe8,0x01,0x00,0x00,0x00]
114 tbuffer_store_format_x v0
, v1
, s
[0:3] format
:0 s0 idxen
116 // GFX10
: tbuffer_store_format_x v0
, v1
, s
[0:3], s0 idxen ; encoding
: [0x00,0x20,0x0c,0xe8,0x01,0x00,0x00,0x00]
117 tbuffer_store_format_x v0
, v1
, s
[0:3] format
:1 s0 idxen
119 // GFX10
: tbuffer_store_format_x v0
, v1
, s
[0:3], 0 idxen ; encoding
: [0x00,0x20,0x0c,0xe8,0x01,0x00,0x00,0x80]
120 tbuffer_store_format_x v0
, v1
, s
[0:3], 0 idxen
122 // GFX10
: tbuffer_load_format_d16_x v0
, off
, s
[0:3], s0 ; encoding
: [0x00,0x00,0x08,0xe8,0x00,0x00,0x20,0x00]
123 tbuffer_load_format_d16_x v0
, off
, s
[0:3] s0
126 // GFX10
: tbuffer_store_format_x v0
, v1
, s
[0:3], s0 format
:[BUF_FMT_INVALID
] idxen ; encoding
: [0x00,0x20,0x04,0xe8,0x01,0x00,0x00,0x00]
127 tbuffer_store_format_x v0
, v1
, s
[0:3] format
:0 s0 idxen
129 // GFX10
: tbuffer_store_format_x v0
, v1
, s
[0:3], s0 format
:[BUF_FMT_INVALID
] idxen ; encoding
: [0x00,0x20,0x04,0xe8,0x01,0x00,0x00,0x00]
130 tbuffer_store_format_x v0
, v1
, s
[0:3] format
:0 s0 idxen
132 //===----------------------------------------------------------------------===//
133 // Negative tests for legacy format syntax.
134 //===----------------------------------------------------------------------===//
136 // GFX10-ERR
: :[[@LINE+
1]]:{{[0-9]+}}: error
: out of range format
137 tbuffer_load_format_d16_x v0
, off
, s
[0:3], format
:-1, 0
139 // GFX10-ERR
: :[[@LINE+
1]]:{{[0-9]+}}: error
: out of range format
140 tbuffer_load_format_d16_x v0
, off
, s
[0:3], format
:128, s0
142 // GFX10-ERR
: :[[@LINE+
1]]:{{[0-9]+}}: error
: too few operands for instruction
143 tbuffer_load_format_d16_x v0
, off
, s
[0:3], format
:127
145 // GFX10-ERR
: :[[@LINE+
1]]:{{[0-9]+}}: error
: too few operands for instruction
146 tbuffer_load_format_d16_x v0
, off
, s
[0:3]
148 // GFX10-ERR
: :[[@LINE+
1]]:{{[0-9]+}}: error
: invalid operand for instruction
149 tbuffer_load_format_d16_x v0
, off
, s
[0:3] idxen
151 // GFX10-ERR
: :[[@LINE+
1]]:{{[0-9]+}}: error
: unknown token in expression
152 tbuffer_load_format_d16_x v0
, off
, s
[0:3], format
:1,, s0
154 // GFX10-ERR
: :[[@LINE+
1]]:{{[0-9]+}}: error
: unknown token in expression
155 tbuffer_load_format_d16_x v0
, off
, s
[0:3], format
:1:, s0
157 // GFX10-ERR
: :[[@LINE+
1]]:{{[0-9]+}}: error
: unknown token in expression
158 tbuffer_load_format_d16_x v0
, off
, s
[0:3],, format
:1, s0
160 //===----------------------------------------------------------------------===//
161 // Positive tests for symbolic MTBUF format.
162 //===----------------------------------------------------------------------===//
164 // Format may
be specified in numeric form
(min value
).
165 tbuffer_store_format_xyzw v
[1:4], v1
, s
[4:7], s0 format
:0 idxen
166 // GFX10
: tbuffer_store_format_xyzw v
[1:4], v1
, s
[4:7], s0 format
:[BUF_FMT_INVALID
] idxen ; encoding
: [0x00,0x20,0x07,0xe8,0x01,0x01,0x01,0x00]
168 // Format may
be specified in numeric form
(max value
).
169 tbuffer_store_format_xyzw v
[1:4], v1
, s
[4:7], s0 format
:127 idxen
170 // GFX10
: tbuffer_store_format_xyzw v
[1:4], v1
, s
[4:7], s0 format
:127 idxen ; encoding
: [0x00,0x20,0xff,0xeb,0x01,0x01,0x01,0x00]
172 // Format may
be specified in numeric form
(first unsupported value
).
173 tbuffer_store_format_xyzw v
[1:4], v1
, s
[4:7], s0 format
:78 idxen
174 // GFX10
: tbuffer_store_format_xyzw v
[1:4], v1
, s
[4:7], s0 format
:78 idxen ; encoding
: [0x00,0x20,0x77,0xea,0x01,0x01,0x01,0x00]
176 // Format may
be specified as an expression.
177 tbuffer_store_format_xyzw v
[1:4], v1
, s
[4:7], s0 format
:(2 + 3 * 16) idxen
178 // GFX10
: tbuffer_store_format_xyzw v
[1:4], v1
, s
[4:7], s0 format
:[BUF_FMT_2_10_10_10_UNORM
] idxen ; encoding
: [0x00,0x20,0x97,0xe9,0x01,0x01,0x01,0x00]
180 // format may
be specified as
a list of dfmt
, nfmt
:
181 tbuffer_store_format_xyzw v
[1:4], v1
, s
[4:7], s0 format
:[BUF_DATA_FORMAT_8
,BUF_NUM_FORMAT_UNORM
] idxen
182 // GFX10
: tbuffer_store_format_xyzw v
[1:4], v1
, s
[4:7], s0 idxen ; encoding
: [0x00,0x20,0x0f,0xe8,0x01,0x01,0x01,0x00]
184 // nfmt
and dfmt can
be in either order
:
185 tbuffer_store_format_xyzw v
[1:4], v1
, s
[4:7], s0 format
:[BUF_NUM_FORMAT_SNORM
, BUF_DATA_FORMAT_16
] idxen
186 // GFX10
: tbuffer_store_format_xyzw v
[1:4], v1
, s
[4:7], s0 format
:[BUF_FMT_16_SNORM
] idxen ; encoding
: [0x00,0x20,0x47,0xe8,0x01,0x01,0x01,0x00]
188 // nfmt may
be omitted
:
189 tbuffer_store_format_xyzw v
[1:4], v1
, s
[4:7], s0 format
:[ BUF_DATA_FORMAT_8_8
] idxen
190 // GFX10
: tbuffer_store_format_xyzw v
[1:4], v1
, s
[4:7], s0 format
:[BUF_FMT_8_8_UNORM
] idxen ; encoding
: [0x00,0x20,0x77,0xe8,0x01,0x01,0x01,0x00]
192 // dfmt may
be omitted
:
193 tbuffer_store_format_xyzw v
[1:4], v1
, s
[4:7], s0 format
:[BUF_NUM_FORMAT_USCALED
] idxen
194 // GFX10
: tbuffer_store_format_xyzw v
[1:4], v1
, s
[4:7], s0 format
:[BUF_FMT_8_USCALED
] idxen ; encoding
: [0x00,0x20,0x1f,0xe8,0x01,0x01,0x01,0x00]
196 // Check dfmt formats
197 tbuffer_store_format_xyzw v
[1:4], v1
, s
[4:7], s0 format
:[BUF_DATA_FORMAT_16_16
] idxen
198 // GFX10
: tbuffer_store_format_xyzw v
[1:4], v1
, s
[4:7], s0 format
:[BUF_FMT_16_16_UNORM
] idxen ; encoding
: [0x00,0x20,0xbf,0xe8,0x01,0x01,0x01,0x00]
200 // Check dfmt formats
201 tbuffer_store_format_xyzw v
[1:4], v1
, s
[4:7], s0 format
:[BUF_DATA_FORMAT_10_11_11
] idxen
202 // GFX10
: tbuffer_store_format_xyzw v
[1:4], v1
, s
[4:7], s0 format
:[BUF_FMT_10_11_11_UNORM
] idxen ; encoding
: [0x00,0x20,0xf7,0xe8,0x01,0x01,0x01,0x00]
204 // Check dfmt formats
205 tbuffer_store_format_xyzw v
[1:4], v1
, s
[4:7], s0 format
:[BUF_DATA_FORMAT_11_11_10
] idxen
206 // GFX10
: tbuffer_store_format_xyzw v
[1:4], v1
, s
[4:7], s0 format
:[BUF_FMT_11_11_10_UNORM
] idxen ; encoding
: [0x00,0x20,0x2f,0xe9,0x01,0x01,0x01,0x00]
208 // Check dfmt formats
209 tbuffer_store_format_xyzw v
[1:4], v1
, s
[4:7], s0 format
:[BUF_DATA_FORMAT_10_10_10_2
] idxen
210 // GFX10
: tbuffer_store_format_xyzw v
[1:4], v1
, s
[4:7], s0 format
:[BUF_FMT_10_10_10_2_UNORM
] idxen ; encoding
: [0x00,0x20,0x67,0xe9,0x01,0x01,0x01,0x00]
212 // Check dfmt formats
213 tbuffer_store_format_xyzw v
[1:4], v1
, s
[4:7], s0 format
:[BUF_DATA_FORMAT_2_10_10_10
] idxen
214 // GFX10
: tbuffer_store_format_xyzw v
[1:4], v1
, s
[4:7], s0 format
:[BUF_FMT_2_10_10_10_UNORM
] idxen ; encoding
: [0x00,0x20,0x97,0xe9,0x01,0x01,0x01,0x00]
216 // Check dfmt formats
217 tbuffer_store_format_xyzw v
[1:4], v1
, s
[4:7], s0 format
:[BUF_DATA_FORMAT_8_8_8_8
] idxen
218 // GFX10
: tbuffer_store_format_xyzw v
[1:4], v1
, s
[4:7], s0 format
:[BUF_FMT_8_8_8_8_UNORM
] idxen ; encoding
: [0x00,0x20,0xc7,0xe9,0x01,0x01,0x01,0x00]
220 // Check dfmt formats
221 tbuffer_store_format_xyzw v
[1:4], v1
, s
[4:7], s0 format
:[BUF_DATA_FORMAT_16_16_16_16
] idxen
222 // GFX10
: tbuffer_store_format_xyzw v
[1:4], v1
, s
[4:7], s0 format
:[BUF_FMT_16_16_16_16_UNORM
] idxen ; encoding
: [0x00,0x20,0x0f,0xea,0x01,0x01,0x01,0x00]
224 // Check dfmt formats
225 tbuffer_store_format_xyzw v
[1:4], v1
, s
[4:7], s0 format
:[BUF_DATA_FORMAT_INVALID
] idxen
226 // GFX10
: tbuffer_store_format_xyzw v
[1:4], v1
, s
[4:7], s0 format
:[BUF_FMT_INVALID
] idxen ; encoding
: [0x00,0x20,0x07,0xe8,0x01,0x01,0x01,0x00]
228 // Check nfmt formats
229 tbuffer_store_format_xyzw v
[1:4], v1
, s
[4:7], s0 format
:[BUF_NUM_FORMAT_SSCALED
] idxen
230 // GFX10
: tbuffer_store_format_xyzw v
[1:4], v1
, s
[4:7], s0 format
:[BUF_FMT_8_SSCALED
] idxen ; encoding
: [0x00,0x20,0x27,0xe8,0x01,0x01,0x01,0x00]
232 // Check nfmt formats
233 tbuffer_store_format_xyzw v
[1:4], v1
, s
[4:7], s0 format
:[BUF_NUM_FORMAT_UINT
] idxen
234 // GFX10
: tbuffer_store_format_xyzw v
[1:4], v1
, s
[4:7], s0 format
:[BUF_FMT_8_UINT
] idxen ; encoding
: [0x00,0x20,0x2f,0xe8,0x01,0x01,0x01,0x00]
236 // Check nfmt formats
237 tbuffer_store_format_xyzw v
[1:4], v1
, s
[4:7], s0 format
:[BUF_NUM_FORMAT_SINT
] idxen
238 // GFX10
: tbuffer_store_format_xyzw v
[1:4], v1
, s
[4:7], s0 format
:[BUF_FMT_8_SINT
] idxen ; encoding
: [0x00,0x20,0x37,0xe8,0x01,0x01,0x01,0x00]
240 //===----------------------------------------------------------------------===//
241 // Negative tests for symbolic format errors handling.
242 //===----------------------------------------------------------------------===//
244 // Unknown format specifier
245 tbuffer_store_format_xyzw v
[1:4], v1
, s
[4:7], s0 format
:[BUF_DATA_FORMAT
] idxen
246 // GFX10-ERR
: :[[@LINE-
1]]:{{[0-9]+}}: error
: unsupported format
248 // Valid but unsupported format specifier
(SNORM_OGL is supported for SI
/CI only
)
249 tbuffer_store_format_xyzw v
[1:4], v1
, s
[4:7], s0 format
:[BUF_NUM_FORMAT_SNORM_OGL
] idxen
250 // GFX10-ERR
: :[[@LINE-
1]]:{{[0-9]+}}: error
: unsupported format
252 // Valid but unsupported format specifier
(RESERVED_6 is supported for VI
/GFX9 only
)
253 tbuffer_store_format_xyzw v
[1:4], v1
, s
[4:7], s0 format
:[BUF_NUM_FORMAT_RESERVED_6
] idxen
254 // GFX10-ERR
: :[[@LINE-
1]]:{{[0-9]+}}: error
: unsupported format
256 // Unsupported format
257 tbuffer_store_format_xyzw v
[1:4], v1
, s
[4:7], s0 format
:[BUF_DATA_FORMAT_32
] idxen
258 // GFX10-ERR
: :[[@LINE-
1]]:{{[0-9]+}}: error
: unsupported format
260 // Unsupported format
261 tbuffer_store_format_xyzw v
[1:4], v1
, s
[4:7], s0 format
:[BUF_DATA_FORMAT_32_32
] idxen
262 // GFX10-ERR
: :[[@LINE-
1]]:{{[0-9]+}}: error
: unsupported format
264 // Unsupported format
265 tbuffer_store_format_xyzw v
[1:4], v1
, s
[4:7], s0 format
:[BUF_DATA_FORMAT_32_32_32
] idxen
266 // GFX10-ERR
: :[[@LINE-
1]]:{{[0-9]+}}: error
: unsupported format
268 // Unsupported format
269 tbuffer_store_format_xyzw v
[1:4], v1
, s
[4:7], s0 format
:[BUF_DATA_FORMAT_32_32_32_32
] idxen
270 // GFX10-ERR
: :[[@LINE-
1]]:{{[0-9]+}}: error
: unsupported format
272 // Unsupported format
273 tbuffer_store_format_xyzw v
[1:4], v1
, s
[4:7], s0 format
:[BUF_DATA_FORMAT_32_32_32_32
, BUF_NUM_FORMAT_UNORM
] idxen
274 // GFX10-ERR
: :[[@LINE-
1]]:{{[0-9]+}}: error
: unsupported format
276 // Unsupported format
277 tbuffer_store_format_xyzw v
[1:4], v1
, s
[4:7], s0 format
:[BUF_DATA_FORMAT_RESERVED_15
] idxen
278 // GFX10-ERR
: :[[@LINE-
1]]:{{[0-9]+}}: error
: unsupported format
280 // Unsupported format
281 tbuffer_store_format_xyzw v
[1:4], v1
, s
[4:7], s0 format
:[BUF_NUM_FORMAT_FLOAT
] idxen
282 // GFX10-ERR
: :[[@LINE-
1]]:{{[0-9]+}}: error
: unsupported format
284 // Unsupported format
285 tbuffer_store_format_xyzw v
[1:4], v1
, s
[4:7], s0 format
:[BUF_DATA_FORMAT_8_8
, BUF_NUM_FORMAT_FLOAT
] idxen
286 // GFX10-ERR
: :[[@LINE-
1]]:{{[0-9]+}}: error
: unsupported format
288 //===----------------------------------------------------------------------===//
289 // Positive tests for unified MTBUF format
(GFX10+
).
290 //===----------------------------------------------------------------------===//
292 tbuffer_store_format_xyzw v
[1:4], v1
, s
[4:7], s0 format
:[BUF_FMT_INVALID
] idxen
293 // GFX10
: tbuffer_store_format_xyzw v
[1:4], v1
, s
[4:7], s0 format
:[BUF_FMT_INVALID
] idxen ; encoding
: [0x00,0x20,0x07,0xe8,0x01,0x01,0x01,0x00]
295 tbuffer_store_format_xyzw v
[1:4], v1
, s
[4:7], s0 format
:[BUF_FMT_8_UNORM
] idxen
296 // GFX10
: tbuffer_store_format_xyzw v
[1:4], v1
, s
[4:7], s0 idxen ; encoding
: [0x00,0x20,0x0f,0xe8,0x01,0x01,0x01,0x00]
298 tbuffer_store_format_xyzw v
[1:4], v1
, s
[4:7], s0 format
:[BUF_FMT_8_SNORM
] idxen
299 // GFX10
: tbuffer_store_format_xyzw v
[1:4], v1
, s
[4:7], s0 format
:[BUF_FMT_8_SNORM
] idxen ; encoding
: [0x00,0x20,0x17,0xe8,0x01,0x01,0x01,0x00]
301 tbuffer_store_format_xyzw v
[1:4], v1
, s
[4:7], s0 format
:[BUF_FMT_8_USCALED
] idxen
302 // GFX10
: tbuffer_store_format_xyzw v
[1:4], v1
, s
[4:7], s0 format
:[BUF_FMT_8_USCALED
] idxen ; encoding
: [0x00,0x20,0x1f,0xe8,0x01,0x01,0x01,0x00]
304 tbuffer_store_format_xyzw v
[1:4], v1
, s
[4:7], s0 format
:[BUF_FMT_8_SSCALED
] idxen
305 // GFX10
: tbuffer_store_format_xyzw v
[1:4], v1
, s
[4:7], s0 format
:[BUF_FMT_8_SSCALED
] idxen ; encoding
: [0x00,0x20,0x27,0xe8,0x01,0x01,0x01,0x00]
307 tbuffer_store_format_xyzw v
[1:4], v1
, s
[4:7], s0 format
:[BUF_FMT_8_UINT
] idxen
308 // GFX10
: tbuffer_store_format_xyzw v
[1:4], v1
, s
[4:7], s0 format
:[BUF_FMT_8_UINT
] idxen ; encoding
: [0x00,0x20,0x2f,0xe8,0x01,0x01,0x01,0x00]
310 tbuffer_store_format_xyzw v
[1:4], v1
, s
[4:7], s0 format
:[BUF_FMT_8_SINT
] idxen
311 // GFX10
: tbuffer_store_format_xyzw v
[1:4], v1
, s
[4:7], s0 format
:[BUF_FMT_8_SINT
] idxen ; encoding
: [0x00,0x20,0x37,0xe8,0x01,0x01,0x01,0x00]
313 tbuffer_store_format_xyzw v
[1:4], v1
, s
[4:7], s0 format
:[BUF_FMT_16_UNORM
] idxen
314 // GFX10
: tbuffer_store_format_xyzw v
[1:4], v1
, s
[4:7], s0 format
:[BUF_FMT_16_UNORM
] idxen ; encoding
: [0x00,0x20,0x3f,0xe8,0x01,0x01,0x01,0x00]
316 tbuffer_store_format_xyzw v
[1:4], v1
, s
[4:7], s0 format
:[BUF_FMT_16_SNORM
] idxen
317 // GFX10
: tbuffer_store_format_xyzw v
[1:4], v1
, s
[4:7], s0 format
:[BUF_FMT_16_SNORM
] idxen ; encoding
: [0x00,0x20,0x47,0xe8,0x01,0x01,0x01,0x00]
319 tbuffer_store_format_xyzw v
[1:4], v1
, s
[4:7], s0 format
:[BUF_FMT_16_USCALED
] idxen
320 // GFX10
: tbuffer_store_format_xyzw v
[1:4], v1
, s
[4:7], s0 format
:[BUF_FMT_16_USCALED
] idxen ; encoding
: [0x00,0x20,0x4f,0xe8,0x01,0x01,0x01,0x00]
322 tbuffer_store_format_xyzw v
[1:4], v1
, s
[4:7], s0 format
:[BUF_FMT_16_SSCALED
] idxen
323 // GFX10
: tbuffer_store_format_xyzw v
[1:4], v1
, s
[4:7], s0 format
:[BUF_FMT_16_SSCALED
] idxen ; encoding
: [0x00,0x20,0x57,0xe8,0x01,0x01,0x01,0x00]
325 tbuffer_store_format_xyzw v
[1:4], v1
, s
[4:7], s0 format
:[BUF_FMT_16_UINT
] idxen
326 // GFX10
: tbuffer_store_format_xyzw v
[1:4], v1
, s
[4:7], s0 format
:[BUF_FMT_16_UINT
] idxen ; encoding
: [0x00,0x20,0x5f,0xe8,0x01,0x01,0x01,0x00]
328 tbuffer_store_format_xyzw v
[1:4], v1
, s
[4:7], s0 format
:[BUF_FMT_16_SINT
] idxen
329 // GFX10
: tbuffer_store_format_xyzw v
[1:4], v1
, s
[4:7], s0 format
:[BUF_FMT_16_SINT
] idxen ; encoding
: [0x00,0x20,0x67,0xe8,0x01,0x01,0x01,0x00]
331 tbuffer_store_format_xyzw v
[1:4], v1
, s
[4:7], s0 format
:[BUF_FMT_16_FLOAT
] idxen
332 // GFX10
: tbuffer_store_format_xyzw v
[1:4], v1
, s
[4:7], s0 format
:[BUF_FMT_16_FLOAT
] idxen ; encoding
: [0x00,0x20,0x6f,0xe8,0x01,0x01,0x01,0x00]
334 tbuffer_store_format_xyzw v
[1:4], v1
, s
[4:7], s0 format
:[BUF_FMT_8_8_UNORM
] idxen
335 // GFX10
: tbuffer_store_format_xyzw v
[1:4], v1
, s
[4:7], s0 format
:[BUF_FMT_8_8_UNORM
] idxen ; encoding
: [0x00,0x20,0x77,0xe8,0x01,0x01,0x01,0x00]
337 tbuffer_store_format_xyzw v
[1:4], v1
, s
[4:7], s0 format
:[BUF_FMT_8_8_SNORM
] idxen
338 // GFX10
: tbuffer_store_format_xyzw v
[1:4], v1
, s
[4:7], s0 format
:[BUF_FMT_8_8_SNORM
] idxen ; encoding
: [0x00,0x20,0x7f,0xe8,0x01,0x01,0x01,0x00]
340 tbuffer_store_format_xyzw v
[1:4], v1
, s
[4:7], s0 format
:[BUF_FMT_8_8_USCALED
] idxen
341 // GFX10
: tbuffer_store_format_xyzw v
[1:4], v1
, s
[4:7], s0 format
:[BUF_FMT_8_8_USCALED
] idxen ; encoding
: [0x00,0x20,0x87,0xe8,0x01,0x01,0x01,0x00]
343 tbuffer_store_format_xyzw v
[1:4], v1
, s
[4:7], s0 format
:[BUF_FMT_8_8_SSCALED
] idxen
344 // GFX10
: tbuffer_store_format_xyzw v
[1:4], v1
, s
[4:7], s0 format
:[BUF_FMT_8_8_SSCALED
] idxen ; encoding
: [0x00,0x20,0x8f,0xe8,0x01,0x01,0x01,0x00]
346 tbuffer_store_format_xyzw v
[1:4], v1
, s
[4:7], s0 format
:[BUF_FMT_8_8_UINT
] idxen
347 // GFX10
: tbuffer_store_format_xyzw v
[1:4], v1
, s
[4:7], s0 format
:[BUF_FMT_8_8_UINT
] idxen ; encoding
: [0x00,0x20,0x97,0xe8,0x01,0x01,0x01,0x00]
349 tbuffer_store_format_xyzw v
[1:4], v1
, s
[4:7], s0 format
:[BUF_FMT_8_8_SINT
] idxen
350 // GFX10
: tbuffer_store_format_xyzw v
[1:4], v1
, s
[4:7], s0 format
:[BUF_FMT_8_8_SINT
] idxen ; encoding
: [0x00,0x20,0x9f,0xe8,0x01,0x01,0x01,0x00]
352 tbuffer_store_format_xyzw v
[1:4], v1
, s
[4:7], s0 format
:[BUF_FMT_32_UINT
] idxen
353 // GFX10
: tbuffer_store_format_xyzw v
[1:4], v1
, s
[4:7], s0 format
:[BUF_FMT_32_UINT
] idxen ; encoding
: [0x00,0x20,0xa7,0xe8,0x01,0x01,0x01,0x00]
355 tbuffer_store_format_xyzw v
[1:4], v1
, s
[4:7], s0 format
:[BUF_FMT_32_SINT
] idxen
356 // GFX10
: tbuffer_store_format_xyzw v
[1:4], v1
, s
[4:7], s0 format
:[BUF_FMT_32_SINT
] idxen ; encoding
: [0x00,0x20,0xaf,0xe8,0x01,0x01,0x01,0x00]
358 tbuffer_store_format_xyzw v
[1:4], v1
, s
[4:7], s0 format
:[BUF_FMT_32_FLOAT
] idxen
359 // GFX10
: tbuffer_store_format_xyzw v
[1:4], v1
, s
[4:7], s0 format
:[BUF_FMT_32_FLOAT
] idxen ; encoding
: [0x00,0x20,0xb7,0xe8,0x01,0x01,0x01,0x00]
361 tbuffer_store_format_xyzw v
[1:4], v1
, s
[4:7], s0 format
:[BUF_FMT_16_16_UNORM
] idxen
362 // GFX10
: tbuffer_store_format_xyzw v
[1:4], v1
, s
[4:7], s0 format
:[BUF_FMT_16_16_UNORM
] idxen ; encoding
: [0x00,0x20,0xbf,0xe8,0x01,0x01,0x01,0x00]
364 tbuffer_store_format_xyzw v
[1:4], v1
, s
[4:7], s0 format
:[BUF_FMT_16_16_SNORM
] idxen
365 // GFX10
: tbuffer_store_format_xyzw v
[1:4], v1
, s
[4:7], s0 format
:[BUF_FMT_16_16_SNORM
] idxen ; encoding
: [0x00,0x20,0xc7,0xe8,0x01,0x01,0x01,0x00]
367 tbuffer_store_format_xyzw v
[1:4], v1
, s
[4:7], s0 format
:[BUF_FMT_16_16_USCALED
] idxen
368 // GFX10
: tbuffer_store_format_xyzw v
[1:4], v1
, s
[4:7], s0 format
:[BUF_FMT_16_16_USCALED
] idxen ; encoding
: [0x00,0x20,0xcf,0xe8,0x01,0x01,0x01,0x00]
370 tbuffer_store_format_xyzw v
[1:4], v1
, s
[4:7], s0 format
:[BUF_FMT_16_16_SSCALED
] idxen
371 // GFX10
: tbuffer_store_format_xyzw v
[1:4], v1
, s
[4:7], s0 format
:[BUF_FMT_16_16_SSCALED
] idxen ; encoding
: [0x00,0x20,0xd7,0xe8,0x01,0x01,0x01,0x00]
373 tbuffer_store_format_xyzw v
[1:4], v1
, s
[4:7], s0 format
:[BUF_FMT_16_16_UINT
] idxen
374 // GFX10
: tbuffer_store_format_xyzw v
[1:4], v1
, s
[4:7], s0 format
:[BUF_FMT_16_16_UINT
] idxen ; encoding
: [0x00,0x20,0xdf,0xe8,0x01,0x01,0x01,0x00]
376 tbuffer_store_format_xyzw v
[1:4], v1
, s
[4:7], s0 format
:[BUF_FMT_16_16_SINT
] idxen
377 // GFX10
: tbuffer_store_format_xyzw v
[1:4], v1
, s
[4:7], s0 format
:[BUF_FMT_16_16_SINT
] idxen ; encoding
: [0x00,0x20,0xe7,0xe8,0x01,0x01,0x01,0x00]
379 tbuffer_store_format_xyzw v
[1:4], v1
, s
[4:7], s0 format
:[BUF_FMT_16_16_FLOAT
] idxen
380 // GFX10
: tbuffer_store_format_xyzw v
[1:4], v1
, s
[4:7], s0 format
:[BUF_FMT_16_16_FLOAT
] idxen ; encoding
: [0x00,0x20,0xef,0xe8,0x01,0x01,0x01,0x00]
382 tbuffer_store_format_xyzw v
[1:4], v1
, s
[4:7], s0 format
:[BUF_FMT_10_11_11_UNORM
] idxen
383 // GFX10
: tbuffer_store_format_xyzw v
[1:4], v1
, s
[4:7], s0 format
:[BUF_FMT_10_11_11_UNORM
] idxen ; encoding
: [0x00,0x20,0xf7,0xe8,0x01,0x01,0x01,0x00]
385 tbuffer_store_format_xyzw v
[1:4], v1
, s
[4:7], s0 format
:[BUF_FMT_10_11_11_SNORM
] idxen
386 // GFX10
: tbuffer_store_format_xyzw v
[1:4], v1
, s
[4:7], s0 format
:[BUF_FMT_10_11_11_SNORM
] idxen ; encoding
: [0x00,0x20,0xff,0xe8,0x01,0x01,0x01,0x00]
388 tbuffer_store_format_xyzw v
[1:4], v1
, s
[4:7], s0 format
:[BUF_FMT_10_11_11_USCALED
] idxen
389 // GFX10
: tbuffer_store_format_xyzw v
[1:4], v1
, s
[4:7], s0 format
:[BUF_FMT_10_11_11_USCALED
] idxen ; encoding
: [0x00,0x20,0x07,0xe9,0x01,0x01,0x01,0x00]
391 tbuffer_store_format_xyzw v
[1:4], v1
, s
[4:7], s0 format
:[BUF_FMT_10_11_11_SSCALED
] idxen
392 // GFX10
: tbuffer_store_format_xyzw v
[1:4], v1
, s
[4:7], s0 format
:[BUF_FMT_10_11_11_SSCALED
] idxen ; encoding
: [0x00,0x20,0x0f,0xe9,0x01,0x01,0x01,0x00]
394 tbuffer_store_format_xyzw v
[1:4], v1
, s
[4:7], s0 format
:[BUF_FMT_10_11_11_UINT
] idxen
395 // GFX10
: tbuffer_store_format_xyzw v
[1:4], v1
, s
[4:7], s0 format
:[BUF_FMT_10_11_11_UINT
] idxen ; encoding
: [0x00,0x20,0x17,0xe9,0x01,0x01,0x01,0x00]
397 tbuffer_store_format_xyzw v
[1:4], v1
, s
[4:7], s0 format
:[BUF_FMT_10_11_11_SINT
] idxen
398 // GFX10
: tbuffer_store_format_xyzw v
[1:4], v1
, s
[4:7], s0 format
:[BUF_FMT_10_11_11_SINT
] idxen ; encoding
: [0x00,0x20,0x1f,0xe9,0x01,0x01,0x01,0x00]
400 tbuffer_store_format_xyzw v
[1:4], v1
, s
[4:7], s0 format
:[BUF_FMT_10_11_11_FLOAT
] idxen
401 // GFX10
: tbuffer_store_format_xyzw v
[1:4], v1
, s
[4:7], s0 format
:[BUF_FMT_10_11_11_FLOAT
] idxen ; encoding
: [0x00,0x20,0x27,0xe9,0x01,0x01,0x01,0x00]
403 tbuffer_store_format_xyzw v
[1:4], v1
, s
[4:7], s0 format
:[BUF_FMT_11_11_10_UNORM
] idxen
404 // GFX10
: tbuffer_store_format_xyzw v
[1:4], v1
, s
[4:7], s0 format
:[BUF_FMT_11_11_10_UNORM
] idxen ; encoding
: [0x00,0x20,0x2f,0xe9,0x01,0x01,0x01,0x00]
406 tbuffer_store_format_xyzw v
[1:4], v1
, s
[4:7], s0 format
:[BUF_FMT_11_11_10_SNORM
] idxen
407 // GFX10
: tbuffer_store_format_xyzw v
[1:4], v1
, s
[4:7], s0 format
:[BUF_FMT_11_11_10_SNORM
] idxen ; encoding
: [0x00,0x20,0x37,0xe9,0x01,0x01,0x01,0x00]
409 tbuffer_store_format_xyzw v
[1:4], v1
, s
[4:7], s0 format
:[BUF_FMT_11_11_10_USCALED
] idxen
410 // GFX10
: tbuffer_store_format_xyzw v
[1:4], v1
, s
[4:7], s0 format
:[BUF_FMT_11_11_10_USCALED
] idxen ; encoding
: [0x00,0x20,0x3f,0xe9,0x01,0x01,0x01,0x00]
412 tbuffer_store_format_xyzw v
[1:4], v1
, s
[4:7], s0 format
:[BUF_FMT_11_11_10_SSCALED
] idxen
413 // GFX10
: tbuffer_store_format_xyzw v
[1:4], v1
, s
[4:7], s0 format
:[BUF_FMT_11_11_10_SSCALED
] idxen ; encoding
: [0x00,0x20,0x47,0xe9,0x01,0x01,0x01,0x00]
415 tbuffer_store_format_xyzw v
[1:4], v1
, s
[4:7], s0 format
:[BUF_FMT_11_11_10_UINT
] idxen
416 // GFX10
: tbuffer_store_format_xyzw v
[1:4], v1
, s
[4:7], s0 format
:[BUF_FMT_11_11_10_UINT
] idxen ; encoding
: [0x00,0x20,0x4f,0xe9,0x01,0x01,0x01,0x00]
418 tbuffer_store_format_xyzw v
[1:4], v1
, s
[4:7], s0 format
:[BUF_FMT_11_11_10_SINT
] idxen
419 // GFX10
: tbuffer_store_format_xyzw v
[1:4], v1
, s
[4:7], s0 format
:[BUF_FMT_11_11_10_SINT
] idxen ; encoding
: [0x00,0x20,0x57,0xe9,0x01,0x01,0x01,0x00]
421 tbuffer_store_format_xyzw v
[1:4], v1
, s
[4:7], s0 format
:[BUF_FMT_11_11_10_FLOAT
] idxen
422 // GFX10
: tbuffer_store_format_xyzw v
[1:4], v1
, s
[4:7], s0 format
:[BUF_FMT_11_11_10_FLOAT
] idxen ; encoding
: [0x00,0x20,0x5f,0xe9,0x01,0x01,0x01,0x00]
424 tbuffer_store_format_xyzw v
[1:4], v1
, s
[4:7], s0 format
:[BUF_FMT_10_10_10_2_UNORM
] idxen
425 // GFX10
: tbuffer_store_format_xyzw v
[1:4], v1
, s
[4:7], s0 format
:[BUF_FMT_10_10_10_2_UNORM
] idxen ; encoding
: [0x00,0x20,0x67,0xe9,0x01,0x01,0x01,0x00]
427 tbuffer_store_format_xyzw v
[1:4], v1
, s
[4:7], s0 format
:[BUF_FMT_10_10_10_2_SNORM
] idxen
428 // GFX10
: tbuffer_store_format_xyzw v
[1:4], v1
, s
[4:7], s0 format
:[BUF_FMT_10_10_10_2_SNORM
] idxen ; encoding
: [0x00,0x20,0x6f,0xe9,0x01,0x01,0x01,0x00]
430 tbuffer_store_format_xyzw v
[1:4], v1
, s
[4:7], s0 format
:[BUF_FMT_10_10_10_2_USCALED
] idxen
431 // GFX10
: tbuffer_store_format_xyzw v
[1:4], v1
, s
[4:7], s0 format
:[BUF_FMT_10_10_10_2_USCALED
] idxen ; encoding
: [0x00,0x20,0x77,0xe9,0x01,0x01,0x01,0x00]
433 tbuffer_store_format_xyzw v
[1:4], v1
, s
[4:7], s0 format
:[BUF_FMT_10_10_10_2_SSCALED
] idxen
434 // GFX10
: tbuffer_store_format_xyzw v
[1:4], v1
, s
[4:7], s0 format
:[BUF_FMT_10_10_10_2_SSCALED
] idxen ; encoding
: [0x00,0x20,0x7f,0xe9,0x01,0x01,0x01,0x00]
436 tbuffer_store_format_xyzw v
[1:4], v1
, s
[4:7], s0 format
:[BUF_FMT_10_10_10_2_UINT
] idxen
437 // GFX10
: tbuffer_store_format_xyzw v
[1:4], v1
, s
[4:7], s0 format
:[BUF_FMT_10_10_10_2_UINT
] idxen ; encoding
: [0x00,0x20,0x87,0xe9,0x01,0x01,0x01,0x00]
439 tbuffer_store_format_xyzw v
[1:4], v1
, s
[4:7], s0 format
:[BUF_FMT_10_10_10_2_SINT
] idxen
440 // GFX10
: tbuffer_store_format_xyzw v
[1:4], v1
, s
[4:7], s0 format
:[BUF_FMT_10_10_10_2_SINT
] idxen ; encoding
: [0x00,0x20,0x8f,0xe9,0x01,0x01,0x01,0x00]
442 tbuffer_store_format_xyzw v
[1:4], v1
, s
[4:7], s0 format
:[BUF_FMT_2_10_10_10_UNORM
] idxen
443 // GFX10
: tbuffer_store_format_xyzw v
[1:4], v1
, s
[4:7], s0 format
:[BUF_FMT_2_10_10_10_UNORM
] idxen ; encoding
: [0x00,0x20,0x97,0xe9,0x01,0x01,0x01,0x00]
445 tbuffer_store_format_xyzw v
[1:4], v1
, s
[4:7], s0 format
:[BUF_FMT_2_10_10_10_SNORM
] idxen
446 // GFX10
: tbuffer_store_format_xyzw v
[1:4], v1
, s
[4:7], s0 format
:[BUF_FMT_2_10_10_10_SNORM
] idxen ; encoding
: [0x00,0x20,0x9f,0xe9,0x01,0x01,0x01,0x00]
448 tbuffer_store_format_xyzw v
[1:4], v1
, s
[4:7], s0 format
:[BUF_FMT_2_10_10_10_USCALED
] idxen
449 // GFX10
: tbuffer_store_format_xyzw v
[1:4], v1
, s
[4:7], s0 format
:[BUF_FMT_2_10_10_10_USCALED
] idxen ; encoding
: [0x00,0x20,0xa7,0xe9,0x01,0x01,0x01,0x00]
451 tbuffer_store_format_xyzw v
[1:4], v1
, s
[4:7], s0 format
:[BUF_FMT_2_10_10_10_SSCALED
] idxen
452 // GFX10
: tbuffer_store_format_xyzw v
[1:4], v1
, s
[4:7], s0 format
:[BUF_FMT_2_10_10_10_SSCALED
] idxen ; encoding
: [0x00,0x20,0xaf,0xe9,0x01,0x01,0x01,0x00]
454 tbuffer_store_format_xyzw v
[1:4], v1
, s
[4:7], s0 format
:[BUF_FMT_2_10_10_10_UINT
] idxen
455 // GFX10
: tbuffer_store_format_xyzw v
[1:4], v1
, s
[4:7], s0 format
:[BUF_FMT_2_10_10_10_UINT
] idxen ; encoding
: [0x00,0x20,0xb7,0xe9,0x01,0x01,0x01,0x00]
457 tbuffer_store_format_xyzw v
[1:4], v1
, s
[4:7], s0 format
:[BUF_FMT_2_10_10_10_SINT
] idxen
458 // GFX10
: tbuffer_store_format_xyzw v
[1:4], v1
, s
[4:7], s0 format
:[BUF_FMT_2_10_10_10_SINT
] idxen ; encoding
: [0x00,0x20,0xbf,0xe9,0x01,0x01,0x01,0x00]
460 tbuffer_store_format_xyzw v
[1:4], v1
, s
[4:7], s0 format
:[BUF_FMT_8_8_8_8_UNORM
] idxen
461 // GFX10
: tbuffer_store_format_xyzw v
[1:4], v1
, s
[4:7], s0 format
:[BUF_FMT_8_8_8_8_UNORM
] idxen ; encoding
: [0x00,0x20,0xc7,0xe9,0x01,0x01,0x01,0x00]
463 tbuffer_store_format_xyzw v
[1:4], v1
, s
[4:7], s0 format
:[BUF_FMT_8_8_8_8_SNORM
] idxen
464 // GFX10
: tbuffer_store_format_xyzw v
[1:4], v1
, s
[4:7], s0 format
:[BUF_FMT_8_8_8_8_SNORM
] idxen ; encoding
: [0x00,0x20,0xcf,0xe9,0x01,0x01,0x01,0x00]
466 tbuffer_store_format_xyzw v
[1:4], v1
, s
[4:7], s0 format
:[BUF_FMT_8_8_8_8_USCALED
] idxen
467 // GFX10
: tbuffer_store_format_xyzw v
[1:4], v1
, s
[4:7], s0 format
:[BUF_FMT_8_8_8_8_USCALED
] idxen ; encoding
: [0x00,0x20,0xd7,0xe9,0x01,0x01,0x01,0x00]
469 tbuffer_store_format_xyzw v
[1:4], v1
, s
[4:7], s0 format
:[BUF_FMT_8_8_8_8_SSCALED
] idxen
470 // GFX10
: tbuffer_store_format_xyzw v
[1:4], v1
, s
[4:7], s0 format
:[BUF_FMT_8_8_8_8_SSCALED
] idxen ; encoding
: [0x00,0x20,0xdf,0xe9,0x01,0x01,0x01,0x00]
472 tbuffer_store_format_xyzw v
[1:4], v1
, s
[4:7], s0 format
:[BUF_FMT_8_8_8_8_UINT
] idxen
473 // GFX10
: tbuffer_store_format_xyzw v
[1:4], v1
, s
[4:7], s0 format
:[BUF_FMT_8_8_8_8_UINT
] idxen ; encoding
: [0x00,0x20,0xe7,0xe9,0x01,0x01,0x01,0x00]
475 tbuffer_store_format_xyzw v
[1:4], v1
, s
[4:7], s0 format
:[BUF_FMT_8_8_8_8_SINT
] idxen
476 // GFX10
: tbuffer_store_format_xyzw v
[1:4], v1
, s
[4:7], s0 format
:[BUF_FMT_8_8_8_8_SINT
] idxen ; encoding
: [0x00,0x20,0xef,0xe9,0x01,0x01,0x01,0x00]
478 tbuffer_store_format_xyzw v
[1:4], v1
, s
[4:7], s0 format
:[BUF_FMT_32_32_UINT
] idxen
479 // GFX10
: tbuffer_store_format_xyzw v
[1:4], v1
, s
[4:7], s0 format
:[BUF_FMT_32_32_UINT
] idxen ; encoding
: [0x00,0x20,0xf7,0xe9,0x01,0x01,0x01,0x00]
481 tbuffer_store_format_xyzw v
[1:4], v1
, s
[4:7], s0 format
:[BUF_FMT_32_32_SINT
] idxen
482 // GFX10
: tbuffer_store_format_xyzw v
[1:4], v1
, s
[4:7], s0 format
:[BUF_FMT_32_32_SINT
] idxen ; encoding
: [0x00,0x20,0xff,0xe9,0x01,0x01,0x01,0x00]
484 tbuffer_store_format_xyzw v
[1:4], v1
, s
[4:7], s0 format
:[BUF_FMT_32_32_FLOAT
] idxen
485 // GFX10
: tbuffer_store_format_xyzw v
[1:4], v1
, s
[4:7], s0 format
:[BUF_FMT_32_32_FLOAT
] idxen ; encoding
: [0x00,0x20,0x07,0xea,0x01,0x01,0x01,0x00]
487 tbuffer_store_format_xyzw v
[1:4], v1
, s
[4:7], s0 format
:[BUF_FMT_16_16_16_16_UNORM
] idxen
488 // GFX10
: tbuffer_store_format_xyzw v
[1:4], v1
, s
[4:7], s0 format
:[BUF_FMT_16_16_16_16_UNORM
] idxen ; encoding
: [0x00,0x20,0x0f,0xea,0x01,0x01,0x01,0x00]
490 tbuffer_store_format_xyzw v
[1:4], v1
, s
[4:7], s0 format
:[BUF_FMT_16_16_16_16_SNORM
] idxen
491 // GFX10
: tbuffer_store_format_xyzw v
[1:4], v1
, s
[4:7], s0 format
:[BUF_FMT_16_16_16_16_SNORM
] idxen ; encoding
: [0x00,0x20,0x17,0xea,0x01,0x01,0x01,0x00]
493 tbuffer_store_format_xyzw v
[1:4], v1
, s
[4:7], s0 format
:[BUF_FMT_16_16_16_16_USCALED
] idxen
494 // GFX10
: tbuffer_store_format_xyzw v
[1:4], v1
, s
[4:7], s0 format
:[BUF_FMT_16_16_16_16_USCALED
] idxen ; encoding
: [0x00,0x20,0x1f,0xea,0x01,0x01,0x01,0x00]
496 tbuffer_store_format_xyzw v
[1:4], v1
, s
[4:7], s0 format
:[BUF_FMT_16_16_16_16_SSCALED
] idxen
497 // GFX10
: tbuffer_store_format_xyzw v
[1:4], v1
, s
[4:7], s0 format
:[BUF_FMT_16_16_16_16_SSCALED
] idxen ; encoding
: [0x00,0x20,0x27,0xea,0x01,0x01,0x01,0x00]
499 tbuffer_store_format_xyzw v
[1:4], v1
, s
[4:7], s0 format
:[BUF_FMT_16_16_16_16_UINT
] idxen
500 // GFX10
: tbuffer_store_format_xyzw v
[1:4], v1
, s
[4:7], s0 format
:[BUF_FMT_16_16_16_16_UINT
] idxen ; encoding
: [0x00,0x20,0x2f,0xea,0x01,0x01,0x01,0x00]
502 tbuffer_store_format_xyzw v
[1:4], v1
, s
[4:7], s0 format
:[BUF_FMT_16_16_16_16_SINT
] idxen
503 // GFX10
: tbuffer_store_format_xyzw v
[1:4], v1
, s
[4:7], s0 format
:[BUF_FMT_16_16_16_16_SINT
] idxen ; encoding
: [0x00,0x20,0x37,0xea,0x01,0x01,0x01,0x00]
505 tbuffer_store_format_xyzw v
[1:4], v1
, s
[4:7], s0 format
:[BUF_FMT_16_16_16_16_FLOAT
] idxen
506 // GFX10
: tbuffer_store_format_xyzw v
[1:4], v1
, s
[4:7], s0 format
:[BUF_FMT_16_16_16_16_FLOAT
] idxen ; encoding
: [0x00,0x20,0x3f,0xea,0x01,0x01,0x01,0x00]
508 tbuffer_store_format_xyzw v
[1:4], v1
, s
[4:7], s0 format
:[BUF_FMT_32_32_32_UINT
] idxen
509 // GFX10
: tbuffer_store_format_xyzw v
[1:4], v1
, s
[4:7], s0 format
:[BUF_FMT_32_32_32_UINT
] idxen ; encoding
: [0x00,0x20,0x47,0xea,0x01,0x01,0x01,0x00]
511 tbuffer_store_format_xyzw v
[1:4], v1
, s
[4:7], s0 format
:[BUF_FMT_32_32_32_SINT
] idxen
512 // GFX10
: tbuffer_store_format_xyzw v
[1:4], v1
, s
[4:7], s0 format
:[BUF_FMT_32_32_32_SINT
] idxen ; encoding
: [0x00,0x20,0x4f,0xea,0x01,0x01,0x01,0x00]
514 tbuffer_store_format_xyzw v
[1:4], v1
, s
[4:7], s0 format
:[BUF_FMT_32_32_32_FLOAT
] idxen
515 // GFX10
: tbuffer_store_format_xyzw v
[1:4], v1
, s
[4:7], s0 format
:[BUF_FMT_32_32_32_FLOAT
] idxen ; encoding
: [0x00,0x20,0x57,0xea,0x01,0x01,0x01,0x00]
517 tbuffer_store_format_xyzw v
[1:4], v1
, s
[4:7], s0 format
:[BUF_FMT_32_32_32_32_UINT
] idxen
518 // GFX10
: tbuffer_store_format_xyzw v
[1:4], v1
, s
[4:7], s0 format
:[BUF_FMT_32_32_32_32_UINT
] idxen ; encoding
: [0x00,0x20,0x5f,0xea,0x01,0x01,0x01,0x00]
520 tbuffer_store_format_xyzw v
[1:4], v1
, s
[4:7], s0 format
:[BUF_FMT_32_32_32_32_SINT
] idxen
521 // GFX10
: tbuffer_store_format_xyzw v
[1:4], v1
, s
[4:7], s0 format
:[BUF_FMT_32_32_32_32_SINT
] idxen ; encoding
: [0x00,0x20,0x67,0xea,0x01,0x01,0x01,0x00]
523 tbuffer_store_format_xyzw v
[1:4], v1
, s
[4:7], s0 format
:[BUF_FMT_32_32_32_32_FLOAT
] idxen
524 // GFX10
: tbuffer_store_format_xyzw v
[1:4], v1
, s
[4:7], s0 format
:[BUF_FMT_32_32_32_32_FLOAT
] idxen ; encoding
: [0x00,0x20,0x6f,0xea,0x01,0x01,0x01,0x00]
526 //===----------------------------------------------------------------------===//
527 // Negative tests for unified MTBUF format
(GFX10+
).
528 //===----------------------------------------------------------------------===//
531 tbuffer_store_format_xyzw v
[1:4], v1
, s
[4:7], s0 format
:[BUF_FMT_8_SNORM
,] idxen
532 // GFX10-ERR
: :[[@LINE-
1]]:{{[0-9]+}}: error
: expected
a closing square bracket
535 tbuffer_store_format_xyzw v
[1:4], v1
, s
[4:7], s0 format
:[BUF_FMT_8_SNORM
,BUF_FMT_8_SNORM
] idxen
536 // GFX10-ERR
: :[[@LINE-
1]]:{{[0-9]+}}: error
: expected
a closing square bracket
539 tbuffer_store_format_xyzw v
[1:4], v1
, s
[4:7], s0 format
:[BUF_FMT_8_SNORM
,BUF_DATA_FORMAT_8
] idxen
540 // GFX10-ERR
: :[[@LINE-
1]]:{{[0-9]+}}: error
: expected
a closing square bracket