147eb6368SDmitry Preobrazhensky====================================== 247eb6368SDmitry PreobrazhenskySyntax of AMDGPU Instruction Modifiers 347eb6368SDmitry Preobrazhensky====================================== 447eb6368SDmitry Preobrazhensky 547eb6368SDmitry Preobrazhensky.. contents:: 647eb6368SDmitry Preobrazhensky :local: 747eb6368SDmitry Preobrazhensky 847eb6368SDmitry PreobrazhenskyConventions 947eb6368SDmitry Preobrazhensky=========== 1047eb6368SDmitry Preobrazhensky 1147eb6368SDmitry PreobrazhenskyThe following notation is used throughout this document: 1247eb6368SDmitry Preobrazhensky 1347eb6368SDmitry Preobrazhensky =================== ============================================================= 1447eb6368SDmitry Preobrazhensky Notation Description 1547eb6368SDmitry Preobrazhensky =================== ============================================================= 1647eb6368SDmitry Preobrazhensky {0..N} Any integer value in the range from 0 to N (inclusive). 1747eb6368SDmitry Preobrazhensky <x> Syntax and meaning of *x* is explained elsewhere. 1847eb6368SDmitry Preobrazhensky =================== ============================================================= 1947eb6368SDmitry Preobrazhensky 2047eb6368SDmitry Preobrazhensky.. _amdgpu_syn_modifiers: 2147eb6368SDmitry Preobrazhensky 2247eb6368SDmitry PreobrazhenskyModifiers 2347eb6368SDmitry Preobrazhensky========= 2447eb6368SDmitry Preobrazhensky 2547eb6368SDmitry PreobrazhenskyDS Modifiers 2647eb6368SDmitry Preobrazhensky------------ 2747eb6368SDmitry Preobrazhensky 288ea3e9d9SDmitry Preobrazhensky.. _amdgpu_synid_ds_offset80: 2947eb6368SDmitry Preobrazhensky 308ea3e9d9SDmitry Preobrazhenskyoffset0 31ddac5c9bSDmitry Preobrazhensky~~~~~~~ 3247eb6368SDmitry Preobrazhensky 338ea3e9d9SDmitry PreobrazhenskySpecifies first 8-bit offset, in bytes. The default value is 0. 3447eb6368SDmitry Preobrazhensky 358ea3e9d9SDmitry PreobrazhenskyUsed with DS instructions that expect two addresses. 3647eb6368SDmitry Preobrazhensky 37b9683d3cSDmitry Preobrazhensky =================== ==================================================================== 3847eb6368SDmitry Preobrazhensky Syntax Description 39b9683d3cSDmitry Preobrazhensky =================== ==================================================================== 408ea3e9d9SDmitry Preobrazhensky offset0:{0..0xFF} Specifies an unsigned 8-bit offset as a positive 41b9683d3cSDmitry Preobrazhensky :ref:`integer number <amdgpu_synid_integer_number>` 42b9683d3cSDmitry Preobrazhensky or an :ref:`absolute expression<amdgpu_synid_absolute_expression>`. 43b9683d3cSDmitry Preobrazhensky =================== ==================================================================== 4447eb6368SDmitry Preobrazhensky 4547eb6368SDmitry PreobrazhenskyExamples: 4647eb6368SDmitry Preobrazhensky 471fa7aaf5SDmitry Preobrazhensky.. parsed-literal:: 4847eb6368SDmitry Preobrazhensky 498ea3e9d9SDmitry Preobrazhensky offset0:0xff 508ea3e9d9SDmitry Preobrazhensky offset0:2-x 518ea3e9d9SDmitry Preobrazhensky offset0:-x-y 528ea3e9d9SDmitry Preobrazhensky 538ea3e9d9SDmitry Preobrazhensky.. _amdgpu_synid_ds_offset81: 548ea3e9d9SDmitry Preobrazhensky 558ea3e9d9SDmitry Preobrazhenskyoffset1 568ea3e9d9SDmitry Preobrazhensky~~~~~~~ 578ea3e9d9SDmitry Preobrazhensky 588ea3e9d9SDmitry PreobrazhenskySpecifies second 8-bit offset, in bytes. The default value is 0. 598ea3e9d9SDmitry Preobrazhensky 608ea3e9d9SDmitry PreobrazhenskyUsed with DS instructions that expect two addresses. 618ea3e9d9SDmitry Preobrazhensky 628ea3e9d9SDmitry Preobrazhensky =================== ==================================================================== 638ea3e9d9SDmitry Preobrazhensky Syntax Description 648ea3e9d9SDmitry Preobrazhensky =================== ==================================================================== 658ea3e9d9SDmitry Preobrazhensky offset1:{0..0xFF} Specifies an unsigned 8-bit offset as a positive 668ea3e9d9SDmitry Preobrazhensky :ref:`integer number <amdgpu_synid_integer_number>` 678ea3e9d9SDmitry Preobrazhensky or an :ref:`absolute expression<amdgpu_synid_absolute_expression>`. 688ea3e9d9SDmitry Preobrazhensky =================== ==================================================================== 698ea3e9d9SDmitry Preobrazhensky 708ea3e9d9SDmitry PreobrazhenskyExamples: 718ea3e9d9SDmitry Preobrazhensky 728ea3e9d9SDmitry Preobrazhensky.. parsed-literal:: 738ea3e9d9SDmitry Preobrazhensky 748ea3e9d9SDmitry Preobrazhensky offset1:0xff 758ea3e9d9SDmitry Preobrazhensky offset1:2-x 768ea3e9d9SDmitry Preobrazhensky offset1:-x-y 7747eb6368SDmitry Preobrazhensky 7847eb6368SDmitry Preobrazhensky.. _amdgpu_synid_ds_offset16: 7947eb6368SDmitry Preobrazhensky 808ea3e9d9SDmitry Preobrazhenskyoffset 818ea3e9d9SDmitry Preobrazhensky~~~~~~ 8247eb6368SDmitry Preobrazhensky 838ea3e9d9SDmitry PreobrazhenskySpecifies a 16-bit offset, in bytes. The default value is 0. 8447eb6368SDmitry Preobrazhensky 858ea3e9d9SDmitry PreobrazhenskyUsed with DS instructions that expect a single address. 8647eb6368SDmitry Preobrazhensky 87b9683d3cSDmitry Preobrazhensky ==================== ==================================================================== 8847eb6368SDmitry Preobrazhensky Syntax Description 89b9683d3cSDmitry Preobrazhensky ==================== ==================================================================== 9047eb6368SDmitry Preobrazhensky offset:{0..0xFFFF} Specifies an unsigned 16-bit offset as a positive 91b9683d3cSDmitry Preobrazhensky :ref:`integer number <amdgpu_synid_integer_number>` 92b9683d3cSDmitry Preobrazhensky or an :ref:`absolute expression<amdgpu_synid_absolute_expression>`. 93b9683d3cSDmitry Preobrazhensky ==================== ==================================================================== 9447eb6368SDmitry Preobrazhensky 9547eb6368SDmitry PreobrazhenskyExamples: 9647eb6368SDmitry Preobrazhensky 971fa7aaf5SDmitry Preobrazhensky.. parsed-literal:: 9847eb6368SDmitry Preobrazhensky 9947eb6368SDmitry Preobrazhensky offset:65535 10047eb6368SDmitry Preobrazhensky offset:0xffff 101b9683d3cSDmitry Preobrazhensky offset:-x-y 10247eb6368SDmitry Preobrazhensky 10347eb6368SDmitry Preobrazhensky.. _amdgpu_synid_sw_offset16: 10447eb6368SDmitry Preobrazhensky 105cef9d421SDmitry Preobrazhenskyswizzle pattern 106cef9d421SDmitry Preobrazhensky~~~~~~~~~~~~~~~ 10747eb6368SDmitry Preobrazhensky 10847eb6368SDmitry PreobrazhenskyThis is a special modifier which may be used with *ds_swizzle_b32* instruction only. 10947eb6368SDmitry PreobrazhenskyIt specifies a swizzle pattern in numeric or symbolic form. The default value is 0. 11047eb6368SDmitry Preobrazhensky 11147eb6368SDmitry PreobrazhenskySee AMD documentation for more information. 11247eb6368SDmitry Preobrazhensky 11347eb6368SDmitry Preobrazhensky ======================================================= =========================================================== 11447eb6368SDmitry Preobrazhensky Syntax Description 11547eb6368SDmitry Preobrazhensky ======================================================= =========================================================== 11647eb6368SDmitry Preobrazhensky offset:{0..0xFFFF} Specifies a 16-bit swizzle pattern. 11747eb6368SDmitry Preobrazhensky offset:swizzle(QUAD_PERM,{0..3},{0..3},{0..3},{0..3}) Specifies a quad permute mode pattern 11847eb6368SDmitry Preobrazhensky 11947eb6368SDmitry Preobrazhensky Each number is a lane *id*. 12047eb6368SDmitry Preobrazhensky offset:swizzle(BITMASK_PERM, "<mask>") Specifies a bitmask permute mode pattern. 12147eb6368SDmitry Preobrazhensky 12247eb6368SDmitry Preobrazhensky The pattern converts a 5-bit lane *id* to another 12347eb6368SDmitry Preobrazhensky lane *id* with which the lane interacts. 12447eb6368SDmitry Preobrazhensky 12547eb6368SDmitry Preobrazhensky *mask* is a 5 character sequence which 12647eb6368SDmitry Preobrazhensky specifies how to transform the bits of the 12747eb6368SDmitry Preobrazhensky lane *id*. 12847eb6368SDmitry Preobrazhensky 12947eb6368SDmitry Preobrazhensky The following characters are allowed: 13047eb6368SDmitry Preobrazhensky 13147eb6368SDmitry Preobrazhensky * "0" - set bit to 0. 13247eb6368SDmitry Preobrazhensky 13347eb6368SDmitry Preobrazhensky * "1" - set bit to 1. 13447eb6368SDmitry Preobrazhensky 13547eb6368SDmitry Preobrazhensky * "p" - preserve bit. 13647eb6368SDmitry Preobrazhensky 13747eb6368SDmitry Preobrazhensky * "i" - inverse bit. 13847eb6368SDmitry Preobrazhensky 13947eb6368SDmitry Preobrazhensky offset:swizzle(BROADCAST,{2..32},{0..N}) Specifies a broadcast mode. 14047eb6368SDmitry Preobrazhensky 14147eb6368SDmitry Preobrazhensky Broadcasts the value of any particular lane to 14247eb6368SDmitry Preobrazhensky all lanes in its group. 14347eb6368SDmitry Preobrazhensky 14447eb6368SDmitry Preobrazhensky The first numeric parameter is a group 14547eb6368SDmitry Preobrazhensky size and must be equal to 2, 4, 8, 16 or 32. 14647eb6368SDmitry Preobrazhensky 14747eb6368SDmitry Preobrazhensky The second numeric parameter is an index of the 14847eb6368SDmitry Preobrazhensky lane being broadcasted. 14947eb6368SDmitry Preobrazhensky 15047eb6368SDmitry Preobrazhensky The index must not exceed group size. 15147eb6368SDmitry Preobrazhensky offset:swizzle(SWAP,{1..16}) Specifies a swap mode. 15247eb6368SDmitry Preobrazhensky 15347eb6368SDmitry Preobrazhensky Swaps the neighboring groups of 15447eb6368SDmitry Preobrazhensky 1, 2, 4, 8 or 16 lanes. 15547eb6368SDmitry Preobrazhensky offset:swizzle(REVERSE,{2..32}) Specifies a reverse mode. 15647eb6368SDmitry Preobrazhensky 15747eb6368SDmitry Preobrazhensky Reverses the lanes for groups of 2, 4, 8, 16 or 32 lanes. 15847eb6368SDmitry Preobrazhensky ======================================================= =========================================================== 15947eb6368SDmitry Preobrazhensky 160b9683d3cSDmitry PreobrazhenskyNote: numeric values may be specified as either :ref:`integer numbers<amdgpu_synid_integer_number>` or 16147eb6368SDmitry Preobrazhensky:ref:`absolute expressions<amdgpu_synid_absolute_expression>`. 16247eb6368SDmitry Preobrazhensky 16347eb6368SDmitry PreobrazhenskyExamples: 16447eb6368SDmitry Preobrazhensky 1651fa7aaf5SDmitry Preobrazhensky.. parsed-literal:: 16647eb6368SDmitry Preobrazhensky 16747eb6368SDmitry Preobrazhensky offset:255 16847eb6368SDmitry Preobrazhensky offset:0xffff 16947eb6368SDmitry Preobrazhensky offset:swizzle(QUAD_PERM, 0, 1, 2, 3) 17047eb6368SDmitry Preobrazhensky offset:swizzle(BITMASK_PERM, "01pi0") 17147eb6368SDmitry Preobrazhensky offset:swizzle(BROADCAST, 2, 0) 17247eb6368SDmitry Preobrazhensky offset:swizzle(SWAP, 8) 17347eb6368SDmitry Preobrazhensky offset:swizzle(REVERSE, 30 + 2) 17447eb6368SDmitry Preobrazhensky 17547eb6368SDmitry Preobrazhensky.. _amdgpu_synid_gds: 17647eb6368SDmitry Preobrazhensky 17747eb6368SDmitry Preobrazhenskygds 17847eb6368SDmitry Preobrazhensky~~~ 17947eb6368SDmitry Preobrazhensky 18047eb6368SDmitry PreobrazhenskySpecifies whether to use GDS or LDS memory (LDS is the default). 18147eb6368SDmitry Preobrazhensky 18247eb6368SDmitry Preobrazhensky ======================================== ================================================ 18347eb6368SDmitry Preobrazhensky Syntax Description 18447eb6368SDmitry Preobrazhensky ======================================== ================================================ 18547eb6368SDmitry Preobrazhensky gds Use GDS memory. 18647eb6368SDmitry Preobrazhensky ======================================== ================================================ 18747eb6368SDmitry Preobrazhensky 18847eb6368SDmitry Preobrazhensky 18947eb6368SDmitry PreobrazhenskyEXP Modifiers 19047eb6368SDmitry Preobrazhensky------------- 19147eb6368SDmitry Preobrazhensky 19247eb6368SDmitry Preobrazhensky.. _amdgpu_synid_done: 19347eb6368SDmitry Preobrazhensky 19447eb6368SDmitry Preobrazhenskydone 19547eb6368SDmitry Preobrazhensky~~~~ 19647eb6368SDmitry Preobrazhensky 197cef9d421SDmitry PreobrazhenskySpecifies if this is the last export from the shader to the target. By default, 198cef9d421SDmitry Preobrazhensky*exp* instruction does not finish an export sequence. 19947eb6368SDmitry Preobrazhensky 20047eb6368SDmitry Preobrazhensky ======================================== ================================================ 20147eb6368SDmitry Preobrazhensky Syntax Description 20247eb6368SDmitry Preobrazhensky ======================================== ================================================ 20347eb6368SDmitry Preobrazhensky done Indicates the last export operation. 20447eb6368SDmitry Preobrazhensky ======================================== ================================================ 20547eb6368SDmitry Preobrazhensky 20647eb6368SDmitry Preobrazhensky.. _amdgpu_synid_compr: 20747eb6368SDmitry Preobrazhensky 20847eb6368SDmitry Preobrazhenskycompr 20947eb6368SDmitry Preobrazhensky~~~~~ 21047eb6368SDmitry Preobrazhensky 21147eb6368SDmitry PreobrazhenskyIndicates if the data are compressed (data are not compressed by default). 21247eb6368SDmitry Preobrazhensky 21347eb6368SDmitry Preobrazhensky ======================================== ================================================ 21447eb6368SDmitry Preobrazhensky Syntax Description 21547eb6368SDmitry Preobrazhensky ======================================== ================================================ 21647eb6368SDmitry Preobrazhensky compr Data are compressed. 21747eb6368SDmitry Preobrazhensky ======================================== ================================================ 21847eb6368SDmitry Preobrazhensky 21947eb6368SDmitry Preobrazhensky.. _amdgpu_synid_vm: 22047eb6368SDmitry Preobrazhensky 22147eb6368SDmitry Preobrazhenskyvm 22247eb6368SDmitry Preobrazhensky~~ 22347eb6368SDmitry Preobrazhensky 22447eb6368SDmitry PreobrazhenskySpecifies valid mask flag state (off by default). 22547eb6368SDmitry Preobrazhensky 22647eb6368SDmitry Preobrazhensky ======================================== ================================================ 22747eb6368SDmitry Preobrazhensky Syntax Description 22847eb6368SDmitry Preobrazhensky ======================================== ================================================ 22947eb6368SDmitry Preobrazhensky vm Set valid mask flag. 23047eb6368SDmitry Preobrazhensky ======================================== ================================================ 23147eb6368SDmitry Preobrazhensky 23247eb6368SDmitry PreobrazhenskyFLAT Modifiers 23347eb6368SDmitry Preobrazhensky-------------- 23447eb6368SDmitry Preobrazhensky 23547eb6368SDmitry Preobrazhensky.. _amdgpu_synid_flat_offset12: 23647eb6368SDmitry Preobrazhensky 237ddac5c9bSDmitry Preobrazhenskyoffset12 238ddac5c9bSDmitry Preobrazhensky~~~~~~~~ 23947eb6368SDmitry Preobrazhensky 24047eb6368SDmitry PreobrazhenskySpecifies an immediate unsigned 12-bit offset, in bytes. The default value is 0. 24147eb6368SDmitry Preobrazhensky 24247eb6368SDmitry PreobrazhenskyCannot be used with *global/scratch* opcodes. GFX9 only. 24347eb6368SDmitry Preobrazhensky 244b9683d3cSDmitry Preobrazhensky ================= ==================================================================== 24547eb6368SDmitry Preobrazhensky Syntax Description 246b9683d3cSDmitry Preobrazhensky ================= ==================================================================== 24747eb6368SDmitry Preobrazhensky offset:{0..4095} Specifies a 12-bit unsigned offset as a positive 248b9683d3cSDmitry Preobrazhensky :ref:`integer number <amdgpu_synid_integer_number>` 249b9683d3cSDmitry Preobrazhensky or an :ref:`absolute expression<amdgpu_synid_absolute_expression>`. 250b9683d3cSDmitry Preobrazhensky ================= ==================================================================== 25147eb6368SDmitry Preobrazhensky 25247eb6368SDmitry PreobrazhenskyExamples: 25347eb6368SDmitry Preobrazhensky 2541fa7aaf5SDmitry Preobrazhensky.. parsed-literal:: 25547eb6368SDmitry Preobrazhensky 25647eb6368SDmitry Preobrazhensky offset:4095 257b9683d3cSDmitry Preobrazhensky offset:x-0xff 25847eb6368SDmitry Preobrazhensky 259ddac5c9bSDmitry Preobrazhensky.. _amdgpu_synid_flat_offset13s: 26047eb6368SDmitry Preobrazhensky 261ddac5c9bSDmitry Preobrazhenskyoffset13s 262ddac5c9bSDmitry Preobrazhensky~~~~~~~~~ 26347eb6368SDmitry Preobrazhensky 26447eb6368SDmitry PreobrazhenskySpecifies an immediate signed 13-bit offset, in bytes. The default value is 0. 26547eb6368SDmitry Preobrazhensky 26647eb6368SDmitry PreobrazhenskyCan be used with *global/scratch* opcodes only. GFX9 only. 26747eb6368SDmitry Preobrazhensky 268b9683d3cSDmitry Preobrazhensky ===================== ==================================================================== 26947eb6368SDmitry Preobrazhensky Syntax Description 270b9683d3cSDmitry Preobrazhensky ===================== ==================================================================== 271ddac5c9bSDmitry Preobrazhensky offset:{-4096..4095} Specifies a 13-bit signed offset as an 272b9683d3cSDmitry Preobrazhensky :ref:`integer number <amdgpu_synid_integer_number>` 273b9683d3cSDmitry Preobrazhensky or an :ref:`absolute expression<amdgpu_synid_absolute_expression>`. 274b9683d3cSDmitry Preobrazhensky ===================== ==================================================================== 27547eb6368SDmitry Preobrazhensky 27647eb6368SDmitry PreobrazhenskyExamples: 27747eb6368SDmitry Preobrazhensky 2781fa7aaf5SDmitry Preobrazhensky.. parsed-literal:: 27947eb6368SDmitry Preobrazhensky 28047eb6368SDmitry Preobrazhensky offset:-4000 28147eb6368SDmitry Preobrazhensky offset:0x10 282b9683d3cSDmitry Preobrazhensky offset:-x 28347eb6368SDmitry Preobrazhensky 284cef9d421SDmitry Preobrazhensky.. _amdgpu_synid_flat_offset12s: 285cef9d421SDmitry Preobrazhensky 286cef9d421SDmitry Preobrazhenskyoffset12s 287cef9d421SDmitry Preobrazhensky~~~~~~~~~ 288cef9d421SDmitry Preobrazhensky 289cef9d421SDmitry PreobrazhenskySpecifies an immediate signed 12-bit offset, in bytes. The default value is 0. 290cef9d421SDmitry Preobrazhensky 291cef9d421SDmitry PreobrazhenskyCan be used with *global/scratch* opcodes only. 292cef9d421SDmitry Preobrazhensky 293cef9d421SDmitry PreobrazhenskyGFX10 only. 294cef9d421SDmitry Preobrazhensky 295b9683d3cSDmitry Preobrazhensky ===================== ==================================================================== 296cef9d421SDmitry Preobrazhensky Syntax Description 297b9683d3cSDmitry Preobrazhensky ===================== ==================================================================== 298cef9d421SDmitry Preobrazhensky offset:{-2048..2047} Specifies a 12-bit signed offset as an 299b9683d3cSDmitry Preobrazhensky :ref:`integer number <amdgpu_synid_integer_number>` 300b9683d3cSDmitry Preobrazhensky or an :ref:`absolute expression<amdgpu_synid_absolute_expression>`. 301b9683d3cSDmitry Preobrazhensky ===================== ==================================================================== 302cef9d421SDmitry Preobrazhensky 303cef9d421SDmitry PreobrazhenskyExamples: 304cef9d421SDmitry Preobrazhensky 305cef9d421SDmitry Preobrazhensky.. parsed-literal:: 306cef9d421SDmitry Preobrazhensky 307cef9d421SDmitry Preobrazhensky offset:-2000 308cef9d421SDmitry Preobrazhensky offset:0x10 309b9683d3cSDmitry Preobrazhensky offset:-x+y 310cef9d421SDmitry Preobrazhensky 311cef9d421SDmitry Preobrazhensky.. _amdgpu_synid_flat_offset11: 312cef9d421SDmitry Preobrazhensky 313cef9d421SDmitry Preobrazhenskyoffset11 314cef9d421SDmitry Preobrazhensky~~~~~~~~ 315cef9d421SDmitry Preobrazhensky 316cef9d421SDmitry PreobrazhenskySpecifies an immediate unsigned 11-bit offset, in bytes. The default value is 0. 317cef9d421SDmitry Preobrazhensky 318cef9d421SDmitry PreobrazhenskyCannot be used with *global/scratch* opcodes. 319cef9d421SDmitry Preobrazhensky 320cef9d421SDmitry PreobrazhenskyGFX10 only. 321cef9d421SDmitry Preobrazhensky 322b9683d3cSDmitry Preobrazhensky ================= ==================================================================== 323cef9d421SDmitry Preobrazhensky Syntax Description 324b9683d3cSDmitry Preobrazhensky ================= ==================================================================== 325cef9d421SDmitry Preobrazhensky offset:{0..2047} Specifies an 11-bit unsigned offset as a positive 326b9683d3cSDmitry Preobrazhensky :ref:`integer number <amdgpu_synid_integer_number>` 327b9683d3cSDmitry Preobrazhensky or an :ref:`absolute expression<amdgpu_synid_absolute_expression>`. 328b9683d3cSDmitry Preobrazhensky ================= ==================================================================== 329cef9d421SDmitry Preobrazhensky 330cef9d421SDmitry PreobrazhenskyExamples: 331cef9d421SDmitry Preobrazhensky 332cef9d421SDmitry Preobrazhensky.. parsed-literal:: 333cef9d421SDmitry Preobrazhensky 334cef9d421SDmitry Preobrazhensky offset:2047 335b9683d3cSDmitry Preobrazhensky offset:x+0xff 336cef9d421SDmitry Preobrazhensky 337cef9d421SDmitry Preobrazhenskydlc 338cef9d421SDmitry Preobrazhensky~~~ 339cef9d421SDmitry Preobrazhensky 340cef9d421SDmitry PreobrazhenskySee a description :ref:`here<amdgpu_synid_dlc>`. GFX10 only. 341cef9d421SDmitry Preobrazhensky 34247eb6368SDmitry Preobrazhenskyglc 34347eb6368SDmitry Preobrazhensky~~~ 34447eb6368SDmitry Preobrazhensky 34547eb6368SDmitry PreobrazhenskySee a description :ref:`here<amdgpu_synid_glc>`. 34647eb6368SDmitry Preobrazhensky 347cef9d421SDmitry Preobrazhenskylds 348cef9d421SDmitry Preobrazhensky~~~ 349cef9d421SDmitry Preobrazhensky 350cef9d421SDmitry PreobrazhenskySee a description :ref:`here<amdgpu_synid_lds>`. GFX10 only. 351cef9d421SDmitry Preobrazhensky 35247eb6368SDmitry Preobrazhenskyslc 35347eb6368SDmitry Preobrazhensky~~~ 35447eb6368SDmitry Preobrazhensky 35547eb6368SDmitry PreobrazhenskySee a description :ref:`here<amdgpu_synid_slc>`. 35647eb6368SDmitry Preobrazhensky 35747eb6368SDmitry Preobrazhenskytfe 35847eb6368SDmitry Preobrazhensky~~~ 35947eb6368SDmitry Preobrazhensky 36047eb6368SDmitry PreobrazhenskySee a description :ref:`here<amdgpu_synid_tfe>`. 36147eb6368SDmitry Preobrazhensky 36247eb6368SDmitry Preobrazhenskynv 36347eb6368SDmitry Preobrazhensky~~ 36447eb6368SDmitry Preobrazhensky 36547eb6368SDmitry PreobrazhenskySee a description :ref:`here<amdgpu_synid_nv>`. 36647eb6368SDmitry Preobrazhensky 36762c46093SDmitry Preobrazhenskysc0 36862c46093SDmitry Preobrazhensky~~~ 36962c46093SDmitry Preobrazhensky 37062c46093SDmitry PreobrazhenskySee a description :ref:`here<amdgpu_synid_sc0>`. 37162c46093SDmitry Preobrazhensky 37262c46093SDmitry Preobrazhenskysc1 37362c46093SDmitry Preobrazhensky~~~ 37462c46093SDmitry Preobrazhensky 37562c46093SDmitry PreobrazhenskySee a description :ref:`here<amdgpu_synid_sc1>`. 37662c46093SDmitry Preobrazhensky 37762c46093SDmitry Preobrazhenskynt 37862c46093SDmitry Preobrazhensky~~ 37962c46093SDmitry Preobrazhensky 38062c46093SDmitry PreobrazhenskySee a description :ref:`here<amdgpu_synid_nt>`. 38162c46093SDmitry Preobrazhensky 38247eb6368SDmitry PreobrazhenskyMIMG Modifiers 38347eb6368SDmitry Preobrazhensky-------------- 38447eb6368SDmitry Preobrazhensky 38547eb6368SDmitry Preobrazhensky.. _amdgpu_synid_dmask: 38647eb6368SDmitry Preobrazhensky 38747eb6368SDmitry Preobrazhenskydmask 38847eb6368SDmitry Preobrazhensky~~~~~ 38947eb6368SDmitry Preobrazhensky 39047eb6368SDmitry PreobrazhenskySpecifies which channels (image components) are used by the operation. By default, no channels 39147eb6368SDmitry Preobrazhenskyare used. 39247eb6368SDmitry Preobrazhensky 393b9683d3cSDmitry Preobrazhensky =============== ==================================================================== 39447eb6368SDmitry Preobrazhensky Syntax Description 395b9683d3cSDmitry Preobrazhensky =============== ==================================================================== 39647eb6368SDmitry Preobrazhensky dmask:{0..15} Specifies image channels as a positive 397b9683d3cSDmitry Preobrazhensky :ref:`integer number <amdgpu_synid_integer_number>` 398b9683d3cSDmitry Preobrazhensky or an :ref:`absolute expression<amdgpu_synid_absolute_expression>`. 39947eb6368SDmitry Preobrazhensky 400b9683d3cSDmitry Preobrazhensky Each bit corresponds to one of 4 image components (RGBA). 40147eb6368SDmitry Preobrazhensky 402b9683d3cSDmitry Preobrazhensky If the specified bit value is 0, the component is not used, 403b9683d3cSDmitry Preobrazhensky value 1 means that the component is used. 404b9683d3cSDmitry Preobrazhensky =============== ==================================================================== 40547eb6368SDmitry Preobrazhensky 40647eb6368SDmitry PreobrazhenskyThis modifier has some limitations depending on instruction kind: 40747eb6368SDmitry Preobrazhensky 40847eb6368SDmitry Preobrazhensky =================================================== ======================== 40947eb6368SDmitry Preobrazhensky Instruction Kind Valid dmask Values 41047eb6368SDmitry Preobrazhensky =================================================== ======================== 41147eb6368SDmitry Preobrazhensky 32-bit atomic *cmpswap* 0x3 41247eb6368SDmitry Preobrazhensky 32-bit atomic instructions except for *cmpswap* 0x1 41347eb6368SDmitry Preobrazhensky 64-bit atomic *cmpswap* 0xF 41447eb6368SDmitry Preobrazhensky 64-bit atomic instructions except for *cmpswap* 0x3 41547eb6368SDmitry Preobrazhensky *gather4* 0x1, 0x2, 0x4, 0x8 41647eb6368SDmitry Preobrazhensky Other instructions any value 41747eb6368SDmitry Preobrazhensky =================================================== ======================== 41847eb6368SDmitry Preobrazhensky 41947eb6368SDmitry PreobrazhenskyExamples: 42047eb6368SDmitry Preobrazhensky 4211fa7aaf5SDmitry Preobrazhensky.. parsed-literal:: 42247eb6368SDmitry Preobrazhensky 42347eb6368SDmitry Preobrazhensky dmask:0xf 42447eb6368SDmitry Preobrazhensky dmask:0b1111 425b9683d3cSDmitry Preobrazhensky dmask:x|y|z 42647eb6368SDmitry Preobrazhensky 42747eb6368SDmitry Preobrazhensky.. _amdgpu_synid_unorm: 42847eb6368SDmitry Preobrazhensky 42947eb6368SDmitry Preobrazhenskyunorm 43047eb6368SDmitry Preobrazhensky~~~~~ 43147eb6368SDmitry Preobrazhensky 43247eb6368SDmitry PreobrazhenskySpecifies whether the address is normalized or not (the address is normalized by default). 43347eb6368SDmitry Preobrazhensky 43447eb6368SDmitry Preobrazhensky ======================== ======================================== 43547eb6368SDmitry Preobrazhensky Syntax Description 43647eb6368SDmitry Preobrazhensky ======================== ======================================== 43747eb6368SDmitry Preobrazhensky unorm Force the address to be unnormalized. 43847eb6368SDmitry Preobrazhensky ======================== ======================================== 43947eb6368SDmitry Preobrazhensky 44047eb6368SDmitry Preobrazhenskyglc 44147eb6368SDmitry Preobrazhensky~~~ 44247eb6368SDmitry Preobrazhensky 44347eb6368SDmitry PreobrazhenskySee a description :ref:`here<amdgpu_synid_glc>`. 44447eb6368SDmitry Preobrazhensky 44547eb6368SDmitry Preobrazhenskyslc 44647eb6368SDmitry Preobrazhensky~~~ 44747eb6368SDmitry Preobrazhensky 44847eb6368SDmitry PreobrazhenskySee a description :ref:`here<amdgpu_synid_slc>`. 44947eb6368SDmitry Preobrazhensky 45047eb6368SDmitry Preobrazhensky.. _amdgpu_synid_r128: 45147eb6368SDmitry Preobrazhensky 45247eb6368SDmitry Preobrazhenskyr128 45347eb6368SDmitry Preobrazhensky~~~~ 45447eb6368SDmitry Preobrazhensky 45547eb6368SDmitry PreobrazhenskySpecifies texture resource size. The default size is 256 bits. 45647eb6368SDmitry Preobrazhensky 457cef9d421SDmitry PreobrazhenskyGFX7, GFX8 and GFX10 only. 45847eb6368SDmitry Preobrazhensky 45947eb6368SDmitry Preobrazhensky =================== ================================================ 46047eb6368SDmitry Preobrazhensky Syntax Description 46147eb6368SDmitry Preobrazhensky =================== ================================================ 46247eb6368SDmitry Preobrazhensky r128 Specifies 128 bits texture resource size. 46347eb6368SDmitry Preobrazhensky =================== ================================================ 46447eb6368SDmitry Preobrazhensky 465e8fa9014SKazu Hirata.. WARNING:: Using this modifier should decrease *rsrc* operand size from 8 to 4 dwords, but assembler does not currently support this feature. 46647eb6368SDmitry Preobrazhensky 46747eb6368SDmitry Preobrazhenskytfe 46847eb6368SDmitry Preobrazhensky~~~ 46947eb6368SDmitry Preobrazhensky 47047eb6368SDmitry PreobrazhenskySee a description :ref:`here<amdgpu_synid_tfe>`. 47147eb6368SDmitry Preobrazhensky 47247eb6368SDmitry Preobrazhensky.. _amdgpu_synid_lwe: 47347eb6368SDmitry Preobrazhensky 47447eb6368SDmitry Preobrazhenskylwe 47547eb6368SDmitry Preobrazhensky~~~ 47647eb6368SDmitry Preobrazhensky 47747eb6368SDmitry PreobrazhenskySpecifies LOD warning status (LOD warning is disabled by default). 47847eb6368SDmitry Preobrazhensky 47947eb6368SDmitry Preobrazhensky ======================================== ================================================ 48047eb6368SDmitry Preobrazhensky Syntax Description 48147eb6368SDmitry Preobrazhensky ======================================== ================================================ 48247eb6368SDmitry Preobrazhensky lwe Enables LOD warning. 48347eb6368SDmitry Preobrazhensky ======================================== ================================================ 48447eb6368SDmitry Preobrazhensky 48547eb6368SDmitry Preobrazhensky.. _amdgpu_synid_da: 48647eb6368SDmitry Preobrazhensky 48747eb6368SDmitry Preobrazhenskyda 48847eb6368SDmitry Preobrazhensky~~ 48947eb6368SDmitry Preobrazhensky 49047eb6368SDmitry PreobrazhenskySpecifies if an array index must be sent to TA. By default, array index is not sent. 49147eb6368SDmitry Preobrazhensky 49247eb6368SDmitry Preobrazhensky ======================================== ================================================ 49347eb6368SDmitry Preobrazhensky Syntax Description 49447eb6368SDmitry Preobrazhensky ======================================== ================================================ 49547eb6368SDmitry Preobrazhensky da Send an array-index to TA. 49647eb6368SDmitry Preobrazhensky ======================================== ================================================ 49747eb6368SDmitry Preobrazhensky 49847eb6368SDmitry Preobrazhensky.. _amdgpu_synid_d16: 49947eb6368SDmitry Preobrazhensky 50047eb6368SDmitry Preobrazhenskyd16 50147eb6368SDmitry Preobrazhensky~~~ 50247eb6368SDmitry Preobrazhensky 50347eb6368SDmitry PreobrazhenskySpecifies data size: 16 or 32 bits (32 bits by default). Not supported by GFX7. 50447eb6368SDmitry Preobrazhensky 50547eb6368SDmitry Preobrazhensky ======================================== ================================================ 50647eb6368SDmitry Preobrazhensky Syntax Description 50747eb6368SDmitry Preobrazhensky ======================================== ================================================ 50847eb6368SDmitry Preobrazhensky d16 Enables 16-bits data mode. 50947eb6368SDmitry Preobrazhensky 51047eb6368SDmitry Preobrazhensky On loads, convert data in memory to 16-bit 51147eb6368SDmitry Preobrazhensky format before storing it in VGPRs. 51247eb6368SDmitry Preobrazhensky 51347eb6368SDmitry Preobrazhensky For stores, convert 16-bit data in VGPRs to 51447eb6368SDmitry Preobrazhensky 32 bits before going to memory. 51547eb6368SDmitry Preobrazhensky 51647eb6368SDmitry Preobrazhensky Note that GFX8.0 does not support data packing. 51747eb6368SDmitry Preobrazhensky Each 16-bit data element occupies 1 VGPR. 51847eb6368SDmitry Preobrazhensky 519cef9d421SDmitry Preobrazhensky GFX8.1, GFX9 and GFX10 support data packing. 52047eb6368SDmitry Preobrazhensky Each pair of 16-bit data elements 52147eb6368SDmitry Preobrazhensky occupies 1 VGPR. 52247eb6368SDmitry Preobrazhensky ======================================== ================================================ 52347eb6368SDmitry Preobrazhensky 52447eb6368SDmitry Preobrazhensky.. _amdgpu_synid_a16: 52547eb6368SDmitry Preobrazhensky 52647eb6368SDmitry Preobrazhenskya16 52747eb6368SDmitry Preobrazhensky~~~ 52847eb6368SDmitry Preobrazhensky 529cef9d421SDmitry PreobrazhenskySpecifies size of image address components: 16 or 32 bits (32 bits by default). 530cef9d421SDmitry PreobrazhenskyGFX9 and GFX10 only. 53147eb6368SDmitry Preobrazhensky 53247eb6368SDmitry Preobrazhensky ======================================== ================================================ 53347eb6368SDmitry Preobrazhensky Syntax Description 53447eb6368SDmitry Preobrazhensky ======================================== ================================================ 53547eb6368SDmitry Preobrazhensky a16 Enables 16-bits image address components. 53647eb6368SDmitry Preobrazhensky ======================================== ================================================ 53747eb6368SDmitry Preobrazhensky 538cef9d421SDmitry Preobrazhensky.. _amdgpu_synid_dim: 539cef9d421SDmitry Preobrazhensky 540cef9d421SDmitry Preobrazhenskydim 541cef9d421SDmitry Preobrazhensky~~~ 542cef9d421SDmitry Preobrazhensky 543cef9d421SDmitry PreobrazhenskySpecifies surface dimension. This is a mandatory modifier. There is no default value. 544cef9d421SDmitry Preobrazhensky 545cef9d421SDmitry PreobrazhenskyGFX10 only. 546cef9d421SDmitry Preobrazhensky 547cef9d421SDmitry Preobrazhensky =============================== ========================================================= 548cef9d421SDmitry Preobrazhensky Syntax Description 549cef9d421SDmitry Preobrazhensky =============================== ========================================================= 550cef9d421SDmitry Preobrazhensky dim:1D One-dimensional image. 551cef9d421SDmitry Preobrazhensky dim:2D Two-dimensional image. 552cef9d421SDmitry Preobrazhensky dim:3D Three-dimensional image. 553cef9d421SDmitry Preobrazhensky dim:CUBE Cubemap array. 554cef9d421SDmitry Preobrazhensky dim:1D_ARRAY One-dimensional image array. 555cef9d421SDmitry Preobrazhensky dim:2D_ARRAY Two-dimensional image array. 556cef9d421SDmitry Preobrazhensky dim:2D_MSAA Two-dimensional multi-sample auto-aliasing image. 557cef9d421SDmitry Preobrazhensky dim:2D_MSAA_ARRAY Two-dimensional multi-sample auto-aliasing image array. 558cef9d421SDmitry Preobrazhensky =============================== ========================================================= 559cef9d421SDmitry Preobrazhensky 560cef9d421SDmitry PreobrazhenskyThe following table defines an alternative syntax which is supported 561cef9d421SDmitry Preobrazhenskyfor compatibility with SP3 assembler: 562cef9d421SDmitry Preobrazhensky 563cef9d421SDmitry Preobrazhensky =============================== ========================================================= 564cef9d421SDmitry Preobrazhensky Syntax Description 565cef9d421SDmitry Preobrazhensky =============================== ========================================================= 566cef9d421SDmitry Preobrazhensky dim:SQ_RSRC_IMG_1D One-dimensional image. 567cef9d421SDmitry Preobrazhensky dim:SQ_RSRC_IMG_2D Two-dimensional image. 568cef9d421SDmitry Preobrazhensky dim:SQ_RSRC_IMG_3D Three-dimensional image. 569cef9d421SDmitry Preobrazhensky dim:SQ_RSRC_IMG_CUBE Cubemap array. 570cef9d421SDmitry Preobrazhensky dim:SQ_RSRC_IMG_1D_ARRAY One-dimensional image array. 571cef9d421SDmitry Preobrazhensky dim:SQ_RSRC_IMG_2D_ARRAY Two-dimensional image array. 572cef9d421SDmitry Preobrazhensky dim:SQ_RSRC_IMG_2D_MSAA Two-dimensional multi-sample auto-aliasing image. 573cef9d421SDmitry Preobrazhensky dim:SQ_RSRC_IMG_2D_MSAA_ARRAY Two-dimensional multi-sample auto-aliasing image array. 574cef9d421SDmitry Preobrazhensky =============================== ========================================================= 575cef9d421SDmitry Preobrazhensky 576cef9d421SDmitry Preobrazhenskydlc 577cef9d421SDmitry Preobrazhensky~~~ 578cef9d421SDmitry Preobrazhensky 579cef9d421SDmitry PreobrazhenskySee a description :ref:`here<amdgpu_synid_dlc>`. GFX10 only. 580cef9d421SDmitry Preobrazhensky 58147eb6368SDmitry PreobrazhenskyMiscellaneous Modifiers 58247eb6368SDmitry Preobrazhensky----------------------- 58347eb6368SDmitry Preobrazhensky 584cef9d421SDmitry Preobrazhensky.. _amdgpu_synid_dlc: 585cef9d421SDmitry Preobrazhensky 586cef9d421SDmitry Preobrazhenskydlc 587cef9d421SDmitry Preobrazhensky~~~ 588cef9d421SDmitry Preobrazhensky 589cef9d421SDmitry PreobrazhenskyControls device level cache policy for memory operations. Used for synchronization. 590cef9d421SDmitry PreobrazhenskyWhen specified, forces operation to bypass device level cache making the operation device 591cef9d421SDmitry Preobrazhenskylevel coherent. By default, instructions use device level cache. 592cef9d421SDmitry Preobrazhensky 593cef9d421SDmitry PreobrazhenskyGFX10 only. 594cef9d421SDmitry Preobrazhensky 595cef9d421SDmitry Preobrazhensky ======================================== ================================================ 596cef9d421SDmitry Preobrazhensky Syntax Description 597cef9d421SDmitry Preobrazhensky ======================================== ================================================ 598cef9d421SDmitry Preobrazhensky dlc Bypass device level cache. 599cef9d421SDmitry Preobrazhensky ======================================== ================================================ 600cef9d421SDmitry Preobrazhensky 60147eb6368SDmitry Preobrazhensky.. _amdgpu_synid_glc: 60247eb6368SDmitry Preobrazhensky 60347eb6368SDmitry Preobrazhenskyglc 60447eb6368SDmitry Preobrazhensky~~~ 60547eb6368SDmitry Preobrazhensky 60647eb6368SDmitry PreobrazhenskyThis modifier has different meaning for loads, stores, and atomic operations. 60747eb6368SDmitry PreobrazhenskyThe default value is off (0). 60847eb6368SDmitry Preobrazhensky 60947eb6368SDmitry PreobrazhenskySee AMD documentation for details. 61047eb6368SDmitry Preobrazhensky 61147eb6368SDmitry Preobrazhensky ======================================== ================================================ 61247eb6368SDmitry Preobrazhensky Syntax Description 61347eb6368SDmitry Preobrazhensky ======================================== ================================================ 61447eb6368SDmitry Preobrazhensky glc Set glc bit to 1. 61547eb6368SDmitry Preobrazhensky ======================================== ================================================ 61647eb6368SDmitry Preobrazhensky 617cef9d421SDmitry Preobrazhensky.. _amdgpu_synid_lds: 618cef9d421SDmitry Preobrazhensky 619cef9d421SDmitry Preobrazhenskylds 620cef9d421SDmitry Preobrazhensky~~~ 621cef9d421SDmitry Preobrazhensky 622cef9d421SDmitry PreobrazhenskySpecifies where to store the result: VGPRs or LDS (VGPRs by default). 623cef9d421SDmitry Preobrazhensky 624cef9d421SDmitry Preobrazhensky ======================================== =========================== 625cef9d421SDmitry Preobrazhensky Syntax Description 626cef9d421SDmitry Preobrazhensky ======================================== =========================== 627cef9d421SDmitry Preobrazhensky lds Store result in LDS. 628cef9d421SDmitry Preobrazhensky ======================================== =========================== 629cef9d421SDmitry Preobrazhensky 630cef9d421SDmitry Preobrazhensky.. _amdgpu_synid_nv: 631cef9d421SDmitry Preobrazhensky 632cef9d421SDmitry Preobrazhenskynv 633cef9d421SDmitry Preobrazhensky~~ 634cef9d421SDmitry Preobrazhensky 635cef9d421SDmitry PreobrazhenskySpecifies if instruction is operating on non-volatile memory. By default, memory is volatile. 636cef9d421SDmitry Preobrazhensky 637cef9d421SDmitry PreobrazhenskyGFX9 only. 638cef9d421SDmitry Preobrazhensky 639cef9d421SDmitry Preobrazhensky ======================================== ================================================ 640cef9d421SDmitry Preobrazhensky Syntax Description 641cef9d421SDmitry Preobrazhensky ======================================== ================================================ 642cef9d421SDmitry Preobrazhensky nv Indicates that instruction operates on 643cef9d421SDmitry Preobrazhensky non-volatile memory. 644cef9d421SDmitry Preobrazhensky ======================================== ================================================ 645cef9d421SDmitry Preobrazhensky 64647eb6368SDmitry Preobrazhensky.. _amdgpu_synid_slc: 64747eb6368SDmitry Preobrazhensky 64847eb6368SDmitry Preobrazhenskyslc 64947eb6368SDmitry Preobrazhensky~~~ 65047eb6368SDmitry Preobrazhensky 65147eb6368SDmitry PreobrazhenskySpecifies cache policy. The default value is off (0). 65247eb6368SDmitry Preobrazhensky 65347eb6368SDmitry PreobrazhenskySee AMD documentation for details. 65447eb6368SDmitry Preobrazhensky 65547eb6368SDmitry Preobrazhensky ======================================== ================================================ 65647eb6368SDmitry Preobrazhensky Syntax Description 65747eb6368SDmitry Preobrazhensky ======================================== ================================================ 65847eb6368SDmitry Preobrazhensky slc Set slc bit to 1. 65947eb6368SDmitry Preobrazhensky ======================================== ================================================ 66047eb6368SDmitry Preobrazhensky 66147eb6368SDmitry Preobrazhensky.. _amdgpu_synid_tfe: 66247eb6368SDmitry Preobrazhensky 66347eb6368SDmitry Preobrazhenskytfe 66447eb6368SDmitry Preobrazhensky~~~ 66547eb6368SDmitry Preobrazhensky 66647eb6368SDmitry PreobrazhenskyControls access to partially resident textures. The default value is off (0). 66747eb6368SDmitry Preobrazhensky 66847eb6368SDmitry PreobrazhenskySee AMD documentation for details. 66947eb6368SDmitry Preobrazhensky 67047eb6368SDmitry Preobrazhensky ======================================== ================================================ 67147eb6368SDmitry Preobrazhensky Syntax Description 67247eb6368SDmitry Preobrazhensky ======================================== ================================================ 67347eb6368SDmitry Preobrazhensky tfe Set tfe bit to 1. 67447eb6368SDmitry Preobrazhensky ======================================== ================================================ 67547eb6368SDmitry Preobrazhensky 67662c46093SDmitry Preobrazhensky.. _amdgpu_synid_sc0: 67762c46093SDmitry Preobrazhensky 67862c46093SDmitry Preobrazhenskysc0 67962c46093SDmitry Preobrazhensky~~~ 68062c46093SDmitry Preobrazhensky 68162c46093SDmitry PreobrazhenskyFor atomics, sc0 indicates that the atomic operation returns a value. 68262c46093SDmitry PreobrazhenskyFor other opcodes is is used together with :ref:`sc1<amdgpu_synid_sc1>` to specify cache 68362c46093SDmitry Preobrazhenskypolicy. See AMD documentation for details. 68462c46093SDmitry Preobrazhensky 68562c46093SDmitry Preobrazhensky ======================================== ================================================ 68662c46093SDmitry Preobrazhensky Syntax Description 68762c46093SDmitry Preobrazhensky ======================================== ================================================ 68862c46093SDmitry Preobrazhensky sc0 Set sc0 bit to 1. 68962c46093SDmitry Preobrazhensky ======================================== ================================================ 69062c46093SDmitry Preobrazhensky 69162c46093SDmitry Preobrazhensky.. _amdgpu_synid_sc1: 69262c46093SDmitry Preobrazhensky 69362c46093SDmitry Preobrazhenskysc1 69462c46093SDmitry Preobrazhensky~~~ 69562c46093SDmitry Preobrazhensky 69662c46093SDmitry PreobrazhenskyThis modifier is used together with :ref:`sc0<amdgpu_synid_sc0>` to specify cache 69762c46093SDmitry Preobrazhenskypolicy. 69862c46093SDmitry Preobrazhensky 69962c46093SDmitry Preobrazhensky ======================================== ================================================ 70062c46093SDmitry Preobrazhensky Syntax Description 70162c46093SDmitry Preobrazhensky ======================================== ================================================ 70262c46093SDmitry Preobrazhensky sc1 Set sc1 bit to 1. 70362c46093SDmitry Preobrazhensky ======================================== ================================================ 70462c46093SDmitry Preobrazhensky 70562c46093SDmitry Preobrazhensky.. _amdgpu_synid_nt: 70662c46093SDmitry Preobrazhensky 70762c46093SDmitry Preobrazhenskynt 70862c46093SDmitry Preobrazhensky~~ 70962c46093SDmitry Preobrazhensky 71062c46093SDmitry PreobrazhenskyIndicates an operation with non-temporal data. 71162c46093SDmitry Preobrazhensky 71262c46093SDmitry Preobrazhensky ======================================== ================================================ 71362c46093SDmitry Preobrazhensky Syntax Description 71462c46093SDmitry Preobrazhensky ======================================== ================================================ 71562c46093SDmitry Preobrazhensky nt Set nt bit to 1. 71662c46093SDmitry Preobrazhensky ======================================== ================================================ 71762c46093SDmitry Preobrazhensky 71847eb6368SDmitry PreobrazhenskyMUBUF/MTBUF Modifiers 71947eb6368SDmitry Preobrazhensky--------------------- 72047eb6368SDmitry Preobrazhensky 72147eb6368SDmitry Preobrazhensky.. _amdgpu_synid_idxen: 72247eb6368SDmitry Preobrazhensky 72347eb6368SDmitry Preobrazhenskyidxen 72447eb6368SDmitry Preobrazhensky~~~~~ 72547eb6368SDmitry Preobrazhensky 72647eb6368SDmitry PreobrazhenskySpecifies whether address components include an index. By default, no components are used. 72747eb6368SDmitry Preobrazhensky 72847eb6368SDmitry PreobrazhenskyCan be used together with :ref:`offen<amdgpu_synid_offen>`. 72947eb6368SDmitry Preobrazhensky 73047eb6368SDmitry PreobrazhenskyCannot be used with :ref:`addr64<amdgpu_synid_addr64>`. 73147eb6368SDmitry Preobrazhensky 73247eb6368SDmitry Preobrazhensky ======================================== ================================================ 73347eb6368SDmitry Preobrazhensky Syntax Description 73447eb6368SDmitry Preobrazhensky ======================================== ================================================ 73547eb6368SDmitry Preobrazhensky idxen Address components include an index. 73647eb6368SDmitry Preobrazhensky ======================================== ================================================ 73747eb6368SDmitry Preobrazhensky 73847eb6368SDmitry Preobrazhensky.. _amdgpu_synid_offen: 73947eb6368SDmitry Preobrazhensky 74047eb6368SDmitry Preobrazhenskyoffen 74147eb6368SDmitry Preobrazhensky~~~~~ 74247eb6368SDmitry Preobrazhensky 74347eb6368SDmitry PreobrazhenskySpecifies whether address components include an offset. By default, no components are used. 74447eb6368SDmitry Preobrazhensky 74547eb6368SDmitry PreobrazhenskyCan be used together with :ref:`idxen<amdgpu_synid_idxen>`. 74647eb6368SDmitry Preobrazhensky 74747eb6368SDmitry PreobrazhenskyCannot be used with :ref:`addr64<amdgpu_synid_addr64>`. 74847eb6368SDmitry Preobrazhensky 74947eb6368SDmitry Preobrazhensky ======================================== ================================================ 75047eb6368SDmitry Preobrazhensky Syntax Description 75147eb6368SDmitry Preobrazhensky ======================================== ================================================ 75247eb6368SDmitry Preobrazhensky offen Address components include an offset. 75347eb6368SDmitry Preobrazhensky ======================================== ================================================ 75447eb6368SDmitry Preobrazhensky 75547eb6368SDmitry Preobrazhensky.. _amdgpu_synid_addr64: 75647eb6368SDmitry Preobrazhensky 75747eb6368SDmitry Preobrazhenskyaddr64 75847eb6368SDmitry Preobrazhensky~~~~~~ 75947eb6368SDmitry Preobrazhensky 76047eb6368SDmitry PreobrazhenskySpecifies whether a 64-bit address is used. By default, no address is used. 76147eb6368SDmitry Preobrazhensky 76247eb6368SDmitry PreobrazhenskyGFX7 only. Cannot be used with :ref:`offen<amdgpu_synid_offen>` and 76347eb6368SDmitry Preobrazhensky:ref:`idxen<amdgpu_synid_idxen>` modifiers. 76447eb6368SDmitry Preobrazhensky 76547eb6368SDmitry Preobrazhensky ======================================== ================================================ 76647eb6368SDmitry Preobrazhensky Syntax Description 76747eb6368SDmitry Preobrazhensky ======================================== ================================================ 76847eb6368SDmitry Preobrazhensky addr64 A 64-bit address is used. 76947eb6368SDmitry Preobrazhensky ======================================== ================================================ 77047eb6368SDmitry Preobrazhensky 77147eb6368SDmitry Preobrazhensky.. _amdgpu_synid_buf_offset12: 77247eb6368SDmitry Preobrazhensky 773ddac5c9bSDmitry Preobrazhenskyoffset12 774ddac5c9bSDmitry Preobrazhensky~~~~~~~~ 77547eb6368SDmitry Preobrazhensky 77647eb6368SDmitry PreobrazhenskySpecifies an immediate unsigned 12-bit offset, in bytes. The default value is 0. 77747eb6368SDmitry Preobrazhensky 778b9683d3cSDmitry Preobrazhensky ================== ==================================================================== 77947eb6368SDmitry Preobrazhensky Syntax Description 780b9683d3cSDmitry Preobrazhensky ================== ==================================================================== 78147eb6368SDmitry Preobrazhensky offset:{0..0xFFF} Specifies a 12-bit unsigned offset as a positive 782b9683d3cSDmitry Preobrazhensky :ref:`integer number <amdgpu_synid_integer_number>` 783b9683d3cSDmitry Preobrazhensky or an :ref:`absolute expression<amdgpu_synid_absolute_expression>`. 784b9683d3cSDmitry Preobrazhensky ================== ==================================================================== 78547eb6368SDmitry Preobrazhensky 78647eb6368SDmitry PreobrazhenskyExamples: 78747eb6368SDmitry Preobrazhensky 7881fa7aaf5SDmitry Preobrazhensky.. parsed-literal:: 78947eb6368SDmitry Preobrazhensky 790b9683d3cSDmitry Preobrazhensky offset:x+y 79147eb6368SDmitry Preobrazhensky offset:0x10 79247eb6368SDmitry Preobrazhensky 79347eb6368SDmitry Preobrazhenskyglc 79447eb6368SDmitry Preobrazhensky~~~ 79547eb6368SDmitry Preobrazhensky 79647eb6368SDmitry PreobrazhenskySee a description :ref:`here<amdgpu_synid_glc>`. 79747eb6368SDmitry Preobrazhensky 79847eb6368SDmitry Preobrazhenskyslc 79947eb6368SDmitry Preobrazhensky~~~ 80047eb6368SDmitry Preobrazhensky 80147eb6368SDmitry PreobrazhenskySee a description :ref:`here<amdgpu_synid_slc>`. 80247eb6368SDmitry Preobrazhensky 80347eb6368SDmitry Preobrazhenskylds 80447eb6368SDmitry Preobrazhensky~~~ 80547eb6368SDmitry Preobrazhensky 806cef9d421SDmitry PreobrazhenskySee a description :ref:`here<amdgpu_synid_lds>`. 80747eb6368SDmitry Preobrazhensky 808cef9d421SDmitry Preobrazhenskydlc 809cef9d421SDmitry Preobrazhensky~~~ 810cef9d421SDmitry Preobrazhensky 811cef9d421SDmitry PreobrazhenskySee a description :ref:`here<amdgpu_synid_dlc>`. GFX10 only. 81247eb6368SDmitry Preobrazhensky 81347eb6368SDmitry Preobrazhenskytfe 81447eb6368SDmitry Preobrazhensky~~~ 81547eb6368SDmitry Preobrazhensky 81647eb6368SDmitry PreobrazhenskySee a description :ref:`here<amdgpu_synid_tfe>`. 81747eb6368SDmitry Preobrazhensky 8183f7985e6SDmitry Preobrazhensky.. _amdgpu_synid_fmt: 81947eb6368SDmitry Preobrazhensky 8203f7985e6SDmitry Preobrazhenskyfmt 8213f7985e6SDmitry Preobrazhensky~~~ 8223f7985e6SDmitry Preobrazhensky 8233f7985e6SDmitry PreobrazhenskySpecifies data and numeric formats used by the operation. 8243f7985e6SDmitry PreobrazhenskyThe default numeric format is BUF_NUM_FORMAT_UNORM. 8253f7985e6SDmitry PreobrazhenskyThe default data format is BUF_DATA_FORMAT_8. 8263f7985e6SDmitry Preobrazhensky 8273f7985e6SDmitry Preobrazhensky ========================================= =============================================================== 8283f7985e6SDmitry Preobrazhensky Syntax Description 8293f7985e6SDmitry Preobrazhensky ========================================= =============================================================== 8303f7985e6SDmitry Preobrazhensky format:{0..127} Use format specified as either an 8313f7985e6SDmitry Preobrazhensky :ref:`integer number<amdgpu_synid_integer_number>` or an 8323f7985e6SDmitry Preobrazhensky :ref:`absolute expression<amdgpu_synid_absolute_expression>`. 8333f7985e6SDmitry Preobrazhensky format:[<data format>] Use the specified data format and 8343f7985e6SDmitry Preobrazhensky default numeric format. 8353f7985e6SDmitry Preobrazhensky format:[<numeric format>] Use the specified numeric format and 8363f7985e6SDmitry Preobrazhensky default data format. 8373f7985e6SDmitry Preobrazhensky format:[<data format>, <numeric format>] Use the specified data and numeric formats. 8383f7985e6SDmitry Preobrazhensky format:[<numeric format>, <data format>] Use the specified data and numeric formats. 8393f7985e6SDmitry Preobrazhensky ========================================= =============================================================== 8403f7985e6SDmitry Preobrazhensky 8413f7985e6SDmitry Preobrazhensky.. _amdgpu_synid_format_data: 8423f7985e6SDmitry Preobrazhensky 8433f7985e6SDmitry PreobrazhenskySupported data formats are defined in the following table: 8443f7985e6SDmitry Preobrazhensky 8453f7985e6SDmitry Preobrazhensky ========================================= =============================== 8463f7985e6SDmitry Preobrazhensky Syntax Note 8473f7985e6SDmitry Preobrazhensky ========================================= =============================== 8483f7985e6SDmitry Preobrazhensky BUF_DATA_FORMAT_INVALID 8493f7985e6SDmitry Preobrazhensky BUF_DATA_FORMAT_8 Default value. 8503f7985e6SDmitry Preobrazhensky BUF_DATA_FORMAT_16 8513f7985e6SDmitry Preobrazhensky BUF_DATA_FORMAT_8_8 8523f7985e6SDmitry Preobrazhensky BUF_DATA_FORMAT_32 8533f7985e6SDmitry Preobrazhensky BUF_DATA_FORMAT_16_16 8543f7985e6SDmitry Preobrazhensky BUF_DATA_FORMAT_10_11_11 8553f7985e6SDmitry Preobrazhensky BUF_DATA_FORMAT_11_11_10 8563f7985e6SDmitry Preobrazhensky BUF_DATA_FORMAT_10_10_10_2 8573f7985e6SDmitry Preobrazhensky BUF_DATA_FORMAT_2_10_10_10 8583f7985e6SDmitry Preobrazhensky BUF_DATA_FORMAT_8_8_8_8 8593f7985e6SDmitry Preobrazhensky BUF_DATA_FORMAT_32_32 8603f7985e6SDmitry Preobrazhensky BUF_DATA_FORMAT_16_16_16_16 8613f7985e6SDmitry Preobrazhensky BUF_DATA_FORMAT_32_32_32 8623f7985e6SDmitry Preobrazhensky BUF_DATA_FORMAT_32_32_32_32 8633f7985e6SDmitry Preobrazhensky BUF_DATA_FORMAT_RESERVED_15 8643f7985e6SDmitry Preobrazhensky ========================================= =============================== 8653f7985e6SDmitry Preobrazhensky 8663f7985e6SDmitry Preobrazhensky.. _amdgpu_synid_format_num: 8673f7985e6SDmitry Preobrazhensky 8683f7985e6SDmitry PreobrazhenskySupported numeric formats are defined below: 8693f7985e6SDmitry Preobrazhensky 8703f7985e6SDmitry Preobrazhensky ========================================= =============================== 8713f7985e6SDmitry Preobrazhensky Syntax Note 8723f7985e6SDmitry Preobrazhensky ========================================= =============================== 8733f7985e6SDmitry Preobrazhensky BUF_NUM_FORMAT_UNORM Default value. 8743f7985e6SDmitry Preobrazhensky BUF_NUM_FORMAT_SNORM 8753f7985e6SDmitry Preobrazhensky BUF_NUM_FORMAT_USCALED 8763f7985e6SDmitry Preobrazhensky BUF_NUM_FORMAT_SSCALED 8773f7985e6SDmitry Preobrazhensky BUF_NUM_FORMAT_UINT 8783f7985e6SDmitry Preobrazhensky BUF_NUM_FORMAT_SINT 8793f7985e6SDmitry Preobrazhensky BUF_NUM_FORMAT_SNORM_OGL GFX7 only. 8803f7985e6SDmitry Preobrazhensky BUF_NUM_FORMAT_RESERVED_6 GFX8 and GFX9 only. 8813f7985e6SDmitry Preobrazhensky BUF_NUM_FORMAT_FLOAT 8823f7985e6SDmitry Preobrazhensky ========================================= =============================== 8833f7985e6SDmitry Preobrazhensky 8843f7985e6SDmitry PreobrazhenskyExamples: 8853f7985e6SDmitry Preobrazhensky 8863f7985e6SDmitry Preobrazhensky.. parsed-literal:: 8873f7985e6SDmitry Preobrazhensky 8883f7985e6SDmitry Preobrazhensky format:0 8893f7985e6SDmitry Preobrazhensky format:127 8903f7985e6SDmitry Preobrazhensky format:[BUF_DATA_FORMAT_16] 8913f7985e6SDmitry Preobrazhensky format:[BUF_DATA_FORMAT_16,BUF_NUM_FORMAT_SSCALED] 8923f7985e6SDmitry Preobrazhensky format:[BUF_NUM_FORMAT_FLOAT] 8933f7985e6SDmitry Preobrazhensky 8943f7985e6SDmitry Preobrazhensky.. _amdgpu_synid_ufmt: 8953f7985e6SDmitry Preobrazhensky 8963f7985e6SDmitry Preobrazhenskyufmt 89747eb6368SDmitry Preobrazhensky~~~~ 89847eb6368SDmitry Preobrazhensky 8993f7985e6SDmitry PreobrazhenskySpecifies a unified format used by the operation. 9003f7985e6SDmitry PreobrazhenskyThe default format is BUF_FMT_8_UNORM. 9013f7985e6SDmitry PreobrazhenskyGFX10 only. 90247eb6368SDmitry Preobrazhensky 9033f7985e6SDmitry Preobrazhensky ========================================= =============================================================== 9043f7985e6SDmitry Preobrazhensky Syntax Description 9053f7985e6SDmitry Preobrazhensky ========================================= =============================================================== 9063f7985e6SDmitry Preobrazhensky format:{0..127} Use unified format specified as either an 9073f7985e6SDmitry Preobrazhensky :ref:`integer number<amdgpu_synid_integer_number>` or an 9083f7985e6SDmitry Preobrazhensky :ref:`absolute expression<amdgpu_synid_absolute_expression>`. 9093f7985e6SDmitry Preobrazhensky Note that unified format numbers are not compatible with 9103f7985e6SDmitry Preobrazhensky format numbers used for pre-GFX10 ISA. 9113f7985e6SDmitry Preobrazhensky format:[<unified format>] Use the specified unified format. 9123f7985e6SDmitry Preobrazhensky ========================================= =============================================================== 91347eb6368SDmitry Preobrazhensky 9143f7985e6SDmitry PreobrazhenskyUnified format is a replacement for :ref:`data<amdgpu_synid_format_data>` 9153f7985e6SDmitry Preobrazhenskyand :ref:`numeric<amdgpu_synid_format_num>` formats. For compatibility with older ISA, 916e8fa9014SKazu Hirata:ref:`syntax with data and numeric formats<amdgpu_synid_fmt>` is still accepted 9173f7985e6SDmitry Preobrazhenskyprovided that the combination of formats can be mapped to a unified format. 91847eb6368SDmitry Preobrazhensky 9193f7985e6SDmitry PreobrazhenskySupported unified formats and equivalent combinations of data and numeric formats 9203f7985e6SDmitry Preobrazhenskyare defined below: 9213f7985e6SDmitry Preobrazhensky 9223f7985e6SDmitry Preobrazhensky ============================== ============================== ============================= 9233f7985e6SDmitry Preobrazhensky Syntax Equivalent Data Format Equivalent Numeric Format 9243f7985e6SDmitry Preobrazhensky ============================== ============================== ============================= 9253f7985e6SDmitry Preobrazhensky BUF_FMT_INVALID BUF_DATA_FORMAT_INVALID BUF_NUM_FORMAT_UNORM 9263f7985e6SDmitry Preobrazhensky 9273f7985e6SDmitry Preobrazhensky BUF_FMT_8_UNORM BUF_DATA_FORMAT_8 BUF_NUM_FORMAT_UNORM 9283f7985e6SDmitry Preobrazhensky BUF_FMT_8_SNORM BUF_DATA_FORMAT_8 BUF_NUM_FORMAT_SNORM 9293f7985e6SDmitry Preobrazhensky BUF_FMT_8_USCALED BUF_DATA_FORMAT_8 BUF_NUM_FORMAT_USCALED 9303f7985e6SDmitry Preobrazhensky BUF_FMT_8_SSCALED BUF_DATA_FORMAT_8 BUF_NUM_FORMAT_SSCALED 9313f7985e6SDmitry Preobrazhensky BUF_FMT_8_UINT BUF_DATA_FORMAT_8 BUF_NUM_FORMAT_UINT 9323f7985e6SDmitry Preobrazhensky BUF_FMT_8_SINT BUF_DATA_FORMAT_8 BUF_NUM_FORMAT_SINT 9333f7985e6SDmitry Preobrazhensky 9343f7985e6SDmitry Preobrazhensky BUF_FMT_16_UNORM BUF_DATA_FORMAT_16 BUF_NUM_FORMAT_UNORM 9353f7985e6SDmitry Preobrazhensky BUF_FMT_16_SNORM BUF_DATA_FORMAT_16 BUF_NUM_FORMAT_SNORM 9363f7985e6SDmitry Preobrazhensky BUF_FMT_16_USCALED BUF_DATA_FORMAT_16 BUF_NUM_FORMAT_USCALED 9373f7985e6SDmitry Preobrazhensky BUF_FMT_16_SSCALED BUF_DATA_FORMAT_16 BUF_NUM_FORMAT_SSCALED 9383f7985e6SDmitry Preobrazhensky BUF_FMT_16_UINT BUF_DATA_FORMAT_16 BUF_NUM_FORMAT_UINT 9393f7985e6SDmitry Preobrazhensky BUF_FMT_16_SINT BUF_DATA_FORMAT_16 BUF_NUM_FORMAT_SINT 9403f7985e6SDmitry Preobrazhensky BUF_FMT_16_FLOAT BUF_DATA_FORMAT_16 BUF_NUM_FORMAT_FLOAT 9413f7985e6SDmitry Preobrazhensky 9423f7985e6SDmitry Preobrazhensky BUF_FMT_8_8_UNORM BUF_DATA_FORMAT_8_8 BUF_NUM_FORMAT_UNORM 9433f7985e6SDmitry Preobrazhensky BUF_FMT_8_8_SNORM BUF_DATA_FORMAT_8_8 BUF_NUM_FORMAT_SNORM 9443f7985e6SDmitry Preobrazhensky BUF_FMT_8_8_USCALED BUF_DATA_FORMAT_8_8 BUF_NUM_FORMAT_USCALED 9453f7985e6SDmitry Preobrazhensky BUF_FMT_8_8_SSCALED BUF_DATA_FORMAT_8_8 BUF_NUM_FORMAT_SSCALED 9463f7985e6SDmitry Preobrazhensky BUF_FMT_8_8_UINT BUF_DATA_FORMAT_8_8 BUF_NUM_FORMAT_UINT 9473f7985e6SDmitry Preobrazhensky BUF_FMT_8_8_SINT BUF_DATA_FORMAT_8_8 BUF_NUM_FORMAT_SINT 9483f7985e6SDmitry Preobrazhensky 9493f7985e6SDmitry Preobrazhensky BUF_FMT_32_UINT BUF_DATA_FORMAT_32 BUF_NUM_FORMAT_UINT 9503f7985e6SDmitry Preobrazhensky BUF_FMT_32_SINT BUF_DATA_FORMAT_32 BUF_NUM_FORMAT_SINT 9513f7985e6SDmitry Preobrazhensky BUF_FMT_32_FLOAT BUF_DATA_FORMAT_32 BUF_NUM_FORMAT_FLOAT 9523f7985e6SDmitry Preobrazhensky 9533f7985e6SDmitry Preobrazhensky BUF_FMT_16_16_UNORM BUF_DATA_FORMAT_16_16 BUF_NUM_FORMAT_UNORM 9543f7985e6SDmitry Preobrazhensky BUF_FMT_16_16_SNORM BUF_DATA_FORMAT_16_16 BUF_NUM_FORMAT_SNORM 9553f7985e6SDmitry Preobrazhensky BUF_FMT_16_16_USCALED BUF_DATA_FORMAT_16_16 BUF_NUM_FORMAT_USCALED 9563f7985e6SDmitry Preobrazhensky BUF_FMT_16_16_SSCALED BUF_DATA_FORMAT_16_16 BUF_NUM_FORMAT_SSCALED 9573f7985e6SDmitry Preobrazhensky BUF_FMT_16_16_UINT BUF_DATA_FORMAT_16_16 BUF_NUM_FORMAT_UINT 9583f7985e6SDmitry Preobrazhensky BUF_FMT_16_16_SINT BUF_DATA_FORMAT_16_16 BUF_NUM_FORMAT_SINT 9593f7985e6SDmitry Preobrazhensky BUF_FMT_16_16_FLOAT BUF_DATA_FORMAT_16_16 BUF_NUM_FORMAT_FLOAT 9603f7985e6SDmitry Preobrazhensky 9613f7985e6SDmitry Preobrazhensky BUF_FMT_10_11_11_UNORM BUF_DATA_FORMAT_10_11_11 BUF_NUM_FORMAT_UNORM 9623f7985e6SDmitry Preobrazhensky BUF_FMT_10_11_11_SNORM BUF_DATA_FORMAT_10_11_11 BUF_NUM_FORMAT_SNORM 9633f7985e6SDmitry Preobrazhensky BUF_FMT_10_11_11_USCALED BUF_DATA_FORMAT_10_11_11 BUF_NUM_FORMAT_USCALED 9643f7985e6SDmitry Preobrazhensky BUF_FMT_10_11_11_SSCALED BUF_DATA_FORMAT_10_11_11 BUF_NUM_FORMAT_SSCALED 9653f7985e6SDmitry Preobrazhensky BUF_FMT_10_11_11_UINT BUF_DATA_FORMAT_10_11_11 BUF_NUM_FORMAT_UINT 9663f7985e6SDmitry Preobrazhensky BUF_FMT_10_11_11_SINT BUF_DATA_FORMAT_10_11_11 BUF_NUM_FORMAT_SINT 9673f7985e6SDmitry Preobrazhensky BUF_FMT_10_11_11_FLOAT BUF_DATA_FORMAT_10_11_11 BUF_NUM_FORMAT_FLOAT 9683f7985e6SDmitry Preobrazhensky 9693f7985e6SDmitry Preobrazhensky BUF_FMT_11_11_10_UNORM BUF_DATA_FORMAT_11_11_10 BUF_NUM_FORMAT_UNORM 9703f7985e6SDmitry Preobrazhensky BUF_FMT_11_11_10_SNORM BUF_DATA_FORMAT_11_11_10 BUF_NUM_FORMAT_SNORM 9713f7985e6SDmitry Preobrazhensky BUF_FMT_11_11_10_USCALED BUF_DATA_FORMAT_11_11_10 BUF_NUM_FORMAT_USCALED 9723f7985e6SDmitry Preobrazhensky BUF_FMT_11_11_10_SSCALED BUF_DATA_FORMAT_11_11_10 BUF_NUM_FORMAT_SSCALED 9733f7985e6SDmitry Preobrazhensky BUF_FMT_11_11_10_UINT BUF_DATA_FORMAT_11_11_10 BUF_NUM_FORMAT_UINT 9743f7985e6SDmitry Preobrazhensky BUF_FMT_11_11_10_SINT BUF_DATA_FORMAT_11_11_10 BUF_NUM_FORMAT_SINT 9753f7985e6SDmitry Preobrazhensky BUF_FMT_11_11_10_FLOAT BUF_DATA_FORMAT_11_11_10 BUF_NUM_FORMAT_FLOAT 9763f7985e6SDmitry Preobrazhensky 9773f7985e6SDmitry Preobrazhensky BUF_FMT_10_10_10_2_UNORM BUF_DATA_FORMAT_10_10_10_2 BUF_NUM_FORMAT_UNORM 9783f7985e6SDmitry Preobrazhensky BUF_FMT_10_10_10_2_SNORM BUF_DATA_FORMAT_10_10_10_2 BUF_NUM_FORMAT_SNORM 9793f7985e6SDmitry Preobrazhensky BUF_FMT_10_10_10_2_USCALED BUF_DATA_FORMAT_10_10_10_2 BUF_NUM_FORMAT_USCALED 9803f7985e6SDmitry Preobrazhensky BUF_FMT_10_10_10_2_SSCALED BUF_DATA_FORMAT_10_10_10_2 BUF_NUM_FORMAT_SSCALED 9813f7985e6SDmitry Preobrazhensky BUF_FMT_10_10_10_2_UINT BUF_DATA_FORMAT_10_10_10_2 BUF_NUM_FORMAT_UINT 9823f7985e6SDmitry Preobrazhensky BUF_FMT_10_10_10_2_SINT BUF_DATA_FORMAT_10_10_10_2 BUF_NUM_FORMAT_SINT 9833f7985e6SDmitry Preobrazhensky 9843f7985e6SDmitry Preobrazhensky BUF_FMT_2_10_10_10_UNORM BUF_DATA_FORMAT_2_10_10_10 BUF_NUM_FORMAT_UNORM 9853f7985e6SDmitry Preobrazhensky BUF_FMT_2_10_10_10_SNORM BUF_DATA_FORMAT_2_10_10_10 BUF_NUM_FORMAT_SNORM 9863f7985e6SDmitry Preobrazhensky BUF_FMT_2_10_10_10_USCALED BUF_DATA_FORMAT_2_10_10_10 BUF_NUM_FORMAT_USCALED 9873f7985e6SDmitry Preobrazhensky BUF_FMT_2_10_10_10_SSCALED BUF_DATA_FORMAT_2_10_10_10 BUF_NUM_FORMAT_SSCALED 9883f7985e6SDmitry Preobrazhensky BUF_FMT_2_10_10_10_UINT BUF_DATA_FORMAT_2_10_10_10 BUF_NUM_FORMAT_UINT 9893f7985e6SDmitry Preobrazhensky BUF_FMT_2_10_10_10_SINT BUF_DATA_FORMAT_2_10_10_10 BUF_NUM_FORMAT_SINT 9903f7985e6SDmitry Preobrazhensky 9913f7985e6SDmitry Preobrazhensky BUF_FMT_8_8_8_8_UNORM BUF_DATA_FORMAT_8_8_8_8 BUF_NUM_FORMAT_UNORM 9923f7985e6SDmitry Preobrazhensky BUF_FMT_8_8_8_8_SNORM BUF_DATA_FORMAT_8_8_8_8 BUF_NUM_FORMAT_SNORM 9933f7985e6SDmitry Preobrazhensky BUF_FMT_8_8_8_8_USCALED BUF_DATA_FORMAT_8_8_8_8 BUF_NUM_FORMAT_USCALED 9943f7985e6SDmitry Preobrazhensky BUF_FMT_8_8_8_8_SSCALED BUF_DATA_FORMAT_8_8_8_8 BUF_NUM_FORMAT_SSCALED 9953f7985e6SDmitry Preobrazhensky BUF_FMT_8_8_8_8_UINT BUF_DATA_FORMAT_8_8_8_8 BUF_NUM_FORMAT_UINT 9963f7985e6SDmitry Preobrazhensky BUF_FMT_8_8_8_8_SINT BUF_DATA_FORMAT_8_8_8_8 BUF_NUM_FORMAT_SINT 9973f7985e6SDmitry Preobrazhensky 9983f7985e6SDmitry Preobrazhensky BUF_FMT_32_32_UINT BUF_DATA_FORMAT_32_32 BUF_NUM_FORMAT_UINT 9993f7985e6SDmitry Preobrazhensky BUF_FMT_32_32_SINT BUF_DATA_FORMAT_32_32 BUF_NUM_FORMAT_SINT 10003f7985e6SDmitry Preobrazhensky BUF_FMT_32_32_FLOAT BUF_DATA_FORMAT_32_32 BUF_NUM_FORMAT_FLOAT 10013f7985e6SDmitry Preobrazhensky 10023f7985e6SDmitry Preobrazhensky BUF_FMT_16_16_16_16_UNORM BUF_DATA_FORMAT_16_16_16_16 BUF_NUM_FORMAT_UNORM 10033f7985e6SDmitry Preobrazhensky BUF_FMT_16_16_16_16_SNORM BUF_DATA_FORMAT_16_16_16_16 BUF_NUM_FORMAT_SNORM 10043f7985e6SDmitry Preobrazhensky BUF_FMT_16_16_16_16_USCALED BUF_DATA_FORMAT_16_16_16_16 BUF_NUM_FORMAT_USCALED 10053f7985e6SDmitry Preobrazhensky BUF_FMT_16_16_16_16_SSCALED BUF_DATA_FORMAT_16_16_16_16 BUF_NUM_FORMAT_SSCALED 10063f7985e6SDmitry Preobrazhensky BUF_FMT_16_16_16_16_UINT BUF_DATA_FORMAT_16_16_16_16 BUF_NUM_FORMAT_UINT 10073f7985e6SDmitry Preobrazhensky BUF_FMT_16_16_16_16_SINT BUF_DATA_FORMAT_16_16_16_16 BUF_NUM_FORMAT_SINT 10083f7985e6SDmitry Preobrazhensky BUF_FMT_16_16_16_16_FLOAT BUF_DATA_FORMAT_16_16_16_16 BUF_NUM_FORMAT_FLOAT 10093f7985e6SDmitry Preobrazhensky 10103f7985e6SDmitry Preobrazhensky BUF_FMT_32_32_32_UINT BUF_DATA_FORMAT_32_32_32 BUF_NUM_FORMAT_UINT 10113f7985e6SDmitry Preobrazhensky BUF_FMT_32_32_32_SINT BUF_DATA_FORMAT_32_32_32 BUF_NUM_FORMAT_SINT 10123f7985e6SDmitry Preobrazhensky BUF_FMT_32_32_32_FLOAT BUF_DATA_FORMAT_32_32_32 BUF_NUM_FORMAT_FLOAT 10133f7985e6SDmitry Preobrazhensky BUF_FMT_32_32_32_32_UINT BUF_DATA_FORMAT_32_32_32_32 BUF_NUM_FORMAT_UINT 10143f7985e6SDmitry Preobrazhensky BUF_FMT_32_32_32_32_SINT BUF_DATA_FORMAT_32_32_32_32 BUF_NUM_FORMAT_SINT 10153f7985e6SDmitry Preobrazhensky BUF_FMT_32_32_32_32_FLOAT BUF_DATA_FORMAT_32_32_32_32 BUF_NUM_FORMAT_FLOAT 10163f7985e6SDmitry Preobrazhensky ============================== ============================== ============================= 10173f7985e6SDmitry Preobrazhensky 10183f7985e6SDmitry PreobrazhenskyExamples: 10193f7985e6SDmitry Preobrazhensky 10203f7985e6SDmitry Preobrazhensky.. parsed-literal:: 10213f7985e6SDmitry Preobrazhensky 10223f7985e6SDmitry Preobrazhensky format:0 10233f7985e6SDmitry Preobrazhensky format:[BUF_FMT_32_UINT] 102447eb6368SDmitry Preobrazhensky 102547eb6368SDmitry PreobrazhenskySMRD/SMEM Modifiers 102647eb6368SDmitry Preobrazhensky------------------- 102747eb6368SDmitry Preobrazhensky 102847eb6368SDmitry Preobrazhenskyglc 102947eb6368SDmitry Preobrazhensky~~~ 103047eb6368SDmitry Preobrazhensky 103147eb6368SDmitry PreobrazhenskySee a description :ref:`here<amdgpu_synid_glc>`. 103247eb6368SDmitry Preobrazhensky 103347eb6368SDmitry Preobrazhenskynv 103447eb6368SDmitry Preobrazhensky~~ 103547eb6368SDmitry Preobrazhensky 1036cef9d421SDmitry PreobrazhenskySee a description :ref:`here<amdgpu_synid_nv>`. GFX9 only. 1037cef9d421SDmitry Preobrazhensky 1038cef9d421SDmitry Preobrazhenskydlc 1039cef9d421SDmitry Preobrazhensky~~~ 1040cef9d421SDmitry Preobrazhensky 1041cef9d421SDmitry PreobrazhenskySee a description :ref:`here<amdgpu_synid_dlc>`. GFX10 only. 104247eb6368SDmitry Preobrazhensky 1043*480f3e02SDmitry Preobrazhensky.. _amdgpu_synid_smem_offset20u: 1044*480f3e02SDmitry Preobrazhensky 1045*480f3e02SDmitry Preobrazhenskyoffset20u 1046*480f3e02SDmitry Preobrazhensky~~~~~~~~~ 1047*480f3e02SDmitry Preobrazhensky 1048*480f3e02SDmitry PreobrazhenskySpecifies an unsigned 20-bit offset, in bytes. The default value is 0. 1049*480f3e02SDmitry Preobrazhensky 1050*480f3e02SDmitry Preobrazhensky ==================== ==================================================================== 1051*480f3e02SDmitry Preobrazhensky Syntax Description 1052*480f3e02SDmitry Preobrazhensky ==================== ==================================================================== 1053*480f3e02SDmitry Preobrazhensky offset:{0..0xFFFFF} Specifies an offset as a positive 1054*480f3e02SDmitry Preobrazhensky :ref:`integer number <amdgpu_synid_integer_number>` 1055*480f3e02SDmitry Preobrazhensky or an :ref:`absolute expression<amdgpu_synid_absolute_expression>`. 1056*480f3e02SDmitry Preobrazhensky ==================== ==================================================================== 1057*480f3e02SDmitry Preobrazhensky 1058*480f3e02SDmitry PreobrazhenskyExamples: 1059*480f3e02SDmitry Preobrazhensky 1060*480f3e02SDmitry Preobrazhensky.. parsed-literal:: 1061*480f3e02SDmitry Preobrazhensky 1062*480f3e02SDmitry Preobrazhensky offset:1 1063*480f3e02SDmitry Preobrazhensky offset:0xfffff 1064*480f3e02SDmitry Preobrazhensky offset:x-y 1065*480f3e02SDmitry Preobrazhensky 1066*480f3e02SDmitry Preobrazhensky.. _amdgpu_synid_smem_offset21s: 1067*480f3e02SDmitry Preobrazhensky 1068*480f3e02SDmitry Preobrazhenskyoffset21s 1069*480f3e02SDmitry Preobrazhensky~~~~~~~~~ 1070*480f3e02SDmitry Preobrazhensky 1071*480f3e02SDmitry PreobrazhenskySpecifies a signed 21-bit offset, in bytes. The default value is 0. 1072*480f3e02SDmitry Preobrazhensky 1073*480f3e02SDmitry Preobrazhensky ============================= ==================================================================== 1074*480f3e02SDmitry Preobrazhensky Syntax Description 1075*480f3e02SDmitry Preobrazhensky ============================= ==================================================================== 1076*480f3e02SDmitry Preobrazhensky offset:{-0x100000..0xFFFFF} Specifies an offset as an 1077*480f3e02SDmitry Preobrazhensky :ref:`integer number <amdgpu_synid_integer_number>` 1078*480f3e02SDmitry Preobrazhensky or an :ref:`absolute expression<amdgpu_synid_absolute_expression>`. 1079*480f3e02SDmitry Preobrazhensky ============================= ==================================================================== 1080*480f3e02SDmitry Preobrazhensky 1081*480f3e02SDmitry PreobrazhenskyExamples: 1082*480f3e02SDmitry Preobrazhensky 1083*480f3e02SDmitry Preobrazhensky.. parsed-literal:: 1084*480f3e02SDmitry Preobrazhensky 1085*480f3e02SDmitry Preobrazhensky offset:-1 1086*480f3e02SDmitry Preobrazhensky offset:0xfffff 1087*480f3e02SDmitry Preobrazhensky offset:-x 1088*480f3e02SDmitry Preobrazhensky 108947eb6368SDmitry PreobrazhenskyVINTRP Modifiers 109047eb6368SDmitry Preobrazhensky---------------- 109147eb6368SDmitry Preobrazhensky 109247eb6368SDmitry Preobrazhensky.. _amdgpu_synid_high: 109347eb6368SDmitry Preobrazhensky 109447eb6368SDmitry Preobrazhenskyhigh 109547eb6368SDmitry Preobrazhensky~~~~ 109647eb6368SDmitry Preobrazhensky 109747eb6368SDmitry PreobrazhenskySpecifies which half of the LDS word to use. Low half of LDS word is used by default. 1098cef9d421SDmitry PreobrazhenskyGFX9 and GFX10 only. 109947eb6368SDmitry Preobrazhensky 110047eb6368SDmitry Preobrazhensky ======================================== ================================ 110147eb6368SDmitry Preobrazhensky Syntax Description 110247eb6368SDmitry Preobrazhensky ======================================== ================================ 110347eb6368SDmitry Preobrazhensky high Use high half of LDS word. 110447eb6368SDmitry Preobrazhensky ======================================== ================================ 110547eb6368SDmitry Preobrazhensky 1106cef9d421SDmitry PreobrazhenskyDPP8 Modifiers 1107cef9d421SDmitry Preobrazhensky-------------- 110847eb6368SDmitry Preobrazhensky 1109cef9d421SDmitry PreobrazhenskyGFX10 only. 1110cef9d421SDmitry Preobrazhensky 1111cef9d421SDmitry Preobrazhensky.. _amdgpu_synid_dpp8_sel: 1112cef9d421SDmitry Preobrazhensky 1113cef9d421SDmitry Preobrazhenskydpp8_sel 1114cef9d421SDmitry Preobrazhensky~~~~~~~~ 1115cef9d421SDmitry Preobrazhensky 1116b9683d3cSDmitry PreobrazhenskySelects which lanes to pull data from, within a group of 8 lanes. This is a mandatory modifier. 1117cef9d421SDmitry PreobrazhenskyThere is no default value. 1118cef9d421SDmitry Preobrazhensky 1119cef9d421SDmitry PreobrazhenskyGFX10 only. 1120cef9d421SDmitry Preobrazhensky 1121b9683d3cSDmitry PreobrazhenskyThe *dpp8_sel* modifier must specify exactly 8 values. 1122cef9d421SDmitry PreobrazhenskyFirst value selects which lane to read from to supply data into lane 0. 1123b9683d3cSDmitry PreobrazhenskySecond value controls lane 1 and so on. 1124b9683d3cSDmitry Preobrazhensky 1125b9683d3cSDmitry PreobrazhenskyEach value may be specified as either 1126b9683d3cSDmitry Preobrazhenskyan :ref:`integer number<amdgpu_synid_integer_number>` or 1127b9683d3cSDmitry Preobrazhenskyan :ref:`absolute expression<amdgpu_synid_absolute_expression>`. 1128cef9d421SDmitry Preobrazhensky 1129cef9d421SDmitry Preobrazhensky =============================================================== =========================== 1130cef9d421SDmitry Preobrazhensky Syntax Description 1131cef9d421SDmitry Preobrazhensky =============================================================== =========================== 1132cef9d421SDmitry Preobrazhensky dpp8:[{0..7},{0..7},{0..7},{0..7},{0..7},{0..7},{0..7},{0..7}] Select lanes to read from. 1133cef9d421SDmitry Preobrazhensky =============================================================== =========================== 1134cef9d421SDmitry Preobrazhensky 1135cef9d421SDmitry PreobrazhenskyExamples: 1136cef9d421SDmitry Preobrazhensky 1137cef9d421SDmitry Preobrazhensky.. parsed-literal:: 1138cef9d421SDmitry Preobrazhensky 1139cef9d421SDmitry Preobrazhensky dpp8:[7,6,5,4,3,2,1,0] 1140cef9d421SDmitry Preobrazhensky dpp8:[0,1,0,1,0,1,0,1] 1141cef9d421SDmitry Preobrazhensky 1142cef9d421SDmitry Preobrazhensky.. _amdgpu_synid_fi8: 1143cef9d421SDmitry Preobrazhensky 1144cef9d421SDmitry Preobrazhenskyfi 1145cef9d421SDmitry Preobrazhensky~~ 1146cef9d421SDmitry Preobrazhensky 1147cef9d421SDmitry PreobrazhenskyControls interaction with inactive lanes for *dpp8* instructions. The default value is zero. 1148cef9d421SDmitry Preobrazhensky 1149b9683d3cSDmitry PreobrazhenskyNote: *inactive* lanes are those whose :ref:`exec<amdgpu_synid_exec>` mask bit is zero. 1150cef9d421SDmitry Preobrazhensky 1151cef9d421SDmitry PreobrazhenskyGFX10 only. 1152cef9d421SDmitry Preobrazhensky 1153cef9d421SDmitry Preobrazhensky ==================================== ===================================================== 1154cef9d421SDmitry Preobrazhensky Syntax Description 1155cef9d421SDmitry Preobrazhensky ==================================== ===================================================== 1156cef9d421SDmitry Preobrazhensky fi:0 Fetch zero when accessing data from inactive lanes. 1157cef9d421SDmitry Preobrazhensky fi:1 Fetch pre-exist values from inactive lanes. 1158cef9d421SDmitry Preobrazhensky ==================================== ===================================================== 1159cef9d421SDmitry Preobrazhensky 1160b9683d3cSDmitry PreobrazhenskyNote: numeric values may be specified as either :ref:`integer numbers<amdgpu_synid_integer_number>` or 1161b9683d3cSDmitry Preobrazhensky:ref:`absolute expressions<amdgpu_synid_absolute_expression>`. 1162b9683d3cSDmitry Preobrazhensky 1163434b278cSDmitry PreobrazhenskyDPP Modifiers 1164434b278cSDmitry Preobrazhensky------------- 1165cef9d421SDmitry Preobrazhensky 1166cef9d421SDmitry PreobrazhenskyGFX8, GFX9 and GFX10 only. 116747eb6368SDmitry Preobrazhensky 116847eb6368SDmitry Preobrazhensky.. _amdgpu_synid_dpp_ctrl: 116947eb6368SDmitry Preobrazhensky 117047eb6368SDmitry Preobrazhenskydpp_ctrl 117147eb6368SDmitry Preobrazhensky~~~~~~~~ 117247eb6368SDmitry Preobrazhensky 117347eb6368SDmitry PreobrazhenskySpecifies how data are shared between threads. This is a mandatory modifier. 117447eb6368SDmitry PreobrazhenskyThere is no default value. 117547eb6368SDmitry Preobrazhensky 1176cef9d421SDmitry PreobrazhenskyGFX8 and GFX9 only. Use :ref:`dpp16_ctrl<amdgpu_synid_dpp16_ctrl>` for GFX10. 1177cef9d421SDmitry Preobrazhensky 1178b9683d3cSDmitry PreobrazhenskyNote: the lanes of a wavefront are organized in four *rows* and four *banks*. 117947eb6368SDmitry Preobrazhensky 118047eb6368SDmitry Preobrazhensky ======================================== ================================================ 118147eb6368SDmitry Preobrazhensky Syntax Description 118247eb6368SDmitry Preobrazhensky ======================================== ================================================ 118347eb6368SDmitry Preobrazhensky quad_perm:[{0..3},{0..3},{0..3},{0..3}] Full permute of 4 threads. 118447eb6368SDmitry Preobrazhensky row_mirror Mirror threads within row. 118547eb6368SDmitry Preobrazhensky row_half_mirror Mirror threads within 1/2 row (8 threads). 118647eb6368SDmitry Preobrazhensky row_bcast:15 Broadcast 15th thread of each row to next row. 118747eb6368SDmitry Preobrazhensky row_bcast:31 Broadcast thread 31 to rows 2 and 3. 118847eb6368SDmitry Preobrazhensky wave_shl:1 Wavefront left shift by 1 thread. 118947eb6368SDmitry Preobrazhensky wave_rol:1 Wavefront left rotate by 1 thread. 119047eb6368SDmitry Preobrazhensky wave_shr:1 Wavefront right shift by 1 thread. 119147eb6368SDmitry Preobrazhensky wave_ror:1 Wavefront right rotate by 1 thread. 119247eb6368SDmitry Preobrazhensky row_shl:{1..15} Row shift left by 1-15 threads. 119347eb6368SDmitry Preobrazhensky row_shr:{1..15} Row shift right by 1-15 threads. 119447eb6368SDmitry Preobrazhensky row_ror:{1..15} Row rotate right by 1-15 threads. 119547eb6368SDmitry Preobrazhensky ======================================== ================================================ 119647eb6368SDmitry Preobrazhensky 1197b9683d3cSDmitry PreobrazhenskyNote: numeric values may be specified as either 119847eb6368SDmitry Preobrazhensky:ref:`integer numbers<amdgpu_synid_integer_number>` or 119947eb6368SDmitry Preobrazhensky:ref:`absolute expressions<amdgpu_synid_absolute_expression>`. 120047eb6368SDmitry Preobrazhensky 120147eb6368SDmitry PreobrazhenskyExamples: 120247eb6368SDmitry Preobrazhensky 12031fa7aaf5SDmitry Preobrazhensky.. parsed-literal:: 120447eb6368SDmitry Preobrazhensky 120547eb6368SDmitry Preobrazhensky quad_perm:[0, 1, 2, 3] 120647eb6368SDmitry Preobrazhensky row_shl:3 120747eb6368SDmitry Preobrazhensky 1208cef9d421SDmitry Preobrazhensky.. _amdgpu_synid_dpp16_ctrl: 1209cef9d421SDmitry Preobrazhensky 1210cef9d421SDmitry Preobrazhenskydpp16_ctrl 1211cef9d421SDmitry Preobrazhensky~~~~~~~~~~ 1212cef9d421SDmitry Preobrazhensky 1213cef9d421SDmitry PreobrazhenskySpecifies how data are shared between threads. This is a mandatory modifier. 1214cef9d421SDmitry PreobrazhenskyThere is no default value. 1215cef9d421SDmitry Preobrazhensky 1216cef9d421SDmitry PreobrazhenskyGFX10 only. Use :ref:`dpp_ctrl<amdgpu_synid_dpp_ctrl>` for GFX8 and GFX9. 1217cef9d421SDmitry Preobrazhensky 1218b9683d3cSDmitry PreobrazhenskyNote: the lanes of a wavefront are organized in four *rows* and four *banks*. 1219cef9d421SDmitry Preobrazhensky(There are only two rows in *wave32* mode.) 1220cef9d421SDmitry Preobrazhensky 1221cef9d421SDmitry Preobrazhensky ======================================== ==================================================== 1222cef9d421SDmitry Preobrazhensky Syntax Description 1223cef9d421SDmitry Preobrazhensky ======================================== ==================================================== 1224cef9d421SDmitry Preobrazhensky quad_perm:[{0..3},{0..3},{0..3},{0..3}] Full permute of 4 threads. 1225cef9d421SDmitry Preobrazhensky row_mirror Mirror threads within row. 1226cef9d421SDmitry Preobrazhensky row_half_mirror Mirror threads within 1/2 row (8 threads). 1227cef9d421SDmitry Preobrazhensky row_share:{0..15} Share the value from the specified lane with other 1228cef9d421SDmitry Preobrazhensky lanes in the row. 1229cef9d421SDmitry Preobrazhensky row_xmask:{0..15} Fetch from XOR(current lane id, specified lane id). 1230cef9d421SDmitry Preobrazhensky row_shl:{1..15} Row shift left by 1-15 threads. 1231cef9d421SDmitry Preobrazhensky row_shr:{1..15} Row shift right by 1-15 threads. 1232cef9d421SDmitry Preobrazhensky row_ror:{1..15} Row rotate right by 1-15 threads. 1233cef9d421SDmitry Preobrazhensky ======================================== ==================================================== 1234cef9d421SDmitry Preobrazhensky 1235b9683d3cSDmitry PreobrazhenskyNote: numeric values may be specified as either 1236cef9d421SDmitry Preobrazhensky:ref:`integer numbers<amdgpu_synid_integer_number>` or 1237cef9d421SDmitry Preobrazhensky:ref:`absolute expressions<amdgpu_synid_absolute_expression>`. 1238cef9d421SDmitry Preobrazhensky 1239cef9d421SDmitry PreobrazhenskyExamples: 1240cef9d421SDmitry Preobrazhensky 1241cef9d421SDmitry Preobrazhensky.. parsed-literal:: 1242cef9d421SDmitry Preobrazhensky 1243cef9d421SDmitry Preobrazhensky quad_perm:[0, 1, 2, 3] 1244cef9d421SDmitry Preobrazhensky row_shl:3 1245cef9d421SDmitry Preobrazhensky 1246434b278cSDmitry Preobrazhensky.. _amdgpu_synid_dpp32_ctrl: 1247434b278cSDmitry Preobrazhensky 1248434b278cSDmitry Preobrazhenskydpp32_ctrl 1249434b278cSDmitry Preobrazhensky~~~~~~~~~~ 1250434b278cSDmitry Preobrazhensky 1251434b278cSDmitry PreobrazhenskySpecifies how data are shared between threads. This is a mandatory modifier. 1252434b278cSDmitry PreobrazhenskyThere is no default value. 1253434b278cSDmitry Preobrazhensky 1254434b278cSDmitry PreobrazhenskyMay be used only with GFX90A 32-bit instructions. 1255434b278cSDmitry Preobrazhensky 1256434b278cSDmitry PreobrazhenskyNote: the lanes of a wavefront are organized in four *rows* and four *banks*. 1257434b278cSDmitry Preobrazhensky 1258434b278cSDmitry Preobrazhensky ======================================== ================================================== 1259434b278cSDmitry Preobrazhensky Syntax Description 1260434b278cSDmitry Preobrazhensky ======================================== ================================================== 1261434b278cSDmitry Preobrazhensky quad_perm:[{0..3},{0..3},{0..3},{0..3}] Full permute of 4 threads. 1262434b278cSDmitry Preobrazhensky row_mirror Mirror threads within row. 1263434b278cSDmitry Preobrazhensky row_half_mirror Mirror threads within 1/2 row (8 threads). 1264434b278cSDmitry Preobrazhensky row_bcast:15 Broadcast 15th thread of each row to next row. 1265434b278cSDmitry Preobrazhensky row_bcast:31 Broadcast thread 31 to rows 2 and 3. 1266434b278cSDmitry Preobrazhensky wave_shl:1 Wavefront left shift by 1 thread. 1267434b278cSDmitry Preobrazhensky wave_rol:1 Wavefront left rotate by 1 thread. 1268434b278cSDmitry Preobrazhensky wave_shr:1 Wavefront right shift by 1 thread. 1269434b278cSDmitry Preobrazhensky wave_ror:1 Wavefront right rotate by 1 thread. 1270434b278cSDmitry Preobrazhensky row_shl:{1..15} Row shift left by 1-15 threads. 1271434b278cSDmitry Preobrazhensky row_shr:{1..15} Row shift right by 1-15 threads. 1272434b278cSDmitry Preobrazhensky row_ror:{1..15} Row rotate right by 1-15 threads. 1273434b278cSDmitry Preobrazhensky row_newbcast:{1..15} Broadcast a thread within a row to the whole row. 1274434b278cSDmitry Preobrazhensky ======================================== ================================================== 1275434b278cSDmitry Preobrazhensky 1276434b278cSDmitry PreobrazhenskyNote: numeric values may be specified as either 1277434b278cSDmitry Preobrazhensky:ref:`integer numbers<amdgpu_synid_integer_number>` or 1278434b278cSDmitry Preobrazhensky:ref:`absolute expressions<amdgpu_synid_absolute_expression>`. 1279434b278cSDmitry Preobrazhensky 1280434b278cSDmitry PreobrazhenskyExamples: 1281434b278cSDmitry Preobrazhensky 1282434b278cSDmitry Preobrazhensky.. parsed-literal:: 1283434b278cSDmitry Preobrazhensky 1284434b278cSDmitry Preobrazhensky quad_perm:[0, 1, 2, 3] 1285434b278cSDmitry Preobrazhensky row_shl:3 1286434b278cSDmitry Preobrazhensky 1287434b278cSDmitry Preobrazhensky 1288434b278cSDmitry Preobrazhensky.. _amdgpu_synid_dpp64_ctrl: 1289434b278cSDmitry Preobrazhensky 1290434b278cSDmitry Preobrazhenskydpp64_ctrl 1291434b278cSDmitry Preobrazhensky~~~~~~~~~~ 1292434b278cSDmitry Preobrazhensky 1293434b278cSDmitry PreobrazhenskySpecifies how data are shared between threads. This is a mandatory modifier. 1294434b278cSDmitry PreobrazhenskyThere is no default value. 1295434b278cSDmitry Preobrazhensky 1296434b278cSDmitry PreobrazhenskyMay be used only with GFX90A 64-bit instructions. 1297434b278cSDmitry Preobrazhensky 1298434b278cSDmitry PreobrazhenskyNote: the lanes of a wavefront are organized in four *rows* and four *banks*. 1299434b278cSDmitry Preobrazhensky 1300434b278cSDmitry Preobrazhensky ======================================== ================================================== 1301434b278cSDmitry Preobrazhensky Syntax Description 1302434b278cSDmitry Preobrazhensky ======================================== ================================================== 1303434b278cSDmitry Preobrazhensky row_newbcast:{1..15} Broadcast a thread within a row to the whole row. 1304434b278cSDmitry Preobrazhensky ======================================== ================================================== 1305434b278cSDmitry Preobrazhensky 1306434b278cSDmitry PreobrazhenskyNote: numeric values may be specified as either 1307434b278cSDmitry Preobrazhensky:ref:`integer numbers<amdgpu_synid_integer_number>` or 1308434b278cSDmitry Preobrazhensky:ref:`absolute expressions<amdgpu_synid_absolute_expression>`. 1309434b278cSDmitry Preobrazhensky 1310434b278cSDmitry PreobrazhenskyExamples: 1311434b278cSDmitry Preobrazhensky 1312434b278cSDmitry Preobrazhensky.. parsed-literal:: 1313434b278cSDmitry Preobrazhensky 1314434b278cSDmitry Preobrazhensky row_newbcast:3 1315434b278cSDmitry Preobrazhensky 1316434b278cSDmitry Preobrazhensky 131747eb6368SDmitry Preobrazhensky.. _amdgpu_synid_row_mask: 131847eb6368SDmitry Preobrazhensky 131947eb6368SDmitry Preobrazhenskyrow_mask 132047eb6368SDmitry Preobrazhensky~~~~~~~~ 132147eb6368SDmitry Preobrazhensky 132247eb6368SDmitry PreobrazhenskyControls which rows are enabled for data sharing. By default, all rows are enabled. 132347eb6368SDmitry Preobrazhensky 1324b9683d3cSDmitry PreobrazhenskyNote: the lanes of a wavefront are organized in four *rows* and four *banks*. 1325cef9d421SDmitry Preobrazhensky(There are only two rows in *wave32* mode.) 132647eb6368SDmitry Preobrazhensky 1327b9683d3cSDmitry Preobrazhensky ================= ==================================================================== 132847eb6368SDmitry Preobrazhensky Syntax Description 1329b9683d3cSDmitry Preobrazhensky ================= ==================================================================== 133047eb6368SDmitry Preobrazhensky row_mask:{0..15} Specifies a *row mask* as a positive 1331b9683d3cSDmitry Preobrazhensky :ref:`integer number <amdgpu_synid_integer_number>` 1332b9683d3cSDmitry Preobrazhensky or an :ref:`absolute expression<amdgpu_synid_absolute_expression>`. 133347eb6368SDmitry Preobrazhensky 1334b9683d3cSDmitry Preobrazhensky Each of 4 bits in the mask controls one row 1335b9683d3cSDmitry Preobrazhensky (0 - disabled, 1 - enabled). 1336cef9d421SDmitry Preobrazhensky 1337b9683d3cSDmitry Preobrazhensky In *wave32* mode the values should be limited to 0..7. 1338b9683d3cSDmitry Preobrazhensky ================= ==================================================================== 133947eb6368SDmitry Preobrazhensky 134047eb6368SDmitry PreobrazhenskyExamples: 134147eb6368SDmitry Preobrazhensky 13421fa7aaf5SDmitry Preobrazhensky.. parsed-literal:: 134347eb6368SDmitry Preobrazhensky 134447eb6368SDmitry Preobrazhensky row_mask:0xf 134547eb6368SDmitry Preobrazhensky row_mask:0b1010 1346b9683d3cSDmitry Preobrazhensky row_mask:x|y 134747eb6368SDmitry Preobrazhensky 134847eb6368SDmitry Preobrazhensky.. _amdgpu_synid_bank_mask: 134947eb6368SDmitry Preobrazhensky 135047eb6368SDmitry Preobrazhenskybank_mask 135147eb6368SDmitry Preobrazhensky~~~~~~~~~ 135247eb6368SDmitry Preobrazhensky 135347eb6368SDmitry PreobrazhenskyControls which banks are enabled for data sharing. By default, all banks are enabled. 135447eb6368SDmitry Preobrazhensky 1355b9683d3cSDmitry PreobrazhenskyNote: the lanes of a wavefront are organized in four *rows* and four *banks*. 1356cef9d421SDmitry Preobrazhensky(There are only two rows in *wave32* mode.) 135747eb6368SDmitry Preobrazhensky 1358b9683d3cSDmitry Preobrazhensky ================== ==================================================================== 135947eb6368SDmitry Preobrazhensky Syntax Description 1360b9683d3cSDmitry Preobrazhensky ================== ==================================================================== 136147eb6368SDmitry Preobrazhensky bank_mask:{0..15} Specifies a *bank mask* as a positive 1362b9683d3cSDmitry Preobrazhensky :ref:`integer number <amdgpu_synid_integer_number>` 1363b9683d3cSDmitry Preobrazhensky or an :ref:`absolute expression<amdgpu_synid_absolute_expression>`. 136447eb6368SDmitry Preobrazhensky 1365b9683d3cSDmitry Preobrazhensky Each of 4 bits in the mask controls one bank 1366b9683d3cSDmitry Preobrazhensky (0 - disabled, 1 - enabled). 1367b9683d3cSDmitry Preobrazhensky ================== ==================================================================== 136847eb6368SDmitry Preobrazhensky 136947eb6368SDmitry PreobrazhenskyExamples: 137047eb6368SDmitry Preobrazhensky 13711fa7aaf5SDmitry Preobrazhensky.. parsed-literal:: 137247eb6368SDmitry Preobrazhensky 137347eb6368SDmitry Preobrazhensky bank_mask:0x3 137447eb6368SDmitry Preobrazhensky bank_mask:0b0011 1375b9683d3cSDmitry Preobrazhensky bank_mask:x&y 137647eb6368SDmitry Preobrazhensky 137747eb6368SDmitry Preobrazhensky.. _amdgpu_synid_bound_ctrl: 137847eb6368SDmitry Preobrazhensky 137947eb6368SDmitry Preobrazhenskybound_ctrl 138047eb6368SDmitry Preobrazhensky~~~~~~~~~~ 138147eb6368SDmitry Preobrazhensky 138247eb6368SDmitry PreobrazhenskyControls data sharing when accessing an invalid lane. By default, data sharing with 138347eb6368SDmitry Preobrazhenskyinvalid lanes is disabled. 138447eb6368SDmitry Preobrazhensky 138547eb6368SDmitry Preobrazhensky ======================================== ================================================ 138647eb6368SDmitry Preobrazhensky Syntax Description 138747eb6368SDmitry Preobrazhensky ======================================== ================================================ 138848135180SDmitry Preobrazhensky bound_ctrl:1 Enables data sharing with invalid lanes. 138947eb6368SDmitry Preobrazhensky 139047eb6368SDmitry Preobrazhensky Accessing data from an invalid lane will 139147eb6368SDmitry Preobrazhensky return zero. 139247eb6368SDmitry Preobrazhensky ======================================== ================================================ 139347eb6368SDmitry Preobrazhensky 1394cef9d421SDmitry Preobrazhensky.. _amdgpu_synid_fi16: 139547eb6368SDmitry Preobrazhensky 1396cef9d421SDmitry Preobrazhenskyfi 1397cef9d421SDmitry Preobrazhensky~~ 1398cef9d421SDmitry Preobrazhensky 1399cef9d421SDmitry PreobrazhenskyControls interaction with *inactive* lanes for *dpp16* instructions. The default value is zero. 1400cef9d421SDmitry Preobrazhensky 1401b9683d3cSDmitry PreobrazhenskyNote: *inactive* lanes are those whose :ref:`exec<amdgpu_synid_exec>` mask bit is zero. 1402cef9d421SDmitry Preobrazhensky 1403cef9d421SDmitry PreobrazhenskyGFX10 only. 1404cef9d421SDmitry Preobrazhensky 1405cef9d421SDmitry Preobrazhensky ======================================== ================================================== 1406cef9d421SDmitry Preobrazhensky Syntax Description 1407cef9d421SDmitry Preobrazhensky ======================================== ================================================== 1408cef9d421SDmitry Preobrazhensky fi:0 Interaction with inactive lanes is controlled by 1409cef9d421SDmitry Preobrazhensky :ref:`bound_ctrl<amdgpu_synid_bound_ctrl>`. 1410cef9d421SDmitry Preobrazhensky 1411cef9d421SDmitry Preobrazhensky fi:1 Fetch pre-exist values from inactive lanes. 1412cef9d421SDmitry Preobrazhensky ======================================== ================================================== 1413cef9d421SDmitry Preobrazhensky 1414b9683d3cSDmitry PreobrazhenskyNote: numeric values may be specified as either :ref:`integer numbers<amdgpu_synid_integer_number>` or 1415b9683d3cSDmitry Preobrazhensky:ref:`absolute expressions<amdgpu_synid_absolute_expression>`. 1416b9683d3cSDmitry Preobrazhensky 1417cef9d421SDmitry PreobrazhenskySDWA Modifiers 1418cef9d421SDmitry Preobrazhensky-------------- 1419cef9d421SDmitry Preobrazhensky 1420cef9d421SDmitry PreobrazhenskyGFX8, GFX9 and GFX10 only. 142147eb6368SDmitry Preobrazhensky 142247eb6368SDmitry Preobrazhenskyclamp 142347eb6368SDmitry Preobrazhensky~~~~~ 142447eb6368SDmitry Preobrazhensky 142547eb6368SDmitry PreobrazhenskySee a description :ref:`here<amdgpu_synid_clamp>`. 142647eb6368SDmitry Preobrazhensky 142747eb6368SDmitry Preobrazhenskyomod 142847eb6368SDmitry Preobrazhensky~~~~ 142947eb6368SDmitry Preobrazhensky 143047eb6368SDmitry PreobrazhenskySee a description :ref:`here<amdgpu_synid_omod>`. 143147eb6368SDmitry Preobrazhensky 1432cef9d421SDmitry PreobrazhenskyGFX9 and GFX10 only. 143347eb6368SDmitry Preobrazhensky 143447eb6368SDmitry Preobrazhensky.. _amdgpu_synid_dst_sel: 143547eb6368SDmitry Preobrazhensky 143647eb6368SDmitry Preobrazhenskydst_sel 143747eb6368SDmitry Preobrazhensky~~~~~~~ 143847eb6368SDmitry Preobrazhensky 143947eb6368SDmitry PreobrazhenskySelects which bits in the destination are affected. By default, all bits are affected. 144047eb6368SDmitry Preobrazhensky 144147eb6368SDmitry Preobrazhensky ======================================== ================================================ 144247eb6368SDmitry Preobrazhensky Syntax Description 144347eb6368SDmitry Preobrazhensky ======================================== ================================================ 144447eb6368SDmitry Preobrazhensky dst_sel:DWORD Use bits 31:0. 144547eb6368SDmitry Preobrazhensky dst_sel:BYTE_0 Use bits 7:0. 144647eb6368SDmitry Preobrazhensky dst_sel:BYTE_1 Use bits 15:8. 144747eb6368SDmitry Preobrazhensky dst_sel:BYTE_2 Use bits 23:16. 144847eb6368SDmitry Preobrazhensky dst_sel:BYTE_3 Use bits 31:24. 144947eb6368SDmitry Preobrazhensky dst_sel:WORD_0 Use bits 15:0. 145047eb6368SDmitry Preobrazhensky dst_sel:WORD_1 Use bits 31:16. 145147eb6368SDmitry Preobrazhensky ======================================== ================================================ 145247eb6368SDmitry Preobrazhensky 145347eb6368SDmitry Preobrazhensky.. _amdgpu_synid_dst_unused: 145447eb6368SDmitry Preobrazhensky 145547eb6368SDmitry Preobrazhenskydst_unused 145647eb6368SDmitry Preobrazhensky~~~~~~~~~~ 145747eb6368SDmitry Preobrazhensky 145847eb6368SDmitry PreobrazhenskyControls what to do with the bits in the destination which are not selected 145947eb6368SDmitry Preobrazhenskyby :ref:`dst_sel<amdgpu_synid_dst_sel>`. 146047eb6368SDmitry PreobrazhenskyBy default, unused bits are preserved. 146147eb6368SDmitry Preobrazhensky 146247eb6368SDmitry Preobrazhensky ======================================== ================================================ 146347eb6368SDmitry Preobrazhensky Syntax Description 146447eb6368SDmitry Preobrazhensky ======================================== ================================================ 146547eb6368SDmitry Preobrazhensky dst_unused:UNUSED_PAD Pad with zeros. 146647eb6368SDmitry Preobrazhensky dst_unused:UNUSED_SEXT Sign-extend upper bits, zero lower bits. 146747eb6368SDmitry Preobrazhensky dst_unused:UNUSED_PRESERVE Preserve bits. 146847eb6368SDmitry Preobrazhensky ======================================== ================================================ 146947eb6368SDmitry Preobrazhensky 147047eb6368SDmitry Preobrazhensky.. _amdgpu_synid_src0_sel: 147147eb6368SDmitry Preobrazhensky 147247eb6368SDmitry Preobrazhenskysrc0_sel 147347eb6368SDmitry Preobrazhensky~~~~~~~~ 147447eb6368SDmitry Preobrazhensky 147547eb6368SDmitry PreobrazhenskyControls which bits in the src0 are used. By default, all bits are used. 147647eb6368SDmitry Preobrazhensky 147747eb6368SDmitry Preobrazhensky ======================================== ================================================ 147847eb6368SDmitry Preobrazhensky Syntax Description 147947eb6368SDmitry Preobrazhensky ======================================== ================================================ 148047eb6368SDmitry Preobrazhensky src0_sel:DWORD Use bits 31:0. 148147eb6368SDmitry Preobrazhensky src0_sel:BYTE_0 Use bits 7:0. 148247eb6368SDmitry Preobrazhensky src0_sel:BYTE_1 Use bits 15:8. 148347eb6368SDmitry Preobrazhensky src0_sel:BYTE_2 Use bits 23:16. 148447eb6368SDmitry Preobrazhensky src0_sel:BYTE_3 Use bits 31:24. 148547eb6368SDmitry Preobrazhensky src0_sel:WORD_0 Use bits 15:0. 148647eb6368SDmitry Preobrazhensky src0_sel:WORD_1 Use bits 31:16. 148747eb6368SDmitry Preobrazhensky ======================================== ================================================ 148847eb6368SDmitry Preobrazhensky 148947eb6368SDmitry Preobrazhensky.. _amdgpu_synid_src1_sel: 149047eb6368SDmitry Preobrazhensky 149147eb6368SDmitry Preobrazhenskysrc1_sel 149247eb6368SDmitry Preobrazhensky~~~~~~~~ 149347eb6368SDmitry Preobrazhensky 149447eb6368SDmitry PreobrazhenskyControls which bits in the src1 are used. By default, all bits are used. 149547eb6368SDmitry Preobrazhensky 149647eb6368SDmitry Preobrazhensky ======================================== ================================================ 149747eb6368SDmitry Preobrazhensky Syntax Description 149847eb6368SDmitry Preobrazhensky ======================================== ================================================ 149947eb6368SDmitry Preobrazhensky src1_sel:DWORD Use bits 31:0. 150047eb6368SDmitry Preobrazhensky src1_sel:BYTE_0 Use bits 7:0. 150147eb6368SDmitry Preobrazhensky src1_sel:BYTE_1 Use bits 15:8. 150247eb6368SDmitry Preobrazhensky src1_sel:BYTE_2 Use bits 23:16. 150347eb6368SDmitry Preobrazhensky src1_sel:BYTE_3 Use bits 31:24. 150447eb6368SDmitry Preobrazhensky src1_sel:WORD_0 Use bits 15:0. 150547eb6368SDmitry Preobrazhensky src1_sel:WORD_1 Use bits 31:16. 150647eb6368SDmitry Preobrazhensky ======================================== ================================================ 150747eb6368SDmitry Preobrazhensky 150847eb6368SDmitry Preobrazhensky.. _amdgpu_synid_sdwa_operand_modifiers: 150947eb6368SDmitry Preobrazhensky 1510cef9d421SDmitry PreobrazhenskySDWA Operand Modifiers 1511cef9d421SDmitry Preobrazhensky---------------------- 151247eb6368SDmitry Preobrazhensky 151347eb6368SDmitry PreobrazhenskyOperand modifiers are not used separately. They are applied to source operands. 151447eb6368SDmitry Preobrazhensky 1515cef9d421SDmitry PreobrazhenskyGFX8, GFX9 and GFX10 only. 151647eb6368SDmitry Preobrazhensky 151747eb6368SDmitry Preobrazhenskyabs 151847eb6368SDmitry Preobrazhensky~~~ 151947eb6368SDmitry Preobrazhensky 152047eb6368SDmitry PreobrazhenskySee a description :ref:`here<amdgpu_synid_abs>`. 152147eb6368SDmitry Preobrazhensky 152247eb6368SDmitry Preobrazhenskyneg 152347eb6368SDmitry Preobrazhensky~~~ 152447eb6368SDmitry Preobrazhensky 152547eb6368SDmitry PreobrazhenskySee a description :ref:`here<amdgpu_synid_neg>`. 152647eb6368SDmitry Preobrazhensky 152747eb6368SDmitry Preobrazhensky.. _amdgpu_synid_sext: 152847eb6368SDmitry Preobrazhensky 152947eb6368SDmitry Preobrazhenskysext 153047eb6368SDmitry Preobrazhensky~~~~ 153147eb6368SDmitry Preobrazhensky 153247eb6368SDmitry PreobrazhenskySign-extends value of a (sub-dword) operand to fill all 32 bits. 153347eb6368SDmitry PreobrazhenskyHas no effect for 32-bit operands. 153447eb6368SDmitry Preobrazhensky 153547eb6368SDmitry PreobrazhenskyValid for integer operands only. 153647eb6368SDmitry Preobrazhensky 153747eb6368SDmitry Preobrazhensky ======================================== ================================================ 153847eb6368SDmitry Preobrazhensky Syntax Description 153947eb6368SDmitry Preobrazhensky ======================================== ================================================ 154047eb6368SDmitry Preobrazhensky sext(<operand>) Sign-extend operand value. 154147eb6368SDmitry Preobrazhensky ======================================== ================================================ 154247eb6368SDmitry Preobrazhensky 154347eb6368SDmitry PreobrazhenskyExamples: 154447eb6368SDmitry Preobrazhensky 15451fa7aaf5SDmitry Preobrazhensky.. parsed-literal:: 154647eb6368SDmitry Preobrazhensky 154747eb6368SDmitry Preobrazhensky sext(v4) 154847eb6368SDmitry Preobrazhensky sext(v255) 154947eb6368SDmitry Preobrazhensky 155047eb6368SDmitry PreobrazhenskyVOP3 Modifiers 155147eb6368SDmitry Preobrazhensky-------------- 155247eb6368SDmitry Preobrazhensky 155347eb6368SDmitry Preobrazhensky.. _amdgpu_synid_vop3_op_sel: 155447eb6368SDmitry Preobrazhensky 1555ddac5c9bSDmitry Preobrazhenskyop_sel 1556ddac5c9bSDmitry Preobrazhensky~~~~~~ 155747eb6368SDmitry Preobrazhensky 155847eb6368SDmitry PreobrazhenskySelects the low [15:0] or high [31:16] operand bits for source and destination operands. 155947eb6368SDmitry PreobrazhenskyBy default, low bits are used for all operands. 156047eb6368SDmitry Preobrazhensky 156147eb6368SDmitry PreobrazhenskyThe number of values specified with the op_sel modifier must match the number of instruction 156247eb6368SDmitry Preobrazhenskyoperands (both source and destination). First value controls src0, second value controls src1 156347eb6368SDmitry Preobrazhenskyand so on, except that the last value controls destination. 156447eb6368SDmitry PreobrazhenskyThe value 0 selects the low bits, while 1 selects the high bits. 156547eb6368SDmitry Preobrazhensky 1566b9683d3cSDmitry PreobrazhenskyNote: op_sel modifier affects 16-bit operands only. For 32-bit operands the value specified 156747eb6368SDmitry Preobrazhenskyby op_sel must be 0. 156847eb6368SDmitry Preobrazhensky 1569cef9d421SDmitry PreobrazhenskyGFX9 and GFX10 only. 157047eb6368SDmitry Preobrazhensky 157147eb6368SDmitry Preobrazhensky ======================================== ============================================================ 157247eb6368SDmitry Preobrazhensky Syntax Description 157347eb6368SDmitry Preobrazhensky ======================================== ============================================================ 157447eb6368SDmitry Preobrazhensky op_sel:[{0..1},{0..1}] Select operand bits for instructions with 1 source operand. 157547eb6368SDmitry Preobrazhensky op_sel:[{0..1},{0..1},{0..1}] Select operand bits for instructions with 2 source operands. 157647eb6368SDmitry Preobrazhensky op_sel:[{0..1},{0..1},{0..1},{0..1}] Select operand bits for instructions with 3 source operands. 157747eb6368SDmitry Preobrazhensky ======================================== ============================================================ 157847eb6368SDmitry Preobrazhensky 1579b9683d3cSDmitry PreobrazhenskyNote: numeric values may be specified as either 1580b9683d3cSDmitry Preobrazhensky:ref:`integer numbers<amdgpu_synid_integer_number>` or 1581b9683d3cSDmitry Preobrazhensky:ref:`absolute expressions<amdgpu_synid_absolute_expression>`. 1582b9683d3cSDmitry Preobrazhensky 158347eb6368SDmitry PreobrazhenskyExamples: 158447eb6368SDmitry Preobrazhensky 15851fa7aaf5SDmitry Preobrazhensky.. parsed-literal:: 158647eb6368SDmitry Preobrazhensky 158747eb6368SDmitry Preobrazhensky op_sel:[0,0] 158847eb6368SDmitry Preobrazhensky op_sel:[0,1] 158947eb6368SDmitry Preobrazhensky 15908ea3e9d9SDmitry Preobrazhensky.. _amdgpu_synid_dpp_op_sel: 15918ea3e9d9SDmitry Preobrazhensky 15928ea3e9d9SDmitry Preobrazhenskydpp_op_sel 15938ea3e9d9SDmitry Preobrazhensky~~~~~~~~~~ 15948ea3e9d9SDmitry Preobrazhensky 15958ea3e9d9SDmitry PreobrazhenskySpecial version of *op_sel* used for *permlane* opcodes to specify 15968ea3e9d9SDmitry Preobrazhenskydpp-like mode bits - :ref:`fi<amdgpu_synid_fi16>` and 15978ea3e9d9SDmitry Preobrazhensky:ref:`bound_ctrl<amdgpu_synid_bound_ctrl>`. 15988ea3e9d9SDmitry Preobrazhensky 15998ea3e9d9SDmitry PreobrazhenskyGFX10 only. 16008ea3e9d9SDmitry Preobrazhensky 16018ea3e9d9SDmitry Preobrazhensky ======================================== ============================================================ 16028ea3e9d9SDmitry Preobrazhensky Syntax Description 16038ea3e9d9SDmitry Preobrazhensky ======================================== ============================================================ 16048ea3e9d9SDmitry Preobrazhensky op_sel:[{0..1},{0..1}] First bit specifies :ref:`fi<amdgpu_synid_fi16>`, second 16058ea3e9d9SDmitry Preobrazhensky bit specifies :ref:`bound_ctrl<amdgpu_synid_bound_ctrl>`. 16068ea3e9d9SDmitry Preobrazhensky ======================================== ============================================================ 16078ea3e9d9SDmitry Preobrazhensky 16088ea3e9d9SDmitry PreobrazhenskyNote: numeric values may be specified as either 16098ea3e9d9SDmitry Preobrazhensky:ref:`integer numbers<amdgpu_synid_integer_number>` or 16108ea3e9d9SDmitry Preobrazhensky:ref:`absolute expressions<amdgpu_synid_absolute_expression>`. 16118ea3e9d9SDmitry Preobrazhensky 16128ea3e9d9SDmitry PreobrazhenskyExamples: 16138ea3e9d9SDmitry Preobrazhensky 16148ea3e9d9SDmitry Preobrazhensky.. parsed-literal:: 16158ea3e9d9SDmitry Preobrazhensky 16168ea3e9d9SDmitry Preobrazhensky op_sel:[0,0] 16178ea3e9d9SDmitry Preobrazhensky 161847eb6368SDmitry Preobrazhensky.. _amdgpu_synid_clamp: 161947eb6368SDmitry Preobrazhensky 162047eb6368SDmitry Preobrazhenskyclamp 162147eb6368SDmitry Preobrazhensky~~~~~ 162247eb6368SDmitry Preobrazhensky 162347eb6368SDmitry PreobrazhenskyClamp meaning depends on instruction. 162447eb6368SDmitry Preobrazhensky 162547eb6368SDmitry PreobrazhenskyFor *v_cmp* instructions, clamp modifier indicates that the compare signals 162647eb6368SDmitry Preobrazhenskyif a floating point exception occurs. By default, signaling is disabled. 162747eb6368SDmitry PreobrazhenskyNot supported by GFX7. 162847eb6368SDmitry Preobrazhensky 162947eb6368SDmitry PreobrazhenskyFor integer operations, clamp modifier indicates that the result must be clamped 163047eb6368SDmitry Preobrazhenskyto the largest and smallest representable value. By default, there is no clamping. 163147eb6368SDmitry PreobrazhenskyInteger clamping is not supported by GFX7. 163247eb6368SDmitry Preobrazhensky 163347eb6368SDmitry PreobrazhenskyFor floating point operations, clamp modifier indicates that the result must be clamped 163447eb6368SDmitry Preobrazhenskyto the range [0.0, 1.0]. By default, there is no clamping. 163547eb6368SDmitry Preobrazhensky 1636b9683d3cSDmitry PreobrazhenskyNote: clamp modifier is applied after :ref:`output modifiers<amdgpu_synid_omod>` (if any). 163747eb6368SDmitry Preobrazhensky 163847eb6368SDmitry Preobrazhensky ======================================== ================================================ 163947eb6368SDmitry Preobrazhensky Syntax Description 164047eb6368SDmitry Preobrazhensky ======================================== ================================================ 164147eb6368SDmitry Preobrazhensky clamp Enables clamping (or signaling). 164247eb6368SDmitry Preobrazhensky ======================================== ================================================ 164347eb6368SDmitry Preobrazhensky 164447eb6368SDmitry Preobrazhensky.. _amdgpu_synid_omod: 164547eb6368SDmitry Preobrazhensky 164647eb6368SDmitry Preobrazhenskyomod 164747eb6368SDmitry Preobrazhensky~~~~ 164847eb6368SDmitry Preobrazhensky 164947eb6368SDmitry PreobrazhenskySpecifies if an output modifier must be applied to the result. 165047eb6368SDmitry PreobrazhenskyBy default, no output modifiers are applied. 165147eb6368SDmitry Preobrazhensky 1652b9683d3cSDmitry PreobrazhenskyNote: output modifiers are applied before :ref:`clamping<amdgpu_synid_clamp>` (if any). 165347eb6368SDmitry Preobrazhensky 165447eb6368SDmitry PreobrazhenskyOutput modifiers are valid for f32 and f64 floating point results only. 165547eb6368SDmitry PreobrazhenskyThey must not be used with f16. 165647eb6368SDmitry Preobrazhensky 1657b9683d3cSDmitry PreobrazhenskyNote: *v_cvt_f16_f32* is an exception. This instruction produces f16 result 165847eb6368SDmitry Preobrazhenskybut accepts output modifiers. 165947eb6368SDmitry Preobrazhensky 166047eb6368SDmitry Preobrazhensky ======================================== ================================================ 166147eb6368SDmitry Preobrazhensky Syntax Description 166247eb6368SDmitry Preobrazhensky ======================================== ================================================ 166347eb6368SDmitry Preobrazhensky mul:2 Multiply the result by 2. 166447eb6368SDmitry Preobrazhensky mul:4 Multiply the result by 4. 166547eb6368SDmitry Preobrazhensky div:2 Multiply the result by 0.5. 166647eb6368SDmitry Preobrazhensky ======================================== ================================================ 166747eb6368SDmitry Preobrazhensky 1668b9683d3cSDmitry PreobrazhenskyNote: numeric values may be specified as either :ref:`integer numbers<amdgpu_synid_integer_number>` or 1669b9683d3cSDmitry Preobrazhensky:ref:`absolute expressions<amdgpu_synid_absolute_expression>`. 1670b9683d3cSDmitry Preobrazhensky 1671b9683d3cSDmitry PreobrazhenskyExamples: 1672b9683d3cSDmitry Preobrazhensky 1673b9683d3cSDmitry Preobrazhensky.. parsed-literal:: 1674b9683d3cSDmitry Preobrazhensky 1675b9683d3cSDmitry Preobrazhensky mul:2 1676b9683d3cSDmitry Preobrazhensky mul:x // x must be equal to 2 or 4 1677b9683d3cSDmitry Preobrazhensky 167847eb6368SDmitry Preobrazhensky.. _amdgpu_synid_vop3_operand_modifiers: 167947eb6368SDmitry Preobrazhensky 168047eb6368SDmitry PreobrazhenskyVOP3 Operand Modifiers 168147eb6368SDmitry Preobrazhensky---------------------- 168247eb6368SDmitry Preobrazhensky 168347eb6368SDmitry PreobrazhenskyOperand modifiers are not used separately. They are applied to source operands. 168447eb6368SDmitry Preobrazhensky 168547eb6368SDmitry Preobrazhensky.. _amdgpu_synid_abs: 168647eb6368SDmitry Preobrazhensky 168747eb6368SDmitry Preobrazhenskyabs 168847eb6368SDmitry Preobrazhensky~~~ 168947eb6368SDmitry Preobrazhensky 1690b9683d3cSDmitry PreobrazhenskyComputes the absolute value of its operand. Must be applied before :ref:`neg<amdgpu_synid_neg>` 1691b9683d3cSDmitry Preobrazhensky(if any). Valid for floating point operands only. 169247eb6368SDmitry Preobrazhensky 1693b9683d3cSDmitry Preobrazhensky ======================================== ==================================================== 169447eb6368SDmitry Preobrazhensky Syntax Description 1695b9683d3cSDmitry Preobrazhensky ======================================== ==================================================== 1696b9683d3cSDmitry Preobrazhensky abs(<operand>) Get the absolute value of a floating-point operand. 1697b9683d3cSDmitry Preobrazhensky \|<operand>| The same as above (an SP3 syntax). 1698b9683d3cSDmitry Preobrazhensky ======================================== ==================================================== 1699b9683d3cSDmitry Preobrazhensky 1700b9683d3cSDmitry PreobrazhenskyNote: avoid using SP3 syntax with operands specified as expressions because the trailing '|' 1701b9683d3cSDmitry Preobrazhenskymay be misinterpreted. Such operands should be enclosed into additional parentheses as shown 1702b9683d3cSDmitry Preobrazhenskyin examples below. 170347eb6368SDmitry Preobrazhensky 170447eb6368SDmitry PreobrazhenskyExamples: 170547eb6368SDmitry Preobrazhensky 17061fa7aaf5SDmitry Preobrazhensky.. parsed-literal:: 170747eb6368SDmitry Preobrazhensky 170847eb6368SDmitry Preobrazhensky abs(v36) 17091fa7aaf5SDmitry Preobrazhensky \|v36| 1710b9683d3cSDmitry Preobrazhensky abs(x|y) // ok 1711b9683d3cSDmitry Preobrazhensky \|(x|y)| // additional parentheses are required 171247eb6368SDmitry Preobrazhensky 171347eb6368SDmitry Preobrazhensky.. _amdgpu_synid_neg: 171447eb6368SDmitry Preobrazhensky 171547eb6368SDmitry Preobrazhenskyneg 171647eb6368SDmitry Preobrazhensky~~~ 171747eb6368SDmitry Preobrazhensky 1718b9683d3cSDmitry PreobrazhenskyComputes the negative value of its operand. Must be applied after :ref:`abs<amdgpu_synid_abs>` 1719b9683d3cSDmitry Preobrazhensky(if any). Valid for floating point operands only. 172047eb6368SDmitry Preobrazhensky 1721b9683d3cSDmitry Preobrazhensky ================== ==================================================== 172247eb6368SDmitry Preobrazhensky Syntax Description 1723b9683d3cSDmitry Preobrazhensky ================== ==================================================== 1724b9683d3cSDmitry Preobrazhensky neg(<operand>) Get the negative value of a floating-point operand. 1725b9683d3cSDmitry Preobrazhensky The operand may include an optional 1726b9683d3cSDmitry Preobrazhensky :ref:`abs<amdgpu_synid_abs>` modifier. 1727b9683d3cSDmitry Preobrazhensky -<operand> The same as above (an SP3 syntax). 1728b9683d3cSDmitry Preobrazhensky ================== ==================================================== 1729b9683d3cSDmitry Preobrazhensky 1730b9683d3cSDmitry PreobrazhenskyNote: SP3 syntax is supported with limitations because of a potential ambiguity. 1731b9683d3cSDmitry PreobrazhenskyCurrently it is allowed in the following cases: 1732b9683d3cSDmitry Preobrazhensky 1733b9683d3cSDmitry Preobrazhensky* Before a register. 1734b9683d3cSDmitry Preobrazhensky* Before an :ref:`abs<amdgpu_synid_abs>` modifier. 1735b9683d3cSDmitry Preobrazhensky* Before an SP3 :ref:`abs<amdgpu_synid_abs>` modifier. 1736b9683d3cSDmitry Preobrazhensky 1737b9683d3cSDmitry PreobrazhenskyIn all other cases "-" is handled as a part of an expression that follows the sign. 173847eb6368SDmitry Preobrazhensky 173947eb6368SDmitry PreobrazhenskyExamples: 174047eb6368SDmitry Preobrazhensky 17411fa7aaf5SDmitry Preobrazhensky.. parsed-literal:: 174247eb6368SDmitry Preobrazhensky 1743b9683d3cSDmitry Preobrazhensky // Operands with negate modifiers 174447eb6368SDmitry Preobrazhensky neg(v[0]) 1745b9683d3cSDmitry Preobrazhensky neg(1.0) 1746b9683d3cSDmitry Preobrazhensky neg(abs(v0)) 1747b9683d3cSDmitry Preobrazhensky -v5 1748b9683d3cSDmitry Preobrazhensky -abs(v5) 1749b9683d3cSDmitry Preobrazhensky -\|v5| 1750b9683d3cSDmitry Preobrazhensky 1751b9683d3cSDmitry Preobrazhensky // Operands without negate modifiers 1752b9683d3cSDmitry Preobrazhensky -1 1753b9683d3cSDmitry Preobrazhensky -x+y 175447eb6368SDmitry Preobrazhensky 175547eb6368SDmitry PreobrazhenskyVOP3P Modifiers 175647eb6368SDmitry Preobrazhensky--------------- 175747eb6368SDmitry Preobrazhensky 175847eb6368SDmitry PreobrazhenskyThis section describes modifiers of *regular* VOP3P instructions. 175947eb6368SDmitry Preobrazhensky 176080c45e49SDmitry Preobrazhensky*v_mad_mix\** and *v_fma_mix\** 176147eb6368SDmitry Preobrazhenskyinstructions use these modifiers :ref:`in a special manner<amdgpu_synid_mad_mix>`. 176247eb6368SDmitry Preobrazhensky 1763cef9d421SDmitry PreobrazhenskyGFX9 and GFX10 only. 176447eb6368SDmitry Preobrazhensky 176547eb6368SDmitry Preobrazhensky.. _amdgpu_synid_op_sel: 176647eb6368SDmitry Preobrazhensky 176747eb6368SDmitry Preobrazhenskyop_sel 176847eb6368SDmitry Preobrazhensky~~~~~~ 176947eb6368SDmitry Preobrazhensky 177047eb6368SDmitry PreobrazhenskySelects the low [15:0] or high [31:16] operand bits as input to the operation 177147eb6368SDmitry Preobrazhenskywhich results in the lower-half of the destination. 177247eb6368SDmitry PreobrazhenskyBy default, low bits are used for all operands. 177347eb6368SDmitry Preobrazhensky 177447eb6368SDmitry PreobrazhenskyThe number of values specified by the *op_sel* modifier must match the number of source 177547eb6368SDmitry Preobrazhenskyoperands. First value controls src0, second value controls src1 and so on. 177647eb6368SDmitry Preobrazhensky 177747eb6368SDmitry PreobrazhenskyThe value 0 selects the low bits, while 1 selects the high bits. 177847eb6368SDmitry Preobrazhensky 177947eb6368SDmitry Preobrazhensky ================================= ============================================================= 178047eb6368SDmitry Preobrazhensky Syntax Description 178147eb6368SDmitry Preobrazhensky ================================= ============================================================= 178247eb6368SDmitry Preobrazhensky op_sel:[{0..1}] Select operand bits for instructions with 1 source operand. 178347eb6368SDmitry Preobrazhensky op_sel:[{0..1},{0..1}] Select operand bits for instructions with 2 source operands. 178447eb6368SDmitry Preobrazhensky op_sel:[{0..1},{0..1},{0..1}] Select operand bits for instructions with 3 source operands. 178547eb6368SDmitry Preobrazhensky ================================= ============================================================= 178647eb6368SDmitry Preobrazhensky 1787b9683d3cSDmitry PreobrazhenskyNote: numeric values may be specified as either 1788b9683d3cSDmitry Preobrazhensky:ref:`integer numbers<amdgpu_synid_integer_number>` or 1789b9683d3cSDmitry Preobrazhensky:ref:`absolute expressions<amdgpu_synid_absolute_expression>`. 1790b9683d3cSDmitry Preobrazhensky 179147eb6368SDmitry PreobrazhenskyExamples: 179247eb6368SDmitry Preobrazhensky 17931fa7aaf5SDmitry Preobrazhensky.. parsed-literal:: 179447eb6368SDmitry Preobrazhensky 179547eb6368SDmitry Preobrazhensky op_sel:[0,0] 179647eb6368SDmitry Preobrazhensky op_sel:[0,1,0] 179747eb6368SDmitry Preobrazhensky 179847eb6368SDmitry Preobrazhensky.. _amdgpu_synid_op_sel_hi: 179947eb6368SDmitry Preobrazhensky 180047eb6368SDmitry Preobrazhenskyop_sel_hi 180147eb6368SDmitry Preobrazhensky~~~~~~~~~ 180247eb6368SDmitry Preobrazhensky 180347eb6368SDmitry PreobrazhenskySelects the low [15:0] or high [31:16] operand bits as input to the operation 180447eb6368SDmitry Preobrazhenskywhich results in the upper-half of the destination. 180547eb6368SDmitry PreobrazhenskyBy default, high bits are used for all operands. 180647eb6368SDmitry Preobrazhensky 180747eb6368SDmitry PreobrazhenskyThe number of values specified by the *op_sel_hi* modifier must match the number of source 180847eb6368SDmitry Preobrazhenskyoperands. First value controls src0, second value controls src1 and so on. 180947eb6368SDmitry Preobrazhensky 181047eb6368SDmitry PreobrazhenskyThe value 0 selects the low bits, while 1 selects the high bits. 181147eb6368SDmitry Preobrazhensky 181247eb6368SDmitry Preobrazhensky =================================== ============================================================= 181347eb6368SDmitry Preobrazhensky Syntax Description 181447eb6368SDmitry Preobrazhensky =================================== ============================================================= 181547eb6368SDmitry Preobrazhensky op_sel_hi:[{0..1}] Select operand bits for instructions with 1 source operand. 181647eb6368SDmitry Preobrazhensky op_sel_hi:[{0..1},{0..1}] Select operand bits for instructions with 2 source operands. 181747eb6368SDmitry Preobrazhensky op_sel_hi:[{0..1},{0..1},{0..1}] Select operand bits for instructions with 3 source operands. 181847eb6368SDmitry Preobrazhensky =================================== ============================================================= 181947eb6368SDmitry Preobrazhensky 1820b9683d3cSDmitry PreobrazhenskyNote: numeric values may be specified as either 1821b9683d3cSDmitry Preobrazhensky:ref:`integer numbers<amdgpu_synid_integer_number>` or 1822b9683d3cSDmitry Preobrazhensky:ref:`absolute expressions<amdgpu_synid_absolute_expression>`. 1823b9683d3cSDmitry Preobrazhensky 182447eb6368SDmitry PreobrazhenskyExamples: 182547eb6368SDmitry Preobrazhensky 18261fa7aaf5SDmitry Preobrazhensky.. parsed-literal:: 182747eb6368SDmitry Preobrazhensky 182847eb6368SDmitry Preobrazhensky op_sel_hi:[0,0] 182947eb6368SDmitry Preobrazhensky op_sel_hi:[0,0,1] 183047eb6368SDmitry Preobrazhensky 183147eb6368SDmitry Preobrazhensky.. _amdgpu_synid_neg_lo: 183247eb6368SDmitry Preobrazhensky 183347eb6368SDmitry Preobrazhenskyneg_lo 183447eb6368SDmitry Preobrazhensky~~~~~~ 183547eb6368SDmitry Preobrazhensky 183647eb6368SDmitry PreobrazhenskySpecifies whether to change sign of operand values selected by 183747eb6368SDmitry Preobrazhensky:ref:`op_sel<amdgpu_synid_op_sel>`. These values are then used 183847eb6368SDmitry Preobrazhenskyas input to the operation which results in the upper-half of the destination. 183947eb6368SDmitry Preobrazhensky 184047eb6368SDmitry PreobrazhenskyThe number of values specified by this modifier must match the number of source 184147eb6368SDmitry Preobrazhenskyoperands. First value controls src0, second value controls src1 and so on. 184247eb6368SDmitry Preobrazhensky 184347eb6368SDmitry PreobrazhenskyThe value 0 indicates that the corresponding operand value is used unmodified, 184447eb6368SDmitry Preobrazhenskythe value 1 indicates that negative value of the operand must be used. 184547eb6368SDmitry Preobrazhensky 184647eb6368SDmitry PreobrazhenskyBy default, operand values are used unmodified. 184747eb6368SDmitry Preobrazhensky 184847eb6368SDmitry PreobrazhenskyThis modifier is valid for floating point operands only. 184947eb6368SDmitry Preobrazhensky 185047eb6368SDmitry Preobrazhensky ================================ ================================================================== 185147eb6368SDmitry Preobrazhensky Syntax Description 185247eb6368SDmitry Preobrazhensky ================================ ================================================================== 185347eb6368SDmitry Preobrazhensky neg_lo:[{0..1}] Select affected operands for instructions with 1 source operand. 185447eb6368SDmitry Preobrazhensky neg_lo:[{0..1},{0..1}] Select affected operands for instructions with 2 source operands. 185547eb6368SDmitry Preobrazhensky neg_lo:[{0..1},{0..1},{0..1}] Select affected operands for instructions with 3 source operands. 185647eb6368SDmitry Preobrazhensky ================================ ================================================================== 185747eb6368SDmitry Preobrazhensky 1858b9683d3cSDmitry PreobrazhenskyNote: numeric values may be specified as either 1859b9683d3cSDmitry Preobrazhensky:ref:`integer numbers<amdgpu_synid_integer_number>` or 1860b9683d3cSDmitry Preobrazhensky:ref:`absolute expressions<amdgpu_synid_absolute_expression>`. 1861b9683d3cSDmitry Preobrazhensky 186247eb6368SDmitry PreobrazhenskyExamples: 186347eb6368SDmitry Preobrazhensky 18641fa7aaf5SDmitry Preobrazhensky.. parsed-literal:: 186547eb6368SDmitry Preobrazhensky 186647eb6368SDmitry Preobrazhensky neg_lo:[0] 186747eb6368SDmitry Preobrazhensky neg_lo:[0,1] 186847eb6368SDmitry Preobrazhensky 186947eb6368SDmitry Preobrazhensky.. _amdgpu_synid_neg_hi: 187047eb6368SDmitry Preobrazhensky 187147eb6368SDmitry Preobrazhenskyneg_hi 187247eb6368SDmitry Preobrazhensky~~~~~~ 187347eb6368SDmitry Preobrazhensky 187447eb6368SDmitry PreobrazhenskySpecifies whether to change sign of operand values selected by 187547eb6368SDmitry Preobrazhensky:ref:`op_sel_hi<amdgpu_synid_op_sel_hi>`. These values are then used 187647eb6368SDmitry Preobrazhenskyas input to the operation which results in the upper-half of the destination. 187747eb6368SDmitry Preobrazhensky 187847eb6368SDmitry PreobrazhenskyThe number of values specified by this modifier must match the number of source 187947eb6368SDmitry Preobrazhenskyoperands. First value controls src0, second value controls src1 and so on. 188047eb6368SDmitry Preobrazhensky 188147eb6368SDmitry PreobrazhenskyThe value 0 indicates that the corresponding operand value is used unmodified, 188247eb6368SDmitry Preobrazhenskythe value 1 indicates that negative value of the operand must be used. 188347eb6368SDmitry Preobrazhensky 188447eb6368SDmitry PreobrazhenskyBy default, operand values are used unmodified. 188547eb6368SDmitry Preobrazhensky 188647eb6368SDmitry PreobrazhenskyThis modifier is valid for floating point operands only. 188747eb6368SDmitry Preobrazhensky 188847eb6368SDmitry Preobrazhensky =============================== ================================================================== 188947eb6368SDmitry Preobrazhensky Syntax Description 189047eb6368SDmitry Preobrazhensky =============================== ================================================================== 189147eb6368SDmitry Preobrazhensky neg_hi:[{0..1}] Select affected operands for instructions with 1 source operand. 189247eb6368SDmitry Preobrazhensky neg_hi:[{0..1},{0..1}] Select affected operands for instructions with 2 source operands. 189347eb6368SDmitry Preobrazhensky neg_hi:[{0..1},{0..1},{0..1}] Select affected operands for instructions with 3 source operands. 189447eb6368SDmitry Preobrazhensky =============================== ================================================================== 189547eb6368SDmitry Preobrazhensky 1896b9683d3cSDmitry PreobrazhenskyNote: numeric values may be specified as either 1897b9683d3cSDmitry Preobrazhensky:ref:`integer numbers<amdgpu_synid_integer_number>` or 1898b9683d3cSDmitry Preobrazhensky:ref:`absolute expressions<amdgpu_synid_absolute_expression>`. 1899b9683d3cSDmitry Preobrazhensky 190047eb6368SDmitry PreobrazhenskyExamples: 190147eb6368SDmitry Preobrazhensky 19021fa7aaf5SDmitry Preobrazhensky.. parsed-literal:: 190347eb6368SDmitry Preobrazhensky 190447eb6368SDmitry Preobrazhensky neg_hi:[1,0] 190547eb6368SDmitry Preobrazhensky neg_hi:[0,1,1] 190647eb6368SDmitry Preobrazhensky 190747eb6368SDmitry Preobrazhenskyclamp 190847eb6368SDmitry Preobrazhensky~~~~~ 190947eb6368SDmitry Preobrazhensky 191047eb6368SDmitry PreobrazhenskySee a description :ref:`here<amdgpu_synid_clamp>`. 191147eb6368SDmitry Preobrazhensky 191247eb6368SDmitry Preobrazhensky.. _amdgpu_synid_mad_mix: 191347eb6368SDmitry Preobrazhensky 19143f7985e6SDmitry PreobrazhenskyVOP3P MAD_MIX/FMA_MIX Modifiers 19153f7985e6SDmitry Preobrazhensky------------------------------- 191647eb6368SDmitry Preobrazhensky 191780c45e49SDmitry Preobrazhensky*v_mad_mix\** and *v_fma_mix\** 191880c45e49SDmitry Preobrazhenskyinstructions use *op_sel* and *op_sel_hi* modifiers 191947eb6368SDmitry Preobrazhenskyin a manner different from *regular* VOP3P instructions. 192047eb6368SDmitry Preobrazhensky 192147eb6368SDmitry PreobrazhenskySee a description below. 192247eb6368SDmitry Preobrazhensky 1923cef9d421SDmitry PreobrazhenskyGFX9 and GFX10 only. 192447eb6368SDmitry Preobrazhensky 192547eb6368SDmitry Preobrazhensky.. _amdgpu_synid_mad_mix_op_sel: 192647eb6368SDmitry Preobrazhensky 1927ddac5c9bSDmitry Preobrazhenskym_op_sel 1928ddac5c9bSDmitry Preobrazhensky~~~~~~~~ 192947eb6368SDmitry Preobrazhensky 193047eb6368SDmitry PreobrazhenskyThis operand has meaning only for 16-bit source operands as indicated by 1931ddac5c9bSDmitry Preobrazhensky:ref:`m_op_sel_hi<amdgpu_synid_mad_mix_op_sel_hi>`. 193247eb6368SDmitry PreobrazhenskyIt specifies to select either the low [15:0] or high [31:16] operand bits 193347eb6368SDmitry Preobrazhenskyas input to the operation. 193447eb6368SDmitry Preobrazhensky 193547eb6368SDmitry PreobrazhenskyThe number of values specified by the *op_sel* modifier must match the number of source 193647eb6368SDmitry Preobrazhenskyoperands. First value controls src0, second value controls src1 and so on. 193747eb6368SDmitry Preobrazhensky 193847eb6368SDmitry PreobrazhenskyThe value 0 indicates the low bits, the value 1 indicates the high 16 bits. 193947eb6368SDmitry Preobrazhensky 194047eb6368SDmitry PreobrazhenskyBy default, low bits are used for all operands. 194147eb6368SDmitry Preobrazhensky 194247eb6368SDmitry Preobrazhensky =============================== ================================================ 194347eb6368SDmitry Preobrazhensky Syntax Description 194447eb6368SDmitry Preobrazhensky =============================== ================================================ 194547eb6368SDmitry Preobrazhensky op_sel:[{0..1},{0..1},{0..1}] Select location of each 16-bit source operand. 194647eb6368SDmitry Preobrazhensky =============================== ================================================ 194747eb6368SDmitry Preobrazhensky 1948b9683d3cSDmitry PreobrazhenskyNote: numeric values may be specified as either 1949b9683d3cSDmitry Preobrazhensky:ref:`integer numbers<amdgpu_synid_integer_number>` or 1950b9683d3cSDmitry Preobrazhensky:ref:`absolute expressions<amdgpu_synid_absolute_expression>`. 1951b9683d3cSDmitry Preobrazhensky 195247eb6368SDmitry PreobrazhenskyExamples: 195347eb6368SDmitry Preobrazhensky 19541fa7aaf5SDmitry Preobrazhensky.. parsed-literal:: 195547eb6368SDmitry Preobrazhensky 195647eb6368SDmitry Preobrazhensky op_sel:[0,1] 195747eb6368SDmitry Preobrazhensky 195847eb6368SDmitry Preobrazhensky.. _amdgpu_synid_mad_mix_op_sel_hi: 195947eb6368SDmitry Preobrazhensky 1960ddac5c9bSDmitry Preobrazhenskym_op_sel_hi 1961ddac5c9bSDmitry Preobrazhensky~~~~~~~~~~~ 196247eb6368SDmitry Preobrazhensky 196347eb6368SDmitry PreobrazhenskySelects the size of source operands: either 32 bits or 16 bits. 196447eb6368SDmitry PreobrazhenskyBy default, 32 bits are used for all source operands. 196547eb6368SDmitry Preobrazhensky 196647eb6368SDmitry PreobrazhenskyThe number of values specified by the *op_sel_hi* modifier must match the number of source 196747eb6368SDmitry Preobrazhenskyoperands. First value controls src0, second value controls src1 and so on. 196847eb6368SDmitry Preobrazhensky 196947eb6368SDmitry PreobrazhenskyThe value 0 indicates 32 bits, the value 1 indicates 16 bits. 197047eb6368SDmitry Preobrazhensky 197147eb6368SDmitry PreobrazhenskyThe location of 16 bits in the operand may be specified by 1972ddac5c9bSDmitry Preobrazhensky:ref:`m_op_sel<amdgpu_synid_mad_mix_op_sel>`. 197347eb6368SDmitry Preobrazhensky 197447eb6368SDmitry Preobrazhensky ======================================== ==================================== 197547eb6368SDmitry Preobrazhensky Syntax Description 197647eb6368SDmitry Preobrazhensky ======================================== ==================================== 197747eb6368SDmitry Preobrazhensky op_sel_hi:[{0..1},{0..1},{0..1}] Select size of each source operand. 197847eb6368SDmitry Preobrazhensky ======================================== ==================================== 197947eb6368SDmitry Preobrazhensky 1980b9683d3cSDmitry PreobrazhenskyNote: numeric values may be specified as either 1981b9683d3cSDmitry Preobrazhensky:ref:`integer numbers<amdgpu_synid_integer_number>` or 1982b9683d3cSDmitry Preobrazhensky:ref:`absolute expressions<amdgpu_synid_absolute_expression>`. 1983b9683d3cSDmitry Preobrazhensky 198447eb6368SDmitry PreobrazhenskyExamples: 198547eb6368SDmitry Preobrazhensky 19861fa7aaf5SDmitry Preobrazhensky.. parsed-literal:: 198747eb6368SDmitry Preobrazhensky 198847eb6368SDmitry Preobrazhensky op_sel_hi:[1,1,1] 198947eb6368SDmitry Preobrazhensky 199047eb6368SDmitry Preobrazhenskyabs 199147eb6368SDmitry Preobrazhensky~~~ 199247eb6368SDmitry Preobrazhensky 199347eb6368SDmitry PreobrazhenskySee a description :ref:`here<amdgpu_synid_abs>`. 199447eb6368SDmitry Preobrazhensky 199547eb6368SDmitry Preobrazhenskyneg 199647eb6368SDmitry Preobrazhensky~~~ 199747eb6368SDmitry Preobrazhensky 199847eb6368SDmitry PreobrazhenskySee a description :ref:`here<amdgpu_synid_neg>`. 199947eb6368SDmitry Preobrazhensky 200047eb6368SDmitry Preobrazhenskyclamp 200147eb6368SDmitry Preobrazhensky~~~~~ 200247eb6368SDmitry Preobrazhensky 200347eb6368SDmitry PreobrazhenskySee a description :ref:`here<amdgpu_synid_clamp>`. 200480c45e49SDmitry Preobrazhensky 200580c45e49SDmitry PreobrazhenskyVOP3P MFMA Modifiers 200680c45e49SDmitry Preobrazhensky-------------------- 200780c45e49SDmitry Preobrazhensky 2008434b278cSDmitry PreobrazhenskyThese modifiers may only be used with GFX908 and GFX90A. 2009434b278cSDmitry Preobrazhensky 201080c45e49SDmitry Preobrazhensky.. _amdgpu_synid_cbsz: 201180c45e49SDmitry Preobrazhensky 201280c45e49SDmitry Preobrazhenskycbsz 201380c45e49SDmitry Preobrazhensky~~~~ 201480c45e49SDmitry Preobrazhensky 2015434b278cSDmitry PreobrazhenskySpecifies a broadcast mode. 2016434b278cSDmitry Preobrazhensky 201780c45e49SDmitry Preobrazhensky =============================== ================================================================== 201880c45e49SDmitry Preobrazhensky Syntax Description 201980c45e49SDmitry Preobrazhensky =============================== ================================================================== 2020434b278cSDmitry Preobrazhensky cbsz:[{0..7}] A broadcast mode. 202180c45e49SDmitry Preobrazhensky =============================== ================================================================== 202280c45e49SDmitry Preobrazhensky 202380c45e49SDmitry PreobrazhenskyNote: numeric value may be specified as either 202480c45e49SDmitry Preobrazhenskyan :ref:`integer number<amdgpu_synid_integer_number>` or 202580c45e49SDmitry Preobrazhenskyan :ref:`absolute expression<amdgpu_synid_absolute_expression>`. 202680c45e49SDmitry Preobrazhensky 202780c45e49SDmitry Preobrazhensky.. _amdgpu_synid_abid: 202880c45e49SDmitry Preobrazhensky 202980c45e49SDmitry Preobrazhenskyabid 203080c45e49SDmitry Preobrazhensky~~~~ 203180c45e49SDmitry Preobrazhensky 2032434b278cSDmitry PreobrazhenskySpecifies matrix A group select. 2033434b278cSDmitry Preobrazhensky 203480c45e49SDmitry Preobrazhensky =============================== ================================================================== 203580c45e49SDmitry Preobrazhensky Syntax Description 203680c45e49SDmitry Preobrazhensky =============================== ================================================================== 2037434b278cSDmitry Preobrazhensky abid:[{0..15}] Matrix A group select id. 203880c45e49SDmitry Preobrazhensky =============================== ================================================================== 203980c45e49SDmitry Preobrazhensky 204080c45e49SDmitry PreobrazhenskyNote: numeric value may be specified as either 204180c45e49SDmitry Preobrazhenskyan :ref:`integer number<amdgpu_synid_integer_number>` or 204280c45e49SDmitry Preobrazhenskyan :ref:`absolute expression<amdgpu_synid_absolute_expression>`. 204380c45e49SDmitry Preobrazhensky 204480c45e49SDmitry Preobrazhensky.. _amdgpu_synid_blgp: 204580c45e49SDmitry Preobrazhensky 204680c45e49SDmitry Preobrazhenskyblgp 204780c45e49SDmitry Preobrazhensky~~~~ 204880c45e49SDmitry Preobrazhensky 2049434b278cSDmitry PreobrazhenskySpecifies matrix B lane group pattern. 2050434b278cSDmitry Preobrazhensky 205180c45e49SDmitry Preobrazhensky =============================== ================================================================== 205280c45e49SDmitry Preobrazhensky Syntax Description 205380c45e49SDmitry Preobrazhensky =============================== ================================================================== 2054434b278cSDmitry Preobrazhensky blgp:[{0..7}] Matrix B lane group pattern. 205580c45e49SDmitry Preobrazhensky =============================== ================================================================== 205680c45e49SDmitry Preobrazhensky 205780c45e49SDmitry PreobrazhenskyNote: numeric value may be specified as either 205880c45e49SDmitry Preobrazhenskyan :ref:`integer number<amdgpu_synid_integer_number>` or 205980c45e49SDmitry Preobrazhenskyan :ref:`absolute expression<amdgpu_synid_absolute_expression>`. 206080c45e49SDmitry Preobrazhensky 206162c46093SDmitry Preobrazhensky.. _amdgpu_synid_mfma_neg: 206262c46093SDmitry Preobrazhensky 206362c46093SDmitry Preobrazhenskyneg 206462c46093SDmitry Preobrazhensky~~~ 206562c46093SDmitry Preobrazhensky 206662c46093SDmitry PreobrazhenskyIndicates operands that must be negated before the operation. 206762c46093SDmitry PreobrazhenskyThe number of values specified by this modifier must match the number of source 206862c46093SDmitry Preobrazhenskyoperands. First value controls src0, second value controls src1 and so on. 206962c46093SDmitry Preobrazhensky 207062c46093SDmitry PreobrazhenskyThe value 0 indicates that the corresponding operand value is used unmodified, 207162c46093SDmitry Preobrazhenskythe value 1 indicates that the operand value must be negated before the operation. 207262c46093SDmitry Preobrazhensky 207362c46093SDmitry PreobrazhenskyBy default, operand values are used unmodified. 207462c46093SDmitry Preobrazhensky 207562c46093SDmitry PreobrazhenskyThis modifier is valid for floating point operands only. 207662c46093SDmitry Preobrazhensky 207762c46093SDmitry Preobrazhensky =============================== ================================================================== 207862c46093SDmitry Preobrazhensky Syntax Description 207962c46093SDmitry Preobrazhensky =============================== ================================================================== 208062c46093SDmitry Preobrazhensky neg:[{0..1},{0..1},{0..1}] Select operands which must be negated before the operation. 208162c46093SDmitry Preobrazhensky =============================== ================================================================== 208262c46093SDmitry Preobrazhensky 208362c46093SDmitry PreobrazhenskyNote: numeric values may be specified as either 208462c46093SDmitry Preobrazhensky:ref:`integer numbers<amdgpu_synid_integer_number>` or 208562c46093SDmitry Preobrazhensky:ref:`absolute expressions<amdgpu_synid_absolute_expression>`. 208662c46093SDmitry Preobrazhensky 208762c46093SDmitry PreobrazhenskyExamples: 208862c46093SDmitry Preobrazhensky 208962c46093SDmitry Preobrazhensky.. parsed-literal:: 209062c46093SDmitry Preobrazhensky 209162c46093SDmitry Preobrazhensky neg:[0,1,1] 2092