source: CLRX/CLRadeonExtender/trunk/doc/GcnTimings.md @ 3261

Last change on this file since 3261 was 3261, checked in by matszpk, 16 months ago

CLRadeonExtender: CLRXDocs: Fixed typo in DPP operation code. Add a missing V_MBCNT_LO/HI_U32_B32 instruction's timings.

File size: 20.3 KB
Line 
1## GCN ISA Instruction Timings
2
3### Preliminary explanations
4
5Almost all instructions (scalar and vector) are executed within 4 cycles. Hence, to
6achieve maximum performance, 4 wavefronts should be executed per compute unit.
7
8NOTE: a simple single dword (4-byte) instruction is executed in 4 cycles (thanks to fast
9dispatching from cache). However, a 2 dword (8-byte) instruction may require 4 extra cycles
10for execution due to bigger size in memory and limits of instruction dispatching.
11To achieve best performance, we recommend to use single dword instructions.
12
13A DPFACTOR term is present in some tables; it indicates that the number of cycles depends
14on the model of the GPU as follows:
15
16 DPFACTOR     | DP speed | GPU subfamily
17--------------|----------|----------------------------
18 1            | 1/2      | professional Hawaii
19 2            | 1/4      | Highend Tahiti: Radeon HD7970
20 4            | 1/8      | Highend Hawaii: R9 290
21 8            | 1/16     | Other GPU's
22 
23
24### Occupancy table
25
26Waves | SGPRs | VGPRs | LdsW/I | Issue
27------|-------|-------|--------|---------
281     | 128   | 256   | 64     | 1
292     | 128   | 128   | 32     | 2
303     | 128   | 84    | 21     | 3
314     | 128   | 64    | 16     | 4
325     | 96    | 48    | 12     | 5
336     | 80    | 40    | 10     | 5
347     | 72    | 36    | 9      | 5
358     | 64    | 32    | 8      | 5
369     | 56    | 28    | 7      | 5
3710    | 48    | 24    | 6      | 5
38
39Waves - number of concurrent waves that can be computed by a single SIMD unit
40SGPRs - number of maximum SGPRs that can be allocated at that occupancy
41VPGRs - number of maximum VGPRs that can be allocated at that occupancy
42LdsW/I - maximum amount of LDS space per vector lane per wavefront in dwords
43Issue - maximum number of instructions per clock
44
45Each compute unit is partitioned into four SIMD units. So, the maximum number of waves per
46compute unit is 40.
47
48### Instruction alignment
49
50Aligmnent Rules for 2-dword instructions (GCN 1.0/1.1):
51
52* any penalty costs 4 cycles
53* program divided by in 32-byte blocks
54* only the first 3 dwords in the 32-byte block incur no penalty. Any 2-dword
55instruction outside these first 3 dwords adds a single penalty.
56* if the instructions is longer (more than four cycles) then the last cycles/4 dwords are free
57* if 16 or more cycle 2-dword instruction and 2-dword instruction in 4 dword, then there is
58no penalty for the second 2-dword instruction.
59* best place to jump is the 5 first dwords in the 32-byte block. Jump to rest of the dwords causes
601-3 penalties, depending on number of dwords (N-4, where N is the dword number). This rule
61does not apply to backward jumps (???)
62* any conditional jump instruction should be in first half of the 32-byte block, otherwise
631-4 penalties are added if jump is not taken, depending on dword number (N-3, where N is dword number).
64
65IMPORTANT: If the occupancy is greater than 1 wave per compute unit, then the penalties,
66branches, and scalar instructions will be masked while executing
67more waves than 4\*CUs. For best results is recommended to execute many waves
68(multiple of 4\*CUs) with occupancy greater than 1.
69
70The GCN 1.2 always execute instruction with full speed if these are in instruction cache.
71GCN 1.2 can fetch double dword instructions in full speed.
72
73### Instruction scheduling
74
75* if many wavefronts are executed in a single CU (if many wavefronts) then scalar, vector and
76data-share, memory (???) execution units can run independently in parallel,
77achieving many instructions per cycles.
78* between any integer V_ADD\*, V_SUB\*, V_FIRSTREADLINE_B32, V_READLANE_B32 operations
79and any scalar ALU instructions there is 16-cycle delay. Masked if there are more waves than 4*CUs.
80* any conditional jump that directly checks VCCZ or EXECZ after an instruction that changes
81VCC or EXEC adds a single penalty (4 cycles). Masked if there are more waves than 4*CUs.
82* any conditional jump that directly checks SCC after an instruction that changes SCC,
83EXEC, VCC adds a single penalty (4 cycles). Masked if there are more waves than 4*CUs.
84
85### SOP2 Instruction timings
86
87All SOP2 instructions (S_CBRANCH_G_FORK not checked) take 4 cycles.
88
89### SOPK Instruction timings
90
91All SOPK instructions (S_CBRANCH_I_FORK  not checked) take 4 cycles.
92S_SETREG_B32 and S_SETREG_IMM32_B32 take 8 cycles.
93
94### SOP1 Instruction timings
95
96The S_*_SAVEEXEC_B64 instructions take 8 cycles. Other ALU instructions (except
97S_MOV_REGRD_B32, S_CBRANCH_JOIN, S_RFE_B64) take 4 cycles.
98
99### SOPC Instruction timings
100
101All comparison and bit checking instructions take 4 cycles.
102
103### SOPP Instruction timings
104
105Jumps cost 4 cycle (no jump) or 20 cycles (???) if jump is performed.
106
107### SMRD Instruction timings
108
109Timings of SMRD instructions includes only time to fetch and execute instruction without
110loading data from memory. Timings of SMRD instructions are in this table:
111
112 Instruction           | Cycles        | Instruction           | Cycles
113-----------------------|---------------|-----------------------|---------------
114 S_BUFFER_LOAD_DWORD   | 4             | S_LOAD_DWORD          | 4
115 S_BUFFER_LOAD_DWORDX2 | 4             | S_LOAD_DWORDX2        | 4
116 S_BUFFER_LOAD_DWORDX4 | 4             | S_LOAD_DWORDX4        | 4
117 S_BUFFER_LOAD_DWORDX8 | 8             | S_LOAD_DWORDX8        | 8
118 S_BUFFER_LOAD_DWORDX16 | 16-24        | S_LOAD_DWORDX16       | 16-24
119 S_DCACHE_INV          | 4             | S_MEMTIME             | 4
120 S_DCACHE_INV_VOL      | 4             |
121
122### VOP2 Instruction timings
123
124All VOP2 instructions take 4 cycles. All instruction can achieve throughput 1 instruction
125per cycle.
126
127### VOP1 Instruction timings
128
129Maximum throughput of these instructions can be calculated by using the expression
130`(1/(CYCLES/4))` - for 4 cycles it is 1 instruction per cycle, for 8 cycles it is 1/2 instruction
131per cycle, etc.
132Timings of VOP1 instructions are in this table:
133
134 Instruction           | Cycles        | Instruction           | Cycles
135-----------------------|---------------|-----------------------|---------------
136 V_BFREV_B32           | 4             | V_FREXP_EXP_I32_F32   | 4
137 V_CEIL_F16            | 4             | V_FREXP_EXP_I32_F64   | DPFACTOR*4
138 V_CEIL_F32            | 4             | V_FREXP_MANT_F16      | 4
139 V_CEIL_F64            | DPFACTOR*4    | V_FREXP_MANT_F32      | 4
140 V_CLREXCP             | 4             | V_FREXP_MANT_F64      | DPFACTOR*4
141 V_COS_F16             | 16            | V_LOG_CLAMP_F32       | 16
142 V_COS_F32             | 16            | V_LOG_F16             | 16
143 V_CVT_F16_F32         | 4             | V_LOG_F32             | 16
144 V_CVT_F16_I16         | 4             | V_LOG_LEGACY_F32      | 16
145 V_CVT_F16_U16         | 4             | V_MBCNT_LO_U32_B32    | 4
146 V_CVT_F32_F16         | 4             | V_MBCNT_HI_U32_B32    | 4
147 V_CVT_F32_F64         | DPFACTOR*4    | V_MOVRELD_B32         | 4
148 V_CVT_F32_I32         | 4             | V_MOVRELSD_B32        | 4
149 V_CVT_F32_U32         | 4             | V_MOVRELS_B32         | 4
150 V_CVT_F32_UBYTE0      | 4             | V_MOV_B32             | 4
151 V_CVT_F32_UBYTE1      | 4             | V_MOV_FED_B32         | 4
152 V_CVT_F32_UBYTE2      | 4             | V_NOP                 | 4
153 V_CVT_F32_UBYTE3      | 4             | V_NOT_B32             | 4
154 V_CVT_F64_F32         | DPFACTOR*4    | V_RCP_CLAMP_F32       | 16
155 V_CVT_F64_I32         | DPFACTOR*4    | V_RCP_CLAMP_F64       | DPFACTOR*8
156 V_CVT_F64_U32         | DPFACTOR*4    | V_RCP_F16             | 16
157 V_CVT_FLR_I32_F32     | 4             | V_RCP_F32             | 16
158 V_CVT_I16_F16         | 4             | V_RCP_F64             | DPFACTOR*8
159 V_CVT_I32_F32         | 4             | V_RCP_IFLAG_F32       | 16
160 V_CVT_I32_F64         | DPFACTOR*4    | V_RCP_LEGACY_F32      | 16
161 V_CVT_OFF_F32_I4      | 4             | V_READFIRSTLANE_B32   | 4
162 V_CVT_RPI_I32_F32     | 4             | V_RNDNE_F16           | 4
163 V_CVT_U16_F16         | 4             | V_RNDNE_F32           | 4
164 V_CVT_U32_F32         | 4             | V_RNDNE_F64           | DPFACTOR*4
165 V_CVT_U32_F64         | DPFACTOR*4    | V_RSQ_CLAMP_F32       | 16
166 V_EXP_F16             | 16            | V_RSQ_CLAMP_F64       | DPFACTOR*8
167 V_EXP_F32             | 16            | V_RSQ_F16             | 16
168 V_EXP_LEGACY_F32      | 16            | V_RSQ_F32             | 16
169 V_FFBH_I32            | 4             | V_RSQ_F64             | DPFACTOR*8
170 V_FFBH_U32            | 4             | V_RSQ_LEGACY_F32      | 16
171 V_FFBL_B32            | 4             | V_SIN_F16             | 16
172 V_FLOOR_F16           | 4             | V_SIN_F32             | 16
173 V_FLOOR_F32           | 4             | V_SQRT_F16            | 16
174 V_FLOOR_F64           | DPFACTOR*4    | V_SQRT_F32            | 16
175 V_FRACT_F16           | 4             | V_SQRT_F64            | DPFACTOR*8
176 V_FRACT_F32           | 4             | V_TRUNC_F16           | 4
177 V_FRACT_F64           | DPFACTOR*4    | V_TRUNC_F32           | 4
178 V_FREXP_EXP_I16_F16   | 4             | V_TRUNC_F64           | DPFACTOR*4
179
180### VOPC Instruction timings
181
182Maximum throughput of these instructions can be calculated by using expression
183`(1/(CYCLES/4))` - for 4 cycles it is 1 instruction per cycle, for 8 cycles it is 1/2
184instruction per cycle, etc.
185All 16-bit and 32-bit comparison instructions take 4 cycles.
186All 64-bit comparison instructions take DPFACTOR*4 cycles.
187
188### VOP3 Instruction timings
189
190Maximum throughput of these instructions can be calculated by using expression
191`(1/(CYCLES/4))` - for 4 cycles it is 1 instruction per cycle, for 8 cycles it is 1/2
192instruction per cycle and etc.
193
194Timings of VOP3 instructions are in this table:
195
196 Instruction           | Cycles        | Instruction           | Cycles
197-----------------------|---------------|-----------------------|---------------
198 V_ADD_F64             | DPFACTOR*4    | V_MAD_LEGACY_F32      | 4
199 V_ALIGNBIT_B32        | 4             | V_MAD_U16             | 4
200 V_ALIGNBYTE_B32       | 4             | V_MAD_U32_U24         | 4
201 V_ASHR_I64            | DPFACTOR*4    | V_MAD_U64_U32         | 16
202 V_ASHRREV_I64         | DPFACTOR*4    | V_MAX3_F32            | 4
203 V_BFE_I32             | 4             | V_MAX3_I32            | 4
204 V_BFE_U32             | 4             | V_MAX3_U32            | 4
205 V_BFI_B32             | 4             | V_MAX_F64             | DPFACTOR*4
206 V_CUBEID_F32          | 4             | V_MED3_F32            | 4
207 V_CUBEMA_F32          | 4             | V_MED3_I32            | 4
208 V_CUBESC_F32          | 4             | V_MED3_U32            | 4
209 V_CUBETC_F32          | 4             | V_MIN3_F32            | 4
210 V_CVT_PK_U8_F32       | 4             | V_MIN3_I32            | 4
211 V_DIV_FIXUP_F32       | 16            | V_MIN3_U32            | 4
212 V_DIV_FIXUP_F64       | DPFACTOR*4    | V_MIN_F64             | DPFACTOR*4
213 V_DIV_FMAS_F32        | 16            | V_MQSAD_PK_U16_U8     | 16
214 V_DIV_FMAS_F64        | DPFACTOR*8    | V_MQSAD_U32_U8        | 16
215 V_DIV_SCALE_F32       | 16            | V_MQSAD_U8            | 16
216 V_DIV_SCALE_F64       | DPFACTOR*4    | V_MSAD_U8             | 4
217 V_MAD_F16             | 4             | V_MULLIT_F32          | 4
218 V_FMA_F32             | 4 or 16 (1)   | V_MUL_F64             | DPFACTOR*8
219 V_FMA_F64             | DPFACTOR*8    | V_MUL_HI_I32          | 16
220 V_LDEXP_F64           | DPFACTOR*4    | V_MUL_HI_U32          | 16
221 V_LERP_U8             | 4             | V_MUL_LO_I32          | 16
222 V_LSHL_B64            | DPFACTOR*4    | V_MUL_LO_U32          | 16
223 V_LSHLREV_B64         | DPFACTOR*4    | V_QSAD_PK_U16_U8      | 16
224 V_LSHR_B64            | DPFACTOR*4    | V_QSAD_U8             | 16
225 V_LSHRREV_B64         | DPFACTOR*4    | V_SAD_HI_U8           | 4
226 V_MAD_F16             | 4             | V_SAD_U16             | 4
227 V_MAD_F32             | 4             | V_SAD_U32             | 4
228 V_MAD_I16             | 4             | V_SAD_U8              | 4
229 V_MAD_I32_I24         | 4             | V_TRIG_PREOP_F64      | DPFACTOR*8
230 V_MAD_I64_I32         | 16            |
231
232(1) - for device with DP speed 1/2, 1/4 or 1/8 is 4 cycles, for other devices is 16 cycles
233
234### DS Instruction timings
235
236Timings of DS instructions includes only execution without waiting for completing
237LDS/GDS memory access on a single wavefront. Throughput indicates maximal possible
238throughput that excludes any other delays and penalties.
239Timings of DS instructions are in this table:
240
241 Instruction            | Cycles | Throughput
242------------------------|--------|------------
243 DS_ADD_RTN_U32         | 8      | 1/4
244 DS_ADD_RTN_U64         | 12     | 1/6
245 DS_ADD_SRC2_U32        | 4      | 1/4
246 DS_ADD_SRC2_U64        | 8      | 1/8
247 DS_ADD_U32             | 8      | 1/4
248 DS_ADD_U64             | 12     | 1/6
249 DS_AND_B32             | 8      | 1/4
250 DS_AND_B64             | 12     | 1/6
251 DS_AND_RTN_B32         | 8      | 1/4
252 DS_AND_RTN_B64         | 12     | 1/6
253 DS_AND_SRC2_B32        | 4      | 1/4
254 DS_AND_SRC2_B64        | 8      | 1/8
255 DS_APPEND              | 4      | ?
256 DS_CMPST_B32           | 12     | 1/6
257 DS_CMPST_B64           | 20     | 1/10
258 DS_CMPST_F32           | 12     | 1/6
259 DS_CMPST_F64           | 20     | 1/10
260 DS_CMPST_RTN_B32       | 12     | 1/6
261 DS_CMPST_RTN_B64       | 20     | 1/10
262 DS_CMPST_RTN_F32       | 12     | 1/6
263 DS_CMPST_RTN_F64       | 20     | 1/10
264 DS_CONDXCHG32_RTN_B128 | ?      | ?
265 DS_CONDXCHG32_RTN_B64  | ?      | ?
266 DS_CONSUME             | 4      | ?
267 DS_DEC_RTN_U32         | 8      | 1/4
268 DS_DEC_RTN_U64         | 12     | 1/6
269 DS_DEC_SRC2_U32        | 4      | 1/4
270 DS_DEC_SRC2_U64        | 8      | 1/8
271 DS_DEC_U32             | 8      | 1/4
272 DS_DEC_U64             | 12     | 1/6
273 DS_GWS_BARRIER         | ?      | ?
274 DS_GWS_INIT            | ?      | ?
275 DS_GWS_SEMA_BR         | ?      | ?
276 DS_GWS_SEMA_P          | ?      | ?
277 DS_GWS_SEMA_RELEASE_ALL| ?      | ?
278 DS_GWS_SEMA_V          | ?      | ?
279 DS_INC_RTN_U32         | 8      | 1/4
280 DS_INC_RTN_U64         | 12     | 1/6
281 DS_INC_SRC2_U32        | 4      | 1/4
282 DS_INC_SRC2_U64        | 8      | 1/8
283 DS_INC_U32             | 8      | 1/4
284 DS_INC_U64             | 12     | 1/6
285 DS_MAX_F32             | 8      | 1/4
286 DS_MAX_F64             | 12     | 1/6
287 DS_MAX_I32             | 8      | 1/4
288 DS_MAX_I64             | 12     | 1/6
289 DS_MAX_RTN_F32         | 8      | 1/4
290 DS_MAX_RTN_F64         | 12     | 1/6
291 DS_MAX_RTN_I32         | 8      | 1/4
292 DS_MAX_RTN_I64         | 12     | 1/6
293 DS_MAX_RTN_U32         | 8      | 1/4
294 DS_MAX_RTN_U64         | 12     | 1/6
295 DS_MAX_SRC2_F32        | 4      | 1/4
296 DS_MAX_SRC2_F64        | 8      | 1/8
297 DS_MAX_SRC2_I32        | 4      | 1/4
298 DS_MAX_SRC2_I64        | 8      | 1/8
299 DS_MAX_SRC2_U32        | 4      | 1/4
300 DS_MAX_SRC2_U64        | 8      | 1/8
301 DS_MAX_U32             | 8      | 1/4
302 DS_MAX_U64             | 12     | 1/6
303 DS_MIN_F32             | 8      | 1/4
304 DS_MIN_F64             | 12     | 1/6
305 DS_MIN_I32             | 8      | 1/4
306 DS_MIN_I64             | 12     | 1/6
307 DS_MIN_RTN_F32         | 8      | 1/4
308 DS_MIN_RTN_F64         | 12     | 1/6
309 DS_MIN_RTN_I32         | 8      | 1/4
310 DS_MIN_RTN_I64         | 12     | 1/6
311 DS_MIN_RTN_U32         | 8      | 1/4
312 DS_MIN_RTN_U64         | 12     | 1/6
313 DS_MIN_SRC2_F32        | 4      | 1/4
314 DS_MIN_SRC2_F64        | 8      | 1/8
315 DS_MIN_SRC2_I32        | 4      | 1/4
316 DS_MIN_SRC2_I64        | 8      | 1/8
317 DS_MIN_SRC2_U32        | 4      | 1/4
318 DS_MIN_SRC2_U64        | 8      | 1/8
319 DS_MIN_U32             | 8      | 1/4
320 DS_MIN_U64             | 12     | 1/6
321 DS_MSKOR_B32           | 12     | 1/6
322 DS_MSKOR_B64           | 20     | 1/10
323 DS_MSKOR_RTN_B32       | 12     | 1/6
324 DS_MSKOR_RTN_B64       | 20     | 1/10
325 DS_NOP                 | 4      | ?
326 DS_ORDERED_COUNT (???) | ?      | ?
327 DS_OR_B32              | 8      | 1/4
328 DS_OR_B64              | 12     | 1/6
329 DS_OR_RTN_B32          | 8      | 1/4
330 DS_OR_RTN_B64          | 12     | 1/6
331 DS_OR_SRC2_B32         | 4      | 1/4
332 DS_OR_SRC2_B64         | 8      | 1/8
333 DS_READ2ST64_B32       | 8      | 1/4
334 DS_READ2ST64_B64       | 16     | 1/8
335 DS_READ2_B32           | 8      | 1/4
336 DS_READ2_B64           | 16     | 1/8
337 DS_READ_B128           | 16     | 1/8
338 DS_READ_B32            | 4      | 1/2
339 DS_READ_B64            | 8      | 1/4
340 DS_READ_B96            | 16     | 1/8
341 DS_READ_I16            | 4      | 1/2
342 DS_READ_I8             | 4      | 1/2
343 DS_READ_U16            | 4      | 1/2
344 DS_READ_U8             | 4      | 1/2
345 DS_RSUB_RTN_U32        | 8      | 1/4
346 DS_RSUB_RTN_U64        | 12     | 1/6
347 DS_RSUB_SRC2_U32       | 4      | 1/4
348 DS_RSUB_SRC2_U64       | 8      | 1/8
349 DS_RSUB_U32            | 8      | 1/4
350 DS_RSUB_U64            | 12     | 1/6
351 DS_SUB_RTN_U32         | 8      | 1/4
352 DS_SUB_RTN_U64         | 12     | 1/6
353 DS_SUB_SRC2_U32        | 4      | 1/4
354 DS_SUB_SRC2_U64        | 8      | 1/8
355 DS_SUB_U32             | 8      | 1/4
356 DS_SUB_U64             | 12     | 1/6
357 DS_SWIZZLE_B32         | 4      | 1/2
358 DS_WRAP_RTN_B32        | ?      | ?
359 DS_WRITE2ST64_B32      | 12     | 1/6
360 DS_WRITE2ST64_B64      | 20     | 1/10
361 DS_WRITE2_B32          | 12     | 1/6
362 DS_WRITE2_B64          | 20     | 1/10
363 DS_WRITE_B128          | 20     | 1/10
364 DS_WRITE_B16           | 8      | 1/4
365 DS_WRITE_B32           | 8      | 1/4
366 DS_WRITE_B64           | 12     | 1/8
367 DS_WRITE_B8            | 8      | 1/4
368 DS_WRITE_B96           | 16     | 1/10
369 DS_WRITE_SRC2_B32      | 12     | 1/4
370 DS_WRITE_SRC2_B64      | 20     | 1/8
371 DS_WRXCHG2ST64_RTN_B32 | 12     | 1/6
372 DS_WRXCHG2ST64_RTN_B64 | 20     | 1/12
373 DS_WRXCHG2_RTN_B32     | 12     | 1/6
374 DS_WRXCHG2_RTN_B64     | 20     | 1/12
375 DS_WRXCHG_RTN_B32      | 8      | 1/4
376 DS_WRXCHG_RTN_B64      | 12     | 1/6
377 DS_XOR_B32             | 8      | 1/4
378 DS_XOR_B64             | 12     | 1/6
379 DS_XOR_RTN_B32         | 8      | 1/4
380 DS_XOR_RTN_B64         | 12     | 1/6
381 DS_XOR_SRC2_B32        | 4      | 1/4
382 DS_XOR_SRC2_B64        | 8      | 1/8
383
384About bank conflicts: The LDS memory is partitioned in 32 banks. The bank number is in
385bits 2-6 of the address. A bank conflict occurs when two addresses hit the same
386bank, but the addresses are different starting from the 7bit
387(the first 2 bits of the address doesn't matter).
388Any bank conflict adds penalty to timing and throughput. In the worst case, the throughput
389can be not greater 1/32 requests per cycle.
390 
391### MUBUF Instruction timings
392
393Timings of MUBUF instructions includes only execution without waiting for completing
394main memory access on a single wavefront. Additional GLCX adds X cycles to instruction
395if the instruction uses the GLC modifier. Timings of MUBUF instructions are in this table:
396
397 Instruction                | Cycles
398----------------------------|-----------
399 BUFFER_ATOMIC_ADD          | 16+GLC1
400 BUFFER_ATOMIC_ADD_X2       | 16+GLC2
401 BUFFER_ATOMIC_AND          | 16+GLC1
402 BUFFER_ATOMIC_AND_X2       | 16
403 BUFFER_ATOMIC_CMPSWAP      | 32
404 BUFFER_ATOMIC_CMPSWAP_X2   | 32
405 BUFFER_ATOMIC_DEC          | 16+GLC1
406 BUFFER_ATOMIC_DEC_X2       | 16+GLC2
407 BUFFER_ATOMIC_FCMPSWAP     | 32
408 BUFFER_ATOMIC_FCMPSWAP_X2  | 32
409 BUFFER_ATOMIC_FMAX         | 16+GLC1
410 BUFFER_ATOMIC_FMAX_X2      | 16+GLC2
411 BUFFER_ATOMIC_FMIN         | 16+GLC1
412 BUFFER_ATOMIC_FMIN_X2      | 16+GLC2
413 BUFFER_ATOMIC_INC          | 16+GLC1
414 BUFFER_ATOMIC_INC_X2       | 16+GLC2
415 BUFFER_ATOMIC_OR           | 16+GLC1
416 BUFFER_ATOMIC_OR_X2        | 16+GLC2
417 BUFFER_ATOMIC_RSUB         | 16+GLC1
418 BUFFER_ATOMIC_RSUB_X2      | 16+GLC2
419 BUFFER_ATOMIC_SMAX         | 16+GLC1
420 BUFFER_ATOMIC_SMAX_X2      | 16+GLC2
421 BUFFER_ATOMIC_SMIN         | 16+GLC1
422 BUFFER_ATOMIC_SMIN_X2      | 16+GLC2
423 BUFFER_ATOMIC_SUB          | 16+GLC1
424 BUFFER_ATOMIC_SUB_X2       | 16+GLC2
425 BUFFER_ATOMIC_SWAP         | 16+GLC1
426 BUFFER_ATOMIC_SWAP_X2      | 16+GLC2
427 BUFFER_ATOMIC_UMAX         | 16+GLC1
428 BUFFER_ATOMIC_UMAX_X2      | 16+GLC2
429 BUFFER_ATOMIC_UMIN         | 16+GLC1
430 BUFFER_ATOMIC_UMIN_X2      | 16+GLC2
431 BUFFER_ATOMIC_XOR          | 16+GLC1
432 BUFFER_ATOMIC_XOR_X2       | 16+GLC2
433 BUFFER_LOAD_DWORD          | 8
434 BUFFER_LOAD_DWORDX2        | 18
435 BUFFER_LOAD_DWORDX3        | 16
436 BUFFER_LOAD_DWORDX4        | 16
437 BUFFER_LOAD_FORMAT_X       | 8
438 BUFFER_LOAD_FORMAT_XY      | 18?
439 BUFFER_LOAD_FORMAT_XYZ     | 16
440 BUFFER_LOAD_FORMAT_XYZW    | 16
441 BUFFER_LOAD_SBYTE          | 8
442 BUFFER_LOAD_SSHORT         | 8
443 BUFFER_LOAD_UBYTE          | 8
444 BUFFER_LOAD_USHORT         | 8
445 BUFFER_STORE_BYTE          | 16
446 BUFFER_STORE_DWORD         | 16
447 BUFFER_STORE_DWORDX2       | 16
448 BUFFER_STORE_DWORDX3       | 16
449 BUFFER_STORE_DWORDX4       | 16
450 BUFFER_STORE_FORMAT_X      | 16
451 BUFFER_STORE_FORMAT_XY     | 16
452 BUFFER_STORE_FORMAT_XYZ    | 16
453 BUFFER_STORE_FORMAT_XYZW   | 16
454 BUFFER_STORE_SHORT         | 16
455 BUFFER_WBINVL1             | ?
456 BUFFER_WBINVL1_SC          | ?
Note: See TracBrowser for help on using the repository browser.