diff --git a/extra/assembly/amd/asm.py b/extra/assembly/amd/asm.py index f983e94afb..584bb354b3 100644 --- a/extra/assembly/amd/asm.py +++ b/extra/assembly/amd/asm.py @@ -4,9 +4,9 @@ import re from extra.assembly.amd.dsl import Inst, RawImm, Reg, SrcMod, SGPR, VGPR, TTMP, s, v, ttmp, _RegFactory, SRC_FIELDS, unwrap from extra.assembly.amd.dsl import VCC_LO, VCC_HI, VCC, EXEC_LO, EXEC_HI, EXEC, SCC, M0, NULL, OFF from extra.assembly.amd.dsl import SPECIAL_GPRS, SPECIAL_PAIRS, FLOAT_DEC, FLOAT_ENC, decode_src -from extra.assembly.amd.autogen.rdna3 import VOP1, VOP2, VOP3, VOP3SD, VOP3P, VOPC, VOPD, VINTERP, SOP1, SOP2, SOPC, SOPK, SOPP, SMEM, DS, FLAT, MUBUF, MTBUF, MIMG, EXP -from extra.assembly.amd.autogen.rdna3 import VOP1Op, VOP2Op, VOP3Op, VOP3SDOp, VOP3POp, VOPCOp, VOPDOp, VINTERPOp -from extra.assembly.amd.autogen.rdna3 import SOP1Op, SOP2Op, SOPCOp, SOPKOp, SOPPOp, SMEMOp, DSOp, FLATOp, MUBUFOp, MTBUFOp, MIMGOp +from extra.assembly.amd.autogen.rdna3 import ins +from extra.assembly.amd.autogen.rdna3.ins import (VOP1, VOP2, VOP3, VOP3SD, VOP3P, VOPC, VOPD, VINTERP, SOP1, SOP2, SOPC, SOPK, SOPP, SMEM, DS, FLAT, MUBUF, MTBUF, MIMG, EXP, + VOP1Op, VOP2Op, VOP3Op, VOP3SDOp, VOP3POp, VOPCOp, VOPDOp, VINTERPOp, SOP1Op, SOP2Op, SOPCOp, SOPKOp, SOPPOp, SMEMOp, DSOp, FLATOp, MUBUFOp, MTBUFOp, MIMGOp) # VOP3SD opcodes that share VOP3 encoding VOP3SD_OPS = {288, 289, 290, 764, 765, 766, 767, 768, 769, 770} @@ -632,9 +632,8 @@ def get_dsl(text: str) -> str: return f"{fn}({a_str}, {kw_str})" if kw_str and a_str else f"{fn}({kw_str})" if kw_str else f"{fn}({a_str})" def asm(text: str) -> Inst: - from extra.assembly.amd.autogen import rdna3 as ag dsl = get_dsl(text) - ns = {n: getattr(ag, n) for n in dir(ag) if not n.startswith('_')} + ns = {n: getattr(ins, n) for n in dir(ins) if not n.startswith('_')} ns.update({'s': s, 'v': v, 'ttmp': ttmp, 'abs': abs, 'RawImm': RawImm, 'SrcMod': SrcMod, 'VGPR': VGPR, 'SGPR': SGPR, 'TTMP': TTMP, 'VCC_LO': VCC_LO, 'VCC_HI': VCC_HI, 'VCC': VCC, 'EXEC_LO': EXEC_LO, 'EXEC_HI': EXEC_HI, 'EXEC': EXEC, 'SCC': SCC, 'M0': M0, 'NULL': NULL, 'OFF': OFF}) try: return eval(dsl, ns) diff --git a/extra/assembly/amd/autogen/cdna/__init__.py b/extra/assembly/amd/autogen/cdna/__init__.py index 8ac6b7e358..e69de29bb2 100644 --- a/extra/assembly/amd/autogen/cdna/__init__.py +++ b/extra/assembly/amd/autogen/cdna/__init__.py @@ -1,3480 +0,0 @@ -# autogenerated from AMD CDNA3+CDNA4 ISA PDF by pdf.py - do not edit -from enum import IntEnum -from typing import Annotated -from extra.assembly.amd.dsl import bits, BitField, Inst32, Inst64, SGPR, VGPR, TTMP as TTMP, s as s, v as v, ttmp as ttmp, SSrc, Src, SImm, Imm, VDSTYEnc, SGPRField, VGPRField -import functools - -class SrcEnum(IntEnum): - S_ADD_U32 = 0 - S_SUB_U32 = 1 - S_ADD_I32 = 2 - S_SUB_I32 = 3 - S_ADDC_U32 = 4 - S_SUBB_U32 = 5 - S_MIN_I32 = 6 - FLAT_SCRATCH_LO = 102 - FLAT_SCRATCH_HI = 103 - XNACK_MASK_LO = 104 - XNACK_MASK_HI = 105 - VCC_LO = 106 - VCC_HI = 107 - M0 = 124 - EXEC_LO = 126 - EXEC_HI = 127 - ZERO = 128 - DPP8 = 233 - DPP8FI = 234 - SHARED_BASE = 235 - SHARED_LIMIT = 236 - PRIVATE_BASE = 237 - PRIVATE_LIMIT = 238 - RESERVED = 239 - POS_HALF = 240 - NEG_HALF = 241 - POS_ONE = 242 - NEG_ONE = 243 - POS_TWO = 244 - NEG_TWO = 245 - POS_FOUR = 246 - NEG_FOUR = 247 - INV_2PI = 248 - DPP16 = 250 - VCCZ = 251 - EXECZ = 252 - SCC = 253 - LDS_DIRECT = 254 - -class DSOp(IntEnum): - DS_ADD_U32 = 0 - DS_SUB_U32 = 1 - DS_RSUB_U32 = 2 - DS_INC_U32 = 3 - DS_DEC_U32 = 4 - DS_MIN_I32 = 5 - DS_MAX_I32 = 6 - DS_MIN_U32 = 7 - DS_MAX_U32 = 8 - DS_AND_B32 = 9 - DS_OR_B32 = 10 - DS_XOR_B32 = 11 - DS_MSKOR_B32 = 12 - DS_WRITE_B32 = 13 - DS_WRITE2_B32 = 14 - DS_WRITE2ST64_B32 = 15 - DS_CMPST_B32 = 16 - DS_CMPST_F32 = 17 - DS_MIN_F32 = 18 - DS_MAX_F32 = 19 - DS_NOP = 20 - DS_ADD_F32 = 21 - DS_PK_ADD_F16 = 23 - DS_PK_ADD_BF16 = 24 - DS_WRITE_ADDTID_B32 = 29 - DS_WRITE_B8 = 30 - DS_WRITE_B16 = 31 - DS_ADD_RTN_U32 = 32 - DS_SUB_RTN_U32 = 33 - DS_RSUB_RTN_U32 = 34 - DS_INC_RTN_U32 = 35 - DS_DEC_RTN_U32 = 36 - DS_MIN_RTN_I32 = 37 - DS_MAX_RTN_I32 = 38 - DS_MIN_RTN_U32 = 39 - DS_MAX_RTN_U32 = 40 - DS_AND_RTN_B32 = 41 - DS_OR_RTN_B32 = 42 - DS_XOR_RTN_B32 = 43 - DS_MSKOR_RTN_B32 = 44 - DS_WRXCHG_RTN_B32 = 45 - DS_WRXCHG2_RTN_B32 = 46 - DS_WRXCHG2ST64_RTN_B32 = 47 - DS_CMPST_RTN_B32 = 48 - DS_CMPST_RTN_F32 = 49 - DS_MIN_RTN_F32 = 50 - DS_MAX_RTN_F32 = 51 - DS_WRAP_RTN_B32 = 52 - DS_ADD_RTN_F32 = 53 - DS_READ_B32 = 54 - DS_READ2_B32 = 55 - DS_READ2ST64_B32 = 56 - DS_READ_I8 = 57 - DS_READ_U8 = 58 - DS_READ_I16 = 59 - DS_READ_U16 = 60 - DS_SWIZZLE_B32 = 61 - DS_PERMUTE_B32 = 62 - DS_BPERMUTE_B32 = 63 - DS_ADD_U64 = 64 - DS_SUB_U64 = 65 - DS_RSUB_U64 = 66 - DS_INC_U64 = 67 - DS_DEC_U64 = 68 - DS_MIN_I64 = 69 - DS_MAX_I64 = 70 - DS_MIN_U64 = 71 - DS_MAX_U64 = 72 - DS_AND_B64 = 73 - DS_OR_B64 = 74 - DS_XOR_B64 = 75 - DS_MSKOR_B64 = 76 - DS_WRITE_B64 = 77 - DS_WRITE2_B64 = 78 - DS_WRITE2ST64_B64 = 79 - DS_CMPST_B64 = 80 - DS_CMPST_F64 = 81 - DS_MIN_F64 = 82 - DS_MAX_F64 = 83 - DS_WRITE_B8_D16_HI = 84 - DS_WRITE_B16_D16_HI = 85 - DS_READ_U8_D16 = 86 - DS_READ_U8_D16_HI = 87 - DS_READ_I8_D16 = 88 - DS_READ_I8_D16_HI = 89 - DS_READ_U16_D16 = 90 - DS_READ_U16_D16_HI = 91 - DS_ADD_F64 = 92 - DS_ADD_RTN_U64 = 96 - DS_SUB_RTN_U64 = 97 - DS_RSUB_RTN_U64 = 98 - DS_INC_RTN_U64 = 99 - DS_DEC_RTN_U64 = 100 - DS_MIN_RTN_I64 = 101 - DS_MAX_RTN_I64 = 102 - DS_MIN_RTN_U64 = 103 - DS_MAX_RTN_U64 = 104 - DS_AND_RTN_B64 = 105 - DS_OR_RTN_B64 = 106 - DS_XOR_RTN_B64 = 107 - DS_MSKOR_RTN_B64 = 108 - DS_WRXCHG_RTN_B64 = 109 - DS_WRXCHG2_RTN_B64 = 110 - DS_WRXCHG2ST64_RTN_B64 = 111 - DS_CMPST_RTN_B64 = 112 - DS_CMPST_RTN_F64 = 113 - DS_MIN_RTN_F64 = 114 - DS_MAX_RTN_F64 = 115 - DS_READ_B64 = 118 - DS_READ2_B64 = 119 - DS_READ2ST64_B64 = 120 - DS_ADD_RTN_F64 = 124 - DS_CONDXCHG32_RTN_B64 = 126 - DS_GWS_SEMA_RELEASE_ALL = 152 - DS_GWS_INIT = 153 - DS_GWS_SEMA_V = 154 - DS_GWS_SEMA_BR = 155 - DS_GWS_SEMA_P = 156 - DS_GWS_BARRIER = 157 - DS_READ_ADDTID_B32 = 182 - DS_PK_ADD_RTN_F16 = 183 - DS_PK_ADD_RTN_BF16 = 184 - DS_CONSUME = 189 - DS_APPEND = 190 - DS_WRITE_B96 = 222 - DS_WRITE_B128 = 223 - DS_READ_B64_TR_B4 = 224 - DS_READ_B96_TR_B6 = 225 - DS_READ_B64_TR_B8 = 226 - DS_READ_B64_TR_B16 = 227 - DS_READ_B96 = 254 - DS_READ_B128 = 255 - CDNA4 = 600 - -class FLATOp(IntEnum): - FLAT_LOAD_UBYTE = 16 - FLAT_LOAD_SBYTE = 17 - FLAT_LOAD_USHORT = 18 - FLAT_LOAD_SSHORT = 19 - FLAT_LOAD_DWORD = 20 - FLAT_LOAD_DWORDX2 = 21 - FLAT_LOAD_DWORDX3 = 22 - FLAT_LOAD_DWORDX4 = 23 - FLAT_STORE_BYTE = 24 - FLAT_STORE_BYTE_D16_HI = 25 - FLAT_STORE_SHORT = 26 - FLAT_STORE_SHORT_D16_HI = 27 - FLAT_STORE_DWORD = 28 - FLAT_STORE_DWORDX2 = 29 - FLAT_STORE_DWORDX3 = 30 - FLAT_STORE_DWORDX4 = 31 - FLAT_LOAD_UBYTE_D16 = 32 - FLAT_LOAD_UBYTE_D16_HI = 33 - FLAT_LOAD_SBYTE_D16 = 34 - FLAT_LOAD_SBYTE_D16_HI = 35 - FLAT_LOAD_SHORT_D16 = 36 - FLAT_LOAD_SHORT_D16_HI = 37 - FLAT_ATOMIC_SWAP = 64 - FLAT_ATOMIC_CMPSWAP = 65 - FLAT_ATOMIC_ADD = 66 - FLAT_ATOMIC_SUB = 67 - FLAT_ATOMIC_SMIN = 68 - FLAT_ATOMIC_UMIN = 69 - FLAT_ATOMIC_SMAX = 70 - FLAT_ATOMIC_UMAX = 71 - FLAT_ATOMIC_AND = 72 - FLAT_ATOMIC_OR = 73 - FLAT_ATOMIC_XOR = 74 - FLAT_ATOMIC_INC = 75 - FLAT_ATOMIC_DEC = 76 - FLAT_ATOMIC_ADD_F32 = 77 - FLAT_ATOMIC_PK_ADD_F16 = 78 - FLAT_ATOMIC_ADD_F64 = 79 - FLAT_ATOMIC_MIN_F64 = 80 - FLAT_ATOMIC_MAX_F64 = 81 - FLAT_ATOMIC_PK_ADD_BF16 = 82 - FLAT_ATOMIC_SWAP_X2 = 96 - FLAT_ATOMIC_CMPSWAP_X2 = 97 - FLAT_ATOMIC_ADD_X2 = 98 - FLAT_ATOMIC_SUB_X2 = 99 - FLAT_ATOMIC_SMIN_X2 = 100 - FLAT_ATOMIC_UMIN_X2 = 101 - FLAT_ATOMIC_SMAX_X2 = 102 - FLAT_ATOMIC_UMAX_X2 = 103 - FLAT_ATOMIC_AND_X2 = 104 - FLAT_ATOMIC_OR_X2 = 105 - FLAT_ATOMIC_XOR_X2 = 106 - FLAT_ATOMIC_INC_X2 = 107 - FLAT_ATOMIC_DEC_X2 = 108 - CDNA4 = 600 - -class GLOBALOp(IntEnum): - GLOBAL_LOAD_UBYTE = 16 - GLOBAL_LOAD_SBYTE = 17 - GLOBAL_LOAD_USHORT = 18 - GLOBAL_LOAD_SSHORT = 19 - GLOBAL_LOAD_DWORD = 20 - GLOBAL_LOAD_DWORDX2 = 21 - GLOBAL_LOAD_DWORDX3 = 22 - GLOBAL_LOAD_DWORDX4 = 23 - GLOBAL_STORE_BYTE = 24 - GLOBAL_STORE_BYTE_D16_HI = 25 - GLOBAL_STORE_SHORT = 26 - GLOBAL_STORE_SHORT_D16_HI = 27 - GLOBAL_STORE_DWORD = 28 - GLOBAL_STORE_DWORDX2 = 29 - GLOBAL_STORE_DWORDX3 = 30 - GLOBAL_STORE_DWORDX4 = 31 - GLOBAL_LOAD_UBYTE_D16 = 32 - GLOBAL_LOAD_UBYTE_D16_HI = 33 - GLOBAL_LOAD_SBYTE_D16 = 34 - GLOBAL_LOAD_SBYTE_D16_HI = 35 - GLOBAL_LOAD_SHORT_D16 = 36 - GLOBAL_LOAD_SHORT_D16_HI = 37 - GLOBAL_LOAD_LDS_UBYTE = 38 - GLOBAL_LOAD_LDS_SBYTE = 39 - GLOBAL_LOAD_LDS_USHORT = 40 - GLOBAL_LOAD_LDS_SSHORT = 41 - GLOBAL_LOAD_LDS_DWORD = 42 - GLOBAL_ATOMIC_SWAP = 64 - GLOBAL_ATOMIC_CMPSWAP = 65 - GLOBAL_ATOMIC_ADD = 66 - GLOBAL_ATOMIC_SUB = 67 - GLOBAL_ATOMIC_SMIN = 68 - GLOBAL_ATOMIC_UMIN = 69 - GLOBAL_ATOMIC_SMAX = 70 - GLOBAL_ATOMIC_UMAX = 71 - GLOBAL_ATOMIC_AND = 72 - GLOBAL_ATOMIC_OR = 73 - GLOBAL_ATOMIC_XOR = 74 - GLOBAL_ATOMIC_INC = 75 - GLOBAL_ATOMIC_DEC = 76 - GLOBAL_ATOMIC_ADD_F32 = 77 - GLOBAL_ATOMIC_PK_ADD_F16 = 78 - GLOBAL_ATOMIC_ADD_F64 = 79 - GLOBAL_ATOMIC_MIN_F64 = 80 - GLOBAL_ATOMIC_MAX_F64 = 81 - GLOBAL_ATOMIC_PK_ADD_BF16 = 82 - GLOBAL_ATOMIC_SWAP_X2 = 96 - GLOBAL_ATOMIC_CMPSWAP_X2 = 97 - GLOBAL_ATOMIC_ADD_X2 = 98 - GLOBAL_ATOMIC_SUB_X2 = 99 - GLOBAL_ATOMIC_SMIN_X2 = 100 - GLOBAL_ATOMIC_UMIN_X2 = 101 - GLOBAL_ATOMIC_SMAX_X2 = 102 - GLOBAL_ATOMIC_UMAX_X2 = 103 - GLOBAL_ATOMIC_AND_X2 = 104 - GLOBAL_ATOMIC_OR_X2 = 105 - GLOBAL_ATOMIC_XOR_X2 = 106 - GLOBAL_ATOMIC_INC_X2 = 107 - GLOBAL_ATOMIC_DEC_X2 = 108 - GLOBAL_LOAD_LDS_DWORDX4 = 125 - GLOBAL_LOAD_LDS_DWORDX3 = 126 - CDNA4 = 600 - -class MTBUFOp(IntEnum): - TBUFFER_LOAD_FORMAT_X = 0 - TBUFFER_LOAD_FORMAT_XY = 1 - TBUFFER_LOAD_FORMAT_XYZ = 2 - TBUFFER_LOAD_FORMAT_XYZW = 3 - TBUFFER_STORE_FORMAT_X = 4 - TBUFFER_STORE_FORMAT_XY = 5 - TBUFFER_STORE_FORMAT_XYZ = 6 - TBUFFER_STORE_FORMAT_XYZW = 7 - TBUFFER_LOAD_FORMAT_D16_X = 8 - TBUFFER_LOAD_FORMAT_D16_XY = 9 - TBUFFER_LOAD_FORMAT_D16_XYZ = 10 - TBUFFER_LOAD_FORMAT_D16_XYZW = 11 - TBUFFER_STORE_FORMAT_D16_X = 12 - TBUFFER_STORE_FORMAT_D16_XY = 13 - TBUFFER_STORE_FORMAT_D16_XYZ = 14 - TBUFFER_STORE_FORMAT_D16_XYZW = 15 - -class MUBUFOp(IntEnum): - BUFFER_LOAD_FORMAT_X = 0 - BUFFER_LOAD_FORMAT_XY = 1 - BUFFER_LOAD_FORMAT_XYZ = 2 - BUFFER_LOAD_FORMAT_XYZW = 3 - BUFFER_STORE_FORMAT_X = 4 - BUFFER_STORE_FORMAT_XY = 5 - BUFFER_STORE_FORMAT_XYZ = 6 - BUFFER_STORE_FORMAT_XYZW = 7 - BUFFER_LOAD_FORMAT_D16_X = 8 - BUFFER_LOAD_FORMAT_D16_XY = 9 - BUFFER_LOAD_FORMAT_D16_XYZ = 10 - BUFFER_LOAD_FORMAT_D16_XYZW = 11 - BUFFER_STORE_FORMAT_D16_X = 12 - BUFFER_STORE_FORMAT_D16_XY = 13 - BUFFER_STORE_FORMAT_D16_XYZ = 14 - BUFFER_STORE_FORMAT_D16_XYZW = 15 - BUFFER_LOAD_UBYTE = 16 - BUFFER_LOAD_SBYTE = 17 - BUFFER_LOAD_USHORT = 18 - BUFFER_LOAD_SSHORT = 19 - BUFFER_LOAD_DWORD = 20 - BUFFER_LOAD_DWORDX2 = 21 - BUFFER_LOAD_DWORDX3 = 22 - BUFFER_LOAD_DWORDX4 = 23 - BUFFER_STORE_BYTE = 24 - BUFFER_STORE_BYTE_D16_HI = 25 - BUFFER_STORE_SHORT = 26 - BUFFER_STORE_SHORT_D16_HI = 27 - BUFFER_STORE_DWORD = 28 - BUFFER_STORE_DWORDX2 = 29 - BUFFER_STORE_DWORDX3 = 30 - BUFFER_STORE_DWORDX4 = 31 - BUFFER_LOAD_UBYTE_D16 = 32 - BUFFER_LOAD_UBYTE_D16_HI = 33 - BUFFER_LOAD_SBYTE_D16 = 34 - BUFFER_LOAD_SBYTE_D16_HI = 35 - BUFFER_LOAD_SHORT_D16 = 36 - BUFFER_LOAD_SHORT_D16_HI = 37 - BUFFER_LOAD_FORMAT_D16_HI_X = 38 - BUFFER_STORE_FORMAT_D16_HI_X = 39 - BUFFER_WBL2 = 40 - BUFFER_INV = 41 - BUFFER_ATOMIC_SWAP = 64 - BUFFER_ATOMIC_CMPSWAP = 65 - BUFFER_ATOMIC_ADD = 66 - BUFFER_ATOMIC_SUB = 67 - BUFFER_ATOMIC_SMIN = 68 - BUFFER_ATOMIC_UMIN = 69 - BUFFER_ATOMIC_SMAX = 70 - BUFFER_ATOMIC_UMAX = 71 - BUFFER_ATOMIC_AND = 72 - BUFFER_ATOMIC_OR = 73 - BUFFER_ATOMIC_XOR = 74 - BUFFER_ATOMIC_INC = 75 - BUFFER_ATOMIC_DEC = 76 - BUFFER_ATOMIC_ADD_F32 = 77 - BUFFER_ATOMIC_PK_ADD_F16 = 78 - BUFFER_ATOMIC_ADD_F64 = 79 - BUFFER_ATOMIC_MIN_F64 = 80 - BUFFER_ATOMIC_MAX_F64 = 81 - BUFFER_ATOMIC_PK_ADD_BF16 = 82 - BUFFER_ATOMIC_SWAP_X2 = 96 - BUFFER_ATOMIC_CMPSWAP_X2 = 97 - BUFFER_ATOMIC_ADD_X2 = 98 - BUFFER_ATOMIC_SUB_X2 = 99 - BUFFER_ATOMIC_SMIN_X2 = 100 - BUFFER_ATOMIC_UMIN_X2 = 101 - BUFFER_ATOMIC_SMAX_X2 = 102 - BUFFER_ATOMIC_UMAX_X2 = 103 - BUFFER_ATOMIC_AND_X2 = 104 - BUFFER_ATOMIC_OR_X2 = 105 - BUFFER_ATOMIC_XOR_X2 = 106 - BUFFER_ATOMIC_INC_X2 = 107 - BUFFER_ATOMIC_DEC_X2 = 108 - CDNA4 = 600 - -class SCRATCHOp(IntEnum): - SCRATCH_LOAD_UBYTE = 16 - SCRATCH_LOAD_SBYTE = 17 - SCRATCH_LOAD_USHORT = 18 - SCRATCH_LOAD_SSHORT = 19 - SCRATCH_LOAD_DWORD = 20 - SCRATCH_LOAD_DWORDX2 = 21 - SCRATCH_LOAD_DWORDX3 = 22 - SCRATCH_LOAD_DWORDX4 = 23 - SCRATCH_STORE_BYTE = 24 - SCRATCH_STORE_BYTE_D16_HI = 25 - SCRATCH_STORE_SHORT = 26 - SCRATCH_STORE_SHORT_D16_HI = 27 - SCRATCH_STORE_DWORD = 28 - SCRATCH_STORE_DWORDX2 = 29 - SCRATCH_STORE_DWORDX3 = 30 - SCRATCH_STORE_DWORDX4 = 31 - SCRATCH_LOAD_UBYTE_D16 = 32 - SCRATCH_LOAD_UBYTE_D16_HI = 33 - SCRATCH_LOAD_SBYTE_D16 = 34 - SCRATCH_LOAD_SBYTE_D16_HI = 35 - SCRATCH_LOAD_SHORT_D16 = 36 - SCRATCH_LOAD_SHORT_D16_HI = 37 - SCRATCH_LOAD_LDS_UBYTE = 38 - SCRATCH_LOAD_LDS_SBYTE = 39 - SCRATCH_LOAD_LDS_USHORT = 40 - SCRATCH_LOAD_LDS_SSHORT = 41 - SCRATCH_LOAD_LDS_DWORD = 42 - -class SMEMOp(IntEnum): - S_LOAD_DWORD = 0 - S_LOAD_DWORDX2 = 1 - S_LOAD_DWORDX4 = 2 - S_LOAD_DWORDX8 = 3 - S_LOAD_DWORDX16 = 4 - S_SCRATCH_LOAD_DWORD = 5 - S_SCRATCH_LOAD_DWORDX2 = 6 - S_SCRATCH_LOAD_DWORDX4 = 7 - S_BUFFER_LOAD_DWORD = 8 - S_BUFFER_LOAD_DWORDX2 = 9 - S_BUFFER_LOAD_DWORDX4 = 10 - S_BUFFER_LOAD_DWORDX8 = 11 - S_BUFFER_LOAD_DWORDX16 = 12 - S_STORE_DWORD = 16 - S_STORE_DWORDX2 = 17 - S_STORE_DWORDX4 = 18 - S_SCRATCH_STORE_DWORD = 21 - S_SCRATCH_STORE_DWORDX2 = 22 - S_SCRATCH_STORE_DWORDX4 = 23 - S_BUFFER_STORE_DWORD = 24 - S_BUFFER_STORE_DWORDX2 = 25 - S_BUFFER_STORE_DWORDX4 = 26 - S_DCACHE_INV = 32 - S_DCACHE_WB = 33 - S_DCACHE_INV_VOL = 34 - S_DCACHE_WB_VOL = 35 - S_MEMTIME = 36 - S_MEMREALTIME = 37 - S_DCACHE_DISCARD = 40 - S_DCACHE_DISCARD_X2 = 41 - S_BUFFER_ATOMIC_SWAP = 64 - S_BUFFER_ATOMIC_CMPSWAP = 65 - S_BUFFER_ATOMIC_ADD = 66 - S_BUFFER_ATOMIC_SUB = 67 - S_BUFFER_ATOMIC_SMIN = 68 - S_BUFFER_ATOMIC_UMIN = 69 - S_BUFFER_ATOMIC_SMAX = 70 - S_BUFFER_ATOMIC_UMAX = 71 - S_BUFFER_ATOMIC_AND = 72 - S_BUFFER_ATOMIC_OR = 73 - S_BUFFER_ATOMIC_XOR = 74 - S_BUFFER_ATOMIC_INC = 75 - S_BUFFER_ATOMIC_DEC = 76 - S_BUFFER_ATOMIC_SWAP_X2 = 96 - S_BUFFER_ATOMIC_CMPSWAP_X2 = 97 - S_BUFFER_ATOMIC_ADD_X2 = 98 - S_BUFFER_ATOMIC_SUB_X2 = 99 - S_BUFFER_ATOMIC_SMIN_X2 = 100 - S_BUFFER_ATOMIC_UMIN_X2 = 101 - S_BUFFER_ATOMIC_SMAX_X2 = 102 - S_BUFFER_ATOMIC_UMAX_X2 = 103 - S_BUFFER_ATOMIC_AND_X2 = 104 - S_BUFFER_ATOMIC_OR_X2 = 105 - S_BUFFER_ATOMIC_XOR_X2 = 106 - S_BUFFER_ATOMIC_INC_X2 = 107 - S_BUFFER_ATOMIC_DEC_X2 = 108 - S_ATOMIC_SWAP = 128 - S_ATOMIC_CMPSWAP = 129 - S_ATOMIC_ADD = 130 - S_ATOMIC_SUB = 131 - S_ATOMIC_SMIN = 132 - S_ATOMIC_UMIN = 133 - S_ATOMIC_SMAX = 134 - S_ATOMIC_UMAX = 135 - S_ATOMIC_AND = 136 - S_ATOMIC_OR = 137 - S_ATOMIC_XOR = 138 - S_ATOMIC_INC = 139 - S_ATOMIC_DEC = 140 - S_ATOMIC_SWAP_X2 = 160 - S_ATOMIC_CMPSWAP_X2 = 161 - S_ATOMIC_ADD_X2 = 162 - S_ATOMIC_SUB_X2 = 163 - S_ATOMIC_SMIN_X2 = 164 - S_ATOMIC_UMIN_X2 = 165 - S_ATOMIC_SMAX_X2 = 166 - S_ATOMIC_UMAX_X2 = 167 - S_ATOMIC_AND_X2 = 168 - S_ATOMIC_OR_X2 = 169 - S_ATOMIC_XOR_X2 = 170 - S_ATOMIC_INC_X2 = 171 - S_ATOMIC_DEC_X2 = 172 - CDNA4 = 600 - -class SOP1Op(IntEnum): - S_MOV_B32 = 0 - S_MOV_B64 = 1 - S_CMOV_B32 = 2 - S_CMOV_B64 = 3 - S_NOT_B32 = 4 - S_NOT_B64 = 5 - S_WQM_B32 = 6 - S_WQM_B64 = 7 - S_BREV_B32 = 8 - S_BREV_B64 = 9 - S_BCNT0_I32_B32 = 10 - S_BCNT0_I32_B64 = 11 - S_BCNT1_I32_B32 = 12 - S_BCNT1_I32_B64 = 13 - S_FF0_I32_B32 = 14 - S_FF0_I32_B64 = 15 - S_FF1_I32_B32 = 16 - S_FF1_I32_B64 = 17 - S_FLBIT_I32_B32 = 18 - S_FLBIT_I32_B64 = 19 - S_FLBIT_I32 = 20 - S_FLBIT_I32_I64 = 21 - S_SEXT_I32_I8 = 22 - S_SEXT_I32_I16 = 23 - S_BITSET0_B32 = 24 - S_BITSET0_B64 = 25 - S_BITSET1_B32 = 26 - S_BITSET1_B64 = 27 - S_GETPC_B64 = 28 - S_SETPC_B64 = 29 - S_SWAPPC_B64 = 30 - S_RFE_B64 = 31 - S_AND_SAVEEXEC_B64 = 32 - S_OR_SAVEEXEC_B64 = 33 - S_XOR_SAVEEXEC_B64 = 34 - S_ANDN2_SAVEEXEC_B64 = 35 - S_ORN2_SAVEEXEC_B64 = 36 - S_NAND_SAVEEXEC_B64 = 37 - S_NOR_SAVEEXEC_B64 = 38 - S_XNOR_SAVEEXEC_B64 = 39 - S_QUADMASK_B32 = 40 - S_QUADMASK_B64 = 41 - S_MOVRELS_B32 = 42 - S_MOVRELS_B64 = 43 - S_MOVRELD_B32 = 44 - S_MOVRELD_B64 = 45 - S_CBRANCH_JOIN = 46 - S_ABS_I32 = 48 - S_SET_GPR_IDX_IDX = 50 - S_ANDN1_SAVEEXEC_B64 = 51 - S_ORN1_SAVEEXEC_B64 = 52 - S_ANDN1_WREXEC_B64 = 53 - S_ANDN2_WREXEC_B64 = 54 - S_BITREPLICATE_B64_B32 = 55 - CDNA4 = 600 - -class SOP2Op(IntEnum): - S_ADD_U32 = 0 - S_SUB_U32 = 1 - S_ADD_I32 = 2 - S_SUB_I32 = 3 - S_ADDC_U32 = 4 - S_SUBB_U32 = 5 - S_MIN_I32 = 6 - S_MIN_U32 = 7 - S_MAX_I32 = 8 - S_MAX_U32 = 9 - S_CSELECT_B32 = 10 - S_CSELECT_B64 = 11 - S_AND_B32 = 12 - S_AND_B64 = 13 - S_OR_B32 = 14 - S_OR_B64 = 15 - S_XOR_B32 = 16 - S_XOR_B64 = 17 - S_ANDN2_B32 = 18 - S_ANDN2_B64 = 19 - S_ORN2_B32 = 20 - S_ORN2_B64 = 21 - S_NAND_B32 = 22 - S_NAND_B64 = 23 - S_NOR_B32 = 24 - S_NOR_B64 = 25 - S_XNOR_B32 = 26 - S_XNOR_B64 = 27 - S_LSHL_B32 = 28 - S_LSHL_B64 = 29 - S_LSHR_B32 = 30 - S_LSHR_B64 = 31 - S_ASHR_I32 = 32 - S_ASHR_I64 = 33 - S_BFM_B32 = 34 - S_BFM_B64 = 35 - S_MUL_I32 = 36 - S_BFE_U32 = 37 - S_BFE_I32 = 38 - S_BFE_U64 = 39 - S_BFE_I64 = 40 - S_CBRANCH_G_FORK = 41 - S_ABSDIFF_I32 = 42 - S_MUL_HI_U32 = 44 - S_MUL_HI_I32 = 45 - S_LSHL1_ADD_U32 = 46 - S_LSHL2_ADD_U32 = 47 - S_LSHL3_ADD_U32 = 48 - S_LSHL4_ADD_U32 = 49 - S_PACK_LL_B32_B16 = 50 - S_PACK_LH_B32_B16 = 51 - S_PACK_HH_B32_B16 = 52 - CDNA4 = 600 - -class SOPCOp(IntEnum): - S_CMP_EQ_I32 = 0 - S_CMP_LG_I32 = 1 - S_CMP_GT_I32 = 2 - S_CMP_GE_I32 = 3 - S_CMP_LT_I32 = 4 - S_CMP_LE_I32 = 5 - S_CMP_EQ_U32 = 6 - S_CMP_LG_U32 = 7 - S_CMP_GT_U32 = 8 - S_CMP_GE_U32 = 9 - S_CMP_LT_U32 = 10 - S_CMP_LE_U32 = 11 - S_BITCMP0_B32 = 12 - S_BITCMP1_B32 = 13 - S_BITCMP0_B64 = 14 - S_BITCMP1_B64 = 15 - S_SETVSKIP = 16 - S_SET_GPR_IDX_ON = 17 - S_CMP_EQ_U64 = 18 - S_CMP_LG_U64 = 19 - CDNA4 = 600 - -class SOPKOp(IntEnum): - S_MOVK_I32 = 0 - S_CMOVK_I32 = 1 - S_CMPK_EQ_I32 = 2 - S_CMPK_LG_I32 = 3 - S_CMPK_GT_I32 = 4 - S_CMPK_GE_I32 = 5 - S_CMPK_LT_I32 = 6 - S_CMPK_LE_I32 = 7 - S_CMPK_EQ_U32 = 8 - S_CMPK_LG_U32 = 9 - S_CMPK_GT_U32 = 10 - S_CMPK_GE_U32 = 11 - S_CMPK_LT_U32 = 12 - S_CMPK_LE_U32 = 13 - S_ADDK_I32 = 14 - S_MULK_I32 = 15 - S_CBRANCH_I_FORK = 16 - S_GETREG_B32 = 17 - S_SETREG_B32 = 18 - S_SETREG_IMM32_B32 = 20 - S_CALL_B64 = 21 - -class SOPPOp(IntEnum): - S_NOP = 0 - S_ENDPGM = 1 - S_BRANCH = 2 - S_WAKEUP = 3 - S_CBRANCH_SCC0 = 4 - S_CBRANCH_SCC1 = 5 - S_CBRANCH_VCCZ = 6 - S_CBRANCH_VCCNZ = 7 - S_CBRANCH_EXECZ = 8 - S_CBRANCH_EXECNZ = 9 - S_BARRIER = 10 - S_SETKILL = 11 - S_WAITCNT = 12 - S_SETHALT = 13 - S_SLEEP = 14 - S_SETPRIO = 15 - S_SENDMSG = 16 - S_SENDMSGHALT = 17 - S_TRAP = 18 - S_ICACHE_INV = 19 - S_INCPERFLEVEL = 20 - S_DECPERFLEVEL = 21 - S_TTRACEDATA = 22 - S_CBRANCH_CDBGSYS = 23 - S_CBRANCH_CDBGUSER = 24 - S_CBRANCH_CDBGSYS_OR_USER = 25 - S_CBRANCH_CDBGSYS_AND_USER = 26 - S_ENDPGM_SAVED = 27 - S_SET_GPR_IDX_OFF = 28 - S_SET_GPR_IDX_MODE = 29 - CDNA4 = 600 - -class VOP1Op(IntEnum): - V_NOP = 0 - V_MOV_B32 = 1 - V_READFIRSTLANE_B32 = 2 - V_CVT_I32_F64 = 3 - V_CVT_F64_I32 = 4 - V_CVT_F32_I32 = 5 - V_CVT_F32_U32 = 6 - V_CVT_U32_F32 = 7 - V_CVT_I32_F32 = 8 - V_CVT_F16_F32 = 10 - V_CVT_F32_F16 = 11 - V_CVT_RPI_I32_F32 = 12 - V_CVT_FLR_I32_F32 = 13 - V_CVT_OFF_F32_I4 = 14 - V_CVT_F32_F64 = 15 - V_CVT_F64_F32 = 16 - V_CVT_F32_UBYTE0 = 17 - V_CVT_F32_UBYTE1 = 18 - V_CVT_F32_UBYTE2 = 19 - V_CVT_F32_UBYTE3 = 20 - V_CVT_U32_F64 = 21 - V_CVT_F64_U32 = 22 - V_TRUNC_F64 = 23 - V_CEIL_F64 = 24 - V_RNDNE_F64 = 25 - V_FLOOR_F64 = 26 - V_FRACT_F32 = 27 - V_TRUNC_F32 = 28 - V_CEIL_F32 = 29 - V_RNDNE_F32 = 30 - V_FLOOR_F32 = 31 - V_EXP_F32 = 32 - V_LOG_F32 = 33 - V_RCP_F32 = 34 - V_RCP_IFLAG_F32 = 35 - V_RSQ_F32 = 36 - V_RCP_F64 = 37 - V_RSQ_F64 = 38 - V_SQRT_F32 = 39 - V_SQRT_F64 = 40 - V_SIN_F32 = 41 - V_COS_F32 = 42 - V_NOT_B32 = 43 - V_BFREV_B32 = 44 - V_FFBH_U32 = 45 - V_FFBL_B32 = 46 - V_FFBH_I32 = 47 - V_FREXP_EXP_I32_F64 = 48 - V_FREXP_MANT_F64 = 49 - V_FRACT_F64 = 50 - V_FREXP_EXP_I32_F32 = 51 - V_FREXP_MANT_F32 = 52 - V_CLREXCP = 53 - V_MOV_B64 = 56 - V_CVT_F16_U16 = 57 - V_CVT_F16_I16 = 58 - V_CVT_U16_F16 = 59 - V_CVT_I16_F16 = 60 - V_RCP_F16 = 61 - V_SQRT_F16 = 62 - V_RSQ_F16 = 63 - V_LOG_F16 = 64 - V_EXP_F16 = 65 - V_FREXP_MANT_F16 = 66 - V_FREXP_EXP_I16_F16 = 67 - V_FLOOR_F16 = 68 - V_CEIL_F16 = 69 - V_TRUNC_F16 = 70 - V_RNDNE_F16 = 71 - V_FRACT_F16 = 72 - V_SIN_F16 = 73 - V_COS_F16 = 74 - V_CVT_NORM_I16_F16 = 77 - V_CVT_NORM_U16_F16 = 78 - V_SAT_PK_U8_I16 = 79 - V_SWAP_B32 = 81 - V_ACCVGPR_MOV_B32 = 82 - V_CVT_F32_FP8 = 84 - V_CVT_F32_BF8 = 85 - V_CVT_PK_F32_FP8 = 86 - V_CVT_PK_F32_BF8 = 87 - V_PRNG_B32 = 88 - V_PERMLANE16_SWAP_B32 = 89 - V_PERMLANE32_SWAP_B32 = 90 - V_CVT_F32_BF16 = 91 - CDNA4 = 600 - -class VOP2Op(IntEnum): - V_CNDMASK_B32 = 0 - V_ADD_F32 = 1 - V_SUB_F32 = 2 - V_SUBREV_F32 = 3 - V_FMAC_F64 = 4 - V_MUL_F32 = 5 - V_MUL_I32_I24 = 6 - V_MUL_HI_I32_I24 = 7 - V_MUL_U32_U24 = 8 - V_MUL_HI_U32_U24 = 9 - V_MIN_F32 = 10 - V_MAX_F32 = 11 - V_MIN_I32 = 12 - V_MAX_I32 = 13 - V_MIN_U32 = 14 - V_MAX_U32 = 15 - V_LSHRREV_B32 = 16 - V_ASHRREV_I32 = 17 - V_LSHLREV_B32 = 18 - V_AND_B32 = 19 - V_OR_B32 = 20 - V_XOR_B32 = 21 - V_DOT2C_F32_BF16 = 22 - V_FMAMK_F32 = 23 - V_FMAAK_F32 = 24 - V_ADD_CO_U32 = 25 - V_SUB_CO_U32 = 26 - V_SUBREV_CO_U32 = 27 - V_ADDC_CO_U32 = 28 - V_SUBB_CO_U32 = 29 - V_SUBBREV_CO_U32 = 30 - V_ADD_F16 = 31 - V_SUB_F16 = 32 - V_SUBREV_F16 = 33 - V_MUL_F16 = 34 - V_MAC_F16 = 35 - V_MADMK_F16 = 36 - V_MADAK_F16 = 37 - V_ADD_U16 = 38 - V_SUB_U16 = 39 - V_SUBREV_U16 = 40 - V_MUL_LO_U16 = 41 - V_LSHLREV_B16 = 42 - V_LSHRREV_B16 = 43 - V_ASHRREV_I16 = 44 - V_MAX_F16 = 45 - V_MIN_F16 = 46 - V_MAX_U16 = 47 - V_MAX_I16 = 48 - V_MIN_U16 = 49 - V_MIN_I16 = 50 - V_LDEXP_F16 = 51 - V_ADD_U32 = 52 - V_SUB_U32 = 53 - V_SUBREV_U32 = 54 - V_DOT2C_F32_F16 = 55 - V_DOT2C_I32_I16 = 56 - V_DOT4C_I32_I8 = 57 - V_DOT8C_I32_I4 = 58 - V_FMAC_F32 = 59 - V_PK_FMAC_F16 = 60 - V_XNOR_B32 = 61 - CDNA4 = 600 - -class VOP3AOp(IntEnum): - V_CMP_CLASS_F32 = 16 - V_CMPX_CLASS_F32 = 17 - V_CMP_CLASS_F64 = 18 - V_CMPX_CLASS_F64 = 19 - V_CMP_CLASS_F16 = 20 - V_CMPX_CLASS_F16 = 21 - V_CMP_F_F16 = 32 - V_CMP_LT_F16 = 33 - V_CMP_EQ_F16 = 34 - V_CMP_LE_F16 = 35 - V_CMP_GT_F16 = 36 - V_CMP_LG_F16 = 37 - V_CMP_GE_F16 = 38 - V_CMP_O_F16 = 39 - V_CMP_U_F16 = 40 - V_CMP_NGE_F16 = 41 - V_CMP_NLG_F16 = 42 - V_CMP_NGT_F16 = 43 - V_CMP_NLE_F16 = 44 - V_CMP_NEQ_F16 = 45 - V_CMP_NLT_F16 = 46 - V_CMP_TRU_F16 = 47 - V_CMPX_F_F16 = 48 - V_CMPX_LT_F16 = 49 - V_CMPX_EQ_F16 = 50 - V_CMPX_LE_F16 = 51 - V_CMPX_GT_F16 = 52 - V_CMPX_LG_F16 = 53 - V_CMPX_GE_F16 = 54 - V_CMPX_O_F16 = 55 - V_CMPX_U_F16 = 56 - V_CMPX_NGE_F16 = 57 - V_CMPX_NLG_F16 = 58 - V_CMPX_NGT_F16 = 59 - V_CMPX_NLE_F16 = 60 - V_CMPX_NEQ_F16 = 61 - V_CMPX_NLT_F16 = 62 - V_CMPX_TRU_F16 = 63 - V_CMP_F_F32 = 64 - V_CMP_LT_F32 = 65 - V_CMP_EQ_F32 = 66 - V_CMP_LE_F32 = 67 - V_CMP_GT_F32 = 68 - V_CMP_LG_F32 = 69 - V_CMP_GE_F32 = 70 - V_CMP_O_F32 = 71 - V_CMP_U_F32 = 72 - V_CMP_NGE_F32 = 73 - V_CMP_NLG_F32 = 74 - V_CMP_NGT_F32 = 75 - V_CMP_NLE_F32 = 76 - V_CMP_NEQ_F32 = 77 - V_CMP_NLT_F32 = 78 - V_CMP_TRU_F32 = 79 - V_CMPX_F_F32 = 80 - V_CMPX_LT_F32 = 81 - V_CMPX_EQ_F32 = 82 - V_CMPX_LE_F32 = 83 - V_CMPX_GT_F32 = 84 - V_CMPX_LG_F32 = 85 - V_CMPX_GE_F32 = 86 - V_CMPX_O_F32 = 87 - V_CMPX_U_F32 = 88 - V_CMPX_NGE_F32 = 89 - V_CMPX_NLG_F32 = 90 - V_CMPX_NGT_F32 = 91 - V_CMPX_NLE_F32 = 92 - V_CMPX_NEQ_F32 = 93 - V_CMPX_NLT_F32 = 94 - V_CMPX_TRU_F32 = 95 - V_CMP_F_F64 = 96 - V_CMP_LT_F64 = 97 - V_CMP_EQ_F64 = 98 - V_CMP_LE_F64 = 99 - V_CMP_GT_F64 = 100 - V_CMP_LG_F64 = 101 - V_CMP_GE_F64 = 102 - V_CMP_O_F64 = 103 - V_CMP_U_F64 = 104 - V_CMP_NGE_F64 = 105 - V_CMP_NLG_F64 = 106 - V_CMP_NGT_F64 = 107 - V_CMP_NLE_F64 = 108 - V_CMP_NEQ_F64 = 109 - V_CMP_NLT_F64 = 110 - V_CMP_TRU_F64 = 111 - V_CMPX_F_F64 = 112 - V_CMPX_LT_F64 = 113 - V_CMPX_EQ_F64 = 114 - V_CMPX_LE_F64 = 115 - V_CMPX_GT_F64 = 116 - V_CMPX_LG_F64 = 117 - V_CMPX_GE_F64 = 118 - V_CMPX_O_F64 = 119 - V_CMPX_U_F64 = 120 - V_CMPX_NGE_F64 = 121 - V_CMPX_NLG_F64 = 122 - V_CMPX_NGT_F64 = 123 - V_CMPX_NLE_F64 = 124 - V_CMPX_NEQ_F64 = 125 - V_CMPX_NLT_F64 = 126 - V_CMPX_TRU_F64 = 127 - V_CMP_F_I16 = 160 - V_CMP_LT_I16 = 161 - V_CMP_EQ_I16 = 162 - V_CMP_LE_I16 = 163 - V_CMP_GT_I16 = 164 - V_CMP_NE_I16 = 165 - V_CMP_GE_I16 = 166 - V_CMP_T_I16 = 167 - V_CMP_F_U16 = 168 - V_CMP_LT_U16 = 169 - V_CMP_EQ_U16 = 170 - V_CMP_LE_U16 = 171 - V_CMP_GT_U16 = 172 - V_CMP_NE_U16 = 173 - V_CMP_GE_U16 = 174 - V_CMP_T_U16 = 175 - V_CMPX_F_I16 = 176 - V_CMPX_LT_I16 = 177 - V_CMPX_EQ_I16 = 178 - V_CMPX_LE_I16 = 179 - V_CMPX_GT_I16 = 180 - V_CMPX_NE_I16 = 181 - V_CMPX_GE_I16 = 182 - V_CMPX_T_I16 = 183 - V_CMPX_F_U16 = 184 - V_CMPX_LT_U16 = 185 - V_CMPX_EQ_U16 = 186 - V_CMPX_LE_U16 = 187 - V_CMPX_GT_U16 = 188 - V_CMPX_NE_U16 = 189 - V_CMPX_GE_U16 = 190 - V_CMPX_T_U16 = 191 - V_CMP_F_I32 = 192 - V_CMP_LT_I32 = 193 - V_CMP_EQ_I32 = 194 - V_CMP_LE_I32 = 195 - V_CMP_GT_I32 = 196 - V_CMP_NE_I32 = 197 - V_CMP_GE_I32 = 198 - V_CMP_T_I32 = 199 - V_CMP_F_U32 = 200 - V_CMP_LT_U32 = 201 - V_CMP_EQ_U32 = 202 - V_CMP_LE_U32 = 203 - V_CMP_GT_U32 = 204 - V_CMP_NE_U32 = 205 - V_CMP_GE_U32 = 206 - V_CMP_T_U32 = 207 - V_CMPX_F_I32 = 208 - V_CMPX_LT_I32 = 209 - V_CMPX_EQ_I32 = 210 - V_CMPX_LE_I32 = 211 - V_CMPX_GT_I32 = 212 - V_CMPX_NE_I32 = 213 - V_CMPX_GE_I32 = 214 - V_CMPX_T_I32 = 215 - V_CMPX_F_U32 = 216 - V_CMPX_LT_U32 = 217 - V_CMPX_EQ_U32 = 218 - V_CMPX_LE_U32 = 219 - V_CMPX_GT_U32 = 220 - V_CMPX_NE_U32 = 221 - V_CMPX_GE_U32 = 222 - V_CMPX_T_U32 = 223 - V_CMP_F_I64 = 224 - V_CMP_LT_I64 = 225 - V_CMP_EQ_I64 = 226 - V_CMP_LE_I64 = 227 - V_CMP_GT_I64 = 228 - V_CMP_NE_I64 = 229 - V_CMP_GE_I64 = 230 - V_CMP_T_I64 = 231 - V_CMP_F_U64 = 232 - V_CMP_LT_U64 = 233 - V_CMP_EQ_U64 = 234 - V_CMP_LE_U64 = 235 - V_CMP_GT_U64 = 236 - V_CMP_NE_U64 = 237 - V_CMP_GE_U64 = 238 - V_CMP_T_U64 = 239 - V_CMPX_F_I64 = 240 - V_CMPX_LT_I64 = 241 - V_CMPX_EQ_I64 = 242 - V_CMPX_LE_I64 = 243 - V_CMPX_GT_I64 = 244 - V_CMPX_NE_I64 = 245 - V_CMPX_GE_I64 = 246 - V_CMPX_T_I64 = 247 - V_CMPX_F_U64 = 248 - V_CMPX_LT_U64 = 249 - V_CMPX_EQ_U64 = 250 - V_CMPX_LE_U64 = 251 - V_CMPX_GT_U64 = 252 - V_CMPX_NE_U64 = 253 - V_CMPX_GE_U64 = 254 - V_CMPX_T_U64 = 255 - V_CNDMASK_B32 = 256 - V_ADD_F32 = 257 - V_SUB_F32 = 258 - V_SUBREV_F32 = 259 - V_FMAC_F64 = 260 - V_MUL_F32 = 261 - V_MUL_I32_I24 = 262 - V_MUL_HI_I32_I24 = 263 - V_MUL_U32_U24 = 264 - V_MUL_HI_U32_U24 = 265 - V_MIN_F32 = 266 - V_MAX_F32 = 267 - V_MIN_I32 = 268 - V_MAX_I32 = 269 - V_MIN_U32 = 270 - V_MAX_U32 = 271 - V_LSHRREV_B32 = 272 - V_ASHRREV_I32 = 273 - V_LSHLREV_B32 = 274 - V_AND_B32 = 275 - V_OR_B32 = 276 - V_XOR_B32 = 277 - V_DOT2C_F32_BF16 = 278 - V_ADD_F16 = 287 - V_SUB_F16 = 288 - V_SUBREV_F16 = 289 - V_MUL_F16 = 290 - V_MAC_F16 = 291 - V_ADD_U16 = 294 - V_SUB_U16 = 295 - V_SUBREV_U16 = 296 - V_MUL_LO_U16 = 297 - V_LSHLREV_B16 = 298 - V_LSHRREV_B16 = 299 - V_ASHRREV_I16 = 300 - V_MAX_F16 = 301 - V_MIN_F16 = 302 - V_MAX_U16 = 303 - V_MAX_I16 = 304 - V_MIN_U16 = 305 - V_MIN_I16 = 306 - V_LDEXP_F16 = 307 - V_ADD_U32 = 308 - V_SUB_U32 = 309 - V_SUBREV_U32 = 310 - V_DOT2C_F32_F16 = 311 - V_DOT2C_I32_I16 = 312 - V_DOT4C_I32_I8 = 313 - V_DOT8C_I32_I4 = 314 - V_FMAC_F32 = 315 - V_PK_FMAC_F16 = 316 - V_XNOR_B32 = 317 - V_NOP = 384 - V_MOV_B32 = 385 - V_READFIRSTLANE_B32 = 386 - V_CVT_I32_F64 = 387 - V_CVT_F64_I32 = 388 - V_CVT_F32_I32 = 389 - V_CVT_F32_U32 = 390 - V_CVT_U32_F32 = 391 - V_CVT_I32_F32 = 392 - V_CVT_F16_F32 = 394 - V_CVT_F32_F16 = 395 - V_CVT_RPI_I32_F32 = 396 - V_CVT_FLR_I32_F32 = 397 - V_CVT_OFF_F32_I4 = 398 - V_CVT_F32_F64 = 399 - V_CVT_F64_F32 = 400 - V_CVT_F32_UBYTE0 = 401 - V_CVT_F32_UBYTE1 = 402 - V_CVT_F32_UBYTE2 = 403 - V_CVT_F32_UBYTE3 = 404 - V_CVT_U32_F64 = 405 - V_CVT_F64_U32 = 406 - V_TRUNC_F64 = 407 - V_CEIL_F64 = 408 - V_RNDNE_F64 = 409 - V_FLOOR_F64 = 410 - V_FRACT_F32 = 411 - V_TRUNC_F32 = 412 - V_CEIL_F32 = 413 - V_RNDNE_F32 = 414 - V_FLOOR_F32 = 415 - V_EXP_F32 = 416 - V_LOG_F32 = 417 - V_RCP_F32 = 418 - V_RCP_IFLAG_F32 = 419 - V_RSQ_F32 = 420 - V_RCP_F64 = 421 - V_RSQ_F64 = 422 - V_SQRT_F32 = 423 - V_SQRT_F64 = 424 - V_SIN_F32 = 425 - V_COS_F32 = 426 - V_NOT_B32 = 427 - V_BFREV_B32 = 428 - V_FFBH_U32 = 429 - V_FFBL_B32 = 430 - V_FFBH_I32 = 431 - V_FREXP_EXP_I32_F64 = 432 - V_FREXP_MANT_F64 = 433 - V_FRACT_F64 = 434 - V_FREXP_EXP_I32_F32 = 435 - V_FREXP_MANT_F32 = 436 - V_CLREXCP = 437 - V_MOV_B64 = 440 - V_CVT_F16_U16 = 441 - V_CVT_F16_I16 = 442 - V_CVT_U16_F16 = 443 - V_CVT_I16_F16 = 444 - V_RCP_F16 = 445 - V_SQRT_F16 = 446 - V_RSQ_F16 = 447 - V_LOG_F16 = 448 - V_EXP_F16 = 449 - V_MAD_I32_I24 = 450 - V_MAD_U32_U24 = 451 - V_CUBEID_F32 = 452 - V_CUBESC_F32 = 453 - V_CUBETC_F32 = 454 - V_CUBEMA_F32 = 455 - V_BFE_U32 = 456 - V_BFE_I32 = 457 - V_BFI_B32 = 458 - V_FMA_F32 = 459 - V_FMA_F64 = 460 - V_LERP_U8 = 461 - V_ALIGNBIT_B32 = 462 - V_ALIGNBYTE_B32 = 463 - V_MIN3_F32 = 464 - V_MIN3_I32 = 465 - V_MIN3_U32 = 466 - V_MAX3_F32 = 467 - V_MAX3_I32 = 468 - V_MAX3_U32 = 469 - V_MED3_F32 = 470 - V_MED3_I32 = 471 - V_MED3_U32 = 472 - V_SAD_U8 = 473 - V_SAD_HI_U8 = 474 - V_SAD_U16 = 475 - V_SAD_U32 = 476 - V_CVT_PK_U8_F32 = 477 - V_DIV_FIXUP_F32 = 478 - V_DIV_FIXUP_F64 = 479 - V_DIV_FMAS_F32 = 482 - V_DIV_FMAS_F64 = 483 - V_MSAD_U8 = 484 - V_QSAD_PK_U16_U8 = 485 - V_MQSAD_PK_U16_U8 = 486 - V_MQSAD_U32_U8 = 487 - V_MAD_LEGACY_F16 = 490 - V_MAD_LEGACY_U16 = 491 - V_MAD_LEGACY_I16 = 492 - V_PERM_B32 = 493 - V_FMA_LEGACY_F16 = 494 - V_DIV_FIXUP_LEGACY_F16 = 495 - V_CVT_PKACCUM_U8_F32 = 496 - V_MAD_U32_U16 = 497 - V_MAD_I32_I16 = 498 - V_XAD_U32 = 499 - V_MIN3_F16 = 500 - V_MIN3_I16 = 501 - V_MIN3_U16 = 502 - V_MAX3_F16 = 503 - V_MAX3_I16 = 504 - V_MAX3_U16 = 505 - V_MED3_F16 = 506 - V_MED3_I16 = 507 - V_MED3_U16 = 508 - V_LSHL_ADD_U32 = 509 - V_ADD_LSHL_U32 = 510 - V_ADD3_U32 = 511 - V_LSHL_OR_B32 = 512 - V_AND_OR_B32 = 513 - V_OR3_B32 = 514 - V_MAD_F16 = 515 - V_MAD_U16 = 516 - V_MAD_I16 = 517 - V_FMA_F16 = 518 - V_DIV_FIXUP_F16 = 519 - V_LSHL_ADD_U64 = 520 - V_BITOP3_B16 = 563 - V_BITOP3_B32 = 564 - V_CVT_SCALEF32_PK_FP8_F32 = 565 - V_CVT_SCALEF32_PK_BF8_F32 = 566 - V_CVT_SCALEF32_SR_FP8_F32 = 567 - V_CVT_SCALEF32_SR_BF8_F32 = 568 - V_CVT_SCALEF32_PK_F32_FP8 = 569 - V_CVT_SCALEF32_PK_F32_BF8 = 570 - V_CVT_SCALEF32_F32_FP8 = 571 - V_CVT_SCALEF32_F32_BF8 = 572 - V_CVT_SCALEF32_PK_FP4_F32 = 573 - V_CVT_SCALEF32_SR_PK_FP4_F32 = 574 - V_CVT_SCALEF32_PK_F32_FP4 = 575 - V_CVT_SCALEF32_PK_FP8_F16 = 576 - V_CVT_SCALEF32_PK_BF8_F16 = 577 - V_CVT_SCALEF32_SR_FP8_F16 = 578 - V_CVT_SCALEF32_SR_BF8_F16 = 579 - V_CVT_SCALEF32_PK_FP8_BF16 = 580 - V_CVT_SCALEF32_PK_BF8_BF16 = 581 - V_CVT_SCALEF32_SR_FP8_BF16 = 582 - V_CVT_SCALEF32_SR_BF8_BF16 = 583 - V_CVT_SCALEF32_PK_F16_FP8 = 584 - V_CVT_SCALEF32_PK_F16_BF8 = 585 - V_CVT_SCALEF32_F16_FP8 = 586 - V_CVT_SCALEF32_F16_BF8 = 587 - V_CVT_SCALEF32_PK_FP4_F16 = 588 - V_CVT_SCALEF32_PK_FP4_BF16 = 589 - V_CVT_SCALEF32_SR_PK_FP4_F16 = 590 - V_CVT_SCALEF32_SR_PK_FP4_BF16 = 591 - V_CVT_SCALEF32_PK_F16_FP4 = 592 - V_CVT_SCALEF32_PK_BF16_FP4 = 593 - V_CVT_SCALEF32_2XPK16_FP6_F32 = 594 - V_CVT_SCALEF32_2XPK16_BF6_F32 = 595 - V_CVT_SCALEF32_SR_PK32_FP6_F32 = 596 - V_CVT_SCALEF32_SR_PK32_BF6_F32 = 597 - V_CVT_SCALEF32_PK32_F32_FP6 = 598 - V_CVT_SCALEF32_PK32_F32_BF6 = 599 - CDNA4 = 600 - V_CVT_SCALEF32_PK32_FP6_BF16 = 601 - V_CVT_SCALEF32_PK32_BF6_F16 = 602 - V_CVT_SCALEF32_PK32_BF6_BF16 = 603 - V_CVT_SCALEF32_SR_PK32_FP6_F16 = 604 - V_CVT_SCALEF32_SR_PK32_FP6_BF16 = 605 - V_CVT_SCALEF32_SR_PK32_BF6_F16 = 606 - V_CVT_SCALEF32_SR_PK32_BF6_BF16 = 607 - V_CVT_SCALEF32_PK32_F16_FP6 = 608 - V_CVT_SCALEF32_PK32_BF16_FP6 = 609 - V_CVT_SCALEF32_PK32_F16_BF6 = 610 - V_CVT_SCALEF32_PK32_BF16_BF6 = 611 - V_ASHR_PK_I8_I32 = 613 - V_ASHR_PK_U8_I32 = 614 - V_CVT_PK_F16_F32 = 615 - V_CVT_PK_BF16_F32 = 616 - V_CVT_SCALEF32_PK_BF16_FP8 = 617 - V_CVT_SCALEF32_PK_BF16_BF8 = 618 - V_ADD_F64 = 640 - V_MUL_F64 = 641 - V_MIN_F64 = 642 - V_MAX_F64 = 643 - V_LDEXP_F64 = 644 - V_MUL_LO_U32 = 645 - V_MUL_HI_U32 = 646 - V_MUL_HI_I32 = 647 - V_LDEXP_F32 = 648 - V_READLANE_B32 = 649 - V_WRITELANE_B32 = 650 - V_BCNT_U32_B32 = 651 - V_MBCNT_LO_U32_B32 = 652 - V_MBCNT_HI_U32_B32 = 653 - V_LSHLREV_B64 = 655 - V_LSHRREV_B64 = 656 - V_ASHRREV_I64 = 657 - V_TRIG_PREOP_F64 = 658 - V_BFM_B32 = 659 - V_CVT_PKNORM_I16_F32 = 660 - V_CVT_PKNORM_U16_F32 = 661 - V_CVT_PKRTZ_F16_F32 = 662 - V_CVT_PK_U16_U32 = 663 - V_CVT_PK_I16_I32 = 664 - V_CVT_PKNORM_I16_F16 = 665 - V_CVT_PKNORM_U16_F16 = 666 - V_ADD_I32 = 668 - V_SUB_I32 = 669 - V_ADD_I16 = 670 - V_SUB_I16 = 671 - V_PACK_B32_F16 = 672 - V_MUL_LEGACY_F32 = 673 - V_CVT_PK_FP8_F32 = 674 - V_CVT_PK_BF8_F32 = 675 - V_CVT_SR_FP8_F32 = 676 - V_CVT_SR_BF8_F32 = 677 - V_CVT_SR_F16_F32 = 678 - V_CVT_SR_BF16_F32 = 679 - V_MINIMUM3_F32 = 680 - V_MAXIMUM3_F32 = 681 - -class VOP3BOp(IntEnum): - V_ADD_CO_U32 = 281 - V_SUB_CO_U32 = 282 - V_SUBREV_CO_U32 = 283 - V_ADDC_CO_U32 = 284 - V_SUBB_CO_U32 = 285 - V_SUBBREV_CO_U32 = 286 - V_DIV_SCALE_F32 = 480 - V_DIV_SCALE_F64 = 481 - V_MAD_U64_U32 = 488 - V_MAD_I64_I32 = 489 - CDNA4 = 600 - -class VOP3POp(IntEnum): - V_PK_MAD_I16 = 0 - V_PK_MUL_LO_U16 = 1 - V_PK_ADD_I16 = 2 - V_PK_SUB_I16 = 3 - V_PK_LSHLREV_B16 = 4 - V_PK_LSHRREV_B16 = 5 - V_PK_ASHRREV_I16 = 6 - V_PK_MAX_I16 = 7 - V_PK_MIN_I16 = 8 - V_PK_MAD_U16 = 9 - V_PK_ADD_U16 = 10 - V_PK_SUB_U16 = 11 - V_PK_MAX_U16 = 12 - V_PK_MIN_U16 = 13 - V_PK_FMA_F16 = 14 - V_PK_ADD_F16 = 15 - V_PK_MUL_F16 = 16 - V_PK_MIN_F16 = 17 - V_PK_MAX_F16 = 18 - V_DOT2_F32_BF16 = 26 - V_PK_MINIMUM3_F16 = 27 - V_PK_MAXIMUM3_F16 = 28 - V_MAD_MIX_F32 = 32 - V_MAD_MIXLO_F16 = 33 - V_MAD_MIXHI_F16 = 34 - V_DOT2_F32_F16 = 35 - V_DOT2_I32_I16 = 38 - V_DOT2_U32_U16 = 39 - V_DOT4_I32_I8 = 40 - V_DOT4_U32_U8 = 41 - V_DOT8_I32_I4 = 42 - V_DOT8_U32_U4 = 43 - V_MFMA_F32_16X16X128_F8F6F4 = 45 - V_MFMA_F32_32X32X64_F8F6F4 = 46 - V_PK_FMA_F32 = 48 - V_PK_MUL_F32 = 49 - V_PK_ADD_F32 = 50 - V_PK_MOV_B32 = 51 - V_MFMA_F32_16X16X32_BF16 = 53 - V_MFMA_I32_16X16X64_I8 = 54 - V_MFMA_F32_32X32X16_BF16 = 55 - V_MFMA_I32_32X32X32_I8 = 56 - V_SMFMAC_F32_16X16X64_BF16 = 57 - V_SMFMAC_I32_16X16X128_I8 = 58 - V_SMFMAC_F32_16X16X128_BF8_BF8 = 59 - V_SMFMAC_F32_16X16X128_BF8_FP8 = 60 - V_SMFMAC_F32_16X16X128_FP8_BF8 = 61 - V_MFMA_F32_16X16X8_XF32 = 62 - V_MFMA_F32_32X32X4_XF32 = 63 - V_MFMA_F32_32X32X1_2B_F32 = 64 - V_MFMA_F32_16X16X1_4B_F32 = 65 - V_MFMA_F32_4X4X1_16B_F32 = 66 - V_SMFMAC_F32_16X16X128_FP8_FP8 = 67 - V_MFMA_F32_32X32X2_F32 = 68 - V_MFMA_F32_16X16X4_F32 = 69 - V_SMFMAC_F32_32X32X32_BF16 = 70 - V_SMFMAC_I32_32X32X64_I8 = 71 - V_MFMA_F32_32X32X4_2B_F16 = 72 - V_MFMA_F32_16X16X4_4B_F16 = 73 - V_MFMA_F32_4X4X4_16B_F16 = 74 - V_SMFMAC_F32_32X32X64_BF8_BF8 = 75 - V_MFMA_F32_32X32X8_F16 = 76 - V_MFMA_F32_16X16X16_F16 = 77 - V_SMFMAC_F32_32X32X64_BF8_FP8 = 78 - V_SMFMAC_F32_32X32X64_FP8_BF8 = 79 - V_MFMA_I32_32X32X4_2B_I8 = 80 - V_MFMA_I32_16X16X4_4B_I8 = 81 - V_MFMA_I32_4X4X4_16B_I8 = 82 - V_SMFMAC_F32_32X32X64_FP8_FP8 = 83 - V_MFMA_F32_16X16X32_F16 = 84 - V_MFMA_F32_32X32X16_F16 = 85 - V_MFMA_I32_32X32X16_I8 = 86 - V_MFMA_I32_16X16X32_I8 = 87 - V_ACCVGPR_READ = 88 - V_ACCVGPR_WRITE = 89 - V_SMFMAC_F32_16X16X64_F16 = 90 - V_SMFMAC_F32_32X32X32_F16 = 91 - V_MFMA_F32_32X32X4_2B_BF16 = 93 - V_MFMA_F32_16X16X4_4B_BF16 = 94 - V_MFMA_F32_4X4X4_16B_BF16 = 95 - V_MFMA_F32_32X32X8_BF16 = 96 - V_MFMA_F32_16X16X16_BF16 = 97 - V_SMFMAC_F32_16X16X32_F16 = 98 - V_SMFMAC_F32_32X32X16_F16 = 100 - V_SMFMAC_F32_16X16X32_BF16 = 102 - V_SMFMAC_F32_32X32X16_BF16 = 104 - V_SMFMAC_I32_16X16X64_I8 = 106 - V_SMFMAC_I32_32X32X32_I8 = 108 - V_MFMA_F64_16X16X4_F64 = 110 - V_MFMA_F64_4X4X4_4B_F64 = 111 - V_MFMA_F32_16X16X32_BF8_BF8 = 112 - V_MFMA_F32_16X16X32_BF8_FP8 = 113 - V_MFMA_F32_16X16X32_FP8_BF8 = 114 - V_MFMA_F32_16X16X32_FP8_FP8 = 115 - V_MFMA_F32_32X32X16_BF8_BF8 = 116 - V_MFMA_F32_32X32X16_BF8_FP8 = 117 - V_MFMA_F32_32X32X16_FP8_BF8 = 118 - V_MFMA_F32_32X32X16_FP8_FP8 = 119 - V_SMFMAC_F32_16X16X64_BF8_BF8 = 120 - V_SMFMAC_F32_16X16X64_BF8_FP8 = 121 - V_SMFMAC_F32_16X16X64_FP8_BF8 = 122 - V_SMFMAC_F32_16X16X64_FP8_FP8 = 123 - V_SMFMAC_F32_32X32X32_BF8_BF8 = 124 - V_SMFMAC_F32_32X32X32_BF8_FP8 = 125 - V_SMFMAC_F32_32X32X32_FP8_BF8 = 126 - V_SMFMAC_F32_32X32X32_FP8_FP8 = 127 - CDNA4 = 600 - -class VOPCOp(IntEnum): - V_CMP_CLASS_F32 = 16 - V_CMPX_CLASS_F32 = 17 - V_CMP_CLASS_F64 = 18 - V_CMPX_CLASS_F64 = 19 - V_CMP_CLASS_F16 = 20 - V_CMPX_CLASS_F16 = 21 - V_CMP_F_F16 = 32 - V_CMP_LT_F16 = 33 - V_CMP_EQ_F16 = 34 - V_CMP_LE_F16 = 35 - V_CMP_GT_F16 = 36 - V_CMP_LG_F16 = 37 - V_CMP_GE_F16 = 38 - V_CMP_O_F16 = 39 - V_CMP_U_F16 = 40 - V_CMP_NGE_F16 = 41 - V_CMP_NLG_F16 = 42 - V_CMP_NGT_F16 = 43 - V_CMP_NLE_F16 = 44 - V_CMP_NEQ_F16 = 45 - V_CMP_NLT_F16 = 46 - V_CMP_TRU_F16 = 47 - V_CMPX_F_F16 = 48 - V_CMPX_LT_F16 = 49 - V_CMPX_EQ_F16 = 50 - V_CMPX_LE_F16 = 51 - V_CMPX_GT_F16 = 52 - V_CMPX_LG_F16 = 53 - V_CMPX_GE_F16 = 54 - V_CMPX_O_F16 = 55 - V_CMPX_U_F16 = 56 - V_CMPX_NGE_F16 = 57 - V_CMPX_NLG_F16 = 58 - V_CMPX_NGT_F16 = 59 - V_CMPX_NLE_F16 = 60 - V_CMPX_NEQ_F16 = 61 - V_CMPX_NLT_F16 = 62 - V_CMPX_TRU_F16 = 63 - V_CMP_F_F32 = 64 - V_CMP_LT_F32 = 65 - V_CMP_EQ_F32 = 66 - V_CMP_LE_F32 = 67 - V_CMP_GT_F32 = 68 - V_CMP_LG_F32 = 69 - V_CMP_GE_F32 = 70 - V_CMP_O_F32 = 71 - V_CMP_U_F32 = 72 - V_CMP_NGE_F32 = 73 - V_CMP_NLG_F32 = 74 - V_CMP_NGT_F32 = 75 - V_CMP_NLE_F32 = 76 - V_CMP_NEQ_F32 = 77 - V_CMP_NLT_F32 = 78 - V_CMP_TRU_F32 = 79 - V_CMPX_F_F32 = 80 - V_CMPX_LT_F32 = 81 - V_CMPX_EQ_F32 = 82 - V_CMPX_LE_F32 = 83 - V_CMPX_GT_F32 = 84 - V_CMPX_LG_F32 = 85 - V_CMPX_GE_F32 = 86 - V_CMPX_O_F32 = 87 - V_CMPX_U_F32 = 88 - V_CMPX_NGE_F32 = 89 - V_CMPX_NLG_F32 = 90 - V_CMPX_NGT_F32 = 91 - V_CMPX_NLE_F32 = 92 - V_CMPX_NEQ_F32 = 93 - V_CMPX_NLT_F32 = 94 - V_CMPX_TRU_F32 = 95 - V_CMP_F_F64 = 96 - V_CMP_LT_F64 = 97 - V_CMP_EQ_F64 = 98 - V_CMP_LE_F64 = 99 - V_CMP_GT_F64 = 100 - V_CMP_LG_F64 = 101 - V_CMP_GE_F64 = 102 - V_CMP_O_F64 = 103 - V_CMP_U_F64 = 104 - V_CMP_NGE_F64 = 105 - V_CMP_NLG_F64 = 106 - V_CMP_NGT_F64 = 107 - V_CMP_NLE_F64 = 108 - V_CMP_NEQ_F64 = 109 - V_CMP_NLT_F64 = 110 - V_CMP_TRU_F64 = 111 - V_CMPX_F_F64 = 112 - V_CMPX_LT_F64 = 113 - V_CMPX_EQ_F64 = 114 - V_CMPX_LE_F64 = 115 - V_CMPX_GT_F64 = 116 - V_CMPX_LG_F64 = 117 - V_CMPX_GE_F64 = 118 - V_CMPX_O_F64 = 119 - V_CMPX_U_F64 = 120 - V_CMPX_NGE_F64 = 121 - V_CMPX_NLG_F64 = 122 - V_CMPX_NGT_F64 = 123 - V_CMPX_NLE_F64 = 124 - V_CMPX_NEQ_F64 = 125 - V_CMPX_NLT_F64 = 126 - V_CMPX_TRU_F64 = 127 - V_CMP_F_I16 = 160 - V_CMP_LT_I16 = 161 - V_CMP_EQ_I16 = 162 - V_CMP_LE_I16 = 163 - V_CMP_GT_I16 = 164 - V_CMP_NE_I16 = 165 - V_CMP_GE_I16 = 166 - V_CMP_T_I16 = 167 - V_CMP_F_U16 = 168 - V_CMP_LT_U16 = 169 - V_CMP_EQ_U16 = 170 - V_CMP_LE_U16 = 171 - V_CMP_GT_U16 = 172 - V_CMP_NE_U16 = 173 - V_CMP_GE_U16 = 174 - V_CMP_T_U16 = 175 - V_CMPX_F_I16 = 176 - V_CMPX_LT_I16 = 177 - V_CMPX_EQ_I16 = 178 - V_CMPX_LE_I16 = 179 - V_CMPX_GT_I16 = 180 - V_CMPX_NE_I16 = 181 - V_CMPX_GE_I16 = 182 - V_CMPX_T_I16 = 183 - V_CMPX_F_U16 = 184 - V_CMPX_LT_U16 = 185 - V_CMPX_EQ_U16 = 186 - V_CMPX_LE_U16 = 187 - V_CMPX_GT_U16 = 188 - V_CMPX_NE_U16 = 189 - V_CMPX_GE_U16 = 190 - V_CMPX_T_U16 = 191 - V_CMP_F_I32 = 192 - V_CMP_LT_I32 = 193 - V_CMP_EQ_I32 = 194 - V_CMP_LE_I32 = 195 - V_CMP_GT_I32 = 196 - V_CMP_NE_I32 = 197 - V_CMP_GE_I32 = 198 - V_CMP_T_I32 = 199 - V_CMP_F_U32 = 200 - V_CMP_LT_U32 = 201 - V_CMP_EQ_U32 = 202 - V_CMP_LE_U32 = 203 - V_CMP_GT_U32 = 204 - V_CMP_NE_U32 = 205 - V_CMP_GE_U32 = 206 - V_CMP_T_U32 = 207 - V_CMPX_F_I32 = 208 - V_CMPX_LT_I32 = 209 - V_CMPX_EQ_I32 = 210 - V_CMPX_LE_I32 = 211 - V_CMPX_GT_I32 = 212 - V_CMPX_NE_I32 = 213 - V_CMPX_GE_I32 = 214 - V_CMPX_T_I32 = 215 - V_CMPX_F_U32 = 216 - V_CMPX_LT_U32 = 217 - V_CMPX_EQ_U32 = 218 - V_CMPX_LE_U32 = 219 - V_CMPX_GT_U32 = 220 - V_CMPX_NE_U32 = 221 - V_CMPX_GE_U32 = 222 - V_CMPX_T_U32 = 223 - V_CMP_F_I64 = 224 - V_CMP_LT_I64 = 225 - V_CMP_EQ_I64 = 226 - V_CMP_LE_I64 = 227 - V_CMP_GT_I64 = 228 - V_CMP_NE_I64 = 229 - V_CMP_GE_I64 = 230 - V_CMP_T_I64 = 231 - V_CMP_F_U64 = 232 - V_CMP_LT_U64 = 233 - V_CMP_EQ_U64 = 234 - V_CMP_LE_U64 = 235 - V_CMP_GT_U64 = 236 - V_CMP_NE_U64 = 237 - V_CMP_GE_U64 = 238 - V_CMP_T_U64 = 239 - V_CMPX_F_I64 = 240 - V_CMPX_LT_I64 = 241 - V_CMPX_EQ_I64 = 242 - V_CMPX_LE_I64 = 243 - V_CMPX_GT_I64 = 244 - V_CMPX_NE_I64 = 245 - V_CMPX_GE_I64 = 246 - V_CMPX_T_I64 = 247 - V_CMPX_F_U64 = 248 - V_CMPX_LT_U64 = 249 - V_CMPX_EQ_U64 = 250 - V_CMPX_LE_U64 = 251 - V_CMPX_GT_U64 = 252 - V_CMPX_NE_U64 = 253 - V_CMPX_GE_U64 = 254 - V_CMPX_T_U64 = 255 - CDNA4 = 600 - -# instruction formats -class DPP(Inst64): - encoding = bits[31:26] == 0b110110 - src1_sel = bits[58:56] - src1_sext = bits[59] - src1_neg = bits[60] - src1_abs = bits[61] - s1 = bits[63] - offset0 = bits[7:0] - offset1 = bits[15:8] - op = bits[24:17] - acc = bits[25] - addr:VGPRField = bits[39:32] - data0:VGPRField = bits[47:40] - data1:VGPRField = bits[55:48] - vdst:VGPRField = bits[63:56] - row_mask = bits[63:60] - -class DS(Inst64): - encoding = bits[31:26] == 0b110110 - op:Annotated[BitField, DSOp] = bits[24:17] - vdst:VGPRField = bits[63:56] - addr:VGPRField = bits[39:32] - data0:VGPRField = bits[47:40] - data1:VGPRField = bits[55:48] - offset0 = bits[7:0] - offset1 = bits[15:8] - gds = bits[16] - acc = bits[25] - -class FLAT(Inst64): - encoding = bits[31:26] == 0b110111 - op:Annotated[BitField, FLATOp] = bits[24:18] - vdst:VGPRField = bits[63:56] - addr:VGPRField = bits[39:32] - data:VGPRField = bits[47:40] - saddr:SSrc = bits[54:48] - offset:Imm = bits[12:0] - seg = bits[15:14] - lds = bits[13] - sc0 = bits[16] - nt = bits[17] - sc1 = bits[25] - acc = bits[55] - -class MTBUF(Inst64): - encoding = bits[31:26] == 0b111010 - op:Annotated[BitField, MTBUFOp] = bits[18:15] - vdata:VGPRField = bits[47:40] - vaddr:VGPRField = bits[39:32] - srsrc:SGPRField = bits[52:48] - soffset:SSrc = bits[63:56] - offset:Imm = bits[11:0] - offen = bits[12] - idxen = bits[13] - sc1 = bits[53] - nt = bits[54] - acc = bits[55] - sc0 = bits[14] - -class MUBUF(Inst64): - encoding = bits[31:26] == 0b111000 - op:Annotated[BitField, MUBUFOp] = bits[24:18] - vdata:VGPRField = bits[47:40] - vaddr:VGPRField = bits[39:32] - srsrc:SGPRField = bits[52:48] - soffset:SSrc = bits[63:56] - offset:Imm = bits[11:0] - offen = bits[12] - idxen = bits[13] - sc0 = bits[14] - sc1 = bits[15] - lds = bits[16] - nt = bits[17] - acc = bits[55] - -class SDWA(Inst64): - src0:Src = bits[39:32] - dst_sel = bits[42:40] - dst_u = bits[44:43] - clmp = bits[45] - omod = bits[47:46] - src0_sel = bits[50:48] - src0_sext = bits[51] - src0_neg = bits[52] - src0_abs = bits[53] - s0 = bits[55] - src1_sel = bits[58:56] - src1_sext = bits[59] - src1_neg = bits[60] - src1_abs = bits[61] - s1 = bits[63] - sdst:SGPRField = bits[46:40] - sd = bits[47] - row_mask = bits[63:60] - -class SDWAB(Inst64): - src0:Src = bits[39:32] - dst_sel = bits[42:40] - dst_u = bits[44:43] - clmp = bits[45] - omod = bits[47:46] - src0_sel = bits[50:48] - src0_sext = bits[51] - src0_neg = bits[52] - src0_abs = bits[53] - s0 = bits[55] - src1_sel = bits[58:56] - src1_sext = bits[59] - src1_neg = bits[60] - src1_abs = bits[61] - s1 = bits[63] - -class SMEM(Inst64): - encoding = bits[31:26] == 0b110000 - op:Annotated[BitField, SMEMOp] = bits[25:18] - sdata:SGPRField = bits[12:6] - sbase:SGPRField = bits[5:0] - soffset:SSrc = bits[63:57] - offset:Imm = bits[52:32] - glc = bits[14] - soe = bits[14] - nv = bits[15] - imm = bits[17] - -class SOP1(Inst32): - encoding = bits[31:23] == 0b101111101 - op:Annotated[BitField, SOP1Op] = bits[15:8] - sdst:SGPRField = bits[22:16] - ssrc0:SSrc = bits[7:0] - -class SOP2(Inst32): - encoding = bits[31:30] == 0b10 - op:Annotated[BitField, SOP2Op] = bits[29:23] - sdst:SGPRField = bits[22:16] - ssrc0:SSrc = bits[7:0] - ssrc1:SSrc = bits[15:8] - -class SOPC(Inst32): - encoding = bits[31:23] == 0b101111110 - op:Annotated[BitField, SOPCOp] = bits[22:16] - ssrc0:SSrc = bits[7:0] - ssrc1:SSrc = bits[15:8] - -class SOPK(Inst32): - encoding = bits[31:28] == 0b1011 - op:Annotated[BitField, SOPKOp] = bits[27:23] - sdst:SGPRField = bits[22:16] - simm16:SImm = bits[15:0] - -class SOPP(Inst32): - encoding = bits[31:23] == 0b101111111 - op:Annotated[BitField, SOPPOp] = bits[22:16] - simm16:SImm = bits[15:0] - -class VOP1(Inst32): - encoding = bits[31:25] == 0b111111 - op:Annotated[BitField, VOP1Op] = bits[16:9] - vdst:VGPRField = bits[24:17] - src0:Src = bits[8:0] - -class VOP2(Inst32): - encoding = bits[31] == 0 - op:Annotated[BitField, VOP2Op] = bits[30:25] - vdst:VGPRField = bits[24:17] - src0:Src = bits[8:0] - vsrc1:VGPRField = bits[16:9] - -class VOP3A(Inst64): - encoding = bits[31:26] == 0b110100 - vdst:VGPRField = bits[7:0] - abs = bits[10:8] - opsel = bits[14:11] - clmp = bits[15] - op:Annotated[BitField, VOP3AOp] = bits[25:16] - src0:Src = bits[40:32] - src1:Src = bits[49:41] - src2:Src = bits[58:50] - omod = bits[60:59] - neg = bits[63:61] - -class VOP3B(Inst64): - encoding = bits[31:26] == 0b110100 - vdst:VGPRField = bits[7:0] - sdst:SGPRField = bits[14:8] - clmp = bits[15] - op:Annotated[BitField, VOP3BOp] = bits[25:16] - src0:Src = bits[40:32] - src1:Src = bits[49:41] - src2:Src = bits[58:50] - omod = bits[60:59] - neg = bits[63:61] - -class VOP3P(Inst64): - encoding = bits[31:23] == 0b110100111 - _defaults = {'opsel_hi': 3, 'opsel_hi2': 1} - op:Annotated[BitField, VOP3POp] = bits[22:16] - vdst:VGPRField = bits[7:0] - src0:Src = bits[40:32] - src1:Src = bits[49:41] - src2:Src = bits[58:50] - neg = bits[63:61] - neg_hi = bits[10:8] - opsel = bits[13:11] - opsel_hi = bits[60:59] - clmp = bits[15] - opsel_hi2 = bits[14] - -class VOPC(Inst32): - encoding = bits[31:25] == 0b111110 - op:Annotated[BitField, VOPCOp] = bits[24:17] - src0:Src = bits[8:0] - vsrc1:VGPRField = bits[16:9] - -# instruction helpers -ds_add_u32 = functools.partial(DS, DSOp.DS_ADD_U32) -ds_sub_u32 = functools.partial(DS, DSOp.DS_SUB_U32) -ds_rsub_u32 = functools.partial(DS, DSOp.DS_RSUB_U32) -ds_inc_u32 = functools.partial(DS, DSOp.DS_INC_U32) -ds_dec_u32 = functools.partial(DS, DSOp.DS_DEC_U32) -ds_min_i32 = functools.partial(DS, DSOp.DS_MIN_I32) -ds_max_i32 = functools.partial(DS, DSOp.DS_MAX_I32) -ds_min_u32 = functools.partial(DS, DSOp.DS_MIN_U32) -ds_max_u32 = functools.partial(DS, DSOp.DS_MAX_U32) -ds_and_b32 = functools.partial(DS, DSOp.DS_AND_B32) -ds_or_b32 = functools.partial(DS, DSOp.DS_OR_B32) -ds_xor_b32 = functools.partial(DS, DSOp.DS_XOR_B32) -ds_mskor_b32 = functools.partial(DS, DSOp.DS_MSKOR_B32) -ds_write_b32 = functools.partial(DS, DSOp.DS_WRITE_B32) -ds_write2_b32 = functools.partial(DS, DSOp.DS_WRITE2_B32) -ds_write2st64_b32 = functools.partial(DS, DSOp.DS_WRITE2ST64_B32) -ds_cmpst_b32 = functools.partial(DS, DSOp.DS_CMPST_B32) -ds_cmpst_f32 = functools.partial(DS, DSOp.DS_CMPST_F32) -ds_min_f32 = functools.partial(DS, DSOp.DS_MIN_F32) -ds_max_f32 = functools.partial(DS, DSOp.DS_MAX_F32) -ds_nop = functools.partial(DS, DSOp.DS_NOP) -ds_add_f32 = functools.partial(DS, DSOp.DS_ADD_F32) -ds_pk_add_f16 = functools.partial(DS, DSOp.DS_PK_ADD_F16) -ds_pk_add_bf16 = functools.partial(DS, DSOp.DS_PK_ADD_BF16) -ds_write_addtid_b32 = functools.partial(DS, DSOp.DS_WRITE_ADDTID_B32) -ds_write_b8 = functools.partial(DS, DSOp.DS_WRITE_B8) -ds_write_b16 = functools.partial(DS, DSOp.DS_WRITE_B16) -ds_add_rtn_u32 = functools.partial(DS, DSOp.DS_ADD_RTN_U32) -ds_sub_rtn_u32 = functools.partial(DS, DSOp.DS_SUB_RTN_U32) -ds_rsub_rtn_u32 = functools.partial(DS, DSOp.DS_RSUB_RTN_U32) -ds_inc_rtn_u32 = functools.partial(DS, DSOp.DS_INC_RTN_U32) -ds_dec_rtn_u32 = functools.partial(DS, DSOp.DS_DEC_RTN_U32) -ds_min_rtn_i32 = functools.partial(DS, DSOp.DS_MIN_RTN_I32) -ds_max_rtn_i32 = functools.partial(DS, DSOp.DS_MAX_RTN_I32) -ds_min_rtn_u32 = functools.partial(DS, DSOp.DS_MIN_RTN_U32) -ds_max_rtn_u32 = functools.partial(DS, DSOp.DS_MAX_RTN_U32) -ds_and_rtn_b32 = functools.partial(DS, DSOp.DS_AND_RTN_B32) -ds_or_rtn_b32 = functools.partial(DS, DSOp.DS_OR_RTN_B32) -ds_xor_rtn_b32 = functools.partial(DS, DSOp.DS_XOR_RTN_B32) -ds_mskor_rtn_b32 = functools.partial(DS, DSOp.DS_MSKOR_RTN_B32) -ds_wrxchg_rtn_b32 = functools.partial(DS, DSOp.DS_WRXCHG_RTN_B32) -ds_wrxchg2_rtn_b32 = functools.partial(DS, DSOp.DS_WRXCHG2_RTN_B32) -ds_wrxchg2st64_rtn_b32 = functools.partial(DS, DSOp.DS_WRXCHG2ST64_RTN_B32) -ds_cmpst_rtn_b32 = functools.partial(DS, DSOp.DS_CMPST_RTN_B32) -ds_cmpst_rtn_f32 = functools.partial(DS, DSOp.DS_CMPST_RTN_F32) -ds_min_rtn_f32 = functools.partial(DS, DSOp.DS_MIN_RTN_F32) -ds_max_rtn_f32 = functools.partial(DS, DSOp.DS_MAX_RTN_F32) -ds_wrap_rtn_b32 = functools.partial(DS, DSOp.DS_WRAP_RTN_B32) -ds_add_rtn_f32 = functools.partial(DS, DSOp.DS_ADD_RTN_F32) -ds_read_b32 = functools.partial(DS, DSOp.DS_READ_B32) -ds_read2_b32 = functools.partial(DS, DSOp.DS_READ2_B32) -ds_read2st64_b32 = functools.partial(DS, DSOp.DS_READ2ST64_B32) -ds_read_i8 = functools.partial(DS, DSOp.DS_READ_I8) -ds_read_u8 = functools.partial(DS, DSOp.DS_READ_U8) -ds_read_i16 = functools.partial(DS, DSOp.DS_READ_I16) -ds_read_u16 = functools.partial(DS, DSOp.DS_READ_U16) -ds_swizzle_b32 = functools.partial(DS, DSOp.DS_SWIZZLE_B32) -ds_permute_b32 = functools.partial(DS, DSOp.DS_PERMUTE_B32) -ds_bpermute_b32 = functools.partial(DS, DSOp.DS_BPERMUTE_B32) -ds_add_u64 = functools.partial(DS, DSOp.DS_ADD_U64) -ds_sub_u64 = functools.partial(DS, DSOp.DS_SUB_U64) -ds_rsub_u64 = functools.partial(DS, DSOp.DS_RSUB_U64) -ds_inc_u64 = functools.partial(DS, DSOp.DS_INC_U64) -ds_dec_u64 = functools.partial(DS, DSOp.DS_DEC_U64) -ds_min_i64 = functools.partial(DS, DSOp.DS_MIN_I64) -ds_max_i64 = functools.partial(DS, DSOp.DS_MAX_I64) -ds_min_u64 = functools.partial(DS, DSOp.DS_MIN_U64) -ds_max_u64 = functools.partial(DS, DSOp.DS_MAX_U64) -ds_and_b64 = functools.partial(DS, DSOp.DS_AND_B64) -ds_or_b64 = functools.partial(DS, DSOp.DS_OR_B64) -ds_xor_b64 = functools.partial(DS, DSOp.DS_XOR_B64) -ds_mskor_b64 = functools.partial(DS, DSOp.DS_MSKOR_B64) -ds_write_b64 = functools.partial(DS, DSOp.DS_WRITE_B64) -ds_write2_b64 = functools.partial(DS, DSOp.DS_WRITE2_B64) -ds_write2st64_b64 = functools.partial(DS, DSOp.DS_WRITE2ST64_B64) -ds_cmpst_b64 = functools.partial(DS, DSOp.DS_CMPST_B64) -ds_cmpst_f64 = functools.partial(DS, DSOp.DS_CMPST_F64) -ds_min_f64 = functools.partial(DS, DSOp.DS_MIN_F64) -ds_max_f64 = functools.partial(DS, DSOp.DS_MAX_F64) -ds_write_b8_d16_hi = functools.partial(DS, DSOp.DS_WRITE_B8_D16_HI) -ds_write_b16_d16_hi = functools.partial(DS, DSOp.DS_WRITE_B16_D16_HI) -ds_read_u8_d16 = functools.partial(DS, DSOp.DS_READ_U8_D16) -ds_read_u8_d16_hi = functools.partial(DS, DSOp.DS_READ_U8_D16_HI) -ds_read_i8_d16 = functools.partial(DS, DSOp.DS_READ_I8_D16) -ds_read_i8_d16_hi = functools.partial(DS, DSOp.DS_READ_I8_D16_HI) -ds_read_u16_d16 = functools.partial(DS, DSOp.DS_READ_U16_D16) -ds_read_u16_d16_hi = functools.partial(DS, DSOp.DS_READ_U16_D16_HI) -ds_add_f64 = functools.partial(DS, DSOp.DS_ADD_F64) -ds_add_rtn_u64 = functools.partial(DS, DSOp.DS_ADD_RTN_U64) -ds_sub_rtn_u64 = functools.partial(DS, DSOp.DS_SUB_RTN_U64) -ds_rsub_rtn_u64 = functools.partial(DS, DSOp.DS_RSUB_RTN_U64) -ds_inc_rtn_u64 = functools.partial(DS, DSOp.DS_INC_RTN_U64) -ds_dec_rtn_u64 = functools.partial(DS, DSOp.DS_DEC_RTN_U64) -ds_min_rtn_i64 = functools.partial(DS, DSOp.DS_MIN_RTN_I64) -ds_max_rtn_i64 = functools.partial(DS, DSOp.DS_MAX_RTN_I64) -ds_min_rtn_u64 = functools.partial(DS, DSOp.DS_MIN_RTN_U64) -ds_max_rtn_u64 = functools.partial(DS, DSOp.DS_MAX_RTN_U64) -ds_and_rtn_b64 = functools.partial(DS, DSOp.DS_AND_RTN_B64) -ds_or_rtn_b64 = functools.partial(DS, DSOp.DS_OR_RTN_B64) -ds_xor_rtn_b64 = functools.partial(DS, DSOp.DS_XOR_RTN_B64) -ds_mskor_rtn_b64 = functools.partial(DS, DSOp.DS_MSKOR_RTN_B64) -ds_wrxchg_rtn_b64 = functools.partial(DS, DSOp.DS_WRXCHG_RTN_B64) -ds_wrxchg2_rtn_b64 = functools.partial(DS, DSOp.DS_WRXCHG2_RTN_B64) -ds_wrxchg2st64_rtn_b64 = functools.partial(DS, DSOp.DS_WRXCHG2ST64_RTN_B64) -ds_cmpst_rtn_b64 = functools.partial(DS, DSOp.DS_CMPST_RTN_B64) -ds_cmpst_rtn_f64 = functools.partial(DS, DSOp.DS_CMPST_RTN_F64) -ds_min_rtn_f64 = functools.partial(DS, DSOp.DS_MIN_RTN_F64) -ds_max_rtn_f64 = functools.partial(DS, DSOp.DS_MAX_RTN_F64) -ds_read_b64 = functools.partial(DS, DSOp.DS_READ_B64) -ds_read2_b64 = functools.partial(DS, DSOp.DS_READ2_B64) -ds_read2st64_b64 = functools.partial(DS, DSOp.DS_READ2ST64_B64) -ds_add_rtn_f64 = functools.partial(DS, DSOp.DS_ADD_RTN_F64) -ds_condxchg32_rtn_b64 = functools.partial(DS, DSOp.DS_CONDXCHG32_RTN_B64) -ds_gws_sema_release_all = functools.partial(DS, DSOp.DS_GWS_SEMA_RELEASE_ALL) -ds_gws_init = functools.partial(DS, DSOp.DS_GWS_INIT) -ds_gws_sema_v = functools.partial(DS, DSOp.DS_GWS_SEMA_V) -ds_gws_sema_br = functools.partial(DS, DSOp.DS_GWS_SEMA_BR) -ds_gws_sema_p = functools.partial(DS, DSOp.DS_GWS_SEMA_P) -ds_gws_barrier = functools.partial(DS, DSOp.DS_GWS_BARRIER) -ds_read_addtid_b32 = functools.partial(DS, DSOp.DS_READ_ADDTID_B32) -ds_pk_add_rtn_f16 = functools.partial(DS, DSOp.DS_PK_ADD_RTN_F16) -ds_pk_add_rtn_bf16 = functools.partial(DS, DSOp.DS_PK_ADD_RTN_BF16) -ds_consume = functools.partial(DS, DSOp.DS_CONSUME) -ds_append = functools.partial(DS, DSOp.DS_APPEND) -ds_write_b96 = functools.partial(DS, DSOp.DS_WRITE_B96) -ds_write_b128 = functools.partial(DS, DSOp.DS_WRITE_B128) -ds_read_b64_tr_b4 = functools.partial(DS, DSOp.DS_READ_B64_TR_B4) -ds_read_b96_tr_b6 = functools.partial(DS, DSOp.DS_READ_B96_TR_B6) -ds_read_b64_tr_b8 = functools.partial(DS, DSOp.DS_READ_B64_TR_B8) -ds_read_b64_tr_b16 = functools.partial(DS, DSOp.DS_READ_B64_TR_B16) -ds_read_b96 = functools.partial(DS, DSOp.DS_READ_B96) -ds_read_b128 = functools.partial(DS, DSOp.DS_READ_B128) -cdna4 = functools.partial(DS, DSOp.CDNA4) -flat_load_ubyte = functools.partial(FLAT, FLATOp.FLAT_LOAD_UBYTE) -flat_load_sbyte = functools.partial(FLAT, FLATOp.FLAT_LOAD_SBYTE) -flat_load_ushort = functools.partial(FLAT, FLATOp.FLAT_LOAD_USHORT) -flat_load_sshort = functools.partial(FLAT, FLATOp.FLAT_LOAD_SSHORT) -flat_load_dword = functools.partial(FLAT, FLATOp.FLAT_LOAD_DWORD) -flat_load_dwordx2 = functools.partial(FLAT, FLATOp.FLAT_LOAD_DWORDX2) -flat_load_dwordx3 = functools.partial(FLAT, FLATOp.FLAT_LOAD_DWORDX3) -flat_load_dwordx4 = functools.partial(FLAT, FLATOp.FLAT_LOAD_DWORDX4) -flat_store_byte = functools.partial(FLAT, FLATOp.FLAT_STORE_BYTE) -flat_store_byte_d16_hi = functools.partial(FLAT, FLATOp.FLAT_STORE_BYTE_D16_HI) -flat_store_short = functools.partial(FLAT, FLATOp.FLAT_STORE_SHORT) -flat_store_short_d16_hi = functools.partial(FLAT, FLATOp.FLAT_STORE_SHORT_D16_HI) -flat_store_dword = functools.partial(FLAT, FLATOp.FLAT_STORE_DWORD) -flat_store_dwordx2 = functools.partial(FLAT, FLATOp.FLAT_STORE_DWORDX2) -flat_store_dwordx3 = functools.partial(FLAT, FLATOp.FLAT_STORE_DWORDX3) -flat_store_dwordx4 = functools.partial(FLAT, FLATOp.FLAT_STORE_DWORDX4) -flat_load_ubyte_d16 = functools.partial(FLAT, FLATOp.FLAT_LOAD_UBYTE_D16) -flat_load_ubyte_d16_hi = functools.partial(FLAT, FLATOp.FLAT_LOAD_UBYTE_D16_HI) -flat_load_sbyte_d16 = functools.partial(FLAT, FLATOp.FLAT_LOAD_SBYTE_D16) -flat_load_sbyte_d16_hi = functools.partial(FLAT, FLATOp.FLAT_LOAD_SBYTE_D16_HI) -flat_load_short_d16 = functools.partial(FLAT, FLATOp.FLAT_LOAD_SHORT_D16) -flat_load_short_d16_hi = functools.partial(FLAT, FLATOp.FLAT_LOAD_SHORT_D16_HI) -flat_atomic_swap = functools.partial(FLAT, FLATOp.FLAT_ATOMIC_SWAP) -flat_atomic_cmpswap = functools.partial(FLAT, FLATOp.FLAT_ATOMIC_CMPSWAP) -flat_atomic_add = functools.partial(FLAT, FLATOp.FLAT_ATOMIC_ADD) -flat_atomic_sub = functools.partial(FLAT, FLATOp.FLAT_ATOMIC_SUB) -flat_atomic_smin = functools.partial(FLAT, FLATOp.FLAT_ATOMIC_SMIN) -flat_atomic_umin = functools.partial(FLAT, FLATOp.FLAT_ATOMIC_UMIN) -flat_atomic_smax = functools.partial(FLAT, FLATOp.FLAT_ATOMIC_SMAX) -flat_atomic_umax = functools.partial(FLAT, FLATOp.FLAT_ATOMIC_UMAX) -flat_atomic_and = functools.partial(FLAT, FLATOp.FLAT_ATOMIC_AND) -flat_atomic_or = functools.partial(FLAT, FLATOp.FLAT_ATOMIC_OR) -flat_atomic_xor = functools.partial(FLAT, FLATOp.FLAT_ATOMIC_XOR) -flat_atomic_inc = functools.partial(FLAT, FLATOp.FLAT_ATOMIC_INC) -flat_atomic_dec = functools.partial(FLAT, FLATOp.FLAT_ATOMIC_DEC) -flat_atomic_add_f32 = functools.partial(FLAT, FLATOp.FLAT_ATOMIC_ADD_F32) -flat_atomic_pk_add_f16 = functools.partial(FLAT, FLATOp.FLAT_ATOMIC_PK_ADD_F16) -flat_atomic_add_f64 = functools.partial(FLAT, FLATOp.FLAT_ATOMIC_ADD_F64) -flat_atomic_min_f64 = functools.partial(FLAT, FLATOp.FLAT_ATOMIC_MIN_F64) -flat_atomic_max_f64 = functools.partial(FLAT, FLATOp.FLAT_ATOMIC_MAX_F64) -flat_atomic_pk_add_bf16 = functools.partial(FLAT, FLATOp.FLAT_ATOMIC_PK_ADD_BF16) -flat_atomic_swap_x2 = functools.partial(FLAT, FLATOp.FLAT_ATOMIC_SWAP_X2) -flat_atomic_cmpswap_x2 = functools.partial(FLAT, FLATOp.FLAT_ATOMIC_CMPSWAP_X2) -flat_atomic_add_x2 = functools.partial(FLAT, FLATOp.FLAT_ATOMIC_ADD_X2) -flat_atomic_sub_x2 = functools.partial(FLAT, FLATOp.FLAT_ATOMIC_SUB_X2) -flat_atomic_smin_x2 = functools.partial(FLAT, FLATOp.FLAT_ATOMIC_SMIN_X2) -flat_atomic_umin_x2 = functools.partial(FLAT, FLATOp.FLAT_ATOMIC_UMIN_X2) -flat_atomic_smax_x2 = functools.partial(FLAT, FLATOp.FLAT_ATOMIC_SMAX_X2) -flat_atomic_umax_x2 = functools.partial(FLAT, FLATOp.FLAT_ATOMIC_UMAX_X2) -flat_atomic_and_x2 = functools.partial(FLAT, FLATOp.FLAT_ATOMIC_AND_X2) -flat_atomic_or_x2 = functools.partial(FLAT, FLATOp.FLAT_ATOMIC_OR_X2) -flat_atomic_xor_x2 = functools.partial(FLAT, FLATOp.FLAT_ATOMIC_XOR_X2) -flat_atomic_inc_x2 = functools.partial(FLAT, FLATOp.FLAT_ATOMIC_INC_X2) -flat_atomic_dec_x2 = functools.partial(FLAT, FLATOp.FLAT_ATOMIC_DEC_X2) -cdna4 = functools.partial(FLAT, FLATOp.CDNA4) -global_load_ubyte = functools.partial(FLAT, GLOBALOp.GLOBAL_LOAD_UBYTE, seg=2) -global_load_sbyte = functools.partial(FLAT, GLOBALOp.GLOBAL_LOAD_SBYTE, seg=2) -global_load_ushort = functools.partial(FLAT, GLOBALOp.GLOBAL_LOAD_USHORT, seg=2) -global_load_sshort = functools.partial(FLAT, GLOBALOp.GLOBAL_LOAD_SSHORT, seg=2) -global_load_dword = functools.partial(FLAT, GLOBALOp.GLOBAL_LOAD_DWORD, seg=2) -global_load_dwordx2 = functools.partial(FLAT, GLOBALOp.GLOBAL_LOAD_DWORDX2, seg=2) -global_load_dwordx3 = functools.partial(FLAT, GLOBALOp.GLOBAL_LOAD_DWORDX3, seg=2) -global_load_dwordx4 = functools.partial(FLAT, GLOBALOp.GLOBAL_LOAD_DWORDX4, seg=2) -global_store_byte = functools.partial(FLAT, GLOBALOp.GLOBAL_STORE_BYTE, seg=2) -global_store_byte_d16_hi = functools.partial(FLAT, GLOBALOp.GLOBAL_STORE_BYTE_D16_HI, seg=2) -global_store_short = functools.partial(FLAT, GLOBALOp.GLOBAL_STORE_SHORT, seg=2) -global_store_short_d16_hi = functools.partial(FLAT, GLOBALOp.GLOBAL_STORE_SHORT_D16_HI, seg=2) -global_store_dword = functools.partial(FLAT, GLOBALOp.GLOBAL_STORE_DWORD, seg=2) -global_store_dwordx2 = functools.partial(FLAT, GLOBALOp.GLOBAL_STORE_DWORDX2, seg=2) -global_store_dwordx3 = functools.partial(FLAT, GLOBALOp.GLOBAL_STORE_DWORDX3, seg=2) -global_store_dwordx4 = functools.partial(FLAT, GLOBALOp.GLOBAL_STORE_DWORDX4, seg=2) -global_load_ubyte_d16 = functools.partial(FLAT, GLOBALOp.GLOBAL_LOAD_UBYTE_D16, seg=2) -global_load_ubyte_d16_hi = functools.partial(FLAT, GLOBALOp.GLOBAL_LOAD_UBYTE_D16_HI, seg=2) -global_load_sbyte_d16 = functools.partial(FLAT, GLOBALOp.GLOBAL_LOAD_SBYTE_D16, seg=2) -global_load_sbyte_d16_hi = functools.partial(FLAT, GLOBALOp.GLOBAL_LOAD_SBYTE_D16_HI, seg=2) -global_load_short_d16 = functools.partial(FLAT, GLOBALOp.GLOBAL_LOAD_SHORT_D16, seg=2) -global_load_short_d16_hi = functools.partial(FLAT, GLOBALOp.GLOBAL_LOAD_SHORT_D16_HI, seg=2) -global_load_lds_ubyte = functools.partial(FLAT, GLOBALOp.GLOBAL_LOAD_LDS_UBYTE, seg=2) -global_load_lds_sbyte = functools.partial(FLAT, GLOBALOp.GLOBAL_LOAD_LDS_SBYTE, seg=2) -global_load_lds_ushort = functools.partial(FLAT, GLOBALOp.GLOBAL_LOAD_LDS_USHORT, seg=2) -global_load_lds_sshort = functools.partial(FLAT, GLOBALOp.GLOBAL_LOAD_LDS_SSHORT, seg=2) -global_load_lds_dword = functools.partial(FLAT, GLOBALOp.GLOBAL_LOAD_LDS_DWORD, seg=2) -global_atomic_swap = functools.partial(FLAT, GLOBALOp.GLOBAL_ATOMIC_SWAP, seg=2) -global_atomic_cmpswap = functools.partial(FLAT, GLOBALOp.GLOBAL_ATOMIC_CMPSWAP, seg=2) -global_atomic_add = functools.partial(FLAT, GLOBALOp.GLOBAL_ATOMIC_ADD, seg=2) -global_atomic_sub = functools.partial(FLAT, GLOBALOp.GLOBAL_ATOMIC_SUB, seg=2) -global_atomic_smin = functools.partial(FLAT, GLOBALOp.GLOBAL_ATOMIC_SMIN, seg=2) -global_atomic_umin = functools.partial(FLAT, GLOBALOp.GLOBAL_ATOMIC_UMIN, seg=2) -global_atomic_smax = functools.partial(FLAT, GLOBALOp.GLOBAL_ATOMIC_SMAX, seg=2) -global_atomic_umax = functools.partial(FLAT, GLOBALOp.GLOBAL_ATOMIC_UMAX, seg=2) -global_atomic_and = functools.partial(FLAT, GLOBALOp.GLOBAL_ATOMIC_AND, seg=2) -global_atomic_or = functools.partial(FLAT, GLOBALOp.GLOBAL_ATOMIC_OR, seg=2) -global_atomic_xor = functools.partial(FLAT, GLOBALOp.GLOBAL_ATOMIC_XOR, seg=2) -global_atomic_inc = functools.partial(FLAT, GLOBALOp.GLOBAL_ATOMIC_INC, seg=2) -global_atomic_dec = functools.partial(FLAT, GLOBALOp.GLOBAL_ATOMIC_DEC, seg=2) -global_atomic_add_f32 = functools.partial(FLAT, GLOBALOp.GLOBAL_ATOMIC_ADD_F32, seg=2) -global_atomic_pk_add_f16 = functools.partial(FLAT, GLOBALOp.GLOBAL_ATOMIC_PK_ADD_F16, seg=2) -global_atomic_add_f64 = functools.partial(FLAT, GLOBALOp.GLOBAL_ATOMIC_ADD_F64, seg=2) -global_atomic_min_f64 = functools.partial(FLAT, GLOBALOp.GLOBAL_ATOMIC_MIN_F64, seg=2) -global_atomic_max_f64 = functools.partial(FLAT, GLOBALOp.GLOBAL_ATOMIC_MAX_F64, seg=2) -global_atomic_pk_add_bf16 = functools.partial(FLAT, GLOBALOp.GLOBAL_ATOMIC_PK_ADD_BF16, seg=2) -global_atomic_swap_x2 = functools.partial(FLAT, GLOBALOp.GLOBAL_ATOMIC_SWAP_X2, seg=2) -global_atomic_cmpswap_x2 = functools.partial(FLAT, GLOBALOp.GLOBAL_ATOMIC_CMPSWAP_X2, seg=2) -global_atomic_add_x2 = functools.partial(FLAT, GLOBALOp.GLOBAL_ATOMIC_ADD_X2, seg=2) -global_atomic_sub_x2 = functools.partial(FLAT, GLOBALOp.GLOBAL_ATOMIC_SUB_X2, seg=2) -global_atomic_smin_x2 = functools.partial(FLAT, GLOBALOp.GLOBAL_ATOMIC_SMIN_X2, seg=2) -global_atomic_umin_x2 = functools.partial(FLAT, GLOBALOp.GLOBAL_ATOMIC_UMIN_X2, seg=2) -global_atomic_smax_x2 = functools.partial(FLAT, GLOBALOp.GLOBAL_ATOMIC_SMAX_X2, seg=2) -global_atomic_umax_x2 = functools.partial(FLAT, GLOBALOp.GLOBAL_ATOMIC_UMAX_X2, seg=2) -global_atomic_and_x2 = functools.partial(FLAT, GLOBALOp.GLOBAL_ATOMIC_AND_X2, seg=2) -global_atomic_or_x2 = functools.partial(FLAT, GLOBALOp.GLOBAL_ATOMIC_OR_X2, seg=2) -global_atomic_xor_x2 = functools.partial(FLAT, GLOBALOp.GLOBAL_ATOMIC_XOR_X2, seg=2) -global_atomic_inc_x2 = functools.partial(FLAT, GLOBALOp.GLOBAL_ATOMIC_INC_X2, seg=2) -global_atomic_dec_x2 = functools.partial(FLAT, GLOBALOp.GLOBAL_ATOMIC_DEC_X2, seg=2) -global_load_lds_dwordx4 = functools.partial(FLAT, GLOBALOp.GLOBAL_LOAD_LDS_DWORDX4, seg=2) -global_load_lds_dwordx3 = functools.partial(FLAT, GLOBALOp.GLOBAL_LOAD_LDS_DWORDX3, seg=2) -cdna4 = functools.partial(FLAT, GLOBALOp.CDNA4, seg=2) -tbuffer_load_format_x = functools.partial(MTBUF, MTBUFOp.TBUFFER_LOAD_FORMAT_X) -tbuffer_load_format_xy = functools.partial(MTBUF, MTBUFOp.TBUFFER_LOAD_FORMAT_XY) -tbuffer_load_format_xyz = functools.partial(MTBUF, MTBUFOp.TBUFFER_LOAD_FORMAT_XYZ) -tbuffer_load_format_xyzw = functools.partial(MTBUF, MTBUFOp.TBUFFER_LOAD_FORMAT_XYZW) -tbuffer_store_format_x = functools.partial(MTBUF, MTBUFOp.TBUFFER_STORE_FORMAT_X) -tbuffer_store_format_xy = functools.partial(MTBUF, MTBUFOp.TBUFFER_STORE_FORMAT_XY) -tbuffer_store_format_xyz = functools.partial(MTBUF, MTBUFOp.TBUFFER_STORE_FORMAT_XYZ) -tbuffer_store_format_xyzw = functools.partial(MTBUF, MTBUFOp.TBUFFER_STORE_FORMAT_XYZW) -tbuffer_load_format_d16_x = functools.partial(MTBUF, MTBUFOp.TBUFFER_LOAD_FORMAT_D16_X) -tbuffer_load_format_d16_xy = functools.partial(MTBUF, MTBUFOp.TBUFFER_LOAD_FORMAT_D16_XY) -tbuffer_load_format_d16_xyz = functools.partial(MTBUF, MTBUFOp.TBUFFER_LOAD_FORMAT_D16_XYZ) -tbuffer_load_format_d16_xyzw = functools.partial(MTBUF, MTBUFOp.TBUFFER_LOAD_FORMAT_D16_XYZW) -tbuffer_store_format_d16_x = functools.partial(MTBUF, MTBUFOp.TBUFFER_STORE_FORMAT_D16_X) -tbuffer_store_format_d16_xy = functools.partial(MTBUF, MTBUFOp.TBUFFER_STORE_FORMAT_D16_XY) -tbuffer_store_format_d16_xyz = functools.partial(MTBUF, MTBUFOp.TBUFFER_STORE_FORMAT_D16_XYZ) -tbuffer_store_format_d16_xyzw = functools.partial(MTBUF, MTBUFOp.TBUFFER_STORE_FORMAT_D16_XYZW) -buffer_load_format_x = functools.partial(MUBUF, MUBUFOp.BUFFER_LOAD_FORMAT_X) -buffer_load_format_xy = functools.partial(MUBUF, MUBUFOp.BUFFER_LOAD_FORMAT_XY) -buffer_load_format_xyz = functools.partial(MUBUF, MUBUFOp.BUFFER_LOAD_FORMAT_XYZ) -buffer_load_format_xyzw = functools.partial(MUBUF, MUBUFOp.BUFFER_LOAD_FORMAT_XYZW) -buffer_store_format_x = functools.partial(MUBUF, MUBUFOp.BUFFER_STORE_FORMAT_X) -buffer_store_format_xy = functools.partial(MUBUF, MUBUFOp.BUFFER_STORE_FORMAT_XY) -buffer_store_format_xyz = functools.partial(MUBUF, MUBUFOp.BUFFER_STORE_FORMAT_XYZ) -buffer_store_format_xyzw = functools.partial(MUBUF, MUBUFOp.BUFFER_STORE_FORMAT_XYZW) -buffer_load_format_d16_x = functools.partial(MUBUF, MUBUFOp.BUFFER_LOAD_FORMAT_D16_X) -buffer_load_format_d16_xy = functools.partial(MUBUF, MUBUFOp.BUFFER_LOAD_FORMAT_D16_XY) -buffer_load_format_d16_xyz = functools.partial(MUBUF, MUBUFOp.BUFFER_LOAD_FORMAT_D16_XYZ) -buffer_load_format_d16_xyzw = functools.partial(MUBUF, MUBUFOp.BUFFER_LOAD_FORMAT_D16_XYZW) -buffer_store_format_d16_x = functools.partial(MUBUF, MUBUFOp.BUFFER_STORE_FORMAT_D16_X) -buffer_store_format_d16_xy = functools.partial(MUBUF, MUBUFOp.BUFFER_STORE_FORMAT_D16_XY) -buffer_store_format_d16_xyz = functools.partial(MUBUF, MUBUFOp.BUFFER_STORE_FORMAT_D16_XYZ) -buffer_store_format_d16_xyzw = functools.partial(MUBUF, MUBUFOp.BUFFER_STORE_FORMAT_D16_XYZW) -buffer_load_ubyte = functools.partial(MUBUF, MUBUFOp.BUFFER_LOAD_UBYTE) -buffer_load_sbyte = functools.partial(MUBUF, MUBUFOp.BUFFER_LOAD_SBYTE) -buffer_load_ushort = functools.partial(MUBUF, MUBUFOp.BUFFER_LOAD_USHORT) -buffer_load_sshort = functools.partial(MUBUF, MUBUFOp.BUFFER_LOAD_SSHORT) -buffer_load_dword = functools.partial(MUBUF, MUBUFOp.BUFFER_LOAD_DWORD) -buffer_load_dwordx2 = functools.partial(MUBUF, MUBUFOp.BUFFER_LOAD_DWORDX2) -buffer_load_dwordx3 = functools.partial(MUBUF, MUBUFOp.BUFFER_LOAD_DWORDX3) -buffer_load_dwordx4 = functools.partial(MUBUF, MUBUFOp.BUFFER_LOAD_DWORDX4) -buffer_store_byte = functools.partial(MUBUF, MUBUFOp.BUFFER_STORE_BYTE) -buffer_store_byte_d16_hi = functools.partial(MUBUF, MUBUFOp.BUFFER_STORE_BYTE_D16_HI) -buffer_store_short = functools.partial(MUBUF, MUBUFOp.BUFFER_STORE_SHORT) -buffer_store_short_d16_hi = functools.partial(MUBUF, MUBUFOp.BUFFER_STORE_SHORT_D16_HI) -buffer_store_dword = functools.partial(MUBUF, MUBUFOp.BUFFER_STORE_DWORD) -buffer_store_dwordx2 = functools.partial(MUBUF, MUBUFOp.BUFFER_STORE_DWORDX2) -buffer_store_dwordx3 = functools.partial(MUBUF, MUBUFOp.BUFFER_STORE_DWORDX3) -buffer_store_dwordx4 = functools.partial(MUBUF, MUBUFOp.BUFFER_STORE_DWORDX4) -buffer_load_ubyte_d16 = functools.partial(MUBUF, MUBUFOp.BUFFER_LOAD_UBYTE_D16) -buffer_load_ubyte_d16_hi = functools.partial(MUBUF, MUBUFOp.BUFFER_LOAD_UBYTE_D16_HI) -buffer_load_sbyte_d16 = functools.partial(MUBUF, MUBUFOp.BUFFER_LOAD_SBYTE_D16) -buffer_load_sbyte_d16_hi = functools.partial(MUBUF, MUBUFOp.BUFFER_LOAD_SBYTE_D16_HI) -buffer_load_short_d16 = functools.partial(MUBUF, MUBUFOp.BUFFER_LOAD_SHORT_D16) -buffer_load_short_d16_hi = functools.partial(MUBUF, MUBUFOp.BUFFER_LOAD_SHORT_D16_HI) -buffer_load_format_d16_hi_x = functools.partial(MUBUF, MUBUFOp.BUFFER_LOAD_FORMAT_D16_HI_X) -buffer_store_format_d16_hi_x = functools.partial(MUBUF, MUBUFOp.BUFFER_STORE_FORMAT_D16_HI_X) -buffer_wbl2 = functools.partial(MUBUF, MUBUFOp.BUFFER_WBL2) -buffer_inv = functools.partial(MUBUF, MUBUFOp.BUFFER_INV) -buffer_atomic_swap = functools.partial(MUBUF, MUBUFOp.BUFFER_ATOMIC_SWAP) -buffer_atomic_cmpswap = functools.partial(MUBUF, MUBUFOp.BUFFER_ATOMIC_CMPSWAP) -buffer_atomic_add = functools.partial(MUBUF, MUBUFOp.BUFFER_ATOMIC_ADD) -buffer_atomic_sub = functools.partial(MUBUF, MUBUFOp.BUFFER_ATOMIC_SUB) -buffer_atomic_smin = functools.partial(MUBUF, MUBUFOp.BUFFER_ATOMIC_SMIN) -buffer_atomic_umin = functools.partial(MUBUF, MUBUFOp.BUFFER_ATOMIC_UMIN) -buffer_atomic_smax = functools.partial(MUBUF, MUBUFOp.BUFFER_ATOMIC_SMAX) -buffer_atomic_umax = functools.partial(MUBUF, MUBUFOp.BUFFER_ATOMIC_UMAX) -buffer_atomic_and = functools.partial(MUBUF, MUBUFOp.BUFFER_ATOMIC_AND) -buffer_atomic_or = functools.partial(MUBUF, MUBUFOp.BUFFER_ATOMIC_OR) -buffer_atomic_xor = functools.partial(MUBUF, MUBUFOp.BUFFER_ATOMIC_XOR) -buffer_atomic_inc = functools.partial(MUBUF, MUBUFOp.BUFFER_ATOMIC_INC) -buffer_atomic_dec = functools.partial(MUBUF, MUBUFOp.BUFFER_ATOMIC_DEC) -buffer_atomic_add_f32 = functools.partial(MUBUF, MUBUFOp.BUFFER_ATOMIC_ADD_F32) -buffer_atomic_pk_add_f16 = functools.partial(MUBUF, MUBUFOp.BUFFER_ATOMIC_PK_ADD_F16) -buffer_atomic_add_f64 = functools.partial(MUBUF, MUBUFOp.BUFFER_ATOMIC_ADD_F64) -buffer_atomic_min_f64 = functools.partial(MUBUF, MUBUFOp.BUFFER_ATOMIC_MIN_F64) -buffer_atomic_max_f64 = functools.partial(MUBUF, MUBUFOp.BUFFER_ATOMIC_MAX_F64) -buffer_atomic_pk_add_bf16 = functools.partial(MUBUF, MUBUFOp.BUFFER_ATOMIC_PK_ADD_BF16) -buffer_atomic_swap_x2 = functools.partial(MUBUF, MUBUFOp.BUFFER_ATOMIC_SWAP_X2) -buffer_atomic_cmpswap_x2 = functools.partial(MUBUF, MUBUFOp.BUFFER_ATOMIC_CMPSWAP_X2) -buffer_atomic_add_x2 = functools.partial(MUBUF, MUBUFOp.BUFFER_ATOMIC_ADD_X2) -buffer_atomic_sub_x2 = functools.partial(MUBUF, MUBUFOp.BUFFER_ATOMIC_SUB_X2) -buffer_atomic_smin_x2 = functools.partial(MUBUF, MUBUFOp.BUFFER_ATOMIC_SMIN_X2) -buffer_atomic_umin_x2 = functools.partial(MUBUF, MUBUFOp.BUFFER_ATOMIC_UMIN_X2) -buffer_atomic_smax_x2 = functools.partial(MUBUF, MUBUFOp.BUFFER_ATOMIC_SMAX_X2) -buffer_atomic_umax_x2 = functools.partial(MUBUF, MUBUFOp.BUFFER_ATOMIC_UMAX_X2) -buffer_atomic_and_x2 = functools.partial(MUBUF, MUBUFOp.BUFFER_ATOMIC_AND_X2) -buffer_atomic_or_x2 = functools.partial(MUBUF, MUBUFOp.BUFFER_ATOMIC_OR_X2) -buffer_atomic_xor_x2 = functools.partial(MUBUF, MUBUFOp.BUFFER_ATOMIC_XOR_X2) -buffer_atomic_inc_x2 = functools.partial(MUBUF, MUBUFOp.BUFFER_ATOMIC_INC_X2) -buffer_atomic_dec_x2 = functools.partial(MUBUF, MUBUFOp.BUFFER_ATOMIC_DEC_X2) -cdna4 = functools.partial(MUBUF, MUBUFOp.CDNA4) -scratch_load_ubyte = functools.partial(FLAT, SCRATCHOp.SCRATCH_LOAD_UBYTE, seg=1) -scratch_load_sbyte = functools.partial(FLAT, SCRATCHOp.SCRATCH_LOAD_SBYTE, seg=1) -scratch_load_ushort = functools.partial(FLAT, SCRATCHOp.SCRATCH_LOAD_USHORT, seg=1) -scratch_load_sshort = functools.partial(FLAT, SCRATCHOp.SCRATCH_LOAD_SSHORT, seg=1) -scratch_load_dword = functools.partial(FLAT, SCRATCHOp.SCRATCH_LOAD_DWORD, seg=1) -scratch_load_dwordx2 = functools.partial(FLAT, SCRATCHOp.SCRATCH_LOAD_DWORDX2, seg=1) -scratch_load_dwordx3 = functools.partial(FLAT, SCRATCHOp.SCRATCH_LOAD_DWORDX3, seg=1) -scratch_load_dwordx4 = functools.partial(FLAT, SCRATCHOp.SCRATCH_LOAD_DWORDX4, seg=1) -scratch_store_byte = functools.partial(FLAT, SCRATCHOp.SCRATCH_STORE_BYTE, seg=1) -scratch_store_byte_d16_hi = functools.partial(FLAT, SCRATCHOp.SCRATCH_STORE_BYTE_D16_HI, seg=1) -scratch_store_short = functools.partial(FLAT, SCRATCHOp.SCRATCH_STORE_SHORT, seg=1) -scratch_store_short_d16_hi = functools.partial(FLAT, SCRATCHOp.SCRATCH_STORE_SHORT_D16_HI, seg=1) -scratch_store_dword = functools.partial(FLAT, SCRATCHOp.SCRATCH_STORE_DWORD, seg=1) -scratch_store_dwordx2 = functools.partial(FLAT, SCRATCHOp.SCRATCH_STORE_DWORDX2, seg=1) -scratch_store_dwordx3 = functools.partial(FLAT, SCRATCHOp.SCRATCH_STORE_DWORDX3, seg=1) -scratch_store_dwordx4 = functools.partial(FLAT, SCRATCHOp.SCRATCH_STORE_DWORDX4, seg=1) -scratch_load_ubyte_d16 = functools.partial(FLAT, SCRATCHOp.SCRATCH_LOAD_UBYTE_D16, seg=1) -scratch_load_ubyte_d16_hi = functools.partial(FLAT, SCRATCHOp.SCRATCH_LOAD_UBYTE_D16_HI, seg=1) -scratch_load_sbyte_d16 = functools.partial(FLAT, SCRATCHOp.SCRATCH_LOAD_SBYTE_D16, seg=1) -scratch_load_sbyte_d16_hi = functools.partial(FLAT, SCRATCHOp.SCRATCH_LOAD_SBYTE_D16_HI, seg=1) -scratch_load_short_d16 = functools.partial(FLAT, SCRATCHOp.SCRATCH_LOAD_SHORT_D16, seg=1) -scratch_load_short_d16_hi = functools.partial(FLAT, SCRATCHOp.SCRATCH_LOAD_SHORT_D16_HI, seg=1) -scratch_load_lds_ubyte = functools.partial(FLAT, SCRATCHOp.SCRATCH_LOAD_LDS_UBYTE, seg=1) -scratch_load_lds_sbyte = functools.partial(FLAT, SCRATCHOp.SCRATCH_LOAD_LDS_SBYTE, seg=1) -scratch_load_lds_ushort = functools.partial(FLAT, SCRATCHOp.SCRATCH_LOAD_LDS_USHORT, seg=1) -scratch_load_lds_sshort = functools.partial(FLAT, SCRATCHOp.SCRATCH_LOAD_LDS_SSHORT, seg=1) -scratch_load_lds_dword = functools.partial(FLAT, SCRATCHOp.SCRATCH_LOAD_LDS_DWORD, seg=1) -s_load_dword = functools.partial(SMEM, SMEMOp.S_LOAD_DWORD) -s_load_dwordx2 = functools.partial(SMEM, SMEMOp.S_LOAD_DWORDX2) -s_load_dwordx4 = functools.partial(SMEM, SMEMOp.S_LOAD_DWORDX4) -s_load_dwordx8 = functools.partial(SMEM, SMEMOp.S_LOAD_DWORDX8) -s_load_dwordx16 = functools.partial(SMEM, SMEMOp.S_LOAD_DWORDX16) -s_scratch_load_dword = functools.partial(SMEM, SMEMOp.S_SCRATCH_LOAD_DWORD) -s_scratch_load_dwordx2 = functools.partial(SMEM, SMEMOp.S_SCRATCH_LOAD_DWORDX2) -s_scratch_load_dwordx4 = functools.partial(SMEM, SMEMOp.S_SCRATCH_LOAD_DWORDX4) -s_buffer_load_dword = functools.partial(SMEM, SMEMOp.S_BUFFER_LOAD_DWORD) -s_buffer_load_dwordx2 = functools.partial(SMEM, SMEMOp.S_BUFFER_LOAD_DWORDX2) -s_buffer_load_dwordx4 = functools.partial(SMEM, SMEMOp.S_BUFFER_LOAD_DWORDX4) -s_buffer_load_dwordx8 = functools.partial(SMEM, SMEMOp.S_BUFFER_LOAD_DWORDX8) -s_buffer_load_dwordx16 = functools.partial(SMEM, SMEMOp.S_BUFFER_LOAD_DWORDX16) -s_store_dword = functools.partial(SMEM, SMEMOp.S_STORE_DWORD) -s_store_dwordx2 = functools.partial(SMEM, SMEMOp.S_STORE_DWORDX2) -s_store_dwordx4 = functools.partial(SMEM, SMEMOp.S_STORE_DWORDX4) -s_scratch_store_dword = functools.partial(SMEM, SMEMOp.S_SCRATCH_STORE_DWORD) -s_scratch_store_dwordx2 = functools.partial(SMEM, SMEMOp.S_SCRATCH_STORE_DWORDX2) -s_scratch_store_dwordx4 = functools.partial(SMEM, SMEMOp.S_SCRATCH_STORE_DWORDX4) -s_buffer_store_dword = functools.partial(SMEM, SMEMOp.S_BUFFER_STORE_DWORD) -s_buffer_store_dwordx2 = functools.partial(SMEM, SMEMOp.S_BUFFER_STORE_DWORDX2) -s_buffer_store_dwordx4 = functools.partial(SMEM, SMEMOp.S_BUFFER_STORE_DWORDX4) -s_dcache_inv = functools.partial(SMEM, SMEMOp.S_DCACHE_INV) -s_dcache_wb = functools.partial(SMEM, SMEMOp.S_DCACHE_WB) -s_dcache_inv_vol = functools.partial(SMEM, SMEMOp.S_DCACHE_INV_VOL) -s_dcache_wb_vol = functools.partial(SMEM, SMEMOp.S_DCACHE_WB_VOL) -s_memtime = functools.partial(SMEM, SMEMOp.S_MEMTIME) -s_memrealtime = functools.partial(SMEM, SMEMOp.S_MEMREALTIME) -s_dcache_discard = functools.partial(SMEM, SMEMOp.S_DCACHE_DISCARD) -s_dcache_discard_x2 = functools.partial(SMEM, SMEMOp.S_DCACHE_DISCARD_X2) -s_buffer_atomic_swap = functools.partial(SMEM, SMEMOp.S_BUFFER_ATOMIC_SWAP) -s_buffer_atomic_cmpswap = functools.partial(SMEM, SMEMOp.S_BUFFER_ATOMIC_CMPSWAP) -s_buffer_atomic_add = functools.partial(SMEM, SMEMOp.S_BUFFER_ATOMIC_ADD) -s_buffer_atomic_sub = functools.partial(SMEM, SMEMOp.S_BUFFER_ATOMIC_SUB) -s_buffer_atomic_smin = functools.partial(SMEM, SMEMOp.S_BUFFER_ATOMIC_SMIN) -s_buffer_atomic_umin = functools.partial(SMEM, SMEMOp.S_BUFFER_ATOMIC_UMIN) -s_buffer_atomic_smax = functools.partial(SMEM, SMEMOp.S_BUFFER_ATOMIC_SMAX) -s_buffer_atomic_umax = functools.partial(SMEM, SMEMOp.S_BUFFER_ATOMIC_UMAX) -s_buffer_atomic_and = functools.partial(SMEM, SMEMOp.S_BUFFER_ATOMIC_AND) -s_buffer_atomic_or = functools.partial(SMEM, SMEMOp.S_BUFFER_ATOMIC_OR) -s_buffer_atomic_xor = functools.partial(SMEM, SMEMOp.S_BUFFER_ATOMIC_XOR) -s_buffer_atomic_inc = functools.partial(SMEM, SMEMOp.S_BUFFER_ATOMIC_INC) -s_buffer_atomic_dec = functools.partial(SMEM, SMEMOp.S_BUFFER_ATOMIC_DEC) -s_buffer_atomic_swap_x2 = functools.partial(SMEM, SMEMOp.S_BUFFER_ATOMIC_SWAP_X2) -s_buffer_atomic_cmpswap_x2 = functools.partial(SMEM, SMEMOp.S_BUFFER_ATOMIC_CMPSWAP_X2) -s_buffer_atomic_add_x2 = functools.partial(SMEM, SMEMOp.S_BUFFER_ATOMIC_ADD_X2) -s_buffer_atomic_sub_x2 = functools.partial(SMEM, SMEMOp.S_BUFFER_ATOMIC_SUB_X2) -s_buffer_atomic_smin_x2 = functools.partial(SMEM, SMEMOp.S_BUFFER_ATOMIC_SMIN_X2) -s_buffer_atomic_umin_x2 = functools.partial(SMEM, SMEMOp.S_BUFFER_ATOMIC_UMIN_X2) -s_buffer_atomic_smax_x2 = functools.partial(SMEM, SMEMOp.S_BUFFER_ATOMIC_SMAX_X2) -s_buffer_atomic_umax_x2 = functools.partial(SMEM, SMEMOp.S_BUFFER_ATOMIC_UMAX_X2) -s_buffer_atomic_and_x2 = functools.partial(SMEM, SMEMOp.S_BUFFER_ATOMIC_AND_X2) -s_buffer_atomic_or_x2 = functools.partial(SMEM, SMEMOp.S_BUFFER_ATOMIC_OR_X2) -s_buffer_atomic_xor_x2 = functools.partial(SMEM, SMEMOp.S_BUFFER_ATOMIC_XOR_X2) -s_buffer_atomic_inc_x2 = functools.partial(SMEM, SMEMOp.S_BUFFER_ATOMIC_INC_X2) -s_buffer_atomic_dec_x2 = functools.partial(SMEM, SMEMOp.S_BUFFER_ATOMIC_DEC_X2) -s_atomic_swap = functools.partial(SMEM, SMEMOp.S_ATOMIC_SWAP) -s_atomic_cmpswap = functools.partial(SMEM, SMEMOp.S_ATOMIC_CMPSWAP) -s_atomic_add = functools.partial(SMEM, SMEMOp.S_ATOMIC_ADD) -s_atomic_sub = functools.partial(SMEM, SMEMOp.S_ATOMIC_SUB) -s_atomic_smin = functools.partial(SMEM, SMEMOp.S_ATOMIC_SMIN) -s_atomic_umin = functools.partial(SMEM, SMEMOp.S_ATOMIC_UMIN) -s_atomic_smax = functools.partial(SMEM, SMEMOp.S_ATOMIC_SMAX) -s_atomic_umax = functools.partial(SMEM, SMEMOp.S_ATOMIC_UMAX) -s_atomic_and = functools.partial(SMEM, SMEMOp.S_ATOMIC_AND) -s_atomic_or = functools.partial(SMEM, SMEMOp.S_ATOMIC_OR) -s_atomic_xor = functools.partial(SMEM, SMEMOp.S_ATOMIC_XOR) -s_atomic_inc = functools.partial(SMEM, SMEMOp.S_ATOMIC_INC) -s_atomic_dec = functools.partial(SMEM, SMEMOp.S_ATOMIC_DEC) -s_atomic_swap_x2 = functools.partial(SMEM, SMEMOp.S_ATOMIC_SWAP_X2) -s_atomic_cmpswap_x2 = functools.partial(SMEM, SMEMOp.S_ATOMIC_CMPSWAP_X2) -s_atomic_add_x2 = functools.partial(SMEM, SMEMOp.S_ATOMIC_ADD_X2) -s_atomic_sub_x2 = functools.partial(SMEM, SMEMOp.S_ATOMIC_SUB_X2) -s_atomic_smin_x2 = functools.partial(SMEM, SMEMOp.S_ATOMIC_SMIN_X2) -s_atomic_umin_x2 = functools.partial(SMEM, SMEMOp.S_ATOMIC_UMIN_X2) -s_atomic_smax_x2 = functools.partial(SMEM, SMEMOp.S_ATOMIC_SMAX_X2) -s_atomic_umax_x2 = functools.partial(SMEM, SMEMOp.S_ATOMIC_UMAX_X2) -s_atomic_and_x2 = functools.partial(SMEM, SMEMOp.S_ATOMIC_AND_X2) -s_atomic_or_x2 = functools.partial(SMEM, SMEMOp.S_ATOMIC_OR_X2) -s_atomic_xor_x2 = functools.partial(SMEM, SMEMOp.S_ATOMIC_XOR_X2) -s_atomic_inc_x2 = functools.partial(SMEM, SMEMOp.S_ATOMIC_INC_X2) -s_atomic_dec_x2 = functools.partial(SMEM, SMEMOp.S_ATOMIC_DEC_X2) -cdna4 = functools.partial(SMEM, SMEMOp.CDNA4) -s_mov_b32 = functools.partial(SOP1, SOP1Op.S_MOV_B32) -s_mov_b64 = functools.partial(SOP1, SOP1Op.S_MOV_B64) -s_cmov_b32 = functools.partial(SOP1, SOP1Op.S_CMOV_B32) -s_cmov_b64 = functools.partial(SOP1, SOP1Op.S_CMOV_B64) -s_not_b32 = functools.partial(SOP1, SOP1Op.S_NOT_B32) -s_not_b64 = functools.partial(SOP1, SOP1Op.S_NOT_B64) -s_wqm_b32 = functools.partial(SOP1, SOP1Op.S_WQM_B32) -s_wqm_b64 = functools.partial(SOP1, SOP1Op.S_WQM_B64) -s_brev_b32 = functools.partial(SOP1, SOP1Op.S_BREV_B32) -s_brev_b64 = functools.partial(SOP1, SOP1Op.S_BREV_B64) -s_bcnt0_i32_b32 = functools.partial(SOP1, SOP1Op.S_BCNT0_I32_B32) -s_bcnt0_i32_b64 = functools.partial(SOP1, SOP1Op.S_BCNT0_I32_B64) -s_bcnt1_i32_b32 = functools.partial(SOP1, SOP1Op.S_BCNT1_I32_B32) -s_bcnt1_i32_b64 = functools.partial(SOP1, SOP1Op.S_BCNT1_I32_B64) -s_ff0_i32_b32 = functools.partial(SOP1, SOP1Op.S_FF0_I32_B32) -s_ff0_i32_b64 = functools.partial(SOP1, SOP1Op.S_FF0_I32_B64) -s_ff1_i32_b32 = functools.partial(SOP1, SOP1Op.S_FF1_I32_B32) -s_ff1_i32_b64 = functools.partial(SOP1, SOP1Op.S_FF1_I32_B64) -s_flbit_i32_b32 = functools.partial(SOP1, SOP1Op.S_FLBIT_I32_B32) -s_flbit_i32_b64 = functools.partial(SOP1, SOP1Op.S_FLBIT_I32_B64) -s_flbit_i32 = functools.partial(SOP1, SOP1Op.S_FLBIT_I32) -s_flbit_i32_i64 = functools.partial(SOP1, SOP1Op.S_FLBIT_I32_I64) -s_sext_i32_i8 = functools.partial(SOP1, SOP1Op.S_SEXT_I32_I8) -s_sext_i32_i16 = functools.partial(SOP1, SOP1Op.S_SEXT_I32_I16) -s_bitset0_b32 = functools.partial(SOP1, SOP1Op.S_BITSET0_B32) -s_bitset0_b64 = functools.partial(SOP1, SOP1Op.S_BITSET0_B64) -s_bitset1_b32 = functools.partial(SOP1, SOP1Op.S_BITSET1_B32) -s_bitset1_b64 = functools.partial(SOP1, SOP1Op.S_BITSET1_B64) -s_getpc_b64 = functools.partial(SOP1, SOP1Op.S_GETPC_B64) -s_setpc_b64 = functools.partial(SOP1, SOP1Op.S_SETPC_B64) -s_swappc_b64 = functools.partial(SOP1, SOP1Op.S_SWAPPC_B64) -s_rfe_b64 = functools.partial(SOP1, SOP1Op.S_RFE_B64) -s_and_saveexec_b64 = functools.partial(SOP1, SOP1Op.S_AND_SAVEEXEC_B64) -s_or_saveexec_b64 = functools.partial(SOP1, SOP1Op.S_OR_SAVEEXEC_B64) -s_xor_saveexec_b64 = functools.partial(SOP1, SOP1Op.S_XOR_SAVEEXEC_B64) -s_andn2_saveexec_b64 = functools.partial(SOP1, SOP1Op.S_ANDN2_SAVEEXEC_B64) -s_orn2_saveexec_b64 = functools.partial(SOP1, SOP1Op.S_ORN2_SAVEEXEC_B64) -s_nand_saveexec_b64 = functools.partial(SOP1, SOP1Op.S_NAND_SAVEEXEC_B64) -s_nor_saveexec_b64 = functools.partial(SOP1, SOP1Op.S_NOR_SAVEEXEC_B64) -s_xnor_saveexec_b64 = functools.partial(SOP1, SOP1Op.S_XNOR_SAVEEXEC_B64) -s_quadmask_b32 = functools.partial(SOP1, SOP1Op.S_QUADMASK_B32) -s_quadmask_b64 = functools.partial(SOP1, SOP1Op.S_QUADMASK_B64) -s_movrels_b32 = functools.partial(SOP1, SOP1Op.S_MOVRELS_B32) -s_movrels_b64 = functools.partial(SOP1, SOP1Op.S_MOVRELS_B64) -s_movreld_b32 = functools.partial(SOP1, SOP1Op.S_MOVRELD_B32) -s_movreld_b64 = functools.partial(SOP1, SOP1Op.S_MOVRELD_B64) -s_cbranch_join = functools.partial(SOP1, SOP1Op.S_CBRANCH_JOIN) -s_abs_i32 = functools.partial(SOP1, SOP1Op.S_ABS_I32) -s_set_gpr_idx_idx = functools.partial(SOP1, SOP1Op.S_SET_GPR_IDX_IDX) -s_andn1_saveexec_b64 = functools.partial(SOP1, SOP1Op.S_ANDN1_SAVEEXEC_B64) -s_orn1_saveexec_b64 = functools.partial(SOP1, SOP1Op.S_ORN1_SAVEEXEC_B64) -s_andn1_wrexec_b64 = functools.partial(SOP1, SOP1Op.S_ANDN1_WREXEC_B64) -s_andn2_wrexec_b64 = functools.partial(SOP1, SOP1Op.S_ANDN2_WREXEC_B64) -s_bitreplicate_b64_b32 = functools.partial(SOP1, SOP1Op.S_BITREPLICATE_B64_B32) -cdna4 = functools.partial(SOP1, SOP1Op.CDNA4) -s_add_u32 = functools.partial(SOP2, SOP2Op.S_ADD_U32) -s_sub_u32 = functools.partial(SOP2, SOP2Op.S_SUB_U32) -s_add_i32 = functools.partial(SOP2, SOP2Op.S_ADD_I32) -s_sub_i32 = functools.partial(SOP2, SOP2Op.S_SUB_I32) -s_addc_u32 = functools.partial(SOP2, SOP2Op.S_ADDC_U32) -s_subb_u32 = functools.partial(SOP2, SOP2Op.S_SUBB_U32) -s_min_i32 = functools.partial(SOP2, SOP2Op.S_MIN_I32) -s_min_u32 = functools.partial(SOP2, SOP2Op.S_MIN_U32) -s_max_i32 = functools.partial(SOP2, SOP2Op.S_MAX_I32) -s_max_u32 = functools.partial(SOP2, SOP2Op.S_MAX_U32) -s_cselect_b32 = functools.partial(SOP2, SOP2Op.S_CSELECT_B32) -s_cselect_b64 = functools.partial(SOP2, SOP2Op.S_CSELECT_B64) -s_and_b32 = functools.partial(SOP2, SOP2Op.S_AND_B32) -s_and_b64 = functools.partial(SOP2, SOP2Op.S_AND_B64) -s_or_b32 = functools.partial(SOP2, SOP2Op.S_OR_B32) -s_or_b64 = functools.partial(SOP2, SOP2Op.S_OR_B64) -s_xor_b32 = functools.partial(SOP2, SOP2Op.S_XOR_B32) -s_xor_b64 = functools.partial(SOP2, SOP2Op.S_XOR_B64) -s_andn2_b32 = functools.partial(SOP2, SOP2Op.S_ANDN2_B32) -s_andn2_b64 = functools.partial(SOP2, SOP2Op.S_ANDN2_B64) -s_orn2_b32 = functools.partial(SOP2, SOP2Op.S_ORN2_B32) -s_orn2_b64 = functools.partial(SOP2, SOP2Op.S_ORN2_B64) -s_nand_b32 = functools.partial(SOP2, SOP2Op.S_NAND_B32) -s_nand_b64 = functools.partial(SOP2, SOP2Op.S_NAND_B64) -s_nor_b32 = functools.partial(SOP2, SOP2Op.S_NOR_B32) -s_nor_b64 = functools.partial(SOP2, SOP2Op.S_NOR_B64) -s_xnor_b32 = functools.partial(SOP2, SOP2Op.S_XNOR_B32) -s_xnor_b64 = functools.partial(SOP2, SOP2Op.S_XNOR_B64) -s_lshl_b32 = functools.partial(SOP2, SOP2Op.S_LSHL_B32) -s_lshl_b64 = functools.partial(SOP2, SOP2Op.S_LSHL_B64) -s_lshr_b32 = functools.partial(SOP2, SOP2Op.S_LSHR_B32) -s_lshr_b64 = functools.partial(SOP2, SOP2Op.S_LSHR_B64) -s_ashr_i32 = functools.partial(SOP2, SOP2Op.S_ASHR_I32) -s_ashr_i64 = functools.partial(SOP2, SOP2Op.S_ASHR_I64) -s_bfm_b32 = functools.partial(SOP2, SOP2Op.S_BFM_B32) -s_bfm_b64 = functools.partial(SOP2, SOP2Op.S_BFM_B64) -s_mul_i32 = functools.partial(SOP2, SOP2Op.S_MUL_I32) -s_bfe_u32 = functools.partial(SOP2, SOP2Op.S_BFE_U32) -s_bfe_i32 = functools.partial(SOP2, SOP2Op.S_BFE_I32) -s_bfe_u64 = functools.partial(SOP2, SOP2Op.S_BFE_U64) -s_bfe_i64 = functools.partial(SOP2, SOP2Op.S_BFE_I64) -s_cbranch_g_fork = functools.partial(SOP2, SOP2Op.S_CBRANCH_G_FORK) -s_absdiff_i32 = functools.partial(SOP2, SOP2Op.S_ABSDIFF_I32) -s_mul_hi_u32 = functools.partial(SOP2, SOP2Op.S_MUL_HI_U32) -s_mul_hi_i32 = functools.partial(SOP2, SOP2Op.S_MUL_HI_I32) -s_lshl1_add_u32 = functools.partial(SOP2, SOP2Op.S_LSHL1_ADD_U32) -s_lshl2_add_u32 = functools.partial(SOP2, SOP2Op.S_LSHL2_ADD_U32) -s_lshl3_add_u32 = functools.partial(SOP2, SOP2Op.S_LSHL3_ADD_U32) -s_lshl4_add_u32 = functools.partial(SOP2, SOP2Op.S_LSHL4_ADD_U32) -s_pack_ll_b32_b16 = functools.partial(SOP2, SOP2Op.S_PACK_LL_B32_B16) -s_pack_lh_b32_b16 = functools.partial(SOP2, SOP2Op.S_PACK_LH_B32_B16) -s_pack_hh_b32_b16 = functools.partial(SOP2, SOP2Op.S_PACK_HH_B32_B16) -cdna4 = functools.partial(SOP2, SOP2Op.CDNA4) -s_cmp_eq_i32 = functools.partial(SOPC, SOPCOp.S_CMP_EQ_I32) -s_cmp_lg_i32 = functools.partial(SOPC, SOPCOp.S_CMP_LG_I32) -s_cmp_gt_i32 = functools.partial(SOPC, SOPCOp.S_CMP_GT_I32) -s_cmp_ge_i32 = functools.partial(SOPC, SOPCOp.S_CMP_GE_I32) -s_cmp_lt_i32 = functools.partial(SOPC, SOPCOp.S_CMP_LT_I32) -s_cmp_le_i32 = functools.partial(SOPC, SOPCOp.S_CMP_LE_I32) -s_cmp_eq_u32 = functools.partial(SOPC, SOPCOp.S_CMP_EQ_U32) -s_cmp_lg_u32 = functools.partial(SOPC, SOPCOp.S_CMP_LG_U32) -s_cmp_gt_u32 = functools.partial(SOPC, SOPCOp.S_CMP_GT_U32) -s_cmp_ge_u32 = functools.partial(SOPC, SOPCOp.S_CMP_GE_U32) -s_cmp_lt_u32 = functools.partial(SOPC, SOPCOp.S_CMP_LT_U32) -s_cmp_le_u32 = functools.partial(SOPC, SOPCOp.S_CMP_LE_U32) -s_bitcmp0_b32 = functools.partial(SOPC, SOPCOp.S_BITCMP0_B32) -s_bitcmp1_b32 = functools.partial(SOPC, SOPCOp.S_BITCMP1_B32) -s_bitcmp0_b64 = functools.partial(SOPC, SOPCOp.S_BITCMP0_B64) -s_bitcmp1_b64 = functools.partial(SOPC, SOPCOp.S_BITCMP1_B64) -s_setvskip = functools.partial(SOPC, SOPCOp.S_SETVSKIP) -s_set_gpr_idx_on = functools.partial(SOPC, SOPCOp.S_SET_GPR_IDX_ON) -s_cmp_eq_u64 = functools.partial(SOPC, SOPCOp.S_CMP_EQ_U64) -s_cmp_lg_u64 = functools.partial(SOPC, SOPCOp.S_CMP_LG_U64) -cdna4 = functools.partial(SOPC, SOPCOp.CDNA4) -s_movk_i32 = functools.partial(SOPK, SOPKOp.S_MOVK_I32) -s_cmovk_i32 = functools.partial(SOPK, SOPKOp.S_CMOVK_I32) -s_cmpk_eq_i32 = functools.partial(SOPK, SOPKOp.S_CMPK_EQ_I32) -s_cmpk_lg_i32 = functools.partial(SOPK, SOPKOp.S_CMPK_LG_I32) -s_cmpk_gt_i32 = functools.partial(SOPK, SOPKOp.S_CMPK_GT_I32) -s_cmpk_ge_i32 = functools.partial(SOPK, SOPKOp.S_CMPK_GE_I32) -s_cmpk_lt_i32 = functools.partial(SOPK, SOPKOp.S_CMPK_LT_I32) -s_cmpk_le_i32 = functools.partial(SOPK, SOPKOp.S_CMPK_LE_I32) -s_cmpk_eq_u32 = functools.partial(SOPK, SOPKOp.S_CMPK_EQ_U32) -s_cmpk_lg_u32 = functools.partial(SOPK, SOPKOp.S_CMPK_LG_U32) -s_cmpk_gt_u32 = functools.partial(SOPK, SOPKOp.S_CMPK_GT_U32) -s_cmpk_ge_u32 = functools.partial(SOPK, SOPKOp.S_CMPK_GE_U32) -s_cmpk_lt_u32 = functools.partial(SOPK, SOPKOp.S_CMPK_LT_U32) -s_cmpk_le_u32 = functools.partial(SOPK, SOPKOp.S_CMPK_LE_U32) -s_addk_i32 = functools.partial(SOPK, SOPKOp.S_ADDK_I32) -s_mulk_i32 = functools.partial(SOPK, SOPKOp.S_MULK_I32) -s_cbranch_i_fork = functools.partial(SOPK, SOPKOp.S_CBRANCH_I_FORK) -s_getreg_b32 = functools.partial(SOPK, SOPKOp.S_GETREG_B32) -s_setreg_b32 = functools.partial(SOPK, SOPKOp.S_SETREG_B32) -s_setreg_imm32_b32 = functools.partial(SOPK, SOPKOp.S_SETREG_IMM32_B32) -s_call_b64 = functools.partial(SOPK, SOPKOp.S_CALL_B64) -s_nop = functools.partial(SOPP, SOPPOp.S_NOP) -s_endpgm = functools.partial(SOPP, SOPPOp.S_ENDPGM) -s_branch = functools.partial(SOPP, SOPPOp.S_BRANCH) -s_wakeup = functools.partial(SOPP, SOPPOp.S_WAKEUP) -s_cbranch_scc0 = functools.partial(SOPP, SOPPOp.S_CBRANCH_SCC0) -s_cbranch_scc1 = functools.partial(SOPP, SOPPOp.S_CBRANCH_SCC1) -s_cbranch_vccz = functools.partial(SOPP, SOPPOp.S_CBRANCH_VCCZ) -s_cbranch_vccnz = functools.partial(SOPP, SOPPOp.S_CBRANCH_VCCNZ) -s_cbranch_execz = functools.partial(SOPP, SOPPOp.S_CBRANCH_EXECZ) -s_cbranch_execnz = functools.partial(SOPP, SOPPOp.S_CBRANCH_EXECNZ) -s_barrier = functools.partial(SOPP, SOPPOp.S_BARRIER) -s_setkill = functools.partial(SOPP, SOPPOp.S_SETKILL) -s_waitcnt = functools.partial(SOPP, SOPPOp.S_WAITCNT) -s_sethalt = functools.partial(SOPP, SOPPOp.S_SETHALT) -s_sleep = functools.partial(SOPP, SOPPOp.S_SLEEP) -s_setprio = functools.partial(SOPP, SOPPOp.S_SETPRIO) -s_sendmsg = functools.partial(SOPP, SOPPOp.S_SENDMSG) -s_sendmsghalt = functools.partial(SOPP, SOPPOp.S_SENDMSGHALT) -s_trap = functools.partial(SOPP, SOPPOp.S_TRAP) -s_icache_inv = functools.partial(SOPP, SOPPOp.S_ICACHE_INV) -s_incperflevel = functools.partial(SOPP, SOPPOp.S_INCPERFLEVEL) -s_decperflevel = functools.partial(SOPP, SOPPOp.S_DECPERFLEVEL) -s_ttracedata = functools.partial(SOPP, SOPPOp.S_TTRACEDATA) -s_cbranch_cdbgsys = functools.partial(SOPP, SOPPOp.S_CBRANCH_CDBGSYS) -s_cbranch_cdbguser = functools.partial(SOPP, SOPPOp.S_CBRANCH_CDBGUSER) -s_cbranch_cdbgsys_or_user = functools.partial(SOPP, SOPPOp.S_CBRANCH_CDBGSYS_OR_USER) -s_cbranch_cdbgsys_and_user = functools.partial(SOPP, SOPPOp.S_CBRANCH_CDBGSYS_AND_USER) -s_endpgm_saved = functools.partial(SOPP, SOPPOp.S_ENDPGM_SAVED) -s_set_gpr_idx_off = functools.partial(SOPP, SOPPOp.S_SET_GPR_IDX_OFF) -s_set_gpr_idx_mode = functools.partial(SOPP, SOPPOp.S_SET_GPR_IDX_MODE) -cdna4 = functools.partial(SOPP, SOPPOp.CDNA4) -v_nop_e32 = functools.partial(VOP1, VOP1Op.V_NOP) -v_mov_b32_e32 = functools.partial(VOP1, VOP1Op.V_MOV_B32) -v_readfirstlane_b32_e32 = functools.partial(VOP1, VOP1Op.V_READFIRSTLANE_B32) -v_cvt_i32_f64_e32 = functools.partial(VOP1, VOP1Op.V_CVT_I32_F64) -v_cvt_f64_i32_e32 = functools.partial(VOP1, VOP1Op.V_CVT_F64_I32) -v_cvt_f32_i32_e32 = functools.partial(VOP1, VOP1Op.V_CVT_F32_I32) -v_cvt_f32_u32_e32 = functools.partial(VOP1, VOP1Op.V_CVT_F32_U32) -v_cvt_u32_f32_e32 = functools.partial(VOP1, VOP1Op.V_CVT_U32_F32) -v_cvt_i32_f32_e32 = functools.partial(VOP1, VOP1Op.V_CVT_I32_F32) -v_cvt_f16_f32_e32 = functools.partial(VOP1, VOP1Op.V_CVT_F16_F32) -v_cvt_f32_f16_e32 = functools.partial(VOP1, VOP1Op.V_CVT_F32_F16) -v_cvt_rpi_i32_f32_e32 = functools.partial(VOP1, VOP1Op.V_CVT_RPI_I32_F32) -v_cvt_flr_i32_f32_e32 = functools.partial(VOP1, VOP1Op.V_CVT_FLR_I32_F32) -v_cvt_off_f32_i4_e32 = functools.partial(VOP1, VOP1Op.V_CVT_OFF_F32_I4) -v_cvt_f32_f64_e32 = functools.partial(VOP1, VOP1Op.V_CVT_F32_F64) -v_cvt_f64_f32_e32 = functools.partial(VOP1, VOP1Op.V_CVT_F64_F32) -v_cvt_f32_ubyte0_e32 = functools.partial(VOP1, VOP1Op.V_CVT_F32_UBYTE0) -v_cvt_f32_ubyte1_e32 = functools.partial(VOP1, VOP1Op.V_CVT_F32_UBYTE1) -v_cvt_f32_ubyte2_e32 = functools.partial(VOP1, VOP1Op.V_CVT_F32_UBYTE2) -v_cvt_f32_ubyte3_e32 = functools.partial(VOP1, VOP1Op.V_CVT_F32_UBYTE3) -v_cvt_u32_f64_e32 = functools.partial(VOP1, VOP1Op.V_CVT_U32_F64) -v_cvt_f64_u32_e32 = functools.partial(VOP1, VOP1Op.V_CVT_F64_U32) -v_trunc_f64_e32 = functools.partial(VOP1, VOP1Op.V_TRUNC_F64) -v_ceil_f64_e32 = functools.partial(VOP1, VOP1Op.V_CEIL_F64) -v_rndne_f64_e32 = functools.partial(VOP1, VOP1Op.V_RNDNE_F64) -v_floor_f64_e32 = functools.partial(VOP1, VOP1Op.V_FLOOR_F64) -v_fract_f32_e32 = functools.partial(VOP1, VOP1Op.V_FRACT_F32) -v_trunc_f32_e32 = functools.partial(VOP1, VOP1Op.V_TRUNC_F32) -v_ceil_f32_e32 = functools.partial(VOP1, VOP1Op.V_CEIL_F32) -v_rndne_f32_e32 = functools.partial(VOP1, VOP1Op.V_RNDNE_F32) -v_floor_f32_e32 = functools.partial(VOP1, VOP1Op.V_FLOOR_F32) -v_exp_f32_e32 = functools.partial(VOP1, VOP1Op.V_EXP_F32) -v_log_f32_e32 = functools.partial(VOP1, VOP1Op.V_LOG_F32) -v_rcp_f32_e32 = functools.partial(VOP1, VOP1Op.V_RCP_F32) -v_rcp_iflag_f32_e32 = functools.partial(VOP1, VOP1Op.V_RCP_IFLAG_F32) -v_rsq_f32_e32 = functools.partial(VOP1, VOP1Op.V_RSQ_F32) -v_rcp_f64_e32 = functools.partial(VOP1, VOP1Op.V_RCP_F64) -v_rsq_f64_e32 = functools.partial(VOP1, VOP1Op.V_RSQ_F64) -v_sqrt_f32_e32 = functools.partial(VOP1, VOP1Op.V_SQRT_F32) -v_sqrt_f64_e32 = functools.partial(VOP1, VOP1Op.V_SQRT_F64) -v_sin_f32_e32 = functools.partial(VOP1, VOP1Op.V_SIN_F32) -v_cos_f32_e32 = functools.partial(VOP1, VOP1Op.V_COS_F32) -v_not_b32_e32 = functools.partial(VOP1, VOP1Op.V_NOT_B32) -v_bfrev_b32_e32 = functools.partial(VOP1, VOP1Op.V_BFREV_B32) -v_ffbh_u32_e32 = functools.partial(VOP1, VOP1Op.V_FFBH_U32) -v_ffbl_b32_e32 = functools.partial(VOP1, VOP1Op.V_FFBL_B32) -v_ffbh_i32_e32 = functools.partial(VOP1, VOP1Op.V_FFBH_I32) -v_frexp_exp_i32_f64_e32 = functools.partial(VOP1, VOP1Op.V_FREXP_EXP_I32_F64) -v_frexp_mant_f64_e32 = functools.partial(VOP1, VOP1Op.V_FREXP_MANT_F64) -v_fract_f64_e32 = functools.partial(VOP1, VOP1Op.V_FRACT_F64) -v_frexp_exp_i32_f32_e32 = functools.partial(VOP1, VOP1Op.V_FREXP_EXP_I32_F32) -v_frexp_mant_f32_e32 = functools.partial(VOP1, VOP1Op.V_FREXP_MANT_F32) -v_clrexcp_e32 = functools.partial(VOP1, VOP1Op.V_CLREXCP) -v_mov_b64_e32 = functools.partial(VOP1, VOP1Op.V_MOV_B64) -v_cvt_f16_u16_e32 = functools.partial(VOP1, VOP1Op.V_CVT_F16_U16) -v_cvt_f16_i16_e32 = functools.partial(VOP1, VOP1Op.V_CVT_F16_I16) -v_cvt_u16_f16_e32 = functools.partial(VOP1, VOP1Op.V_CVT_U16_F16) -v_cvt_i16_f16_e32 = functools.partial(VOP1, VOP1Op.V_CVT_I16_F16) -v_rcp_f16_e32 = functools.partial(VOP1, VOP1Op.V_RCP_F16) -v_sqrt_f16_e32 = functools.partial(VOP1, VOP1Op.V_SQRT_F16) -v_rsq_f16_e32 = functools.partial(VOP1, VOP1Op.V_RSQ_F16) -v_log_f16_e32 = functools.partial(VOP1, VOP1Op.V_LOG_F16) -v_exp_f16_e32 = functools.partial(VOP1, VOP1Op.V_EXP_F16) -v_frexp_mant_f16_e32 = functools.partial(VOP1, VOP1Op.V_FREXP_MANT_F16) -v_frexp_exp_i16_f16_e32 = functools.partial(VOP1, VOP1Op.V_FREXP_EXP_I16_F16) -v_floor_f16_e32 = functools.partial(VOP1, VOP1Op.V_FLOOR_F16) -v_ceil_f16_e32 = functools.partial(VOP1, VOP1Op.V_CEIL_F16) -v_trunc_f16_e32 = functools.partial(VOP1, VOP1Op.V_TRUNC_F16) -v_rndne_f16_e32 = functools.partial(VOP1, VOP1Op.V_RNDNE_F16) -v_fract_f16_e32 = functools.partial(VOP1, VOP1Op.V_FRACT_F16) -v_sin_f16_e32 = functools.partial(VOP1, VOP1Op.V_SIN_F16) -v_cos_f16_e32 = functools.partial(VOP1, VOP1Op.V_COS_F16) -v_cvt_norm_i16_f16_e32 = functools.partial(VOP1, VOP1Op.V_CVT_NORM_I16_F16) -v_cvt_norm_u16_f16_e32 = functools.partial(VOP1, VOP1Op.V_CVT_NORM_U16_F16) -v_sat_pk_u8_i16_e32 = functools.partial(VOP1, VOP1Op.V_SAT_PK_U8_I16) -v_swap_b32_e32 = functools.partial(VOP1, VOP1Op.V_SWAP_B32) -v_accvgpr_mov_b32_e32 = functools.partial(VOP1, VOP1Op.V_ACCVGPR_MOV_B32) -v_cvt_f32_fp8_e32 = functools.partial(VOP1, VOP1Op.V_CVT_F32_FP8) -v_cvt_f32_bf8_e32 = functools.partial(VOP1, VOP1Op.V_CVT_F32_BF8) -v_cvt_pk_f32_fp8_e32 = functools.partial(VOP1, VOP1Op.V_CVT_PK_F32_FP8) -v_cvt_pk_f32_bf8_e32 = functools.partial(VOP1, VOP1Op.V_CVT_PK_F32_BF8) -v_prng_b32_e32 = functools.partial(VOP1, VOP1Op.V_PRNG_B32) -v_permlane16_swap_b32_e32 = functools.partial(VOP1, VOP1Op.V_PERMLANE16_SWAP_B32) -v_permlane32_swap_b32_e32 = functools.partial(VOP1, VOP1Op.V_PERMLANE32_SWAP_B32) -v_cvt_f32_bf16_e32 = functools.partial(VOP1, VOP1Op.V_CVT_F32_BF16) -cdna4_e32 = functools.partial(VOP1, VOP1Op.CDNA4) -v_cndmask_b32_e32 = functools.partial(VOP2, VOP2Op.V_CNDMASK_B32) -v_add_f32_e32 = functools.partial(VOP2, VOP2Op.V_ADD_F32) -v_sub_f32_e32 = functools.partial(VOP2, VOP2Op.V_SUB_F32) -v_subrev_f32_e32 = functools.partial(VOP2, VOP2Op.V_SUBREV_F32) -v_fmac_f64_e32 = functools.partial(VOP2, VOP2Op.V_FMAC_F64) -v_mul_f32_e32 = functools.partial(VOP2, VOP2Op.V_MUL_F32) -v_mul_i32_i24_e32 = functools.partial(VOP2, VOP2Op.V_MUL_I32_I24) -v_mul_hi_i32_i24_e32 = functools.partial(VOP2, VOP2Op.V_MUL_HI_I32_I24) -v_mul_u32_u24_e32 = functools.partial(VOP2, VOP2Op.V_MUL_U32_U24) -v_mul_hi_u32_u24_e32 = functools.partial(VOP2, VOP2Op.V_MUL_HI_U32_U24) -v_min_f32_e32 = functools.partial(VOP2, VOP2Op.V_MIN_F32) -v_max_f32_e32 = functools.partial(VOP2, VOP2Op.V_MAX_F32) -v_min_i32_e32 = functools.partial(VOP2, VOP2Op.V_MIN_I32) -v_max_i32_e32 = functools.partial(VOP2, VOP2Op.V_MAX_I32) -v_min_u32_e32 = functools.partial(VOP2, VOP2Op.V_MIN_U32) -v_max_u32_e32 = functools.partial(VOP2, VOP2Op.V_MAX_U32) -v_lshrrev_b32_e32 = functools.partial(VOP2, VOP2Op.V_LSHRREV_B32) -v_ashrrev_i32_e32 = functools.partial(VOP2, VOP2Op.V_ASHRREV_I32) -v_lshlrev_b32_e32 = functools.partial(VOP2, VOP2Op.V_LSHLREV_B32) -v_and_b32_e32 = functools.partial(VOP2, VOP2Op.V_AND_B32) -v_or_b32_e32 = functools.partial(VOP2, VOP2Op.V_OR_B32) -v_xor_b32_e32 = functools.partial(VOP2, VOP2Op.V_XOR_B32) -v_dot2c_f32_bf16_e32 = functools.partial(VOP2, VOP2Op.V_DOT2C_F32_BF16) -def v_fmamk_f32_e32(vdst, src0, K, vsrc1): return VOP2(VOP2Op.V_FMAMK_F32, vdst, src0, vsrc1, literal=K) -def v_fmaak_f32_e32(vdst, src0, vsrc1, K): return VOP2(VOP2Op.V_FMAAK_F32, vdst, src0, vsrc1, literal=K) -v_add_co_u32_e32 = functools.partial(VOP2, VOP2Op.V_ADD_CO_U32) -v_sub_co_u32_e32 = functools.partial(VOP2, VOP2Op.V_SUB_CO_U32) -v_subrev_co_u32_e32 = functools.partial(VOP2, VOP2Op.V_SUBREV_CO_U32) -v_addc_co_u32_e32 = functools.partial(VOP2, VOP2Op.V_ADDC_CO_U32) -v_subb_co_u32_e32 = functools.partial(VOP2, VOP2Op.V_SUBB_CO_U32) -v_subbrev_co_u32_e32 = functools.partial(VOP2, VOP2Op.V_SUBBREV_CO_U32) -v_add_f16_e32 = functools.partial(VOP2, VOP2Op.V_ADD_F16) -v_sub_f16_e32 = functools.partial(VOP2, VOP2Op.V_SUB_F16) -v_subrev_f16_e32 = functools.partial(VOP2, VOP2Op.V_SUBREV_F16) -v_mul_f16_e32 = functools.partial(VOP2, VOP2Op.V_MUL_F16) -v_mac_f16_e32 = functools.partial(VOP2, VOP2Op.V_MAC_F16) -v_madmk_f16_e32 = functools.partial(VOP2, VOP2Op.V_MADMK_F16) -v_madak_f16_e32 = functools.partial(VOP2, VOP2Op.V_MADAK_F16) -v_add_u16_e32 = functools.partial(VOP2, VOP2Op.V_ADD_U16) -v_sub_u16_e32 = functools.partial(VOP2, VOP2Op.V_SUB_U16) -v_subrev_u16_e32 = functools.partial(VOP2, VOP2Op.V_SUBREV_U16) -v_mul_lo_u16_e32 = functools.partial(VOP2, VOP2Op.V_MUL_LO_U16) -v_lshlrev_b16_e32 = functools.partial(VOP2, VOP2Op.V_LSHLREV_B16) -v_lshrrev_b16_e32 = functools.partial(VOP2, VOP2Op.V_LSHRREV_B16) -v_ashrrev_i16_e32 = functools.partial(VOP2, VOP2Op.V_ASHRREV_I16) -v_max_f16_e32 = functools.partial(VOP2, VOP2Op.V_MAX_F16) -v_min_f16_e32 = functools.partial(VOP2, VOP2Op.V_MIN_F16) -v_max_u16_e32 = functools.partial(VOP2, VOP2Op.V_MAX_U16) -v_max_i16_e32 = functools.partial(VOP2, VOP2Op.V_MAX_I16) -v_min_u16_e32 = functools.partial(VOP2, VOP2Op.V_MIN_U16) -v_min_i16_e32 = functools.partial(VOP2, VOP2Op.V_MIN_I16) -v_ldexp_f16_e32 = functools.partial(VOP2, VOP2Op.V_LDEXP_F16) -v_add_u32_e32 = functools.partial(VOP2, VOP2Op.V_ADD_U32) -v_sub_u32_e32 = functools.partial(VOP2, VOP2Op.V_SUB_U32) -v_subrev_u32_e32 = functools.partial(VOP2, VOP2Op.V_SUBREV_U32) -v_dot2c_f32_f16_e32 = functools.partial(VOP2, VOP2Op.V_DOT2C_F32_F16) -v_dot2c_i32_i16_e32 = functools.partial(VOP2, VOP2Op.V_DOT2C_I32_I16) -v_dot4c_i32_i8_e32 = functools.partial(VOP2, VOP2Op.V_DOT4C_I32_I8) -v_dot8c_i32_i4_e32 = functools.partial(VOP2, VOP2Op.V_DOT8C_I32_I4) -v_fmac_f32_e32 = functools.partial(VOP2, VOP2Op.V_FMAC_F32) -v_pk_fmac_f16_e32 = functools.partial(VOP2, VOP2Op.V_PK_FMAC_F16) -v_xnor_b32_e32 = functools.partial(VOP2, VOP2Op.V_XNOR_B32) -cdna4_e32 = functools.partial(VOP2, VOP2Op.CDNA4) -v_cmp_class_f32 = functools.partial(VOP3A, VOP3AOp.V_CMP_CLASS_F32) -v_cmpx_class_f32 = functools.partial(VOP3A, VOP3AOp.V_CMPX_CLASS_F32) -v_cmp_class_f64 = functools.partial(VOP3A, VOP3AOp.V_CMP_CLASS_F64) -v_cmpx_class_f64 = functools.partial(VOP3A, VOP3AOp.V_CMPX_CLASS_F64) -v_cmp_class_f16 = functools.partial(VOP3A, VOP3AOp.V_CMP_CLASS_F16) -v_cmpx_class_f16 = functools.partial(VOP3A, VOP3AOp.V_CMPX_CLASS_F16) -v_cmp_f_f16 = functools.partial(VOP3A, VOP3AOp.V_CMP_F_F16) -v_cmp_lt_f16 = functools.partial(VOP3A, VOP3AOp.V_CMP_LT_F16) -v_cmp_eq_f16 = functools.partial(VOP3A, VOP3AOp.V_CMP_EQ_F16) -v_cmp_le_f16 = functools.partial(VOP3A, VOP3AOp.V_CMP_LE_F16) -v_cmp_gt_f16 = functools.partial(VOP3A, VOP3AOp.V_CMP_GT_F16) -v_cmp_lg_f16 = functools.partial(VOP3A, VOP3AOp.V_CMP_LG_F16) -v_cmp_ge_f16 = functools.partial(VOP3A, VOP3AOp.V_CMP_GE_F16) -v_cmp_o_f16 = functools.partial(VOP3A, VOP3AOp.V_CMP_O_F16) -v_cmp_u_f16 = functools.partial(VOP3A, VOP3AOp.V_CMP_U_F16) -v_cmp_nge_f16 = functools.partial(VOP3A, VOP3AOp.V_CMP_NGE_F16) -v_cmp_nlg_f16 = functools.partial(VOP3A, VOP3AOp.V_CMP_NLG_F16) -v_cmp_ngt_f16 = functools.partial(VOP3A, VOP3AOp.V_CMP_NGT_F16) -v_cmp_nle_f16 = functools.partial(VOP3A, VOP3AOp.V_CMP_NLE_F16) -v_cmp_neq_f16 = functools.partial(VOP3A, VOP3AOp.V_CMP_NEQ_F16) -v_cmp_nlt_f16 = functools.partial(VOP3A, VOP3AOp.V_CMP_NLT_F16) -v_cmp_tru_f16 = functools.partial(VOP3A, VOP3AOp.V_CMP_TRU_F16) -v_cmpx_f_f16 = functools.partial(VOP3A, VOP3AOp.V_CMPX_F_F16) -v_cmpx_lt_f16 = functools.partial(VOP3A, VOP3AOp.V_CMPX_LT_F16) -v_cmpx_eq_f16 = functools.partial(VOP3A, VOP3AOp.V_CMPX_EQ_F16) -v_cmpx_le_f16 = functools.partial(VOP3A, VOP3AOp.V_CMPX_LE_F16) -v_cmpx_gt_f16 = functools.partial(VOP3A, VOP3AOp.V_CMPX_GT_F16) -v_cmpx_lg_f16 = functools.partial(VOP3A, VOP3AOp.V_CMPX_LG_F16) -v_cmpx_ge_f16 = functools.partial(VOP3A, VOP3AOp.V_CMPX_GE_F16) -v_cmpx_o_f16 = functools.partial(VOP3A, VOP3AOp.V_CMPX_O_F16) -v_cmpx_u_f16 = functools.partial(VOP3A, VOP3AOp.V_CMPX_U_F16) -v_cmpx_nge_f16 = functools.partial(VOP3A, VOP3AOp.V_CMPX_NGE_F16) -v_cmpx_nlg_f16 = functools.partial(VOP3A, VOP3AOp.V_CMPX_NLG_F16) -v_cmpx_ngt_f16 = functools.partial(VOP3A, VOP3AOp.V_CMPX_NGT_F16) -v_cmpx_nle_f16 = functools.partial(VOP3A, VOP3AOp.V_CMPX_NLE_F16) -v_cmpx_neq_f16 = functools.partial(VOP3A, VOP3AOp.V_CMPX_NEQ_F16) -v_cmpx_nlt_f16 = functools.partial(VOP3A, VOP3AOp.V_CMPX_NLT_F16) -v_cmpx_tru_f16 = functools.partial(VOP3A, VOP3AOp.V_CMPX_TRU_F16) -v_cmp_f_f32 = functools.partial(VOP3A, VOP3AOp.V_CMP_F_F32) -v_cmp_lt_f32 = functools.partial(VOP3A, VOP3AOp.V_CMP_LT_F32) -v_cmp_eq_f32 = functools.partial(VOP3A, VOP3AOp.V_CMP_EQ_F32) -v_cmp_le_f32 = functools.partial(VOP3A, VOP3AOp.V_CMP_LE_F32) -v_cmp_gt_f32 = functools.partial(VOP3A, VOP3AOp.V_CMP_GT_F32) -v_cmp_lg_f32 = functools.partial(VOP3A, VOP3AOp.V_CMP_LG_F32) -v_cmp_ge_f32 = functools.partial(VOP3A, VOP3AOp.V_CMP_GE_F32) -v_cmp_o_f32 = functools.partial(VOP3A, VOP3AOp.V_CMP_O_F32) -v_cmp_u_f32 = functools.partial(VOP3A, VOP3AOp.V_CMP_U_F32) -v_cmp_nge_f32 = functools.partial(VOP3A, VOP3AOp.V_CMP_NGE_F32) -v_cmp_nlg_f32 = functools.partial(VOP3A, VOP3AOp.V_CMP_NLG_F32) -v_cmp_ngt_f32 = functools.partial(VOP3A, VOP3AOp.V_CMP_NGT_F32) -v_cmp_nle_f32 = functools.partial(VOP3A, VOP3AOp.V_CMP_NLE_F32) -v_cmp_neq_f32 = functools.partial(VOP3A, VOP3AOp.V_CMP_NEQ_F32) -v_cmp_nlt_f32 = functools.partial(VOP3A, VOP3AOp.V_CMP_NLT_F32) -v_cmp_tru_f32 = functools.partial(VOP3A, VOP3AOp.V_CMP_TRU_F32) -v_cmpx_f_f32 = functools.partial(VOP3A, VOP3AOp.V_CMPX_F_F32) -v_cmpx_lt_f32 = functools.partial(VOP3A, VOP3AOp.V_CMPX_LT_F32) -v_cmpx_eq_f32 = functools.partial(VOP3A, VOP3AOp.V_CMPX_EQ_F32) -v_cmpx_le_f32 = functools.partial(VOP3A, VOP3AOp.V_CMPX_LE_F32) -v_cmpx_gt_f32 = functools.partial(VOP3A, VOP3AOp.V_CMPX_GT_F32) -v_cmpx_lg_f32 = functools.partial(VOP3A, VOP3AOp.V_CMPX_LG_F32) -v_cmpx_ge_f32 = functools.partial(VOP3A, VOP3AOp.V_CMPX_GE_F32) -v_cmpx_o_f32 = functools.partial(VOP3A, VOP3AOp.V_CMPX_O_F32) -v_cmpx_u_f32 = functools.partial(VOP3A, VOP3AOp.V_CMPX_U_F32) -v_cmpx_nge_f32 = functools.partial(VOP3A, VOP3AOp.V_CMPX_NGE_F32) -v_cmpx_nlg_f32 = functools.partial(VOP3A, VOP3AOp.V_CMPX_NLG_F32) -v_cmpx_ngt_f32 = functools.partial(VOP3A, VOP3AOp.V_CMPX_NGT_F32) -v_cmpx_nle_f32 = functools.partial(VOP3A, VOP3AOp.V_CMPX_NLE_F32) -v_cmpx_neq_f32 = functools.partial(VOP3A, VOP3AOp.V_CMPX_NEQ_F32) -v_cmpx_nlt_f32 = functools.partial(VOP3A, VOP3AOp.V_CMPX_NLT_F32) -v_cmpx_tru_f32 = functools.partial(VOP3A, VOP3AOp.V_CMPX_TRU_F32) -v_cmp_f_f64 = functools.partial(VOP3A, VOP3AOp.V_CMP_F_F64) -v_cmp_lt_f64 = functools.partial(VOP3A, VOP3AOp.V_CMP_LT_F64) -v_cmp_eq_f64 = functools.partial(VOP3A, VOP3AOp.V_CMP_EQ_F64) -v_cmp_le_f64 = functools.partial(VOP3A, VOP3AOp.V_CMP_LE_F64) -v_cmp_gt_f64 = functools.partial(VOP3A, VOP3AOp.V_CMP_GT_F64) -v_cmp_lg_f64 = functools.partial(VOP3A, VOP3AOp.V_CMP_LG_F64) -v_cmp_ge_f64 = functools.partial(VOP3A, VOP3AOp.V_CMP_GE_F64) -v_cmp_o_f64 = functools.partial(VOP3A, VOP3AOp.V_CMP_O_F64) -v_cmp_u_f64 = functools.partial(VOP3A, VOP3AOp.V_CMP_U_F64) -v_cmp_nge_f64 = functools.partial(VOP3A, VOP3AOp.V_CMP_NGE_F64) -v_cmp_nlg_f64 = functools.partial(VOP3A, VOP3AOp.V_CMP_NLG_F64) -v_cmp_ngt_f64 = functools.partial(VOP3A, VOP3AOp.V_CMP_NGT_F64) -v_cmp_nle_f64 = functools.partial(VOP3A, VOP3AOp.V_CMP_NLE_F64) -v_cmp_neq_f64 = functools.partial(VOP3A, VOP3AOp.V_CMP_NEQ_F64) -v_cmp_nlt_f64 = functools.partial(VOP3A, VOP3AOp.V_CMP_NLT_F64) -v_cmp_tru_f64 = functools.partial(VOP3A, VOP3AOp.V_CMP_TRU_F64) -v_cmpx_f_f64 = functools.partial(VOP3A, VOP3AOp.V_CMPX_F_F64) -v_cmpx_lt_f64 = functools.partial(VOP3A, VOP3AOp.V_CMPX_LT_F64) -v_cmpx_eq_f64 = functools.partial(VOP3A, VOP3AOp.V_CMPX_EQ_F64) -v_cmpx_le_f64 = functools.partial(VOP3A, VOP3AOp.V_CMPX_LE_F64) -v_cmpx_gt_f64 = functools.partial(VOP3A, VOP3AOp.V_CMPX_GT_F64) -v_cmpx_lg_f64 = functools.partial(VOP3A, VOP3AOp.V_CMPX_LG_F64) -v_cmpx_ge_f64 = functools.partial(VOP3A, VOP3AOp.V_CMPX_GE_F64) -v_cmpx_o_f64 = functools.partial(VOP3A, VOP3AOp.V_CMPX_O_F64) -v_cmpx_u_f64 = functools.partial(VOP3A, VOP3AOp.V_CMPX_U_F64) -v_cmpx_nge_f64 = functools.partial(VOP3A, VOP3AOp.V_CMPX_NGE_F64) -v_cmpx_nlg_f64 = functools.partial(VOP3A, VOP3AOp.V_CMPX_NLG_F64) -v_cmpx_ngt_f64 = functools.partial(VOP3A, VOP3AOp.V_CMPX_NGT_F64) -v_cmpx_nle_f64 = functools.partial(VOP3A, VOP3AOp.V_CMPX_NLE_F64) -v_cmpx_neq_f64 = functools.partial(VOP3A, VOP3AOp.V_CMPX_NEQ_F64) -v_cmpx_nlt_f64 = functools.partial(VOP3A, VOP3AOp.V_CMPX_NLT_F64) -v_cmpx_tru_f64 = functools.partial(VOP3A, VOP3AOp.V_CMPX_TRU_F64) -v_cmp_f_i16 = functools.partial(VOP3A, VOP3AOp.V_CMP_F_I16) -v_cmp_lt_i16 = functools.partial(VOP3A, VOP3AOp.V_CMP_LT_I16) -v_cmp_eq_i16 = functools.partial(VOP3A, VOP3AOp.V_CMP_EQ_I16) -v_cmp_le_i16 = functools.partial(VOP3A, VOP3AOp.V_CMP_LE_I16) -v_cmp_gt_i16 = functools.partial(VOP3A, VOP3AOp.V_CMP_GT_I16) -v_cmp_ne_i16 = functools.partial(VOP3A, VOP3AOp.V_CMP_NE_I16) -v_cmp_ge_i16 = functools.partial(VOP3A, VOP3AOp.V_CMP_GE_I16) -v_cmp_t_i16 = functools.partial(VOP3A, VOP3AOp.V_CMP_T_I16) -v_cmp_f_u16 = functools.partial(VOP3A, VOP3AOp.V_CMP_F_U16) -v_cmp_lt_u16 = functools.partial(VOP3A, VOP3AOp.V_CMP_LT_U16) -v_cmp_eq_u16 = functools.partial(VOP3A, VOP3AOp.V_CMP_EQ_U16) -v_cmp_le_u16 = functools.partial(VOP3A, VOP3AOp.V_CMP_LE_U16) -v_cmp_gt_u16 = functools.partial(VOP3A, VOP3AOp.V_CMP_GT_U16) -v_cmp_ne_u16 = functools.partial(VOP3A, VOP3AOp.V_CMP_NE_U16) -v_cmp_ge_u16 = functools.partial(VOP3A, VOP3AOp.V_CMP_GE_U16) -v_cmp_t_u16 = functools.partial(VOP3A, VOP3AOp.V_CMP_T_U16) -v_cmpx_f_i16 = functools.partial(VOP3A, VOP3AOp.V_CMPX_F_I16) -v_cmpx_lt_i16 = functools.partial(VOP3A, VOP3AOp.V_CMPX_LT_I16) -v_cmpx_eq_i16 = functools.partial(VOP3A, VOP3AOp.V_CMPX_EQ_I16) -v_cmpx_le_i16 = functools.partial(VOP3A, VOP3AOp.V_CMPX_LE_I16) -v_cmpx_gt_i16 = functools.partial(VOP3A, VOP3AOp.V_CMPX_GT_I16) -v_cmpx_ne_i16 = functools.partial(VOP3A, VOP3AOp.V_CMPX_NE_I16) -v_cmpx_ge_i16 = functools.partial(VOP3A, VOP3AOp.V_CMPX_GE_I16) -v_cmpx_t_i16 = functools.partial(VOP3A, VOP3AOp.V_CMPX_T_I16) -v_cmpx_f_u16 = functools.partial(VOP3A, VOP3AOp.V_CMPX_F_U16) -v_cmpx_lt_u16 = functools.partial(VOP3A, VOP3AOp.V_CMPX_LT_U16) -v_cmpx_eq_u16 = functools.partial(VOP3A, VOP3AOp.V_CMPX_EQ_U16) -v_cmpx_le_u16 = functools.partial(VOP3A, VOP3AOp.V_CMPX_LE_U16) -v_cmpx_gt_u16 = functools.partial(VOP3A, VOP3AOp.V_CMPX_GT_U16) -v_cmpx_ne_u16 = functools.partial(VOP3A, VOP3AOp.V_CMPX_NE_U16) -v_cmpx_ge_u16 = functools.partial(VOP3A, VOP3AOp.V_CMPX_GE_U16) -v_cmpx_t_u16 = functools.partial(VOP3A, VOP3AOp.V_CMPX_T_U16) -v_cmp_f_i32 = functools.partial(VOP3A, VOP3AOp.V_CMP_F_I32) -v_cmp_lt_i32 = functools.partial(VOP3A, VOP3AOp.V_CMP_LT_I32) -v_cmp_eq_i32 = functools.partial(VOP3A, VOP3AOp.V_CMP_EQ_I32) -v_cmp_le_i32 = functools.partial(VOP3A, VOP3AOp.V_CMP_LE_I32) -v_cmp_gt_i32 = functools.partial(VOP3A, VOP3AOp.V_CMP_GT_I32) -v_cmp_ne_i32 = functools.partial(VOP3A, VOP3AOp.V_CMP_NE_I32) -v_cmp_ge_i32 = functools.partial(VOP3A, VOP3AOp.V_CMP_GE_I32) -v_cmp_t_i32 = functools.partial(VOP3A, VOP3AOp.V_CMP_T_I32) -v_cmp_f_u32 = functools.partial(VOP3A, VOP3AOp.V_CMP_F_U32) -v_cmp_lt_u32 = functools.partial(VOP3A, VOP3AOp.V_CMP_LT_U32) -v_cmp_eq_u32 = functools.partial(VOP3A, VOP3AOp.V_CMP_EQ_U32) -v_cmp_le_u32 = functools.partial(VOP3A, VOP3AOp.V_CMP_LE_U32) -v_cmp_gt_u32 = functools.partial(VOP3A, VOP3AOp.V_CMP_GT_U32) -v_cmp_ne_u32 = functools.partial(VOP3A, VOP3AOp.V_CMP_NE_U32) -v_cmp_ge_u32 = functools.partial(VOP3A, VOP3AOp.V_CMP_GE_U32) -v_cmp_t_u32 = functools.partial(VOP3A, VOP3AOp.V_CMP_T_U32) -v_cmpx_f_i32 = functools.partial(VOP3A, VOP3AOp.V_CMPX_F_I32) -v_cmpx_lt_i32 = functools.partial(VOP3A, VOP3AOp.V_CMPX_LT_I32) -v_cmpx_eq_i32 = functools.partial(VOP3A, VOP3AOp.V_CMPX_EQ_I32) -v_cmpx_le_i32 = functools.partial(VOP3A, VOP3AOp.V_CMPX_LE_I32) -v_cmpx_gt_i32 = functools.partial(VOP3A, VOP3AOp.V_CMPX_GT_I32) -v_cmpx_ne_i32 = functools.partial(VOP3A, VOP3AOp.V_CMPX_NE_I32) -v_cmpx_ge_i32 = functools.partial(VOP3A, VOP3AOp.V_CMPX_GE_I32) -v_cmpx_t_i32 = functools.partial(VOP3A, VOP3AOp.V_CMPX_T_I32) -v_cmpx_f_u32 = functools.partial(VOP3A, VOP3AOp.V_CMPX_F_U32) -v_cmpx_lt_u32 = functools.partial(VOP3A, VOP3AOp.V_CMPX_LT_U32) -v_cmpx_eq_u32 = functools.partial(VOP3A, VOP3AOp.V_CMPX_EQ_U32) -v_cmpx_le_u32 = functools.partial(VOP3A, VOP3AOp.V_CMPX_LE_U32) -v_cmpx_gt_u32 = functools.partial(VOP3A, VOP3AOp.V_CMPX_GT_U32) -v_cmpx_ne_u32 = functools.partial(VOP3A, VOP3AOp.V_CMPX_NE_U32) -v_cmpx_ge_u32 = functools.partial(VOP3A, VOP3AOp.V_CMPX_GE_U32) -v_cmpx_t_u32 = functools.partial(VOP3A, VOP3AOp.V_CMPX_T_U32) -v_cmp_f_i64 = functools.partial(VOP3A, VOP3AOp.V_CMP_F_I64) -v_cmp_lt_i64 = functools.partial(VOP3A, VOP3AOp.V_CMP_LT_I64) -v_cmp_eq_i64 = functools.partial(VOP3A, VOP3AOp.V_CMP_EQ_I64) -v_cmp_le_i64 = functools.partial(VOP3A, VOP3AOp.V_CMP_LE_I64) -v_cmp_gt_i64 = functools.partial(VOP3A, VOP3AOp.V_CMP_GT_I64) -v_cmp_ne_i64 = functools.partial(VOP3A, VOP3AOp.V_CMP_NE_I64) -v_cmp_ge_i64 = functools.partial(VOP3A, VOP3AOp.V_CMP_GE_I64) -v_cmp_t_i64 = functools.partial(VOP3A, VOP3AOp.V_CMP_T_I64) -v_cmp_f_u64 = functools.partial(VOP3A, VOP3AOp.V_CMP_F_U64) -v_cmp_lt_u64 = functools.partial(VOP3A, VOP3AOp.V_CMP_LT_U64) -v_cmp_eq_u64 = functools.partial(VOP3A, VOP3AOp.V_CMP_EQ_U64) -v_cmp_le_u64 = functools.partial(VOP3A, VOP3AOp.V_CMP_LE_U64) -v_cmp_gt_u64 = functools.partial(VOP3A, VOP3AOp.V_CMP_GT_U64) -v_cmp_ne_u64 = functools.partial(VOP3A, VOP3AOp.V_CMP_NE_U64) -v_cmp_ge_u64 = functools.partial(VOP3A, VOP3AOp.V_CMP_GE_U64) -v_cmp_t_u64 = functools.partial(VOP3A, VOP3AOp.V_CMP_T_U64) -v_cmpx_f_i64 = functools.partial(VOP3A, VOP3AOp.V_CMPX_F_I64) -v_cmpx_lt_i64 = functools.partial(VOP3A, VOP3AOp.V_CMPX_LT_I64) -v_cmpx_eq_i64 = functools.partial(VOP3A, VOP3AOp.V_CMPX_EQ_I64) -v_cmpx_le_i64 = functools.partial(VOP3A, VOP3AOp.V_CMPX_LE_I64) -v_cmpx_gt_i64 = functools.partial(VOP3A, VOP3AOp.V_CMPX_GT_I64) -v_cmpx_ne_i64 = functools.partial(VOP3A, VOP3AOp.V_CMPX_NE_I64) -v_cmpx_ge_i64 = functools.partial(VOP3A, VOP3AOp.V_CMPX_GE_I64) -v_cmpx_t_i64 = functools.partial(VOP3A, VOP3AOp.V_CMPX_T_I64) -v_cmpx_f_u64 = functools.partial(VOP3A, VOP3AOp.V_CMPX_F_U64) -v_cmpx_lt_u64 = functools.partial(VOP3A, VOP3AOp.V_CMPX_LT_U64) -v_cmpx_eq_u64 = functools.partial(VOP3A, VOP3AOp.V_CMPX_EQ_U64) -v_cmpx_le_u64 = functools.partial(VOP3A, VOP3AOp.V_CMPX_LE_U64) -v_cmpx_gt_u64 = functools.partial(VOP3A, VOP3AOp.V_CMPX_GT_U64) -v_cmpx_ne_u64 = functools.partial(VOP3A, VOP3AOp.V_CMPX_NE_U64) -v_cmpx_ge_u64 = functools.partial(VOP3A, VOP3AOp.V_CMPX_GE_U64) -v_cmpx_t_u64 = functools.partial(VOP3A, VOP3AOp.V_CMPX_T_U64) -v_cndmask_b32 = functools.partial(VOP3A, VOP3AOp.V_CNDMASK_B32) -v_add_f32 = functools.partial(VOP3A, VOP3AOp.V_ADD_F32) -v_sub_f32 = functools.partial(VOP3A, VOP3AOp.V_SUB_F32) -v_subrev_f32 = functools.partial(VOP3A, VOP3AOp.V_SUBREV_F32) -v_fmac_f64 = functools.partial(VOP3A, VOP3AOp.V_FMAC_F64) -v_mul_f32 = functools.partial(VOP3A, VOP3AOp.V_MUL_F32) -v_mul_i32_i24 = functools.partial(VOP3A, VOP3AOp.V_MUL_I32_I24) -v_mul_hi_i32_i24 = functools.partial(VOP3A, VOP3AOp.V_MUL_HI_I32_I24) -v_mul_u32_u24 = functools.partial(VOP3A, VOP3AOp.V_MUL_U32_U24) -v_mul_hi_u32_u24 = functools.partial(VOP3A, VOP3AOp.V_MUL_HI_U32_U24) -v_min_f32 = functools.partial(VOP3A, VOP3AOp.V_MIN_F32) -v_max_f32 = functools.partial(VOP3A, VOP3AOp.V_MAX_F32) -v_min_i32 = functools.partial(VOP3A, VOP3AOp.V_MIN_I32) -v_max_i32 = functools.partial(VOP3A, VOP3AOp.V_MAX_I32) -v_min_u32 = functools.partial(VOP3A, VOP3AOp.V_MIN_U32) -v_max_u32 = functools.partial(VOP3A, VOP3AOp.V_MAX_U32) -v_lshrrev_b32 = functools.partial(VOP3A, VOP3AOp.V_LSHRREV_B32) -v_ashrrev_i32 = functools.partial(VOP3A, VOP3AOp.V_ASHRREV_I32) -v_lshlrev_b32 = functools.partial(VOP3A, VOP3AOp.V_LSHLREV_B32) -v_and_b32 = functools.partial(VOP3A, VOP3AOp.V_AND_B32) -v_or_b32 = functools.partial(VOP3A, VOP3AOp.V_OR_B32) -v_xor_b32 = functools.partial(VOP3A, VOP3AOp.V_XOR_B32) -v_dot2c_f32_bf16 = functools.partial(VOP3A, VOP3AOp.V_DOT2C_F32_BF16) -v_add_f16 = functools.partial(VOP3A, VOP3AOp.V_ADD_F16) -v_sub_f16 = functools.partial(VOP3A, VOP3AOp.V_SUB_F16) -v_subrev_f16 = functools.partial(VOP3A, VOP3AOp.V_SUBREV_F16) -v_mul_f16 = functools.partial(VOP3A, VOP3AOp.V_MUL_F16) -v_mac_f16 = functools.partial(VOP3A, VOP3AOp.V_MAC_F16) -v_add_u16 = functools.partial(VOP3A, VOP3AOp.V_ADD_U16) -v_sub_u16 = functools.partial(VOP3A, VOP3AOp.V_SUB_U16) -v_subrev_u16 = functools.partial(VOP3A, VOP3AOp.V_SUBREV_U16) -v_mul_lo_u16 = functools.partial(VOP3A, VOP3AOp.V_MUL_LO_U16) -v_lshlrev_b16 = functools.partial(VOP3A, VOP3AOp.V_LSHLREV_B16) -v_lshrrev_b16 = functools.partial(VOP3A, VOP3AOp.V_LSHRREV_B16) -v_ashrrev_i16 = functools.partial(VOP3A, VOP3AOp.V_ASHRREV_I16) -v_max_f16 = functools.partial(VOP3A, VOP3AOp.V_MAX_F16) -v_min_f16 = functools.partial(VOP3A, VOP3AOp.V_MIN_F16) -v_max_u16 = functools.partial(VOP3A, VOP3AOp.V_MAX_U16) -v_max_i16 = functools.partial(VOP3A, VOP3AOp.V_MAX_I16) -v_min_u16 = functools.partial(VOP3A, VOP3AOp.V_MIN_U16) -v_min_i16 = functools.partial(VOP3A, VOP3AOp.V_MIN_I16) -v_ldexp_f16 = functools.partial(VOP3A, VOP3AOp.V_LDEXP_F16) -v_add_u32 = functools.partial(VOP3A, VOP3AOp.V_ADD_U32) -v_sub_u32 = functools.partial(VOP3A, VOP3AOp.V_SUB_U32) -v_subrev_u32 = functools.partial(VOP3A, VOP3AOp.V_SUBREV_U32) -v_dot2c_f32_f16 = functools.partial(VOP3A, VOP3AOp.V_DOT2C_F32_F16) -v_dot2c_i32_i16 = functools.partial(VOP3A, VOP3AOp.V_DOT2C_I32_I16) -v_dot4c_i32_i8 = functools.partial(VOP3A, VOP3AOp.V_DOT4C_I32_I8) -v_dot8c_i32_i4 = functools.partial(VOP3A, VOP3AOp.V_DOT8C_I32_I4) -v_fmac_f32 = functools.partial(VOP3A, VOP3AOp.V_FMAC_F32) -v_pk_fmac_f16 = functools.partial(VOP3A, VOP3AOp.V_PK_FMAC_F16) -v_xnor_b32 = functools.partial(VOP3A, VOP3AOp.V_XNOR_B32) -v_nop = functools.partial(VOP3A, VOP3AOp.V_NOP) -v_mov_b32 = functools.partial(VOP3A, VOP3AOp.V_MOV_B32) -v_readfirstlane_b32 = functools.partial(VOP3A, VOP3AOp.V_READFIRSTLANE_B32) -v_cvt_i32_f64 = functools.partial(VOP3A, VOP3AOp.V_CVT_I32_F64) -v_cvt_f64_i32 = functools.partial(VOP3A, VOP3AOp.V_CVT_F64_I32) -v_cvt_f32_i32 = functools.partial(VOP3A, VOP3AOp.V_CVT_F32_I32) -v_cvt_f32_u32 = functools.partial(VOP3A, VOP3AOp.V_CVT_F32_U32) -v_cvt_u32_f32 = functools.partial(VOP3A, VOP3AOp.V_CVT_U32_F32) -v_cvt_i32_f32 = functools.partial(VOP3A, VOP3AOp.V_CVT_I32_F32) -v_cvt_f16_f32 = functools.partial(VOP3A, VOP3AOp.V_CVT_F16_F32) -v_cvt_f32_f16 = functools.partial(VOP3A, VOP3AOp.V_CVT_F32_F16) -v_cvt_rpi_i32_f32 = functools.partial(VOP3A, VOP3AOp.V_CVT_RPI_I32_F32) -v_cvt_flr_i32_f32 = functools.partial(VOP3A, VOP3AOp.V_CVT_FLR_I32_F32) -v_cvt_off_f32_i4 = functools.partial(VOP3A, VOP3AOp.V_CVT_OFF_F32_I4) -v_cvt_f32_f64 = functools.partial(VOP3A, VOP3AOp.V_CVT_F32_F64) -v_cvt_f64_f32 = functools.partial(VOP3A, VOP3AOp.V_CVT_F64_F32) -v_cvt_f32_ubyte0 = functools.partial(VOP3A, VOP3AOp.V_CVT_F32_UBYTE0) -v_cvt_f32_ubyte1 = functools.partial(VOP3A, VOP3AOp.V_CVT_F32_UBYTE1) -v_cvt_f32_ubyte2 = functools.partial(VOP3A, VOP3AOp.V_CVT_F32_UBYTE2) -v_cvt_f32_ubyte3 = functools.partial(VOP3A, VOP3AOp.V_CVT_F32_UBYTE3) -v_cvt_u32_f64 = functools.partial(VOP3A, VOP3AOp.V_CVT_U32_F64) -v_cvt_f64_u32 = functools.partial(VOP3A, VOP3AOp.V_CVT_F64_U32) -v_trunc_f64 = functools.partial(VOP3A, VOP3AOp.V_TRUNC_F64) -v_ceil_f64 = functools.partial(VOP3A, VOP3AOp.V_CEIL_F64) -v_rndne_f64 = functools.partial(VOP3A, VOP3AOp.V_RNDNE_F64) -v_floor_f64 = functools.partial(VOP3A, VOP3AOp.V_FLOOR_F64) -v_fract_f32 = functools.partial(VOP3A, VOP3AOp.V_FRACT_F32) -v_trunc_f32 = functools.partial(VOP3A, VOP3AOp.V_TRUNC_F32) -v_ceil_f32 = functools.partial(VOP3A, VOP3AOp.V_CEIL_F32) -v_rndne_f32 = functools.partial(VOP3A, VOP3AOp.V_RNDNE_F32) -v_floor_f32 = functools.partial(VOP3A, VOP3AOp.V_FLOOR_F32) -v_exp_f32 = functools.partial(VOP3A, VOP3AOp.V_EXP_F32) -v_log_f32 = functools.partial(VOP3A, VOP3AOp.V_LOG_F32) -v_rcp_f32 = functools.partial(VOP3A, VOP3AOp.V_RCP_F32) -v_rcp_iflag_f32 = functools.partial(VOP3A, VOP3AOp.V_RCP_IFLAG_F32) -v_rsq_f32 = functools.partial(VOP3A, VOP3AOp.V_RSQ_F32) -v_rcp_f64 = functools.partial(VOP3A, VOP3AOp.V_RCP_F64) -v_rsq_f64 = functools.partial(VOP3A, VOP3AOp.V_RSQ_F64) -v_sqrt_f32 = functools.partial(VOP3A, VOP3AOp.V_SQRT_F32) -v_sqrt_f64 = functools.partial(VOP3A, VOP3AOp.V_SQRT_F64) -v_sin_f32 = functools.partial(VOP3A, VOP3AOp.V_SIN_F32) -v_cos_f32 = functools.partial(VOP3A, VOP3AOp.V_COS_F32) -v_not_b32 = functools.partial(VOP3A, VOP3AOp.V_NOT_B32) -v_bfrev_b32 = functools.partial(VOP3A, VOP3AOp.V_BFREV_B32) -v_ffbh_u32 = functools.partial(VOP3A, VOP3AOp.V_FFBH_U32) -v_ffbl_b32 = functools.partial(VOP3A, VOP3AOp.V_FFBL_B32) -v_ffbh_i32 = functools.partial(VOP3A, VOP3AOp.V_FFBH_I32) -v_frexp_exp_i32_f64 = functools.partial(VOP3A, VOP3AOp.V_FREXP_EXP_I32_F64) -v_frexp_mant_f64 = functools.partial(VOP3A, VOP3AOp.V_FREXP_MANT_F64) -v_fract_f64 = functools.partial(VOP3A, VOP3AOp.V_FRACT_F64) -v_frexp_exp_i32_f32 = functools.partial(VOP3A, VOP3AOp.V_FREXP_EXP_I32_F32) -v_frexp_mant_f32 = functools.partial(VOP3A, VOP3AOp.V_FREXP_MANT_F32) -v_clrexcp = functools.partial(VOP3A, VOP3AOp.V_CLREXCP) -v_mov_b64 = functools.partial(VOP3A, VOP3AOp.V_MOV_B64) -v_cvt_f16_u16 = functools.partial(VOP3A, VOP3AOp.V_CVT_F16_U16) -v_cvt_f16_i16 = functools.partial(VOP3A, VOP3AOp.V_CVT_F16_I16) -v_cvt_u16_f16 = functools.partial(VOP3A, VOP3AOp.V_CVT_U16_F16) -v_cvt_i16_f16 = functools.partial(VOP3A, VOP3AOp.V_CVT_I16_F16) -v_rcp_f16 = functools.partial(VOP3A, VOP3AOp.V_RCP_F16) -v_sqrt_f16 = functools.partial(VOP3A, VOP3AOp.V_SQRT_F16) -v_rsq_f16 = functools.partial(VOP3A, VOP3AOp.V_RSQ_F16) -v_log_f16 = functools.partial(VOP3A, VOP3AOp.V_LOG_F16) -v_exp_f16 = functools.partial(VOP3A, VOP3AOp.V_EXP_F16) -v_mad_i32_i24 = functools.partial(VOP3A, VOP3AOp.V_MAD_I32_I24) -v_mad_u32_u24 = functools.partial(VOP3A, VOP3AOp.V_MAD_U32_U24) -v_cubeid_f32 = functools.partial(VOP3A, VOP3AOp.V_CUBEID_F32) -v_cubesc_f32 = functools.partial(VOP3A, VOP3AOp.V_CUBESC_F32) -v_cubetc_f32 = functools.partial(VOP3A, VOP3AOp.V_CUBETC_F32) -v_cubema_f32 = functools.partial(VOP3A, VOP3AOp.V_CUBEMA_F32) -v_bfe_u32 = functools.partial(VOP3A, VOP3AOp.V_BFE_U32) -v_bfe_i32 = functools.partial(VOP3A, VOP3AOp.V_BFE_I32) -v_bfi_b32 = functools.partial(VOP3A, VOP3AOp.V_BFI_B32) -v_fma_f32 = functools.partial(VOP3A, VOP3AOp.V_FMA_F32) -v_fma_f64 = functools.partial(VOP3A, VOP3AOp.V_FMA_F64) -v_lerp_u8 = functools.partial(VOP3A, VOP3AOp.V_LERP_U8) -v_alignbit_b32 = functools.partial(VOP3A, VOP3AOp.V_ALIGNBIT_B32) -v_alignbyte_b32 = functools.partial(VOP3A, VOP3AOp.V_ALIGNBYTE_B32) -v_min3_f32 = functools.partial(VOP3A, VOP3AOp.V_MIN3_F32) -v_min3_i32 = functools.partial(VOP3A, VOP3AOp.V_MIN3_I32) -v_min3_u32 = functools.partial(VOP3A, VOP3AOp.V_MIN3_U32) -v_max3_f32 = functools.partial(VOP3A, VOP3AOp.V_MAX3_F32) -v_max3_i32 = functools.partial(VOP3A, VOP3AOp.V_MAX3_I32) -v_max3_u32 = functools.partial(VOP3A, VOP3AOp.V_MAX3_U32) -v_med3_f32 = functools.partial(VOP3A, VOP3AOp.V_MED3_F32) -v_med3_i32 = functools.partial(VOP3A, VOP3AOp.V_MED3_I32) -v_med3_u32 = functools.partial(VOP3A, VOP3AOp.V_MED3_U32) -v_sad_u8 = functools.partial(VOP3A, VOP3AOp.V_SAD_U8) -v_sad_hi_u8 = functools.partial(VOP3A, VOP3AOp.V_SAD_HI_U8) -v_sad_u16 = functools.partial(VOP3A, VOP3AOp.V_SAD_U16) -v_sad_u32 = functools.partial(VOP3A, VOP3AOp.V_SAD_U32) -v_cvt_pk_u8_f32 = functools.partial(VOP3A, VOP3AOp.V_CVT_PK_U8_F32) -v_div_fixup_f32 = functools.partial(VOP3A, VOP3AOp.V_DIV_FIXUP_F32) -v_div_fixup_f64 = functools.partial(VOP3A, VOP3AOp.V_DIV_FIXUP_F64) -v_div_fmas_f32 = functools.partial(VOP3A, VOP3AOp.V_DIV_FMAS_F32) -v_div_fmas_f64 = functools.partial(VOP3A, VOP3AOp.V_DIV_FMAS_F64) -v_msad_u8 = functools.partial(VOP3A, VOP3AOp.V_MSAD_U8) -v_qsad_pk_u16_u8 = functools.partial(VOP3A, VOP3AOp.V_QSAD_PK_U16_U8) -v_mqsad_pk_u16_u8 = functools.partial(VOP3A, VOP3AOp.V_MQSAD_PK_U16_U8) -v_mqsad_u32_u8 = functools.partial(VOP3A, VOP3AOp.V_MQSAD_U32_U8) -v_mad_legacy_f16 = functools.partial(VOP3A, VOP3AOp.V_MAD_LEGACY_F16) -v_mad_legacy_u16 = functools.partial(VOP3A, VOP3AOp.V_MAD_LEGACY_U16) -v_mad_legacy_i16 = functools.partial(VOP3A, VOP3AOp.V_MAD_LEGACY_I16) -v_perm_b32 = functools.partial(VOP3A, VOP3AOp.V_PERM_B32) -v_fma_legacy_f16 = functools.partial(VOP3A, VOP3AOp.V_FMA_LEGACY_F16) -v_div_fixup_legacy_f16 = functools.partial(VOP3A, VOP3AOp.V_DIV_FIXUP_LEGACY_F16) -v_cvt_pkaccum_u8_f32 = functools.partial(VOP3A, VOP3AOp.V_CVT_PKACCUM_U8_F32) -v_mad_u32_u16 = functools.partial(VOP3A, VOP3AOp.V_MAD_U32_U16) -v_mad_i32_i16 = functools.partial(VOP3A, VOP3AOp.V_MAD_I32_I16) -v_xad_u32 = functools.partial(VOP3A, VOP3AOp.V_XAD_U32) -v_min3_f16 = functools.partial(VOP3A, VOP3AOp.V_MIN3_F16) -v_min3_i16 = functools.partial(VOP3A, VOP3AOp.V_MIN3_I16) -v_min3_u16 = functools.partial(VOP3A, VOP3AOp.V_MIN3_U16) -v_max3_f16 = functools.partial(VOP3A, VOP3AOp.V_MAX3_F16) -v_max3_i16 = functools.partial(VOP3A, VOP3AOp.V_MAX3_I16) -v_max3_u16 = functools.partial(VOP3A, VOP3AOp.V_MAX3_U16) -v_med3_f16 = functools.partial(VOP3A, VOP3AOp.V_MED3_F16) -v_med3_i16 = functools.partial(VOP3A, VOP3AOp.V_MED3_I16) -v_med3_u16 = functools.partial(VOP3A, VOP3AOp.V_MED3_U16) -v_lshl_add_u32 = functools.partial(VOP3A, VOP3AOp.V_LSHL_ADD_U32) -v_add_lshl_u32 = functools.partial(VOP3A, VOP3AOp.V_ADD_LSHL_U32) -v_add3_u32 = functools.partial(VOP3A, VOP3AOp.V_ADD3_U32) -v_lshl_or_b32 = functools.partial(VOP3A, VOP3AOp.V_LSHL_OR_B32) -v_and_or_b32 = functools.partial(VOP3A, VOP3AOp.V_AND_OR_B32) -v_or3_b32 = functools.partial(VOP3A, VOP3AOp.V_OR3_B32) -v_mad_f16 = functools.partial(VOP3A, VOP3AOp.V_MAD_F16) -v_mad_u16 = functools.partial(VOP3A, VOP3AOp.V_MAD_U16) -v_mad_i16 = functools.partial(VOP3A, VOP3AOp.V_MAD_I16) -v_fma_f16 = functools.partial(VOP3A, VOP3AOp.V_FMA_F16) -v_div_fixup_f16 = functools.partial(VOP3A, VOP3AOp.V_DIV_FIXUP_F16) -v_lshl_add_u64 = functools.partial(VOP3A, VOP3AOp.V_LSHL_ADD_U64) -v_bitop3_b16 = functools.partial(VOP3A, VOP3AOp.V_BITOP3_B16) -v_bitop3_b32 = functools.partial(VOP3A, VOP3AOp.V_BITOP3_B32) -v_cvt_scalef32_pk_fp8_f32 = functools.partial(VOP3A, VOP3AOp.V_CVT_SCALEF32_PK_FP8_F32) -v_cvt_scalef32_pk_bf8_f32 = functools.partial(VOP3A, VOP3AOp.V_CVT_SCALEF32_PK_BF8_F32) -v_cvt_scalef32_sr_fp8_f32 = functools.partial(VOP3A, VOP3AOp.V_CVT_SCALEF32_SR_FP8_F32) -v_cvt_scalef32_sr_bf8_f32 = functools.partial(VOP3A, VOP3AOp.V_CVT_SCALEF32_SR_BF8_F32) -v_cvt_scalef32_pk_f32_fp8 = functools.partial(VOP3A, VOP3AOp.V_CVT_SCALEF32_PK_F32_FP8) -v_cvt_scalef32_pk_f32_bf8 = functools.partial(VOP3A, VOP3AOp.V_CVT_SCALEF32_PK_F32_BF8) -v_cvt_scalef32_f32_fp8 = functools.partial(VOP3A, VOP3AOp.V_CVT_SCALEF32_F32_FP8) -v_cvt_scalef32_f32_bf8 = functools.partial(VOP3A, VOP3AOp.V_CVT_SCALEF32_F32_BF8) -v_cvt_scalef32_pk_fp4_f32 = functools.partial(VOP3A, VOP3AOp.V_CVT_SCALEF32_PK_FP4_F32) -v_cvt_scalef32_sr_pk_fp4_f32 = functools.partial(VOP3A, VOP3AOp.V_CVT_SCALEF32_SR_PK_FP4_F32) -v_cvt_scalef32_pk_f32_fp4 = functools.partial(VOP3A, VOP3AOp.V_CVT_SCALEF32_PK_F32_FP4) -v_cvt_scalef32_pk_fp8_f16 = functools.partial(VOP3A, VOP3AOp.V_CVT_SCALEF32_PK_FP8_F16) -v_cvt_scalef32_pk_bf8_f16 = functools.partial(VOP3A, VOP3AOp.V_CVT_SCALEF32_PK_BF8_F16) -v_cvt_scalef32_sr_fp8_f16 = functools.partial(VOP3A, VOP3AOp.V_CVT_SCALEF32_SR_FP8_F16) -v_cvt_scalef32_sr_bf8_f16 = functools.partial(VOP3A, VOP3AOp.V_CVT_SCALEF32_SR_BF8_F16) -v_cvt_scalef32_pk_fp8_bf16 = functools.partial(VOP3A, VOP3AOp.V_CVT_SCALEF32_PK_FP8_BF16) -v_cvt_scalef32_pk_bf8_bf16 = functools.partial(VOP3A, VOP3AOp.V_CVT_SCALEF32_PK_BF8_BF16) -v_cvt_scalef32_sr_fp8_bf16 = functools.partial(VOP3A, VOP3AOp.V_CVT_SCALEF32_SR_FP8_BF16) -v_cvt_scalef32_sr_bf8_bf16 = functools.partial(VOP3A, VOP3AOp.V_CVT_SCALEF32_SR_BF8_BF16) -v_cvt_scalef32_pk_f16_fp8 = functools.partial(VOP3A, VOP3AOp.V_CVT_SCALEF32_PK_F16_FP8) -v_cvt_scalef32_pk_f16_bf8 = functools.partial(VOP3A, VOP3AOp.V_CVT_SCALEF32_PK_F16_BF8) -v_cvt_scalef32_f16_fp8 = functools.partial(VOP3A, VOP3AOp.V_CVT_SCALEF32_F16_FP8) -v_cvt_scalef32_f16_bf8 = functools.partial(VOP3A, VOP3AOp.V_CVT_SCALEF32_F16_BF8) -v_cvt_scalef32_pk_fp4_f16 = functools.partial(VOP3A, VOP3AOp.V_CVT_SCALEF32_PK_FP4_F16) -v_cvt_scalef32_pk_fp4_bf16 = functools.partial(VOP3A, VOP3AOp.V_CVT_SCALEF32_PK_FP4_BF16) -v_cvt_scalef32_sr_pk_fp4_f16 = functools.partial(VOP3A, VOP3AOp.V_CVT_SCALEF32_SR_PK_FP4_F16) -v_cvt_scalef32_sr_pk_fp4_bf16 = functools.partial(VOP3A, VOP3AOp.V_CVT_SCALEF32_SR_PK_FP4_BF16) -v_cvt_scalef32_pk_f16_fp4 = functools.partial(VOP3A, VOP3AOp.V_CVT_SCALEF32_PK_F16_FP4) -v_cvt_scalef32_pk_bf16_fp4 = functools.partial(VOP3A, VOP3AOp.V_CVT_SCALEF32_PK_BF16_FP4) -v_cvt_scalef32_2xpk16_fp6_f32 = functools.partial(VOP3A, VOP3AOp.V_CVT_SCALEF32_2XPK16_FP6_F32) -v_cvt_scalef32_2xpk16_bf6_f32 = functools.partial(VOP3A, VOP3AOp.V_CVT_SCALEF32_2XPK16_BF6_F32) -v_cvt_scalef32_sr_pk32_fp6_f32 = functools.partial(VOP3A, VOP3AOp.V_CVT_SCALEF32_SR_PK32_FP6_F32) -v_cvt_scalef32_sr_pk32_bf6_f32 = functools.partial(VOP3A, VOP3AOp.V_CVT_SCALEF32_SR_PK32_BF6_F32) -v_cvt_scalef32_pk32_f32_fp6 = functools.partial(VOP3A, VOP3AOp.V_CVT_SCALEF32_PK32_F32_FP6) -v_cvt_scalef32_pk32_f32_bf6 = functools.partial(VOP3A, VOP3AOp.V_CVT_SCALEF32_PK32_F32_BF6) -cdna4 = functools.partial(VOP3A, VOP3AOp.CDNA4) -v_cvt_scalef32_pk32_fp6_bf16 = functools.partial(VOP3A, VOP3AOp.V_CVT_SCALEF32_PK32_FP6_BF16) -v_cvt_scalef32_pk32_bf6_f16 = functools.partial(VOP3A, VOP3AOp.V_CVT_SCALEF32_PK32_BF6_F16) -v_cvt_scalef32_pk32_bf6_bf16 = functools.partial(VOP3A, VOP3AOp.V_CVT_SCALEF32_PK32_BF6_BF16) -v_cvt_scalef32_sr_pk32_fp6_f16 = functools.partial(VOP3A, VOP3AOp.V_CVT_SCALEF32_SR_PK32_FP6_F16) -v_cvt_scalef32_sr_pk32_fp6_bf16 = functools.partial(VOP3A, VOP3AOp.V_CVT_SCALEF32_SR_PK32_FP6_BF16) -v_cvt_scalef32_sr_pk32_bf6_f16 = functools.partial(VOP3A, VOP3AOp.V_CVT_SCALEF32_SR_PK32_BF6_F16) -v_cvt_scalef32_sr_pk32_bf6_bf16 = functools.partial(VOP3A, VOP3AOp.V_CVT_SCALEF32_SR_PK32_BF6_BF16) -v_cvt_scalef32_pk32_f16_fp6 = functools.partial(VOP3A, VOP3AOp.V_CVT_SCALEF32_PK32_F16_FP6) -v_cvt_scalef32_pk32_bf16_fp6 = functools.partial(VOP3A, VOP3AOp.V_CVT_SCALEF32_PK32_BF16_FP6) -v_cvt_scalef32_pk32_f16_bf6 = functools.partial(VOP3A, VOP3AOp.V_CVT_SCALEF32_PK32_F16_BF6) -v_cvt_scalef32_pk32_bf16_bf6 = functools.partial(VOP3A, VOP3AOp.V_CVT_SCALEF32_PK32_BF16_BF6) -v_ashr_pk_i8_i32 = functools.partial(VOP3A, VOP3AOp.V_ASHR_PK_I8_I32) -v_ashr_pk_u8_i32 = functools.partial(VOP3A, VOP3AOp.V_ASHR_PK_U8_I32) -v_cvt_pk_f16_f32 = functools.partial(VOP3A, VOP3AOp.V_CVT_PK_F16_F32) -v_cvt_pk_bf16_f32 = functools.partial(VOP3A, VOP3AOp.V_CVT_PK_BF16_F32) -v_cvt_scalef32_pk_bf16_fp8 = functools.partial(VOP3A, VOP3AOp.V_CVT_SCALEF32_PK_BF16_FP8) -v_cvt_scalef32_pk_bf16_bf8 = functools.partial(VOP3A, VOP3AOp.V_CVT_SCALEF32_PK_BF16_BF8) -v_add_f64 = functools.partial(VOP3A, VOP3AOp.V_ADD_F64) -v_mul_f64 = functools.partial(VOP3A, VOP3AOp.V_MUL_F64) -v_min_f64 = functools.partial(VOP3A, VOP3AOp.V_MIN_F64) -v_max_f64 = functools.partial(VOP3A, VOP3AOp.V_MAX_F64) -v_ldexp_f64 = functools.partial(VOP3A, VOP3AOp.V_LDEXP_F64) -v_mul_lo_u32 = functools.partial(VOP3A, VOP3AOp.V_MUL_LO_U32) -v_mul_hi_u32 = functools.partial(VOP3A, VOP3AOp.V_MUL_HI_U32) -v_mul_hi_i32 = functools.partial(VOP3A, VOP3AOp.V_MUL_HI_I32) -v_ldexp_f32 = functools.partial(VOP3A, VOP3AOp.V_LDEXP_F32) -v_readlane_b32 = functools.partial(VOP3A, VOP3AOp.V_READLANE_B32) -v_writelane_b32 = functools.partial(VOP3A, VOP3AOp.V_WRITELANE_B32) -v_bcnt_u32_b32 = functools.partial(VOP3A, VOP3AOp.V_BCNT_U32_B32) -v_mbcnt_lo_u32_b32 = functools.partial(VOP3A, VOP3AOp.V_MBCNT_LO_U32_B32) -v_mbcnt_hi_u32_b32 = functools.partial(VOP3A, VOP3AOp.V_MBCNT_HI_U32_B32) -v_lshlrev_b64 = functools.partial(VOP3A, VOP3AOp.V_LSHLREV_B64) -v_lshrrev_b64 = functools.partial(VOP3A, VOP3AOp.V_LSHRREV_B64) -v_ashrrev_i64 = functools.partial(VOP3A, VOP3AOp.V_ASHRREV_I64) -v_trig_preop_f64 = functools.partial(VOP3A, VOP3AOp.V_TRIG_PREOP_F64) -v_bfm_b32 = functools.partial(VOP3A, VOP3AOp.V_BFM_B32) -v_cvt_pknorm_i16_f32 = functools.partial(VOP3A, VOP3AOp.V_CVT_PKNORM_I16_F32) -v_cvt_pknorm_u16_f32 = functools.partial(VOP3A, VOP3AOp.V_CVT_PKNORM_U16_F32) -v_cvt_pkrtz_f16_f32 = functools.partial(VOP3A, VOP3AOp.V_CVT_PKRTZ_F16_F32) -v_cvt_pk_u16_u32 = functools.partial(VOP3A, VOP3AOp.V_CVT_PK_U16_U32) -v_cvt_pk_i16_i32 = functools.partial(VOP3A, VOP3AOp.V_CVT_PK_I16_I32) -v_cvt_pknorm_i16_f16 = functools.partial(VOP3A, VOP3AOp.V_CVT_PKNORM_I16_F16) -v_cvt_pknorm_u16_f16 = functools.partial(VOP3A, VOP3AOp.V_CVT_PKNORM_U16_F16) -v_add_i32 = functools.partial(VOP3A, VOP3AOp.V_ADD_I32) -v_sub_i32 = functools.partial(VOP3A, VOP3AOp.V_SUB_I32) -v_add_i16 = functools.partial(VOP3A, VOP3AOp.V_ADD_I16) -v_sub_i16 = functools.partial(VOP3A, VOP3AOp.V_SUB_I16) -v_pack_b32_f16 = functools.partial(VOP3A, VOP3AOp.V_PACK_B32_F16) -v_mul_legacy_f32 = functools.partial(VOP3A, VOP3AOp.V_MUL_LEGACY_F32) -v_cvt_pk_fp8_f32 = functools.partial(VOP3A, VOP3AOp.V_CVT_PK_FP8_F32) -v_cvt_pk_bf8_f32 = functools.partial(VOP3A, VOP3AOp.V_CVT_PK_BF8_F32) -v_cvt_sr_fp8_f32 = functools.partial(VOP3A, VOP3AOp.V_CVT_SR_FP8_F32) -v_cvt_sr_bf8_f32 = functools.partial(VOP3A, VOP3AOp.V_CVT_SR_BF8_F32) -v_cvt_sr_f16_f32 = functools.partial(VOP3A, VOP3AOp.V_CVT_SR_F16_F32) -v_cvt_sr_bf16_f32 = functools.partial(VOP3A, VOP3AOp.V_CVT_SR_BF16_F32) -v_minimum3_f32 = functools.partial(VOP3A, VOP3AOp.V_MINIMUM3_F32) -v_maximum3_f32 = functools.partial(VOP3A, VOP3AOp.V_MAXIMUM3_F32) -v_add_co_u32 = functools.partial(VOP3B, VOP3BOp.V_ADD_CO_U32) -v_sub_co_u32 = functools.partial(VOP3B, VOP3BOp.V_SUB_CO_U32) -v_subrev_co_u32 = functools.partial(VOP3B, VOP3BOp.V_SUBREV_CO_U32) -v_addc_co_u32 = functools.partial(VOP3B, VOP3BOp.V_ADDC_CO_U32) -v_subb_co_u32 = functools.partial(VOP3B, VOP3BOp.V_SUBB_CO_U32) -v_subbrev_co_u32 = functools.partial(VOP3B, VOP3BOp.V_SUBBREV_CO_U32) -v_div_scale_f32 = functools.partial(VOP3B, VOP3BOp.V_DIV_SCALE_F32) -v_div_scale_f64 = functools.partial(VOP3B, VOP3BOp.V_DIV_SCALE_F64) -v_mad_u64_u32 = functools.partial(VOP3B, VOP3BOp.V_MAD_U64_U32) -v_mad_i64_i32 = functools.partial(VOP3B, VOP3BOp.V_MAD_I64_I32) -cdna4 = functools.partial(VOP3B, VOP3BOp.CDNA4) -v_pk_mad_i16 = functools.partial(VOP3P, VOP3POp.V_PK_MAD_I16) -v_pk_mul_lo_u16 = functools.partial(VOP3P, VOP3POp.V_PK_MUL_LO_U16) -v_pk_add_i16 = functools.partial(VOP3P, VOP3POp.V_PK_ADD_I16) -v_pk_sub_i16 = functools.partial(VOP3P, VOP3POp.V_PK_SUB_I16) -v_pk_lshlrev_b16 = functools.partial(VOP3P, VOP3POp.V_PK_LSHLREV_B16) -v_pk_lshrrev_b16 = functools.partial(VOP3P, VOP3POp.V_PK_LSHRREV_B16) -v_pk_ashrrev_i16 = functools.partial(VOP3P, VOP3POp.V_PK_ASHRREV_I16) -v_pk_max_i16 = functools.partial(VOP3P, VOP3POp.V_PK_MAX_I16) -v_pk_min_i16 = functools.partial(VOP3P, VOP3POp.V_PK_MIN_I16) -v_pk_mad_u16 = functools.partial(VOP3P, VOP3POp.V_PK_MAD_U16) -v_pk_add_u16 = functools.partial(VOP3P, VOP3POp.V_PK_ADD_U16) -v_pk_sub_u16 = functools.partial(VOP3P, VOP3POp.V_PK_SUB_U16) -v_pk_max_u16 = functools.partial(VOP3P, VOP3POp.V_PK_MAX_U16) -v_pk_min_u16 = functools.partial(VOP3P, VOP3POp.V_PK_MIN_U16) -v_pk_fma_f16 = functools.partial(VOP3P, VOP3POp.V_PK_FMA_F16) -v_pk_add_f16 = functools.partial(VOP3P, VOP3POp.V_PK_ADD_F16) -v_pk_mul_f16 = functools.partial(VOP3P, VOP3POp.V_PK_MUL_F16) -v_pk_min_f16 = functools.partial(VOP3P, VOP3POp.V_PK_MIN_F16) -v_pk_max_f16 = functools.partial(VOP3P, VOP3POp.V_PK_MAX_F16) -v_dot2_f32_bf16 = functools.partial(VOP3P, VOP3POp.V_DOT2_F32_BF16) -v_pk_minimum3_f16 = functools.partial(VOP3P, VOP3POp.V_PK_MINIMUM3_F16) -v_pk_maximum3_f16 = functools.partial(VOP3P, VOP3POp.V_PK_MAXIMUM3_F16) -v_mad_mix_f32 = functools.partial(VOP3P, VOP3POp.V_MAD_MIX_F32) -v_mad_mixlo_f16 = functools.partial(VOP3P, VOP3POp.V_MAD_MIXLO_F16) -v_mad_mixhi_f16 = functools.partial(VOP3P, VOP3POp.V_MAD_MIXHI_F16) -v_dot2_f32_f16 = functools.partial(VOP3P, VOP3POp.V_DOT2_F32_F16) -v_dot2_i32_i16 = functools.partial(VOP3P, VOP3POp.V_DOT2_I32_I16) -v_dot2_u32_u16 = functools.partial(VOP3P, VOP3POp.V_DOT2_U32_U16) -v_dot4_i32_i8 = functools.partial(VOP3P, VOP3POp.V_DOT4_I32_I8) -v_dot4_u32_u8 = functools.partial(VOP3P, VOP3POp.V_DOT4_U32_U8) -v_dot8_i32_i4 = functools.partial(VOP3P, VOP3POp.V_DOT8_I32_I4) -v_dot8_u32_u4 = functools.partial(VOP3P, VOP3POp.V_DOT8_U32_U4) -v_mfma_f32_16x16x128_f8f6f4 = functools.partial(VOP3P, VOP3POp.V_MFMA_F32_16X16X128_F8F6F4) -v_mfma_f32_32x32x64_f8f6f4 = functools.partial(VOP3P, VOP3POp.V_MFMA_F32_32X32X64_F8F6F4) -v_pk_fma_f32 = functools.partial(VOP3P, VOP3POp.V_PK_FMA_F32) -v_pk_mul_f32 = functools.partial(VOP3P, VOP3POp.V_PK_MUL_F32) -v_pk_add_f32 = functools.partial(VOP3P, VOP3POp.V_PK_ADD_F32) -v_pk_mov_b32 = functools.partial(VOP3P, VOP3POp.V_PK_MOV_B32) -v_mfma_f32_16x16x32_bf16 = functools.partial(VOP3P, VOP3POp.V_MFMA_F32_16X16X32_BF16) -v_mfma_i32_16x16x64_i8 = functools.partial(VOP3P, VOP3POp.V_MFMA_I32_16X16X64_I8) -v_mfma_f32_32x32x16_bf16 = functools.partial(VOP3P, VOP3POp.V_MFMA_F32_32X32X16_BF16) -v_mfma_i32_32x32x32_i8 = functools.partial(VOP3P, VOP3POp.V_MFMA_I32_32X32X32_I8) -v_smfmac_f32_16x16x64_bf16 = functools.partial(VOP3P, VOP3POp.V_SMFMAC_F32_16X16X64_BF16) -v_smfmac_i32_16x16x128_i8 = functools.partial(VOP3P, VOP3POp.V_SMFMAC_I32_16X16X128_I8) -v_smfmac_f32_16x16x128_bf8_bf8 = functools.partial(VOP3P, VOP3POp.V_SMFMAC_F32_16X16X128_BF8_BF8) -v_smfmac_f32_16x16x128_bf8_fp8 = functools.partial(VOP3P, VOP3POp.V_SMFMAC_F32_16X16X128_BF8_FP8) -v_smfmac_f32_16x16x128_fp8_bf8 = functools.partial(VOP3P, VOP3POp.V_SMFMAC_F32_16X16X128_FP8_BF8) -v_mfma_f32_16x16x8_xf32 = functools.partial(VOP3P, VOP3POp.V_MFMA_F32_16X16X8_XF32) -v_mfma_f32_32x32x4_xf32 = functools.partial(VOP3P, VOP3POp.V_MFMA_F32_32X32X4_XF32) -v_mfma_f32_32x32x1_2b_f32 = functools.partial(VOP3P, VOP3POp.V_MFMA_F32_32X32X1_2B_F32) -v_mfma_f32_16x16x1_4b_f32 = functools.partial(VOP3P, VOP3POp.V_MFMA_F32_16X16X1_4B_F32) -v_mfma_f32_4x4x1_16b_f32 = functools.partial(VOP3P, VOP3POp.V_MFMA_F32_4X4X1_16B_F32) -v_smfmac_f32_16x16x128_fp8_fp8 = functools.partial(VOP3P, VOP3POp.V_SMFMAC_F32_16X16X128_FP8_FP8) -v_mfma_f32_32x32x2_f32 = functools.partial(VOP3P, VOP3POp.V_MFMA_F32_32X32X2_F32) -v_mfma_f32_16x16x4_f32 = functools.partial(VOP3P, VOP3POp.V_MFMA_F32_16X16X4_F32) -v_smfmac_f32_32x32x32_bf16 = functools.partial(VOP3P, VOP3POp.V_SMFMAC_F32_32X32X32_BF16) -v_smfmac_i32_32x32x64_i8 = functools.partial(VOP3P, VOP3POp.V_SMFMAC_I32_32X32X64_I8) -v_mfma_f32_32x32x4_2b_f16 = functools.partial(VOP3P, VOP3POp.V_MFMA_F32_32X32X4_2B_F16) -v_mfma_f32_16x16x4_4b_f16 = functools.partial(VOP3P, VOP3POp.V_MFMA_F32_16X16X4_4B_F16) -v_mfma_f32_4x4x4_16b_f16 = functools.partial(VOP3P, VOP3POp.V_MFMA_F32_4X4X4_16B_F16) -v_smfmac_f32_32x32x64_bf8_bf8 = functools.partial(VOP3P, VOP3POp.V_SMFMAC_F32_32X32X64_BF8_BF8) -v_mfma_f32_32x32x8_f16 = functools.partial(VOP3P, VOP3POp.V_MFMA_F32_32X32X8_F16) -v_mfma_f32_16x16x16_f16 = functools.partial(VOP3P, VOP3POp.V_MFMA_F32_16X16X16_F16) -v_smfmac_f32_32x32x64_bf8_fp8 = functools.partial(VOP3P, VOP3POp.V_SMFMAC_F32_32X32X64_BF8_FP8) -v_smfmac_f32_32x32x64_fp8_bf8 = functools.partial(VOP3P, VOP3POp.V_SMFMAC_F32_32X32X64_FP8_BF8) -v_mfma_i32_32x32x4_2b_i8 = functools.partial(VOP3P, VOP3POp.V_MFMA_I32_32X32X4_2B_I8) -v_mfma_i32_16x16x4_4b_i8 = functools.partial(VOP3P, VOP3POp.V_MFMA_I32_16X16X4_4B_I8) -v_mfma_i32_4x4x4_16b_i8 = functools.partial(VOP3P, VOP3POp.V_MFMA_I32_4X4X4_16B_I8) -v_smfmac_f32_32x32x64_fp8_fp8 = functools.partial(VOP3P, VOP3POp.V_SMFMAC_F32_32X32X64_FP8_FP8) -v_mfma_f32_16x16x32_f16 = functools.partial(VOP3P, VOP3POp.V_MFMA_F32_16X16X32_F16) -v_mfma_f32_32x32x16_f16 = functools.partial(VOP3P, VOP3POp.V_MFMA_F32_32X32X16_F16) -v_mfma_i32_32x32x16_i8 = functools.partial(VOP3P, VOP3POp.V_MFMA_I32_32X32X16_I8) -v_mfma_i32_16x16x32_i8 = functools.partial(VOP3P, VOP3POp.V_MFMA_I32_16X16X32_I8) -v_accvgpr_read = functools.partial(VOP3P, VOP3POp.V_ACCVGPR_READ) -v_accvgpr_write = functools.partial(VOP3P, VOP3POp.V_ACCVGPR_WRITE) -v_smfmac_f32_16x16x64_f16 = functools.partial(VOP3P, VOP3POp.V_SMFMAC_F32_16X16X64_F16) -v_smfmac_f32_32x32x32_f16 = functools.partial(VOP3P, VOP3POp.V_SMFMAC_F32_32X32X32_F16) -v_mfma_f32_32x32x4_2b_bf16 = functools.partial(VOP3P, VOP3POp.V_MFMA_F32_32X32X4_2B_BF16) -v_mfma_f32_16x16x4_4b_bf16 = functools.partial(VOP3P, VOP3POp.V_MFMA_F32_16X16X4_4B_BF16) -v_mfma_f32_4x4x4_16b_bf16 = functools.partial(VOP3P, VOP3POp.V_MFMA_F32_4X4X4_16B_BF16) -v_mfma_f32_32x32x8_bf16 = functools.partial(VOP3P, VOP3POp.V_MFMA_F32_32X32X8_BF16) -v_mfma_f32_16x16x16_bf16 = functools.partial(VOP3P, VOP3POp.V_MFMA_F32_16X16X16_BF16) -v_smfmac_f32_16x16x32_f16 = functools.partial(VOP3P, VOP3POp.V_SMFMAC_F32_16X16X32_F16) -v_smfmac_f32_32x32x16_f16 = functools.partial(VOP3P, VOP3POp.V_SMFMAC_F32_32X32X16_F16) -v_smfmac_f32_16x16x32_bf16 = functools.partial(VOP3P, VOP3POp.V_SMFMAC_F32_16X16X32_BF16) -v_smfmac_f32_32x32x16_bf16 = functools.partial(VOP3P, VOP3POp.V_SMFMAC_F32_32X32X16_BF16) -v_smfmac_i32_16x16x64_i8 = functools.partial(VOP3P, VOP3POp.V_SMFMAC_I32_16X16X64_I8) -v_smfmac_i32_32x32x32_i8 = functools.partial(VOP3P, VOP3POp.V_SMFMAC_I32_32X32X32_I8) -v_mfma_f64_16x16x4_f64 = functools.partial(VOP3P, VOP3POp.V_MFMA_F64_16X16X4_F64) -v_mfma_f64_4x4x4_4b_f64 = functools.partial(VOP3P, VOP3POp.V_MFMA_F64_4X4X4_4B_F64) -v_mfma_f32_16x16x32_bf8_bf8 = functools.partial(VOP3P, VOP3POp.V_MFMA_F32_16X16X32_BF8_BF8) -v_mfma_f32_16x16x32_bf8_fp8 = functools.partial(VOP3P, VOP3POp.V_MFMA_F32_16X16X32_BF8_FP8) -v_mfma_f32_16x16x32_fp8_bf8 = functools.partial(VOP3P, VOP3POp.V_MFMA_F32_16X16X32_FP8_BF8) -v_mfma_f32_16x16x32_fp8_fp8 = functools.partial(VOP3P, VOP3POp.V_MFMA_F32_16X16X32_FP8_FP8) -v_mfma_f32_32x32x16_bf8_bf8 = functools.partial(VOP3P, VOP3POp.V_MFMA_F32_32X32X16_BF8_BF8) -v_mfma_f32_32x32x16_bf8_fp8 = functools.partial(VOP3P, VOP3POp.V_MFMA_F32_32X32X16_BF8_FP8) -v_mfma_f32_32x32x16_fp8_bf8 = functools.partial(VOP3P, VOP3POp.V_MFMA_F32_32X32X16_FP8_BF8) -v_mfma_f32_32x32x16_fp8_fp8 = functools.partial(VOP3P, VOP3POp.V_MFMA_F32_32X32X16_FP8_FP8) -v_smfmac_f32_16x16x64_bf8_bf8 = functools.partial(VOP3P, VOP3POp.V_SMFMAC_F32_16X16X64_BF8_BF8) -v_smfmac_f32_16x16x64_bf8_fp8 = functools.partial(VOP3P, VOP3POp.V_SMFMAC_F32_16X16X64_BF8_FP8) -v_smfmac_f32_16x16x64_fp8_bf8 = functools.partial(VOP3P, VOP3POp.V_SMFMAC_F32_16X16X64_FP8_BF8) -v_smfmac_f32_16x16x64_fp8_fp8 = functools.partial(VOP3P, VOP3POp.V_SMFMAC_F32_16X16X64_FP8_FP8) -v_smfmac_f32_32x32x32_bf8_bf8 = functools.partial(VOP3P, VOP3POp.V_SMFMAC_F32_32X32X32_BF8_BF8) -v_smfmac_f32_32x32x32_bf8_fp8 = functools.partial(VOP3P, VOP3POp.V_SMFMAC_F32_32X32X32_BF8_FP8) -v_smfmac_f32_32x32x32_fp8_bf8 = functools.partial(VOP3P, VOP3POp.V_SMFMAC_F32_32X32X32_FP8_BF8) -v_smfmac_f32_32x32x32_fp8_fp8 = functools.partial(VOP3P, VOP3POp.V_SMFMAC_F32_32X32X32_FP8_FP8) -cdna4 = functools.partial(VOP3P, VOP3POp.CDNA4) -v_cmp_class_f32_e32 = functools.partial(VOPC, VOPCOp.V_CMP_CLASS_F32) -v_cmpx_class_f32_e32 = functools.partial(VOPC, VOPCOp.V_CMPX_CLASS_F32) -v_cmp_class_f64_e32 = functools.partial(VOPC, VOPCOp.V_CMP_CLASS_F64) -v_cmpx_class_f64_e32 = functools.partial(VOPC, VOPCOp.V_CMPX_CLASS_F64) -v_cmp_class_f16_e32 = functools.partial(VOPC, VOPCOp.V_CMP_CLASS_F16) -v_cmpx_class_f16_e32 = functools.partial(VOPC, VOPCOp.V_CMPX_CLASS_F16) -v_cmp_f_f16_e32 = functools.partial(VOPC, VOPCOp.V_CMP_F_F16) -v_cmp_lt_f16_e32 = functools.partial(VOPC, VOPCOp.V_CMP_LT_F16) -v_cmp_eq_f16_e32 = functools.partial(VOPC, VOPCOp.V_CMP_EQ_F16) -v_cmp_le_f16_e32 = functools.partial(VOPC, VOPCOp.V_CMP_LE_F16) -v_cmp_gt_f16_e32 = functools.partial(VOPC, VOPCOp.V_CMP_GT_F16) -v_cmp_lg_f16_e32 = functools.partial(VOPC, VOPCOp.V_CMP_LG_F16) -v_cmp_ge_f16_e32 = functools.partial(VOPC, VOPCOp.V_CMP_GE_F16) -v_cmp_o_f16_e32 = functools.partial(VOPC, VOPCOp.V_CMP_O_F16) -v_cmp_u_f16_e32 = functools.partial(VOPC, VOPCOp.V_CMP_U_F16) -v_cmp_nge_f16_e32 = functools.partial(VOPC, VOPCOp.V_CMP_NGE_F16) -v_cmp_nlg_f16_e32 = functools.partial(VOPC, VOPCOp.V_CMP_NLG_F16) -v_cmp_ngt_f16_e32 = functools.partial(VOPC, VOPCOp.V_CMP_NGT_F16) -v_cmp_nle_f16_e32 = functools.partial(VOPC, VOPCOp.V_CMP_NLE_F16) -v_cmp_neq_f16_e32 = functools.partial(VOPC, VOPCOp.V_CMP_NEQ_F16) -v_cmp_nlt_f16_e32 = functools.partial(VOPC, VOPCOp.V_CMP_NLT_F16) -v_cmp_tru_f16_e32 = functools.partial(VOPC, VOPCOp.V_CMP_TRU_F16) -v_cmpx_f_f16_e32 = functools.partial(VOPC, VOPCOp.V_CMPX_F_F16) -v_cmpx_lt_f16_e32 = functools.partial(VOPC, VOPCOp.V_CMPX_LT_F16) -v_cmpx_eq_f16_e32 = functools.partial(VOPC, VOPCOp.V_CMPX_EQ_F16) -v_cmpx_le_f16_e32 = functools.partial(VOPC, VOPCOp.V_CMPX_LE_F16) -v_cmpx_gt_f16_e32 = functools.partial(VOPC, VOPCOp.V_CMPX_GT_F16) -v_cmpx_lg_f16_e32 = functools.partial(VOPC, VOPCOp.V_CMPX_LG_F16) -v_cmpx_ge_f16_e32 = functools.partial(VOPC, VOPCOp.V_CMPX_GE_F16) -v_cmpx_o_f16_e32 = functools.partial(VOPC, VOPCOp.V_CMPX_O_F16) -v_cmpx_u_f16_e32 = functools.partial(VOPC, VOPCOp.V_CMPX_U_F16) -v_cmpx_nge_f16_e32 = functools.partial(VOPC, VOPCOp.V_CMPX_NGE_F16) -v_cmpx_nlg_f16_e32 = functools.partial(VOPC, VOPCOp.V_CMPX_NLG_F16) -v_cmpx_ngt_f16_e32 = functools.partial(VOPC, VOPCOp.V_CMPX_NGT_F16) -v_cmpx_nle_f16_e32 = functools.partial(VOPC, VOPCOp.V_CMPX_NLE_F16) -v_cmpx_neq_f16_e32 = functools.partial(VOPC, VOPCOp.V_CMPX_NEQ_F16) -v_cmpx_nlt_f16_e32 = functools.partial(VOPC, VOPCOp.V_CMPX_NLT_F16) -v_cmpx_tru_f16_e32 = functools.partial(VOPC, VOPCOp.V_CMPX_TRU_F16) -v_cmp_f_f32_e32 = functools.partial(VOPC, VOPCOp.V_CMP_F_F32) -v_cmp_lt_f32_e32 = functools.partial(VOPC, VOPCOp.V_CMP_LT_F32) -v_cmp_eq_f32_e32 = functools.partial(VOPC, VOPCOp.V_CMP_EQ_F32) -v_cmp_le_f32_e32 = functools.partial(VOPC, VOPCOp.V_CMP_LE_F32) -v_cmp_gt_f32_e32 = functools.partial(VOPC, VOPCOp.V_CMP_GT_F32) -v_cmp_lg_f32_e32 = functools.partial(VOPC, VOPCOp.V_CMP_LG_F32) -v_cmp_ge_f32_e32 = functools.partial(VOPC, VOPCOp.V_CMP_GE_F32) -v_cmp_o_f32_e32 = functools.partial(VOPC, VOPCOp.V_CMP_O_F32) -v_cmp_u_f32_e32 = functools.partial(VOPC, VOPCOp.V_CMP_U_F32) -v_cmp_nge_f32_e32 = functools.partial(VOPC, VOPCOp.V_CMP_NGE_F32) -v_cmp_nlg_f32_e32 = functools.partial(VOPC, VOPCOp.V_CMP_NLG_F32) -v_cmp_ngt_f32_e32 = functools.partial(VOPC, VOPCOp.V_CMP_NGT_F32) -v_cmp_nle_f32_e32 = functools.partial(VOPC, VOPCOp.V_CMP_NLE_F32) -v_cmp_neq_f32_e32 = functools.partial(VOPC, VOPCOp.V_CMP_NEQ_F32) -v_cmp_nlt_f32_e32 = functools.partial(VOPC, VOPCOp.V_CMP_NLT_F32) -v_cmp_tru_f32_e32 = functools.partial(VOPC, VOPCOp.V_CMP_TRU_F32) -v_cmpx_f_f32_e32 = functools.partial(VOPC, VOPCOp.V_CMPX_F_F32) -v_cmpx_lt_f32_e32 = functools.partial(VOPC, VOPCOp.V_CMPX_LT_F32) -v_cmpx_eq_f32_e32 = functools.partial(VOPC, VOPCOp.V_CMPX_EQ_F32) -v_cmpx_le_f32_e32 = functools.partial(VOPC, VOPCOp.V_CMPX_LE_F32) -v_cmpx_gt_f32_e32 = functools.partial(VOPC, VOPCOp.V_CMPX_GT_F32) -v_cmpx_lg_f32_e32 = functools.partial(VOPC, VOPCOp.V_CMPX_LG_F32) -v_cmpx_ge_f32_e32 = functools.partial(VOPC, VOPCOp.V_CMPX_GE_F32) -v_cmpx_o_f32_e32 = functools.partial(VOPC, VOPCOp.V_CMPX_O_F32) -v_cmpx_u_f32_e32 = functools.partial(VOPC, VOPCOp.V_CMPX_U_F32) -v_cmpx_nge_f32_e32 = functools.partial(VOPC, VOPCOp.V_CMPX_NGE_F32) -v_cmpx_nlg_f32_e32 = functools.partial(VOPC, VOPCOp.V_CMPX_NLG_F32) -v_cmpx_ngt_f32_e32 = functools.partial(VOPC, VOPCOp.V_CMPX_NGT_F32) -v_cmpx_nle_f32_e32 = functools.partial(VOPC, VOPCOp.V_CMPX_NLE_F32) -v_cmpx_neq_f32_e32 = functools.partial(VOPC, VOPCOp.V_CMPX_NEQ_F32) -v_cmpx_nlt_f32_e32 = functools.partial(VOPC, VOPCOp.V_CMPX_NLT_F32) -v_cmpx_tru_f32_e32 = functools.partial(VOPC, VOPCOp.V_CMPX_TRU_F32) -v_cmp_f_f64_e32 = functools.partial(VOPC, VOPCOp.V_CMP_F_F64) -v_cmp_lt_f64_e32 = functools.partial(VOPC, VOPCOp.V_CMP_LT_F64) -v_cmp_eq_f64_e32 = functools.partial(VOPC, VOPCOp.V_CMP_EQ_F64) -v_cmp_le_f64_e32 = functools.partial(VOPC, VOPCOp.V_CMP_LE_F64) -v_cmp_gt_f64_e32 = functools.partial(VOPC, VOPCOp.V_CMP_GT_F64) -v_cmp_lg_f64_e32 = functools.partial(VOPC, VOPCOp.V_CMP_LG_F64) -v_cmp_ge_f64_e32 = functools.partial(VOPC, VOPCOp.V_CMP_GE_F64) -v_cmp_o_f64_e32 = functools.partial(VOPC, VOPCOp.V_CMP_O_F64) -v_cmp_u_f64_e32 = functools.partial(VOPC, VOPCOp.V_CMP_U_F64) -v_cmp_nge_f64_e32 = functools.partial(VOPC, VOPCOp.V_CMP_NGE_F64) -v_cmp_nlg_f64_e32 = functools.partial(VOPC, VOPCOp.V_CMP_NLG_F64) -v_cmp_ngt_f64_e32 = functools.partial(VOPC, VOPCOp.V_CMP_NGT_F64) -v_cmp_nle_f64_e32 = functools.partial(VOPC, VOPCOp.V_CMP_NLE_F64) -v_cmp_neq_f64_e32 = functools.partial(VOPC, VOPCOp.V_CMP_NEQ_F64) -v_cmp_nlt_f64_e32 = functools.partial(VOPC, VOPCOp.V_CMP_NLT_F64) -v_cmp_tru_f64_e32 = functools.partial(VOPC, VOPCOp.V_CMP_TRU_F64) -v_cmpx_f_f64_e32 = functools.partial(VOPC, VOPCOp.V_CMPX_F_F64) -v_cmpx_lt_f64_e32 = functools.partial(VOPC, VOPCOp.V_CMPX_LT_F64) -v_cmpx_eq_f64_e32 = functools.partial(VOPC, VOPCOp.V_CMPX_EQ_F64) -v_cmpx_le_f64_e32 = functools.partial(VOPC, VOPCOp.V_CMPX_LE_F64) -v_cmpx_gt_f64_e32 = functools.partial(VOPC, VOPCOp.V_CMPX_GT_F64) -v_cmpx_lg_f64_e32 = functools.partial(VOPC, VOPCOp.V_CMPX_LG_F64) -v_cmpx_ge_f64_e32 = functools.partial(VOPC, VOPCOp.V_CMPX_GE_F64) -v_cmpx_o_f64_e32 = functools.partial(VOPC, VOPCOp.V_CMPX_O_F64) -v_cmpx_u_f64_e32 = functools.partial(VOPC, VOPCOp.V_CMPX_U_F64) -v_cmpx_nge_f64_e32 = functools.partial(VOPC, VOPCOp.V_CMPX_NGE_F64) -v_cmpx_nlg_f64_e32 = functools.partial(VOPC, VOPCOp.V_CMPX_NLG_F64) -v_cmpx_ngt_f64_e32 = functools.partial(VOPC, VOPCOp.V_CMPX_NGT_F64) -v_cmpx_nle_f64_e32 = functools.partial(VOPC, VOPCOp.V_CMPX_NLE_F64) -v_cmpx_neq_f64_e32 = functools.partial(VOPC, VOPCOp.V_CMPX_NEQ_F64) -v_cmpx_nlt_f64_e32 = functools.partial(VOPC, VOPCOp.V_CMPX_NLT_F64) -v_cmpx_tru_f64_e32 = functools.partial(VOPC, VOPCOp.V_CMPX_TRU_F64) -v_cmp_f_i16_e32 = functools.partial(VOPC, VOPCOp.V_CMP_F_I16) -v_cmp_lt_i16_e32 = functools.partial(VOPC, VOPCOp.V_CMP_LT_I16) -v_cmp_eq_i16_e32 = functools.partial(VOPC, VOPCOp.V_CMP_EQ_I16) -v_cmp_le_i16_e32 = functools.partial(VOPC, VOPCOp.V_CMP_LE_I16) -v_cmp_gt_i16_e32 = functools.partial(VOPC, VOPCOp.V_CMP_GT_I16) -v_cmp_ne_i16_e32 = functools.partial(VOPC, VOPCOp.V_CMP_NE_I16) -v_cmp_ge_i16_e32 = functools.partial(VOPC, VOPCOp.V_CMP_GE_I16) -v_cmp_t_i16_e32 = functools.partial(VOPC, VOPCOp.V_CMP_T_I16) -v_cmp_f_u16_e32 = functools.partial(VOPC, VOPCOp.V_CMP_F_U16) -v_cmp_lt_u16_e32 = functools.partial(VOPC, VOPCOp.V_CMP_LT_U16) -v_cmp_eq_u16_e32 = functools.partial(VOPC, VOPCOp.V_CMP_EQ_U16) -v_cmp_le_u16_e32 = functools.partial(VOPC, VOPCOp.V_CMP_LE_U16) -v_cmp_gt_u16_e32 = functools.partial(VOPC, VOPCOp.V_CMP_GT_U16) -v_cmp_ne_u16_e32 = functools.partial(VOPC, VOPCOp.V_CMP_NE_U16) -v_cmp_ge_u16_e32 = functools.partial(VOPC, VOPCOp.V_CMP_GE_U16) -v_cmp_t_u16_e32 = functools.partial(VOPC, VOPCOp.V_CMP_T_U16) -v_cmpx_f_i16_e32 = functools.partial(VOPC, VOPCOp.V_CMPX_F_I16) -v_cmpx_lt_i16_e32 = functools.partial(VOPC, VOPCOp.V_CMPX_LT_I16) -v_cmpx_eq_i16_e32 = functools.partial(VOPC, VOPCOp.V_CMPX_EQ_I16) -v_cmpx_le_i16_e32 = functools.partial(VOPC, VOPCOp.V_CMPX_LE_I16) -v_cmpx_gt_i16_e32 = functools.partial(VOPC, VOPCOp.V_CMPX_GT_I16) -v_cmpx_ne_i16_e32 = functools.partial(VOPC, VOPCOp.V_CMPX_NE_I16) -v_cmpx_ge_i16_e32 = functools.partial(VOPC, VOPCOp.V_CMPX_GE_I16) -v_cmpx_t_i16_e32 = functools.partial(VOPC, VOPCOp.V_CMPX_T_I16) -v_cmpx_f_u16_e32 = functools.partial(VOPC, VOPCOp.V_CMPX_F_U16) -v_cmpx_lt_u16_e32 = functools.partial(VOPC, VOPCOp.V_CMPX_LT_U16) -v_cmpx_eq_u16_e32 = functools.partial(VOPC, VOPCOp.V_CMPX_EQ_U16) -v_cmpx_le_u16_e32 = functools.partial(VOPC, VOPCOp.V_CMPX_LE_U16) -v_cmpx_gt_u16_e32 = functools.partial(VOPC, VOPCOp.V_CMPX_GT_U16) -v_cmpx_ne_u16_e32 = functools.partial(VOPC, VOPCOp.V_CMPX_NE_U16) -v_cmpx_ge_u16_e32 = functools.partial(VOPC, VOPCOp.V_CMPX_GE_U16) -v_cmpx_t_u16_e32 = functools.partial(VOPC, VOPCOp.V_CMPX_T_U16) -v_cmp_f_i32_e32 = functools.partial(VOPC, VOPCOp.V_CMP_F_I32) -v_cmp_lt_i32_e32 = functools.partial(VOPC, VOPCOp.V_CMP_LT_I32) -v_cmp_eq_i32_e32 = functools.partial(VOPC, VOPCOp.V_CMP_EQ_I32) -v_cmp_le_i32_e32 = functools.partial(VOPC, VOPCOp.V_CMP_LE_I32) -v_cmp_gt_i32_e32 = functools.partial(VOPC, VOPCOp.V_CMP_GT_I32) -v_cmp_ne_i32_e32 = functools.partial(VOPC, VOPCOp.V_CMP_NE_I32) -v_cmp_ge_i32_e32 = functools.partial(VOPC, VOPCOp.V_CMP_GE_I32) -v_cmp_t_i32_e32 = functools.partial(VOPC, VOPCOp.V_CMP_T_I32) -v_cmp_f_u32_e32 = functools.partial(VOPC, VOPCOp.V_CMP_F_U32) -v_cmp_lt_u32_e32 = functools.partial(VOPC, VOPCOp.V_CMP_LT_U32) -v_cmp_eq_u32_e32 = functools.partial(VOPC, VOPCOp.V_CMP_EQ_U32) -v_cmp_le_u32_e32 = functools.partial(VOPC, VOPCOp.V_CMP_LE_U32) -v_cmp_gt_u32_e32 = functools.partial(VOPC, VOPCOp.V_CMP_GT_U32) -v_cmp_ne_u32_e32 = functools.partial(VOPC, VOPCOp.V_CMP_NE_U32) -v_cmp_ge_u32_e32 = functools.partial(VOPC, VOPCOp.V_CMP_GE_U32) -v_cmp_t_u32_e32 = functools.partial(VOPC, VOPCOp.V_CMP_T_U32) -v_cmpx_f_i32_e32 = functools.partial(VOPC, VOPCOp.V_CMPX_F_I32) -v_cmpx_lt_i32_e32 = functools.partial(VOPC, VOPCOp.V_CMPX_LT_I32) -v_cmpx_eq_i32_e32 = functools.partial(VOPC, VOPCOp.V_CMPX_EQ_I32) -v_cmpx_le_i32_e32 = functools.partial(VOPC, VOPCOp.V_CMPX_LE_I32) -v_cmpx_gt_i32_e32 = functools.partial(VOPC, VOPCOp.V_CMPX_GT_I32) -v_cmpx_ne_i32_e32 = functools.partial(VOPC, VOPCOp.V_CMPX_NE_I32) -v_cmpx_ge_i32_e32 = functools.partial(VOPC, VOPCOp.V_CMPX_GE_I32) -v_cmpx_t_i32_e32 = functools.partial(VOPC, VOPCOp.V_CMPX_T_I32) -v_cmpx_f_u32_e32 = functools.partial(VOPC, VOPCOp.V_CMPX_F_U32) -v_cmpx_lt_u32_e32 = functools.partial(VOPC, VOPCOp.V_CMPX_LT_U32) -v_cmpx_eq_u32_e32 = functools.partial(VOPC, VOPCOp.V_CMPX_EQ_U32) -v_cmpx_le_u32_e32 = functools.partial(VOPC, VOPCOp.V_CMPX_LE_U32) -v_cmpx_gt_u32_e32 = functools.partial(VOPC, VOPCOp.V_CMPX_GT_U32) -v_cmpx_ne_u32_e32 = functools.partial(VOPC, VOPCOp.V_CMPX_NE_U32) -v_cmpx_ge_u32_e32 = functools.partial(VOPC, VOPCOp.V_CMPX_GE_U32) -v_cmpx_t_u32_e32 = functools.partial(VOPC, VOPCOp.V_CMPX_T_U32) -v_cmp_f_i64_e32 = functools.partial(VOPC, VOPCOp.V_CMP_F_I64) -v_cmp_lt_i64_e32 = functools.partial(VOPC, VOPCOp.V_CMP_LT_I64) -v_cmp_eq_i64_e32 = functools.partial(VOPC, VOPCOp.V_CMP_EQ_I64) -v_cmp_le_i64_e32 = functools.partial(VOPC, VOPCOp.V_CMP_LE_I64) -v_cmp_gt_i64_e32 = functools.partial(VOPC, VOPCOp.V_CMP_GT_I64) -v_cmp_ne_i64_e32 = functools.partial(VOPC, VOPCOp.V_CMP_NE_I64) -v_cmp_ge_i64_e32 = functools.partial(VOPC, VOPCOp.V_CMP_GE_I64) -v_cmp_t_i64_e32 = functools.partial(VOPC, VOPCOp.V_CMP_T_I64) -v_cmp_f_u64_e32 = functools.partial(VOPC, VOPCOp.V_CMP_F_U64) -v_cmp_lt_u64_e32 = functools.partial(VOPC, VOPCOp.V_CMP_LT_U64) -v_cmp_eq_u64_e32 = functools.partial(VOPC, VOPCOp.V_CMP_EQ_U64) -v_cmp_le_u64_e32 = functools.partial(VOPC, VOPCOp.V_CMP_LE_U64) -v_cmp_gt_u64_e32 = functools.partial(VOPC, VOPCOp.V_CMP_GT_U64) -v_cmp_ne_u64_e32 = functools.partial(VOPC, VOPCOp.V_CMP_NE_U64) -v_cmp_ge_u64_e32 = functools.partial(VOPC, VOPCOp.V_CMP_GE_U64) -v_cmp_t_u64_e32 = functools.partial(VOPC, VOPCOp.V_CMP_T_U64) -v_cmpx_f_i64_e32 = functools.partial(VOPC, VOPCOp.V_CMPX_F_I64) -v_cmpx_lt_i64_e32 = functools.partial(VOPC, VOPCOp.V_CMPX_LT_I64) -v_cmpx_eq_i64_e32 = functools.partial(VOPC, VOPCOp.V_CMPX_EQ_I64) -v_cmpx_le_i64_e32 = functools.partial(VOPC, VOPCOp.V_CMPX_LE_I64) -v_cmpx_gt_i64_e32 = functools.partial(VOPC, VOPCOp.V_CMPX_GT_I64) -v_cmpx_ne_i64_e32 = functools.partial(VOPC, VOPCOp.V_CMPX_NE_I64) -v_cmpx_ge_i64_e32 = functools.partial(VOPC, VOPCOp.V_CMPX_GE_I64) -v_cmpx_t_i64_e32 = functools.partial(VOPC, VOPCOp.V_CMPX_T_I64) -v_cmpx_f_u64_e32 = functools.partial(VOPC, VOPCOp.V_CMPX_F_U64) -v_cmpx_lt_u64_e32 = functools.partial(VOPC, VOPCOp.V_CMPX_LT_U64) -v_cmpx_eq_u64_e32 = functools.partial(VOPC, VOPCOp.V_CMPX_EQ_U64) -v_cmpx_le_u64_e32 = functools.partial(VOPC, VOPCOp.V_CMPX_LE_U64) -v_cmpx_gt_u64_e32 = functools.partial(VOPC, VOPCOp.V_CMPX_GT_U64) -v_cmpx_ne_u64_e32 = functools.partial(VOPC, VOPCOp.V_CMPX_NE_U64) -v_cmpx_ge_u64_e32 = functools.partial(VOPC, VOPCOp.V_CMPX_GE_U64) -v_cmpx_t_u64_e32 = functools.partial(VOPC, VOPCOp.V_CMPX_T_U64) -cdna4_e32 = functools.partial(VOPC, VOPCOp.CDNA4) - -S_ADD_U32 = SrcEnum.S_ADD_U32 -S_SUB_U32 = SrcEnum.S_SUB_U32 -S_ADD_I32 = SrcEnum.S_ADD_I32 -S_SUB_I32 = SrcEnum.S_SUB_I32 -S_ADDC_U32 = SrcEnum.S_ADDC_U32 -S_SUBB_U32 = SrcEnum.S_SUBB_U32 -S_MIN_I32 = SrcEnum.S_MIN_I32 -FLAT_SCRATCH_LO = SrcEnum.FLAT_SCRATCH_LO -FLAT_SCRATCH_HI = SrcEnum.FLAT_SCRATCH_HI -XNACK_MASK_LO = SrcEnum.XNACK_MASK_LO -XNACK_MASK_HI = SrcEnum.XNACK_MASK_HI -VCC_LO = SrcEnum.VCC_LO -VCC_HI = SrcEnum.VCC_HI -M0 = SrcEnum.M0 -EXEC_LO = SrcEnum.EXEC_LO -EXEC_HI = SrcEnum.EXEC_HI -ZERO = SrcEnum.ZERO -DPP8FI = SrcEnum.DPP8FI -SHARED_BASE = SrcEnum.SHARED_BASE -SHARED_LIMIT = SrcEnum.SHARED_LIMIT -PRIVATE_BASE = SrcEnum.PRIVATE_BASE -PRIVATE_LIMIT = SrcEnum.PRIVATE_LIMIT -RESERVED = SrcEnum.RESERVED -POS_HALF = SrcEnum.POS_HALF -NEG_HALF = SrcEnum.NEG_HALF -POS_ONE = SrcEnum.POS_ONE -NEG_ONE = SrcEnum.NEG_ONE -POS_TWO = SrcEnum.POS_TWO -NEG_TWO = SrcEnum.NEG_TWO -POS_FOUR = SrcEnum.POS_FOUR -NEG_FOUR = SrcEnum.NEG_FOUR -INV_2PI = SrcEnum.INV_2PI -VCCZ = SrcEnum.VCCZ -EXECZ = SrcEnum.EXECZ -SCC = SrcEnum.SCC -LDS_DIRECT = SrcEnum.LDS_DIRECT \ No newline at end of file diff --git a/extra/assembly/amd/autogen/cdna/enum.py b/extra/assembly/amd/autogen/cdna/enum.py new file mode 100644 index 0000000000..4d63278a22 --- /dev/null +++ b/extra/assembly/amd/autogen/cdna/enum.py @@ -0,0 +1,1651 @@ +# autogenerated from AMD CDNA3+CDNA4 ISA PDF by pdf.py - do not edit +from enum import IntEnum + +class SrcEnum(IntEnum): + S_ADD_U32 = 0 + S_SUB_U32 = 1 + S_ADD_I32 = 2 + S_SUB_I32 = 3 + S_ADDC_U32 = 4 + S_SUBB_U32 = 5 + S_MIN_I32 = 6 + FLAT_SCRATCH_LO = 102 + FLAT_SCRATCH_HI = 103 + XNACK_MASK_LO = 104 + XNACK_MASK_HI = 105 + VCC_LO = 106 + VCC_HI = 107 + M0 = 124 + EXEC_LO = 126 + EXEC_HI = 127 + ZERO = 128 + DPP8 = 233 + DPP8FI = 234 + SHARED_BASE = 235 + SHARED_LIMIT = 236 + PRIVATE_BASE = 237 + PRIVATE_LIMIT = 238 + RESERVED = 239 + POS_HALF = 240 + NEG_HALF = 241 + POS_ONE = 242 + NEG_ONE = 243 + POS_TWO = 244 + NEG_TWO = 245 + POS_FOUR = 246 + NEG_FOUR = 247 + INV_2PI = 248 + DPP16 = 250 + VCCZ = 251 + EXECZ = 252 + SCC = 253 + LDS_DIRECT = 254 + +class DSOp(IntEnum): + DS_ADD_U32 = 0 + DS_SUB_U32 = 1 + DS_RSUB_U32 = 2 + DS_INC_U32 = 3 + DS_DEC_U32 = 4 + DS_MIN_I32 = 5 + DS_MAX_I32 = 6 + DS_MIN_U32 = 7 + DS_MAX_U32 = 8 + DS_AND_B32 = 9 + DS_OR_B32 = 10 + DS_XOR_B32 = 11 + DS_MSKOR_B32 = 12 + DS_WRITE_B32 = 13 + DS_WRITE2_B32 = 14 + DS_WRITE2ST64_B32 = 15 + DS_CMPST_B32 = 16 + DS_CMPST_F32 = 17 + DS_MIN_F32 = 18 + DS_MAX_F32 = 19 + DS_NOP = 20 + DS_ADD_F32 = 21 + DS_PK_ADD_F16 = 23 + DS_PK_ADD_BF16 = 24 + DS_WRITE_ADDTID_B32 = 29 + DS_WRITE_B8 = 30 + DS_WRITE_B16 = 31 + DS_ADD_RTN_U32 = 32 + DS_SUB_RTN_U32 = 33 + DS_RSUB_RTN_U32 = 34 + DS_INC_RTN_U32 = 35 + DS_DEC_RTN_U32 = 36 + DS_MIN_RTN_I32 = 37 + DS_MAX_RTN_I32 = 38 + DS_MIN_RTN_U32 = 39 + DS_MAX_RTN_U32 = 40 + DS_AND_RTN_B32 = 41 + DS_OR_RTN_B32 = 42 + DS_XOR_RTN_B32 = 43 + DS_MSKOR_RTN_B32 = 44 + DS_WRXCHG_RTN_B32 = 45 + DS_WRXCHG2_RTN_B32 = 46 + DS_WRXCHG2ST64_RTN_B32 = 47 + DS_CMPST_RTN_B32 = 48 + DS_CMPST_RTN_F32 = 49 + DS_MIN_RTN_F32 = 50 + DS_MAX_RTN_F32 = 51 + DS_WRAP_RTN_B32 = 52 + DS_ADD_RTN_F32 = 53 + DS_READ_B32 = 54 + DS_READ2_B32 = 55 + DS_READ2ST64_B32 = 56 + DS_READ_I8 = 57 + DS_READ_U8 = 58 + DS_READ_I16 = 59 + DS_READ_U16 = 60 + DS_SWIZZLE_B32 = 61 + DS_PERMUTE_B32 = 62 + DS_BPERMUTE_B32 = 63 + DS_ADD_U64 = 64 + DS_SUB_U64 = 65 + DS_RSUB_U64 = 66 + DS_INC_U64 = 67 + DS_DEC_U64 = 68 + DS_MIN_I64 = 69 + DS_MAX_I64 = 70 + DS_MIN_U64 = 71 + DS_MAX_U64 = 72 + DS_AND_B64 = 73 + DS_OR_B64 = 74 + DS_XOR_B64 = 75 + DS_MSKOR_B64 = 76 + DS_WRITE_B64 = 77 + DS_WRITE2_B64 = 78 + DS_WRITE2ST64_B64 = 79 + DS_CMPST_B64 = 80 + DS_CMPST_F64 = 81 + DS_MIN_F64 = 82 + DS_MAX_F64 = 83 + DS_WRITE_B8_D16_HI = 84 + DS_WRITE_B16_D16_HI = 85 + DS_READ_U8_D16 = 86 + DS_READ_U8_D16_HI = 87 + DS_READ_I8_D16 = 88 + DS_READ_I8_D16_HI = 89 + DS_READ_U16_D16 = 90 + DS_READ_U16_D16_HI = 91 + DS_ADD_F64 = 92 + DS_ADD_RTN_U64 = 96 + DS_SUB_RTN_U64 = 97 + DS_RSUB_RTN_U64 = 98 + DS_INC_RTN_U64 = 99 + DS_DEC_RTN_U64 = 100 + DS_MIN_RTN_I64 = 101 + DS_MAX_RTN_I64 = 102 + DS_MIN_RTN_U64 = 103 + DS_MAX_RTN_U64 = 104 + DS_AND_RTN_B64 = 105 + DS_OR_RTN_B64 = 106 + DS_XOR_RTN_B64 = 107 + DS_MSKOR_RTN_B64 = 108 + DS_WRXCHG_RTN_B64 = 109 + DS_WRXCHG2_RTN_B64 = 110 + DS_WRXCHG2ST64_RTN_B64 = 111 + DS_CMPST_RTN_B64 = 112 + DS_CMPST_RTN_F64 = 113 + DS_MIN_RTN_F64 = 114 + DS_MAX_RTN_F64 = 115 + DS_READ_B64 = 118 + DS_READ2_B64 = 119 + DS_READ2ST64_B64 = 120 + DS_ADD_RTN_F64 = 124 + DS_CONDXCHG32_RTN_B64 = 126 + DS_GWS_SEMA_RELEASE_ALL = 152 + DS_GWS_INIT = 153 + DS_GWS_SEMA_V = 154 + DS_GWS_SEMA_BR = 155 + DS_GWS_SEMA_P = 156 + DS_GWS_BARRIER = 157 + DS_READ_ADDTID_B32 = 182 + DS_PK_ADD_RTN_F16 = 183 + DS_PK_ADD_RTN_BF16 = 184 + DS_CONSUME = 189 + DS_APPEND = 190 + DS_WRITE_B96 = 222 + DS_WRITE_B128 = 223 + DS_READ_B64_TR_B4 = 224 + DS_READ_B96_TR_B6 = 225 + DS_READ_B64_TR_B8 = 226 + DS_READ_B64_TR_B16 = 227 + DS_READ_B96 = 254 + DS_READ_B128 = 255 + CDNA4 = 600 + +class FLATOp(IntEnum): + FLAT_LOAD_UBYTE = 16 + FLAT_LOAD_SBYTE = 17 + FLAT_LOAD_USHORT = 18 + FLAT_LOAD_SSHORT = 19 + FLAT_LOAD_DWORD = 20 + FLAT_LOAD_DWORDX2 = 21 + FLAT_LOAD_DWORDX3 = 22 + FLAT_LOAD_DWORDX4 = 23 + FLAT_STORE_BYTE = 24 + FLAT_STORE_BYTE_D16_HI = 25 + FLAT_STORE_SHORT = 26 + FLAT_STORE_SHORT_D16_HI = 27 + FLAT_STORE_DWORD = 28 + FLAT_STORE_DWORDX2 = 29 + FLAT_STORE_DWORDX3 = 30 + FLAT_STORE_DWORDX4 = 31 + FLAT_LOAD_UBYTE_D16 = 32 + FLAT_LOAD_UBYTE_D16_HI = 33 + FLAT_LOAD_SBYTE_D16 = 34 + FLAT_LOAD_SBYTE_D16_HI = 35 + FLAT_LOAD_SHORT_D16 = 36 + FLAT_LOAD_SHORT_D16_HI = 37 + FLAT_ATOMIC_SWAP = 64 + FLAT_ATOMIC_CMPSWAP = 65 + FLAT_ATOMIC_ADD = 66 + FLAT_ATOMIC_SUB = 67 + FLAT_ATOMIC_SMIN = 68 + FLAT_ATOMIC_UMIN = 69 + FLAT_ATOMIC_SMAX = 70 + FLAT_ATOMIC_UMAX = 71 + FLAT_ATOMIC_AND = 72 + FLAT_ATOMIC_OR = 73 + FLAT_ATOMIC_XOR = 74 + FLAT_ATOMIC_INC = 75 + FLAT_ATOMIC_DEC = 76 + FLAT_ATOMIC_ADD_F32 = 77 + FLAT_ATOMIC_PK_ADD_F16 = 78 + FLAT_ATOMIC_ADD_F64 = 79 + FLAT_ATOMIC_MIN_F64 = 80 + FLAT_ATOMIC_MAX_F64 = 81 + FLAT_ATOMIC_PK_ADD_BF16 = 82 + FLAT_ATOMIC_SWAP_X2 = 96 + FLAT_ATOMIC_CMPSWAP_X2 = 97 + FLAT_ATOMIC_ADD_X2 = 98 + FLAT_ATOMIC_SUB_X2 = 99 + FLAT_ATOMIC_SMIN_X2 = 100 + FLAT_ATOMIC_UMIN_X2 = 101 + FLAT_ATOMIC_SMAX_X2 = 102 + FLAT_ATOMIC_UMAX_X2 = 103 + FLAT_ATOMIC_AND_X2 = 104 + FLAT_ATOMIC_OR_X2 = 105 + FLAT_ATOMIC_XOR_X2 = 106 + FLAT_ATOMIC_INC_X2 = 107 + FLAT_ATOMIC_DEC_X2 = 108 + CDNA4 = 600 + +class GLOBALOp(IntEnum): + GLOBAL_LOAD_UBYTE = 16 + GLOBAL_LOAD_SBYTE = 17 + GLOBAL_LOAD_USHORT = 18 + GLOBAL_LOAD_SSHORT = 19 + GLOBAL_LOAD_DWORD = 20 + GLOBAL_LOAD_DWORDX2 = 21 + GLOBAL_LOAD_DWORDX3 = 22 + GLOBAL_LOAD_DWORDX4 = 23 + GLOBAL_STORE_BYTE = 24 + GLOBAL_STORE_BYTE_D16_HI = 25 + GLOBAL_STORE_SHORT = 26 + GLOBAL_STORE_SHORT_D16_HI = 27 + GLOBAL_STORE_DWORD = 28 + GLOBAL_STORE_DWORDX2 = 29 + GLOBAL_STORE_DWORDX3 = 30 + GLOBAL_STORE_DWORDX4 = 31 + GLOBAL_LOAD_UBYTE_D16 = 32 + GLOBAL_LOAD_UBYTE_D16_HI = 33 + GLOBAL_LOAD_SBYTE_D16 = 34 + GLOBAL_LOAD_SBYTE_D16_HI = 35 + GLOBAL_LOAD_SHORT_D16 = 36 + GLOBAL_LOAD_SHORT_D16_HI = 37 + GLOBAL_LOAD_LDS_UBYTE = 38 + GLOBAL_LOAD_LDS_SBYTE = 39 + GLOBAL_LOAD_LDS_USHORT = 40 + GLOBAL_LOAD_LDS_SSHORT = 41 + GLOBAL_LOAD_LDS_DWORD = 42 + GLOBAL_ATOMIC_SWAP = 64 + GLOBAL_ATOMIC_CMPSWAP = 65 + GLOBAL_ATOMIC_ADD = 66 + GLOBAL_ATOMIC_SUB = 67 + GLOBAL_ATOMIC_SMIN = 68 + GLOBAL_ATOMIC_UMIN = 69 + GLOBAL_ATOMIC_SMAX = 70 + GLOBAL_ATOMIC_UMAX = 71 + GLOBAL_ATOMIC_AND = 72 + GLOBAL_ATOMIC_OR = 73 + GLOBAL_ATOMIC_XOR = 74 + GLOBAL_ATOMIC_INC = 75 + GLOBAL_ATOMIC_DEC = 76 + GLOBAL_ATOMIC_ADD_F32 = 77 + GLOBAL_ATOMIC_PK_ADD_F16 = 78 + GLOBAL_ATOMIC_ADD_F64 = 79 + GLOBAL_ATOMIC_MIN_F64 = 80 + GLOBAL_ATOMIC_MAX_F64 = 81 + GLOBAL_ATOMIC_PK_ADD_BF16 = 82 + GLOBAL_ATOMIC_SWAP_X2 = 96 + GLOBAL_ATOMIC_CMPSWAP_X2 = 97 + GLOBAL_ATOMIC_ADD_X2 = 98 + GLOBAL_ATOMIC_SUB_X2 = 99 + GLOBAL_ATOMIC_SMIN_X2 = 100 + GLOBAL_ATOMIC_UMIN_X2 = 101 + GLOBAL_ATOMIC_SMAX_X2 = 102 + GLOBAL_ATOMIC_UMAX_X2 = 103 + GLOBAL_ATOMIC_AND_X2 = 104 + GLOBAL_ATOMIC_OR_X2 = 105 + GLOBAL_ATOMIC_XOR_X2 = 106 + GLOBAL_ATOMIC_INC_X2 = 107 + GLOBAL_ATOMIC_DEC_X2 = 108 + GLOBAL_LOAD_LDS_DWORDX4 = 125 + GLOBAL_LOAD_LDS_DWORDX3 = 126 + CDNA4 = 600 + +class MTBUFOp(IntEnum): + TBUFFER_LOAD_FORMAT_X = 0 + TBUFFER_LOAD_FORMAT_XY = 1 + TBUFFER_LOAD_FORMAT_XYZ = 2 + TBUFFER_LOAD_FORMAT_XYZW = 3 + TBUFFER_STORE_FORMAT_X = 4 + TBUFFER_STORE_FORMAT_XY = 5 + TBUFFER_STORE_FORMAT_XYZ = 6 + TBUFFER_STORE_FORMAT_XYZW = 7 + TBUFFER_LOAD_FORMAT_D16_X = 8 + TBUFFER_LOAD_FORMAT_D16_XY = 9 + TBUFFER_LOAD_FORMAT_D16_XYZ = 10 + TBUFFER_LOAD_FORMAT_D16_XYZW = 11 + TBUFFER_STORE_FORMAT_D16_X = 12 + TBUFFER_STORE_FORMAT_D16_XY = 13 + TBUFFER_STORE_FORMAT_D16_XYZ = 14 + TBUFFER_STORE_FORMAT_D16_XYZW = 15 + +class MUBUFOp(IntEnum): + BUFFER_LOAD_FORMAT_X = 0 + BUFFER_LOAD_FORMAT_XY = 1 + BUFFER_LOAD_FORMAT_XYZ = 2 + BUFFER_LOAD_FORMAT_XYZW = 3 + BUFFER_STORE_FORMAT_X = 4 + BUFFER_STORE_FORMAT_XY = 5 + BUFFER_STORE_FORMAT_XYZ = 6 + BUFFER_STORE_FORMAT_XYZW = 7 + BUFFER_LOAD_FORMAT_D16_X = 8 + BUFFER_LOAD_FORMAT_D16_XY = 9 + BUFFER_LOAD_FORMAT_D16_XYZ = 10 + BUFFER_LOAD_FORMAT_D16_XYZW = 11 + BUFFER_STORE_FORMAT_D16_X = 12 + BUFFER_STORE_FORMAT_D16_XY = 13 + BUFFER_STORE_FORMAT_D16_XYZ = 14 + BUFFER_STORE_FORMAT_D16_XYZW = 15 + BUFFER_LOAD_UBYTE = 16 + BUFFER_LOAD_SBYTE = 17 + BUFFER_LOAD_USHORT = 18 + BUFFER_LOAD_SSHORT = 19 + BUFFER_LOAD_DWORD = 20 + BUFFER_LOAD_DWORDX2 = 21 + BUFFER_LOAD_DWORDX3 = 22 + BUFFER_LOAD_DWORDX4 = 23 + BUFFER_STORE_BYTE = 24 + BUFFER_STORE_BYTE_D16_HI = 25 + BUFFER_STORE_SHORT = 26 + BUFFER_STORE_SHORT_D16_HI = 27 + BUFFER_STORE_DWORD = 28 + BUFFER_STORE_DWORDX2 = 29 + BUFFER_STORE_DWORDX3 = 30 + BUFFER_STORE_DWORDX4 = 31 + BUFFER_LOAD_UBYTE_D16 = 32 + BUFFER_LOAD_UBYTE_D16_HI = 33 + BUFFER_LOAD_SBYTE_D16 = 34 + BUFFER_LOAD_SBYTE_D16_HI = 35 + BUFFER_LOAD_SHORT_D16 = 36 + BUFFER_LOAD_SHORT_D16_HI = 37 + BUFFER_LOAD_FORMAT_D16_HI_X = 38 + BUFFER_STORE_FORMAT_D16_HI_X = 39 + BUFFER_WBL2 = 40 + BUFFER_INV = 41 + BUFFER_ATOMIC_SWAP = 64 + BUFFER_ATOMIC_CMPSWAP = 65 + BUFFER_ATOMIC_ADD = 66 + BUFFER_ATOMIC_SUB = 67 + BUFFER_ATOMIC_SMIN = 68 + BUFFER_ATOMIC_UMIN = 69 + BUFFER_ATOMIC_SMAX = 70 + BUFFER_ATOMIC_UMAX = 71 + BUFFER_ATOMIC_AND = 72 + BUFFER_ATOMIC_OR = 73 + BUFFER_ATOMIC_XOR = 74 + BUFFER_ATOMIC_INC = 75 + BUFFER_ATOMIC_DEC = 76 + BUFFER_ATOMIC_ADD_F32 = 77 + BUFFER_ATOMIC_PK_ADD_F16 = 78 + BUFFER_ATOMIC_ADD_F64 = 79 + BUFFER_ATOMIC_MIN_F64 = 80 + BUFFER_ATOMIC_MAX_F64 = 81 + BUFFER_ATOMIC_PK_ADD_BF16 = 82 + BUFFER_ATOMIC_SWAP_X2 = 96 + BUFFER_ATOMIC_CMPSWAP_X2 = 97 + BUFFER_ATOMIC_ADD_X2 = 98 + BUFFER_ATOMIC_SUB_X2 = 99 + BUFFER_ATOMIC_SMIN_X2 = 100 + BUFFER_ATOMIC_UMIN_X2 = 101 + BUFFER_ATOMIC_SMAX_X2 = 102 + BUFFER_ATOMIC_UMAX_X2 = 103 + BUFFER_ATOMIC_AND_X2 = 104 + BUFFER_ATOMIC_OR_X2 = 105 + BUFFER_ATOMIC_XOR_X2 = 106 + BUFFER_ATOMIC_INC_X2 = 107 + BUFFER_ATOMIC_DEC_X2 = 108 + CDNA4 = 600 + +class SCRATCHOp(IntEnum): + SCRATCH_LOAD_UBYTE = 16 + SCRATCH_LOAD_SBYTE = 17 + SCRATCH_LOAD_USHORT = 18 + SCRATCH_LOAD_SSHORT = 19 + SCRATCH_LOAD_DWORD = 20 + SCRATCH_LOAD_DWORDX2 = 21 + SCRATCH_LOAD_DWORDX3 = 22 + SCRATCH_LOAD_DWORDX4 = 23 + SCRATCH_STORE_BYTE = 24 + SCRATCH_STORE_BYTE_D16_HI = 25 + SCRATCH_STORE_SHORT = 26 + SCRATCH_STORE_SHORT_D16_HI = 27 + SCRATCH_STORE_DWORD = 28 + SCRATCH_STORE_DWORDX2 = 29 + SCRATCH_STORE_DWORDX3 = 30 + SCRATCH_STORE_DWORDX4 = 31 + SCRATCH_LOAD_UBYTE_D16 = 32 + SCRATCH_LOAD_UBYTE_D16_HI = 33 + SCRATCH_LOAD_SBYTE_D16 = 34 + SCRATCH_LOAD_SBYTE_D16_HI = 35 + SCRATCH_LOAD_SHORT_D16 = 36 + SCRATCH_LOAD_SHORT_D16_HI = 37 + SCRATCH_LOAD_LDS_UBYTE = 38 + SCRATCH_LOAD_LDS_SBYTE = 39 + SCRATCH_LOAD_LDS_USHORT = 40 + SCRATCH_LOAD_LDS_SSHORT = 41 + SCRATCH_LOAD_LDS_DWORD = 42 + +class SMEMOp(IntEnum): + S_LOAD_DWORD = 0 + S_LOAD_DWORDX2 = 1 + S_LOAD_DWORDX4 = 2 + S_LOAD_DWORDX8 = 3 + S_LOAD_DWORDX16 = 4 + S_SCRATCH_LOAD_DWORD = 5 + S_SCRATCH_LOAD_DWORDX2 = 6 + S_SCRATCH_LOAD_DWORDX4 = 7 + S_BUFFER_LOAD_DWORD = 8 + S_BUFFER_LOAD_DWORDX2 = 9 + S_BUFFER_LOAD_DWORDX4 = 10 + S_BUFFER_LOAD_DWORDX8 = 11 + S_BUFFER_LOAD_DWORDX16 = 12 + S_STORE_DWORD = 16 + S_STORE_DWORDX2 = 17 + S_STORE_DWORDX4 = 18 + S_SCRATCH_STORE_DWORD = 21 + S_SCRATCH_STORE_DWORDX2 = 22 + S_SCRATCH_STORE_DWORDX4 = 23 + S_BUFFER_STORE_DWORD = 24 + S_BUFFER_STORE_DWORDX2 = 25 + S_BUFFER_STORE_DWORDX4 = 26 + S_DCACHE_INV = 32 + S_DCACHE_WB = 33 + S_DCACHE_INV_VOL = 34 + S_DCACHE_WB_VOL = 35 + S_MEMTIME = 36 + S_MEMREALTIME = 37 + S_DCACHE_DISCARD = 40 + S_DCACHE_DISCARD_X2 = 41 + S_BUFFER_ATOMIC_SWAP = 64 + S_BUFFER_ATOMIC_CMPSWAP = 65 + S_BUFFER_ATOMIC_ADD = 66 + S_BUFFER_ATOMIC_SUB = 67 + S_BUFFER_ATOMIC_SMIN = 68 + S_BUFFER_ATOMIC_UMIN = 69 + S_BUFFER_ATOMIC_SMAX = 70 + S_BUFFER_ATOMIC_UMAX = 71 + S_BUFFER_ATOMIC_AND = 72 + S_BUFFER_ATOMIC_OR = 73 + S_BUFFER_ATOMIC_XOR = 74 + S_BUFFER_ATOMIC_INC = 75 + S_BUFFER_ATOMIC_DEC = 76 + S_BUFFER_ATOMIC_SWAP_X2 = 96 + S_BUFFER_ATOMIC_CMPSWAP_X2 = 97 + S_BUFFER_ATOMIC_ADD_X2 = 98 + S_BUFFER_ATOMIC_SUB_X2 = 99 + S_BUFFER_ATOMIC_SMIN_X2 = 100 + S_BUFFER_ATOMIC_UMIN_X2 = 101 + S_BUFFER_ATOMIC_SMAX_X2 = 102 + S_BUFFER_ATOMIC_UMAX_X2 = 103 + S_BUFFER_ATOMIC_AND_X2 = 104 + S_BUFFER_ATOMIC_OR_X2 = 105 + S_BUFFER_ATOMIC_XOR_X2 = 106 + S_BUFFER_ATOMIC_INC_X2 = 107 + S_BUFFER_ATOMIC_DEC_X2 = 108 + S_ATOMIC_SWAP = 128 + S_ATOMIC_CMPSWAP = 129 + S_ATOMIC_ADD = 130 + S_ATOMIC_SUB = 131 + S_ATOMIC_SMIN = 132 + S_ATOMIC_UMIN = 133 + S_ATOMIC_SMAX = 134 + S_ATOMIC_UMAX = 135 + S_ATOMIC_AND = 136 + S_ATOMIC_OR = 137 + S_ATOMIC_XOR = 138 + S_ATOMIC_INC = 139 + S_ATOMIC_DEC = 140 + S_ATOMIC_SWAP_X2 = 160 + S_ATOMIC_CMPSWAP_X2 = 161 + S_ATOMIC_ADD_X2 = 162 + S_ATOMIC_SUB_X2 = 163 + S_ATOMIC_SMIN_X2 = 164 + S_ATOMIC_UMIN_X2 = 165 + S_ATOMIC_SMAX_X2 = 166 + S_ATOMIC_UMAX_X2 = 167 + S_ATOMIC_AND_X2 = 168 + S_ATOMIC_OR_X2 = 169 + S_ATOMIC_XOR_X2 = 170 + S_ATOMIC_INC_X2 = 171 + S_ATOMIC_DEC_X2 = 172 + CDNA4 = 600 + +class SOP1Op(IntEnum): + S_MOV_B32 = 0 + S_MOV_B64 = 1 + S_CMOV_B32 = 2 + S_CMOV_B64 = 3 + S_NOT_B32 = 4 + S_NOT_B64 = 5 + S_WQM_B32 = 6 + S_WQM_B64 = 7 + S_BREV_B32 = 8 + S_BREV_B64 = 9 + S_BCNT0_I32_B32 = 10 + S_BCNT0_I32_B64 = 11 + S_BCNT1_I32_B32 = 12 + S_BCNT1_I32_B64 = 13 + S_FF0_I32_B32 = 14 + S_FF0_I32_B64 = 15 + S_FF1_I32_B32 = 16 + S_FF1_I32_B64 = 17 + S_FLBIT_I32_B32 = 18 + S_FLBIT_I32_B64 = 19 + S_FLBIT_I32 = 20 + S_FLBIT_I32_I64 = 21 + S_SEXT_I32_I8 = 22 + S_SEXT_I32_I16 = 23 + S_BITSET0_B32 = 24 + S_BITSET0_B64 = 25 + S_BITSET1_B32 = 26 + S_BITSET1_B64 = 27 + S_GETPC_B64 = 28 + S_SETPC_B64 = 29 + S_SWAPPC_B64 = 30 + S_RFE_B64 = 31 + S_AND_SAVEEXEC_B64 = 32 + S_OR_SAVEEXEC_B64 = 33 + S_XOR_SAVEEXEC_B64 = 34 + S_ANDN2_SAVEEXEC_B64 = 35 + S_ORN2_SAVEEXEC_B64 = 36 + S_NAND_SAVEEXEC_B64 = 37 + S_NOR_SAVEEXEC_B64 = 38 + S_XNOR_SAVEEXEC_B64 = 39 + S_QUADMASK_B32 = 40 + S_QUADMASK_B64 = 41 + S_MOVRELS_B32 = 42 + S_MOVRELS_B64 = 43 + S_MOVRELD_B32 = 44 + S_MOVRELD_B64 = 45 + S_CBRANCH_JOIN = 46 + S_ABS_I32 = 48 + S_SET_GPR_IDX_IDX = 50 + S_ANDN1_SAVEEXEC_B64 = 51 + S_ORN1_SAVEEXEC_B64 = 52 + S_ANDN1_WREXEC_B64 = 53 + S_ANDN2_WREXEC_B64 = 54 + S_BITREPLICATE_B64_B32 = 55 + CDNA4 = 600 + +class SOP2Op(IntEnum): + S_ADD_U32 = 0 + S_SUB_U32 = 1 + S_ADD_I32 = 2 + S_SUB_I32 = 3 + S_ADDC_U32 = 4 + S_SUBB_U32 = 5 + S_MIN_I32 = 6 + S_MIN_U32 = 7 + S_MAX_I32 = 8 + S_MAX_U32 = 9 + S_CSELECT_B32 = 10 + S_CSELECT_B64 = 11 + S_AND_B32 = 12 + S_AND_B64 = 13 + S_OR_B32 = 14 + S_OR_B64 = 15 + S_XOR_B32 = 16 + S_XOR_B64 = 17 + S_ANDN2_B32 = 18 + S_ANDN2_B64 = 19 + S_ORN2_B32 = 20 + S_ORN2_B64 = 21 + S_NAND_B32 = 22 + S_NAND_B64 = 23 + S_NOR_B32 = 24 + S_NOR_B64 = 25 + S_XNOR_B32 = 26 + S_XNOR_B64 = 27 + S_LSHL_B32 = 28 + S_LSHL_B64 = 29 + S_LSHR_B32 = 30 + S_LSHR_B64 = 31 + S_ASHR_I32 = 32 + S_ASHR_I64 = 33 + S_BFM_B32 = 34 + S_BFM_B64 = 35 + S_MUL_I32 = 36 + S_BFE_U32 = 37 + S_BFE_I32 = 38 + S_BFE_U64 = 39 + S_BFE_I64 = 40 + S_CBRANCH_G_FORK = 41 + S_ABSDIFF_I32 = 42 + S_MUL_HI_U32 = 44 + S_MUL_HI_I32 = 45 + S_LSHL1_ADD_U32 = 46 + S_LSHL2_ADD_U32 = 47 + S_LSHL3_ADD_U32 = 48 + S_LSHL4_ADD_U32 = 49 + S_PACK_LL_B32_B16 = 50 + S_PACK_LH_B32_B16 = 51 + S_PACK_HH_B32_B16 = 52 + CDNA4 = 600 + +class SOPCOp(IntEnum): + S_CMP_EQ_I32 = 0 + S_CMP_LG_I32 = 1 + S_CMP_GT_I32 = 2 + S_CMP_GE_I32 = 3 + S_CMP_LT_I32 = 4 + S_CMP_LE_I32 = 5 + S_CMP_EQ_U32 = 6 + S_CMP_LG_U32 = 7 + S_CMP_GT_U32 = 8 + S_CMP_GE_U32 = 9 + S_CMP_LT_U32 = 10 + S_CMP_LE_U32 = 11 + S_BITCMP0_B32 = 12 + S_BITCMP1_B32 = 13 + S_BITCMP0_B64 = 14 + S_BITCMP1_B64 = 15 + S_SETVSKIP = 16 + S_SET_GPR_IDX_ON = 17 + S_CMP_EQ_U64 = 18 + S_CMP_LG_U64 = 19 + CDNA4 = 600 + +class SOPKOp(IntEnum): + S_MOVK_I32 = 0 + S_CMOVK_I32 = 1 + S_CMPK_EQ_I32 = 2 + S_CMPK_LG_I32 = 3 + S_CMPK_GT_I32 = 4 + S_CMPK_GE_I32 = 5 + S_CMPK_LT_I32 = 6 + S_CMPK_LE_I32 = 7 + S_CMPK_EQ_U32 = 8 + S_CMPK_LG_U32 = 9 + S_CMPK_GT_U32 = 10 + S_CMPK_GE_U32 = 11 + S_CMPK_LT_U32 = 12 + S_CMPK_LE_U32 = 13 + S_ADDK_I32 = 14 + S_MULK_I32 = 15 + S_CBRANCH_I_FORK = 16 + S_GETREG_B32 = 17 + S_SETREG_B32 = 18 + S_SETREG_IMM32_B32 = 20 + S_CALL_B64 = 21 + +class SOPPOp(IntEnum): + S_NOP = 0 + S_ENDPGM = 1 + S_BRANCH = 2 + S_WAKEUP = 3 + S_CBRANCH_SCC0 = 4 + S_CBRANCH_SCC1 = 5 + S_CBRANCH_VCCZ = 6 + S_CBRANCH_VCCNZ = 7 + S_CBRANCH_EXECZ = 8 + S_CBRANCH_EXECNZ = 9 + S_BARRIER = 10 + S_SETKILL = 11 + S_WAITCNT = 12 + S_SETHALT = 13 + S_SLEEP = 14 + S_SETPRIO = 15 + S_SENDMSG = 16 + S_SENDMSGHALT = 17 + S_TRAP = 18 + S_ICACHE_INV = 19 + S_INCPERFLEVEL = 20 + S_DECPERFLEVEL = 21 + S_TTRACEDATA = 22 + S_CBRANCH_CDBGSYS = 23 + S_CBRANCH_CDBGUSER = 24 + S_CBRANCH_CDBGSYS_OR_USER = 25 + S_CBRANCH_CDBGSYS_AND_USER = 26 + S_ENDPGM_SAVED = 27 + S_SET_GPR_IDX_OFF = 28 + S_SET_GPR_IDX_MODE = 29 + CDNA4 = 600 + +class VOP1Op(IntEnum): + V_NOP = 0 + V_MOV_B32 = 1 + V_READFIRSTLANE_B32 = 2 + V_CVT_I32_F64 = 3 + V_CVT_F64_I32 = 4 + V_CVT_F32_I32 = 5 + V_CVT_F32_U32 = 6 + V_CVT_U32_F32 = 7 + V_CVT_I32_F32 = 8 + V_CVT_F16_F32 = 10 + V_CVT_F32_F16 = 11 + V_CVT_RPI_I32_F32 = 12 + V_CVT_FLR_I32_F32 = 13 + V_CVT_OFF_F32_I4 = 14 + V_CVT_F32_F64 = 15 + V_CVT_F64_F32 = 16 + V_CVT_F32_UBYTE0 = 17 + V_CVT_F32_UBYTE1 = 18 + V_CVT_F32_UBYTE2 = 19 + V_CVT_F32_UBYTE3 = 20 + V_CVT_U32_F64 = 21 + V_CVT_F64_U32 = 22 + V_TRUNC_F64 = 23 + V_CEIL_F64 = 24 + V_RNDNE_F64 = 25 + V_FLOOR_F64 = 26 + V_FRACT_F32 = 27 + V_TRUNC_F32 = 28 + V_CEIL_F32 = 29 + V_RNDNE_F32 = 30 + V_FLOOR_F32 = 31 + V_EXP_F32 = 32 + V_LOG_F32 = 33 + V_RCP_F32 = 34 + V_RCP_IFLAG_F32 = 35 + V_RSQ_F32 = 36 + V_RCP_F64 = 37 + V_RSQ_F64 = 38 + V_SQRT_F32 = 39 + V_SQRT_F64 = 40 + V_SIN_F32 = 41 + V_COS_F32 = 42 + V_NOT_B32 = 43 + V_BFREV_B32 = 44 + V_FFBH_U32 = 45 + V_FFBL_B32 = 46 + V_FFBH_I32 = 47 + V_FREXP_EXP_I32_F64 = 48 + V_FREXP_MANT_F64 = 49 + V_FRACT_F64 = 50 + V_FREXP_EXP_I32_F32 = 51 + V_FREXP_MANT_F32 = 52 + V_CLREXCP = 53 + V_MOV_B64 = 56 + V_CVT_F16_U16 = 57 + V_CVT_F16_I16 = 58 + V_CVT_U16_F16 = 59 + V_CVT_I16_F16 = 60 + V_RCP_F16 = 61 + V_SQRT_F16 = 62 + V_RSQ_F16 = 63 + V_LOG_F16 = 64 + V_EXP_F16 = 65 + V_FREXP_MANT_F16 = 66 + V_FREXP_EXP_I16_F16 = 67 + V_FLOOR_F16 = 68 + V_CEIL_F16 = 69 + V_TRUNC_F16 = 70 + V_RNDNE_F16 = 71 + V_FRACT_F16 = 72 + V_SIN_F16 = 73 + V_COS_F16 = 74 + V_CVT_NORM_I16_F16 = 77 + V_CVT_NORM_U16_F16 = 78 + V_SAT_PK_U8_I16 = 79 + V_SWAP_B32 = 81 + V_ACCVGPR_MOV_B32 = 82 + V_CVT_F32_FP8 = 84 + V_CVT_F32_BF8 = 85 + V_CVT_PK_F32_FP8 = 86 + V_CVT_PK_F32_BF8 = 87 + V_PRNG_B32 = 88 + V_PERMLANE16_SWAP_B32 = 89 + V_PERMLANE32_SWAP_B32 = 90 + V_CVT_F32_BF16 = 91 + CDNA4 = 600 + +class VOP2Op(IntEnum): + V_CNDMASK_B32 = 0 + V_ADD_F32 = 1 + V_SUB_F32 = 2 + V_SUBREV_F32 = 3 + V_FMAC_F64 = 4 + V_MUL_F32 = 5 + V_MUL_I32_I24 = 6 + V_MUL_HI_I32_I24 = 7 + V_MUL_U32_U24 = 8 + V_MUL_HI_U32_U24 = 9 + V_MIN_F32 = 10 + V_MAX_F32 = 11 + V_MIN_I32 = 12 + V_MAX_I32 = 13 + V_MIN_U32 = 14 + V_MAX_U32 = 15 + V_LSHRREV_B32 = 16 + V_ASHRREV_I32 = 17 + V_LSHLREV_B32 = 18 + V_AND_B32 = 19 + V_OR_B32 = 20 + V_XOR_B32 = 21 + V_DOT2C_F32_BF16 = 22 + V_FMAMK_F32 = 23 + V_FMAAK_F32 = 24 + V_ADD_CO_U32 = 25 + V_SUB_CO_U32 = 26 + V_SUBREV_CO_U32 = 27 + V_ADDC_CO_U32 = 28 + V_SUBB_CO_U32 = 29 + V_SUBBREV_CO_U32 = 30 + V_ADD_F16 = 31 + V_SUB_F16 = 32 + V_SUBREV_F16 = 33 + V_MUL_F16 = 34 + V_MAC_F16 = 35 + V_MADMK_F16 = 36 + V_MADAK_F16 = 37 + V_ADD_U16 = 38 + V_SUB_U16 = 39 + V_SUBREV_U16 = 40 + V_MUL_LO_U16 = 41 + V_LSHLREV_B16 = 42 + V_LSHRREV_B16 = 43 + V_ASHRREV_I16 = 44 + V_MAX_F16 = 45 + V_MIN_F16 = 46 + V_MAX_U16 = 47 + V_MAX_I16 = 48 + V_MIN_U16 = 49 + V_MIN_I16 = 50 + V_LDEXP_F16 = 51 + V_ADD_U32 = 52 + V_SUB_U32 = 53 + V_SUBREV_U32 = 54 + V_DOT2C_F32_F16 = 55 + V_DOT2C_I32_I16 = 56 + V_DOT4C_I32_I8 = 57 + V_DOT8C_I32_I4 = 58 + V_FMAC_F32 = 59 + V_PK_FMAC_F16 = 60 + V_XNOR_B32 = 61 + CDNA4 = 600 + +class VOP3AOp(IntEnum): + V_CMP_CLASS_F32 = 16 + V_CMPX_CLASS_F32 = 17 + V_CMP_CLASS_F64 = 18 + V_CMPX_CLASS_F64 = 19 + V_CMP_CLASS_F16 = 20 + V_CMPX_CLASS_F16 = 21 + V_CMP_F_F16 = 32 + V_CMP_LT_F16 = 33 + V_CMP_EQ_F16 = 34 + V_CMP_LE_F16 = 35 + V_CMP_GT_F16 = 36 + V_CMP_LG_F16 = 37 + V_CMP_GE_F16 = 38 + V_CMP_O_F16 = 39 + V_CMP_U_F16 = 40 + V_CMP_NGE_F16 = 41 + V_CMP_NLG_F16 = 42 + V_CMP_NGT_F16 = 43 + V_CMP_NLE_F16 = 44 + V_CMP_NEQ_F16 = 45 + V_CMP_NLT_F16 = 46 + V_CMP_TRU_F16 = 47 + V_CMPX_F_F16 = 48 + V_CMPX_LT_F16 = 49 + V_CMPX_EQ_F16 = 50 + V_CMPX_LE_F16 = 51 + V_CMPX_GT_F16 = 52 + V_CMPX_LG_F16 = 53 + V_CMPX_GE_F16 = 54 + V_CMPX_O_F16 = 55 + V_CMPX_U_F16 = 56 + V_CMPX_NGE_F16 = 57 + V_CMPX_NLG_F16 = 58 + V_CMPX_NGT_F16 = 59 + V_CMPX_NLE_F16 = 60 + V_CMPX_NEQ_F16 = 61 + V_CMPX_NLT_F16 = 62 + V_CMPX_TRU_F16 = 63 + V_CMP_F_F32 = 64 + V_CMP_LT_F32 = 65 + V_CMP_EQ_F32 = 66 + V_CMP_LE_F32 = 67 + V_CMP_GT_F32 = 68 + V_CMP_LG_F32 = 69 + V_CMP_GE_F32 = 70 + V_CMP_O_F32 = 71 + V_CMP_U_F32 = 72 + V_CMP_NGE_F32 = 73 + V_CMP_NLG_F32 = 74 + V_CMP_NGT_F32 = 75 + V_CMP_NLE_F32 = 76 + V_CMP_NEQ_F32 = 77 + V_CMP_NLT_F32 = 78 + V_CMP_TRU_F32 = 79 + V_CMPX_F_F32 = 80 + V_CMPX_LT_F32 = 81 + V_CMPX_EQ_F32 = 82 + V_CMPX_LE_F32 = 83 + V_CMPX_GT_F32 = 84 + V_CMPX_LG_F32 = 85 + V_CMPX_GE_F32 = 86 + V_CMPX_O_F32 = 87 + V_CMPX_U_F32 = 88 + V_CMPX_NGE_F32 = 89 + V_CMPX_NLG_F32 = 90 + V_CMPX_NGT_F32 = 91 + V_CMPX_NLE_F32 = 92 + V_CMPX_NEQ_F32 = 93 + V_CMPX_NLT_F32 = 94 + V_CMPX_TRU_F32 = 95 + V_CMP_F_F64 = 96 + V_CMP_LT_F64 = 97 + V_CMP_EQ_F64 = 98 + V_CMP_LE_F64 = 99 + V_CMP_GT_F64 = 100 + V_CMP_LG_F64 = 101 + V_CMP_GE_F64 = 102 + V_CMP_O_F64 = 103 + V_CMP_U_F64 = 104 + V_CMP_NGE_F64 = 105 + V_CMP_NLG_F64 = 106 + V_CMP_NGT_F64 = 107 + V_CMP_NLE_F64 = 108 + V_CMP_NEQ_F64 = 109 + V_CMP_NLT_F64 = 110 + V_CMP_TRU_F64 = 111 + V_CMPX_F_F64 = 112 + V_CMPX_LT_F64 = 113 + V_CMPX_EQ_F64 = 114 + V_CMPX_LE_F64 = 115 + V_CMPX_GT_F64 = 116 + V_CMPX_LG_F64 = 117 + V_CMPX_GE_F64 = 118 + V_CMPX_O_F64 = 119 + V_CMPX_U_F64 = 120 + V_CMPX_NGE_F64 = 121 + V_CMPX_NLG_F64 = 122 + V_CMPX_NGT_F64 = 123 + V_CMPX_NLE_F64 = 124 + V_CMPX_NEQ_F64 = 125 + V_CMPX_NLT_F64 = 126 + V_CMPX_TRU_F64 = 127 + V_CMP_F_I16 = 160 + V_CMP_LT_I16 = 161 + V_CMP_EQ_I16 = 162 + V_CMP_LE_I16 = 163 + V_CMP_GT_I16 = 164 + V_CMP_NE_I16 = 165 + V_CMP_GE_I16 = 166 + V_CMP_T_I16 = 167 + V_CMP_F_U16 = 168 + V_CMP_LT_U16 = 169 + V_CMP_EQ_U16 = 170 + V_CMP_LE_U16 = 171 + V_CMP_GT_U16 = 172 + V_CMP_NE_U16 = 173 + V_CMP_GE_U16 = 174 + V_CMP_T_U16 = 175 + V_CMPX_F_I16 = 176 + V_CMPX_LT_I16 = 177 + V_CMPX_EQ_I16 = 178 + V_CMPX_LE_I16 = 179 + V_CMPX_GT_I16 = 180 + V_CMPX_NE_I16 = 181 + V_CMPX_GE_I16 = 182 + V_CMPX_T_I16 = 183 + V_CMPX_F_U16 = 184 + V_CMPX_LT_U16 = 185 + V_CMPX_EQ_U16 = 186 + V_CMPX_LE_U16 = 187 + V_CMPX_GT_U16 = 188 + V_CMPX_NE_U16 = 189 + V_CMPX_GE_U16 = 190 + V_CMPX_T_U16 = 191 + V_CMP_F_I32 = 192 + V_CMP_LT_I32 = 193 + V_CMP_EQ_I32 = 194 + V_CMP_LE_I32 = 195 + V_CMP_GT_I32 = 196 + V_CMP_NE_I32 = 197 + V_CMP_GE_I32 = 198 + V_CMP_T_I32 = 199 + V_CMP_F_U32 = 200 + V_CMP_LT_U32 = 201 + V_CMP_EQ_U32 = 202 + V_CMP_LE_U32 = 203 + V_CMP_GT_U32 = 204 + V_CMP_NE_U32 = 205 + V_CMP_GE_U32 = 206 + V_CMP_T_U32 = 207 + V_CMPX_F_I32 = 208 + V_CMPX_LT_I32 = 209 + V_CMPX_EQ_I32 = 210 + V_CMPX_LE_I32 = 211 + V_CMPX_GT_I32 = 212 + V_CMPX_NE_I32 = 213 + V_CMPX_GE_I32 = 214 + V_CMPX_T_I32 = 215 + V_CMPX_F_U32 = 216 + V_CMPX_LT_U32 = 217 + V_CMPX_EQ_U32 = 218 + V_CMPX_LE_U32 = 219 + V_CMPX_GT_U32 = 220 + V_CMPX_NE_U32 = 221 + V_CMPX_GE_U32 = 222 + V_CMPX_T_U32 = 223 + V_CMP_F_I64 = 224 + V_CMP_LT_I64 = 225 + V_CMP_EQ_I64 = 226 + V_CMP_LE_I64 = 227 + V_CMP_GT_I64 = 228 + V_CMP_NE_I64 = 229 + V_CMP_GE_I64 = 230 + V_CMP_T_I64 = 231 + V_CMP_F_U64 = 232 + V_CMP_LT_U64 = 233 + V_CMP_EQ_U64 = 234 + V_CMP_LE_U64 = 235 + V_CMP_GT_U64 = 236 + V_CMP_NE_U64 = 237 + V_CMP_GE_U64 = 238 + V_CMP_T_U64 = 239 + V_CMPX_F_I64 = 240 + V_CMPX_LT_I64 = 241 + V_CMPX_EQ_I64 = 242 + V_CMPX_LE_I64 = 243 + V_CMPX_GT_I64 = 244 + V_CMPX_NE_I64 = 245 + V_CMPX_GE_I64 = 246 + V_CMPX_T_I64 = 247 + V_CMPX_F_U64 = 248 + V_CMPX_LT_U64 = 249 + V_CMPX_EQ_U64 = 250 + V_CMPX_LE_U64 = 251 + V_CMPX_GT_U64 = 252 + V_CMPX_NE_U64 = 253 + V_CMPX_GE_U64 = 254 + V_CMPX_T_U64 = 255 + V_CNDMASK_B32 = 256 + V_ADD_F32 = 257 + V_SUB_F32 = 258 + V_SUBREV_F32 = 259 + V_FMAC_F64 = 260 + V_MUL_F32 = 261 + V_MUL_I32_I24 = 262 + V_MUL_HI_I32_I24 = 263 + V_MUL_U32_U24 = 264 + V_MUL_HI_U32_U24 = 265 + V_MIN_F32 = 266 + V_MAX_F32 = 267 + V_MIN_I32 = 268 + V_MAX_I32 = 269 + V_MIN_U32 = 270 + V_MAX_U32 = 271 + V_LSHRREV_B32 = 272 + V_ASHRREV_I32 = 273 + V_LSHLREV_B32 = 274 + V_AND_B32 = 275 + V_OR_B32 = 276 + V_XOR_B32 = 277 + V_DOT2C_F32_BF16 = 278 + V_ADD_F16 = 287 + V_SUB_F16 = 288 + V_SUBREV_F16 = 289 + V_MUL_F16 = 290 + V_MAC_F16 = 291 + V_ADD_U16 = 294 + V_SUB_U16 = 295 + V_SUBREV_U16 = 296 + V_MUL_LO_U16 = 297 + V_LSHLREV_B16 = 298 + V_LSHRREV_B16 = 299 + V_ASHRREV_I16 = 300 + V_MAX_F16 = 301 + V_MIN_F16 = 302 + V_MAX_U16 = 303 + V_MAX_I16 = 304 + V_MIN_U16 = 305 + V_MIN_I16 = 306 + V_LDEXP_F16 = 307 + V_ADD_U32 = 308 + V_SUB_U32 = 309 + V_SUBREV_U32 = 310 + V_DOT2C_F32_F16 = 311 + V_DOT2C_I32_I16 = 312 + V_DOT4C_I32_I8 = 313 + V_DOT8C_I32_I4 = 314 + V_FMAC_F32 = 315 + V_PK_FMAC_F16 = 316 + V_XNOR_B32 = 317 + V_NOP = 384 + V_MOV_B32 = 385 + V_READFIRSTLANE_B32 = 386 + V_CVT_I32_F64 = 387 + V_CVT_F64_I32 = 388 + V_CVT_F32_I32 = 389 + V_CVT_F32_U32 = 390 + V_CVT_U32_F32 = 391 + V_CVT_I32_F32 = 392 + V_CVT_F16_F32 = 394 + V_CVT_F32_F16 = 395 + V_CVT_RPI_I32_F32 = 396 + V_CVT_FLR_I32_F32 = 397 + V_CVT_OFF_F32_I4 = 398 + V_CVT_F32_F64 = 399 + V_CVT_F64_F32 = 400 + V_CVT_F32_UBYTE0 = 401 + V_CVT_F32_UBYTE1 = 402 + V_CVT_F32_UBYTE2 = 403 + V_CVT_F32_UBYTE3 = 404 + V_CVT_U32_F64 = 405 + V_CVT_F64_U32 = 406 + V_TRUNC_F64 = 407 + V_CEIL_F64 = 408 + V_RNDNE_F64 = 409 + V_FLOOR_F64 = 410 + V_FRACT_F32 = 411 + V_TRUNC_F32 = 412 + V_CEIL_F32 = 413 + V_RNDNE_F32 = 414 + V_FLOOR_F32 = 415 + V_EXP_F32 = 416 + V_LOG_F32 = 417 + V_RCP_F32 = 418 + V_RCP_IFLAG_F32 = 419 + V_RSQ_F32 = 420 + V_RCP_F64 = 421 + V_RSQ_F64 = 422 + V_SQRT_F32 = 423 + V_SQRT_F64 = 424 + V_SIN_F32 = 425 + V_COS_F32 = 426 + V_NOT_B32 = 427 + V_BFREV_B32 = 428 + V_FFBH_U32 = 429 + V_FFBL_B32 = 430 + V_FFBH_I32 = 431 + V_FREXP_EXP_I32_F64 = 432 + V_FREXP_MANT_F64 = 433 + V_FRACT_F64 = 434 + V_FREXP_EXP_I32_F32 = 435 + V_FREXP_MANT_F32 = 436 + V_CLREXCP = 437 + V_MOV_B64 = 440 + V_CVT_F16_U16 = 441 + V_CVT_F16_I16 = 442 + V_CVT_U16_F16 = 443 + V_CVT_I16_F16 = 444 + V_RCP_F16 = 445 + V_SQRT_F16 = 446 + V_RSQ_F16 = 447 + V_LOG_F16 = 448 + V_EXP_F16 = 449 + V_MAD_I32_I24 = 450 + V_MAD_U32_U24 = 451 + V_CUBEID_F32 = 452 + V_CUBESC_F32 = 453 + V_CUBETC_F32 = 454 + V_CUBEMA_F32 = 455 + V_BFE_U32 = 456 + V_BFE_I32 = 457 + V_BFI_B32 = 458 + V_FMA_F32 = 459 + V_FMA_F64 = 460 + V_LERP_U8 = 461 + V_ALIGNBIT_B32 = 462 + V_ALIGNBYTE_B32 = 463 + V_MIN3_F32 = 464 + V_MIN3_I32 = 465 + V_MIN3_U32 = 466 + V_MAX3_F32 = 467 + V_MAX3_I32 = 468 + V_MAX3_U32 = 469 + V_MED3_F32 = 470 + V_MED3_I32 = 471 + V_MED3_U32 = 472 + V_SAD_U8 = 473 + V_SAD_HI_U8 = 474 + V_SAD_U16 = 475 + V_SAD_U32 = 476 + V_CVT_PK_U8_F32 = 477 + V_DIV_FIXUP_F32 = 478 + V_DIV_FIXUP_F64 = 479 + V_DIV_FMAS_F32 = 482 + V_DIV_FMAS_F64 = 483 + V_MSAD_U8 = 484 + V_QSAD_PK_U16_U8 = 485 + V_MQSAD_PK_U16_U8 = 486 + V_MQSAD_U32_U8 = 487 + V_MAD_LEGACY_F16 = 490 + V_MAD_LEGACY_U16 = 491 + V_MAD_LEGACY_I16 = 492 + V_PERM_B32 = 493 + V_FMA_LEGACY_F16 = 494 + V_DIV_FIXUP_LEGACY_F16 = 495 + V_CVT_PKACCUM_U8_F32 = 496 + V_MAD_U32_U16 = 497 + V_MAD_I32_I16 = 498 + V_XAD_U32 = 499 + V_MIN3_F16 = 500 + V_MIN3_I16 = 501 + V_MIN3_U16 = 502 + V_MAX3_F16 = 503 + V_MAX3_I16 = 504 + V_MAX3_U16 = 505 + V_MED3_F16 = 506 + V_MED3_I16 = 507 + V_MED3_U16 = 508 + V_LSHL_ADD_U32 = 509 + V_ADD_LSHL_U32 = 510 + V_ADD3_U32 = 511 + V_LSHL_OR_B32 = 512 + V_AND_OR_B32 = 513 + V_OR3_B32 = 514 + V_MAD_F16 = 515 + V_MAD_U16 = 516 + V_MAD_I16 = 517 + V_FMA_F16 = 518 + V_DIV_FIXUP_F16 = 519 + V_LSHL_ADD_U64 = 520 + V_BITOP3_B16 = 563 + V_BITOP3_B32 = 564 + V_CVT_SCALEF32_PK_FP8_F32 = 565 + V_CVT_SCALEF32_PK_BF8_F32 = 566 + V_CVT_SCALEF32_SR_FP8_F32 = 567 + V_CVT_SCALEF32_SR_BF8_F32 = 568 + V_CVT_SCALEF32_PK_F32_FP8 = 569 + V_CVT_SCALEF32_PK_F32_BF8 = 570 + V_CVT_SCALEF32_F32_FP8 = 571 + V_CVT_SCALEF32_F32_BF8 = 572 + V_CVT_SCALEF32_PK_FP4_F32 = 573 + V_CVT_SCALEF32_SR_PK_FP4_F32 = 574 + V_CVT_SCALEF32_PK_F32_FP4 = 575 + V_CVT_SCALEF32_PK_FP8_F16 = 576 + V_CVT_SCALEF32_PK_BF8_F16 = 577 + V_CVT_SCALEF32_SR_FP8_F16 = 578 + V_CVT_SCALEF32_SR_BF8_F16 = 579 + V_CVT_SCALEF32_PK_FP8_BF16 = 580 + V_CVT_SCALEF32_PK_BF8_BF16 = 581 + V_CVT_SCALEF32_SR_FP8_BF16 = 582 + V_CVT_SCALEF32_SR_BF8_BF16 = 583 + V_CVT_SCALEF32_PK_F16_FP8 = 584 + V_CVT_SCALEF32_PK_F16_BF8 = 585 + V_CVT_SCALEF32_F16_FP8 = 586 + V_CVT_SCALEF32_F16_BF8 = 587 + V_CVT_SCALEF32_PK_FP4_F16 = 588 + V_CVT_SCALEF32_PK_FP4_BF16 = 589 + V_CVT_SCALEF32_SR_PK_FP4_F16 = 590 + V_CVT_SCALEF32_SR_PK_FP4_BF16 = 591 + V_CVT_SCALEF32_PK_F16_FP4 = 592 + V_CVT_SCALEF32_PK_BF16_FP4 = 593 + V_CVT_SCALEF32_2XPK16_FP6_F32 = 594 + V_CVT_SCALEF32_2XPK16_BF6_F32 = 595 + V_CVT_SCALEF32_SR_PK32_FP6_F32 = 596 + V_CVT_SCALEF32_SR_PK32_BF6_F32 = 597 + V_CVT_SCALEF32_PK32_F32_FP6 = 598 + V_CVT_SCALEF32_PK32_F32_BF6 = 599 + CDNA4 = 600 + V_CVT_SCALEF32_PK32_FP6_BF16 = 601 + V_CVT_SCALEF32_PK32_BF6_F16 = 602 + V_CVT_SCALEF32_PK32_BF6_BF16 = 603 + V_CVT_SCALEF32_SR_PK32_FP6_F16 = 604 + V_CVT_SCALEF32_SR_PK32_FP6_BF16 = 605 + V_CVT_SCALEF32_SR_PK32_BF6_F16 = 606 + V_CVT_SCALEF32_SR_PK32_BF6_BF16 = 607 + V_CVT_SCALEF32_PK32_F16_FP6 = 608 + V_CVT_SCALEF32_PK32_BF16_FP6 = 609 + V_CVT_SCALEF32_PK32_F16_BF6 = 610 + V_CVT_SCALEF32_PK32_BF16_BF6 = 611 + V_ASHR_PK_I8_I32 = 613 + V_ASHR_PK_U8_I32 = 614 + V_CVT_PK_F16_F32 = 615 + V_CVT_PK_BF16_F32 = 616 + V_CVT_SCALEF32_PK_BF16_FP8 = 617 + V_CVT_SCALEF32_PK_BF16_BF8 = 618 + V_ADD_F64 = 640 + V_MUL_F64 = 641 + V_MIN_F64 = 642 + V_MAX_F64 = 643 + V_LDEXP_F64 = 644 + V_MUL_LO_U32 = 645 + V_MUL_HI_U32 = 646 + V_MUL_HI_I32 = 647 + V_LDEXP_F32 = 648 + V_READLANE_B32 = 649 + V_WRITELANE_B32 = 650 + V_BCNT_U32_B32 = 651 + V_MBCNT_LO_U32_B32 = 652 + V_MBCNT_HI_U32_B32 = 653 + V_LSHLREV_B64 = 655 + V_LSHRREV_B64 = 656 + V_ASHRREV_I64 = 657 + V_TRIG_PREOP_F64 = 658 + V_BFM_B32 = 659 + V_CVT_PKNORM_I16_F32 = 660 + V_CVT_PKNORM_U16_F32 = 661 + V_CVT_PKRTZ_F16_F32 = 662 + V_CVT_PK_U16_U32 = 663 + V_CVT_PK_I16_I32 = 664 + V_CVT_PKNORM_I16_F16 = 665 + V_CVT_PKNORM_U16_F16 = 666 + V_ADD_I32 = 668 + V_SUB_I32 = 669 + V_ADD_I16 = 670 + V_SUB_I16 = 671 + V_PACK_B32_F16 = 672 + V_MUL_LEGACY_F32 = 673 + V_CVT_PK_FP8_F32 = 674 + V_CVT_PK_BF8_F32 = 675 + V_CVT_SR_FP8_F32 = 676 + V_CVT_SR_BF8_F32 = 677 + V_CVT_SR_F16_F32 = 678 + V_CVT_SR_BF16_F32 = 679 + V_MINIMUM3_F32 = 680 + V_MAXIMUM3_F32 = 681 + +class VOP3BOp(IntEnum): + V_ADD_CO_U32 = 281 + V_SUB_CO_U32 = 282 + V_SUBREV_CO_U32 = 283 + V_ADDC_CO_U32 = 284 + V_SUBB_CO_U32 = 285 + V_SUBBREV_CO_U32 = 286 + V_DIV_SCALE_F32 = 480 + V_DIV_SCALE_F64 = 481 + V_MAD_U64_U32 = 488 + V_MAD_I64_I32 = 489 + CDNA4 = 600 + +class VOP3POp(IntEnum): + V_PK_MAD_I16 = 0 + V_PK_MUL_LO_U16 = 1 + V_PK_ADD_I16 = 2 + V_PK_SUB_I16 = 3 + V_PK_LSHLREV_B16 = 4 + V_PK_LSHRREV_B16 = 5 + V_PK_ASHRREV_I16 = 6 + V_PK_MAX_I16 = 7 + V_PK_MIN_I16 = 8 + V_PK_MAD_U16 = 9 + V_PK_ADD_U16 = 10 + V_PK_SUB_U16 = 11 + V_PK_MAX_U16 = 12 + V_PK_MIN_U16 = 13 + V_PK_FMA_F16 = 14 + V_PK_ADD_F16 = 15 + V_PK_MUL_F16 = 16 + V_PK_MIN_F16 = 17 + V_PK_MAX_F16 = 18 + V_DOT2_F32_BF16 = 26 + V_PK_MINIMUM3_F16 = 27 + V_PK_MAXIMUM3_F16 = 28 + V_MAD_MIX_F32 = 32 + V_MAD_MIXLO_F16 = 33 + V_MAD_MIXHI_F16 = 34 + V_DOT2_F32_F16 = 35 + V_DOT2_I32_I16 = 38 + V_DOT2_U32_U16 = 39 + V_DOT4_I32_I8 = 40 + V_DOT4_U32_U8 = 41 + V_DOT8_I32_I4 = 42 + V_DOT8_U32_U4 = 43 + V_MFMA_F32_16X16X128_F8F6F4 = 45 + V_MFMA_F32_32X32X64_F8F6F4 = 46 + V_PK_FMA_F32 = 48 + V_PK_MUL_F32 = 49 + V_PK_ADD_F32 = 50 + V_PK_MOV_B32 = 51 + V_MFMA_F32_16X16X32_BF16 = 53 + V_MFMA_I32_16X16X64_I8 = 54 + V_MFMA_F32_32X32X16_BF16 = 55 + V_MFMA_I32_32X32X32_I8 = 56 + V_SMFMAC_F32_16X16X64_BF16 = 57 + V_SMFMAC_I32_16X16X128_I8 = 58 + V_SMFMAC_F32_16X16X128_BF8_BF8 = 59 + V_SMFMAC_F32_16X16X128_BF8_FP8 = 60 + V_SMFMAC_F32_16X16X128_FP8_BF8 = 61 + V_MFMA_F32_16X16X8_XF32 = 62 + V_MFMA_F32_32X32X4_XF32 = 63 + V_MFMA_F32_32X32X1_2B_F32 = 64 + V_MFMA_F32_16X16X1_4B_F32 = 65 + V_MFMA_F32_4X4X1_16B_F32 = 66 + V_SMFMAC_F32_16X16X128_FP8_FP8 = 67 + V_MFMA_F32_32X32X2_F32 = 68 + V_MFMA_F32_16X16X4_F32 = 69 + V_SMFMAC_F32_32X32X32_BF16 = 70 + V_SMFMAC_I32_32X32X64_I8 = 71 + V_MFMA_F32_32X32X4_2B_F16 = 72 + V_MFMA_F32_16X16X4_4B_F16 = 73 + V_MFMA_F32_4X4X4_16B_F16 = 74 + V_SMFMAC_F32_32X32X64_BF8_BF8 = 75 + V_MFMA_F32_32X32X8_F16 = 76 + V_MFMA_F32_16X16X16_F16 = 77 + V_SMFMAC_F32_32X32X64_BF8_FP8 = 78 + V_SMFMAC_F32_32X32X64_FP8_BF8 = 79 + V_MFMA_I32_32X32X4_2B_I8 = 80 + V_MFMA_I32_16X16X4_4B_I8 = 81 + V_MFMA_I32_4X4X4_16B_I8 = 82 + V_SMFMAC_F32_32X32X64_FP8_FP8 = 83 + V_MFMA_F32_16X16X32_F16 = 84 + V_MFMA_F32_32X32X16_F16 = 85 + V_MFMA_I32_32X32X16_I8 = 86 + V_MFMA_I32_16X16X32_I8 = 87 + V_ACCVGPR_READ = 88 + V_ACCVGPR_WRITE = 89 + V_SMFMAC_F32_16X16X64_F16 = 90 + V_SMFMAC_F32_32X32X32_F16 = 91 + V_MFMA_F32_32X32X4_2B_BF16 = 93 + V_MFMA_F32_16X16X4_4B_BF16 = 94 + V_MFMA_F32_4X4X4_16B_BF16 = 95 + V_MFMA_F32_32X32X8_BF16 = 96 + V_MFMA_F32_16X16X16_BF16 = 97 + V_SMFMAC_F32_16X16X32_F16 = 98 + V_SMFMAC_F32_32X32X16_F16 = 100 + V_SMFMAC_F32_16X16X32_BF16 = 102 + V_SMFMAC_F32_32X32X16_BF16 = 104 + V_SMFMAC_I32_16X16X64_I8 = 106 + V_SMFMAC_I32_32X32X32_I8 = 108 + V_MFMA_F64_16X16X4_F64 = 110 + V_MFMA_F64_4X4X4_4B_F64 = 111 + V_MFMA_F32_16X16X32_BF8_BF8 = 112 + V_MFMA_F32_16X16X32_BF8_FP8 = 113 + V_MFMA_F32_16X16X32_FP8_BF8 = 114 + V_MFMA_F32_16X16X32_FP8_FP8 = 115 + V_MFMA_F32_32X32X16_BF8_BF8 = 116 + V_MFMA_F32_32X32X16_BF8_FP8 = 117 + V_MFMA_F32_32X32X16_FP8_BF8 = 118 + V_MFMA_F32_32X32X16_FP8_FP8 = 119 + V_SMFMAC_F32_16X16X64_BF8_BF8 = 120 + V_SMFMAC_F32_16X16X64_BF8_FP8 = 121 + V_SMFMAC_F32_16X16X64_FP8_BF8 = 122 + V_SMFMAC_F32_16X16X64_FP8_FP8 = 123 + V_SMFMAC_F32_32X32X32_BF8_BF8 = 124 + V_SMFMAC_F32_32X32X32_BF8_FP8 = 125 + V_SMFMAC_F32_32X32X32_FP8_BF8 = 126 + V_SMFMAC_F32_32X32X32_FP8_FP8 = 127 + CDNA4 = 600 + +class VOPCOp(IntEnum): + V_CMP_CLASS_F32 = 16 + V_CMPX_CLASS_F32 = 17 + V_CMP_CLASS_F64 = 18 + V_CMPX_CLASS_F64 = 19 + V_CMP_CLASS_F16 = 20 + V_CMPX_CLASS_F16 = 21 + V_CMP_F_F16 = 32 + V_CMP_LT_F16 = 33 + V_CMP_EQ_F16 = 34 + V_CMP_LE_F16 = 35 + V_CMP_GT_F16 = 36 + V_CMP_LG_F16 = 37 + V_CMP_GE_F16 = 38 + V_CMP_O_F16 = 39 + V_CMP_U_F16 = 40 + V_CMP_NGE_F16 = 41 + V_CMP_NLG_F16 = 42 + V_CMP_NGT_F16 = 43 + V_CMP_NLE_F16 = 44 + V_CMP_NEQ_F16 = 45 + V_CMP_NLT_F16 = 46 + V_CMP_TRU_F16 = 47 + V_CMPX_F_F16 = 48 + V_CMPX_LT_F16 = 49 + V_CMPX_EQ_F16 = 50 + V_CMPX_LE_F16 = 51 + V_CMPX_GT_F16 = 52 + V_CMPX_LG_F16 = 53 + V_CMPX_GE_F16 = 54 + V_CMPX_O_F16 = 55 + V_CMPX_U_F16 = 56 + V_CMPX_NGE_F16 = 57 + V_CMPX_NLG_F16 = 58 + V_CMPX_NGT_F16 = 59 + V_CMPX_NLE_F16 = 60 + V_CMPX_NEQ_F16 = 61 + V_CMPX_NLT_F16 = 62 + V_CMPX_TRU_F16 = 63 + V_CMP_F_F32 = 64 + V_CMP_LT_F32 = 65 + V_CMP_EQ_F32 = 66 + V_CMP_LE_F32 = 67 + V_CMP_GT_F32 = 68 + V_CMP_LG_F32 = 69 + V_CMP_GE_F32 = 70 + V_CMP_O_F32 = 71 + V_CMP_U_F32 = 72 + V_CMP_NGE_F32 = 73 + V_CMP_NLG_F32 = 74 + V_CMP_NGT_F32 = 75 + V_CMP_NLE_F32 = 76 + V_CMP_NEQ_F32 = 77 + V_CMP_NLT_F32 = 78 + V_CMP_TRU_F32 = 79 + V_CMPX_F_F32 = 80 + V_CMPX_LT_F32 = 81 + V_CMPX_EQ_F32 = 82 + V_CMPX_LE_F32 = 83 + V_CMPX_GT_F32 = 84 + V_CMPX_LG_F32 = 85 + V_CMPX_GE_F32 = 86 + V_CMPX_O_F32 = 87 + V_CMPX_U_F32 = 88 + V_CMPX_NGE_F32 = 89 + V_CMPX_NLG_F32 = 90 + V_CMPX_NGT_F32 = 91 + V_CMPX_NLE_F32 = 92 + V_CMPX_NEQ_F32 = 93 + V_CMPX_NLT_F32 = 94 + V_CMPX_TRU_F32 = 95 + V_CMP_F_F64 = 96 + V_CMP_LT_F64 = 97 + V_CMP_EQ_F64 = 98 + V_CMP_LE_F64 = 99 + V_CMP_GT_F64 = 100 + V_CMP_LG_F64 = 101 + V_CMP_GE_F64 = 102 + V_CMP_O_F64 = 103 + V_CMP_U_F64 = 104 + V_CMP_NGE_F64 = 105 + V_CMP_NLG_F64 = 106 + V_CMP_NGT_F64 = 107 + V_CMP_NLE_F64 = 108 + V_CMP_NEQ_F64 = 109 + V_CMP_NLT_F64 = 110 + V_CMP_TRU_F64 = 111 + V_CMPX_F_F64 = 112 + V_CMPX_LT_F64 = 113 + V_CMPX_EQ_F64 = 114 + V_CMPX_LE_F64 = 115 + V_CMPX_GT_F64 = 116 + V_CMPX_LG_F64 = 117 + V_CMPX_GE_F64 = 118 + V_CMPX_O_F64 = 119 + V_CMPX_U_F64 = 120 + V_CMPX_NGE_F64 = 121 + V_CMPX_NLG_F64 = 122 + V_CMPX_NGT_F64 = 123 + V_CMPX_NLE_F64 = 124 + V_CMPX_NEQ_F64 = 125 + V_CMPX_NLT_F64 = 126 + V_CMPX_TRU_F64 = 127 + V_CMP_F_I16 = 160 + V_CMP_LT_I16 = 161 + V_CMP_EQ_I16 = 162 + V_CMP_LE_I16 = 163 + V_CMP_GT_I16 = 164 + V_CMP_NE_I16 = 165 + V_CMP_GE_I16 = 166 + V_CMP_T_I16 = 167 + V_CMP_F_U16 = 168 + V_CMP_LT_U16 = 169 + V_CMP_EQ_U16 = 170 + V_CMP_LE_U16 = 171 + V_CMP_GT_U16 = 172 + V_CMP_NE_U16 = 173 + V_CMP_GE_U16 = 174 + V_CMP_T_U16 = 175 + V_CMPX_F_I16 = 176 + V_CMPX_LT_I16 = 177 + V_CMPX_EQ_I16 = 178 + V_CMPX_LE_I16 = 179 + V_CMPX_GT_I16 = 180 + V_CMPX_NE_I16 = 181 + V_CMPX_GE_I16 = 182 + V_CMPX_T_I16 = 183 + V_CMPX_F_U16 = 184 + V_CMPX_LT_U16 = 185 + V_CMPX_EQ_U16 = 186 + V_CMPX_LE_U16 = 187 + V_CMPX_GT_U16 = 188 + V_CMPX_NE_U16 = 189 + V_CMPX_GE_U16 = 190 + V_CMPX_T_U16 = 191 + V_CMP_F_I32 = 192 + V_CMP_LT_I32 = 193 + V_CMP_EQ_I32 = 194 + V_CMP_LE_I32 = 195 + V_CMP_GT_I32 = 196 + V_CMP_NE_I32 = 197 + V_CMP_GE_I32 = 198 + V_CMP_T_I32 = 199 + V_CMP_F_U32 = 200 + V_CMP_LT_U32 = 201 + V_CMP_EQ_U32 = 202 + V_CMP_LE_U32 = 203 + V_CMP_GT_U32 = 204 + V_CMP_NE_U32 = 205 + V_CMP_GE_U32 = 206 + V_CMP_T_U32 = 207 + V_CMPX_F_I32 = 208 + V_CMPX_LT_I32 = 209 + V_CMPX_EQ_I32 = 210 + V_CMPX_LE_I32 = 211 + V_CMPX_GT_I32 = 212 + V_CMPX_NE_I32 = 213 + V_CMPX_GE_I32 = 214 + V_CMPX_T_I32 = 215 + V_CMPX_F_U32 = 216 + V_CMPX_LT_U32 = 217 + V_CMPX_EQ_U32 = 218 + V_CMPX_LE_U32 = 219 + V_CMPX_GT_U32 = 220 + V_CMPX_NE_U32 = 221 + V_CMPX_GE_U32 = 222 + V_CMPX_T_U32 = 223 + V_CMP_F_I64 = 224 + V_CMP_LT_I64 = 225 + V_CMP_EQ_I64 = 226 + V_CMP_LE_I64 = 227 + V_CMP_GT_I64 = 228 + V_CMP_NE_I64 = 229 + V_CMP_GE_I64 = 230 + V_CMP_T_I64 = 231 + V_CMP_F_U64 = 232 + V_CMP_LT_U64 = 233 + V_CMP_EQ_U64 = 234 + V_CMP_LE_U64 = 235 + V_CMP_GT_U64 = 236 + V_CMP_NE_U64 = 237 + V_CMP_GE_U64 = 238 + V_CMP_T_U64 = 239 + V_CMPX_F_I64 = 240 + V_CMPX_LT_I64 = 241 + V_CMPX_EQ_I64 = 242 + V_CMPX_LE_I64 = 243 + V_CMPX_GT_I64 = 244 + V_CMPX_NE_I64 = 245 + V_CMPX_GE_I64 = 246 + V_CMPX_T_I64 = 247 + V_CMPX_F_U64 = 248 + V_CMPX_LT_U64 = 249 + V_CMPX_EQ_U64 = 250 + V_CMPX_LE_U64 = 251 + V_CMPX_GT_U64 = 252 + V_CMPX_NE_U64 = 253 + V_CMPX_GE_U64 = 254 + V_CMPX_T_U64 = 255 + CDNA4 = 600 diff --git a/extra/assembly/amd/autogen/cdna/gen_pcode.py b/extra/assembly/amd/autogen/cdna/gen_pcode.py index 8f7fdbcf5a..43e279b68e 100644 --- a/extra/assembly/amd/autogen/cdna/gen_pcode.py +++ b/extra/assembly/amd/autogen/cdna/gen_pcode.py @@ -2,7 +2,7 @@ # to regenerate: python -m extra.assembly.amd.pdf --arch cdna # ruff: noqa: E501,F405,F403 # mypy: ignore-errors -from extra.assembly.amd.autogen.cdna import SOP1Op, SOP2Op, SOPCOp, SOPKOp, SOPPOp, VOP1Op, VOP2Op, VOP3POp, VOPCOp, VOP3AOp, VOP3BOp +from extra.assembly.amd.autogen.cdna.enum import SOP1Op, SOP2Op, SOPCOp, SOPKOp, SOPPOp, VOP1Op, VOP2Op, VOP3POp, VOPCOp, VOP3AOp, VOP3BOp from extra.assembly.amd.pcode import * def _SOP1Op_S_MOV_B32(s0, s1, s2, d0, scc, vcc, lane, exec_mask, literal, VGPR, _vars, src0_idx=0, vdst_idx=0, pc=0): diff --git a/extra/assembly/amd/autogen/cdna/ins.py b/extra/assembly/amd/autogen/cdna/ins.py new file mode 100644 index 0000000000..fc3cf13da7 --- /dev/null +++ b/extra/assembly/amd/autogen/cdna/ins.py @@ -0,0 +1,1832 @@ +# autogenerated from AMD CDNA3+CDNA4 ISA PDF by pdf.py - do not edit +# ruff: noqa: F401,F403 +from typing import Annotated +from extra.assembly.amd.dsl import bits, BitField, Inst32, Inst64, SGPR, VGPR, TTMP as TTMP, s as s, v as v, ttmp as ttmp, SSrc, Src, SImm, Imm, VDSTYEnc, SGPRField, VGPRField +from extra.assembly.amd.autogen.cdna.enum import * +import functools + +# instruction formats +class DPP(Inst64): + encoding = bits[31:26] == 0b110110 + src1_sel = bits[58:56] + src1_sext = bits[59] + src1_neg = bits[60] + src1_abs = bits[61] + s1 = bits[63] + offset0 = bits[7:0] + offset1 = bits[15:8] + op = bits[24:17] + acc = bits[25] + addr:VGPRField = bits[39:32] + data0:VGPRField = bits[47:40] + data1:VGPRField = bits[55:48] + vdst:VGPRField = bits[63:56] + row_mask = bits[63:60] + +class DS(Inst64): + encoding = bits[31:26] == 0b110110 + op:Annotated[BitField, DSOp] = bits[24:17] + vdst:VGPRField = bits[63:56] + addr:VGPRField = bits[39:32] + data0:VGPRField = bits[47:40] + data1:VGPRField = bits[55:48] + offset0 = bits[7:0] + offset1 = bits[15:8] + gds = bits[16] + acc = bits[25] + +class FLAT(Inst64): + encoding = bits[31:26] == 0b110111 + op:Annotated[BitField, FLATOp] = bits[24:18] + vdst:VGPRField = bits[63:56] + addr:VGPRField = bits[39:32] + data:VGPRField = bits[47:40] + saddr:SSrc = bits[54:48] + offset:Imm = bits[12:0] + seg = bits[15:14] + lds = bits[13] + sc0 = bits[16] + nt = bits[17] + sc1 = bits[25] + acc = bits[55] + +class MTBUF(Inst64): + encoding = bits[31:26] == 0b111010 + op:Annotated[BitField, MTBUFOp] = bits[18:15] + vdata:VGPRField = bits[47:40] + vaddr:VGPRField = bits[39:32] + srsrc:SGPRField = bits[52:48] + soffset:SSrc = bits[63:56] + offset:Imm = bits[11:0] + offen = bits[12] + idxen = bits[13] + sc1 = bits[53] + nt = bits[54] + acc = bits[55] + sc0 = bits[14] + +class MUBUF(Inst64): + encoding = bits[31:26] == 0b111000 + op:Annotated[BitField, MUBUFOp] = bits[24:18] + vdata:VGPRField = bits[47:40] + vaddr:VGPRField = bits[39:32] + srsrc:SGPRField = bits[52:48] + soffset:SSrc = bits[63:56] + offset:Imm = bits[11:0] + offen = bits[12] + idxen = bits[13] + sc0 = bits[14] + sc1 = bits[15] + lds = bits[16] + nt = bits[17] + acc = bits[55] + +class SDWA(Inst64): + src0:Src = bits[39:32] + dst_sel = bits[42:40] + dst_u = bits[44:43] + clmp = bits[45] + omod = bits[47:46] + src0_sel = bits[50:48] + src0_sext = bits[51] + src0_neg = bits[52] + src0_abs = bits[53] + s0 = bits[55] + src1_sel = bits[58:56] + src1_sext = bits[59] + src1_neg = bits[60] + src1_abs = bits[61] + s1 = bits[63] + sdst:SGPRField = bits[46:40] + sd = bits[47] + row_mask = bits[63:60] + +class SDWAB(Inst64): + src0:Src = bits[39:32] + dst_sel = bits[42:40] + dst_u = bits[44:43] + clmp = bits[45] + omod = bits[47:46] + src0_sel = bits[50:48] + src0_sext = bits[51] + src0_neg = bits[52] + src0_abs = bits[53] + s0 = bits[55] + src1_sel = bits[58:56] + src1_sext = bits[59] + src1_neg = bits[60] + src1_abs = bits[61] + s1 = bits[63] + +class SMEM(Inst64): + encoding = bits[31:26] == 0b110000 + op:Annotated[BitField, SMEMOp] = bits[25:18] + sdata:SGPRField = bits[12:6] + sbase:SGPRField = bits[5:0] + soffset:SSrc = bits[63:57] + offset:Imm = bits[52:32] + glc = bits[14] + soe = bits[14] + nv = bits[15] + imm = bits[17] + +class SOP1(Inst32): + encoding = bits[31:23] == 0b101111101 + op:Annotated[BitField, SOP1Op] = bits[15:8] + sdst:SGPRField = bits[22:16] + ssrc0:SSrc = bits[7:0] + +class SOP2(Inst32): + encoding = bits[31:30] == 0b10 + op:Annotated[BitField, SOP2Op] = bits[29:23] + sdst:SGPRField = bits[22:16] + ssrc0:SSrc = bits[7:0] + ssrc1:SSrc = bits[15:8] + +class SOPC(Inst32): + encoding = bits[31:23] == 0b101111110 + op:Annotated[BitField, SOPCOp] = bits[22:16] + ssrc0:SSrc = bits[7:0] + ssrc1:SSrc = bits[15:8] + +class SOPK(Inst32): + encoding = bits[31:28] == 0b1011 + op:Annotated[BitField, SOPKOp] = bits[27:23] + sdst:SGPRField = bits[22:16] + simm16:SImm = bits[15:0] + +class SOPP(Inst32): + encoding = bits[31:23] == 0b101111111 + op:Annotated[BitField, SOPPOp] = bits[22:16] + simm16:SImm = bits[15:0] + +class VOP1(Inst32): + encoding = bits[31:25] == 0b111111 + op:Annotated[BitField, VOP1Op] = bits[16:9] + vdst:VGPRField = bits[24:17] + src0:Src = bits[8:0] + +class VOP2(Inst32): + encoding = bits[31] == 0 + op:Annotated[BitField, VOP2Op] = bits[30:25] + vdst:VGPRField = bits[24:17] + src0:Src = bits[8:0] + vsrc1:VGPRField = bits[16:9] + +class VOP3A(Inst64): + encoding = bits[31:26] == 0b110100 + vdst:VGPRField = bits[7:0] + abs = bits[10:8] + opsel = bits[14:11] + clmp = bits[15] + op:Annotated[BitField, VOP3AOp] = bits[25:16] + src0:Src = bits[40:32] + src1:Src = bits[49:41] + src2:Src = bits[58:50] + omod = bits[60:59] + neg = bits[63:61] + +class VOP3B(Inst64): + encoding = bits[31:26] == 0b110100 + vdst:VGPRField = bits[7:0] + sdst:SGPRField = bits[14:8] + clmp = bits[15] + op:Annotated[BitField, VOP3BOp] = bits[25:16] + src0:Src = bits[40:32] + src1:Src = bits[49:41] + src2:Src = bits[58:50] + omod = bits[60:59] + neg = bits[63:61] + +class VOP3P(Inst64): + encoding = bits[31:23] == 0b110100111 + _defaults = {'opsel_hi': 3, 'opsel_hi2': 1} + op:Annotated[BitField, VOP3POp] = bits[22:16] + vdst:VGPRField = bits[7:0] + src0:Src = bits[40:32] + src1:Src = bits[49:41] + src2:Src = bits[58:50] + neg = bits[63:61] + neg_hi = bits[10:8] + opsel = bits[13:11] + opsel_hi = bits[60:59] + clmp = bits[15] + opsel_hi2 = bits[14] + +class VOPC(Inst32): + encoding = bits[31:25] == 0b111110 + op:Annotated[BitField, VOPCOp] = bits[24:17] + src0:Src = bits[8:0] + vsrc1:VGPRField = bits[16:9] + +# instruction helpers +ds_add_u32 = functools.partial(DS, DSOp.DS_ADD_U32) +ds_sub_u32 = functools.partial(DS, DSOp.DS_SUB_U32) +ds_rsub_u32 = functools.partial(DS, DSOp.DS_RSUB_U32) +ds_inc_u32 = functools.partial(DS, DSOp.DS_INC_U32) +ds_dec_u32 = functools.partial(DS, DSOp.DS_DEC_U32) +ds_min_i32 = functools.partial(DS, DSOp.DS_MIN_I32) +ds_max_i32 = functools.partial(DS, DSOp.DS_MAX_I32) +ds_min_u32 = functools.partial(DS, DSOp.DS_MIN_U32) +ds_max_u32 = functools.partial(DS, DSOp.DS_MAX_U32) +ds_and_b32 = functools.partial(DS, DSOp.DS_AND_B32) +ds_or_b32 = functools.partial(DS, DSOp.DS_OR_B32) +ds_xor_b32 = functools.partial(DS, DSOp.DS_XOR_B32) +ds_mskor_b32 = functools.partial(DS, DSOp.DS_MSKOR_B32) +ds_write_b32 = functools.partial(DS, DSOp.DS_WRITE_B32) +ds_write2_b32 = functools.partial(DS, DSOp.DS_WRITE2_B32) +ds_write2st64_b32 = functools.partial(DS, DSOp.DS_WRITE2ST64_B32) +ds_cmpst_b32 = functools.partial(DS, DSOp.DS_CMPST_B32) +ds_cmpst_f32 = functools.partial(DS, DSOp.DS_CMPST_F32) +ds_min_f32 = functools.partial(DS, DSOp.DS_MIN_F32) +ds_max_f32 = functools.partial(DS, DSOp.DS_MAX_F32) +ds_nop = functools.partial(DS, DSOp.DS_NOP) +ds_add_f32 = functools.partial(DS, DSOp.DS_ADD_F32) +ds_pk_add_f16 = functools.partial(DS, DSOp.DS_PK_ADD_F16) +ds_pk_add_bf16 = functools.partial(DS, DSOp.DS_PK_ADD_BF16) +ds_write_addtid_b32 = functools.partial(DS, DSOp.DS_WRITE_ADDTID_B32) +ds_write_b8 = functools.partial(DS, DSOp.DS_WRITE_B8) +ds_write_b16 = functools.partial(DS, DSOp.DS_WRITE_B16) +ds_add_rtn_u32 = functools.partial(DS, DSOp.DS_ADD_RTN_U32) +ds_sub_rtn_u32 = functools.partial(DS, DSOp.DS_SUB_RTN_U32) +ds_rsub_rtn_u32 = functools.partial(DS, DSOp.DS_RSUB_RTN_U32) +ds_inc_rtn_u32 = functools.partial(DS, DSOp.DS_INC_RTN_U32) +ds_dec_rtn_u32 = functools.partial(DS, DSOp.DS_DEC_RTN_U32) +ds_min_rtn_i32 = functools.partial(DS, DSOp.DS_MIN_RTN_I32) +ds_max_rtn_i32 = functools.partial(DS, DSOp.DS_MAX_RTN_I32) +ds_min_rtn_u32 = functools.partial(DS, DSOp.DS_MIN_RTN_U32) +ds_max_rtn_u32 = functools.partial(DS, DSOp.DS_MAX_RTN_U32) +ds_and_rtn_b32 = functools.partial(DS, DSOp.DS_AND_RTN_B32) +ds_or_rtn_b32 = functools.partial(DS, DSOp.DS_OR_RTN_B32) +ds_xor_rtn_b32 = functools.partial(DS, DSOp.DS_XOR_RTN_B32) +ds_mskor_rtn_b32 = functools.partial(DS, DSOp.DS_MSKOR_RTN_B32) +ds_wrxchg_rtn_b32 = functools.partial(DS, DSOp.DS_WRXCHG_RTN_B32) +ds_wrxchg2_rtn_b32 = functools.partial(DS, DSOp.DS_WRXCHG2_RTN_B32) +ds_wrxchg2st64_rtn_b32 = functools.partial(DS, DSOp.DS_WRXCHG2ST64_RTN_B32) +ds_cmpst_rtn_b32 = functools.partial(DS, DSOp.DS_CMPST_RTN_B32) +ds_cmpst_rtn_f32 = functools.partial(DS, DSOp.DS_CMPST_RTN_F32) +ds_min_rtn_f32 = functools.partial(DS, DSOp.DS_MIN_RTN_F32) +ds_max_rtn_f32 = functools.partial(DS, DSOp.DS_MAX_RTN_F32) +ds_wrap_rtn_b32 = functools.partial(DS, DSOp.DS_WRAP_RTN_B32) +ds_add_rtn_f32 = functools.partial(DS, DSOp.DS_ADD_RTN_F32) +ds_read_b32 = functools.partial(DS, DSOp.DS_READ_B32) +ds_read2_b32 = functools.partial(DS, DSOp.DS_READ2_B32) +ds_read2st64_b32 = functools.partial(DS, DSOp.DS_READ2ST64_B32) +ds_read_i8 = functools.partial(DS, DSOp.DS_READ_I8) +ds_read_u8 = functools.partial(DS, DSOp.DS_READ_U8) +ds_read_i16 = functools.partial(DS, DSOp.DS_READ_I16) +ds_read_u16 = functools.partial(DS, DSOp.DS_READ_U16) +ds_swizzle_b32 = functools.partial(DS, DSOp.DS_SWIZZLE_B32) +ds_permute_b32 = functools.partial(DS, DSOp.DS_PERMUTE_B32) +ds_bpermute_b32 = functools.partial(DS, DSOp.DS_BPERMUTE_B32) +ds_add_u64 = functools.partial(DS, DSOp.DS_ADD_U64) +ds_sub_u64 = functools.partial(DS, DSOp.DS_SUB_U64) +ds_rsub_u64 = functools.partial(DS, DSOp.DS_RSUB_U64) +ds_inc_u64 = functools.partial(DS, DSOp.DS_INC_U64) +ds_dec_u64 = functools.partial(DS, DSOp.DS_DEC_U64) +ds_min_i64 = functools.partial(DS, DSOp.DS_MIN_I64) +ds_max_i64 = functools.partial(DS, DSOp.DS_MAX_I64) +ds_min_u64 = functools.partial(DS, DSOp.DS_MIN_U64) +ds_max_u64 = functools.partial(DS, DSOp.DS_MAX_U64) +ds_and_b64 = functools.partial(DS, DSOp.DS_AND_B64) +ds_or_b64 = functools.partial(DS, DSOp.DS_OR_B64) +ds_xor_b64 = functools.partial(DS, DSOp.DS_XOR_B64) +ds_mskor_b64 = functools.partial(DS, DSOp.DS_MSKOR_B64) +ds_write_b64 = functools.partial(DS, DSOp.DS_WRITE_B64) +ds_write2_b64 = functools.partial(DS, DSOp.DS_WRITE2_B64) +ds_write2st64_b64 = functools.partial(DS, DSOp.DS_WRITE2ST64_B64) +ds_cmpst_b64 = functools.partial(DS, DSOp.DS_CMPST_B64) +ds_cmpst_f64 = functools.partial(DS, DSOp.DS_CMPST_F64) +ds_min_f64 = functools.partial(DS, DSOp.DS_MIN_F64) +ds_max_f64 = functools.partial(DS, DSOp.DS_MAX_F64) +ds_write_b8_d16_hi = functools.partial(DS, DSOp.DS_WRITE_B8_D16_HI) +ds_write_b16_d16_hi = functools.partial(DS, DSOp.DS_WRITE_B16_D16_HI) +ds_read_u8_d16 = functools.partial(DS, DSOp.DS_READ_U8_D16) +ds_read_u8_d16_hi = functools.partial(DS, DSOp.DS_READ_U8_D16_HI) +ds_read_i8_d16 = functools.partial(DS, DSOp.DS_READ_I8_D16) +ds_read_i8_d16_hi = functools.partial(DS, DSOp.DS_READ_I8_D16_HI) +ds_read_u16_d16 = functools.partial(DS, DSOp.DS_READ_U16_D16) +ds_read_u16_d16_hi = functools.partial(DS, DSOp.DS_READ_U16_D16_HI) +ds_add_f64 = functools.partial(DS, DSOp.DS_ADD_F64) +ds_add_rtn_u64 = functools.partial(DS, DSOp.DS_ADD_RTN_U64) +ds_sub_rtn_u64 = functools.partial(DS, DSOp.DS_SUB_RTN_U64) +ds_rsub_rtn_u64 = functools.partial(DS, DSOp.DS_RSUB_RTN_U64) +ds_inc_rtn_u64 = functools.partial(DS, DSOp.DS_INC_RTN_U64) +ds_dec_rtn_u64 = functools.partial(DS, DSOp.DS_DEC_RTN_U64) +ds_min_rtn_i64 = functools.partial(DS, DSOp.DS_MIN_RTN_I64) +ds_max_rtn_i64 = functools.partial(DS, DSOp.DS_MAX_RTN_I64) +ds_min_rtn_u64 = functools.partial(DS, DSOp.DS_MIN_RTN_U64) +ds_max_rtn_u64 = functools.partial(DS, DSOp.DS_MAX_RTN_U64) +ds_and_rtn_b64 = functools.partial(DS, DSOp.DS_AND_RTN_B64) +ds_or_rtn_b64 = functools.partial(DS, DSOp.DS_OR_RTN_B64) +ds_xor_rtn_b64 = functools.partial(DS, DSOp.DS_XOR_RTN_B64) +ds_mskor_rtn_b64 = functools.partial(DS, DSOp.DS_MSKOR_RTN_B64) +ds_wrxchg_rtn_b64 = functools.partial(DS, DSOp.DS_WRXCHG_RTN_B64) +ds_wrxchg2_rtn_b64 = functools.partial(DS, DSOp.DS_WRXCHG2_RTN_B64) +ds_wrxchg2st64_rtn_b64 = functools.partial(DS, DSOp.DS_WRXCHG2ST64_RTN_B64) +ds_cmpst_rtn_b64 = functools.partial(DS, DSOp.DS_CMPST_RTN_B64) +ds_cmpst_rtn_f64 = functools.partial(DS, DSOp.DS_CMPST_RTN_F64) +ds_min_rtn_f64 = functools.partial(DS, DSOp.DS_MIN_RTN_F64) +ds_max_rtn_f64 = functools.partial(DS, DSOp.DS_MAX_RTN_F64) +ds_read_b64 = functools.partial(DS, DSOp.DS_READ_B64) +ds_read2_b64 = functools.partial(DS, DSOp.DS_READ2_B64) +ds_read2st64_b64 = functools.partial(DS, DSOp.DS_READ2ST64_B64) +ds_add_rtn_f64 = functools.partial(DS, DSOp.DS_ADD_RTN_F64) +ds_condxchg32_rtn_b64 = functools.partial(DS, DSOp.DS_CONDXCHG32_RTN_B64) +ds_gws_sema_release_all = functools.partial(DS, DSOp.DS_GWS_SEMA_RELEASE_ALL) +ds_gws_init = functools.partial(DS, DSOp.DS_GWS_INIT) +ds_gws_sema_v = functools.partial(DS, DSOp.DS_GWS_SEMA_V) +ds_gws_sema_br = functools.partial(DS, DSOp.DS_GWS_SEMA_BR) +ds_gws_sema_p = functools.partial(DS, DSOp.DS_GWS_SEMA_P) +ds_gws_barrier = functools.partial(DS, DSOp.DS_GWS_BARRIER) +ds_read_addtid_b32 = functools.partial(DS, DSOp.DS_READ_ADDTID_B32) +ds_pk_add_rtn_f16 = functools.partial(DS, DSOp.DS_PK_ADD_RTN_F16) +ds_pk_add_rtn_bf16 = functools.partial(DS, DSOp.DS_PK_ADD_RTN_BF16) +ds_consume = functools.partial(DS, DSOp.DS_CONSUME) +ds_append = functools.partial(DS, DSOp.DS_APPEND) +ds_write_b96 = functools.partial(DS, DSOp.DS_WRITE_B96) +ds_write_b128 = functools.partial(DS, DSOp.DS_WRITE_B128) +ds_read_b64_tr_b4 = functools.partial(DS, DSOp.DS_READ_B64_TR_B4) +ds_read_b96_tr_b6 = functools.partial(DS, DSOp.DS_READ_B96_TR_B6) +ds_read_b64_tr_b8 = functools.partial(DS, DSOp.DS_READ_B64_TR_B8) +ds_read_b64_tr_b16 = functools.partial(DS, DSOp.DS_READ_B64_TR_B16) +ds_read_b96 = functools.partial(DS, DSOp.DS_READ_B96) +ds_read_b128 = functools.partial(DS, DSOp.DS_READ_B128) +cdna4 = functools.partial(DS, DSOp.CDNA4) +flat_load_ubyte = functools.partial(FLAT, FLATOp.FLAT_LOAD_UBYTE) +flat_load_sbyte = functools.partial(FLAT, FLATOp.FLAT_LOAD_SBYTE) +flat_load_ushort = functools.partial(FLAT, FLATOp.FLAT_LOAD_USHORT) +flat_load_sshort = functools.partial(FLAT, FLATOp.FLAT_LOAD_SSHORT) +flat_load_dword = functools.partial(FLAT, FLATOp.FLAT_LOAD_DWORD) +flat_load_dwordx2 = functools.partial(FLAT, FLATOp.FLAT_LOAD_DWORDX2) +flat_load_dwordx3 = functools.partial(FLAT, FLATOp.FLAT_LOAD_DWORDX3) +flat_load_dwordx4 = functools.partial(FLAT, FLATOp.FLAT_LOAD_DWORDX4) +flat_store_byte = functools.partial(FLAT, FLATOp.FLAT_STORE_BYTE) +flat_store_byte_d16_hi = functools.partial(FLAT, FLATOp.FLAT_STORE_BYTE_D16_HI) +flat_store_short = functools.partial(FLAT, FLATOp.FLAT_STORE_SHORT) +flat_store_short_d16_hi = functools.partial(FLAT, FLATOp.FLAT_STORE_SHORT_D16_HI) +flat_store_dword = functools.partial(FLAT, FLATOp.FLAT_STORE_DWORD) +flat_store_dwordx2 = functools.partial(FLAT, FLATOp.FLAT_STORE_DWORDX2) +flat_store_dwordx3 = functools.partial(FLAT, FLATOp.FLAT_STORE_DWORDX3) +flat_store_dwordx4 = functools.partial(FLAT, FLATOp.FLAT_STORE_DWORDX4) +flat_load_ubyte_d16 = functools.partial(FLAT, FLATOp.FLAT_LOAD_UBYTE_D16) +flat_load_ubyte_d16_hi = functools.partial(FLAT, FLATOp.FLAT_LOAD_UBYTE_D16_HI) +flat_load_sbyte_d16 = functools.partial(FLAT, FLATOp.FLAT_LOAD_SBYTE_D16) +flat_load_sbyte_d16_hi = functools.partial(FLAT, FLATOp.FLAT_LOAD_SBYTE_D16_HI) +flat_load_short_d16 = functools.partial(FLAT, FLATOp.FLAT_LOAD_SHORT_D16) +flat_load_short_d16_hi = functools.partial(FLAT, FLATOp.FLAT_LOAD_SHORT_D16_HI) +flat_atomic_swap = functools.partial(FLAT, FLATOp.FLAT_ATOMIC_SWAP) +flat_atomic_cmpswap = functools.partial(FLAT, FLATOp.FLAT_ATOMIC_CMPSWAP) +flat_atomic_add = functools.partial(FLAT, FLATOp.FLAT_ATOMIC_ADD) +flat_atomic_sub = functools.partial(FLAT, FLATOp.FLAT_ATOMIC_SUB) +flat_atomic_smin = functools.partial(FLAT, FLATOp.FLAT_ATOMIC_SMIN) +flat_atomic_umin = functools.partial(FLAT, FLATOp.FLAT_ATOMIC_UMIN) +flat_atomic_smax = functools.partial(FLAT, FLATOp.FLAT_ATOMIC_SMAX) +flat_atomic_umax = functools.partial(FLAT, FLATOp.FLAT_ATOMIC_UMAX) +flat_atomic_and = functools.partial(FLAT, FLATOp.FLAT_ATOMIC_AND) +flat_atomic_or = functools.partial(FLAT, FLATOp.FLAT_ATOMIC_OR) +flat_atomic_xor = functools.partial(FLAT, FLATOp.FLAT_ATOMIC_XOR) +flat_atomic_inc = functools.partial(FLAT, FLATOp.FLAT_ATOMIC_INC) +flat_atomic_dec = functools.partial(FLAT, FLATOp.FLAT_ATOMIC_DEC) +flat_atomic_add_f32 = functools.partial(FLAT, FLATOp.FLAT_ATOMIC_ADD_F32) +flat_atomic_pk_add_f16 = functools.partial(FLAT, FLATOp.FLAT_ATOMIC_PK_ADD_F16) +flat_atomic_add_f64 = functools.partial(FLAT, FLATOp.FLAT_ATOMIC_ADD_F64) +flat_atomic_min_f64 = functools.partial(FLAT, FLATOp.FLAT_ATOMIC_MIN_F64) +flat_atomic_max_f64 = functools.partial(FLAT, FLATOp.FLAT_ATOMIC_MAX_F64) +flat_atomic_pk_add_bf16 = functools.partial(FLAT, FLATOp.FLAT_ATOMIC_PK_ADD_BF16) +flat_atomic_swap_x2 = functools.partial(FLAT, FLATOp.FLAT_ATOMIC_SWAP_X2) +flat_atomic_cmpswap_x2 = functools.partial(FLAT, FLATOp.FLAT_ATOMIC_CMPSWAP_X2) +flat_atomic_add_x2 = functools.partial(FLAT, FLATOp.FLAT_ATOMIC_ADD_X2) +flat_atomic_sub_x2 = functools.partial(FLAT, FLATOp.FLAT_ATOMIC_SUB_X2) +flat_atomic_smin_x2 = functools.partial(FLAT, FLATOp.FLAT_ATOMIC_SMIN_X2) +flat_atomic_umin_x2 = functools.partial(FLAT, FLATOp.FLAT_ATOMIC_UMIN_X2) +flat_atomic_smax_x2 = functools.partial(FLAT, FLATOp.FLAT_ATOMIC_SMAX_X2) +flat_atomic_umax_x2 = functools.partial(FLAT, FLATOp.FLAT_ATOMIC_UMAX_X2) +flat_atomic_and_x2 = functools.partial(FLAT, FLATOp.FLAT_ATOMIC_AND_X2) +flat_atomic_or_x2 = functools.partial(FLAT, FLATOp.FLAT_ATOMIC_OR_X2) +flat_atomic_xor_x2 = functools.partial(FLAT, FLATOp.FLAT_ATOMIC_XOR_X2) +flat_atomic_inc_x2 = functools.partial(FLAT, FLATOp.FLAT_ATOMIC_INC_X2) +flat_atomic_dec_x2 = functools.partial(FLAT, FLATOp.FLAT_ATOMIC_DEC_X2) +cdna4 = functools.partial(FLAT, FLATOp.CDNA4) +global_load_ubyte = functools.partial(FLAT, GLOBALOp.GLOBAL_LOAD_UBYTE, seg=2) +global_load_sbyte = functools.partial(FLAT, GLOBALOp.GLOBAL_LOAD_SBYTE, seg=2) +global_load_ushort = functools.partial(FLAT, GLOBALOp.GLOBAL_LOAD_USHORT, seg=2) +global_load_sshort = functools.partial(FLAT, GLOBALOp.GLOBAL_LOAD_SSHORT, seg=2) +global_load_dword = functools.partial(FLAT, GLOBALOp.GLOBAL_LOAD_DWORD, seg=2) +global_load_dwordx2 = functools.partial(FLAT, GLOBALOp.GLOBAL_LOAD_DWORDX2, seg=2) +global_load_dwordx3 = functools.partial(FLAT, GLOBALOp.GLOBAL_LOAD_DWORDX3, seg=2) +global_load_dwordx4 = functools.partial(FLAT, GLOBALOp.GLOBAL_LOAD_DWORDX4, seg=2) +global_store_byte = functools.partial(FLAT, GLOBALOp.GLOBAL_STORE_BYTE, seg=2) +global_store_byte_d16_hi = functools.partial(FLAT, GLOBALOp.GLOBAL_STORE_BYTE_D16_HI, seg=2) +global_store_short = functools.partial(FLAT, GLOBALOp.GLOBAL_STORE_SHORT, seg=2) +global_store_short_d16_hi = functools.partial(FLAT, GLOBALOp.GLOBAL_STORE_SHORT_D16_HI, seg=2) +global_store_dword = functools.partial(FLAT, GLOBALOp.GLOBAL_STORE_DWORD, seg=2) +global_store_dwordx2 = functools.partial(FLAT, GLOBALOp.GLOBAL_STORE_DWORDX2, seg=2) +global_store_dwordx3 = functools.partial(FLAT, GLOBALOp.GLOBAL_STORE_DWORDX3, seg=2) +global_store_dwordx4 = functools.partial(FLAT, GLOBALOp.GLOBAL_STORE_DWORDX4, seg=2) +global_load_ubyte_d16 = functools.partial(FLAT, GLOBALOp.GLOBAL_LOAD_UBYTE_D16, seg=2) +global_load_ubyte_d16_hi = functools.partial(FLAT, GLOBALOp.GLOBAL_LOAD_UBYTE_D16_HI, seg=2) +global_load_sbyte_d16 = functools.partial(FLAT, GLOBALOp.GLOBAL_LOAD_SBYTE_D16, seg=2) +global_load_sbyte_d16_hi = functools.partial(FLAT, GLOBALOp.GLOBAL_LOAD_SBYTE_D16_HI, seg=2) +global_load_short_d16 = functools.partial(FLAT, GLOBALOp.GLOBAL_LOAD_SHORT_D16, seg=2) +global_load_short_d16_hi = functools.partial(FLAT, GLOBALOp.GLOBAL_LOAD_SHORT_D16_HI, seg=2) +global_load_lds_ubyte = functools.partial(FLAT, GLOBALOp.GLOBAL_LOAD_LDS_UBYTE, seg=2) +global_load_lds_sbyte = functools.partial(FLAT, GLOBALOp.GLOBAL_LOAD_LDS_SBYTE, seg=2) +global_load_lds_ushort = functools.partial(FLAT, GLOBALOp.GLOBAL_LOAD_LDS_USHORT, seg=2) +global_load_lds_sshort = functools.partial(FLAT, GLOBALOp.GLOBAL_LOAD_LDS_SSHORT, seg=2) +global_load_lds_dword = functools.partial(FLAT, GLOBALOp.GLOBAL_LOAD_LDS_DWORD, seg=2) +global_atomic_swap = functools.partial(FLAT, GLOBALOp.GLOBAL_ATOMIC_SWAP, seg=2) +global_atomic_cmpswap = functools.partial(FLAT, GLOBALOp.GLOBAL_ATOMIC_CMPSWAP, seg=2) +global_atomic_add = functools.partial(FLAT, GLOBALOp.GLOBAL_ATOMIC_ADD, seg=2) +global_atomic_sub = functools.partial(FLAT, GLOBALOp.GLOBAL_ATOMIC_SUB, seg=2) +global_atomic_smin = functools.partial(FLAT, GLOBALOp.GLOBAL_ATOMIC_SMIN, seg=2) +global_atomic_umin = functools.partial(FLAT, GLOBALOp.GLOBAL_ATOMIC_UMIN, seg=2) +global_atomic_smax = functools.partial(FLAT, GLOBALOp.GLOBAL_ATOMIC_SMAX, seg=2) +global_atomic_umax = functools.partial(FLAT, GLOBALOp.GLOBAL_ATOMIC_UMAX, seg=2) +global_atomic_and = functools.partial(FLAT, GLOBALOp.GLOBAL_ATOMIC_AND, seg=2) +global_atomic_or = functools.partial(FLAT, GLOBALOp.GLOBAL_ATOMIC_OR, seg=2) +global_atomic_xor = functools.partial(FLAT, GLOBALOp.GLOBAL_ATOMIC_XOR, seg=2) +global_atomic_inc = functools.partial(FLAT, GLOBALOp.GLOBAL_ATOMIC_INC, seg=2) +global_atomic_dec = functools.partial(FLAT, GLOBALOp.GLOBAL_ATOMIC_DEC, seg=2) +global_atomic_add_f32 = functools.partial(FLAT, GLOBALOp.GLOBAL_ATOMIC_ADD_F32, seg=2) +global_atomic_pk_add_f16 = functools.partial(FLAT, GLOBALOp.GLOBAL_ATOMIC_PK_ADD_F16, seg=2) +global_atomic_add_f64 = functools.partial(FLAT, GLOBALOp.GLOBAL_ATOMIC_ADD_F64, seg=2) +global_atomic_min_f64 = functools.partial(FLAT, GLOBALOp.GLOBAL_ATOMIC_MIN_F64, seg=2) +global_atomic_max_f64 = functools.partial(FLAT, GLOBALOp.GLOBAL_ATOMIC_MAX_F64, seg=2) +global_atomic_pk_add_bf16 = functools.partial(FLAT, GLOBALOp.GLOBAL_ATOMIC_PK_ADD_BF16, seg=2) +global_atomic_swap_x2 = functools.partial(FLAT, GLOBALOp.GLOBAL_ATOMIC_SWAP_X2, seg=2) +global_atomic_cmpswap_x2 = functools.partial(FLAT, GLOBALOp.GLOBAL_ATOMIC_CMPSWAP_X2, seg=2) +global_atomic_add_x2 = functools.partial(FLAT, GLOBALOp.GLOBAL_ATOMIC_ADD_X2, seg=2) +global_atomic_sub_x2 = functools.partial(FLAT, GLOBALOp.GLOBAL_ATOMIC_SUB_X2, seg=2) +global_atomic_smin_x2 = functools.partial(FLAT, GLOBALOp.GLOBAL_ATOMIC_SMIN_X2, seg=2) +global_atomic_umin_x2 = functools.partial(FLAT, GLOBALOp.GLOBAL_ATOMIC_UMIN_X2, seg=2) +global_atomic_smax_x2 = functools.partial(FLAT, GLOBALOp.GLOBAL_ATOMIC_SMAX_X2, seg=2) +global_atomic_umax_x2 = functools.partial(FLAT, GLOBALOp.GLOBAL_ATOMIC_UMAX_X2, seg=2) +global_atomic_and_x2 = functools.partial(FLAT, GLOBALOp.GLOBAL_ATOMIC_AND_X2, seg=2) +global_atomic_or_x2 = functools.partial(FLAT, GLOBALOp.GLOBAL_ATOMIC_OR_X2, seg=2) +global_atomic_xor_x2 = functools.partial(FLAT, GLOBALOp.GLOBAL_ATOMIC_XOR_X2, seg=2) +global_atomic_inc_x2 = functools.partial(FLAT, GLOBALOp.GLOBAL_ATOMIC_INC_X2, seg=2) +global_atomic_dec_x2 = functools.partial(FLAT, GLOBALOp.GLOBAL_ATOMIC_DEC_X2, seg=2) +global_load_lds_dwordx4 = functools.partial(FLAT, GLOBALOp.GLOBAL_LOAD_LDS_DWORDX4, seg=2) +global_load_lds_dwordx3 = functools.partial(FLAT, GLOBALOp.GLOBAL_LOAD_LDS_DWORDX3, seg=2) +cdna4 = functools.partial(FLAT, GLOBALOp.CDNA4, seg=2) +tbuffer_load_format_x = functools.partial(MTBUF, MTBUFOp.TBUFFER_LOAD_FORMAT_X) +tbuffer_load_format_xy = functools.partial(MTBUF, MTBUFOp.TBUFFER_LOAD_FORMAT_XY) +tbuffer_load_format_xyz = functools.partial(MTBUF, MTBUFOp.TBUFFER_LOAD_FORMAT_XYZ) +tbuffer_load_format_xyzw = functools.partial(MTBUF, MTBUFOp.TBUFFER_LOAD_FORMAT_XYZW) +tbuffer_store_format_x = functools.partial(MTBUF, MTBUFOp.TBUFFER_STORE_FORMAT_X) +tbuffer_store_format_xy = functools.partial(MTBUF, MTBUFOp.TBUFFER_STORE_FORMAT_XY) +tbuffer_store_format_xyz = functools.partial(MTBUF, MTBUFOp.TBUFFER_STORE_FORMAT_XYZ) +tbuffer_store_format_xyzw = functools.partial(MTBUF, MTBUFOp.TBUFFER_STORE_FORMAT_XYZW) +tbuffer_load_format_d16_x = functools.partial(MTBUF, MTBUFOp.TBUFFER_LOAD_FORMAT_D16_X) +tbuffer_load_format_d16_xy = functools.partial(MTBUF, MTBUFOp.TBUFFER_LOAD_FORMAT_D16_XY) +tbuffer_load_format_d16_xyz = functools.partial(MTBUF, MTBUFOp.TBUFFER_LOAD_FORMAT_D16_XYZ) +tbuffer_load_format_d16_xyzw = functools.partial(MTBUF, MTBUFOp.TBUFFER_LOAD_FORMAT_D16_XYZW) +tbuffer_store_format_d16_x = functools.partial(MTBUF, MTBUFOp.TBUFFER_STORE_FORMAT_D16_X) +tbuffer_store_format_d16_xy = functools.partial(MTBUF, MTBUFOp.TBUFFER_STORE_FORMAT_D16_XY) +tbuffer_store_format_d16_xyz = functools.partial(MTBUF, MTBUFOp.TBUFFER_STORE_FORMAT_D16_XYZ) +tbuffer_store_format_d16_xyzw = functools.partial(MTBUF, MTBUFOp.TBUFFER_STORE_FORMAT_D16_XYZW) +buffer_load_format_x = functools.partial(MUBUF, MUBUFOp.BUFFER_LOAD_FORMAT_X) +buffer_load_format_xy = functools.partial(MUBUF, MUBUFOp.BUFFER_LOAD_FORMAT_XY) +buffer_load_format_xyz = functools.partial(MUBUF, MUBUFOp.BUFFER_LOAD_FORMAT_XYZ) +buffer_load_format_xyzw = functools.partial(MUBUF, MUBUFOp.BUFFER_LOAD_FORMAT_XYZW) +buffer_store_format_x = functools.partial(MUBUF, MUBUFOp.BUFFER_STORE_FORMAT_X) +buffer_store_format_xy = functools.partial(MUBUF, MUBUFOp.BUFFER_STORE_FORMAT_XY) +buffer_store_format_xyz = functools.partial(MUBUF, MUBUFOp.BUFFER_STORE_FORMAT_XYZ) +buffer_store_format_xyzw = functools.partial(MUBUF, MUBUFOp.BUFFER_STORE_FORMAT_XYZW) +buffer_load_format_d16_x = functools.partial(MUBUF, MUBUFOp.BUFFER_LOAD_FORMAT_D16_X) +buffer_load_format_d16_xy = functools.partial(MUBUF, MUBUFOp.BUFFER_LOAD_FORMAT_D16_XY) +buffer_load_format_d16_xyz = functools.partial(MUBUF, MUBUFOp.BUFFER_LOAD_FORMAT_D16_XYZ) +buffer_load_format_d16_xyzw = functools.partial(MUBUF, MUBUFOp.BUFFER_LOAD_FORMAT_D16_XYZW) +buffer_store_format_d16_x = functools.partial(MUBUF, MUBUFOp.BUFFER_STORE_FORMAT_D16_X) +buffer_store_format_d16_xy = functools.partial(MUBUF, MUBUFOp.BUFFER_STORE_FORMAT_D16_XY) +buffer_store_format_d16_xyz = functools.partial(MUBUF, MUBUFOp.BUFFER_STORE_FORMAT_D16_XYZ) +buffer_store_format_d16_xyzw = functools.partial(MUBUF, MUBUFOp.BUFFER_STORE_FORMAT_D16_XYZW) +buffer_load_ubyte = functools.partial(MUBUF, MUBUFOp.BUFFER_LOAD_UBYTE) +buffer_load_sbyte = functools.partial(MUBUF, MUBUFOp.BUFFER_LOAD_SBYTE) +buffer_load_ushort = functools.partial(MUBUF, MUBUFOp.BUFFER_LOAD_USHORT) +buffer_load_sshort = functools.partial(MUBUF, MUBUFOp.BUFFER_LOAD_SSHORT) +buffer_load_dword = functools.partial(MUBUF, MUBUFOp.BUFFER_LOAD_DWORD) +buffer_load_dwordx2 = functools.partial(MUBUF, MUBUFOp.BUFFER_LOAD_DWORDX2) +buffer_load_dwordx3 = functools.partial(MUBUF, MUBUFOp.BUFFER_LOAD_DWORDX3) +buffer_load_dwordx4 = functools.partial(MUBUF, MUBUFOp.BUFFER_LOAD_DWORDX4) +buffer_store_byte = functools.partial(MUBUF, MUBUFOp.BUFFER_STORE_BYTE) +buffer_store_byte_d16_hi = functools.partial(MUBUF, MUBUFOp.BUFFER_STORE_BYTE_D16_HI) +buffer_store_short = functools.partial(MUBUF, MUBUFOp.BUFFER_STORE_SHORT) +buffer_store_short_d16_hi = functools.partial(MUBUF, MUBUFOp.BUFFER_STORE_SHORT_D16_HI) +buffer_store_dword = functools.partial(MUBUF, MUBUFOp.BUFFER_STORE_DWORD) +buffer_store_dwordx2 = functools.partial(MUBUF, MUBUFOp.BUFFER_STORE_DWORDX2) +buffer_store_dwordx3 = functools.partial(MUBUF, MUBUFOp.BUFFER_STORE_DWORDX3) +buffer_store_dwordx4 = functools.partial(MUBUF, MUBUFOp.BUFFER_STORE_DWORDX4) +buffer_load_ubyte_d16 = functools.partial(MUBUF, MUBUFOp.BUFFER_LOAD_UBYTE_D16) +buffer_load_ubyte_d16_hi = functools.partial(MUBUF, MUBUFOp.BUFFER_LOAD_UBYTE_D16_HI) +buffer_load_sbyte_d16 = functools.partial(MUBUF, MUBUFOp.BUFFER_LOAD_SBYTE_D16) +buffer_load_sbyte_d16_hi = functools.partial(MUBUF, MUBUFOp.BUFFER_LOAD_SBYTE_D16_HI) +buffer_load_short_d16 = functools.partial(MUBUF, MUBUFOp.BUFFER_LOAD_SHORT_D16) +buffer_load_short_d16_hi = functools.partial(MUBUF, MUBUFOp.BUFFER_LOAD_SHORT_D16_HI) +buffer_load_format_d16_hi_x = functools.partial(MUBUF, MUBUFOp.BUFFER_LOAD_FORMAT_D16_HI_X) +buffer_store_format_d16_hi_x = functools.partial(MUBUF, MUBUFOp.BUFFER_STORE_FORMAT_D16_HI_X) +buffer_wbl2 = functools.partial(MUBUF, MUBUFOp.BUFFER_WBL2) +buffer_inv = functools.partial(MUBUF, MUBUFOp.BUFFER_INV) +buffer_atomic_swap = functools.partial(MUBUF, MUBUFOp.BUFFER_ATOMIC_SWAP) +buffer_atomic_cmpswap = functools.partial(MUBUF, MUBUFOp.BUFFER_ATOMIC_CMPSWAP) +buffer_atomic_add = functools.partial(MUBUF, MUBUFOp.BUFFER_ATOMIC_ADD) +buffer_atomic_sub = functools.partial(MUBUF, MUBUFOp.BUFFER_ATOMIC_SUB) +buffer_atomic_smin = functools.partial(MUBUF, MUBUFOp.BUFFER_ATOMIC_SMIN) +buffer_atomic_umin = functools.partial(MUBUF, MUBUFOp.BUFFER_ATOMIC_UMIN) +buffer_atomic_smax = functools.partial(MUBUF, MUBUFOp.BUFFER_ATOMIC_SMAX) +buffer_atomic_umax = functools.partial(MUBUF, MUBUFOp.BUFFER_ATOMIC_UMAX) +buffer_atomic_and = functools.partial(MUBUF, MUBUFOp.BUFFER_ATOMIC_AND) +buffer_atomic_or = functools.partial(MUBUF, MUBUFOp.BUFFER_ATOMIC_OR) +buffer_atomic_xor = functools.partial(MUBUF, MUBUFOp.BUFFER_ATOMIC_XOR) +buffer_atomic_inc = functools.partial(MUBUF, MUBUFOp.BUFFER_ATOMIC_INC) +buffer_atomic_dec = functools.partial(MUBUF, MUBUFOp.BUFFER_ATOMIC_DEC) +buffer_atomic_add_f32 = functools.partial(MUBUF, MUBUFOp.BUFFER_ATOMIC_ADD_F32) +buffer_atomic_pk_add_f16 = functools.partial(MUBUF, MUBUFOp.BUFFER_ATOMIC_PK_ADD_F16) +buffer_atomic_add_f64 = functools.partial(MUBUF, MUBUFOp.BUFFER_ATOMIC_ADD_F64) +buffer_atomic_min_f64 = functools.partial(MUBUF, MUBUFOp.BUFFER_ATOMIC_MIN_F64) +buffer_atomic_max_f64 = functools.partial(MUBUF, MUBUFOp.BUFFER_ATOMIC_MAX_F64) +buffer_atomic_pk_add_bf16 = functools.partial(MUBUF, MUBUFOp.BUFFER_ATOMIC_PK_ADD_BF16) +buffer_atomic_swap_x2 = functools.partial(MUBUF, MUBUFOp.BUFFER_ATOMIC_SWAP_X2) +buffer_atomic_cmpswap_x2 = functools.partial(MUBUF, MUBUFOp.BUFFER_ATOMIC_CMPSWAP_X2) +buffer_atomic_add_x2 = functools.partial(MUBUF, MUBUFOp.BUFFER_ATOMIC_ADD_X2) +buffer_atomic_sub_x2 = functools.partial(MUBUF, MUBUFOp.BUFFER_ATOMIC_SUB_X2) +buffer_atomic_smin_x2 = functools.partial(MUBUF, MUBUFOp.BUFFER_ATOMIC_SMIN_X2) +buffer_atomic_umin_x2 = functools.partial(MUBUF, MUBUFOp.BUFFER_ATOMIC_UMIN_X2) +buffer_atomic_smax_x2 = functools.partial(MUBUF, MUBUFOp.BUFFER_ATOMIC_SMAX_X2) +buffer_atomic_umax_x2 = functools.partial(MUBUF, MUBUFOp.BUFFER_ATOMIC_UMAX_X2) +buffer_atomic_and_x2 = functools.partial(MUBUF, MUBUFOp.BUFFER_ATOMIC_AND_X2) +buffer_atomic_or_x2 = functools.partial(MUBUF, MUBUFOp.BUFFER_ATOMIC_OR_X2) +buffer_atomic_xor_x2 = functools.partial(MUBUF, MUBUFOp.BUFFER_ATOMIC_XOR_X2) +buffer_atomic_inc_x2 = functools.partial(MUBUF, MUBUFOp.BUFFER_ATOMIC_INC_X2) +buffer_atomic_dec_x2 = functools.partial(MUBUF, MUBUFOp.BUFFER_ATOMIC_DEC_X2) +cdna4 = functools.partial(MUBUF, MUBUFOp.CDNA4) +scratch_load_ubyte = functools.partial(FLAT, SCRATCHOp.SCRATCH_LOAD_UBYTE, seg=1) +scratch_load_sbyte = functools.partial(FLAT, SCRATCHOp.SCRATCH_LOAD_SBYTE, seg=1) +scratch_load_ushort = functools.partial(FLAT, SCRATCHOp.SCRATCH_LOAD_USHORT, seg=1) +scratch_load_sshort = functools.partial(FLAT, SCRATCHOp.SCRATCH_LOAD_SSHORT, seg=1) +scratch_load_dword = functools.partial(FLAT, SCRATCHOp.SCRATCH_LOAD_DWORD, seg=1) +scratch_load_dwordx2 = functools.partial(FLAT, SCRATCHOp.SCRATCH_LOAD_DWORDX2, seg=1) +scratch_load_dwordx3 = functools.partial(FLAT, SCRATCHOp.SCRATCH_LOAD_DWORDX3, seg=1) +scratch_load_dwordx4 = functools.partial(FLAT, SCRATCHOp.SCRATCH_LOAD_DWORDX4, seg=1) +scratch_store_byte = functools.partial(FLAT, SCRATCHOp.SCRATCH_STORE_BYTE, seg=1) +scratch_store_byte_d16_hi = functools.partial(FLAT, SCRATCHOp.SCRATCH_STORE_BYTE_D16_HI, seg=1) +scratch_store_short = functools.partial(FLAT, SCRATCHOp.SCRATCH_STORE_SHORT, seg=1) +scratch_store_short_d16_hi = functools.partial(FLAT, SCRATCHOp.SCRATCH_STORE_SHORT_D16_HI, seg=1) +scratch_store_dword = functools.partial(FLAT, SCRATCHOp.SCRATCH_STORE_DWORD, seg=1) +scratch_store_dwordx2 = functools.partial(FLAT, SCRATCHOp.SCRATCH_STORE_DWORDX2, seg=1) +scratch_store_dwordx3 = functools.partial(FLAT, SCRATCHOp.SCRATCH_STORE_DWORDX3, seg=1) +scratch_store_dwordx4 = functools.partial(FLAT, SCRATCHOp.SCRATCH_STORE_DWORDX4, seg=1) +scratch_load_ubyte_d16 = functools.partial(FLAT, SCRATCHOp.SCRATCH_LOAD_UBYTE_D16, seg=1) +scratch_load_ubyte_d16_hi = functools.partial(FLAT, SCRATCHOp.SCRATCH_LOAD_UBYTE_D16_HI, seg=1) +scratch_load_sbyte_d16 = functools.partial(FLAT, SCRATCHOp.SCRATCH_LOAD_SBYTE_D16, seg=1) +scratch_load_sbyte_d16_hi = functools.partial(FLAT, SCRATCHOp.SCRATCH_LOAD_SBYTE_D16_HI, seg=1) +scratch_load_short_d16 = functools.partial(FLAT, SCRATCHOp.SCRATCH_LOAD_SHORT_D16, seg=1) +scratch_load_short_d16_hi = functools.partial(FLAT, SCRATCHOp.SCRATCH_LOAD_SHORT_D16_HI, seg=1) +scratch_load_lds_ubyte = functools.partial(FLAT, SCRATCHOp.SCRATCH_LOAD_LDS_UBYTE, seg=1) +scratch_load_lds_sbyte = functools.partial(FLAT, SCRATCHOp.SCRATCH_LOAD_LDS_SBYTE, seg=1) +scratch_load_lds_ushort = functools.partial(FLAT, SCRATCHOp.SCRATCH_LOAD_LDS_USHORT, seg=1) +scratch_load_lds_sshort = functools.partial(FLAT, SCRATCHOp.SCRATCH_LOAD_LDS_SSHORT, seg=1) +scratch_load_lds_dword = functools.partial(FLAT, SCRATCHOp.SCRATCH_LOAD_LDS_DWORD, seg=1) +s_load_dword = functools.partial(SMEM, SMEMOp.S_LOAD_DWORD) +s_load_dwordx2 = functools.partial(SMEM, SMEMOp.S_LOAD_DWORDX2) +s_load_dwordx4 = functools.partial(SMEM, SMEMOp.S_LOAD_DWORDX4) +s_load_dwordx8 = functools.partial(SMEM, SMEMOp.S_LOAD_DWORDX8) +s_load_dwordx16 = functools.partial(SMEM, SMEMOp.S_LOAD_DWORDX16) +s_scratch_load_dword = functools.partial(SMEM, SMEMOp.S_SCRATCH_LOAD_DWORD) +s_scratch_load_dwordx2 = functools.partial(SMEM, SMEMOp.S_SCRATCH_LOAD_DWORDX2) +s_scratch_load_dwordx4 = functools.partial(SMEM, SMEMOp.S_SCRATCH_LOAD_DWORDX4) +s_buffer_load_dword = functools.partial(SMEM, SMEMOp.S_BUFFER_LOAD_DWORD) +s_buffer_load_dwordx2 = functools.partial(SMEM, SMEMOp.S_BUFFER_LOAD_DWORDX2) +s_buffer_load_dwordx4 = functools.partial(SMEM, SMEMOp.S_BUFFER_LOAD_DWORDX4) +s_buffer_load_dwordx8 = functools.partial(SMEM, SMEMOp.S_BUFFER_LOAD_DWORDX8) +s_buffer_load_dwordx16 = functools.partial(SMEM, SMEMOp.S_BUFFER_LOAD_DWORDX16) +s_store_dword = functools.partial(SMEM, SMEMOp.S_STORE_DWORD) +s_store_dwordx2 = functools.partial(SMEM, SMEMOp.S_STORE_DWORDX2) +s_store_dwordx4 = functools.partial(SMEM, SMEMOp.S_STORE_DWORDX4) +s_scratch_store_dword = functools.partial(SMEM, SMEMOp.S_SCRATCH_STORE_DWORD) +s_scratch_store_dwordx2 = functools.partial(SMEM, SMEMOp.S_SCRATCH_STORE_DWORDX2) +s_scratch_store_dwordx4 = functools.partial(SMEM, SMEMOp.S_SCRATCH_STORE_DWORDX4) +s_buffer_store_dword = functools.partial(SMEM, SMEMOp.S_BUFFER_STORE_DWORD) +s_buffer_store_dwordx2 = functools.partial(SMEM, SMEMOp.S_BUFFER_STORE_DWORDX2) +s_buffer_store_dwordx4 = functools.partial(SMEM, SMEMOp.S_BUFFER_STORE_DWORDX4) +s_dcache_inv = functools.partial(SMEM, SMEMOp.S_DCACHE_INV) +s_dcache_wb = functools.partial(SMEM, SMEMOp.S_DCACHE_WB) +s_dcache_inv_vol = functools.partial(SMEM, SMEMOp.S_DCACHE_INV_VOL) +s_dcache_wb_vol = functools.partial(SMEM, SMEMOp.S_DCACHE_WB_VOL) +s_memtime = functools.partial(SMEM, SMEMOp.S_MEMTIME) +s_memrealtime = functools.partial(SMEM, SMEMOp.S_MEMREALTIME) +s_dcache_discard = functools.partial(SMEM, SMEMOp.S_DCACHE_DISCARD) +s_dcache_discard_x2 = functools.partial(SMEM, SMEMOp.S_DCACHE_DISCARD_X2) +s_buffer_atomic_swap = functools.partial(SMEM, SMEMOp.S_BUFFER_ATOMIC_SWAP) +s_buffer_atomic_cmpswap = functools.partial(SMEM, SMEMOp.S_BUFFER_ATOMIC_CMPSWAP) +s_buffer_atomic_add = functools.partial(SMEM, SMEMOp.S_BUFFER_ATOMIC_ADD) +s_buffer_atomic_sub = functools.partial(SMEM, SMEMOp.S_BUFFER_ATOMIC_SUB) +s_buffer_atomic_smin = functools.partial(SMEM, SMEMOp.S_BUFFER_ATOMIC_SMIN) +s_buffer_atomic_umin = functools.partial(SMEM, SMEMOp.S_BUFFER_ATOMIC_UMIN) +s_buffer_atomic_smax = functools.partial(SMEM, SMEMOp.S_BUFFER_ATOMIC_SMAX) +s_buffer_atomic_umax = functools.partial(SMEM, SMEMOp.S_BUFFER_ATOMIC_UMAX) +s_buffer_atomic_and = functools.partial(SMEM, SMEMOp.S_BUFFER_ATOMIC_AND) +s_buffer_atomic_or = functools.partial(SMEM, SMEMOp.S_BUFFER_ATOMIC_OR) +s_buffer_atomic_xor = functools.partial(SMEM, SMEMOp.S_BUFFER_ATOMIC_XOR) +s_buffer_atomic_inc = functools.partial(SMEM, SMEMOp.S_BUFFER_ATOMIC_INC) +s_buffer_atomic_dec = functools.partial(SMEM, SMEMOp.S_BUFFER_ATOMIC_DEC) +s_buffer_atomic_swap_x2 = functools.partial(SMEM, SMEMOp.S_BUFFER_ATOMIC_SWAP_X2) +s_buffer_atomic_cmpswap_x2 = functools.partial(SMEM, SMEMOp.S_BUFFER_ATOMIC_CMPSWAP_X2) +s_buffer_atomic_add_x2 = functools.partial(SMEM, SMEMOp.S_BUFFER_ATOMIC_ADD_X2) +s_buffer_atomic_sub_x2 = functools.partial(SMEM, SMEMOp.S_BUFFER_ATOMIC_SUB_X2) +s_buffer_atomic_smin_x2 = functools.partial(SMEM, SMEMOp.S_BUFFER_ATOMIC_SMIN_X2) +s_buffer_atomic_umin_x2 = functools.partial(SMEM, SMEMOp.S_BUFFER_ATOMIC_UMIN_X2) +s_buffer_atomic_smax_x2 = functools.partial(SMEM, SMEMOp.S_BUFFER_ATOMIC_SMAX_X2) +s_buffer_atomic_umax_x2 = functools.partial(SMEM, SMEMOp.S_BUFFER_ATOMIC_UMAX_X2) +s_buffer_atomic_and_x2 = functools.partial(SMEM, SMEMOp.S_BUFFER_ATOMIC_AND_X2) +s_buffer_atomic_or_x2 = functools.partial(SMEM, SMEMOp.S_BUFFER_ATOMIC_OR_X2) +s_buffer_atomic_xor_x2 = functools.partial(SMEM, SMEMOp.S_BUFFER_ATOMIC_XOR_X2) +s_buffer_atomic_inc_x2 = functools.partial(SMEM, SMEMOp.S_BUFFER_ATOMIC_INC_X2) +s_buffer_atomic_dec_x2 = functools.partial(SMEM, SMEMOp.S_BUFFER_ATOMIC_DEC_X2) +s_atomic_swap = functools.partial(SMEM, SMEMOp.S_ATOMIC_SWAP) +s_atomic_cmpswap = functools.partial(SMEM, SMEMOp.S_ATOMIC_CMPSWAP) +s_atomic_add = functools.partial(SMEM, SMEMOp.S_ATOMIC_ADD) +s_atomic_sub = functools.partial(SMEM, SMEMOp.S_ATOMIC_SUB) +s_atomic_smin = functools.partial(SMEM, SMEMOp.S_ATOMIC_SMIN) +s_atomic_umin = functools.partial(SMEM, SMEMOp.S_ATOMIC_UMIN) +s_atomic_smax = functools.partial(SMEM, SMEMOp.S_ATOMIC_SMAX) +s_atomic_umax = functools.partial(SMEM, SMEMOp.S_ATOMIC_UMAX) +s_atomic_and = functools.partial(SMEM, SMEMOp.S_ATOMIC_AND) +s_atomic_or = functools.partial(SMEM, SMEMOp.S_ATOMIC_OR) +s_atomic_xor = functools.partial(SMEM, SMEMOp.S_ATOMIC_XOR) +s_atomic_inc = functools.partial(SMEM, SMEMOp.S_ATOMIC_INC) +s_atomic_dec = functools.partial(SMEM, SMEMOp.S_ATOMIC_DEC) +s_atomic_swap_x2 = functools.partial(SMEM, SMEMOp.S_ATOMIC_SWAP_X2) +s_atomic_cmpswap_x2 = functools.partial(SMEM, SMEMOp.S_ATOMIC_CMPSWAP_X2) +s_atomic_add_x2 = functools.partial(SMEM, SMEMOp.S_ATOMIC_ADD_X2) +s_atomic_sub_x2 = functools.partial(SMEM, SMEMOp.S_ATOMIC_SUB_X2) +s_atomic_smin_x2 = functools.partial(SMEM, SMEMOp.S_ATOMIC_SMIN_X2) +s_atomic_umin_x2 = functools.partial(SMEM, SMEMOp.S_ATOMIC_UMIN_X2) +s_atomic_smax_x2 = functools.partial(SMEM, SMEMOp.S_ATOMIC_SMAX_X2) +s_atomic_umax_x2 = functools.partial(SMEM, SMEMOp.S_ATOMIC_UMAX_X2) +s_atomic_and_x2 = functools.partial(SMEM, SMEMOp.S_ATOMIC_AND_X2) +s_atomic_or_x2 = functools.partial(SMEM, SMEMOp.S_ATOMIC_OR_X2) +s_atomic_xor_x2 = functools.partial(SMEM, SMEMOp.S_ATOMIC_XOR_X2) +s_atomic_inc_x2 = functools.partial(SMEM, SMEMOp.S_ATOMIC_INC_X2) +s_atomic_dec_x2 = functools.partial(SMEM, SMEMOp.S_ATOMIC_DEC_X2) +cdna4 = functools.partial(SMEM, SMEMOp.CDNA4) +s_mov_b32 = functools.partial(SOP1, SOP1Op.S_MOV_B32) +s_mov_b64 = functools.partial(SOP1, SOP1Op.S_MOV_B64) +s_cmov_b32 = functools.partial(SOP1, SOP1Op.S_CMOV_B32) +s_cmov_b64 = functools.partial(SOP1, SOP1Op.S_CMOV_B64) +s_not_b32 = functools.partial(SOP1, SOP1Op.S_NOT_B32) +s_not_b64 = functools.partial(SOP1, SOP1Op.S_NOT_B64) +s_wqm_b32 = functools.partial(SOP1, SOP1Op.S_WQM_B32) +s_wqm_b64 = functools.partial(SOP1, SOP1Op.S_WQM_B64) +s_brev_b32 = functools.partial(SOP1, SOP1Op.S_BREV_B32) +s_brev_b64 = functools.partial(SOP1, SOP1Op.S_BREV_B64) +s_bcnt0_i32_b32 = functools.partial(SOP1, SOP1Op.S_BCNT0_I32_B32) +s_bcnt0_i32_b64 = functools.partial(SOP1, SOP1Op.S_BCNT0_I32_B64) +s_bcnt1_i32_b32 = functools.partial(SOP1, SOP1Op.S_BCNT1_I32_B32) +s_bcnt1_i32_b64 = functools.partial(SOP1, SOP1Op.S_BCNT1_I32_B64) +s_ff0_i32_b32 = functools.partial(SOP1, SOP1Op.S_FF0_I32_B32) +s_ff0_i32_b64 = functools.partial(SOP1, SOP1Op.S_FF0_I32_B64) +s_ff1_i32_b32 = functools.partial(SOP1, SOP1Op.S_FF1_I32_B32) +s_ff1_i32_b64 = functools.partial(SOP1, SOP1Op.S_FF1_I32_B64) +s_flbit_i32_b32 = functools.partial(SOP1, SOP1Op.S_FLBIT_I32_B32) +s_flbit_i32_b64 = functools.partial(SOP1, SOP1Op.S_FLBIT_I32_B64) +s_flbit_i32 = functools.partial(SOP1, SOP1Op.S_FLBIT_I32) +s_flbit_i32_i64 = functools.partial(SOP1, SOP1Op.S_FLBIT_I32_I64) +s_sext_i32_i8 = functools.partial(SOP1, SOP1Op.S_SEXT_I32_I8) +s_sext_i32_i16 = functools.partial(SOP1, SOP1Op.S_SEXT_I32_I16) +s_bitset0_b32 = functools.partial(SOP1, SOP1Op.S_BITSET0_B32) +s_bitset0_b64 = functools.partial(SOP1, SOP1Op.S_BITSET0_B64) +s_bitset1_b32 = functools.partial(SOP1, SOP1Op.S_BITSET1_B32) +s_bitset1_b64 = functools.partial(SOP1, SOP1Op.S_BITSET1_B64) +s_getpc_b64 = functools.partial(SOP1, SOP1Op.S_GETPC_B64) +s_setpc_b64 = functools.partial(SOP1, SOP1Op.S_SETPC_B64) +s_swappc_b64 = functools.partial(SOP1, SOP1Op.S_SWAPPC_B64) +s_rfe_b64 = functools.partial(SOP1, SOP1Op.S_RFE_B64) +s_and_saveexec_b64 = functools.partial(SOP1, SOP1Op.S_AND_SAVEEXEC_B64) +s_or_saveexec_b64 = functools.partial(SOP1, SOP1Op.S_OR_SAVEEXEC_B64) +s_xor_saveexec_b64 = functools.partial(SOP1, SOP1Op.S_XOR_SAVEEXEC_B64) +s_andn2_saveexec_b64 = functools.partial(SOP1, SOP1Op.S_ANDN2_SAVEEXEC_B64) +s_orn2_saveexec_b64 = functools.partial(SOP1, SOP1Op.S_ORN2_SAVEEXEC_B64) +s_nand_saveexec_b64 = functools.partial(SOP1, SOP1Op.S_NAND_SAVEEXEC_B64) +s_nor_saveexec_b64 = functools.partial(SOP1, SOP1Op.S_NOR_SAVEEXEC_B64) +s_xnor_saveexec_b64 = functools.partial(SOP1, SOP1Op.S_XNOR_SAVEEXEC_B64) +s_quadmask_b32 = functools.partial(SOP1, SOP1Op.S_QUADMASK_B32) +s_quadmask_b64 = functools.partial(SOP1, SOP1Op.S_QUADMASK_B64) +s_movrels_b32 = functools.partial(SOP1, SOP1Op.S_MOVRELS_B32) +s_movrels_b64 = functools.partial(SOP1, SOP1Op.S_MOVRELS_B64) +s_movreld_b32 = functools.partial(SOP1, SOP1Op.S_MOVRELD_B32) +s_movreld_b64 = functools.partial(SOP1, SOP1Op.S_MOVRELD_B64) +s_cbranch_join = functools.partial(SOP1, SOP1Op.S_CBRANCH_JOIN) +s_abs_i32 = functools.partial(SOP1, SOP1Op.S_ABS_I32) +s_set_gpr_idx_idx = functools.partial(SOP1, SOP1Op.S_SET_GPR_IDX_IDX) +s_andn1_saveexec_b64 = functools.partial(SOP1, SOP1Op.S_ANDN1_SAVEEXEC_B64) +s_orn1_saveexec_b64 = functools.partial(SOP1, SOP1Op.S_ORN1_SAVEEXEC_B64) +s_andn1_wrexec_b64 = functools.partial(SOP1, SOP1Op.S_ANDN1_WREXEC_B64) +s_andn2_wrexec_b64 = functools.partial(SOP1, SOP1Op.S_ANDN2_WREXEC_B64) +s_bitreplicate_b64_b32 = functools.partial(SOP1, SOP1Op.S_BITREPLICATE_B64_B32) +cdna4 = functools.partial(SOP1, SOP1Op.CDNA4) +s_add_u32 = functools.partial(SOP2, SOP2Op.S_ADD_U32) +s_sub_u32 = functools.partial(SOP2, SOP2Op.S_SUB_U32) +s_add_i32 = functools.partial(SOP2, SOP2Op.S_ADD_I32) +s_sub_i32 = functools.partial(SOP2, SOP2Op.S_SUB_I32) +s_addc_u32 = functools.partial(SOP2, SOP2Op.S_ADDC_U32) +s_subb_u32 = functools.partial(SOP2, SOP2Op.S_SUBB_U32) +s_min_i32 = functools.partial(SOP2, SOP2Op.S_MIN_I32) +s_min_u32 = functools.partial(SOP2, SOP2Op.S_MIN_U32) +s_max_i32 = functools.partial(SOP2, SOP2Op.S_MAX_I32) +s_max_u32 = functools.partial(SOP2, SOP2Op.S_MAX_U32) +s_cselect_b32 = functools.partial(SOP2, SOP2Op.S_CSELECT_B32) +s_cselect_b64 = functools.partial(SOP2, SOP2Op.S_CSELECT_B64) +s_and_b32 = functools.partial(SOP2, SOP2Op.S_AND_B32) +s_and_b64 = functools.partial(SOP2, SOP2Op.S_AND_B64) +s_or_b32 = functools.partial(SOP2, SOP2Op.S_OR_B32) +s_or_b64 = functools.partial(SOP2, SOP2Op.S_OR_B64) +s_xor_b32 = functools.partial(SOP2, SOP2Op.S_XOR_B32) +s_xor_b64 = functools.partial(SOP2, SOP2Op.S_XOR_B64) +s_andn2_b32 = functools.partial(SOP2, SOP2Op.S_ANDN2_B32) +s_andn2_b64 = functools.partial(SOP2, SOP2Op.S_ANDN2_B64) +s_orn2_b32 = functools.partial(SOP2, SOP2Op.S_ORN2_B32) +s_orn2_b64 = functools.partial(SOP2, SOP2Op.S_ORN2_B64) +s_nand_b32 = functools.partial(SOP2, SOP2Op.S_NAND_B32) +s_nand_b64 = functools.partial(SOP2, SOP2Op.S_NAND_B64) +s_nor_b32 = functools.partial(SOP2, SOP2Op.S_NOR_B32) +s_nor_b64 = functools.partial(SOP2, SOP2Op.S_NOR_B64) +s_xnor_b32 = functools.partial(SOP2, SOP2Op.S_XNOR_B32) +s_xnor_b64 = functools.partial(SOP2, SOP2Op.S_XNOR_B64) +s_lshl_b32 = functools.partial(SOP2, SOP2Op.S_LSHL_B32) +s_lshl_b64 = functools.partial(SOP2, SOP2Op.S_LSHL_B64) +s_lshr_b32 = functools.partial(SOP2, SOP2Op.S_LSHR_B32) +s_lshr_b64 = functools.partial(SOP2, SOP2Op.S_LSHR_B64) +s_ashr_i32 = functools.partial(SOP2, SOP2Op.S_ASHR_I32) +s_ashr_i64 = functools.partial(SOP2, SOP2Op.S_ASHR_I64) +s_bfm_b32 = functools.partial(SOP2, SOP2Op.S_BFM_B32) +s_bfm_b64 = functools.partial(SOP2, SOP2Op.S_BFM_B64) +s_mul_i32 = functools.partial(SOP2, SOP2Op.S_MUL_I32) +s_bfe_u32 = functools.partial(SOP2, SOP2Op.S_BFE_U32) +s_bfe_i32 = functools.partial(SOP2, SOP2Op.S_BFE_I32) +s_bfe_u64 = functools.partial(SOP2, SOP2Op.S_BFE_U64) +s_bfe_i64 = functools.partial(SOP2, SOP2Op.S_BFE_I64) +s_cbranch_g_fork = functools.partial(SOP2, SOP2Op.S_CBRANCH_G_FORK) +s_absdiff_i32 = functools.partial(SOP2, SOP2Op.S_ABSDIFF_I32) +s_mul_hi_u32 = functools.partial(SOP2, SOP2Op.S_MUL_HI_U32) +s_mul_hi_i32 = functools.partial(SOP2, SOP2Op.S_MUL_HI_I32) +s_lshl1_add_u32 = functools.partial(SOP2, SOP2Op.S_LSHL1_ADD_U32) +s_lshl2_add_u32 = functools.partial(SOP2, SOP2Op.S_LSHL2_ADD_U32) +s_lshl3_add_u32 = functools.partial(SOP2, SOP2Op.S_LSHL3_ADD_U32) +s_lshl4_add_u32 = functools.partial(SOP2, SOP2Op.S_LSHL4_ADD_U32) +s_pack_ll_b32_b16 = functools.partial(SOP2, SOP2Op.S_PACK_LL_B32_B16) +s_pack_lh_b32_b16 = functools.partial(SOP2, SOP2Op.S_PACK_LH_B32_B16) +s_pack_hh_b32_b16 = functools.partial(SOP2, SOP2Op.S_PACK_HH_B32_B16) +cdna4 = functools.partial(SOP2, SOP2Op.CDNA4) +s_cmp_eq_i32 = functools.partial(SOPC, SOPCOp.S_CMP_EQ_I32) +s_cmp_lg_i32 = functools.partial(SOPC, SOPCOp.S_CMP_LG_I32) +s_cmp_gt_i32 = functools.partial(SOPC, SOPCOp.S_CMP_GT_I32) +s_cmp_ge_i32 = functools.partial(SOPC, SOPCOp.S_CMP_GE_I32) +s_cmp_lt_i32 = functools.partial(SOPC, SOPCOp.S_CMP_LT_I32) +s_cmp_le_i32 = functools.partial(SOPC, SOPCOp.S_CMP_LE_I32) +s_cmp_eq_u32 = functools.partial(SOPC, SOPCOp.S_CMP_EQ_U32) +s_cmp_lg_u32 = functools.partial(SOPC, SOPCOp.S_CMP_LG_U32) +s_cmp_gt_u32 = functools.partial(SOPC, SOPCOp.S_CMP_GT_U32) +s_cmp_ge_u32 = functools.partial(SOPC, SOPCOp.S_CMP_GE_U32) +s_cmp_lt_u32 = functools.partial(SOPC, SOPCOp.S_CMP_LT_U32) +s_cmp_le_u32 = functools.partial(SOPC, SOPCOp.S_CMP_LE_U32) +s_bitcmp0_b32 = functools.partial(SOPC, SOPCOp.S_BITCMP0_B32) +s_bitcmp1_b32 = functools.partial(SOPC, SOPCOp.S_BITCMP1_B32) +s_bitcmp0_b64 = functools.partial(SOPC, SOPCOp.S_BITCMP0_B64) +s_bitcmp1_b64 = functools.partial(SOPC, SOPCOp.S_BITCMP1_B64) +s_setvskip = functools.partial(SOPC, SOPCOp.S_SETVSKIP) +s_set_gpr_idx_on = functools.partial(SOPC, SOPCOp.S_SET_GPR_IDX_ON) +s_cmp_eq_u64 = functools.partial(SOPC, SOPCOp.S_CMP_EQ_U64) +s_cmp_lg_u64 = functools.partial(SOPC, SOPCOp.S_CMP_LG_U64) +cdna4 = functools.partial(SOPC, SOPCOp.CDNA4) +s_movk_i32 = functools.partial(SOPK, SOPKOp.S_MOVK_I32) +s_cmovk_i32 = functools.partial(SOPK, SOPKOp.S_CMOVK_I32) +s_cmpk_eq_i32 = functools.partial(SOPK, SOPKOp.S_CMPK_EQ_I32) +s_cmpk_lg_i32 = functools.partial(SOPK, SOPKOp.S_CMPK_LG_I32) +s_cmpk_gt_i32 = functools.partial(SOPK, SOPKOp.S_CMPK_GT_I32) +s_cmpk_ge_i32 = functools.partial(SOPK, SOPKOp.S_CMPK_GE_I32) +s_cmpk_lt_i32 = functools.partial(SOPK, SOPKOp.S_CMPK_LT_I32) +s_cmpk_le_i32 = functools.partial(SOPK, SOPKOp.S_CMPK_LE_I32) +s_cmpk_eq_u32 = functools.partial(SOPK, SOPKOp.S_CMPK_EQ_U32) +s_cmpk_lg_u32 = functools.partial(SOPK, SOPKOp.S_CMPK_LG_U32) +s_cmpk_gt_u32 = functools.partial(SOPK, SOPKOp.S_CMPK_GT_U32) +s_cmpk_ge_u32 = functools.partial(SOPK, SOPKOp.S_CMPK_GE_U32) +s_cmpk_lt_u32 = functools.partial(SOPK, SOPKOp.S_CMPK_LT_U32) +s_cmpk_le_u32 = functools.partial(SOPK, SOPKOp.S_CMPK_LE_U32) +s_addk_i32 = functools.partial(SOPK, SOPKOp.S_ADDK_I32) +s_mulk_i32 = functools.partial(SOPK, SOPKOp.S_MULK_I32) +s_cbranch_i_fork = functools.partial(SOPK, SOPKOp.S_CBRANCH_I_FORK) +s_getreg_b32 = functools.partial(SOPK, SOPKOp.S_GETREG_B32) +s_setreg_b32 = functools.partial(SOPK, SOPKOp.S_SETREG_B32) +s_setreg_imm32_b32 = functools.partial(SOPK, SOPKOp.S_SETREG_IMM32_B32) +s_call_b64 = functools.partial(SOPK, SOPKOp.S_CALL_B64) +s_nop = functools.partial(SOPP, SOPPOp.S_NOP) +s_endpgm = functools.partial(SOPP, SOPPOp.S_ENDPGM) +s_branch = functools.partial(SOPP, SOPPOp.S_BRANCH) +s_wakeup = functools.partial(SOPP, SOPPOp.S_WAKEUP) +s_cbranch_scc0 = functools.partial(SOPP, SOPPOp.S_CBRANCH_SCC0) +s_cbranch_scc1 = functools.partial(SOPP, SOPPOp.S_CBRANCH_SCC1) +s_cbranch_vccz = functools.partial(SOPP, SOPPOp.S_CBRANCH_VCCZ) +s_cbranch_vccnz = functools.partial(SOPP, SOPPOp.S_CBRANCH_VCCNZ) +s_cbranch_execz = functools.partial(SOPP, SOPPOp.S_CBRANCH_EXECZ) +s_cbranch_execnz = functools.partial(SOPP, SOPPOp.S_CBRANCH_EXECNZ) +s_barrier = functools.partial(SOPP, SOPPOp.S_BARRIER) +s_setkill = functools.partial(SOPP, SOPPOp.S_SETKILL) +s_waitcnt = functools.partial(SOPP, SOPPOp.S_WAITCNT) +s_sethalt = functools.partial(SOPP, SOPPOp.S_SETHALT) +s_sleep = functools.partial(SOPP, SOPPOp.S_SLEEP) +s_setprio = functools.partial(SOPP, SOPPOp.S_SETPRIO) +s_sendmsg = functools.partial(SOPP, SOPPOp.S_SENDMSG) +s_sendmsghalt = functools.partial(SOPP, SOPPOp.S_SENDMSGHALT) +s_trap = functools.partial(SOPP, SOPPOp.S_TRAP) +s_icache_inv = functools.partial(SOPP, SOPPOp.S_ICACHE_INV) +s_incperflevel = functools.partial(SOPP, SOPPOp.S_INCPERFLEVEL) +s_decperflevel = functools.partial(SOPP, SOPPOp.S_DECPERFLEVEL) +s_ttracedata = functools.partial(SOPP, SOPPOp.S_TTRACEDATA) +s_cbranch_cdbgsys = functools.partial(SOPP, SOPPOp.S_CBRANCH_CDBGSYS) +s_cbranch_cdbguser = functools.partial(SOPP, SOPPOp.S_CBRANCH_CDBGUSER) +s_cbranch_cdbgsys_or_user = functools.partial(SOPP, SOPPOp.S_CBRANCH_CDBGSYS_OR_USER) +s_cbranch_cdbgsys_and_user = functools.partial(SOPP, SOPPOp.S_CBRANCH_CDBGSYS_AND_USER) +s_endpgm_saved = functools.partial(SOPP, SOPPOp.S_ENDPGM_SAVED) +s_set_gpr_idx_off = functools.partial(SOPP, SOPPOp.S_SET_GPR_IDX_OFF) +s_set_gpr_idx_mode = functools.partial(SOPP, SOPPOp.S_SET_GPR_IDX_MODE) +cdna4 = functools.partial(SOPP, SOPPOp.CDNA4) +v_nop_e32 = functools.partial(VOP1, VOP1Op.V_NOP) +v_mov_b32_e32 = functools.partial(VOP1, VOP1Op.V_MOV_B32) +v_readfirstlane_b32_e32 = functools.partial(VOP1, VOP1Op.V_READFIRSTLANE_B32) +v_cvt_i32_f64_e32 = functools.partial(VOP1, VOP1Op.V_CVT_I32_F64) +v_cvt_f64_i32_e32 = functools.partial(VOP1, VOP1Op.V_CVT_F64_I32) +v_cvt_f32_i32_e32 = functools.partial(VOP1, VOP1Op.V_CVT_F32_I32) +v_cvt_f32_u32_e32 = functools.partial(VOP1, VOP1Op.V_CVT_F32_U32) +v_cvt_u32_f32_e32 = functools.partial(VOP1, VOP1Op.V_CVT_U32_F32) +v_cvt_i32_f32_e32 = functools.partial(VOP1, VOP1Op.V_CVT_I32_F32) +v_cvt_f16_f32_e32 = functools.partial(VOP1, VOP1Op.V_CVT_F16_F32) +v_cvt_f32_f16_e32 = functools.partial(VOP1, VOP1Op.V_CVT_F32_F16) +v_cvt_rpi_i32_f32_e32 = functools.partial(VOP1, VOP1Op.V_CVT_RPI_I32_F32) +v_cvt_flr_i32_f32_e32 = functools.partial(VOP1, VOP1Op.V_CVT_FLR_I32_F32) +v_cvt_off_f32_i4_e32 = functools.partial(VOP1, VOP1Op.V_CVT_OFF_F32_I4) +v_cvt_f32_f64_e32 = functools.partial(VOP1, VOP1Op.V_CVT_F32_F64) +v_cvt_f64_f32_e32 = functools.partial(VOP1, VOP1Op.V_CVT_F64_F32) +v_cvt_f32_ubyte0_e32 = functools.partial(VOP1, VOP1Op.V_CVT_F32_UBYTE0) +v_cvt_f32_ubyte1_e32 = functools.partial(VOP1, VOP1Op.V_CVT_F32_UBYTE1) +v_cvt_f32_ubyte2_e32 = functools.partial(VOP1, VOP1Op.V_CVT_F32_UBYTE2) +v_cvt_f32_ubyte3_e32 = functools.partial(VOP1, VOP1Op.V_CVT_F32_UBYTE3) +v_cvt_u32_f64_e32 = functools.partial(VOP1, VOP1Op.V_CVT_U32_F64) +v_cvt_f64_u32_e32 = functools.partial(VOP1, VOP1Op.V_CVT_F64_U32) +v_trunc_f64_e32 = functools.partial(VOP1, VOP1Op.V_TRUNC_F64) +v_ceil_f64_e32 = functools.partial(VOP1, VOP1Op.V_CEIL_F64) +v_rndne_f64_e32 = functools.partial(VOP1, VOP1Op.V_RNDNE_F64) +v_floor_f64_e32 = functools.partial(VOP1, VOP1Op.V_FLOOR_F64) +v_fract_f32_e32 = functools.partial(VOP1, VOP1Op.V_FRACT_F32) +v_trunc_f32_e32 = functools.partial(VOP1, VOP1Op.V_TRUNC_F32) +v_ceil_f32_e32 = functools.partial(VOP1, VOP1Op.V_CEIL_F32) +v_rndne_f32_e32 = functools.partial(VOP1, VOP1Op.V_RNDNE_F32) +v_floor_f32_e32 = functools.partial(VOP1, VOP1Op.V_FLOOR_F32) +v_exp_f32_e32 = functools.partial(VOP1, VOP1Op.V_EXP_F32) +v_log_f32_e32 = functools.partial(VOP1, VOP1Op.V_LOG_F32) +v_rcp_f32_e32 = functools.partial(VOP1, VOP1Op.V_RCP_F32) +v_rcp_iflag_f32_e32 = functools.partial(VOP1, VOP1Op.V_RCP_IFLAG_F32) +v_rsq_f32_e32 = functools.partial(VOP1, VOP1Op.V_RSQ_F32) +v_rcp_f64_e32 = functools.partial(VOP1, VOP1Op.V_RCP_F64) +v_rsq_f64_e32 = functools.partial(VOP1, VOP1Op.V_RSQ_F64) +v_sqrt_f32_e32 = functools.partial(VOP1, VOP1Op.V_SQRT_F32) +v_sqrt_f64_e32 = functools.partial(VOP1, VOP1Op.V_SQRT_F64) +v_sin_f32_e32 = functools.partial(VOP1, VOP1Op.V_SIN_F32) +v_cos_f32_e32 = functools.partial(VOP1, VOP1Op.V_COS_F32) +v_not_b32_e32 = functools.partial(VOP1, VOP1Op.V_NOT_B32) +v_bfrev_b32_e32 = functools.partial(VOP1, VOP1Op.V_BFREV_B32) +v_ffbh_u32_e32 = functools.partial(VOP1, VOP1Op.V_FFBH_U32) +v_ffbl_b32_e32 = functools.partial(VOP1, VOP1Op.V_FFBL_B32) +v_ffbh_i32_e32 = functools.partial(VOP1, VOP1Op.V_FFBH_I32) +v_frexp_exp_i32_f64_e32 = functools.partial(VOP1, VOP1Op.V_FREXP_EXP_I32_F64) +v_frexp_mant_f64_e32 = functools.partial(VOP1, VOP1Op.V_FREXP_MANT_F64) +v_fract_f64_e32 = functools.partial(VOP1, VOP1Op.V_FRACT_F64) +v_frexp_exp_i32_f32_e32 = functools.partial(VOP1, VOP1Op.V_FREXP_EXP_I32_F32) +v_frexp_mant_f32_e32 = functools.partial(VOP1, VOP1Op.V_FREXP_MANT_F32) +v_clrexcp_e32 = functools.partial(VOP1, VOP1Op.V_CLREXCP) +v_mov_b64_e32 = functools.partial(VOP1, VOP1Op.V_MOV_B64) +v_cvt_f16_u16_e32 = functools.partial(VOP1, VOP1Op.V_CVT_F16_U16) +v_cvt_f16_i16_e32 = functools.partial(VOP1, VOP1Op.V_CVT_F16_I16) +v_cvt_u16_f16_e32 = functools.partial(VOP1, VOP1Op.V_CVT_U16_F16) +v_cvt_i16_f16_e32 = functools.partial(VOP1, VOP1Op.V_CVT_I16_F16) +v_rcp_f16_e32 = functools.partial(VOP1, VOP1Op.V_RCP_F16) +v_sqrt_f16_e32 = functools.partial(VOP1, VOP1Op.V_SQRT_F16) +v_rsq_f16_e32 = functools.partial(VOP1, VOP1Op.V_RSQ_F16) +v_log_f16_e32 = functools.partial(VOP1, VOP1Op.V_LOG_F16) +v_exp_f16_e32 = functools.partial(VOP1, VOP1Op.V_EXP_F16) +v_frexp_mant_f16_e32 = functools.partial(VOP1, VOP1Op.V_FREXP_MANT_F16) +v_frexp_exp_i16_f16_e32 = functools.partial(VOP1, VOP1Op.V_FREXP_EXP_I16_F16) +v_floor_f16_e32 = functools.partial(VOP1, VOP1Op.V_FLOOR_F16) +v_ceil_f16_e32 = functools.partial(VOP1, VOP1Op.V_CEIL_F16) +v_trunc_f16_e32 = functools.partial(VOP1, VOP1Op.V_TRUNC_F16) +v_rndne_f16_e32 = functools.partial(VOP1, VOP1Op.V_RNDNE_F16) +v_fract_f16_e32 = functools.partial(VOP1, VOP1Op.V_FRACT_F16) +v_sin_f16_e32 = functools.partial(VOP1, VOP1Op.V_SIN_F16) +v_cos_f16_e32 = functools.partial(VOP1, VOP1Op.V_COS_F16) +v_cvt_norm_i16_f16_e32 = functools.partial(VOP1, VOP1Op.V_CVT_NORM_I16_F16) +v_cvt_norm_u16_f16_e32 = functools.partial(VOP1, VOP1Op.V_CVT_NORM_U16_F16) +v_sat_pk_u8_i16_e32 = functools.partial(VOP1, VOP1Op.V_SAT_PK_U8_I16) +v_swap_b32_e32 = functools.partial(VOP1, VOP1Op.V_SWAP_B32) +v_accvgpr_mov_b32_e32 = functools.partial(VOP1, VOP1Op.V_ACCVGPR_MOV_B32) +v_cvt_f32_fp8_e32 = functools.partial(VOP1, VOP1Op.V_CVT_F32_FP8) +v_cvt_f32_bf8_e32 = functools.partial(VOP1, VOP1Op.V_CVT_F32_BF8) +v_cvt_pk_f32_fp8_e32 = functools.partial(VOP1, VOP1Op.V_CVT_PK_F32_FP8) +v_cvt_pk_f32_bf8_e32 = functools.partial(VOP1, VOP1Op.V_CVT_PK_F32_BF8) +v_prng_b32_e32 = functools.partial(VOP1, VOP1Op.V_PRNG_B32) +v_permlane16_swap_b32_e32 = functools.partial(VOP1, VOP1Op.V_PERMLANE16_SWAP_B32) +v_permlane32_swap_b32_e32 = functools.partial(VOP1, VOP1Op.V_PERMLANE32_SWAP_B32) +v_cvt_f32_bf16_e32 = functools.partial(VOP1, VOP1Op.V_CVT_F32_BF16) +cdna4_e32 = functools.partial(VOP1, VOP1Op.CDNA4) +v_cndmask_b32_e32 = functools.partial(VOP2, VOP2Op.V_CNDMASK_B32) +v_add_f32_e32 = functools.partial(VOP2, VOP2Op.V_ADD_F32) +v_sub_f32_e32 = functools.partial(VOP2, VOP2Op.V_SUB_F32) +v_subrev_f32_e32 = functools.partial(VOP2, VOP2Op.V_SUBREV_F32) +v_fmac_f64_e32 = functools.partial(VOP2, VOP2Op.V_FMAC_F64) +v_mul_f32_e32 = functools.partial(VOP2, VOP2Op.V_MUL_F32) +v_mul_i32_i24_e32 = functools.partial(VOP2, VOP2Op.V_MUL_I32_I24) +v_mul_hi_i32_i24_e32 = functools.partial(VOP2, VOP2Op.V_MUL_HI_I32_I24) +v_mul_u32_u24_e32 = functools.partial(VOP2, VOP2Op.V_MUL_U32_U24) +v_mul_hi_u32_u24_e32 = functools.partial(VOP2, VOP2Op.V_MUL_HI_U32_U24) +v_min_f32_e32 = functools.partial(VOP2, VOP2Op.V_MIN_F32) +v_max_f32_e32 = functools.partial(VOP2, VOP2Op.V_MAX_F32) +v_min_i32_e32 = functools.partial(VOP2, VOP2Op.V_MIN_I32) +v_max_i32_e32 = functools.partial(VOP2, VOP2Op.V_MAX_I32) +v_min_u32_e32 = functools.partial(VOP2, VOP2Op.V_MIN_U32) +v_max_u32_e32 = functools.partial(VOP2, VOP2Op.V_MAX_U32) +v_lshrrev_b32_e32 = functools.partial(VOP2, VOP2Op.V_LSHRREV_B32) +v_ashrrev_i32_e32 = functools.partial(VOP2, VOP2Op.V_ASHRREV_I32) +v_lshlrev_b32_e32 = functools.partial(VOP2, VOP2Op.V_LSHLREV_B32) +v_and_b32_e32 = functools.partial(VOP2, VOP2Op.V_AND_B32) +v_or_b32_e32 = functools.partial(VOP2, VOP2Op.V_OR_B32) +v_xor_b32_e32 = functools.partial(VOP2, VOP2Op.V_XOR_B32) +v_dot2c_f32_bf16_e32 = functools.partial(VOP2, VOP2Op.V_DOT2C_F32_BF16) +def v_fmamk_f32_e32(vdst, src0, K, vsrc1): return VOP2(VOP2Op.V_FMAMK_F32, vdst, src0, vsrc1, literal=K) +def v_fmaak_f32_e32(vdst, src0, vsrc1, K): return VOP2(VOP2Op.V_FMAAK_F32, vdst, src0, vsrc1, literal=K) +v_add_co_u32_e32 = functools.partial(VOP2, VOP2Op.V_ADD_CO_U32) +v_sub_co_u32_e32 = functools.partial(VOP2, VOP2Op.V_SUB_CO_U32) +v_subrev_co_u32_e32 = functools.partial(VOP2, VOP2Op.V_SUBREV_CO_U32) +v_addc_co_u32_e32 = functools.partial(VOP2, VOP2Op.V_ADDC_CO_U32) +v_subb_co_u32_e32 = functools.partial(VOP2, VOP2Op.V_SUBB_CO_U32) +v_subbrev_co_u32_e32 = functools.partial(VOP2, VOP2Op.V_SUBBREV_CO_U32) +v_add_f16_e32 = functools.partial(VOP2, VOP2Op.V_ADD_F16) +v_sub_f16_e32 = functools.partial(VOP2, VOP2Op.V_SUB_F16) +v_subrev_f16_e32 = functools.partial(VOP2, VOP2Op.V_SUBREV_F16) +v_mul_f16_e32 = functools.partial(VOP2, VOP2Op.V_MUL_F16) +v_mac_f16_e32 = functools.partial(VOP2, VOP2Op.V_MAC_F16) +v_madmk_f16_e32 = functools.partial(VOP2, VOP2Op.V_MADMK_F16) +v_madak_f16_e32 = functools.partial(VOP2, VOP2Op.V_MADAK_F16) +v_add_u16_e32 = functools.partial(VOP2, VOP2Op.V_ADD_U16) +v_sub_u16_e32 = functools.partial(VOP2, VOP2Op.V_SUB_U16) +v_subrev_u16_e32 = functools.partial(VOP2, VOP2Op.V_SUBREV_U16) +v_mul_lo_u16_e32 = functools.partial(VOP2, VOP2Op.V_MUL_LO_U16) +v_lshlrev_b16_e32 = functools.partial(VOP2, VOP2Op.V_LSHLREV_B16) +v_lshrrev_b16_e32 = functools.partial(VOP2, VOP2Op.V_LSHRREV_B16) +v_ashrrev_i16_e32 = functools.partial(VOP2, VOP2Op.V_ASHRREV_I16) +v_max_f16_e32 = functools.partial(VOP2, VOP2Op.V_MAX_F16) +v_min_f16_e32 = functools.partial(VOP2, VOP2Op.V_MIN_F16) +v_max_u16_e32 = functools.partial(VOP2, VOP2Op.V_MAX_U16) +v_max_i16_e32 = functools.partial(VOP2, VOP2Op.V_MAX_I16) +v_min_u16_e32 = functools.partial(VOP2, VOP2Op.V_MIN_U16) +v_min_i16_e32 = functools.partial(VOP2, VOP2Op.V_MIN_I16) +v_ldexp_f16_e32 = functools.partial(VOP2, VOP2Op.V_LDEXP_F16) +v_add_u32_e32 = functools.partial(VOP2, VOP2Op.V_ADD_U32) +v_sub_u32_e32 = functools.partial(VOP2, VOP2Op.V_SUB_U32) +v_subrev_u32_e32 = functools.partial(VOP2, VOP2Op.V_SUBREV_U32) +v_dot2c_f32_f16_e32 = functools.partial(VOP2, VOP2Op.V_DOT2C_F32_F16) +v_dot2c_i32_i16_e32 = functools.partial(VOP2, VOP2Op.V_DOT2C_I32_I16) +v_dot4c_i32_i8_e32 = functools.partial(VOP2, VOP2Op.V_DOT4C_I32_I8) +v_dot8c_i32_i4_e32 = functools.partial(VOP2, VOP2Op.V_DOT8C_I32_I4) +v_fmac_f32_e32 = functools.partial(VOP2, VOP2Op.V_FMAC_F32) +v_pk_fmac_f16_e32 = functools.partial(VOP2, VOP2Op.V_PK_FMAC_F16) +v_xnor_b32_e32 = functools.partial(VOP2, VOP2Op.V_XNOR_B32) +cdna4_e32 = functools.partial(VOP2, VOP2Op.CDNA4) +v_cmp_class_f32 = functools.partial(VOP3A, VOP3AOp.V_CMP_CLASS_F32) +v_cmpx_class_f32 = functools.partial(VOP3A, VOP3AOp.V_CMPX_CLASS_F32) +v_cmp_class_f64 = functools.partial(VOP3A, VOP3AOp.V_CMP_CLASS_F64) +v_cmpx_class_f64 = functools.partial(VOP3A, VOP3AOp.V_CMPX_CLASS_F64) +v_cmp_class_f16 = functools.partial(VOP3A, VOP3AOp.V_CMP_CLASS_F16) +v_cmpx_class_f16 = functools.partial(VOP3A, VOP3AOp.V_CMPX_CLASS_F16) +v_cmp_f_f16 = functools.partial(VOP3A, VOP3AOp.V_CMP_F_F16) +v_cmp_lt_f16 = functools.partial(VOP3A, VOP3AOp.V_CMP_LT_F16) +v_cmp_eq_f16 = functools.partial(VOP3A, VOP3AOp.V_CMP_EQ_F16) +v_cmp_le_f16 = functools.partial(VOP3A, VOP3AOp.V_CMP_LE_F16) +v_cmp_gt_f16 = functools.partial(VOP3A, VOP3AOp.V_CMP_GT_F16) +v_cmp_lg_f16 = functools.partial(VOP3A, VOP3AOp.V_CMP_LG_F16) +v_cmp_ge_f16 = functools.partial(VOP3A, VOP3AOp.V_CMP_GE_F16) +v_cmp_o_f16 = functools.partial(VOP3A, VOP3AOp.V_CMP_O_F16) +v_cmp_u_f16 = functools.partial(VOP3A, VOP3AOp.V_CMP_U_F16) +v_cmp_nge_f16 = functools.partial(VOP3A, VOP3AOp.V_CMP_NGE_F16) +v_cmp_nlg_f16 = functools.partial(VOP3A, VOP3AOp.V_CMP_NLG_F16) +v_cmp_ngt_f16 = functools.partial(VOP3A, VOP3AOp.V_CMP_NGT_F16) +v_cmp_nle_f16 = functools.partial(VOP3A, VOP3AOp.V_CMP_NLE_F16) +v_cmp_neq_f16 = functools.partial(VOP3A, VOP3AOp.V_CMP_NEQ_F16) +v_cmp_nlt_f16 = functools.partial(VOP3A, VOP3AOp.V_CMP_NLT_F16) +v_cmp_tru_f16 = functools.partial(VOP3A, VOP3AOp.V_CMP_TRU_F16) +v_cmpx_f_f16 = functools.partial(VOP3A, VOP3AOp.V_CMPX_F_F16) +v_cmpx_lt_f16 = functools.partial(VOP3A, VOP3AOp.V_CMPX_LT_F16) +v_cmpx_eq_f16 = functools.partial(VOP3A, VOP3AOp.V_CMPX_EQ_F16) +v_cmpx_le_f16 = functools.partial(VOP3A, VOP3AOp.V_CMPX_LE_F16) +v_cmpx_gt_f16 = functools.partial(VOP3A, VOP3AOp.V_CMPX_GT_F16) +v_cmpx_lg_f16 = functools.partial(VOP3A, VOP3AOp.V_CMPX_LG_F16) +v_cmpx_ge_f16 = functools.partial(VOP3A, VOP3AOp.V_CMPX_GE_F16) +v_cmpx_o_f16 = functools.partial(VOP3A, VOP3AOp.V_CMPX_O_F16) +v_cmpx_u_f16 = functools.partial(VOP3A, VOP3AOp.V_CMPX_U_F16) +v_cmpx_nge_f16 = functools.partial(VOP3A, VOP3AOp.V_CMPX_NGE_F16) +v_cmpx_nlg_f16 = functools.partial(VOP3A, VOP3AOp.V_CMPX_NLG_F16) +v_cmpx_ngt_f16 = functools.partial(VOP3A, VOP3AOp.V_CMPX_NGT_F16) +v_cmpx_nle_f16 = functools.partial(VOP3A, VOP3AOp.V_CMPX_NLE_F16) +v_cmpx_neq_f16 = functools.partial(VOP3A, VOP3AOp.V_CMPX_NEQ_F16) +v_cmpx_nlt_f16 = functools.partial(VOP3A, VOP3AOp.V_CMPX_NLT_F16) +v_cmpx_tru_f16 = functools.partial(VOP3A, VOP3AOp.V_CMPX_TRU_F16) +v_cmp_f_f32 = functools.partial(VOP3A, VOP3AOp.V_CMP_F_F32) +v_cmp_lt_f32 = functools.partial(VOP3A, VOP3AOp.V_CMP_LT_F32) +v_cmp_eq_f32 = functools.partial(VOP3A, VOP3AOp.V_CMP_EQ_F32) +v_cmp_le_f32 = functools.partial(VOP3A, VOP3AOp.V_CMP_LE_F32) +v_cmp_gt_f32 = functools.partial(VOP3A, VOP3AOp.V_CMP_GT_F32) +v_cmp_lg_f32 = functools.partial(VOP3A, VOP3AOp.V_CMP_LG_F32) +v_cmp_ge_f32 = functools.partial(VOP3A, VOP3AOp.V_CMP_GE_F32) +v_cmp_o_f32 = functools.partial(VOP3A, VOP3AOp.V_CMP_O_F32) +v_cmp_u_f32 = functools.partial(VOP3A, VOP3AOp.V_CMP_U_F32) +v_cmp_nge_f32 = functools.partial(VOP3A, VOP3AOp.V_CMP_NGE_F32) +v_cmp_nlg_f32 = functools.partial(VOP3A, VOP3AOp.V_CMP_NLG_F32) +v_cmp_ngt_f32 = functools.partial(VOP3A, VOP3AOp.V_CMP_NGT_F32) +v_cmp_nle_f32 = functools.partial(VOP3A, VOP3AOp.V_CMP_NLE_F32) +v_cmp_neq_f32 = functools.partial(VOP3A, VOP3AOp.V_CMP_NEQ_F32) +v_cmp_nlt_f32 = functools.partial(VOP3A, VOP3AOp.V_CMP_NLT_F32) +v_cmp_tru_f32 = functools.partial(VOP3A, VOP3AOp.V_CMP_TRU_F32) +v_cmpx_f_f32 = functools.partial(VOP3A, VOP3AOp.V_CMPX_F_F32) +v_cmpx_lt_f32 = functools.partial(VOP3A, VOP3AOp.V_CMPX_LT_F32) +v_cmpx_eq_f32 = functools.partial(VOP3A, VOP3AOp.V_CMPX_EQ_F32) +v_cmpx_le_f32 = functools.partial(VOP3A, VOP3AOp.V_CMPX_LE_F32) +v_cmpx_gt_f32 = functools.partial(VOP3A, VOP3AOp.V_CMPX_GT_F32) +v_cmpx_lg_f32 = functools.partial(VOP3A, VOP3AOp.V_CMPX_LG_F32) +v_cmpx_ge_f32 = functools.partial(VOP3A, VOP3AOp.V_CMPX_GE_F32) +v_cmpx_o_f32 = functools.partial(VOP3A, VOP3AOp.V_CMPX_O_F32) +v_cmpx_u_f32 = functools.partial(VOP3A, VOP3AOp.V_CMPX_U_F32) +v_cmpx_nge_f32 = functools.partial(VOP3A, VOP3AOp.V_CMPX_NGE_F32) +v_cmpx_nlg_f32 = functools.partial(VOP3A, VOP3AOp.V_CMPX_NLG_F32) +v_cmpx_ngt_f32 = functools.partial(VOP3A, VOP3AOp.V_CMPX_NGT_F32) +v_cmpx_nle_f32 = functools.partial(VOP3A, VOP3AOp.V_CMPX_NLE_F32) +v_cmpx_neq_f32 = functools.partial(VOP3A, VOP3AOp.V_CMPX_NEQ_F32) +v_cmpx_nlt_f32 = functools.partial(VOP3A, VOP3AOp.V_CMPX_NLT_F32) +v_cmpx_tru_f32 = functools.partial(VOP3A, VOP3AOp.V_CMPX_TRU_F32) +v_cmp_f_f64 = functools.partial(VOP3A, VOP3AOp.V_CMP_F_F64) +v_cmp_lt_f64 = functools.partial(VOP3A, VOP3AOp.V_CMP_LT_F64) +v_cmp_eq_f64 = functools.partial(VOP3A, VOP3AOp.V_CMP_EQ_F64) +v_cmp_le_f64 = functools.partial(VOP3A, VOP3AOp.V_CMP_LE_F64) +v_cmp_gt_f64 = functools.partial(VOP3A, VOP3AOp.V_CMP_GT_F64) +v_cmp_lg_f64 = functools.partial(VOP3A, VOP3AOp.V_CMP_LG_F64) +v_cmp_ge_f64 = functools.partial(VOP3A, VOP3AOp.V_CMP_GE_F64) +v_cmp_o_f64 = functools.partial(VOP3A, VOP3AOp.V_CMP_O_F64) +v_cmp_u_f64 = functools.partial(VOP3A, VOP3AOp.V_CMP_U_F64) +v_cmp_nge_f64 = functools.partial(VOP3A, VOP3AOp.V_CMP_NGE_F64) +v_cmp_nlg_f64 = functools.partial(VOP3A, VOP3AOp.V_CMP_NLG_F64) +v_cmp_ngt_f64 = functools.partial(VOP3A, VOP3AOp.V_CMP_NGT_F64) +v_cmp_nle_f64 = functools.partial(VOP3A, VOP3AOp.V_CMP_NLE_F64) +v_cmp_neq_f64 = functools.partial(VOP3A, VOP3AOp.V_CMP_NEQ_F64) +v_cmp_nlt_f64 = functools.partial(VOP3A, VOP3AOp.V_CMP_NLT_F64) +v_cmp_tru_f64 = functools.partial(VOP3A, VOP3AOp.V_CMP_TRU_F64) +v_cmpx_f_f64 = functools.partial(VOP3A, VOP3AOp.V_CMPX_F_F64) +v_cmpx_lt_f64 = functools.partial(VOP3A, VOP3AOp.V_CMPX_LT_F64) +v_cmpx_eq_f64 = functools.partial(VOP3A, VOP3AOp.V_CMPX_EQ_F64) +v_cmpx_le_f64 = functools.partial(VOP3A, VOP3AOp.V_CMPX_LE_F64) +v_cmpx_gt_f64 = functools.partial(VOP3A, VOP3AOp.V_CMPX_GT_F64) +v_cmpx_lg_f64 = functools.partial(VOP3A, VOP3AOp.V_CMPX_LG_F64) +v_cmpx_ge_f64 = functools.partial(VOP3A, VOP3AOp.V_CMPX_GE_F64) +v_cmpx_o_f64 = functools.partial(VOP3A, VOP3AOp.V_CMPX_O_F64) +v_cmpx_u_f64 = functools.partial(VOP3A, VOP3AOp.V_CMPX_U_F64) +v_cmpx_nge_f64 = functools.partial(VOP3A, VOP3AOp.V_CMPX_NGE_F64) +v_cmpx_nlg_f64 = functools.partial(VOP3A, VOP3AOp.V_CMPX_NLG_F64) +v_cmpx_ngt_f64 = functools.partial(VOP3A, VOP3AOp.V_CMPX_NGT_F64) +v_cmpx_nle_f64 = functools.partial(VOP3A, VOP3AOp.V_CMPX_NLE_F64) +v_cmpx_neq_f64 = functools.partial(VOP3A, VOP3AOp.V_CMPX_NEQ_F64) +v_cmpx_nlt_f64 = functools.partial(VOP3A, VOP3AOp.V_CMPX_NLT_F64) +v_cmpx_tru_f64 = functools.partial(VOP3A, VOP3AOp.V_CMPX_TRU_F64) +v_cmp_f_i16 = functools.partial(VOP3A, VOP3AOp.V_CMP_F_I16) +v_cmp_lt_i16 = functools.partial(VOP3A, VOP3AOp.V_CMP_LT_I16) +v_cmp_eq_i16 = functools.partial(VOP3A, VOP3AOp.V_CMP_EQ_I16) +v_cmp_le_i16 = functools.partial(VOP3A, VOP3AOp.V_CMP_LE_I16) +v_cmp_gt_i16 = functools.partial(VOP3A, VOP3AOp.V_CMP_GT_I16) +v_cmp_ne_i16 = functools.partial(VOP3A, VOP3AOp.V_CMP_NE_I16) +v_cmp_ge_i16 = functools.partial(VOP3A, VOP3AOp.V_CMP_GE_I16) +v_cmp_t_i16 = functools.partial(VOP3A, VOP3AOp.V_CMP_T_I16) +v_cmp_f_u16 = functools.partial(VOP3A, VOP3AOp.V_CMP_F_U16) +v_cmp_lt_u16 = functools.partial(VOP3A, VOP3AOp.V_CMP_LT_U16) +v_cmp_eq_u16 = functools.partial(VOP3A, VOP3AOp.V_CMP_EQ_U16) +v_cmp_le_u16 = functools.partial(VOP3A, VOP3AOp.V_CMP_LE_U16) +v_cmp_gt_u16 = functools.partial(VOP3A, VOP3AOp.V_CMP_GT_U16) +v_cmp_ne_u16 = functools.partial(VOP3A, VOP3AOp.V_CMP_NE_U16) +v_cmp_ge_u16 = functools.partial(VOP3A, VOP3AOp.V_CMP_GE_U16) +v_cmp_t_u16 = functools.partial(VOP3A, VOP3AOp.V_CMP_T_U16) +v_cmpx_f_i16 = functools.partial(VOP3A, VOP3AOp.V_CMPX_F_I16) +v_cmpx_lt_i16 = functools.partial(VOP3A, VOP3AOp.V_CMPX_LT_I16) +v_cmpx_eq_i16 = functools.partial(VOP3A, VOP3AOp.V_CMPX_EQ_I16) +v_cmpx_le_i16 = functools.partial(VOP3A, VOP3AOp.V_CMPX_LE_I16) +v_cmpx_gt_i16 = functools.partial(VOP3A, VOP3AOp.V_CMPX_GT_I16) +v_cmpx_ne_i16 = functools.partial(VOP3A, VOP3AOp.V_CMPX_NE_I16) +v_cmpx_ge_i16 = functools.partial(VOP3A, VOP3AOp.V_CMPX_GE_I16) +v_cmpx_t_i16 = functools.partial(VOP3A, VOP3AOp.V_CMPX_T_I16) +v_cmpx_f_u16 = functools.partial(VOP3A, VOP3AOp.V_CMPX_F_U16) +v_cmpx_lt_u16 = functools.partial(VOP3A, VOP3AOp.V_CMPX_LT_U16) +v_cmpx_eq_u16 = functools.partial(VOP3A, VOP3AOp.V_CMPX_EQ_U16) +v_cmpx_le_u16 = functools.partial(VOP3A, VOP3AOp.V_CMPX_LE_U16) +v_cmpx_gt_u16 = functools.partial(VOP3A, VOP3AOp.V_CMPX_GT_U16) +v_cmpx_ne_u16 = functools.partial(VOP3A, VOP3AOp.V_CMPX_NE_U16) +v_cmpx_ge_u16 = functools.partial(VOP3A, VOP3AOp.V_CMPX_GE_U16) +v_cmpx_t_u16 = functools.partial(VOP3A, VOP3AOp.V_CMPX_T_U16) +v_cmp_f_i32 = functools.partial(VOP3A, VOP3AOp.V_CMP_F_I32) +v_cmp_lt_i32 = functools.partial(VOP3A, VOP3AOp.V_CMP_LT_I32) +v_cmp_eq_i32 = functools.partial(VOP3A, VOP3AOp.V_CMP_EQ_I32) +v_cmp_le_i32 = functools.partial(VOP3A, VOP3AOp.V_CMP_LE_I32) +v_cmp_gt_i32 = functools.partial(VOP3A, VOP3AOp.V_CMP_GT_I32) +v_cmp_ne_i32 = functools.partial(VOP3A, VOP3AOp.V_CMP_NE_I32) +v_cmp_ge_i32 = functools.partial(VOP3A, VOP3AOp.V_CMP_GE_I32) +v_cmp_t_i32 = functools.partial(VOP3A, VOP3AOp.V_CMP_T_I32) +v_cmp_f_u32 = functools.partial(VOP3A, VOP3AOp.V_CMP_F_U32) +v_cmp_lt_u32 = functools.partial(VOP3A, VOP3AOp.V_CMP_LT_U32) +v_cmp_eq_u32 = functools.partial(VOP3A, VOP3AOp.V_CMP_EQ_U32) +v_cmp_le_u32 = functools.partial(VOP3A, VOP3AOp.V_CMP_LE_U32) +v_cmp_gt_u32 = functools.partial(VOP3A, VOP3AOp.V_CMP_GT_U32) +v_cmp_ne_u32 = functools.partial(VOP3A, VOP3AOp.V_CMP_NE_U32) +v_cmp_ge_u32 = functools.partial(VOP3A, VOP3AOp.V_CMP_GE_U32) +v_cmp_t_u32 = functools.partial(VOP3A, VOP3AOp.V_CMP_T_U32) +v_cmpx_f_i32 = functools.partial(VOP3A, VOP3AOp.V_CMPX_F_I32) +v_cmpx_lt_i32 = functools.partial(VOP3A, VOP3AOp.V_CMPX_LT_I32) +v_cmpx_eq_i32 = functools.partial(VOP3A, VOP3AOp.V_CMPX_EQ_I32) +v_cmpx_le_i32 = functools.partial(VOP3A, VOP3AOp.V_CMPX_LE_I32) +v_cmpx_gt_i32 = functools.partial(VOP3A, VOP3AOp.V_CMPX_GT_I32) +v_cmpx_ne_i32 = functools.partial(VOP3A, VOP3AOp.V_CMPX_NE_I32) +v_cmpx_ge_i32 = functools.partial(VOP3A, VOP3AOp.V_CMPX_GE_I32) +v_cmpx_t_i32 = functools.partial(VOP3A, VOP3AOp.V_CMPX_T_I32) +v_cmpx_f_u32 = functools.partial(VOP3A, VOP3AOp.V_CMPX_F_U32) +v_cmpx_lt_u32 = functools.partial(VOP3A, VOP3AOp.V_CMPX_LT_U32) +v_cmpx_eq_u32 = functools.partial(VOP3A, VOP3AOp.V_CMPX_EQ_U32) +v_cmpx_le_u32 = functools.partial(VOP3A, VOP3AOp.V_CMPX_LE_U32) +v_cmpx_gt_u32 = functools.partial(VOP3A, VOP3AOp.V_CMPX_GT_U32) +v_cmpx_ne_u32 = functools.partial(VOP3A, VOP3AOp.V_CMPX_NE_U32) +v_cmpx_ge_u32 = functools.partial(VOP3A, VOP3AOp.V_CMPX_GE_U32) +v_cmpx_t_u32 = functools.partial(VOP3A, VOP3AOp.V_CMPX_T_U32) +v_cmp_f_i64 = functools.partial(VOP3A, VOP3AOp.V_CMP_F_I64) +v_cmp_lt_i64 = functools.partial(VOP3A, VOP3AOp.V_CMP_LT_I64) +v_cmp_eq_i64 = functools.partial(VOP3A, VOP3AOp.V_CMP_EQ_I64) +v_cmp_le_i64 = functools.partial(VOP3A, VOP3AOp.V_CMP_LE_I64) +v_cmp_gt_i64 = functools.partial(VOP3A, VOP3AOp.V_CMP_GT_I64) +v_cmp_ne_i64 = functools.partial(VOP3A, VOP3AOp.V_CMP_NE_I64) +v_cmp_ge_i64 = functools.partial(VOP3A, VOP3AOp.V_CMP_GE_I64) +v_cmp_t_i64 = functools.partial(VOP3A, VOP3AOp.V_CMP_T_I64) +v_cmp_f_u64 = functools.partial(VOP3A, VOP3AOp.V_CMP_F_U64) +v_cmp_lt_u64 = functools.partial(VOP3A, VOP3AOp.V_CMP_LT_U64) +v_cmp_eq_u64 = functools.partial(VOP3A, VOP3AOp.V_CMP_EQ_U64) +v_cmp_le_u64 = functools.partial(VOP3A, VOP3AOp.V_CMP_LE_U64) +v_cmp_gt_u64 = functools.partial(VOP3A, VOP3AOp.V_CMP_GT_U64) +v_cmp_ne_u64 = functools.partial(VOP3A, VOP3AOp.V_CMP_NE_U64) +v_cmp_ge_u64 = functools.partial(VOP3A, VOP3AOp.V_CMP_GE_U64) +v_cmp_t_u64 = functools.partial(VOP3A, VOP3AOp.V_CMP_T_U64) +v_cmpx_f_i64 = functools.partial(VOP3A, VOP3AOp.V_CMPX_F_I64) +v_cmpx_lt_i64 = functools.partial(VOP3A, VOP3AOp.V_CMPX_LT_I64) +v_cmpx_eq_i64 = functools.partial(VOP3A, VOP3AOp.V_CMPX_EQ_I64) +v_cmpx_le_i64 = functools.partial(VOP3A, VOP3AOp.V_CMPX_LE_I64) +v_cmpx_gt_i64 = functools.partial(VOP3A, VOP3AOp.V_CMPX_GT_I64) +v_cmpx_ne_i64 = functools.partial(VOP3A, VOP3AOp.V_CMPX_NE_I64) +v_cmpx_ge_i64 = functools.partial(VOP3A, VOP3AOp.V_CMPX_GE_I64) +v_cmpx_t_i64 = functools.partial(VOP3A, VOP3AOp.V_CMPX_T_I64) +v_cmpx_f_u64 = functools.partial(VOP3A, VOP3AOp.V_CMPX_F_U64) +v_cmpx_lt_u64 = functools.partial(VOP3A, VOP3AOp.V_CMPX_LT_U64) +v_cmpx_eq_u64 = functools.partial(VOP3A, VOP3AOp.V_CMPX_EQ_U64) +v_cmpx_le_u64 = functools.partial(VOP3A, VOP3AOp.V_CMPX_LE_U64) +v_cmpx_gt_u64 = functools.partial(VOP3A, VOP3AOp.V_CMPX_GT_U64) +v_cmpx_ne_u64 = functools.partial(VOP3A, VOP3AOp.V_CMPX_NE_U64) +v_cmpx_ge_u64 = functools.partial(VOP3A, VOP3AOp.V_CMPX_GE_U64) +v_cmpx_t_u64 = functools.partial(VOP3A, VOP3AOp.V_CMPX_T_U64) +v_cndmask_b32 = functools.partial(VOP3A, VOP3AOp.V_CNDMASK_B32) +v_add_f32 = functools.partial(VOP3A, VOP3AOp.V_ADD_F32) +v_sub_f32 = functools.partial(VOP3A, VOP3AOp.V_SUB_F32) +v_subrev_f32 = functools.partial(VOP3A, VOP3AOp.V_SUBREV_F32) +v_fmac_f64 = functools.partial(VOP3A, VOP3AOp.V_FMAC_F64) +v_mul_f32 = functools.partial(VOP3A, VOP3AOp.V_MUL_F32) +v_mul_i32_i24 = functools.partial(VOP3A, VOP3AOp.V_MUL_I32_I24) +v_mul_hi_i32_i24 = functools.partial(VOP3A, VOP3AOp.V_MUL_HI_I32_I24) +v_mul_u32_u24 = functools.partial(VOP3A, VOP3AOp.V_MUL_U32_U24) +v_mul_hi_u32_u24 = functools.partial(VOP3A, VOP3AOp.V_MUL_HI_U32_U24) +v_min_f32 = functools.partial(VOP3A, VOP3AOp.V_MIN_F32) +v_max_f32 = functools.partial(VOP3A, VOP3AOp.V_MAX_F32) +v_min_i32 = functools.partial(VOP3A, VOP3AOp.V_MIN_I32) +v_max_i32 = functools.partial(VOP3A, VOP3AOp.V_MAX_I32) +v_min_u32 = functools.partial(VOP3A, VOP3AOp.V_MIN_U32) +v_max_u32 = functools.partial(VOP3A, VOP3AOp.V_MAX_U32) +v_lshrrev_b32 = functools.partial(VOP3A, VOP3AOp.V_LSHRREV_B32) +v_ashrrev_i32 = functools.partial(VOP3A, VOP3AOp.V_ASHRREV_I32) +v_lshlrev_b32 = functools.partial(VOP3A, VOP3AOp.V_LSHLREV_B32) +v_and_b32 = functools.partial(VOP3A, VOP3AOp.V_AND_B32) +v_or_b32 = functools.partial(VOP3A, VOP3AOp.V_OR_B32) +v_xor_b32 = functools.partial(VOP3A, VOP3AOp.V_XOR_B32) +v_dot2c_f32_bf16 = functools.partial(VOP3A, VOP3AOp.V_DOT2C_F32_BF16) +v_add_f16 = functools.partial(VOP3A, VOP3AOp.V_ADD_F16) +v_sub_f16 = functools.partial(VOP3A, VOP3AOp.V_SUB_F16) +v_subrev_f16 = functools.partial(VOP3A, VOP3AOp.V_SUBREV_F16) +v_mul_f16 = functools.partial(VOP3A, VOP3AOp.V_MUL_F16) +v_mac_f16 = functools.partial(VOP3A, VOP3AOp.V_MAC_F16) +v_add_u16 = functools.partial(VOP3A, VOP3AOp.V_ADD_U16) +v_sub_u16 = functools.partial(VOP3A, VOP3AOp.V_SUB_U16) +v_subrev_u16 = functools.partial(VOP3A, VOP3AOp.V_SUBREV_U16) +v_mul_lo_u16 = functools.partial(VOP3A, VOP3AOp.V_MUL_LO_U16) +v_lshlrev_b16 = functools.partial(VOP3A, VOP3AOp.V_LSHLREV_B16) +v_lshrrev_b16 = functools.partial(VOP3A, VOP3AOp.V_LSHRREV_B16) +v_ashrrev_i16 = functools.partial(VOP3A, VOP3AOp.V_ASHRREV_I16) +v_max_f16 = functools.partial(VOP3A, VOP3AOp.V_MAX_F16) +v_min_f16 = functools.partial(VOP3A, VOP3AOp.V_MIN_F16) +v_max_u16 = functools.partial(VOP3A, VOP3AOp.V_MAX_U16) +v_max_i16 = functools.partial(VOP3A, VOP3AOp.V_MAX_I16) +v_min_u16 = functools.partial(VOP3A, VOP3AOp.V_MIN_U16) +v_min_i16 = functools.partial(VOP3A, VOP3AOp.V_MIN_I16) +v_ldexp_f16 = functools.partial(VOP3A, VOP3AOp.V_LDEXP_F16) +v_add_u32 = functools.partial(VOP3A, VOP3AOp.V_ADD_U32) +v_sub_u32 = functools.partial(VOP3A, VOP3AOp.V_SUB_U32) +v_subrev_u32 = functools.partial(VOP3A, VOP3AOp.V_SUBREV_U32) +v_dot2c_f32_f16 = functools.partial(VOP3A, VOP3AOp.V_DOT2C_F32_F16) +v_dot2c_i32_i16 = functools.partial(VOP3A, VOP3AOp.V_DOT2C_I32_I16) +v_dot4c_i32_i8 = functools.partial(VOP3A, VOP3AOp.V_DOT4C_I32_I8) +v_dot8c_i32_i4 = functools.partial(VOP3A, VOP3AOp.V_DOT8C_I32_I4) +v_fmac_f32 = functools.partial(VOP3A, VOP3AOp.V_FMAC_F32) +v_pk_fmac_f16 = functools.partial(VOP3A, VOP3AOp.V_PK_FMAC_F16) +v_xnor_b32 = functools.partial(VOP3A, VOP3AOp.V_XNOR_B32) +v_nop = functools.partial(VOP3A, VOP3AOp.V_NOP) +v_mov_b32 = functools.partial(VOP3A, VOP3AOp.V_MOV_B32) +v_readfirstlane_b32 = functools.partial(VOP3A, VOP3AOp.V_READFIRSTLANE_B32) +v_cvt_i32_f64 = functools.partial(VOP3A, VOP3AOp.V_CVT_I32_F64) +v_cvt_f64_i32 = functools.partial(VOP3A, VOP3AOp.V_CVT_F64_I32) +v_cvt_f32_i32 = functools.partial(VOP3A, VOP3AOp.V_CVT_F32_I32) +v_cvt_f32_u32 = functools.partial(VOP3A, VOP3AOp.V_CVT_F32_U32) +v_cvt_u32_f32 = functools.partial(VOP3A, VOP3AOp.V_CVT_U32_F32) +v_cvt_i32_f32 = functools.partial(VOP3A, VOP3AOp.V_CVT_I32_F32) +v_cvt_f16_f32 = functools.partial(VOP3A, VOP3AOp.V_CVT_F16_F32) +v_cvt_f32_f16 = functools.partial(VOP3A, VOP3AOp.V_CVT_F32_F16) +v_cvt_rpi_i32_f32 = functools.partial(VOP3A, VOP3AOp.V_CVT_RPI_I32_F32) +v_cvt_flr_i32_f32 = functools.partial(VOP3A, VOP3AOp.V_CVT_FLR_I32_F32) +v_cvt_off_f32_i4 = functools.partial(VOP3A, VOP3AOp.V_CVT_OFF_F32_I4) +v_cvt_f32_f64 = functools.partial(VOP3A, VOP3AOp.V_CVT_F32_F64) +v_cvt_f64_f32 = functools.partial(VOP3A, VOP3AOp.V_CVT_F64_F32) +v_cvt_f32_ubyte0 = functools.partial(VOP3A, VOP3AOp.V_CVT_F32_UBYTE0) +v_cvt_f32_ubyte1 = functools.partial(VOP3A, VOP3AOp.V_CVT_F32_UBYTE1) +v_cvt_f32_ubyte2 = functools.partial(VOP3A, VOP3AOp.V_CVT_F32_UBYTE2) +v_cvt_f32_ubyte3 = functools.partial(VOP3A, VOP3AOp.V_CVT_F32_UBYTE3) +v_cvt_u32_f64 = functools.partial(VOP3A, VOP3AOp.V_CVT_U32_F64) +v_cvt_f64_u32 = functools.partial(VOP3A, VOP3AOp.V_CVT_F64_U32) +v_trunc_f64 = functools.partial(VOP3A, VOP3AOp.V_TRUNC_F64) +v_ceil_f64 = functools.partial(VOP3A, VOP3AOp.V_CEIL_F64) +v_rndne_f64 = functools.partial(VOP3A, VOP3AOp.V_RNDNE_F64) +v_floor_f64 = functools.partial(VOP3A, VOP3AOp.V_FLOOR_F64) +v_fract_f32 = functools.partial(VOP3A, VOP3AOp.V_FRACT_F32) +v_trunc_f32 = functools.partial(VOP3A, VOP3AOp.V_TRUNC_F32) +v_ceil_f32 = functools.partial(VOP3A, VOP3AOp.V_CEIL_F32) +v_rndne_f32 = functools.partial(VOP3A, VOP3AOp.V_RNDNE_F32) +v_floor_f32 = functools.partial(VOP3A, VOP3AOp.V_FLOOR_F32) +v_exp_f32 = functools.partial(VOP3A, VOP3AOp.V_EXP_F32) +v_log_f32 = functools.partial(VOP3A, VOP3AOp.V_LOG_F32) +v_rcp_f32 = functools.partial(VOP3A, VOP3AOp.V_RCP_F32) +v_rcp_iflag_f32 = functools.partial(VOP3A, VOP3AOp.V_RCP_IFLAG_F32) +v_rsq_f32 = functools.partial(VOP3A, VOP3AOp.V_RSQ_F32) +v_rcp_f64 = functools.partial(VOP3A, VOP3AOp.V_RCP_F64) +v_rsq_f64 = functools.partial(VOP3A, VOP3AOp.V_RSQ_F64) +v_sqrt_f32 = functools.partial(VOP3A, VOP3AOp.V_SQRT_F32) +v_sqrt_f64 = functools.partial(VOP3A, VOP3AOp.V_SQRT_F64) +v_sin_f32 = functools.partial(VOP3A, VOP3AOp.V_SIN_F32) +v_cos_f32 = functools.partial(VOP3A, VOP3AOp.V_COS_F32) +v_not_b32 = functools.partial(VOP3A, VOP3AOp.V_NOT_B32) +v_bfrev_b32 = functools.partial(VOP3A, VOP3AOp.V_BFREV_B32) +v_ffbh_u32 = functools.partial(VOP3A, VOP3AOp.V_FFBH_U32) +v_ffbl_b32 = functools.partial(VOP3A, VOP3AOp.V_FFBL_B32) +v_ffbh_i32 = functools.partial(VOP3A, VOP3AOp.V_FFBH_I32) +v_frexp_exp_i32_f64 = functools.partial(VOP3A, VOP3AOp.V_FREXP_EXP_I32_F64) +v_frexp_mant_f64 = functools.partial(VOP3A, VOP3AOp.V_FREXP_MANT_F64) +v_fract_f64 = functools.partial(VOP3A, VOP3AOp.V_FRACT_F64) +v_frexp_exp_i32_f32 = functools.partial(VOP3A, VOP3AOp.V_FREXP_EXP_I32_F32) +v_frexp_mant_f32 = functools.partial(VOP3A, VOP3AOp.V_FREXP_MANT_F32) +v_clrexcp = functools.partial(VOP3A, VOP3AOp.V_CLREXCP) +v_mov_b64 = functools.partial(VOP3A, VOP3AOp.V_MOV_B64) +v_cvt_f16_u16 = functools.partial(VOP3A, VOP3AOp.V_CVT_F16_U16) +v_cvt_f16_i16 = functools.partial(VOP3A, VOP3AOp.V_CVT_F16_I16) +v_cvt_u16_f16 = functools.partial(VOP3A, VOP3AOp.V_CVT_U16_F16) +v_cvt_i16_f16 = functools.partial(VOP3A, VOP3AOp.V_CVT_I16_F16) +v_rcp_f16 = functools.partial(VOP3A, VOP3AOp.V_RCP_F16) +v_sqrt_f16 = functools.partial(VOP3A, VOP3AOp.V_SQRT_F16) +v_rsq_f16 = functools.partial(VOP3A, VOP3AOp.V_RSQ_F16) +v_log_f16 = functools.partial(VOP3A, VOP3AOp.V_LOG_F16) +v_exp_f16 = functools.partial(VOP3A, VOP3AOp.V_EXP_F16) +v_mad_i32_i24 = functools.partial(VOP3A, VOP3AOp.V_MAD_I32_I24) +v_mad_u32_u24 = functools.partial(VOP3A, VOP3AOp.V_MAD_U32_U24) +v_cubeid_f32 = functools.partial(VOP3A, VOP3AOp.V_CUBEID_F32) +v_cubesc_f32 = functools.partial(VOP3A, VOP3AOp.V_CUBESC_F32) +v_cubetc_f32 = functools.partial(VOP3A, VOP3AOp.V_CUBETC_F32) +v_cubema_f32 = functools.partial(VOP3A, VOP3AOp.V_CUBEMA_F32) +v_bfe_u32 = functools.partial(VOP3A, VOP3AOp.V_BFE_U32) +v_bfe_i32 = functools.partial(VOP3A, VOP3AOp.V_BFE_I32) +v_bfi_b32 = functools.partial(VOP3A, VOP3AOp.V_BFI_B32) +v_fma_f32 = functools.partial(VOP3A, VOP3AOp.V_FMA_F32) +v_fma_f64 = functools.partial(VOP3A, VOP3AOp.V_FMA_F64) +v_lerp_u8 = functools.partial(VOP3A, VOP3AOp.V_LERP_U8) +v_alignbit_b32 = functools.partial(VOP3A, VOP3AOp.V_ALIGNBIT_B32) +v_alignbyte_b32 = functools.partial(VOP3A, VOP3AOp.V_ALIGNBYTE_B32) +v_min3_f32 = functools.partial(VOP3A, VOP3AOp.V_MIN3_F32) +v_min3_i32 = functools.partial(VOP3A, VOP3AOp.V_MIN3_I32) +v_min3_u32 = functools.partial(VOP3A, VOP3AOp.V_MIN3_U32) +v_max3_f32 = functools.partial(VOP3A, VOP3AOp.V_MAX3_F32) +v_max3_i32 = functools.partial(VOP3A, VOP3AOp.V_MAX3_I32) +v_max3_u32 = functools.partial(VOP3A, VOP3AOp.V_MAX3_U32) +v_med3_f32 = functools.partial(VOP3A, VOP3AOp.V_MED3_F32) +v_med3_i32 = functools.partial(VOP3A, VOP3AOp.V_MED3_I32) +v_med3_u32 = functools.partial(VOP3A, VOP3AOp.V_MED3_U32) +v_sad_u8 = functools.partial(VOP3A, VOP3AOp.V_SAD_U8) +v_sad_hi_u8 = functools.partial(VOP3A, VOP3AOp.V_SAD_HI_U8) +v_sad_u16 = functools.partial(VOP3A, VOP3AOp.V_SAD_U16) +v_sad_u32 = functools.partial(VOP3A, VOP3AOp.V_SAD_U32) +v_cvt_pk_u8_f32 = functools.partial(VOP3A, VOP3AOp.V_CVT_PK_U8_F32) +v_div_fixup_f32 = functools.partial(VOP3A, VOP3AOp.V_DIV_FIXUP_F32) +v_div_fixup_f64 = functools.partial(VOP3A, VOP3AOp.V_DIV_FIXUP_F64) +v_div_fmas_f32 = functools.partial(VOP3A, VOP3AOp.V_DIV_FMAS_F32) +v_div_fmas_f64 = functools.partial(VOP3A, VOP3AOp.V_DIV_FMAS_F64) +v_msad_u8 = functools.partial(VOP3A, VOP3AOp.V_MSAD_U8) +v_qsad_pk_u16_u8 = functools.partial(VOP3A, VOP3AOp.V_QSAD_PK_U16_U8) +v_mqsad_pk_u16_u8 = functools.partial(VOP3A, VOP3AOp.V_MQSAD_PK_U16_U8) +v_mqsad_u32_u8 = functools.partial(VOP3A, VOP3AOp.V_MQSAD_U32_U8) +v_mad_legacy_f16 = functools.partial(VOP3A, VOP3AOp.V_MAD_LEGACY_F16) +v_mad_legacy_u16 = functools.partial(VOP3A, VOP3AOp.V_MAD_LEGACY_U16) +v_mad_legacy_i16 = functools.partial(VOP3A, VOP3AOp.V_MAD_LEGACY_I16) +v_perm_b32 = functools.partial(VOP3A, VOP3AOp.V_PERM_B32) +v_fma_legacy_f16 = functools.partial(VOP3A, VOP3AOp.V_FMA_LEGACY_F16) +v_div_fixup_legacy_f16 = functools.partial(VOP3A, VOP3AOp.V_DIV_FIXUP_LEGACY_F16) +v_cvt_pkaccum_u8_f32 = functools.partial(VOP3A, VOP3AOp.V_CVT_PKACCUM_U8_F32) +v_mad_u32_u16 = functools.partial(VOP3A, VOP3AOp.V_MAD_U32_U16) +v_mad_i32_i16 = functools.partial(VOP3A, VOP3AOp.V_MAD_I32_I16) +v_xad_u32 = functools.partial(VOP3A, VOP3AOp.V_XAD_U32) +v_min3_f16 = functools.partial(VOP3A, VOP3AOp.V_MIN3_F16) +v_min3_i16 = functools.partial(VOP3A, VOP3AOp.V_MIN3_I16) +v_min3_u16 = functools.partial(VOP3A, VOP3AOp.V_MIN3_U16) +v_max3_f16 = functools.partial(VOP3A, VOP3AOp.V_MAX3_F16) +v_max3_i16 = functools.partial(VOP3A, VOP3AOp.V_MAX3_I16) +v_max3_u16 = functools.partial(VOP3A, VOP3AOp.V_MAX3_U16) +v_med3_f16 = functools.partial(VOP3A, VOP3AOp.V_MED3_F16) +v_med3_i16 = functools.partial(VOP3A, VOP3AOp.V_MED3_I16) +v_med3_u16 = functools.partial(VOP3A, VOP3AOp.V_MED3_U16) +v_lshl_add_u32 = functools.partial(VOP3A, VOP3AOp.V_LSHL_ADD_U32) +v_add_lshl_u32 = functools.partial(VOP3A, VOP3AOp.V_ADD_LSHL_U32) +v_add3_u32 = functools.partial(VOP3A, VOP3AOp.V_ADD3_U32) +v_lshl_or_b32 = functools.partial(VOP3A, VOP3AOp.V_LSHL_OR_B32) +v_and_or_b32 = functools.partial(VOP3A, VOP3AOp.V_AND_OR_B32) +v_or3_b32 = functools.partial(VOP3A, VOP3AOp.V_OR3_B32) +v_mad_f16 = functools.partial(VOP3A, VOP3AOp.V_MAD_F16) +v_mad_u16 = functools.partial(VOP3A, VOP3AOp.V_MAD_U16) +v_mad_i16 = functools.partial(VOP3A, VOP3AOp.V_MAD_I16) +v_fma_f16 = functools.partial(VOP3A, VOP3AOp.V_FMA_F16) +v_div_fixup_f16 = functools.partial(VOP3A, VOP3AOp.V_DIV_FIXUP_F16) +v_lshl_add_u64 = functools.partial(VOP3A, VOP3AOp.V_LSHL_ADD_U64) +v_bitop3_b16 = functools.partial(VOP3A, VOP3AOp.V_BITOP3_B16) +v_bitop3_b32 = functools.partial(VOP3A, VOP3AOp.V_BITOP3_B32) +v_cvt_scalef32_pk_fp8_f32 = functools.partial(VOP3A, VOP3AOp.V_CVT_SCALEF32_PK_FP8_F32) +v_cvt_scalef32_pk_bf8_f32 = functools.partial(VOP3A, VOP3AOp.V_CVT_SCALEF32_PK_BF8_F32) +v_cvt_scalef32_sr_fp8_f32 = functools.partial(VOP3A, VOP3AOp.V_CVT_SCALEF32_SR_FP8_F32) +v_cvt_scalef32_sr_bf8_f32 = functools.partial(VOP3A, VOP3AOp.V_CVT_SCALEF32_SR_BF8_F32) +v_cvt_scalef32_pk_f32_fp8 = functools.partial(VOP3A, VOP3AOp.V_CVT_SCALEF32_PK_F32_FP8) +v_cvt_scalef32_pk_f32_bf8 = functools.partial(VOP3A, VOP3AOp.V_CVT_SCALEF32_PK_F32_BF8) +v_cvt_scalef32_f32_fp8 = functools.partial(VOP3A, VOP3AOp.V_CVT_SCALEF32_F32_FP8) +v_cvt_scalef32_f32_bf8 = functools.partial(VOP3A, VOP3AOp.V_CVT_SCALEF32_F32_BF8) +v_cvt_scalef32_pk_fp4_f32 = functools.partial(VOP3A, VOP3AOp.V_CVT_SCALEF32_PK_FP4_F32) +v_cvt_scalef32_sr_pk_fp4_f32 = functools.partial(VOP3A, VOP3AOp.V_CVT_SCALEF32_SR_PK_FP4_F32) +v_cvt_scalef32_pk_f32_fp4 = functools.partial(VOP3A, VOP3AOp.V_CVT_SCALEF32_PK_F32_FP4) +v_cvt_scalef32_pk_fp8_f16 = functools.partial(VOP3A, VOP3AOp.V_CVT_SCALEF32_PK_FP8_F16) +v_cvt_scalef32_pk_bf8_f16 = functools.partial(VOP3A, VOP3AOp.V_CVT_SCALEF32_PK_BF8_F16) +v_cvt_scalef32_sr_fp8_f16 = functools.partial(VOP3A, VOP3AOp.V_CVT_SCALEF32_SR_FP8_F16) +v_cvt_scalef32_sr_bf8_f16 = functools.partial(VOP3A, VOP3AOp.V_CVT_SCALEF32_SR_BF8_F16) +v_cvt_scalef32_pk_fp8_bf16 = functools.partial(VOP3A, VOP3AOp.V_CVT_SCALEF32_PK_FP8_BF16) +v_cvt_scalef32_pk_bf8_bf16 = functools.partial(VOP3A, VOP3AOp.V_CVT_SCALEF32_PK_BF8_BF16) +v_cvt_scalef32_sr_fp8_bf16 = functools.partial(VOP3A, VOP3AOp.V_CVT_SCALEF32_SR_FP8_BF16) +v_cvt_scalef32_sr_bf8_bf16 = functools.partial(VOP3A, VOP3AOp.V_CVT_SCALEF32_SR_BF8_BF16) +v_cvt_scalef32_pk_f16_fp8 = functools.partial(VOP3A, VOP3AOp.V_CVT_SCALEF32_PK_F16_FP8) +v_cvt_scalef32_pk_f16_bf8 = functools.partial(VOP3A, VOP3AOp.V_CVT_SCALEF32_PK_F16_BF8) +v_cvt_scalef32_f16_fp8 = functools.partial(VOP3A, VOP3AOp.V_CVT_SCALEF32_F16_FP8) +v_cvt_scalef32_f16_bf8 = functools.partial(VOP3A, VOP3AOp.V_CVT_SCALEF32_F16_BF8) +v_cvt_scalef32_pk_fp4_f16 = functools.partial(VOP3A, VOP3AOp.V_CVT_SCALEF32_PK_FP4_F16) +v_cvt_scalef32_pk_fp4_bf16 = functools.partial(VOP3A, VOP3AOp.V_CVT_SCALEF32_PK_FP4_BF16) +v_cvt_scalef32_sr_pk_fp4_f16 = functools.partial(VOP3A, VOP3AOp.V_CVT_SCALEF32_SR_PK_FP4_F16) +v_cvt_scalef32_sr_pk_fp4_bf16 = functools.partial(VOP3A, VOP3AOp.V_CVT_SCALEF32_SR_PK_FP4_BF16) +v_cvt_scalef32_pk_f16_fp4 = functools.partial(VOP3A, VOP3AOp.V_CVT_SCALEF32_PK_F16_FP4) +v_cvt_scalef32_pk_bf16_fp4 = functools.partial(VOP3A, VOP3AOp.V_CVT_SCALEF32_PK_BF16_FP4) +v_cvt_scalef32_2xpk16_fp6_f32 = functools.partial(VOP3A, VOP3AOp.V_CVT_SCALEF32_2XPK16_FP6_F32) +v_cvt_scalef32_2xpk16_bf6_f32 = functools.partial(VOP3A, VOP3AOp.V_CVT_SCALEF32_2XPK16_BF6_F32) +v_cvt_scalef32_sr_pk32_fp6_f32 = functools.partial(VOP3A, VOP3AOp.V_CVT_SCALEF32_SR_PK32_FP6_F32) +v_cvt_scalef32_sr_pk32_bf6_f32 = functools.partial(VOP3A, VOP3AOp.V_CVT_SCALEF32_SR_PK32_BF6_F32) +v_cvt_scalef32_pk32_f32_fp6 = functools.partial(VOP3A, VOP3AOp.V_CVT_SCALEF32_PK32_F32_FP6) +v_cvt_scalef32_pk32_f32_bf6 = functools.partial(VOP3A, VOP3AOp.V_CVT_SCALEF32_PK32_F32_BF6) +cdna4 = functools.partial(VOP3A, VOP3AOp.CDNA4) +v_cvt_scalef32_pk32_fp6_bf16 = functools.partial(VOP3A, VOP3AOp.V_CVT_SCALEF32_PK32_FP6_BF16) +v_cvt_scalef32_pk32_bf6_f16 = functools.partial(VOP3A, VOP3AOp.V_CVT_SCALEF32_PK32_BF6_F16) +v_cvt_scalef32_pk32_bf6_bf16 = functools.partial(VOP3A, VOP3AOp.V_CVT_SCALEF32_PK32_BF6_BF16) +v_cvt_scalef32_sr_pk32_fp6_f16 = functools.partial(VOP3A, VOP3AOp.V_CVT_SCALEF32_SR_PK32_FP6_F16) +v_cvt_scalef32_sr_pk32_fp6_bf16 = functools.partial(VOP3A, VOP3AOp.V_CVT_SCALEF32_SR_PK32_FP6_BF16) +v_cvt_scalef32_sr_pk32_bf6_f16 = functools.partial(VOP3A, VOP3AOp.V_CVT_SCALEF32_SR_PK32_BF6_F16) +v_cvt_scalef32_sr_pk32_bf6_bf16 = functools.partial(VOP3A, VOP3AOp.V_CVT_SCALEF32_SR_PK32_BF6_BF16) +v_cvt_scalef32_pk32_f16_fp6 = functools.partial(VOP3A, VOP3AOp.V_CVT_SCALEF32_PK32_F16_FP6) +v_cvt_scalef32_pk32_bf16_fp6 = functools.partial(VOP3A, VOP3AOp.V_CVT_SCALEF32_PK32_BF16_FP6) +v_cvt_scalef32_pk32_f16_bf6 = functools.partial(VOP3A, VOP3AOp.V_CVT_SCALEF32_PK32_F16_BF6) +v_cvt_scalef32_pk32_bf16_bf6 = functools.partial(VOP3A, VOP3AOp.V_CVT_SCALEF32_PK32_BF16_BF6) +v_ashr_pk_i8_i32 = functools.partial(VOP3A, VOP3AOp.V_ASHR_PK_I8_I32) +v_ashr_pk_u8_i32 = functools.partial(VOP3A, VOP3AOp.V_ASHR_PK_U8_I32) +v_cvt_pk_f16_f32 = functools.partial(VOP3A, VOP3AOp.V_CVT_PK_F16_F32) +v_cvt_pk_bf16_f32 = functools.partial(VOP3A, VOP3AOp.V_CVT_PK_BF16_F32) +v_cvt_scalef32_pk_bf16_fp8 = functools.partial(VOP3A, VOP3AOp.V_CVT_SCALEF32_PK_BF16_FP8) +v_cvt_scalef32_pk_bf16_bf8 = functools.partial(VOP3A, VOP3AOp.V_CVT_SCALEF32_PK_BF16_BF8) +v_add_f64 = functools.partial(VOP3A, VOP3AOp.V_ADD_F64) +v_mul_f64 = functools.partial(VOP3A, VOP3AOp.V_MUL_F64) +v_min_f64 = functools.partial(VOP3A, VOP3AOp.V_MIN_F64) +v_max_f64 = functools.partial(VOP3A, VOP3AOp.V_MAX_F64) +v_ldexp_f64 = functools.partial(VOP3A, VOP3AOp.V_LDEXP_F64) +v_mul_lo_u32 = functools.partial(VOP3A, VOP3AOp.V_MUL_LO_U32) +v_mul_hi_u32 = functools.partial(VOP3A, VOP3AOp.V_MUL_HI_U32) +v_mul_hi_i32 = functools.partial(VOP3A, VOP3AOp.V_MUL_HI_I32) +v_ldexp_f32 = functools.partial(VOP3A, VOP3AOp.V_LDEXP_F32) +v_readlane_b32 = functools.partial(VOP3A, VOP3AOp.V_READLANE_B32) +v_writelane_b32 = functools.partial(VOP3A, VOP3AOp.V_WRITELANE_B32) +v_bcnt_u32_b32 = functools.partial(VOP3A, VOP3AOp.V_BCNT_U32_B32) +v_mbcnt_lo_u32_b32 = functools.partial(VOP3A, VOP3AOp.V_MBCNT_LO_U32_B32) +v_mbcnt_hi_u32_b32 = functools.partial(VOP3A, VOP3AOp.V_MBCNT_HI_U32_B32) +v_lshlrev_b64 = functools.partial(VOP3A, VOP3AOp.V_LSHLREV_B64) +v_lshrrev_b64 = functools.partial(VOP3A, VOP3AOp.V_LSHRREV_B64) +v_ashrrev_i64 = functools.partial(VOP3A, VOP3AOp.V_ASHRREV_I64) +v_trig_preop_f64 = functools.partial(VOP3A, VOP3AOp.V_TRIG_PREOP_F64) +v_bfm_b32 = functools.partial(VOP3A, VOP3AOp.V_BFM_B32) +v_cvt_pknorm_i16_f32 = functools.partial(VOP3A, VOP3AOp.V_CVT_PKNORM_I16_F32) +v_cvt_pknorm_u16_f32 = functools.partial(VOP3A, VOP3AOp.V_CVT_PKNORM_U16_F32) +v_cvt_pkrtz_f16_f32 = functools.partial(VOP3A, VOP3AOp.V_CVT_PKRTZ_F16_F32) +v_cvt_pk_u16_u32 = functools.partial(VOP3A, VOP3AOp.V_CVT_PK_U16_U32) +v_cvt_pk_i16_i32 = functools.partial(VOP3A, VOP3AOp.V_CVT_PK_I16_I32) +v_cvt_pknorm_i16_f16 = functools.partial(VOP3A, VOP3AOp.V_CVT_PKNORM_I16_F16) +v_cvt_pknorm_u16_f16 = functools.partial(VOP3A, VOP3AOp.V_CVT_PKNORM_U16_F16) +v_add_i32 = functools.partial(VOP3A, VOP3AOp.V_ADD_I32) +v_sub_i32 = functools.partial(VOP3A, VOP3AOp.V_SUB_I32) +v_add_i16 = functools.partial(VOP3A, VOP3AOp.V_ADD_I16) +v_sub_i16 = functools.partial(VOP3A, VOP3AOp.V_SUB_I16) +v_pack_b32_f16 = functools.partial(VOP3A, VOP3AOp.V_PACK_B32_F16) +v_mul_legacy_f32 = functools.partial(VOP3A, VOP3AOp.V_MUL_LEGACY_F32) +v_cvt_pk_fp8_f32 = functools.partial(VOP3A, VOP3AOp.V_CVT_PK_FP8_F32) +v_cvt_pk_bf8_f32 = functools.partial(VOP3A, VOP3AOp.V_CVT_PK_BF8_F32) +v_cvt_sr_fp8_f32 = functools.partial(VOP3A, VOP3AOp.V_CVT_SR_FP8_F32) +v_cvt_sr_bf8_f32 = functools.partial(VOP3A, VOP3AOp.V_CVT_SR_BF8_F32) +v_cvt_sr_f16_f32 = functools.partial(VOP3A, VOP3AOp.V_CVT_SR_F16_F32) +v_cvt_sr_bf16_f32 = functools.partial(VOP3A, VOP3AOp.V_CVT_SR_BF16_F32) +v_minimum3_f32 = functools.partial(VOP3A, VOP3AOp.V_MINIMUM3_F32) +v_maximum3_f32 = functools.partial(VOP3A, VOP3AOp.V_MAXIMUM3_F32) +v_add_co_u32 = functools.partial(VOP3B, VOP3BOp.V_ADD_CO_U32) +v_sub_co_u32 = functools.partial(VOP3B, VOP3BOp.V_SUB_CO_U32) +v_subrev_co_u32 = functools.partial(VOP3B, VOP3BOp.V_SUBREV_CO_U32) +v_addc_co_u32 = functools.partial(VOP3B, VOP3BOp.V_ADDC_CO_U32) +v_subb_co_u32 = functools.partial(VOP3B, VOP3BOp.V_SUBB_CO_U32) +v_subbrev_co_u32 = functools.partial(VOP3B, VOP3BOp.V_SUBBREV_CO_U32) +v_div_scale_f32 = functools.partial(VOP3B, VOP3BOp.V_DIV_SCALE_F32) +v_div_scale_f64 = functools.partial(VOP3B, VOP3BOp.V_DIV_SCALE_F64) +v_mad_u64_u32 = functools.partial(VOP3B, VOP3BOp.V_MAD_U64_U32) +v_mad_i64_i32 = functools.partial(VOP3B, VOP3BOp.V_MAD_I64_I32) +cdna4 = functools.partial(VOP3B, VOP3BOp.CDNA4) +v_pk_mad_i16 = functools.partial(VOP3P, VOP3POp.V_PK_MAD_I16) +v_pk_mul_lo_u16 = functools.partial(VOP3P, VOP3POp.V_PK_MUL_LO_U16) +v_pk_add_i16 = functools.partial(VOP3P, VOP3POp.V_PK_ADD_I16) +v_pk_sub_i16 = functools.partial(VOP3P, VOP3POp.V_PK_SUB_I16) +v_pk_lshlrev_b16 = functools.partial(VOP3P, VOP3POp.V_PK_LSHLREV_B16) +v_pk_lshrrev_b16 = functools.partial(VOP3P, VOP3POp.V_PK_LSHRREV_B16) +v_pk_ashrrev_i16 = functools.partial(VOP3P, VOP3POp.V_PK_ASHRREV_I16) +v_pk_max_i16 = functools.partial(VOP3P, VOP3POp.V_PK_MAX_I16) +v_pk_min_i16 = functools.partial(VOP3P, VOP3POp.V_PK_MIN_I16) +v_pk_mad_u16 = functools.partial(VOP3P, VOP3POp.V_PK_MAD_U16) +v_pk_add_u16 = functools.partial(VOP3P, VOP3POp.V_PK_ADD_U16) +v_pk_sub_u16 = functools.partial(VOP3P, VOP3POp.V_PK_SUB_U16) +v_pk_max_u16 = functools.partial(VOP3P, VOP3POp.V_PK_MAX_U16) +v_pk_min_u16 = functools.partial(VOP3P, VOP3POp.V_PK_MIN_U16) +v_pk_fma_f16 = functools.partial(VOP3P, VOP3POp.V_PK_FMA_F16) +v_pk_add_f16 = functools.partial(VOP3P, VOP3POp.V_PK_ADD_F16) +v_pk_mul_f16 = functools.partial(VOP3P, VOP3POp.V_PK_MUL_F16) +v_pk_min_f16 = functools.partial(VOP3P, VOP3POp.V_PK_MIN_F16) +v_pk_max_f16 = functools.partial(VOP3P, VOP3POp.V_PK_MAX_F16) +v_dot2_f32_bf16 = functools.partial(VOP3P, VOP3POp.V_DOT2_F32_BF16) +v_pk_minimum3_f16 = functools.partial(VOP3P, VOP3POp.V_PK_MINIMUM3_F16) +v_pk_maximum3_f16 = functools.partial(VOP3P, VOP3POp.V_PK_MAXIMUM3_F16) +v_mad_mix_f32 = functools.partial(VOP3P, VOP3POp.V_MAD_MIX_F32) +v_mad_mixlo_f16 = functools.partial(VOP3P, VOP3POp.V_MAD_MIXLO_F16) +v_mad_mixhi_f16 = functools.partial(VOP3P, VOP3POp.V_MAD_MIXHI_F16) +v_dot2_f32_f16 = functools.partial(VOP3P, VOP3POp.V_DOT2_F32_F16) +v_dot2_i32_i16 = functools.partial(VOP3P, VOP3POp.V_DOT2_I32_I16) +v_dot2_u32_u16 = functools.partial(VOP3P, VOP3POp.V_DOT2_U32_U16) +v_dot4_i32_i8 = functools.partial(VOP3P, VOP3POp.V_DOT4_I32_I8) +v_dot4_u32_u8 = functools.partial(VOP3P, VOP3POp.V_DOT4_U32_U8) +v_dot8_i32_i4 = functools.partial(VOP3P, VOP3POp.V_DOT8_I32_I4) +v_dot8_u32_u4 = functools.partial(VOP3P, VOP3POp.V_DOT8_U32_U4) +v_mfma_f32_16x16x128_f8f6f4 = functools.partial(VOP3P, VOP3POp.V_MFMA_F32_16X16X128_F8F6F4) +v_mfma_f32_32x32x64_f8f6f4 = functools.partial(VOP3P, VOP3POp.V_MFMA_F32_32X32X64_F8F6F4) +v_pk_fma_f32 = functools.partial(VOP3P, VOP3POp.V_PK_FMA_F32) +v_pk_mul_f32 = functools.partial(VOP3P, VOP3POp.V_PK_MUL_F32) +v_pk_add_f32 = functools.partial(VOP3P, VOP3POp.V_PK_ADD_F32) +v_pk_mov_b32 = functools.partial(VOP3P, VOP3POp.V_PK_MOV_B32) +v_mfma_f32_16x16x32_bf16 = functools.partial(VOP3P, VOP3POp.V_MFMA_F32_16X16X32_BF16) +v_mfma_i32_16x16x64_i8 = functools.partial(VOP3P, VOP3POp.V_MFMA_I32_16X16X64_I8) +v_mfma_f32_32x32x16_bf16 = functools.partial(VOP3P, VOP3POp.V_MFMA_F32_32X32X16_BF16) +v_mfma_i32_32x32x32_i8 = functools.partial(VOP3P, VOP3POp.V_MFMA_I32_32X32X32_I8) +v_smfmac_f32_16x16x64_bf16 = functools.partial(VOP3P, VOP3POp.V_SMFMAC_F32_16X16X64_BF16) +v_smfmac_i32_16x16x128_i8 = functools.partial(VOP3P, VOP3POp.V_SMFMAC_I32_16X16X128_I8) +v_smfmac_f32_16x16x128_bf8_bf8 = functools.partial(VOP3P, VOP3POp.V_SMFMAC_F32_16X16X128_BF8_BF8) +v_smfmac_f32_16x16x128_bf8_fp8 = functools.partial(VOP3P, VOP3POp.V_SMFMAC_F32_16X16X128_BF8_FP8) +v_smfmac_f32_16x16x128_fp8_bf8 = functools.partial(VOP3P, VOP3POp.V_SMFMAC_F32_16X16X128_FP8_BF8) +v_mfma_f32_16x16x8_xf32 = functools.partial(VOP3P, VOP3POp.V_MFMA_F32_16X16X8_XF32) +v_mfma_f32_32x32x4_xf32 = functools.partial(VOP3P, VOP3POp.V_MFMA_F32_32X32X4_XF32) +v_mfma_f32_32x32x1_2b_f32 = functools.partial(VOP3P, VOP3POp.V_MFMA_F32_32X32X1_2B_F32) +v_mfma_f32_16x16x1_4b_f32 = functools.partial(VOP3P, VOP3POp.V_MFMA_F32_16X16X1_4B_F32) +v_mfma_f32_4x4x1_16b_f32 = functools.partial(VOP3P, VOP3POp.V_MFMA_F32_4X4X1_16B_F32) +v_smfmac_f32_16x16x128_fp8_fp8 = functools.partial(VOP3P, VOP3POp.V_SMFMAC_F32_16X16X128_FP8_FP8) +v_mfma_f32_32x32x2_f32 = functools.partial(VOP3P, VOP3POp.V_MFMA_F32_32X32X2_F32) +v_mfma_f32_16x16x4_f32 = functools.partial(VOP3P, VOP3POp.V_MFMA_F32_16X16X4_F32) +v_smfmac_f32_32x32x32_bf16 = functools.partial(VOP3P, VOP3POp.V_SMFMAC_F32_32X32X32_BF16) +v_smfmac_i32_32x32x64_i8 = functools.partial(VOP3P, VOP3POp.V_SMFMAC_I32_32X32X64_I8) +v_mfma_f32_32x32x4_2b_f16 = functools.partial(VOP3P, VOP3POp.V_MFMA_F32_32X32X4_2B_F16) +v_mfma_f32_16x16x4_4b_f16 = functools.partial(VOP3P, VOP3POp.V_MFMA_F32_16X16X4_4B_F16) +v_mfma_f32_4x4x4_16b_f16 = functools.partial(VOP3P, VOP3POp.V_MFMA_F32_4X4X4_16B_F16) +v_smfmac_f32_32x32x64_bf8_bf8 = functools.partial(VOP3P, VOP3POp.V_SMFMAC_F32_32X32X64_BF8_BF8) +v_mfma_f32_32x32x8_f16 = functools.partial(VOP3P, VOP3POp.V_MFMA_F32_32X32X8_F16) +v_mfma_f32_16x16x16_f16 = functools.partial(VOP3P, VOP3POp.V_MFMA_F32_16X16X16_F16) +v_smfmac_f32_32x32x64_bf8_fp8 = functools.partial(VOP3P, VOP3POp.V_SMFMAC_F32_32X32X64_BF8_FP8) +v_smfmac_f32_32x32x64_fp8_bf8 = functools.partial(VOP3P, VOP3POp.V_SMFMAC_F32_32X32X64_FP8_BF8) +v_mfma_i32_32x32x4_2b_i8 = functools.partial(VOP3P, VOP3POp.V_MFMA_I32_32X32X4_2B_I8) +v_mfma_i32_16x16x4_4b_i8 = functools.partial(VOP3P, VOP3POp.V_MFMA_I32_16X16X4_4B_I8) +v_mfma_i32_4x4x4_16b_i8 = functools.partial(VOP3P, VOP3POp.V_MFMA_I32_4X4X4_16B_I8) +v_smfmac_f32_32x32x64_fp8_fp8 = functools.partial(VOP3P, VOP3POp.V_SMFMAC_F32_32X32X64_FP8_FP8) +v_mfma_f32_16x16x32_f16 = functools.partial(VOP3P, VOP3POp.V_MFMA_F32_16X16X32_F16) +v_mfma_f32_32x32x16_f16 = functools.partial(VOP3P, VOP3POp.V_MFMA_F32_32X32X16_F16) +v_mfma_i32_32x32x16_i8 = functools.partial(VOP3P, VOP3POp.V_MFMA_I32_32X32X16_I8) +v_mfma_i32_16x16x32_i8 = functools.partial(VOP3P, VOP3POp.V_MFMA_I32_16X16X32_I8) +v_accvgpr_read = functools.partial(VOP3P, VOP3POp.V_ACCVGPR_READ) +v_accvgpr_write = functools.partial(VOP3P, VOP3POp.V_ACCVGPR_WRITE) +v_smfmac_f32_16x16x64_f16 = functools.partial(VOP3P, VOP3POp.V_SMFMAC_F32_16X16X64_F16) +v_smfmac_f32_32x32x32_f16 = functools.partial(VOP3P, VOP3POp.V_SMFMAC_F32_32X32X32_F16) +v_mfma_f32_32x32x4_2b_bf16 = functools.partial(VOP3P, VOP3POp.V_MFMA_F32_32X32X4_2B_BF16) +v_mfma_f32_16x16x4_4b_bf16 = functools.partial(VOP3P, VOP3POp.V_MFMA_F32_16X16X4_4B_BF16) +v_mfma_f32_4x4x4_16b_bf16 = functools.partial(VOP3P, VOP3POp.V_MFMA_F32_4X4X4_16B_BF16) +v_mfma_f32_32x32x8_bf16 = functools.partial(VOP3P, VOP3POp.V_MFMA_F32_32X32X8_BF16) +v_mfma_f32_16x16x16_bf16 = functools.partial(VOP3P, VOP3POp.V_MFMA_F32_16X16X16_BF16) +v_smfmac_f32_16x16x32_f16 = functools.partial(VOP3P, VOP3POp.V_SMFMAC_F32_16X16X32_F16) +v_smfmac_f32_32x32x16_f16 = functools.partial(VOP3P, VOP3POp.V_SMFMAC_F32_32X32X16_F16) +v_smfmac_f32_16x16x32_bf16 = functools.partial(VOP3P, VOP3POp.V_SMFMAC_F32_16X16X32_BF16) +v_smfmac_f32_32x32x16_bf16 = functools.partial(VOP3P, VOP3POp.V_SMFMAC_F32_32X32X16_BF16) +v_smfmac_i32_16x16x64_i8 = functools.partial(VOP3P, VOP3POp.V_SMFMAC_I32_16X16X64_I8) +v_smfmac_i32_32x32x32_i8 = functools.partial(VOP3P, VOP3POp.V_SMFMAC_I32_32X32X32_I8) +v_mfma_f64_16x16x4_f64 = functools.partial(VOP3P, VOP3POp.V_MFMA_F64_16X16X4_F64) +v_mfma_f64_4x4x4_4b_f64 = functools.partial(VOP3P, VOP3POp.V_MFMA_F64_4X4X4_4B_F64) +v_mfma_f32_16x16x32_bf8_bf8 = functools.partial(VOP3P, VOP3POp.V_MFMA_F32_16X16X32_BF8_BF8) +v_mfma_f32_16x16x32_bf8_fp8 = functools.partial(VOP3P, VOP3POp.V_MFMA_F32_16X16X32_BF8_FP8) +v_mfma_f32_16x16x32_fp8_bf8 = functools.partial(VOP3P, VOP3POp.V_MFMA_F32_16X16X32_FP8_BF8) +v_mfma_f32_16x16x32_fp8_fp8 = functools.partial(VOP3P, VOP3POp.V_MFMA_F32_16X16X32_FP8_FP8) +v_mfma_f32_32x32x16_bf8_bf8 = functools.partial(VOP3P, VOP3POp.V_MFMA_F32_32X32X16_BF8_BF8) +v_mfma_f32_32x32x16_bf8_fp8 = functools.partial(VOP3P, VOP3POp.V_MFMA_F32_32X32X16_BF8_FP8) +v_mfma_f32_32x32x16_fp8_bf8 = functools.partial(VOP3P, VOP3POp.V_MFMA_F32_32X32X16_FP8_BF8) +v_mfma_f32_32x32x16_fp8_fp8 = functools.partial(VOP3P, VOP3POp.V_MFMA_F32_32X32X16_FP8_FP8) +v_smfmac_f32_16x16x64_bf8_bf8 = functools.partial(VOP3P, VOP3POp.V_SMFMAC_F32_16X16X64_BF8_BF8) +v_smfmac_f32_16x16x64_bf8_fp8 = functools.partial(VOP3P, VOP3POp.V_SMFMAC_F32_16X16X64_BF8_FP8) +v_smfmac_f32_16x16x64_fp8_bf8 = functools.partial(VOP3P, VOP3POp.V_SMFMAC_F32_16X16X64_FP8_BF8) +v_smfmac_f32_16x16x64_fp8_fp8 = functools.partial(VOP3P, VOP3POp.V_SMFMAC_F32_16X16X64_FP8_FP8) +v_smfmac_f32_32x32x32_bf8_bf8 = functools.partial(VOP3P, VOP3POp.V_SMFMAC_F32_32X32X32_BF8_BF8) +v_smfmac_f32_32x32x32_bf8_fp8 = functools.partial(VOP3P, VOP3POp.V_SMFMAC_F32_32X32X32_BF8_FP8) +v_smfmac_f32_32x32x32_fp8_bf8 = functools.partial(VOP3P, VOP3POp.V_SMFMAC_F32_32X32X32_FP8_BF8) +v_smfmac_f32_32x32x32_fp8_fp8 = functools.partial(VOP3P, VOP3POp.V_SMFMAC_F32_32X32X32_FP8_FP8) +cdna4 = functools.partial(VOP3P, VOP3POp.CDNA4) +v_cmp_class_f32_e32 = functools.partial(VOPC, VOPCOp.V_CMP_CLASS_F32) +v_cmpx_class_f32_e32 = functools.partial(VOPC, VOPCOp.V_CMPX_CLASS_F32) +v_cmp_class_f64_e32 = functools.partial(VOPC, VOPCOp.V_CMP_CLASS_F64) +v_cmpx_class_f64_e32 = functools.partial(VOPC, VOPCOp.V_CMPX_CLASS_F64) +v_cmp_class_f16_e32 = functools.partial(VOPC, VOPCOp.V_CMP_CLASS_F16) +v_cmpx_class_f16_e32 = functools.partial(VOPC, VOPCOp.V_CMPX_CLASS_F16) +v_cmp_f_f16_e32 = functools.partial(VOPC, VOPCOp.V_CMP_F_F16) +v_cmp_lt_f16_e32 = functools.partial(VOPC, VOPCOp.V_CMP_LT_F16) +v_cmp_eq_f16_e32 = functools.partial(VOPC, VOPCOp.V_CMP_EQ_F16) +v_cmp_le_f16_e32 = functools.partial(VOPC, VOPCOp.V_CMP_LE_F16) +v_cmp_gt_f16_e32 = functools.partial(VOPC, VOPCOp.V_CMP_GT_F16) +v_cmp_lg_f16_e32 = functools.partial(VOPC, VOPCOp.V_CMP_LG_F16) +v_cmp_ge_f16_e32 = functools.partial(VOPC, VOPCOp.V_CMP_GE_F16) +v_cmp_o_f16_e32 = functools.partial(VOPC, VOPCOp.V_CMP_O_F16) +v_cmp_u_f16_e32 = functools.partial(VOPC, VOPCOp.V_CMP_U_F16) +v_cmp_nge_f16_e32 = functools.partial(VOPC, VOPCOp.V_CMP_NGE_F16) +v_cmp_nlg_f16_e32 = functools.partial(VOPC, VOPCOp.V_CMP_NLG_F16) +v_cmp_ngt_f16_e32 = functools.partial(VOPC, VOPCOp.V_CMP_NGT_F16) +v_cmp_nle_f16_e32 = functools.partial(VOPC, VOPCOp.V_CMP_NLE_F16) +v_cmp_neq_f16_e32 = functools.partial(VOPC, VOPCOp.V_CMP_NEQ_F16) +v_cmp_nlt_f16_e32 = functools.partial(VOPC, VOPCOp.V_CMP_NLT_F16) +v_cmp_tru_f16_e32 = functools.partial(VOPC, VOPCOp.V_CMP_TRU_F16) +v_cmpx_f_f16_e32 = functools.partial(VOPC, VOPCOp.V_CMPX_F_F16) +v_cmpx_lt_f16_e32 = functools.partial(VOPC, VOPCOp.V_CMPX_LT_F16) +v_cmpx_eq_f16_e32 = functools.partial(VOPC, VOPCOp.V_CMPX_EQ_F16) +v_cmpx_le_f16_e32 = functools.partial(VOPC, VOPCOp.V_CMPX_LE_F16) +v_cmpx_gt_f16_e32 = functools.partial(VOPC, VOPCOp.V_CMPX_GT_F16) +v_cmpx_lg_f16_e32 = functools.partial(VOPC, VOPCOp.V_CMPX_LG_F16) +v_cmpx_ge_f16_e32 = functools.partial(VOPC, VOPCOp.V_CMPX_GE_F16) +v_cmpx_o_f16_e32 = functools.partial(VOPC, VOPCOp.V_CMPX_O_F16) +v_cmpx_u_f16_e32 = functools.partial(VOPC, VOPCOp.V_CMPX_U_F16) +v_cmpx_nge_f16_e32 = functools.partial(VOPC, VOPCOp.V_CMPX_NGE_F16) +v_cmpx_nlg_f16_e32 = functools.partial(VOPC, VOPCOp.V_CMPX_NLG_F16) +v_cmpx_ngt_f16_e32 = functools.partial(VOPC, VOPCOp.V_CMPX_NGT_F16) +v_cmpx_nle_f16_e32 = functools.partial(VOPC, VOPCOp.V_CMPX_NLE_F16) +v_cmpx_neq_f16_e32 = functools.partial(VOPC, VOPCOp.V_CMPX_NEQ_F16) +v_cmpx_nlt_f16_e32 = functools.partial(VOPC, VOPCOp.V_CMPX_NLT_F16) +v_cmpx_tru_f16_e32 = functools.partial(VOPC, VOPCOp.V_CMPX_TRU_F16) +v_cmp_f_f32_e32 = functools.partial(VOPC, VOPCOp.V_CMP_F_F32) +v_cmp_lt_f32_e32 = functools.partial(VOPC, VOPCOp.V_CMP_LT_F32) +v_cmp_eq_f32_e32 = functools.partial(VOPC, VOPCOp.V_CMP_EQ_F32) +v_cmp_le_f32_e32 = functools.partial(VOPC, VOPCOp.V_CMP_LE_F32) +v_cmp_gt_f32_e32 = functools.partial(VOPC, VOPCOp.V_CMP_GT_F32) +v_cmp_lg_f32_e32 = functools.partial(VOPC, VOPCOp.V_CMP_LG_F32) +v_cmp_ge_f32_e32 = functools.partial(VOPC, VOPCOp.V_CMP_GE_F32) +v_cmp_o_f32_e32 = functools.partial(VOPC, VOPCOp.V_CMP_O_F32) +v_cmp_u_f32_e32 = functools.partial(VOPC, VOPCOp.V_CMP_U_F32) +v_cmp_nge_f32_e32 = functools.partial(VOPC, VOPCOp.V_CMP_NGE_F32) +v_cmp_nlg_f32_e32 = functools.partial(VOPC, VOPCOp.V_CMP_NLG_F32) +v_cmp_ngt_f32_e32 = functools.partial(VOPC, VOPCOp.V_CMP_NGT_F32) +v_cmp_nle_f32_e32 = functools.partial(VOPC, VOPCOp.V_CMP_NLE_F32) +v_cmp_neq_f32_e32 = functools.partial(VOPC, VOPCOp.V_CMP_NEQ_F32) +v_cmp_nlt_f32_e32 = functools.partial(VOPC, VOPCOp.V_CMP_NLT_F32) +v_cmp_tru_f32_e32 = functools.partial(VOPC, VOPCOp.V_CMP_TRU_F32) +v_cmpx_f_f32_e32 = functools.partial(VOPC, VOPCOp.V_CMPX_F_F32) +v_cmpx_lt_f32_e32 = functools.partial(VOPC, VOPCOp.V_CMPX_LT_F32) +v_cmpx_eq_f32_e32 = functools.partial(VOPC, VOPCOp.V_CMPX_EQ_F32) +v_cmpx_le_f32_e32 = functools.partial(VOPC, VOPCOp.V_CMPX_LE_F32) +v_cmpx_gt_f32_e32 = functools.partial(VOPC, VOPCOp.V_CMPX_GT_F32) +v_cmpx_lg_f32_e32 = functools.partial(VOPC, VOPCOp.V_CMPX_LG_F32) +v_cmpx_ge_f32_e32 = functools.partial(VOPC, VOPCOp.V_CMPX_GE_F32) +v_cmpx_o_f32_e32 = functools.partial(VOPC, VOPCOp.V_CMPX_O_F32) +v_cmpx_u_f32_e32 = functools.partial(VOPC, VOPCOp.V_CMPX_U_F32) +v_cmpx_nge_f32_e32 = functools.partial(VOPC, VOPCOp.V_CMPX_NGE_F32) +v_cmpx_nlg_f32_e32 = functools.partial(VOPC, VOPCOp.V_CMPX_NLG_F32) +v_cmpx_ngt_f32_e32 = functools.partial(VOPC, VOPCOp.V_CMPX_NGT_F32) +v_cmpx_nle_f32_e32 = functools.partial(VOPC, VOPCOp.V_CMPX_NLE_F32) +v_cmpx_neq_f32_e32 = functools.partial(VOPC, VOPCOp.V_CMPX_NEQ_F32) +v_cmpx_nlt_f32_e32 = functools.partial(VOPC, VOPCOp.V_CMPX_NLT_F32) +v_cmpx_tru_f32_e32 = functools.partial(VOPC, VOPCOp.V_CMPX_TRU_F32) +v_cmp_f_f64_e32 = functools.partial(VOPC, VOPCOp.V_CMP_F_F64) +v_cmp_lt_f64_e32 = functools.partial(VOPC, VOPCOp.V_CMP_LT_F64) +v_cmp_eq_f64_e32 = functools.partial(VOPC, VOPCOp.V_CMP_EQ_F64) +v_cmp_le_f64_e32 = functools.partial(VOPC, VOPCOp.V_CMP_LE_F64) +v_cmp_gt_f64_e32 = functools.partial(VOPC, VOPCOp.V_CMP_GT_F64) +v_cmp_lg_f64_e32 = functools.partial(VOPC, VOPCOp.V_CMP_LG_F64) +v_cmp_ge_f64_e32 = functools.partial(VOPC, VOPCOp.V_CMP_GE_F64) +v_cmp_o_f64_e32 = functools.partial(VOPC, VOPCOp.V_CMP_O_F64) +v_cmp_u_f64_e32 = functools.partial(VOPC, VOPCOp.V_CMP_U_F64) +v_cmp_nge_f64_e32 = functools.partial(VOPC, VOPCOp.V_CMP_NGE_F64) +v_cmp_nlg_f64_e32 = functools.partial(VOPC, VOPCOp.V_CMP_NLG_F64) +v_cmp_ngt_f64_e32 = functools.partial(VOPC, VOPCOp.V_CMP_NGT_F64) +v_cmp_nle_f64_e32 = functools.partial(VOPC, VOPCOp.V_CMP_NLE_F64) +v_cmp_neq_f64_e32 = functools.partial(VOPC, VOPCOp.V_CMP_NEQ_F64) +v_cmp_nlt_f64_e32 = functools.partial(VOPC, VOPCOp.V_CMP_NLT_F64) +v_cmp_tru_f64_e32 = functools.partial(VOPC, VOPCOp.V_CMP_TRU_F64) +v_cmpx_f_f64_e32 = functools.partial(VOPC, VOPCOp.V_CMPX_F_F64) +v_cmpx_lt_f64_e32 = functools.partial(VOPC, VOPCOp.V_CMPX_LT_F64) +v_cmpx_eq_f64_e32 = functools.partial(VOPC, VOPCOp.V_CMPX_EQ_F64) +v_cmpx_le_f64_e32 = functools.partial(VOPC, VOPCOp.V_CMPX_LE_F64) +v_cmpx_gt_f64_e32 = functools.partial(VOPC, VOPCOp.V_CMPX_GT_F64) +v_cmpx_lg_f64_e32 = functools.partial(VOPC, VOPCOp.V_CMPX_LG_F64) +v_cmpx_ge_f64_e32 = functools.partial(VOPC, VOPCOp.V_CMPX_GE_F64) +v_cmpx_o_f64_e32 = functools.partial(VOPC, VOPCOp.V_CMPX_O_F64) +v_cmpx_u_f64_e32 = functools.partial(VOPC, VOPCOp.V_CMPX_U_F64) +v_cmpx_nge_f64_e32 = functools.partial(VOPC, VOPCOp.V_CMPX_NGE_F64) +v_cmpx_nlg_f64_e32 = functools.partial(VOPC, VOPCOp.V_CMPX_NLG_F64) +v_cmpx_ngt_f64_e32 = functools.partial(VOPC, VOPCOp.V_CMPX_NGT_F64) +v_cmpx_nle_f64_e32 = functools.partial(VOPC, VOPCOp.V_CMPX_NLE_F64) +v_cmpx_neq_f64_e32 = functools.partial(VOPC, VOPCOp.V_CMPX_NEQ_F64) +v_cmpx_nlt_f64_e32 = functools.partial(VOPC, VOPCOp.V_CMPX_NLT_F64) +v_cmpx_tru_f64_e32 = functools.partial(VOPC, VOPCOp.V_CMPX_TRU_F64) +v_cmp_f_i16_e32 = functools.partial(VOPC, VOPCOp.V_CMP_F_I16) +v_cmp_lt_i16_e32 = functools.partial(VOPC, VOPCOp.V_CMP_LT_I16) +v_cmp_eq_i16_e32 = functools.partial(VOPC, VOPCOp.V_CMP_EQ_I16) +v_cmp_le_i16_e32 = functools.partial(VOPC, VOPCOp.V_CMP_LE_I16) +v_cmp_gt_i16_e32 = functools.partial(VOPC, VOPCOp.V_CMP_GT_I16) +v_cmp_ne_i16_e32 = functools.partial(VOPC, VOPCOp.V_CMP_NE_I16) +v_cmp_ge_i16_e32 = functools.partial(VOPC, VOPCOp.V_CMP_GE_I16) +v_cmp_t_i16_e32 = functools.partial(VOPC, VOPCOp.V_CMP_T_I16) +v_cmp_f_u16_e32 = functools.partial(VOPC, VOPCOp.V_CMP_F_U16) +v_cmp_lt_u16_e32 = functools.partial(VOPC, VOPCOp.V_CMP_LT_U16) +v_cmp_eq_u16_e32 = functools.partial(VOPC, VOPCOp.V_CMP_EQ_U16) +v_cmp_le_u16_e32 = functools.partial(VOPC, VOPCOp.V_CMP_LE_U16) +v_cmp_gt_u16_e32 = functools.partial(VOPC, VOPCOp.V_CMP_GT_U16) +v_cmp_ne_u16_e32 = functools.partial(VOPC, VOPCOp.V_CMP_NE_U16) +v_cmp_ge_u16_e32 = functools.partial(VOPC, VOPCOp.V_CMP_GE_U16) +v_cmp_t_u16_e32 = functools.partial(VOPC, VOPCOp.V_CMP_T_U16) +v_cmpx_f_i16_e32 = functools.partial(VOPC, VOPCOp.V_CMPX_F_I16) +v_cmpx_lt_i16_e32 = functools.partial(VOPC, VOPCOp.V_CMPX_LT_I16) +v_cmpx_eq_i16_e32 = functools.partial(VOPC, VOPCOp.V_CMPX_EQ_I16) +v_cmpx_le_i16_e32 = functools.partial(VOPC, VOPCOp.V_CMPX_LE_I16) +v_cmpx_gt_i16_e32 = functools.partial(VOPC, VOPCOp.V_CMPX_GT_I16) +v_cmpx_ne_i16_e32 = functools.partial(VOPC, VOPCOp.V_CMPX_NE_I16) +v_cmpx_ge_i16_e32 = functools.partial(VOPC, VOPCOp.V_CMPX_GE_I16) +v_cmpx_t_i16_e32 = functools.partial(VOPC, VOPCOp.V_CMPX_T_I16) +v_cmpx_f_u16_e32 = functools.partial(VOPC, VOPCOp.V_CMPX_F_U16) +v_cmpx_lt_u16_e32 = functools.partial(VOPC, VOPCOp.V_CMPX_LT_U16) +v_cmpx_eq_u16_e32 = functools.partial(VOPC, VOPCOp.V_CMPX_EQ_U16) +v_cmpx_le_u16_e32 = functools.partial(VOPC, VOPCOp.V_CMPX_LE_U16) +v_cmpx_gt_u16_e32 = functools.partial(VOPC, VOPCOp.V_CMPX_GT_U16) +v_cmpx_ne_u16_e32 = functools.partial(VOPC, VOPCOp.V_CMPX_NE_U16) +v_cmpx_ge_u16_e32 = functools.partial(VOPC, VOPCOp.V_CMPX_GE_U16) +v_cmpx_t_u16_e32 = functools.partial(VOPC, VOPCOp.V_CMPX_T_U16) +v_cmp_f_i32_e32 = functools.partial(VOPC, VOPCOp.V_CMP_F_I32) +v_cmp_lt_i32_e32 = functools.partial(VOPC, VOPCOp.V_CMP_LT_I32) +v_cmp_eq_i32_e32 = functools.partial(VOPC, VOPCOp.V_CMP_EQ_I32) +v_cmp_le_i32_e32 = functools.partial(VOPC, VOPCOp.V_CMP_LE_I32) +v_cmp_gt_i32_e32 = functools.partial(VOPC, VOPCOp.V_CMP_GT_I32) +v_cmp_ne_i32_e32 = functools.partial(VOPC, VOPCOp.V_CMP_NE_I32) +v_cmp_ge_i32_e32 = functools.partial(VOPC, VOPCOp.V_CMP_GE_I32) +v_cmp_t_i32_e32 = functools.partial(VOPC, VOPCOp.V_CMP_T_I32) +v_cmp_f_u32_e32 = functools.partial(VOPC, VOPCOp.V_CMP_F_U32) +v_cmp_lt_u32_e32 = functools.partial(VOPC, VOPCOp.V_CMP_LT_U32) +v_cmp_eq_u32_e32 = functools.partial(VOPC, VOPCOp.V_CMP_EQ_U32) +v_cmp_le_u32_e32 = functools.partial(VOPC, VOPCOp.V_CMP_LE_U32) +v_cmp_gt_u32_e32 = functools.partial(VOPC, VOPCOp.V_CMP_GT_U32) +v_cmp_ne_u32_e32 = functools.partial(VOPC, VOPCOp.V_CMP_NE_U32) +v_cmp_ge_u32_e32 = functools.partial(VOPC, VOPCOp.V_CMP_GE_U32) +v_cmp_t_u32_e32 = functools.partial(VOPC, VOPCOp.V_CMP_T_U32) +v_cmpx_f_i32_e32 = functools.partial(VOPC, VOPCOp.V_CMPX_F_I32) +v_cmpx_lt_i32_e32 = functools.partial(VOPC, VOPCOp.V_CMPX_LT_I32) +v_cmpx_eq_i32_e32 = functools.partial(VOPC, VOPCOp.V_CMPX_EQ_I32) +v_cmpx_le_i32_e32 = functools.partial(VOPC, VOPCOp.V_CMPX_LE_I32) +v_cmpx_gt_i32_e32 = functools.partial(VOPC, VOPCOp.V_CMPX_GT_I32) +v_cmpx_ne_i32_e32 = functools.partial(VOPC, VOPCOp.V_CMPX_NE_I32) +v_cmpx_ge_i32_e32 = functools.partial(VOPC, VOPCOp.V_CMPX_GE_I32) +v_cmpx_t_i32_e32 = functools.partial(VOPC, VOPCOp.V_CMPX_T_I32) +v_cmpx_f_u32_e32 = functools.partial(VOPC, VOPCOp.V_CMPX_F_U32) +v_cmpx_lt_u32_e32 = functools.partial(VOPC, VOPCOp.V_CMPX_LT_U32) +v_cmpx_eq_u32_e32 = functools.partial(VOPC, VOPCOp.V_CMPX_EQ_U32) +v_cmpx_le_u32_e32 = functools.partial(VOPC, VOPCOp.V_CMPX_LE_U32) +v_cmpx_gt_u32_e32 = functools.partial(VOPC, VOPCOp.V_CMPX_GT_U32) +v_cmpx_ne_u32_e32 = functools.partial(VOPC, VOPCOp.V_CMPX_NE_U32) +v_cmpx_ge_u32_e32 = functools.partial(VOPC, VOPCOp.V_CMPX_GE_U32) +v_cmpx_t_u32_e32 = functools.partial(VOPC, VOPCOp.V_CMPX_T_U32) +v_cmp_f_i64_e32 = functools.partial(VOPC, VOPCOp.V_CMP_F_I64) +v_cmp_lt_i64_e32 = functools.partial(VOPC, VOPCOp.V_CMP_LT_I64) +v_cmp_eq_i64_e32 = functools.partial(VOPC, VOPCOp.V_CMP_EQ_I64) +v_cmp_le_i64_e32 = functools.partial(VOPC, VOPCOp.V_CMP_LE_I64) +v_cmp_gt_i64_e32 = functools.partial(VOPC, VOPCOp.V_CMP_GT_I64) +v_cmp_ne_i64_e32 = functools.partial(VOPC, VOPCOp.V_CMP_NE_I64) +v_cmp_ge_i64_e32 = functools.partial(VOPC, VOPCOp.V_CMP_GE_I64) +v_cmp_t_i64_e32 = functools.partial(VOPC, VOPCOp.V_CMP_T_I64) +v_cmp_f_u64_e32 = functools.partial(VOPC, VOPCOp.V_CMP_F_U64) +v_cmp_lt_u64_e32 = functools.partial(VOPC, VOPCOp.V_CMP_LT_U64) +v_cmp_eq_u64_e32 = functools.partial(VOPC, VOPCOp.V_CMP_EQ_U64) +v_cmp_le_u64_e32 = functools.partial(VOPC, VOPCOp.V_CMP_LE_U64) +v_cmp_gt_u64_e32 = functools.partial(VOPC, VOPCOp.V_CMP_GT_U64) +v_cmp_ne_u64_e32 = functools.partial(VOPC, VOPCOp.V_CMP_NE_U64) +v_cmp_ge_u64_e32 = functools.partial(VOPC, VOPCOp.V_CMP_GE_U64) +v_cmp_t_u64_e32 = functools.partial(VOPC, VOPCOp.V_CMP_T_U64) +v_cmpx_f_i64_e32 = functools.partial(VOPC, VOPCOp.V_CMPX_F_I64) +v_cmpx_lt_i64_e32 = functools.partial(VOPC, VOPCOp.V_CMPX_LT_I64) +v_cmpx_eq_i64_e32 = functools.partial(VOPC, VOPCOp.V_CMPX_EQ_I64) +v_cmpx_le_i64_e32 = functools.partial(VOPC, VOPCOp.V_CMPX_LE_I64) +v_cmpx_gt_i64_e32 = functools.partial(VOPC, VOPCOp.V_CMPX_GT_I64) +v_cmpx_ne_i64_e32 = functools.partial(VOPC, VOPCOp.V_CMPX_NE_I64) +v_cmpx_ge_i64_e32 = functools.partial(VOPC, VOPCOp.V_CMPX_GE_I64) +v_cmpx_t_i64_e32 = functools.partial(VOPC, VOPCOp.V_CMPX_T_I64) +v_cmpx_f_u64_e32 = functools.partial(VOPC, VOPCOp.V_CMPX_F_U64) +v_cmpx_lt_u64_e32 = functools.partial(VOPC, VOPCOp.V_CMPX_LT_U64) +v_cmpx_eq_u64_e32 = functools.partial(VOPC, VOPCOp.V_CMPX_EQ_U64) +v_cmpx_le_u64_e32 = functools.partial(VOPC, VOPCOp.V_CMPX_LE_U64) +v_cmpx_gt_u64_e32 = functools.partial(VOPC, VOPCOp.V_CMPX_GT_U64) +v_cmpx_ne_u64_e32 = functools.partial(VOPC, VOPCOp.V_CMPX_NE_U64) +v_cmpx_ge_u64_e32 = functools.partial(VOPC, VOPCOp.V_CMPX_GE_U64) +v_cmpx_t_u64_e32 = functools.partial(VOPC, VOPCOp.V_CMPX_T_U64) +cdna4_e32 = functools.partial(VOPC, VOPCOp.CDNA4) + +S_ADD_U32 = SrcEnum.S_ADD_U32 +S_SUB_U32 = SrcEnum.S_SUB_U32 +S_ADD_I32 = SrcEnum.S_ADD_I32 +S_SUB_I32 = SrcEnum.S_SUB_I32 +S_ADDC_U32 = SrcEnum.S_ADDC_U32 +S_SUBB_U32 = SrcEnum.S_SUBB_U32 +S_MIN_I32 = SrcEnum.S_MIN_I32 +FLAT_SCRATCH_LO = SrcEnum.FLAT_SCRATCH_LO +FLAT_SCRATCH_HI = SrcEnum.FLAT_SCRATCH_HI +XNACK_MASK_LO = SrcEnum.XNACK_MASK_LO +XNACK_MASK_HI = SrcEnum.XNACK_MASK_HI +VCC_LO = SrcEnum.VCC_LO +VCC_HI = SrcEnum.VCC_HI +M0 = SrcEnum.M0 +EXEC_LO = SrcEnum.EXEC_LO +EXEC_HI = SrcEnum.EXEC_HI +ZERO = SrcEnum.ZERO +DPP8FI = SrcEnum.DPP8FI +SHARED_BASE = SrcEnum.SHARED_BASE +SHARED_LIMIT = SrcEnum.SHARED_LIMIT +PRIVATE_BASE = SrcEnum.PRIVATE_BASE +PRIVATE_LIMIT = SrcEnum.PRIVATE_LIMIT +RESERVED = SrcEnum.RESERVED +POS_HALF = SrcEnum.POS_HALF +NEG_HALF = SrcEnum.NEG_HALF +POS_ONE = SrcEnum.POS_ONE +NEG_ONE = SrcEnum.NEG_ONE +POS_TWO = SrcEnum.POS_TWO +NEG_TWO = SrcEnum.NEG_TWO +POS_FOUR = SrcEnum.POS_FOUR +NEG_FOUR = SrcEnum.NEG_FOUR +INV_2PI = SrcEnum.INV_2PI +VCCZ = SrcEnum.VCCZ +EXECZ = SrcEnum.EXECZ +SCC = SrcEnum.SCC +LDS_DIRECT = SrcEnum.LDS_DIRECT \ No newline at end of file diff --git a/extra/assembly/amd/autogen/rdna3/__init__.py b/extra/assembly/amd/autogen/rdna3/__init__.py index 0f342cc61b..e69de29bb2 100644 --- a/extra/assembly/amd/autogen/rdna3/__init__.py +++ b/extra/assembly/amd/autogen/rdna3/__init__.py @@ -1,3382 +0,0 @@ -# autogenerated from AMD RDNA3.5 ISA PDF by pdf.py - do not edit -from enum import IntEnum -from typing import Annotated -from extra.assembly.amd.dsl import bits, BitField, Inst32, Inst64, SGPR, VGPR, TTMP as TTMP, s as s, v as v, ttmp as ttmp, SSrc, Src, SImm, Imm, VDSTYEnc, SGPRField, VGPRField -import functools - -class SrcEnum(IntEnum): - VCC_LO = 106 - VCC_HI = 107 - NULL = 124 - M0 = 125 - EXEC_LO = 126 - EXEC_HI = 127 - ZERO = 128 - DPP8 = 233 - DPP8FI = 234 - SHARED_BASE = 235 - SHARED_LIMIT = 236 - PRIVATE_BASE = 237 - PRIVATE_LIMIT = 238 - POS_HALF = 240 - NEG_HALF = 241 - POS_ONE = 242 - NEG_ONE = 243 - POS_TWO = 244 - NEG_TWO = 245 - POS_FOUR = 246 - NEG_FOUR = 247 - INV_2PI = 248 - DPP16 = 250 - VCCZ = 251 - EXECZ = 252 - SCC = 253 - LDS_DIRECT = 254 - -class DSOp(IntEnum): - DS_ADD_U32 = 0 - DS_SUB_U32 = 1 - DS_RSUB_U32 = 2 - DS_INC_U32 = 3 - DS_DEC_U32 = 4 - DS_MIN_I32 = 5 - DS_MAX_I32 = 6 - DS_MIN_U32 = 7 - DS_MAX_U32 = 8 - DS_AND_B32 = 9 - DS_OR_B32 = 10 - DS_XOR_B32 = 11 - DS_MSKOR_B32 = 12 - DS_STORE_B32 = 13 - DS_STORE_2ADDR_B32 = 14 - DS_STORE_2ADDR_STRIDE64_B32 = 15 - DS_CMPSTORE_B32 = 16 - DS_CMPSTORE_F32 = 17 - DS_MIN_F32 = 18 - DS_MAX_F32 = 19 - DS_NOP = 20 - DS_ADD_F32 = 21 - DS_GWS_SEMA_RELEASE_ALL = 24 - DS_GWS_INIT = 25 - DS_GWS_SEMA_V = 26 - DS_GWS_SEMA_BR = 27 - DS_GWS_SEMA_P = 28 - DS_GWS_BARRIER = 29 - DS_STORE_B8 = 30 - DS_STORE_B16 = 31 - DS_ADD_RTN_U32 = 32 - DS_SUB_RTN_U32 = 33 - DS_RSUB_RTN_U32 = 34 - DS_INC_RTN_U32 = 35 - DS_DEC_RTN_U32 = 36 - DS_MIN_RTN_I32 = 37 - DS_MAX_RTN_I32 = 38 - DS_MIN_RTN_U32 = 39 - DS_MAX_RTN_U32 = 40 - DS_AND_RTN_B32 = 41 - DS_OR_RTN_B32 = 42 - DS_XOR_RTN_B32 = 43 - DS_MSKOR_RTN_B32 = 44 - DS_STOREXCHG_RTN_B32 = 45 - DS_STOREXCHG_2ADDR_RTN_B32 = 46 - DS_STOREXCHG_2ADDR_STRIDE64_RTN_B32 = 47 - DS_CMPSTORE_RTN_B32 = 48 - DS_CMPSTORE_RTN_F32 = 49 - DS_MIN_RTN_F32 = 50 - DS_MAX_RTN_F32 = 51 - DS_WRAP_RTN_B32 = 52 - DS_SWIZZLE_B32 = 53 - DS_LOAD_B32 = 54 - DS_LOAD_2ADDR_B32 = 55 - DS_LOAD_2ADDR_STRIDE64_B32 = 56 - DS_LOAD_I8 = 57 - DS_LOAD_U8 = 58 - DS_LOAD_I16 = 59 - DS_LOAD_U16 = 60 - DS_CONSUME = 61 - DS_APPEND = 62 - DS_ORDERED_COUNT = 63 - DS_ADD_U64 = 64 - DS_SUB_U64 = 65 - DS_RSUB_U64 = 66 - DS_INC_U64 = 67 - DS_DEC_U64 = 68 - DS_MIN_I64 = 69 - DS_MAX_I64 = 70 - DS_MIN_U64 = 71 - DS_MAX_U64 = 72 - DS_AND_B64 = 73 - DS_OR_B64 = 74 - DS_XOR_B64 = 75 - DS_MSKOR_B64 = 76 - DS_STORE_B64 = 77 - DS_STORE_2ADDR_B64 = 78 - DS_STORE_2ADDR_STRIDE64_B64 = 79 - DS_CMPSTORE_B64 = 80 - DS_CMPSTORE_F64 = 81 - DS_MIN_F64 = 82 - DS_MAX_F64 = 83 - DS_ADD_RTN_U64 = 96 - DS_SUB_RTN_U64 = 97 - DS_RSUB_RTN_U64 = 98 - DS_INC_RTN_U64 = 99 - DS_DEC_RTN_U64 = 100 - DS_MIN_RTN_I64 = 101 - DS_MAX_RTN_I64 = 102 - DS_MIN_RTN_U64 = 103 - DS_MAX_RTN_U64 = 104 - DS_AND_RTN_B64 = 105 - DS_OR_RTN_B64 = 106 - DS_XOR_RTN_B64 = 107 - DS_MSKOR_RTN_B64 = 108 - DS_STOREXCHG_RTN_B64 = 109 - DS_STOREXCHG_2ADDR_RTN_B64 = 110 - DS_STOREXCHG_2ADDR_STRIDE64_RTN_B64 = 111 - DS_CMPSTORE_RTN_B64 = 112 - DS_CMPSTORE_RTN_F64 = 113 - DS_MIN_RTN_F64 = 114 - DS_MAX_RTN_F64 = 115 - DS_LOAD_B64 = 118 - DS_LOAD_2ADDR_B64 = 119 - DS_LOAD_2ADDR_STRIDE64_B64 = 120 - DS_ADD_RTN_F32 = 121 - DS_ADD_GS_REG_RTN = 122 - DS_SUB_GS_REG_RTN = 123 - DS_CONDXCHG32_RTN_B64 = 126 - DS_STORE_B8_D16_HI = 160 - DS_STORE_B16_D16_HI = 161 - DS_LOAD_U8_D16 = 162 - DS_LOAD_U8_D16_HI = 163 - DS_LOAD_I8_D16 = 164 - DS_LOAD_I8_D16_HI = 165 - DS_LOAD_U16_D16 = 166 - DS_LOAD_U16_D16_HI = 167 - DS_BVH_STACK_RTN_B32 = 173 - DS_STORE_ADDTID_B32 = 176 - DS_LOAD_ADDTID_B32 = 177 - DS_PERMUTE_B32 = 178 - DS_BPERMUTE_B32 = 179 - DS_STORE_B96 = 222 - DS_STORE_B128 = 223 - DS_LOAD_B96 = 254 - DS_LOAD_B128 = 255 - -class FLATOp(IntEnum): - FLAT_LOAD_U8 = 16 - FLAT_LOAD_I8 = 17 - FLAT_LOAD_U16 = 18 - FLAT_LOAD_I16 = 19 - FLAT_LOAD_B32 = 20 - FLAT_LOAD_B64 = 21 - FLAT_LOAD_B96 = 22 - FLAT_LOAD_B128 = 23 - FLAT_STORE_B8 = 24 - FLAT_STORE_B16 = 25 - FLAT_STORE_B32 = 26 - FLAT_STORE_B64 = 27 - FLAT_STORE_B96 = 28 - FLAT_STORE_B128 = 29 - FLAT_LOAD_D16_U8 = 30 - FLAT_LOAD_D16_I8 = 31 - FLAT_LOAD_D16_B16 = 32 - FLAT_LOAD_D16_HI_U8 = 33 - FLAT_LOAD_D16_HI_I8 = 34 - FLAT_LOAD_D16_HI_B16 = 35 - FLAT_STORE_D16_HI_B8 = 36 - FLAT_STORE_D16_HI_B16 = 37 - GLOBAL_LOAD_ADDTID_B32 = 40 - GLOBAL_STORE_ADDTID_B32 = 41 - FLAT_ATOMIC_SWAP_B32 = 51 - FLAT_ATOMIC_CMPSWAP_B32 = 52 - FLAT_ATOMIC_ADD_U32 = 53 - FLAT_ATOMIC_SUB_U32 = 54 - FLAT_ATOMIC_CSUB_U32 = 55 - FLAT_ATOMIC_MIN_I32 = 56 - FLAT_ATOMIC_MIN_U32 = 57 - FLAT_ATOMIC_MAX_I32 = 58 - FLAT_ATOMIC_MAX_U32 = 59 - FLAT_ATOMIC_AND_B32 = 60 - FLAT_ATOMIC_OR_B32 = 61 - FLAT_ATOMIC_XOR_B32 = 62 - FLAT_ATOMIC_INC_U32 = 63 - FLAT_ATOMIC_DEC_U32 = 64 - FLAT_ATOMIC_SWAP_B64 = 65 - FLAT_ATOMIC_CMPSWAP_B64 = 66 - FLAT_ATOMIC_ADD_U64 = 67 - FLAT_ATOMIC_SUB_U64 = 68 - FLAT_ATOMIC_MIN_I64 = 69 - FLAT_ATOMIC_MIN_U64 = 70 - FLAT_ATOMIC_MAX_I64 = 71 - FLAT_ATOMIC_MAX_U64 = 72 - FLAT_ATOMIC_AND_B64 = 73 - FLAT_ATOMIC_OR_B64 = 74 - FLAT_ATOMIC_XOR_B64 = 75 - FLAT_ATOMIC_INC_U64 = 76 - FLAT_ATOMIC_DEC_U64 = 77 - FLAT_ATOMIC_CMPSWAP_F32 = 80 - FLAT_ATOMIC_MIN_F32 = 81 - FLAT_ATOMIC_MAX_F32 = 82 - FLAT_ATOMIC_ADD_F32 = 86 - -class GLOBALOp(IntEnum): - GLOBAL_LOAD_U8 = 16 - GLOBAL_LOAD_I8 = 17 - GLOBAL_LOAD_U16 = 18 - GLOBAL_LOAD_I16 = 19 - GLOBAL_LOAD_B32 = 20 - GLOBAL_LOAD_B64 = 21 - GLOBAL_LOAD_B96 = 22 - GLOBAL_LOAD_B128 = 23 - GLOBAL_STORE_B8 = 24 - GLOBAL_STORE_B16 = 25 - GLOBAL_STORE_B32 = 26 - GLOBAL_STORE_B64 = 27 - GLOBAL_STORE_B96 = 28 - GLOBAL_STORE_B128 = 29 - GLOBAL_LOAD_D16_U8 = 30 - GLOBAL_LOAD_D16_I8 = 31 - GLOBAL_LOAD_D16_B16 = 32 - GLOBAL_LOAD_D16_HI_U8 = 33 - GLOBAL_LOAD_D16_HI_I8 = 34 - GLOBAL_LOAD_D16_HI_B16 = 35 - GLOBAL_STORE_D16_HI_B8 = 36 - GLOBAL_STORE_D16_HI_B16 = 37 - GLOBAL_LOAD_ADDTID_B32 = 40 - GLOBAL_STORE_ADDTID_B32 = 41 - GLOBAL_ATOMIC_SWAP_B32 = 51 - GLOBAL_ATOMIC_CMPSWAP_B32 = 52 - GLOBAL_ATOMIC_ADD_U32 = 53 - GLOBAL_ATOMIC_SUB_U32 = 54 - GLOBAL_ATOMIC_CSUB_U32 = 55 - GLOBAL_ATOMIC_MIN_I32 = 56 - GLOBAL_ATOMIC_MIN_U32 = 57 - GLOBAL_ATOMIC_MAX_I32 = 58 - GLOBAL_ATOMIC_MAX_U32 = 59 - GLOBAL_ATOMIC_AND_B32 = 60 - GLOBAL_ATOMIC_OR_B32 = 61 - GLOBAL_ATOMIC_XOR_B32 = 62 - GLOBAL_ATOMIC_INC_U32 = 63 - GLOBAL_ATOMIC_DEC_U32 = 64 - GLOBAL_ATOMIC_SWAP_B64 = 65 - GLOBAL_ATOMIC_CMPSWAP_B64 = 66 - GLOBAL_ATOMIC_ADD_U64 = 67 - GLOBAL_ATOMIC_SUB_U64 = 68 - GLOBAL_ATOMIC_MIN_I64 = 69 - GLOBAL_ATOMIC_MIN_U64 = 70 - GLOBAL_ATOMIC_MAX_I64 = 71 - GLOBAL_ATOMIC_MAX_U64 = 72 - GLOBAL_ATOMIC_AND_B64 = 73 - GLOBAL_ATOMIC_OR_B64 = 74 - GLOBAL_ATOMIC_XOR_B64 = 75 - GLOBAL_ATOMIC_INC_U64 = 76 - GLOBAL_ATOMIC_DEC_U64 = 77 - GLOBAL_ATOMIC_CMPSWAP_F32 = 80 - GLOBAL_ATOMIC_MIN_F32 = 81 - GLOBAL_ATOMIC_MAX_F32 = 82 - GLOBAL_ATOMIC_ADD_F32 = 86 - -class MIMGOp(IntEnum): - IMAGE_LOAD = 0 - IMAGE_LOAD_MIP = 1 - IMAGE_LOAD_PCK = 2 - IMAGE_LOAD_PCK_SGN = 3 - IMAGE_LOAD_MIP_PCK = 4 - IMAGE_LOAD_MIP_PCK_SGN = 5 - IMAGE_STORE = 6 - IMAGE_STORE_MIP = 7 - IMAGE_STORE_PCK = 8 - IMAGE_STORE_MIP_PCK = 9 - IMAGE_ATOMIC_SWAP = 10 - IMAGE_ATOMIC_CMPSWAP = 11 - IMAGE_ATOMIC_ADD = 12 - IMAGE_ATOMIC_SUB = 13 - IMAGE_ATOMIC_SMIN = 14 - IMAGE_ATOMIC_UMIN = 15 - IMAGE_ATOMIC_SMAX = 16 - IMAGE_ATOMIC_UMAX = 17 - IMAGE_ATOMIC_AND = 18 - IMAGE_ATOMIC_OR = 19 - IMAGE_ATOMIC_XOR = 20 - IMAGE_ATOMIC_INC = 21 - IMAGE_ATOMIC_DEC = 22 - IMAGE_GET_RESINFO = 23 - IMAGE_MSAA_LOAD = 24 - IMAGE_BVH_INTERSECT_RAY = 25 - IMAGE_BVH64_INTERSECT_RAY = 26 - IMAGE_SAMPLE = 27 - IMAGE_SAMPLE_D = 28 - IMAGE_SAMPLE_L = 29 - IMAGE_SAMPLE_B = 30 - IMAGE_SAMPLE_LZ = 31 - IMAGE_SAMPLE_C = 32 - IMAGE_SAMPLE_C_D = 33 - IMAGE_SAMPLE_C_L = 34 - IMAGE_SAMPLE_C_B = 35 - IMAGE_SAMPLE_C_LZ = 36 - IMAGE_SAMPLE_O = 37 - IMAGE_SAMPLE_D_O = 38 - IMAGE_SAMPLE_L_O = 39 - IMAGE_SAMPLE_B_O = 40 - IMAGE_SAMPLE_LZ_O = 41 - IMAGE_SAMPLE_C_O = 42 - IMAGE_SAMPLE_C_D_O = 43 - IMAGE_SAMPLE_C_L_O = 44 - IMAGE_SAMPLE_C_B_O = 45 - IMAGE_SAMPLE_C_LZ_O = 46 - IMAGE_GATHER4 = 47 - IMAGE_GATHER4_L = 48 - IMAGE_GATHER4_B = 49 - IMAGE_GATHER4_LZ = 50 - IMAGE_GATHER4_C = 51 - IMAGE_GATHER4_C_LZ = 52 - IMAGE_GATHER4_O = 53 - IMAGE_GATHER4_LZ_O = 54 - IMAGE_GATHER4_C_LZ_O = 55 - IMAGE_GET_LOD = 56 - IMAGE_SAMPLE_D_G16 = 57 - IMAGE_SAMPLE_C_D_G16 = 58 - IMAGE_SAMPLE_D_O_G16 = 59 - IMAGE_SAMPLE_C_D_O_G16 = 60 - IMAGE_SAMPLE_CL = 64 - IMAGE_SAMPLE_D_CL = 65 - IMAGE_SAMPLE_B_CL = 66 - IMAGE_SAMPLE_C_CL = 67 - IMAGE_SAMPLE_C_D_CL = 68 - IMAGE_SAMPLE_C_B_CL = 69 - IMAGE_SAMPLE_CL_O = 70 - IMAGE_SAMPLE_D_CL_O = 71 - IMAGE_SAMPLE_B_CL_O = 72 - IMAGE_SAMPLE_C_CL_O = 73 - IMAGE_SAMPLE_C_D_CL_O = 74 - IMAGE_SAMPLE_C_B_CL_O = 75 - IMAGE_SAMPLE_C_D_CL_G16 = 84 - IMAGE_SAMPLE_D_CL_O_G16 = 85 - IMAGE_SAMPLE_C_D_CL_O_G16 = 86 - IMAGE_SAMPLE_D_CL_G16 = 95 - IMAGE_GATHER4_CL = 96 - IMAGE_GATHER4_B_CL = 97 - IMAGE_GATHER4_C_CL = 98 - IMAGE_GATHER4_C_L = 99 - IMAGE_GATHER4_C_B = 100 - IMAGE_GATHER4_C_B_CL = 101 - IMAGE_GATHER4H = 144 - -class MTBUFOp(IntEnum): - TBUFFER_LOAD_FORMAT_X = 0 - TBUFFER_LOAD_FORMAT_XY = 1 - TBUFFER_LOAD_FORMAT_XYZ = 2 - TBUFFER_LOAD_FORMAT_XYZW = 3 - TBUFFER_STORE_FORMAT_X = 4 - TBUFFER_STORE_FORMAT_XY = 5 - TBUFFER_STORE_FORMAT_XYZ = 6 - TBUFFER_STORE_FORMAT_XYZW = 7 - TBUFFER_LOAD_D16_FORMAT_X = 8 - TBUFFER_LOAD_D16_FORMAT_XY = 9 - TBUFFER_LOAD_D16_FORMAT_XYZ = 10 - TBUFFER_LOAD_D16_FORMAT_XYZW = 11 - TBUFFER_STORE_D16_FORMAT_X = 12 - TBUFFER_STORE_D16_FORMAT_XY = 13 - TBUFFER_STORE_D16_FORMAT_XYZ = 14 - TBUFFER_STORE_D16_FORMAT_XYZW = 15 - -class MUBUFOp(IntEnum): - BUFFER_LOAD_FORMAT_X = 0 - BUFFER_LOAD_FORMAT_XY = 1 - BUFFER_LOAD_FORMAT_XYZ = 2 - BUFFER_LOAD_FORMAT_XYZW = 3 - BUFFER_STORE_FORMAT_X = 4 - BUFFER_STORE_FORMAT_XY = 5 - BUFFER_STORE_FORMAT_XYZ = 6 - BUFFER_STORE_FORMAT_XYZW = 7 - BUFFER_LOAD_D16_FORMAT_X = 8 - BUFFER_LOAD_D16_FORMAT_XY = 9 - BUFFER_LOAD_D16_FORMAT_XYZ = 10 - BUFFER_LOAD_D16_FORMAT_XYZW = 11 - BUFFER_STORE_D16_FORMAT_X = 12 - BUFFER_STORE_D16_FORMAT_XY = 13 - BUFFER_STORE_D16_FORMAT_XYZ = 14 - BUFFER_STORE_D16_FORMAT_XYZW = 15 - BUFFER_LOAD_U8 = 16 - BUFFER_LOAD_I8 = 17 - BUFFER_LOAD_U16 = 18 - BUFFER_LOAD_I16 = 19 - BUFFER_LOAD_B32 = 20 - BUFFER_LOAD_B64 = 21 - BUFFER_LOAD_B96 = 22 - BUFFER_LOAD_B128 = 23 - BUFFER_STORE_B8 = 24 - BUFFER_STORE_B16 = 25 - BUFFER_STORE_B32 = 26 - BUFFER_STORE_B64 = 27 - BUFFER_STORE_B96 = 28 - BUFFER_STORE_B128 = 29 - BUFFER_LOAD_D16_U8 = 30 - BUFFER_LOAD_D16_I8 = 31 - BUFFER_LOAD_D16_B16 = 32 - BUFFER_LOAD_D16_HI_U8 = 33 - BUFFER_LOAD_D16_HI_I8 = 34 - BUFFER_LOAD_D16_HI_B16 = 35 - BUFFER_STORE_D16_HI_B8 = 36 - BUFFER_STORE_D16_HI_B16 = 37 - BUFFER_LOAD_D16_HI_FORMAT_X = 38 - BUFFER_STORE_D16_HI_FORMAT_X = 39 - BUFFER_GL0_INV = 43 - BUFFER_GL1_INV = 44 - BUFFER_ATOMIC_SWAP_B32 = 51 - BUFFER_ATOMIC_CMPSWAP_B32 = 52 - BUFFER_ATOMIC_ADD_U32 = 53 - BUFFER_ATOMIC_SUB_U32 = 54 - BUFFER_ATOMIC_CSUB_U32 = 55 - BUFFER_ATOMIC_MIN_I32 = 56 - BUFFER_ATOMIC_MIN_U32 = 57 - BUFFER_ATOMIC_MAX_I32 = 58 - BUFFER_ATOMIC_MAX_U32 = 59 - BUFFER_ATOMIC_AND_B32 = 60 - BUFFER_ATOMIC_OR_B32 = 61 - BUFFER_ATOMIC_XOR_B32 = 62 - BUFFER_ATOMIC_INC_U32 = 63 - BUFFER_ATOMIC_DEC_U32 = 64 - BUFFER_ATOMIC_SWAP_B64 = 65 - BUFFER_ATOMIC_CMPSWAP_B64 = 66 - BUFFER_ATOMIC_ADD_U64 = 67 - BUFFER_ATOMIC_SUB_U64 = 68 - BUFFER_ATOMIC_MIN_I64 = 69 - BUFFER_ATOMIC_MIN_U64 = 70 - BUFFER_ATOMIC_MAX_I64 = 71 - BUFFER_ATOMIC_MAX_U64 = 72 - BUFFER_ATOMIC_AND_B64 = 73 - BUFFER_ATOMIC_OR_B64 = 74 - BUFFER_ATOMIC_XOR_B64 = 75 - BUFFER_ATOMIC_INC_U64 = 76 - BUFFER_ATOMIC_DEC_U64 = 77 - BUFFER_ATOMIC_CMPSWAP_F32 = 80 - BUFFER_ATOMIC_MIN_F32 = 81 - BUFFER_ATOMIC_MAX_F32 = 82 - BUFFER_ATOMIC_ADD_F32 = 86 - -class SCRATCHOp(IntEnum): - SCRATCH_LOAD_U8 = 16 - SCRATCH_LOAD_I8 = 17 - SCRATCH_LOAD_U16 = 18 - SCRATCH_LOAD_I16 = 19 - SCRATCH_LOAD_B32 = 20 - SCRATCH_LOAD_B64 = 21 - SCRATCH_LOAD_B96 = 22 - SCRATCH_LOAD_B128 = 23 - SCRATCH_STORE_B8 = 24 - SCRATCH_STORE_B16 = 25 - SCRATCH_STORE_B32 = 26 - SCRATCH_STORE_B64 = 27 - SCRATCH_STORE_B96 = 28 - SCRATCH_STORE_B128 = 29 - SCRATCH_LOAD_D16_U8 = 30 - SCRATCH_LOAD_D16_I8 = 31 - SCRATCH_LOAD_D16_B16 = 32 - SCRATCH_LOAD_D16_HI_U8 = 33 - SCRATCH_LOAD_D16_HI_I8 = 34 - SCRATCH_LOAD_D16_HI_B16 = 35 - SCRATCH_STORE_D16_HI_B8 = 36 - SCRATCH_STORE_D16_HI_B16 = 37 - -class SMEMOp(IntEnum): - S_LOAD_B32 = 0 - S_LOAD_B64 = 1 - S_LOAD_B128 = 2 - S_LOAD_B256 = 3 - S_LOAD_B512 = 4 - S_BUFFER_LOAD_B32 = 8 - S_BUFFER_LOAD_B64 = 9 - S_BUFFER_LOAD_B128 = 10 - S_BUFFER_LOAD_B256 = 11 - S_BUFFER_LOAD_B512 = 12 - S_GL1_INV = 32 - S_DCACHE_INV = 33 - -class SOP1Op(IntEnum): - S_MOV_B32 = 0 - S_MOV_B64 = 1 - S_CMOV_B32 = 2 - S_CMOV_B64 = 3 - S_BREV_B32 = 4 - S_BREV_B64 = 5 - S_CTZ_I32_B32 = 8 - S_CTZ_I32_B64 = 9 - S_CLZ_I32_U32 = 10 - S_CLZ_I32_U64 = 11 - S_CLS_I32 = 12 - S_CLS_I32_I64 = 13 - S_SEXT_I32_I8 = 14 - S_SEXT_I32_I16 = 15 - S_BITSET0_B32 = 16 - S_BITSET0_B64 = 17 - S_BITSET1_B32 = 18 - S_BITSET1_B64 = 19 - S_BITREPLICATE_B64_B32 = 20 - S_ABS_I32 = 21 - S_BCNT0_I32_B32 = 22 - S_BCNT0_I32_B64 = 23 - S_BCNT1_I32_B32 = 24 - S_BCNT1_I32_B64 = 25 - S_QUADMASK_B32 = 26 - S_QUADMASK_B64 = 27 - S_WQM_B32 = 28 - S_WQM_B64 = 29 - S_NOT_B32 = 30 - S_NOT_B64 = 31 - S_AND_SAVEEXEC_B32 = 32 - S_AND_SAVEEXEC_B64 = 33 - S_OR_SAVEEXEC_B32 = 34 - S_OR_SAVEEXEC_B64 = 35 - S_XOR_SAVEEXEC_B32 = 36 - S_XOR_SAVEEXEC_B64 = 37 - S_NAND_SAVEEXEC_B32 = 38 - S_NAND_SAVEEXEC_B64 = 39 - S_NOR_SAVEEXEC_B32 = 40 - S_NOR_SAVEEXEC_B64 = 41 - S_XNOR_SAVEEXEC_B32 = 42 - S_XNOR_SAVEEXEC_B64 = 43 - S_AND_NOT0_SAVEEXEC_B32 = 44 - S_AND_NOT0_SAVEEXEC_B64 = 45 - S_OR_NOT0_SAVEEXEC_B32 = 46 - S_OR_NOT0_SAVEEXEC_B64 = 47 - S_AND_NOT1_SAVEEXEC_B32 = 48 - S_AND_NOT1_SAVEEXEC_B64 = 49 - S_OR_NOT1_SAVEEXEC_B32 = 50 - S_OR_NOT1_SAVEEXEC_B64 = 51 - S_AND_NOT0_WREXEC_B32 = 52 - S_AND_NOT0_WREXEC_B64 = 53 - S_AND_NOT1_WREXEC_B32 = 54 - S_AND_NOT1_WREXEC_B64 = 55 - S_MOVRELS_B32 = 64 - S_MOVRELS_B64 = 65 - S_MOVRELD_B32 = 66 - S_MOVRELD_B64 = 67 - S_MOVRELSD_2_B32 = 68 - S_GETPC_B64 = 71 - S_SETPC_B64 = 72 - S_SWAPPC_B64 = 73 - S_RFE_B64 = 74 - S_SENDMSG_RTN_B32 = 76 - S_SENDMSG_RTN_B64 = 77 - S_CEIL_F32 = 96 - S_FLOOR_F32 = 97 - S_TRUNC_F32 = 98 - S_RNDNE_F32 = 99 - S_CVT_F32_I32 = 100 - S_CVT_F32_U32 = 101 - S_CVT_I32_F32 = 102 - S_CVT_U32_F32 = 103 - S_CVT_F16_F32 = 104 - S_CVT_F32_F16 = 105 - S_CVT_HI_F32_F16 = 106 - S_CEIL_F16 = 107 - S_FLOOR_F16 = 108 - S_TRUNC_F16 = 109 - S_RNDNE_F16 = 110 - -class SOP2Op(IntEnum): - S_ADD_U32 = 0 - S_SUB_U32 = 1 - S_ADD_I32 = 2 - S_SUB_I32 = 3 - S_ADDC_U32 = 4 - S_SUBB_U32 = 5 - S_ABSDIFF_I32 = 6 - S_LSHL_B32 = 8 - S_LSHL_B64 = 9 - S_LSHR_B32 = 10 - S_LSHR_B64 = 11 - S_ASHR_I32 = 12 - S_ASHR_I64 = 13 - S_LSHL1_ADD_U32 = 14 - S_LSHL2_ADD_U32 = 15 - S_LSHL3_ADD_U32 = 16 - S_LSHL4_ADD_U32 = 17 - S_MIN_I32 = 18 - S_MIN_U32 = 19 - S_MAX_I32 = 20 - S_MAX_U32 = 21 - S_AND_B32 = 22 - S_AND_B64 = 23 - S_OR_B32 = 24 - S_OR_B64 = 25 - S_XOR_B32 = 26 - S_XOR_B64 = 27 - S_NAND_B32 = 28 - S_NAND_B64 = 29 - S_NOR_B32 = 30 - S_NOR_B64 = 31 - S_XNOR_B32 = 32 - S_XNOR_B64 = 33 - S_AND_NOT1_B32 = 34 - S_AND_NOT1_B64 = 35 - S_OR_NOT1_B32 = 36 - S_OR_NOT1_B64 = 37 - S_BFE_U32 = 38 - S_BFE_I32 = 39 - S_BFE_U64 = 40 - S_BFE_I64 = 41 - S_BFM_B32 = 42 - S_BFM_B64 = 43 - S_MUL_I32 = 44 - S_MUL_HI_U32 = 45 - S_MUL_HI_I32 = 46 - S_CSELECT_B32 = 48 - S_CSELECT_B64 = 49 - S_PACK_LL_B32_B16 = 50 - S_PACK_LH_B32_B16 = 51 - S_PACK_HH_B32_B16 = 52 - S_PACK_HL_B32_B16 = 53 - S_ADD_F32 = 64 - S_SUB_F32 = 65 - S_MIN_F32 = 66 - S_MAX_F32 = 67 - S_MUL_F32 = 68 - S_FMAAK_F32 = 69 - S_FMAMK_F32 = 70 - S_FMAC_F32 = 71 - S_CVT_PK_RTZ_F16_F32 = 72 - S_ADD_F16 = 73 - S_SUB_F16 = 74 - S_MIN_F16 = 75 - S_MAX_F16 = 76 - S_MUL_F16 = 77 - S_FMAC_F16 = 78 - -class SOPCOp(IntEnum): - S_CMP_EQ_I32 = 0 - S_CMP_LG_I32 = 1 - S_CMP_GT_I32 = 2 - S_CMP_GE_I32 = 3 - S_CMP_LT_I32 = 4 - S_CMP_LE_I32 = 5 - S_CMP_EQ_U32 = 6 - S_CMP_LG_U32 = 7 - S_CMP_GT_U32 = 8 - S_CMP_GE_U32 = 9 - S_CMP_LT_U32 = 10 - S_CMP_LE_U32 = 11 - S_BITCMP0_B32 = 12 - S_BITCMP1_B32 = 13 - S_BITCMP0_B64 = 14 - S_BITCMP1_B64 = 15 - S_CMP_EQ_U64 = 16 - S_CMP_LG_U64 = 17 - S_CMP_LT_F32 = 65 - S_CMP_EQ_F32 = 66 - S_CMP_LE_F32 = 67 - S_CMP_GT_F32 = 68 - S_CMP_LG_F32 = 69 - S_CMP_GE_F32 = 70 - S_CMP_O_F32 = 71 - S_CMP_U_F32 = 72 - S_CMP_NGE_F32 = 73 - S_CMP_NLG_F32 = 74 - S_CMP_NGT_F32 = 75 - S_CMP_NLE_F32 = 76 - S_CMP_NEQ_F32 = 77 - S_CMP_NLT_F32 = 78 - S_CMP_LT_F16 = 81 - S_CMP_EQ_F16 = 82 - S_CMP_LE_F16 = 83 - S_CMP_GT_F16 = 84 - S_CMP_LG_F16 = 85 - S_CMP_GE_F16 = 86 - S_CMP_O_F16 = 87 - S_CMP_U_F16 = 88 - S_CMP_NGE_F16 = 89 - S_CMP_NLG_F16 = 90 - S_CMP_NGT_F16 = 91 - S_CMP_NLE_F16 = 92 - S_CMP_NEQ_F16 = 93 - S_CMP_NLT_F16 = 94 - -class SOPKOp(IntEnum): - S_MOVK_I32 = 0 - S_VERSION = 1 - S_CMOVK_I32 = 2 - S_CMPK_EQ_I32 = 3 - S_CMPK_LG_I32 = 4 - S_CMPK_GT_I32 = 5 - S_CMPK_GE_I32 = 6 - S_CMPK_LT_I32 = 7 - S_CMPK_LE_I32 = 8 - S_CMPK_EQ_U32 = 9 - S_CMPK_LG_U32 = 10 - S_CMPK_GT_U32 = 11 - S_CMPK_GE_U32 = 12 - S_CMPK_LT_U32 = 13 - S_CMPK_LE_U32 = 14 - S_ADDK_I32 = 15 - S_MULK_I32 = 16 - S_GETREG_B32 = 17 - S_SETREG_B32 = 18 - S_SETREG_IMM32_B32 = 19 - S_CALL_B64 = 20 - S_WAITCNT_VSCNT = 24 - S_WAITCNT_VMCNT = 25 - S_WAITCNT_EXPCNT = 26 - S_WAITCNT_LGKMCNT = 27 - -class SOPPOp(IntEnum): - S_NOP = 0 - S_SETKILL = 1 - S_SETHALT = 2 - S_SLEEP = 3 - S_SET_INST_PREFETCH_DISTANCE = 4 - S_CLAUSE = 5 - S_DELAY_ALU = 7 - S_WAITCNT_DEPCTR = 8 - S_WAITCNT = 9 - S_WAIT_IDLE = 10 - S_WAIT_EVENT = 11 - S_TRAP = 16 - S_ROUND_MODE = 17 - S_DENORM_MODE = 18 - S_CODE_END = 31 - S_BRANCH = 32 - S_CBRANCH_SCC0 = 33 - S_CBRANCH_SCC1 = 34 - S_CBRANCH_VCCZ = 35 - S_CBRANCH_VCCNZ = 36 - S_CBRANCH_EXECZ = 37 - S_CBRANCH_EXECNZ = 38 - S_CBRANCH_CDBGSYS = 39 - S_CBRANCH_CDBGUSER = 40 - S_CBRANCH_CDBGSYS_OR_USER = 41 - S_CBRANCH_CDBGSYS_AND_USER = 42 - S_ENDPGM = 48 - S_ENDPGM_SAVED = 49 - S_ENDPGM_ORDERED_PS_DONE = 50 - S_WAKEUP = 52 - S_SETPRIO = 53 - S_SENDMSG = 54 - S_SENDMSGHALT = 55 - S_INCPERFLEVEL = 56 - S_DECPERFLEVEL = 57 - S_ICACHE_INV = 60 - S_BARRIER = 61 - -class VINTERPOp(IntEnum): - V_INTERP_P10_F32 = 0 - V_INTERP_P2_F32 = 1 - V_INTERP_P10_F16_F32 = 2 - V_INTERP_P2_F16_F32 = 3 - V_INTERP_P10_RTZ_F16_F32 = 4 - V_INTERP_P2_RTZ_F16_F32 = 5 - -class VOP1Op(IntEnum): - V_NOP = 0 - V_MOV_B32 = 1 - V_READFIRSTLANE_B32 = 2 - V_CVT_I32_F64 = 3 - V_CVT_F64_I32 = 4 - V_CVT_F32_I32 = 5 - V_CVT_F32_U32 = 6 - V_CVT_U32_F32 = 7 - V_CVT_I32_F32 = 8 - V_CVT_F16_F32 = 10 - V_CVT_F32_F16 = 11 - V_CVT_NEAREST_I32_F32 = 12 - V_CVT_FLOOR_I32_F32 = 13 - V_CVT_OFF_F32_I4 = 14 - V_CVT_F32_F64 = 15 - V_CVT_F64_F32 = 16 - V_CVT_F32_UBYTE0 = 17 - V_CVT_F32_UBYTE1 = 18 - V_CVT_F32_UBYTE2 = 19 - V_CVT_F32_UBYTE3 = 20 - V_CVT_U32_F64 = 21 - V_CVT_F64_U32 = 22 - V_TRUNC_F64 = 23 - V_CEIL_F64 = 24 - V_RNDNE_F64 = 25 - V_FLOOR_F64 = 26 - V_PIPEFLUSH = 27 - V_MOV_B16 = 28 - V_FRACT_F32 = 32 - V_TRUNC_F32 = 33 - V_CEIL_F32 = 34 - V_RNDNE_F32 = 35 - V_FLOOR_F32 = 36 - V_EXP_F32 = 37 - V_LOG_F32 = 39 - V_RCP_F32 = 42 - V_RCP_IFLAG_F32 = 43 - V_RSQ_F32 = 46 - V_RCP_F64 = 47 - V_RSQ_F64 = 49 - V_SQRT_F32 = 51 - V_SQRT_F64 = 52 - V_SIN_F32 = 53 - V_COS_F32 = 54 - V_NOT_B32 = 55 - V_BFREV_B32 = 56 - V_CLZ_I32_U32 = 57 - V_CTZ_I32_B32 = 58 - V_CLS_I32 = 59 - V_FREXP_EXP_I32_F64 = 60 - V_FREXP_MANT_F64 = 61 - V_FRACT_F64 = 62 - V_FREXP_EXP_I32_F32 = 63 - V_FREXP_MANT_F32 = 64 - V_MOVRELD_B32 = 66 - V_MOVRELS_B32 = 67 - V_MOVRELSD_B32 = 68 - V_MOVRELSD_2_B32 = 72 - V_CVT_F16_U16 = 80 - V_CVT_F16_I16 = 81 - V_CVT_U16_F16 = 82 - V_CVT_I16_F16 = 83 - V_RCP_F16 = 84 - V_SQRT_F16 = 85 - V_RSQ_F16 = 86 - V_LOG_F16 = 87 - V_EXP_F16 = 88 - V_FREXP_MANT_F16 = 89 - V_FREXP_EXP_I16_F16 = 90 - V_FLOOR_F16 = 91 - V_CEIL_F16 = 92 - V_TRUNC_F16 = 93 - V_RNDNE_F16 = 94 - V_FRACT_F16 = 95 - V_SIN_F16 = 96 - V_COS_F16 = 97 - V_SAT_PK_U8_I16 = 98 - V_CVT_NORM_I16_F16 = 99 - V_CVT_NORM_U16_F16 = 100 - V_SWAP_B32 = 101 - V_SWAP_B16 = 102 - V_PERMLANE64_B32 = 103 - V_SWAPREL_B32 = 104 - V_NOT_B16 = 105 - V_CVT_I32_I16 = 106 - V_CVT_U32_U16 = 107 - -class VOP2Op(IntEnum): - V_CNDMASK_B32 = 1 - V_DOT2ACC_F32_F16 = 2 - V_ADD_F32 = 3 - V_SUB_F32 = 4 - V_SUBREV_F32 = 5 - V_FMAC_DX9_ZERO_F32 = 6 - V_MUL_DX9_ZERO_F32 = 7 - V_MUL_F32 = 8 - V_MUL_I32_I24 = 9 - V_MUL_HI_I32_I24 = 10 - V_MUL_U32_U24 = 11 - V_MUL_HI_U32_U24 = 12 - V_MIN_F32 = 15 - V_MAX_F32 = 16 - V_MIN_I32 = 17 - V_MAX_I32 = 18 - V_MIN_U32 = 19 - V_MAX_U32 = 20 - V_LSHLREV_B32 = 24 - V_LSHRREV_B32 = 25 - V_ASHRREV_I32 = 26 - V_AND_B32 = 27 - V_OR_B32 = 28 - V_XOR_B32 = 29 - V_XNOR_B32 = 30 - V_ADD_CO_CI_U32 = 32 - V_SUB_CO_CI_U32 = 33 - V_SUBREV_CO_CI_U32 = 34 - V_ADD_NC_U32 = 37 - V_SUB_NC_U32 = 38 - V_SUBREV_NC_U32 = 39 - V_FMAC_F32 = 43 - V_FMAMK_F32 = 44 - V_FMAAK_F32 = 45 - V_CVT_PK_RTZ_F16_F32 = 47 - V_ADD_F16 = 50 - V_SUB_F16 = 51 - V_SUBREV_F16 = 52 - V_MUL_F16 = 53 - V_FMAC_F16 = 54 - V_FMAMK_F16 = 55 - V_FMAAK_F16 = 56 - V_MAX_F16 = 57 - V_MIN_F16 = 58 - V_LDEXP_F16 = 59 - V_PK_FMAC_F16 = 60 - -class VOP3Op(IntEnum): - V_CMP_F_F16 = 0 - V_CMP_LT_F16 = 1 - V_CMP_EQ_F16 = 2 - V_CMP_LE_F16 = 3 - V_CMP_GT_F16 = 4 - V_CMP_LG_F16 = 5 - V_CMP_GE_F16 = 6 - V_CMP_O_F16 = 7 - V_CMP_U_F16 = 8 - V_CMP_NGE_F16 = 9 - V_CMP_NLG_F16 = 10 - V_CMP_NGT_F16 = 11 - V_CMP_NLE_F16 = 12 - V_CMP_NEQ_F16 = 13 - V_CMP_NLT_F16 = 14 - V_CMP_T_F16 = 15 - V_CMP_F_F32 = 16 - V_CMP_LT_F32 = 17 - V_CMP_EQ_F32 = 18 - V_CMP_LE_F32 = 19 - V_CMP_GT_F32 = 20 - V_CMP_LG_F32 = 21 - V_CMP_GE_F32 = 22 - V_CMP_O_F32 = 23 - V_CMP_U_F32 = 24 - V_CMP_NGE_F32 = 25 - V_CMP_NLG_F32 = 26 - V_CMP_NGT_F32 = 27 - V_CMP_NLE_F32 = 28 - V_CMP_NEQ_F32 = 29 - V_CMP_NLT_F32 = 30 - V_CMP_T_F32 = 31 - V_CMP_F_F64 = 32 - V_CMP_LT_F64 = 33 - V_CMP_EQ_F64 = 34 - V_CMP_LE_F64 = 35 - V_CMP_GT_F64 = 36 - V_CMP_LG_F64 = 37 - V_CMP_GE_F64 = 38 - V_CMP_O_F64 = 39 - V_CMP_U_F64 = 40 - V_CMP_NGE_F64 = 41 - V_CMP_NLG_F64 = 42 - V_CMP_NGT_F64 = 43 - V_CMP_NLE_F64 = 44 - V_CMP_NEQ_F64 = 45 - V_CMP_NLT_F64 = 46 - V_CMP_T_F64 = 47 - V_CMP_LT_I16 = 49 - V_CMP_EQ_I16 = 50 - V_CMP_LE_I16 = 51 - V_CMP_GT_I16 = 52 - V_CMP_NE_I16 = 53 - V_CMP_GE_I16 = 54 - V_CMP_LT_U16 = 57 - V_CMP_EQ_U16 = 58 - V_CMP_LE_U16 = 59 - V_CMP_GT_U16 = 60 - V_CMP_NE_U16 = 61 - V_CMP_GE_U16 = 62 - V_CMP_F_I32 = 64 - V_CMP_LT_I32 = 65 - V_CMP_EQ_I32 = 66 - V_CMP_LE_I32 = 67 - V_CMP_GT_I32 = 68 - V_CMP_NE_I32 = 69 - V_CMP_GE_I32 = 70 - V_CMP_T_I32 = 71 - V_CMP_F_U32 = 72 - V_CMP_LT_U32 = 73 - V_CMP_EQ_U32 = 74 - V_CMP_LE_U32 = 75 - V_CMP_GT_U32 = 76 - V_CMP_NE_U32 = 77 - V_CMP_GE_U32 = 78 - V_CMP_T_U32 = 79 - V_CMP_F_I64 = 80 - V_CMP_LT_I64 = 81 - V_CMP_EQ_I64 = 82 - V_CMP_LE_I64 = 83 - V_CMP_GT_I64 = 84 - V_CMP_NE_I64 = 85 - V_CMP_GE_I64 = 86 - V_CMP_T_I64 = 87 - V_CMP_F_U64 = 88 - V_CMP_LT_U64 = 89 - V_CMP_EQ_U64 = 90 - V_CMP_LE_U64 = 91 - V_CMP_GT_U64 = 92 - V_CMP_NE_U64 = 93 - V_CMP_GE_U64 = 94 - V_CMP_T_U64 = 95 - V_CMP_CLASS_F16 = 125 - V_CMP_CLASS_F32 = 126 - V_CMP_CLASS_F64 = 127 - V_CMPX_F_F16 = 128 - V_CMPX_LT_F16 = 129 - V_CMPX_EQ_F16 = 130 - V_CMPX_LE_F16 = 131 - V_CMPX_GT_F16 = 132 - V_CMPX_LG_F16 = 133 - V_CMPX_GE_F16 = 134 - V_CMPX_O_F16 = 135 - V_CMPX_U_F16 = 136 - V_CMPX_NGE_F16 = 137 - V_CMPX_NLG_F16 = 138 - V_CMPX_NGT_F16 = 139 - V_CMPX_NLE_F16 = 140 - V_CMPX_NEQ_F16 = 141 - V_CMPX_NLT_F16 = 142 - V_CMPX_T_F16 = 143 - V_CMPX_F_F32 = 144 - V_CMPX_LT_F32 = 145 - V_CMPX_EQ_F32 = 146 - V_CMPX_LE_F32 = 147 - V_CMPX_GT_F32 = 148 - V_CMPX_LG_F32 = 149 - V_CMPX_GE_F32 = 150 - V_CMPX_O_F32 = 151 - V_CMPX_U_F32 = 152 - V_CMPX_NGE_F32 = 153 - V_CMPX_NLG_F32 = 154 - V_CMPX_NGT_F32 = 155 - V_CMPX_NLE_F32 = 156 - V_CMPX_NEQ_F32 = 157 - V_CMPX_NLT_F32 = 158 - V_CMPX_T_F32 = 159 - V_CMPX_F_F64 = 160 - V_CMPX_LT_F64 = 161 - V_CMPX_EQ_F64 = 162 - V_CMPX_LE_F64 = 163 - V_CMPX_GT_F64 = 164 - V_CMPX_LG_F64 = 165 - V_CMPX_GE_F64 = 166 - V_CMPX_O_F64 = 167 - V_CMPX_U_F64 = 168 - V_CMPX_NGE_F64 = 169 - V_CMPX_NLG_F64 = 170 - V_CMPX_NGT_F64 = 171 - V_CMPX_NLE_F64 = 172 - V_CMPX_NEQ_F64 = 173 - V_CMPX_NLT_F64 = 174 - V_CMPX_T_F64 = 175 - V_CMPX_LT_I16 = 177 - V_CMPX_EQ_I16 = 178 - V_CMPX_LE_I16 = 179 - V_CMPX_GT_I16 = 180 - V_CMPX_NE_I16 = 181 - V_CMPX_GE_I16 = 182 - V_CMPX_LT_U16 = 185 - V_CMPX_EQ_U16 = 186 - V_CMPX_LE_U16 = 187 - V_CMPX_GT_U16 = 188 - V_CMPX_NE_U16 = 189 - V_CMPX_GE_U16 = 190 - V_CMPX_F_I32 = 192 - V_CMPX_LT_I32 = 193 - V_CMPX_EQ_I32 = 194 - V_CMPX_LE_I32 = 195 - V_CMPX_GT_I32 = 196 - V_CMPX_NE_I32 = 197 - V_CMPX_GE_I32 = 198 - V_CMPX_T_I32 = 199 - V_CMPX_F_U32 = 200 - V_CMPX_LT_U32 = 201 - V_CMPX_EQ_U32 = 202 - V_CMPX_LE_U32 = 203 - V_CMPX_GT_U32 = 204 - V_CMPX_NE_U32 = 205 - V_CMPX_GE_U32 = 206 - V_CMPX_T_U32 = 207 - V_CMPX_F_I64 = 208 - V_CMPX_LT_I64 = 209 - V_CMPX_EQ_I64 = 210 - V_CMPX_LE_I64 = 211 - V_CMPX_GT_I64 = 212 - V_CMPX_NE_I64 = 213 - V_CMPX_GE_I64 = 214 - V_CMPX_T_I64 = 215 - V_CMPX_F_U64 = 216 - V_CMPX_LT_U64 = 217 - V_CMPX_EQ_U64 = 218 - V_CMPX_LE_U64 = 219 - V_CMPX_GT_U64 = 220 - V_CMPX_NE_U64 = 221 - V_CMPX_GE_U64 = 222 - V_CMPX_T_U64 = 223 - V_CMPX_CLASS_F16 = 253 - V_CMPX_CLASS_F32 = 254 - V_CMPX_CLASS_F64 = 255 - V_CNDMASK_B32 = 257 - V_ADD_F32 = 259 - V_SUB_F32 = 260 - V_SUBREV_F32 = 261 - V_FMAC_DX9_ZERO_F32 = 262 - V_MUL_DX9_ZERO_F32 = 263 - V_MUL_F32 = 264 - V_MUL_I32_I24 = 265 - V_MUL_HI_I32_I24 = 266 - V_MUL_U32_U24 = 267 - V_MUL_HI_U32_U24 = 268 - V_MIN_F32 = 271 - V_MAX_F32 = 272 - V_MIN_I32 = 273 - V_MAX_I32 = 274 - V_MIN_U32 = 275 - V_MAX_U32 = 276 - V_LSHLREV_B32 = 280 - V_LSHRREV_B32 = 281 - V_ASHRREV_I32 = 282 - V_AND_B32 = 283 - V_OR_B32 = 284 - V_XOR_B32 = 285 - V_XNOR_B32 = 286 - V_ADD_NC_U32 = 293 - V_SUB_NC_U32 = 294 - V_SUBREV_NC_U32 = 295 - V_FMAC_F32 = 299 - V_CVT_PK_RTZ_F16_F32 = 303 - V_ADD_F16 = 306 - V_SUB_F16 = 307 - V_SUBREV_F16 = 308 - V_MUL_F16 = 309 - V_FMAC_F16 = 310 - V_MAX_F16 = 313 - V_MIN_F16 = 314 - V_LDEXP_F16 = 315 - V_NOP = 384 - V_MOV_B32 = 385 - V_READFIRSTLANE_B32 = 386 - V_CVT_I32_F64 = 387 - V_CVT_F64_I32 = 388 - V_CVT_F32_I32 = 389 - V_CVT_F32_U32 = 390 - V_CVT_U32_F32 = 391 - V_CVT_I32_F32 = 392 - V_CVT_F16_F32 = 394 - V_CVT_F32_F16 = 395 - V_CVT_NEAREST_I32_F32 = 396 - V_CVT_FLOOR_I32_F32 = 397 - V_CVT_OFF_F32_I4 = 398 - V_CVT_F32_F64 = 399 - V_CVT_F64_F32 = 400 - V_CVT_F32_UBYTE0 = 401 - V_CVT_F32_UBYTE1 = 402 - V_CVT_F32_UBYTE2 = 403 - V_CVT_F32_UBYTE3 = 404 - V_CVT_U32_F64 = 405 - V_CVT_F64_U32 = 406 - V_TRUNC_F64 = 407 - V_CEIL_F64 = 408 - V_RNDNE_F64 = 409 - V_FLOOR_F64 = 410 - V_PIPEFLUSH = 411 - V_MOV_B16 = 412 - V_FRACT_F32 = 416 - V_TRUNC_F32 = 417 - V_CEIL_F32 = 418 - V_RNDNE_F32 = 419 - V_FLOOR_F32 = 420 - V_EXP_F32 = 421 - V_LOG_F32 = 423 - V_RCP_F32 = 426 - V_RCP_IFLAG_F32 = 427 - V_RSQ_F32 = 430 - V_RCP_F64 = 431 - V_RSQ_F64 = 433 - V_SQRT_F32 = 435 - V_SQRT_F64 = 436 - V_SIN_F32 = 437 - V_COS_F32 = 438 - V_NOT_B32 = 439 - V_BFREV_B32 = 440 - V_CLZ_I32_U32 = 441 - V_CTZ_I32_B32 = 442 - V_CLS_I32 = 443 - V_FREXP_EXP_I32_F64 = 444 - V_FREXP_MANT_F64 = 445 - V_FRACT_F64 = 446 - V_FREXP_EXP_I32_F32 = 447 - V_FREXP_MANT_F32 = 448 - V_MOVRELD_B32 = 450 - V_MOVRELS_B32 = 451 - V_MOVRELSD_B32 = 452 - V_MOVRELSD_2_B32 = 456 - V_CVT_F16_U16 = 464 - V_CVT_F16_I16 = 465 - V_CVT_U16_F16 = 466 - V_CVT_I16_F16 = 467 - V_RCP_F16 = 468 - V_SQRT_F16 = 469 - V_RSQ_F16 = 470 - V_LOG_F16 = 471 - V_EXP_F16 = 472 - V_FREXP_MANT_F16 = 473 - V_FREXP_EXP_I16_F16 = 474 - V_FLOOR_F16 = 475 - V_CEIL_F16 = 476 - V_TRUNC_F16 = 477 - V_RNDNE_F16 = 478 - V_FRACT_F16 = 479 - V_SIN_F16 = 480 - V_COS_F16 = 481 - V_SAT_PK_U8_I16 = 482 - V_CVT_NORM_I16_F16 = 483 - V_CVT_NORM_U16_F16 = 484 - V_NOT_B16 = 489 - V_CVT_I32_I16 = 490 - V_CVT_U32_U16 = 491 - V_FMA_DX9_ZERO_F32 = 521 - V_MAD_I32_I24 = 522 - V_MAD_U32_U24 = 523 - V_CUBEID_F32 = 524 - V_CUBESC_F32 = 525 - V_CUBETC_F32 = 526 - V_CUBEMA_F32 = 527 - V_BFE_U32 = 528 - V_BFE_I32 = 529 - V_BFI_B32 = 530 - V_FMA_F32 = 531 - V_FMA_F64 = 532 - V_LERP_U8 = 533 - V_ALIGNBIT_B32 = 534 - V_ALIGNBYTE_B32 = 535 - V_MULLIT_F32 = 536 - V_MIN3_F32 = 537 - V_MIN3_I32 = 538 - V_MIN3_U32 = 539 - V_MAX3_F32 = 540 - V_MAX3_I32 = 541 - V_MAX3_U32 = 542 - V_MED3_F32 = 543 - V_MED3_I32 = 544 - V_MED3_U32 = 545 - V_SAD_U8 = 546 - V_SAD_HI_U8 = 547 - V_SAD_U16 = 548 - V_SAD_U32 = 549 - V_CVT_PK_U8_F32 = 550 - V_DIV_FIXUP_F32 = 551 - V_DIV_FIXUP_F64 = 552 - V_DIV_FMAS_F32 = 567 - V_DIV_FMAS_F64 = 568 - V_MSAD_U8 = 569 - V_QSAD_PK_U16_U8 = 570 - V_MQSAD_PK_U16_U8 = 571 - V_MQSAD_U32_U8 = 573 - V_XOR3_B32 = 576 - V_MAD_U16 = 577 - V_PERM_B32 = 580 - V_XAD_U32 = 581 - V_LSHL_ADD_U32 = 582 - V_ADD_LSHL_U32 = 583 - V_FMA_F16 = 584 - V_MIN3_F16 = 585 - V_MIN3_I16 = 586 - V_MIN3_U16 = 587 - V_MAX3_F16 = 588 - V_MAX3_I16 = 589 - V_MAX3_U16 = 590 - V_MED3_F16 = 591 - V_MED3_I16 = 592 - V_MED3_U16 = 593 - V_MAD_I16 = 595 - V_DIV_FIXUP_F16 = 596 - V_ADD3_U32 = 597 - V_LSHL_OR_B32 = 598 - V_AND_OR_B32 = 599 - V_OR3_B32 = 600 - V_MAD_U32_U16 = 601 - V_MAD_I32_I16 = 602 - V_PERMLANE16_B32 = 603 - V_PERMLANEX16_B32 = 604 - V_CNDMASK_B16 = 605 - V_MAXMIN_F32 = 606 - V_MINMAX_F32 = 607 - V_MAXMIN_F16 = 608 - V_MINMAX_F16 = 609 - V_MAXMIN_U32 = 610 - V_MINMAX_U32 = 611 - V_MAXMIN_I32 = 612 - V_MINMAX_I32 = 613 - V_DOT2_F16_F16 = 614 - V_DOT2_BF16_BF16 = 615 - V_ADD_NC_U16 = 771 - V_SUB_NC_U16 = 772 - V_MUL_LO_U16 = 773 - V_CVT_PK_I16_F32 = 774 - V_CVT_PK_U16_F32 = 775 - V_MAX_U16 = 777 - V_MAX_I16 = 778 - V_MIN_U16 = 779 - V_MIN_I16 = 780 - V_ADD_NC_I16 = 781 - V_SUB_NC_I16 = 782 - V_PACK_B32_F16 = 785 - V_CVT_PK_NORM_I16_F16 = 786 - V_CVT_PK_NORM_U16_F16 = 787 - V_LDEXP_F32 = 796 - V_BFM_B32 = 797 - V_BCNT_U32_B32 = 798 - V_MBCNT_LO_U32_B32 = 799 - V_MBCNT_HI_U32_B32 = 800 - V_CVT_PK_NORM_I16_F32 = 801 - V_CVT_PK_NORM_U16_F32 = 802 - V_CVT_PK_U16_U32 = 803 - V_CVT_PK_I16_I32 = 804 - V_SUB_NC_I32 = 805 - V_ADD_NC_I32 = 806 - V_ADD_F64 = 807 - V_MUL_F64 = 808 - V_MIN_F64 = 809 - V_MAX_F64 = 810 - V_LDEXP_F64 = 811 - V_MUL_LO_U32 = 812 - V_MUL_HI_U32 = 813 - V_MUL_HI_I32 = 814 - V_TRIG_PREOP_F64 = 815 - V_LSHLREV_B16 = 824 - V_LSHRREV_B16 = 825 - V_ASHRREV_I16 = 826 - V_LSHLREV_B64 = 828 - V_LSHRREV_B64 = 829 - V_ASHRREV_I64 = 830 - V_READLANE_B32 = 864 - V_WRITELANE_B32 = 865 - V_AND_B16 = 866 - V_OR_B16 = 867 - V_XOR_B16 = 868 - -class VOP3POp(IntEnum): - V_PK_MAD_I16 = 0 - V_PK_MUL_LO_U16 = 1 - V_PK_ADD_I16 = 2 - V_PK_SUB_I16 = 3 - V_PK_LSHLREV_B16 = 4 - V_PK_LSHRREV_B16 = 5 - V_PK_ASHRREV_I16 = 6 - V_PK_MAX_I16 = 7 - V_PK_MIN_I16 = 8 - V_PK_MAD_U16 = 9 - V_PK_ADD_U16 = 10 - V_PK_SUB_U16 = 11 - V_PK_MAX_U16 = 12 - V_PK_MIN_U16 = 13 - V_PK_FMA_F16 = 14 - V_PK_ADD_F16 = 15 - V_PK_MUL_F16 = 16 - V_PK_MIN_F16 = 17 - V_PK_MAX_F16 = 18 - V_DOT2_F32_F16 = 19 - V_DOT4_I32_IU8 = 22 - V_DOT4_U32_U8 = 23 - V_DOT8_I32_IU4 = 24 - V_DOT8_U32_U4 = 25 - V_DOT2_F32_BF16 = 26 - V_FMA_MIX_F32 = 32 - V_FMA_MIXLO_F16 = 33 - V_FMA_MIXHI_F16 = 34 - V_WMMA_F32_16X16X16_F16 = 64 - V_WMMA_F32_16X16X16_BF16 = 65 - V_WMMA_F16_16X16X16_F16 = 66 - V_WMMA_BF16_16X16X16_BF16 = 67 - V_WMMA_I32_16X16X16_IU8 = 68 - V_WMMA_I32_16X16X16_IU4 = 69 - -class VOP3SDOp(IntEnum): - DWORD = 1 - V_ADD_CO_CI_U32 = 288 - V_SUB_CO_CI_U32 = 289 - V_SUBREV_CO_CI_U32 = 290 - V_DIV_SCALE_F32 = 764 - V_DIV_SCALE_F64 = 765 - V_MAD_U64_U32 = 766 - V_MAD_I64_I32 = 767 - V_ADD_CO_U32 = 768 - V_SUB_CO_U32 = 769 - V_SUBREV_CO_U32 = 770 - -class VOPCOp(IntEnum): - V_CMP_F_F16 = 0 - V_CMP_LT_F16 = 1 - V_CMP_EQ_F16 = 2 - V_CMP_LE_F16 = 3 - V_CMP_GT_F16 = 4 - V_CMP_LG_F16 = 5 - V_CMP_GE_F16 = 6 - V_CMP_O_F16 = 7 - V_CMP_U_F16 = 8 - V_CMP_NGE_F16 = 9 - V_CMP_NLG_F16 = 10 - V_CMP_NGT_F16 = 11 - V_CMP_NLE_F16 = 12 - V_CMP_NEQ_F16 = 13 - V_CMP_NLT_F16 = 14 - V_CMP_T_F16 = 15 - V_CMP_F_F32 = 16 - V_CMP_LT_F32 = 17 - V_CMP_EQ_F32 = 18 - V_CMP_LE_F32 = 19 - V_CMP_GT_F32 = 20 - V_CMP_LG_F32 = 21 - V_CMP_GE_F32 = 22 - V_CMP_O_F32 = 23 - V_CMP_U_F32 = 24 - V_CMP_NGE_F32 = 25 - V_CMP_NLG_F32 = 26 - V_CMP_NGT_F32 = 27 - V_CMP_NLE_F32 = 28 - V_CMP_NEQ_F32 = 29 - V_CMP_NLT_F32 = 30 - V_CMP_T_F32 = 31 - V_CMP_F_F64 = 32 - V_CMP_LT_F64 = 33 - V_CMP_EQ_F64 = 34 - V_CMP_LE_F64 = 35 - V_CMP_GT_F64 = 36 - V_CMP_LG_F64 = 37 - V_CMP_GE_F64 = 38 - V_CMP_O_F64 = 39 - V_CMP_U_F64 = 40 - V_CMP_NGE_F64 = 41 - V_CMP_NLG_F64 = 42 - V_CMP_NGT_F64 = 43 - V_CMP_NLE_F64 = 44 - V_CMP_NEQ_F64 = 45 - V_CMP_NLT_F64 = 46 - V_CMP_T_F64 = 47 - V_CMP_LT_I16 = 49 - V_CMP_EQ_I16 = 50 - V_CMP_LE_I16 = 51 - V_CMP_GT_I16 = 52 - V_CMP_NE_I16 = 53 - V_CMP_GE_I16 = 54 - V_CMP_LT_U16 = 57 - V_CMP_EQ_U16 = 58 - V_CMP_LE_U16 = 59 - V_CMP_GT_U16 = 60 - V_CMP_NE_U16 = 61 - V_CMP_GE_U16 = 62 - V_CMP_F_I32 = 64 - V_CMP_LT_I32 = 65 - V_CMP_EQ_I32 = 66 - V_CMP_LE_I32 = 67 - V_CMP_GT_I32 = 68 - V_CMP_NE_I32 = 69 - V_CMP_GE_I32 = 70 - V_CMP_T_I32 = 71 - V_CMP_F_U32 = 72 - V_CMP_LT_U32 = 73 - V_CMP_EQ_U32 = 74 - V_CMP_LE_U32 = 75 - V_CMP_GT_U32 = 76 - V_CMP_NE_U32 = 77 - V_CMP_GE_U32 = 78 - V_CMP_T_U32 = 79 - V_CMP_F_I64 = 80 - V_CMP_LT_I64 = 81 - V_CMP_EQ_I64 = 82 - V_CMP_LE_I64 = 83 - V_CMP_GT_I64 = 84 - V_CMP_NE_I64 = 85 - V_CMP_GE_I64 = 86 - V_CMP_T_I64 = 87 - V_CMP_F_U64 = 88 - V_CMP_LT_U64 = 89 - V_CMP_EQ_U64 = 90 - V_CMP_LE_U64 = 91 - V_CMP_GT_U64 = 92 - V_CMP_NE_U64 = 93 - V_CMP_GE_U64 = 94 - V_CMP_T_U64 = 95 - V_CMP_CLASS_F16 = 125 - V_CMP_CLASS_F32 = 126 - V_CMP_CLASS_F64 = 127 - V_CMPX_F_F16 = 128 - V_CMPX_LT_F16 = 129 - V_CMPX_EQ_F16 = 130 - V_CMPX_LE_F16 = 131 - V_CMPX_GT_F16 = 132 - V_CMPX_LG_F16 = 133 - V_CMPX_GE_F16 = 134 - V_CMPX_O_F16 = 135 - V_CMPX_U_F16 = 136 - V_CMPX_NGE_F16 = 137 - V_CMPX_NLG_F16 = 138 - V_CMPX_NGT_F16 = 139 - V_CMPX_NLE_F16 = 140 - V_CMPX_NEQ_F16 = 141 - V_CMPX_NLT_F16 = 142 - V_CMPX_T_F16 = 143 - V_CMPX_F_F32 = 144 - V_CMPX_LT_F32 = 145 - V_CMPX_EQ_F32 = 146 - V_CMPX_LE_F32 = 147 - V_CMPX_GT_F32 = 148 - V_CMPX_LG_F32 = 149 - V_CMPX_GE_F32 = 150 - V_CMPX_O_F32 = 151 - V_CMPX_U_F32 = 152 - V_CMPX_NGE_F32 = 153 - V_CMPX_NLG_F32 = 154 - V_CMPX_NGT_F32 = 155 - V_CMPX_NLE_F32 = 156 - V_CMPX_NEQ_F32 = 157 - V_CMPX_NLT_F32 = 158 - V_CMPX_T_F32 = 159 - V_CMPX_F_F64 = 160 - V_CMPX_LT_F64 = 161 - V_CMPX_EQ_F64 = 162 - V_CMPX_LE_F64 = 163 - V_CMPX_GT_F64 = 164 - V_CMPX_LG_F64 = 165 - V_CMPX_GE_F64 = 166 - V_CMPX_O_F64 = 167 - V_CMPX_U_F64 = 168 - V_CMPX_NGE_F64 = 169 - V_CMPX_NLG_F64 = 170 - V_CMPX_NGT_F64 = 171 - V_CMPX_NLE_F64 = 172 - V_CMPX_NEQ_F64 = 173 - V_CMPX_NLT_F64 = 174 - V_CMPX_T_F64 = 175 - V_CMPX_LT_I16 = 177 - V_CMPX_EQ_I16 = 178 - V_CMPX_LE_I16 = 179 - V_CMPX_GT_I16 = 180 - V_CMPX_NE_I16 = 181 - V_CMPX_GE_I16 = 182 - V_CMPX_LT_U16 = 185 - V_CMPX_EQ_U16 = 186 - V_CMPX_LE_U16 = 187 - V_CMPX_GT_U16 = 188 - V_CMPX_NE_U16 = 189 - V_CMPX_GE_U16 = 190 - V_CMPX_F_I32 = 192 - V_CMPX_LT_I32 = 193 - V_CMPX_EQ_I32 = 194 - V_CMPX_LE_I32 = 195 - V_CMPX_GT_I32 = 196 - V_CMPX_NE_I32 = 197 - V_CMPX_GE_I32 = 198 - V_CMPX_T_I32 = 199 - V_CMPX_F_U32 = 200 - V_CMPX_LT_U32 = 201 - V_CMPX_EQ_U32 = 202 - V_CMPX_LE_U32 = 203 - V_CMPX_GT_U32 = 204 - V_CMPX_NE_U32 = 205 - V_CMPX_GE_U32 = 206 - V_CMPX_T_U32 = 207 - V_CMPX_F_I64 = 208 - V_CMPX_LT_I64 = 209 - V_CMPX_EQ_I64 = 210 - V_CMPX_LE_I64 = 211 - V_CMPX_GT_I64 = 212 - V_CMPX_NE_I64 = 213 - V_CMPX_GE_I64 = 214 - V_CMPX_T_I64 = 215 - V_CMPX_F_U64 = 216 - V_CMPX_LT_U64 = 217 - V_CMPX_EQ_U64 = 218 - V_CMPX_LE_U64 = 219 - V_CMPX_GT_U64 = 220 - V_CMPX_NE_U64 = 221 - V_CMPX_GE_U64 = 222 - V_CMPX_T_U64 = 223 - V_CMPX_CLASS_F16 = 253 - V_CMPX_CLASS_F32 = 254 - V_CMPX_CLASS_F64 = 255 - -class VOPDOp(IntEnum): - V_DUAL_FMAC_F32 = 0 - V_DUAL_FMAAK_F32 = 1 - V_DUAL_FMAMK_F32 = 2 - V_DUAL_MUL_F32 = 3 - V_DUAL_ADD_F32 = 4 - V_DUAL_SUB_F32 = 5 - V_DUAL_SUBREV_F32 = 6 - V_DUAL_MUL_DX9_ZERO_F32 = 7 - V_DUAL_MOV_B32 = 8 - V_DUAL_CNDMASK_B32 = 9 - V_DUAL_MAX_F32 = 10 - V_DUAL_MIN_F32 = 11 - V_DUAL_DOT2ACC_F32_F16 = 12 - V_DUAL_DOT2ACC_F32_BF16 = 13 - V_DUAL_ADD_NC_U32 = 16 - V_DUAL_LSHLREV_B32 = 17 - V_DUAL_AND_B32 = 18 - -# instruction formats -class DPP16(Inst64): - src0:Src = bits[39:32] - dpp_ctrl = bits[48:40] - fi = bits[50] - bc = bits[51] - src0_neg = bits[52] - src0_abs = bits[53] - src1_neg = bits[54] - src1_abs = bits[55] - bank_mask = bits[59:56] - row_mask = bits[63:60] - -class DPP8(Inst64): - src0:Src = bits[39:32] - lane_sel0 = bits[42:40] - lane_sel1 = bits[45:43] - lane_sel2 = bits[48:46] - lane_sel3 = bits[51:49] - lane_sel4 = bits[54:52] - lane_sel5 = bits[57:55] - lane_sel6 = bits[60:58] - lane_sel7 = bits[63:61] - -class DS(Inst64): - encoding = bits[31:26] == 0b110110 - op:Annotated[BitField, DSOp] = bits[25:18] - vdst:VGPRField = bits[63:56] - addr:VGPRField = bits[39:32] - data0:VGPRField = bits[47:40] - data1:VGPRField = bits[55:48] - offset0 = bits[7:0] - offset1 = bits[15:8] - gds = bits[17] - -class EXP(Inst64): - encoding = bits[31:26] == 0b111110 - en = bits[3:0] - target = bits[9:4] - vsrc0 = bits[39:32] - vsrc1:VGPRField = bits[47:40] - vsrc2 = bits[55:48] - vsrc3 = bits[63:56] - done = bits[11] - row = bits[13] - -class FLAT(Inst64): - encoding = bits[31:26] == 0b110111 - op:Annotated[BitField, FLATOp] = bits[24:18] - vdst:VGPRField = bits[63:56] - addr:VGPRField = bits[39:32] - data:VGPRField = bits[47:40] - saddr:SSrc = bits[54:48] - offset:Imm = bits[12:0] - seg = bits[17:16] - dlc = bits[13] - glc = bits[14] - slc = bits[15] - sve = bits[55] - -class LDSDIR(Inst32): - encoding = bits[31:24] == 0b11001110 - op = bits[21:20] - vdst:VGPRField = bits[7:0] - attr = bits[15:10] - attr_chan = bits[9:8] - wait_va = bits[19:16] - -class MIMG(Inst64): - encoding = bits[31:26] == 0b111100 - op:Annotated[BitField, MIMGOp] = bits[25:18] - vdata:VGPRField = bits[47:40] - vaddr:VGPRField = bits[39:32] - srsrc:SGPRField = bits[52:48] - ssamp = bits[62:58] - dmask = bits[11:8] - dim = bits[4:2] - unrm = bits[7] - dlc = bits[13] - glc = bits[14] - slc = bits[12] - nsa = bits[0] - r128 = bits[15] - a16 = bits[16] - d16 = bits[17] - tfe = bits[53] - lwe = bits[54] - addr1 = bits[71:64] - addr2 = bits[79:72] - -class MTBUF(Inst64): - encoding = bits[31:26] == 0b111010 - op:Annotated[BitField, MTBUFOp] = bits[18:15] - vdata:VGPRField = bits[47:40] - vaddr:VGPRField = bits[39:32] - srsrc:SGPRField = bits[52:48] - soffset:SSrc = bits[63:56] - offset:Imm = bits[11:0] - format = bits[25:19] - offen = bits[54] - idxen = bits[55] - glc = bits[14] - dlc = bits[13] - slc = bits[12] - tfe = bits[53] - -class MUBUF(Inst64): - encoding = bits[31:26] == 0b111000 - op:Annotated[BitField, MUBUFOp] = bits[25:18] - vdata:VGPRField = bits[47:40] - vaddr:VGPRField = bits[39:32] - srsrc:SGPRField = bits[52:48] - soffset:SSrc = bits[63:56] - offset:Imm = bits[11:0] - offen = bits[54] - idxen = bits[55] - glc = bits[14] - dlc = bits[13] - slc = bits[12] - tfe = bits[53] - -class SMEM(Inst64): - encoding = bits[31:26] == 0b111101 - op:Annotated[BitField, SMEMOp] = bits[25:18] - sdata:SGPRField = bits[12:6] - sbase:SGPRField = bits[5:0] - soffset:SSrc = bits[63:57] - offset:Imm = bits[52:32] - glc = bits[14] - dlc = bits[13] - -class SOP1(Inst32): - encoding = bits[31:23] == 0b101111101 - op:Annotated[BitField, SOP1Op] = bits[15:8] - sdst:SGPRField = bits[22:16] - ssrc0:SSrc = bits[7:0] - -class SOP2(Inst32): - encoding = bits[31:30] == 0b10 - op:Annotated[BitField, SOP2Op] = bits[29:23] - sdst:SGPRField = bits[22:16] - ssrc0:SSrc = bits[7:0] - ssrc1:SSrc = bits[15:8] - -class SOPC(Inst32): - encoding = bits[31:23] == 0b101111110 - op:Annotated[BitField, SOPCOp] = bits[22:16] - ssrc0:SSrc = bits[7:0] - ssrc1:SSrc = bits[15:8] - -class SOPK(Inst32): - encoding = bits[31:28] == 0b1011 - op:Annotated[BitField, SOPKOp] = bits[27:23] - sdst:SGPRField = bits[22:16] - simm16:SImm = bits[15:0] - -class SOPP(Inst32): - encoding = bits[31:23] == 0b101111111 - op:Annotated[BitField, SOPPOp] = bits[22:16] - simm16:SImm = bits[15:0] - -class VINTERP(Inst64): - encoding = bits[31:24] == 0b11001101 - op:Annotated[BitField, VINTERPOp] = bits[22:16] - vdst:VGPRField = bits[7:0] - src0:Src = bits[40:32] - src1:Src = bits[49:41] - src2:Src = bits[58:50] - waitexp = bits[10:8] - clmp = bits[15] - opsel = bits[14:11] - neg = bits[63:61] - -class VOP1(Inst32): - encoding = bits[31:25] == 0b111111 - op:Annotated[BitField, VOP1Op] = bits[16:9] - vdst:VGPRField = bits[24:17] - src0:Src = bits[8:0] - -class VOP2(Inst32): - encoding = bits[31] == 0 - op:Annotated[BitField, VOP2Op] = bits[30:25] - vdst:VGPRField = bits[24:17] - src0:Src = bits[8:0] - vsrc1:VGPRField = bits[16:9] - -class VOP3(Inst64): - encoding = bits[31:26] == 0b110101 - op:Annotated[BitField, VOP3Op] = bits[25:16] - vdst:VGPRField = bits[7:0] - src0:Src = bits[40:32] - src1:Src = bits[49:41] - src2:Src = bits[58:50] - omod = bits[60:59] - neg = bits[63:61] - abs = bits[10:8] - clmp = bits[15] - opsel = bits[14:11] - -class VOP3P(Inst64): - encoding = bits[31:24] == 0b11001100 - _defaults = {'opsel_hi': 3, 'opsel_hi2': 1} - op:Annotated[BitField, VOP3POp] = bits[22:16] - vdst:VGPRField = bits[7:0] - src0:Src = bits[40:32] - src1:Src = bits[49:41] - src2:Src = bits[58:50] - neg = bits[63:61] - neg_hi = bits[10:8] - opsel = bits[13:11] - opsel_hi = bits[60:59] - clmp = bits[15] - opsel_hi2 = bits[14] - -class VOP3SD(Inst64): - encoding = bits[31:26] == 0b110101 - op:Annotated[BitField, VOP3SDOp] = bits[25:16] - vdst:VGPRField = bits[7:0] - sdst:SGPRField = bits[14:8] - src0:Src = bits[40:32] - src1:Src = bits[49:41] - src2:Src = bits[58:50] - clmp = bits[15] - omod = bits[60:59] - neg = bits[63:61] - -class VOPC(Inst32): - encoding = bits[31:25] == 0b111110 - op:Annotated[BitField, VOPCOp] = bits[24:17] - src0:Src = bits[8:0] - vsrc1:VGPRField = bits[16:9] - -class VOPD(Inst64): - encoding = bits[31:26] == 0b110010 - opx:Annotated[BitField, VOPDOp] = bits[25:22] - opy:Annotated[BitField, VOPDOp] = bits[21:17] - vdstx:VGPRField = bits[63:56] - vdsty:VDSTYEnc = bits[55:49] - srcx0:Src = bits[8:0] - vsrcx1:VGPRField = bits[16:9] - srcy0:Src = bits[40:32] - vsrcy1:VGPRField = bits[48:41] - -# instruction helpers -ds_add_u32 = functools.partial(DS, DSOp.DS_ADD_U32) -ds_sub_u32 = functools.partial(DS, DSOp.DS_SUB_U32) -ds_rsub_u32 = functools.partial(DS, DSOp.DS_RSUB_U32) -ds_inc_u32 = functools.partial(DS, DSOp.DS_INC_U32) -ds_dec_u32 = functools.partial(DS, DSOp.DS_DEC_U32) -ds_min_i32 = functools.partial(DS, DSOp.DS_MIN_I32) -ds_max_i32 = functools.partial(DS, DSOp.DS_MAX_I32) -ds_min_u32 = functools.partial(DS, DSOp.DS_MIN_U32) -ds_max_u32 = functools.partial(DS, DSOp.DS_MAX_U32) -ds_and_b32 = functools.partial(DS, DSOp.DS_AND_B32) -ds_or_b32 = functools.partial(DS, DSOp.DS_OR_B32) -ds_xor_b32 = functools.partial(DS, DSOp.DS_XOR_B32) -ds_mskor_b32 = functools.partial(DS, DSOp.DS_MSKOR_B32) -ds_store_b32 = functools.partial(DS, DSOp.DS_STORE_B32) -ds_store_2addr_b32 = functools.partial(DS, DSOp.DS_STORE_2ADDR_B32) -ds_store_2addr_stride64_b32 = functools.partial(DS, DSOp.DS_STORE_2ADDR_STRIDE64_B32) -ds_cmpstore_b32 = functools.partial(DS, DSOp.DS_CMPSTORE_B32) -ds_cmpstore_f32 = functools.partial(DS, DSOp.DS_CMPSTORE_F32) -ds_min_f32 = functools.partial(DS, DSOp.DS_MIN_F32) -ds_max_f32 = functools.partial(DS, DSOp.DS_MAX_F32) -ds_nop = functools.partial(DS, DSOp.DS_NOP) -ds_add_f32 = functools.partial(DS, DSOp.DS_ADD_F32) -ds_gws_sema_release_all = functools.partial(DS, DSOp.DS_GWS_SEMA_RELEASE_ALL) -ds_gws_init = functools.partial(DS, DSOp.DS_GWS_INIT) -ds_gws_sema_v = functools.partial(DS, DSOp.DS_GWS_SEMA_V) -ds_gws_sema_br = functools.partial(DS, DSOp.DS_GWS_SEMA_BR) -ds_gws_sema_p = functools.partial(DS, DSOp.DS_GWS_SEMA_P) -ds_gws_barrier = functools.partial(DS, DSOp.DS_GWS_BARRIER) -ds_store_b8 = functools.partial(DS, DSOp.DS_STORE_B8) -ds_store_b16 = functools.partial(DS, DSOp.DS_STORE_B16) -ds_add_rtn_u32 = functools.partial(DS, DSOp.DS_ADD_RTN_U32) -ds_sub_rtn_u32 = functools.partial(DS, DSOp.DS_SUB_RTN_U32) -ds_rsub_rtn_u32 = functools.partial(DS, DSOp.DS_RSUB_RTN_U32) -ds_inc_rtn_u32 = functools.partial(DS, DSOp.DS_INC_RTN_U32) -ds_dec_rtn_u32 = functools.partial(DS, DSOp.DS_DEC_RTN_U32) -ds_min_rtn_i32 = functools.partial(DS, DSOp.DS_MIN_RTN_I32) -ds_max_rtn_i32 = functools.partial(DS, DSOp.DS_MAX_RTN_I32) -ds_min_rtn_u32 = functools.partial(DS, DSOp.DS_MIN_RTN_U32) -ds_max_rtn_u32 = functools.partial(DS, DSOp.DS_MAX_RTN_U32) -ds_and_rtn_b32 = functools.partial(DS, DSOp.DS_AND_RTN_B32) -ds_or_rtn_b32 = functools.partial(DS, DSOp.DS_OR_RTN_B32) -ds_xor_rtn_b32 = functools.partial(DS, DSOp.DS_XOR_RTN_B32) -ds_mskor_rtn_b32 = functools.partial(DS, DSOp.DS_MSKOR_RTN_B32) -ds_storexchg_rtn_b32 = functools.partial(DS, DSOp.DS_STOREXCHG_RTN_B32) -ds_storexchg_2addr_rtn_b32 = functools.partial(DS, DSOp.DS_STOREXCHG_2ADDR_RTN_B32) -ds_storexchg_2addr_stride64_rtn_b32 = functools.partial(DS, DSOp.DS_STOREXCHG_2ADDR_STRIDE64_RTN_B32) -ds_cmpstore_rtn_b32 = functools.partial(DS, DSOp.DS_CMPSTORE_RTN_B32) -ds_cmpstore_rtn_f32 = functools.partial(DS, DSOp.DS_CMPSTORE_RTN_F32) -ds_min_rtn_f32 = functools.partial(DS, DSOp.DS_MIN_RTN_F32) -ds_max_rtn_f32 = functools.partial(DS, DSOp.DS_MAX_RTN_F32) -ds_wrap_rtn_b32 = functools.partial(DS, DSOp.DS_WRAP_RTN_B32) -ds_swizzle_b32 = functools.partial(DS, DSOp.DS_SWIZZLE_B32) -ds_load_b32 = functools.partial(DS, DSOp.DS_LOAD_B32) -ds_load_2addr_b32 = functools.partial(DS, DSOp.DS_LOAD_2ADDR_B32) -ds_load_2addr_stride64_b32 = functools.partial(DS, DSOp.DS_LOAD_2ADDR_STRIDE64_B32) -ds_load_i8 = functools.partial(DS, DSOp.DS_LOAD_I8) -ds_load_u8 = functools.partial(DS, DSOp.DS_LOAD_U8) -ds_load_i16 = functools.partial(DS, DSOp.DS_LOAD_I16) -ds_load_u16 = functools.partial(DS, DSOp.DS_LOAD_U16) -ds_consume = functools.partial(DS, DSOp.DS_CONSUME) -ds_append = functools.partial(DS, DSOp.DS_APPEND) -ds_ordered_count = functools.partial(DS, DSOp.DS_ORDERED_COUNT) -ds_add_u64 = functools.partial(DS, DSOp.DS_ADD_U64) -ds_sub_u64 = functools.partial(DS, DSOp.DS_SUB_U64) -ds_rsub_u64 = functools.partial(DS, DSOp.DS_RSUB_U64) -ds_inc_u64 = functools.partial(DS, DSOp.DS_INC_U64) -ds_dec_u64 = functools.partial(DS, DSOp.DS_DEC_U64) -ds_min_i64 = functools.partial(DS, DSOp.DS_MIN_I64) -ds_max_i64 = functools.partial(DS, DSOp.DS_MAX_I64) -ds_min_u64 = functools.partial(DS, DSOp.DS_MIN_U64) -ds_max_u64 = functools.partial(DS, DSOp.DS_MAX_U64) -ds_and_b64 = functools.partial(DS, DSOp.DS_AND_B64) -ds_or_b64 = functools.partial(DS, DSOp.DS_OR_B64) -ds_xor_b64 = functools.partial(DS, DSOp.DS_XOR_B64) -ds_mskor_b64 = functools.partial(DS, DSOp.DS_MSKOR_B64) -ds_store_b64 = functools.partial(DS, DSOp.DS_STORE_B64) -ds_store_2addr_b64 = functools.partial(DS, DSOp.DS_STORE_2ADDR_B64) -ds_store_2addr_stride64_b64 = functools.partial(DS, DSOp.DS_STORE_2ADDR_STRIDE64_B64) -ds_cmpstore_b64 = functools.partial(DS, DSOp.DS_CMPSTORE_B64) -ds_cmpstore_f64 = functools.partial(DS, DSOp.DS_CMPSTORE_F64) -ds_min_f64 = functools.partial(DS, DSOp.DS_MIN_F64) -ds_max_f64 = functools.partial(DS, DSOp.DS_MAX_F64) -ds_add_rtn_u64 = functools.partial(DS, DSOp.DS_ADD_RTN_U64) -ds_sub_rtn_u64 = functools.partial(DS, DSOp.DS_SUB_RTN_U64) -ds_rsub_rtn_u64 = functools.partial(DS, DSOp.DS_RSUB_RTN_U64) -ds_inc_rtn_u64 = functools.partial(DS, DSOp.DS_INC_RTN_U64) -ds_dec_rtn_u64 = functools.partial(DS, DSOp.DS_DEC_RTN_U64) -ds_min_rtn_i64 = functools.partial(DS, DSOp.DS_MIN_RTN_I64) -ds_max_rtn_i64 = functools.partial(DS, DSOp.DS_MAX_RTN_I64) -ds_min_rtn_u64 = functools.partial(DS, DSOp.DS_MIN_RTN_U64) -ds_max_rtn_u64 = functools.partial(DS, DSOp.DS_MAX_RTN_U64) -ds_and_rtn_b64 = functools.partial(DS, DSOp.DS_AND_RTN_B64) -ds_or_rtn_b64 = functools.partial(DS, DSOp.DS_OR_RTN_B64) -ds_xor_rtn_b64 = functools.partial(DS, DSOp.DS_XOR_RTN_B64) -ds_mskor_rtn_b64 = functools.partial(DS, DSOp.DS_MSKOR_RTN_B64) -ds_storexchg_rtn_b64 = functools.partial(DS, DSOp.DS_STOREXCHG_RTN_B64) -ds_storexchg_2addr_rtn_b64 = functools.partial(DS, DSOp.DS_STOREXCHG_2ADDR_RTN_B64) -ds_storexchg_2addr_stride64_rtn_b64 = functools.partial(DS, DSOp.DS_STOREXCHG_2ADDR_STRIDE64_RTN_B64) -ds_cmpstore_rtn_b64 = functools.partial(DS, DSOp.DS_CMPSTORE_RTN_B64) -ds_cmpstore_rtn_f64 = functools.partial(DS, DSOp.DS_CMPSTORE_RTN_F64) -ds_min_rtn_f64 = functools.partial(DS, DSOp.DS_MIN_RTN_F64) -ds_max_rtn_f64 = functools.partial(DS, DSOp.DS_MAX_RTN_F64) -ds_load_b64 = functools.partial(DS, DSOp.DS_LOAD_B64) -ds_load_2addr_b64 = functools.partial(DS, DSOp.DS_LOAD_2ADDR_B64) -ds_load_2addr_stride64_b64 = functools.partial(DS, DSOp.DS_LOAD_2ADDR_STRIDE64_B64) -ds_add_rtn_f32 = functools.partial(DS, DSOp.DS_ADD_RTN_F32) -ds_add_gs_reg_rtn = functools.partial(DS, DSOp.DS_ADD_GS_REG_RTN) -ds_sub_gs_reg_rtn = functools.partial(DS, DSOp.DS_SUB_GS_REG_RTN) -ds_condxchg32_rtn_b64 = functools.partial(DS, DSOp.DS_CONDXCHG32_RTN_B64) -ds_store_b8_d16_hi = functools.partial(DS, DSOp.DS_STORE_B8_D16_HI) -ds_store_b16_d16_hi = functools.partial(DS, DSOp.DS_STORE_B16_D16_HI) -ds_load_u8_d16 = functools.partial(DS, DSOp.DS_LOAD_U8_D16) -ds_load_u8_d16_hi = functools.partial(DS, DSOp.DS_LOAD_U8_D16_HI) -ds_load_i8_d16 = functools.partial(DS, DSOp.DS_LOAD_I8_D16) -ds_load_i8_d16_hi = functools.partial(DS, DSOp.DS_LOAD_I8_D16_HI) -ds_load_u16_d16 = functools.partial(DS, DSOp.DS_LOAD_U16_D16) -ds_load_u16_d16_hi = functools.partial(DS, DSOp.DS_LOAD_U16_D16_HI) -ds_bvh_stack_rtn_b32 = functools.partial(DS, DSOp.DS_BVH_STACK_RTN_B32) -ds_store_addtid_b32 = functools.partial(DS, DSOp.DS_STORE_ADDTID_B32) -ds_load_addtid_b32 = functools.partial(DS, DSOp.DS_LOAD_ADDTID_B32) -ds_permute_b32 = functools.partial(DS, DSOp.DS_PERMUTE_B32) -ds_bpermute_b32 = functools.partial(DS, DSOp.DS_BPERMUTE_B32) -ds_store_b96 = functools.partial(DS, DSOp.DS_STORE_B96) -ds_store_b128 = functools.partial(DS, DSOp.DS_STORE_B128) -ds_load_b96 = functools.partial(DS, DSOp.DS_LOAD_B96) -ds_load_b128 = functools.partial(DS, DSOp.DS_LOAD_B128) -flat_load_u8 = functools.partial(FLAT, FLATOp.FLAT_LOAD_U8) -flat_load_i8 = functools.partial(FLAT, FLATOp.FLAT_LOAD_I8) -flat_load_u16 = functools.partial(FLAT, FLATOp.FLAT_LOAD_U16) -flat_load_i16 = functools.partial(FLAT, FLATOp.FLAT_LOAD_I16) -flat_load_b32 = functools.partial(FLAT, FLATOp.FLAT_LOAD_B32) -flat_load_b64 = functools.partial(FLAT, FLATOp.FLAT_LOAD_B64) -flat_load_b96 = functools.partial(FLAT, FLATOp.FLAT_LOAD_B96) -flat_load_b128 = functools.partial(FLAT, FLATOp.FLAT_LOAD_B128) -flat_store_b8 = functools.partial(FLAT, FLATOp.FLAT_STORE_B8) -flat_store_b16 = functools.partial(FLAT, FLATOp.FLAT_STORE_B16) -flat_store_b32 = functools.partial(FLAT, FLATOp.FLAT_STORE_B32) -flat_store_b64 = functools.partial(FLAT, FLATOp.FLAT_STORE_B64) -flat_store_b96 = functools.partial(FLAT, FLATOp.FLAT_STORE_B96) -flat_store_b128 = functools.partial(FLAT, FLATOp.FLAT_STORE_B128) -flat_load_d16_u8 = functools.partial(FLAT, FLATOp.FLAT_LOAD_D16_U8) -flat_load_d16_i8 = functools.partial(FLAT, FLATOp.FLAT_LOAD_D16_I8) -flat_load_d16_b16 = functools.partial(FLAT, FLATOp.FLAT_LOAD_D16_B16) -flat_load_d16_hi_u8 = functools.partial(FLAT, FLATOp.FLAT_LOAD_D16_HI_U8) -flat_load_d16_hi_i8 = functools.partial(FLAT, FLATOp.FLAT_LOAD_D16_HI_I8) -flat_load_d16_hi_b16 = functools.partial(FLAT, FLATOp.FLAT_LOAD_D16_HI_B16) -flat_store_d16_hi_b8 = functools.partial(FLAT, FLATOp.FLAT_STORE_D16_HI_B8) -flat_store_d16_hi_b16 = functools.partial(FLAT, FLATOp.FLAT_STORE_D16_HI_B16) -global_load_addtid_b32 = functools.partial(FLAT, FLATOp.GLOBAL_LOAD_ADDTID_B32) -global_store_addtid_b32 = functools.partial(FLAT, FLATOp.GLOBAL_STORE_ADDTID_B32) -flat_atomic_swap_b32 = functools.partial(FLAT, FLATOp.FLAT_ATOMIC_SWAP_B32) -flat_atomic_cmpswap_b32 = functools.partial(FLAT, FLATOp.FLAT_ATOMIC_CMPSWAP_B32) -flat_atomic_add_u32 = functools.partial(FLAT, FLATOp.FLAT_ATOMIC_ADD_U32) -flat_atomic_sub_u32 = functools.partial(FLAT, FLATOp.FLAT_ATOMIC_SUB_U32) -flat_atomic_csub_u32 = functools.partial(FLAT, FLATOp.FLAT_ATOMIC_CSUB_U32) -flat_atomic_min_i32 = functools.partial(FLAT, FLATOp.FLAT_ATOMIC_MIN_I32) -flat_atomic_min_u32 = functools.partial(FLAT, FLATOp.FLAT_ATOMIC_MIN_U32) -flat_atomic_max_i32 = functools.partial(FLAT, FLATOp.FLAT_ATOMIC_MAX_I32) -flat_atomic_max_u32 = functools.partial(FLAT, FLATOp.FLAT_ATOMIC_MAX_U32) -flat_atomic_and_b32 = functools.partial(FLAT, FLATOp.FLAT_ATOMIC_AND_B32) -flat_atomic_or_b32 = functools.partial(FLAT, FLATOp.FLAT_ATOMIC_OR_B32) -flat_atomic_xor_b32 = functools.partial(FLAT, FLATOp.FLAT_ATOMIC_XOR_B32) -flat_atomic_inc_u32 = functools.partial(FLAT, FLATOp.FLAT_ATOMIC_INC_U32) -flat_atomic_dec_u32 = functools.partial(FLAT, FLATOp.FLAT_ATOMIC_DEC_U32) -flat_atomic_swap_b64 = functools.partial(FLAT, FLATOp.FLAT_ATOMIC_SWAP_B64) -flat_atomic_cmpswap_b64 = functools.partial(FLAT, FLATOp.FLAT_ATOMIC_CMPSWAP_B64) -flat_atomic_add_u64 = functools.partial(FLAT, FLATOp.FLAT_ATOMIC_ADD_U64) -flat_atomic_sub_u64 = functools.partial(FLAT, FLATOp.FLAT_ATOMIC_SUB_U64) -flat_atomic_min_i64 = functools.partial(FLAT, FLATOp.FLAT_ATOMIC_MIN_I64) -flat_atomic_min_u64 = functools.partial(FLAT, FLATOp.FLAT_ATOMIC_MIN_U64) -flat_atomic_max_i64 = functools.partial(FLAT, FLATOp.FLAT_ATOMIC_MAX_I64) -flat_atomic_max_u64 = functools.partial(FLAT, FLATOp.FLAT_ATOMIC_MAX_U64) -flat_atomic_and_b64 = functools.partial(FLAT, FLATOp.FLAT_ATOMIC_AND_B64) -flat_atomic_or_b64 = functools.partial(FLAT, FLATOp.FLAT_ATOMIC_OR_B64) -flat_atomic_xor_b64 = functools.partial(FLAT, FLATOp.FLAT_ATOMIC_XOR_B64) -flat_atomic_inc_u64 = functools.partial(FLAT, FLATOp.FLAT_ATOMIC_INC_U64) -flat_atomic_dec_u64 = functools.partial(FLAT, FLATOp.FLAT_ATOMIC_DEC_U64) -flat_atomic_cmpswap_f32 = functools.partial(FLAT, FLATOp.FLAT_ATOMIC_CMPSWAP_F32) -flat_atomic_min_f32 = functools.partial(FLAT, FLATOp.FLAT_ATOMIC_MIN_F32) -flat_atomic_max_f32 = functools.partial(FLAT, FLATOp.FLAT_ATOMIC_MAX_F32) -flat_atomic_add_f32 = functools.partial(FLAT, FLATOp.FLAT_ATOMIC_ADD_F32) -global_load_u8 = functools.partial(FLAT, GLOBALOp.GLOBAL_LOAD_U8, seg=2) -global_load_i8 = functools.partial(FLAT, GLOBALOp.GLOBAL_LOAD_I8, seg=2) -global_load_u16 = functools.partial(FLAT, GLOBALOp.GLOBAL_LOAD_U16, seg=2) -global_load_i16 = functools.partial(FLAT, GLOBALOp.GLOBAL_LOAD_I16, seg=2) -global_load_b32 = functools.partial(FLAT, GLOBALOp.GLOBAL_LOAD_B32, seg=2) -global_load_b64 = functools.partial(FLAT, GLOBALOp.GLOBAL_LOAD_B64, seg=2) -global_load_b96 = functools.partial(FLAT, GLOBALOp.GLOBAL_LOAD_B96, seg=2) -global_load_b128 = functools.partial(FLAT, GLOBALOp.GLOBAL_LOAD_B128, seg=2) -global_store_b8 = functools.partial(FLAT, GLOBALOp.GLOBAL_STORE_B8, seg=2) -global_store_b16 = functools.partial(FLAT, GLOBALOp.GLOBAL_STORE_B16, seg=2) -global_store_b32 = functools.partial(FLAT, GLOBALOp.GLOBAL_STORE_B32, seg=2) -global_store_b64 = functools.partial(FLAT, GLOBALOp.GLOBAL_STORE_B64, seg=2) -global_store_b96 = functools.partial(FLAT, GLOBALOp.GLOBAL_STORE_B96, seg=2) -global_store_b128 = functools.partial(FLAT, GLOBALOp.GLOBAL_STORE_B128, seg=2) -global_load_d16_u8 = functools.partial(FLAT, GLOBALOp.GLOBAL_LOAD_D16_U8, seg=2) -global_load_d16_i8 = functools.partial(FLAT, GLOBALOp.GLOBAL_LOAD_D16_I8, seg=2) -global_load_d16_b16 = functools.partial(FLAT, GLOBALOp.GLOBAL_LOAD_D16_B16, seg=2) -global_load_d16_hi_u8 = functools.partial(FLAT, GLOBALOp.GLOBAL_LOAD_D16_HI_U8, seg=2) -global_load_d16_hi_i8 = functools.partial(FLAT, GLOBALOp.GLOBAL_LOAD_D16_HI_I8, seg=2) -global_load_d16_hi_b16 = functools.partial(FLAT, GLOBALOp.GLOBAL_LOAD_D16_HI_B16, seg=2) -global_store_d16_hi_b8 = functools.partial(FLAT, GLOBALOp.GLOBAL_STORE_D16_HI_B8, seg=2) -global_store_d16_hi_b16 = functools.partial(FLAT, GLOBALOp.GLOBAL_STORE_D16_HI_B16, seg=2) -global_load_addtid_b32 = functools.partial(FLAT, GLOBALOp.GLOBAL_LOAD_ADDTID_B32, seg=2) -global_store_addtid_b32 = functools.partial(FLAT, GLOBALOp.GLOBAL_STORE_ADDTID_B32, seg=2) -global_atomic_swap_b32 = functools.partial(FLAT, GLOBALOp.GLOBAL_ATOMIC_SWAP_B32, seg=2) -global_atomic_cmpswap_b32 = functools.partial(FLAT, GLOBALOp.GLOBAL_ATOMIC_CMPSWAP_B32, seg=2) -global_atomic_add_u32 = functools.partial(FLAT, GLOBALOp.GLOBAL_ATOMIC_ADD_U32, seg=2) -global_atomic_sub_u32 = functools.partial(FLAT, GLOBALOp.GLOBAL_ATOMIC_SUB_U32, seg=2) -global_atomic_csub_u32 = functools.partial(FLAT, GLOBALOp.GLOBAL_ATOMIC_CSUB_U32, seg=2) -global_atomic_min_i32 = functools.partial(FLAT, GLOBALOp.GLOBAL_ATOMIC_MIN_I32, seg=2) -global_atomic_min_u32 = functools.partial(FLAT, GLOBALOp.GLOBAL_ATOMIC_MIN_U32, seg=2) -global_atomic_max_i32 = functools.partial(FLAT, GLOBALOp.GLOBAL_ATOMIC_MAX_I32, seg=2) -global_atomic_max_u32 = functools.partial(FLAT, GLOBALOp.GLOBAL_ATOMIC_MAX_U32, seg=2) -global_atomic_and_b32 = functools.partial(FLAT, GLOBALOp.GLOBAL_ATOMIC_AND_B32, seg=2) -global_atomic_or_b32 = functools.partial(FLAT, GLOBALOp.GLOBAL_ATOMIC_OR_B32, seg=2) -global_atomic_xor_b32 = functools.partial(FLAT, GLOBALOp.GLOBAL_ATOMIC_XOR_B32, seg=2) -global_atomic_inc_u32 = functools.partial(FLAT, GLOBALOp.GLOBAL_ATOMIC_INC_U32, seg=2) -global_atomic_dec_u32 = functools.partial(FLAT, GLOBALOp.GLOBAL_ATOMIC_DEC_U32, seg=2) -global_atomic_swap_b64 = functools.partial(FLAT, GLOBALOp.GLOBAL_ATOMIC_SWAP_B64, seg=2) -global_atomic_cmpswap_b64 = functools.partial(FLAT, GLOBALOp.GLOBAL_ATOMIC_CMPSWAP_B64, seg=2) -global_atomic_add_u64 = functools.partial(FLAT, GLOBALOp.GLOBAL_ATOMIC_ADD_U64, seg=2) -global_atomic_sub_u64 = functools.partial(FLAT, GLOBALOp.GLOBAL_ATOMIC_SUB_U64, seg=2) -global_atomic_min_i64 = functools.partial(FLAT, GLOBALOp.GLOBAL_ATOMIC_MIN_I64, seg=2) -global_atomic_min_u64 = functools.partial(FLAT, GLOBALOp.GLOBAL_ATOMIC_MIN_U64, seg=2) -global_atomic_max_i64 = functools.partial(FLAT, GLOBALOp.GLOBAL_ATOMIC_MAX_I64, seg=2) -global_atomic_max_u64 = functools.partial(FLAT, GLOBALOp.GLOBAL_ATOMIC_MAX_U64, seg=2) -global_atomic_and_b64 = functools.partial(FLAT, GLOBALOp.GLOBAL_ATOMIC_AND_B64, seg=2) -global_atomic_or_b64 = functools.partial(FLAT, GLOBALOp.GLOBAL_ATOMIC_OR_B64, seg=2) -global_atomic_xor_b64 = functools.partial(FLAT, GLOBALOp.GLOBAL_ATOMIC_XOR_B64, seg=2) -global_atomic_inc_u64 = functools.partial(FLAT, GLOBALOp.GLOBAL_ATOMIC_INC_U64, seg=2) -global_atomic_dec_u64 = functools.partial(FLAT, GLOBALOp.GLOBAL_ATOMIC_DEC_U64, seg=2) -global_atomic_cmpswap_f32 = functools.partial(FLAT, GLOBALOp.GLOBAL_ATOMIC_CMPSWAP_F32, seg=2) -global_atomic_min_f32 = functools.partial(FLAT, GLOBALOp.GLOBAL_ATOMIC_MIN_F32, seg=2) -global_atomic_max_f32 = functools.partial(FLAT, GLOBALOp.GLOBAL_ATOMIC_MAX_F32, seg=2) -global_atomic_add_f32 = functools.partial(FLAT, GLOBALOp.GLOBAL_ATOMIC_ADD_F32, seg=2) -image_load = functools.partial(MIMG, MIMGOp.IMAGE_LOAD) -image_load_mip = functools.partial(MIMG, MIMGOp.IMAGE_LOAD_MIP) -image_load_pck = functools.partial(MIMG, MIMGOp.IMAGE_LOAD_PCK) -image_load_pck_sgn = functools.partial(MIMG, MIMGOp.IMAGE_LOAD_PCK_SGN) -image_load_mip_pck = functools.partial(MIMG, MIMGOp.IMAGE_LOAD_MIP_PCK) -image_load_mip_pck_sgn = functools.partial(MIMG, MIMGOp.IMAGE_LOAD_MIP_PCK_SGN) -image_store = functools.partial(MIMG, MIMGOp.IMAGE_STORE) -image_store_mip = functools.partial(MIMG, MIMGOp.IMAGE_STORE_MIP) -image_store_pck = functools.partial(MIMG, MIMGOp.IMAGE_STORE_PCK) -image_store_mip_pck = functools.partial(MIMG, MIMGOp.IMAGE_STORE_MIP_PCK) -image_atomic_swap = functools.partial(MIMG, MIMGOp.IMAGE_ATOMIC_SWAP) -image_atomic_cmpswap = functools.partial(MIMG, MIMGOp.IMAGE_ATOMIC_CMPSWAP) -image_atomic_add = functools.partial(MIMG, MIMGOp.IMAGE_ATOMIC_ADD) -image_atomic_sub = functools.partial(MIMG, MIMGOp.IMAGE_ATOMIC_SUB) -image_atomic_smin = functools.partial(MIMG, MIMGOp.IMAGE_ATOMIC_SMIN) -image_atomic_umin = functools.partial(MIMG, MIMGOp.IMAGE_ATOMIC_UMIN) -image_atomic_smax = functools.partial(MIMG, MIMGOp.IMAGE_ATOMIC_SMAX) -image_atomic_umax = functools.partial(MIMG, MIMGOp.IMAGE_ATOMIC_UMAX) -image_atomic_and = functools.partial(MIMG, MIMGOp.IMAGE_ATOMIC_AND) -image_atomic_or = functools.partial(MIMG, MIMGOp.IMAGE_ATOMIC_OR) -image_atomic_xor = functools.partial(MIMG, MIMGOp.IMAGE_ATOMIC_XOR) -image_atomic_inc = functools.partial(MIMG, MIMGOp.IMAGE_ATOMIC_INC) -image_atomic_dec = functools.partial(MIMG, MIMGOp.IMAGE_ATOMIC_DEC) -image_get_resinfo = functools.partial(MIMG, MIMGOp.IMAGE_GET_RESINFO) -image_msaa_load = functools.partial(MIMG, MIMGOp.IMAGE_MSAA_LOAD) -image_bvh_intersect_ray = functools.partial(MIMG, MIMGOp.IMAGE_BVH_INTERSECT_RAY) -image_bvh64_intersect_ray = functools.partial(MIMG, MIMGOp.IMAGE_BVH64_INTERSECT_RAY) -image_sample = functools.partial(MIMG, MIMGOp.IMAGE_SAMPLE) -image_sample_d = functools.partial(MIMG, MIMGOp.IMAGE_SAMPLE_D) -image_sample_l = functools.partial(MIMG, MIMGOp.IMAGE_SAMPLE_L) -image_sample_b = functools.partial(MIMG, MIMGOp.IMAGE_SAMPLE_B) -image_sample_lz = functools.partial(MIMG, MIMGOp.IMAGE_SAMPLE_LZ) -image_sample_c = functools.partial(MIMG, MIMGOp.IMAGE_SAMPLE_C) -image_sample_c_d = functools.partial(MIMG, MIMGOp.IMAGE_SAMPLE_C_D) -image_sample_c_l = functools.partial(MIMG, MIMGOp.IMAGE_SAMPLE_C_L) -image_sample_c_b = functools.partial(MIMG, MIMGOp.IMAGE_SAMPLE_C_B) -image_sample_c_lz = functools.partial(MIMG, MIMGOp.IMAGE_SAMPLE_C_LZ) -image_sample_o = functools.partial(MIMG, MIMGOp.IMAGE_SAMPLE_O) -image_sample_d_o = functools.partial(MIMG, MIMGOp.IMAGE_SAMPLE_D_O) -image_sample_l_o = functools.partial(MIMG, MIMGOp.IMAGE_SAMPLE_L_O) -image_sample_b_o = functools.partial(MIMG, MIMGOp.IMAGE_SAMPLE_B_O) -image_sample_lz_o = functools.partial(MIMG, MIMGOp.IMAGE_SAMPLE_LZ_O) -image_sample_c_o = functools.partial(MIMG, MIMGOp.IMAGE_SAMPLE_C_O) -image_sample_c_d_o = functools.partial(MIMG, MIMGOp.IMAGE_SAMPLE_C_D_O) -image_sample_c_l_o = functools.partial(MIMG, MIMGOp.IMAGE_SAMPLE_C_L_O) -image_sample_c_b_o = functools.partial(MIMG, MIMGOp.IMAGE_SAMPLE_C_B_O) -image_sample_c_lz_o = functools.partial(MIMG, MIMGOp.IMAGE_SAMPLE_C_LZ_O) -image_gather4 = functools.partial(MIMG, MIMGOp.IMAGE_GATHER4) -image_gather4_l = functools.partial(MIMG, MIMGOp.IMAGE_GATHER4_L) -image_gather4_b = functools.partial(MIMG, MIMGOp.IMAGE_GATHER4_B) -image_gather4_lz = functools.partial(MIMG, MIMGOp.IMAGE_GATHER4_LZ) -image_gather4_c = functools.partial(MIMG, MIMGOp.IMAGE_GATHER4_C) -image_gather4_c_lz = functools.partial(MIMG, MIMGOp.IMAGE_GATHER4_C_LZ) -image_gather4_o = functools.partial(MIMG, MIMGOp.IMAGE_GATHER4_O) -image_gather4_lz_o = functools.partial(MIMG, MIMGOp.IMAGE_GATHER4_LZ_O) -image_gather4_c_lz_o = functools.partial(MIMG, MIMGOp.IMAGE_GATHER4_C_LZ_O) -image_get_lod = functools.partial(MIMG, MIMGOp.IMAGE_GET_LOD) -image_sample_d_g16 = functools.partial(MIMG, MIMGOp.IMAGE_SAMPLE_D_G16) -image_sample_c_d_g16 = functools.partial(MIMG, MIMGOp.IMAGE_SAMPLE_C_D_G16) -image_sample_d_o_g16 = functools.partial(MIMG, MIMGOp.IMAGE_SAMPLE_D_O_G16) -image_sample_c_d_o_g16 = functools.partial(MIMG, MIMGOp.IMAGE_SAMPLE_C_D_O_G16) -image_sample_cl = functools.partial(MIMG, MIMGOp.IMAGE_SAMPLE_CL) -image_sample_d_cl = functools.partial(MIMG, MIMGOp.IMAGE_SAMPLE_D_CL) -image_sample_b_cl = functools.partial(MIMG, MIMGOp.IMAGE_SAMPLE_B_CL) -image_sample_c_cl = functools.partial(MIMG, MIMGOp.IMAGE_SAMPLE_C_CL) -image_sample_c_d_cl = functools.partial(MIMG, MIMGOp.IMAGE_SAMPLE_C_D_CL) -image_sample_c_b_cl = functools.partial(MIMG, MIMGOp.IMAGE_SAMPLE_C_B_CL) -image_sample_cl_o = functools.partial(MIMG, MIMGOp.IMAGE_SAMPLE_CL_O) -image_sample_d_cl_o = functools.partial(MIMG, MIMGOp.IMAGE_SAMPLE_D_CL_O) -image_sample_b_cl_o = functools.partial(MIMG, MIMGOp.IMAGE_SAMPLE_B_CL_O) -image_sample_c_cl_o = functools.partial(MIMG, MIMGOp.IMAGE_SAMPLE_C_CL_O) -image_sample_c_d_cl_o = functools.partial(MIMG, MIMGOp.IMAGE_SAMPLE_C_D_CL_O) -image_sample_c_b_cl_o = functools.partial(MIMG, MIMGOp.IMAGE_SAMPLE_C_B_CL_O) -image_sample_c_d_cl_g16 = functools.partial(MIMG, MIMGOp.IMAGE_SAMPLE_C_D_CL_G16) -image_sample_d_cl_o_g16 = functools.partial(MIMG, MIMGOp.IMAGE_SAMPLE_D_CL_O_G16) -image_sample_c_d_cl_o_g16 = functools.partial(MIMG, MIMGOp.IMAGE_SAMPLE_C_D_CL_O_G16) -image_sample_d_cl_g16 = functools.partial(MIMG, MIMGOp.IMAGE_SAMPLE_D_CL_G16) -image_gather4_cl = functools.partial(MIMG, MIMGOp.IMAGE_GATHER4_CL) -image_gather4_b_cl = functools.partial(MIMG, MIMGOp.IMAGE_GATHER4_B_CL) -image_gather4_c_cl = functools.partial(MIMG, MIMGOp.IMAGE_GATHER4_C_CL) -image_gather4_c_l = functools.partial(MIMG, MIMGOp.IMAGE_GATHER4_C_L) -image_gather4_c_b = functools.partial(MIMG, MIMGOp.IMAGE_GATHER4_C_B) -image_gather4_c_b_cl = functools.partial(MIMG, MIMGOp.IMAGE_GATHER4_C_B_CL) -image_gather4h = functools.partial(MIMG, MIMGOp.IMAGE_GATHER4H) -tbuffer_load_format_x = functools.partial(MTBUF, MTBUFOp.TBUFFER_LOAD_FORMAT_X) -tbuffer_load_format_xy = functools.partial(MTBUF, MTBUFOp.TBUFFER_LOAD_FORMAT_XY) -tbuffer_load_format_xyz = functools.partial(MTBUF, MTBUFOp.TBUFFER_LOAD_FORMAT_XYZ) -tbuffer_load_format_xyzw = functools.partial(MTBUF, MTBUFOp.TBUFFER_LOAD_FORMAT_XYZW) -tbuffer_store_format_x = functools.partial(MTBUF, MTBUFOp.TBUFFER_STORE_FORMAT_X) -tbuffer_store_format_xy = functools.partial(MTBUF, MTBUFOp.TBUFFER_STORE_FORMAT_XY) -tbuffer_store_format_xyz = functools.partial(MTBUF, MTBUFOp.TBUFFER_STORE_FORMAT_XYZ) -tbuffer_store_format_xyzw = functools.partial(MTBUF, MTBUFOp.TBUFFER_STORE_FORMAT_XYZW) -tbuffer_load_d16_format_x = functools.partial(MTBUF, MTBUFOp.TBUFFER_LOAD_D16_FORMAT_X) -tbuffer_load_d16_format_xy = functools.partial(MTBUF, MTBUFOp.TBUFFER_LOAD_D16_FORMAT_XY) -tbuffer_load_d16_format_xyz = functools.partial(MTBUF, MTBUFOp.TBUFFER_LOAD_D16_FORMAT_XYZ) -tbuffer_load_d16_format_xyzw = functools.partial(MTBUF, MTBUFOp.TBUFFER_LOAD_D16_FORMAT_XYZW) -tbuffer_store_d16_format_x = functools.partial(MTBUF, MTBUFOp.TBUFFER_STORE_D16_FORMAT_X) -tbuffer_store_d16_format_xy = functools.partial(MTBUF, MTBUFOp.TBUFFER_STORE_D16_FORMAT_XY) -tbuffer_store_d16_format_xyz = functools.partial(MTBUF, MTBUFOp.TBUFFER_STORE_D16_FORMAT_XYZ) -tbuffer_store_d16_format_xyzw = functools.partial(MTBUF, MTBUFOp.TBUFFER_STORE_D16_FORMAT_XYZW) -buffer_load_format_x = functools.partial(MUBUF, MUBUFOp.BUFFER_LOAD_FORMAT_X) -buffer_load_format_xy = functools.partial(MUBUF, MUBUFOp.BUFFER_LOAD_FORMAT_XY) -buffer_load_format_xyz = functools.partial(MUBUF, MUBUFOp.BUFFER_LOAD_FORMAT_XYZ) -buffer_load_format_xyzw = functools.partial(MUBUF, MUBUFOp.BUFFER_LOAD_FORMAT_XYZW) -buffer_store_format_x = functools.partial(MUBUF, MUBUFOp.BUFFER_STORE_FORMAT_X) -buffer_store_format_xy = functools.partial(MUBUF, MUBUFOp.BUFFER_STORE_FORMAT_XY) -buffer_store_format_xyz = functools.partial(MUBUF, MUBUFOp.BUFFER_STORE_FORMAT_XYZ) -buffer_store_format_xyzw = functools.partial(MUBUF, MUBUFOp.BUFFER_STORE_FORMAT_XYZW) -buffer_load_d16_format_x = functools.partial(MUBUF, MUBUFOp.BUFFER_LOAD_D16_FORMAT_X) -buffer_load_d16_format_xy = functools.partial(MUBUF, MUBUFOp.BUFFER_LOAD_D16_FORMAT_XY) -buffer_load_d16_format_xyz = functools.partial(MUBUF, MUBUFOp.BUFFER_LOAD_D16_FORMAT_XYZ) -buffer_load_d16_format_xyzw = functools.partial(MUBUF, MUBUFOp.BUFFER_LOAD_D16_FORMAT_XYZW) -buffer_store_d16_format_x = functools.partial(MUBUF, MUBUFOp.BUFFER_STORE_D16_FORMAT_X) -buffer_store_d16_format_xy = functools.partial(MUBUF, MUBUFOp.BUFFER_STORE_D16_FORMAT_XY) -buffer_store_d16_format_xyz = functools.partial(MUBUF, MUBUFOp.BUFFER_STORE_D16_FORMAT_XYZ) -buffer_store_d16_format_xyzw = functools.partial(MUBUF, MUBUFOp.BUFFER_STORE_D16_FORMAT_XYZW) -buffer_load_u8 = functools.partial(MUBUF, MUBUFOp.BUFFER_LOAD_U8) -buffer_load_i8 = functools.partial(MUBUF, MUBUFOp.BUFFER_LOAD_I8) -buffer_load_u16 = functools.partial(MUBUF, MUBUFOp.BUFFER_LOAD_U16) -buffer_load_i16 = functools.partial(MUBUF, MUBUFOp.BUFFER_LOAD_I16) -buffer_load_b32 = functools.partial(MUBUF, MUBUFOp.BUFFER_LOAD_B32) -buffer_load_b64 = functools.partial(MUBUF, MUBUFOp.BUFFER_LOAD_B64) -buffer_load_b96 = functools.partial(MUBUF, MUBUFOp.BUFFER_LOAD_B96) -buffer_load_b128 = functools.partial(MUBUF, MUBUFOp.BUFFER_LOAD_B128) -buffer_store_b8 = functools.partial(MUBUF, MUBUFOp.BUFFER_STORE_B8) -buffer_store_b16 = functools.partial(MUBUF, MUBUFOp.BUFFER_STORE_B16) -buffer_store_b32 = functools.partial(MUBUF, MUBUFOp.BUFFER_STORE_B32) -buffer_store_b64 = functools.partial(MUBUF, MUBUFOp.BUFFER_STORE_B64) -buffer_store_b96 = functools.partial(MUBUF, MUBUFOp.BUFFER_STORE_B96) -buffer_store_b128 = functools.partial(MUBUF, MUBUFOp.BUFFER_STORE_B128) -buffer_load_d16_u8 = functools.partial(MUBUF, MUBUFOp.BUFFER_LOAD_D16_U8) -buffer_load_d16_i8 = functools.partial(MUBUF, MUBUFOp.BUFFER_LOAD_D16_I8) -buffer_load_d16_b16 = functools.partial(MUBUF, MUBUFOp.BUFFER_LOAD_D16_B16) -buffer_load_d16_hi_u8 = functools.partial(MUBUF, MUBUFOp.BUFFER_LOAD_D16_HI_U8) -buffer_load_d16_hi_i8 = functools.partial(MUBUF, MUBUFOp.BUFFER_LOAD_D16_HI_I8) -buffer_load_d16_hi_b16 = functools.partial(MUBUF, MUBUFOp.BUFFER_LOAD_D16_HI_B16) -buffer_store_d16_hi_b8 = functools.partial(MUBUF, MUBUFOp.BUFFER_STORE_D16_HI_B8) -buffer_store_d16_hi_b16 = functools.partial(MUBUF, MUBUFOp.BUFFER_STORE_D16_HI_B16) -buffer_load_d16_hi_format_x = functools.partial(MUBUF, MUBUFOp.BUFFER_LOAD_D16_HI_FORMAT_X) -buffer_store_d16_hi_format_x = functools.partial(MUBUF, MUBUFOp.BUFFER_STORE_D16_HI_FORMAT_X) -buffer_gl0_inv = functools.partial(MUBUF, MUBUFOp.BUFFER_GL0_INV) -buffer_gl1_inv = functools.partial(MUBUF, MUBUFOp.BUFFER_GL1_INV) -buffer_atomic_swap_b32 = functools.partial(MUBUF, MUBUFOp.BUFFER_ATOMIC_SWAP_B32) -buffer_atomic_cmpswap_b32 = functools.partial(MUBUF, MUBUFOp.BUFFER_ATOMIC_CMPSWAP_B32) -buffer_atomic_add_u32 = functools.partial(MUBUF, MUBUFOp.BUFFER_ATOMIC_ADD_U32) -buffer_atomic_sub_u32 = functools.partial(MUBUF, MUBUFOp.BUFFER_ATOMIC_SUB_U32) -buffer_atomic_csub_u32 = functools.partial(MUBUF, MUBUFOp.BUFFER_ATOMIC_CSUB_U32) -buffer_atomic_min_i32 = functools.partial(MUBUF, MUBUFOp.BUFFER_ATOMIC_MIN_I32) -buffer_atomic_min_u32 = functools.partial(MUBUF, MUBUFOp.BUFFER_ATOMIC_MIN_U32) -buffer_atomic_max_i32 = functools.partial(MUBUF, MUBUFOp.BUFFER_ATOMIC_MAX_I32) -buffer_atomic_max_u32 = functools.partial(MUBUF, MUBUFOp.BUFFER_ATOMIC_MAX_U32) -buffer_atomic_and_b32 = functools.partial(MUBUF, MUBUFOp.BUFFER_ATOMIC_AND_B32) -buffer_atomic_or_b32 = functools.partial(MUBUF, MUBUFOp.BUFFER_ATOMIC_OR_B32) -buffer_atomic_xor_b32 = functools.partial(MUBUF, MUBUFOp.BUFFER_ATOMIC_XOR_B32) -buffer_atomic_inc_u32 = functools.partial(MUBUF, MUBUFOp.BUFFER_ATOMIC_INC_U32) -buffer_atomic_dec_u32 = functools.partial(MUBUF, MUBUFOp.BUFFER_ATOMIC_DEC_U32) -buffer_atomic_swap_b64 = functools.partial(MUBUF, MUBUFOp.BUFFER_ATOMIC_SWAP_B64) -buffer_atomic_cmpswap_b64 = functools.partial(MUBUF, MUBUFOp.BUFFER_ATOMIC_CMPSWAP_B64) -buffer_atomic_add_u64 = functools.partial(MUBUF, MUBUFOp.BUFFER_ATOMIC_ADD_U64) -buffer_atomic_sub_u64 = functools.partial(MUBUF, MUBUFOp.BUFFER_ATOMIC_SUB_U64) -buffer_atomic_min_i64 = functools.partial(MUBUF, MUBUFOp.BUFFER_ATOMIC_MIN_I64) -buffer_atomic_min_u64 = functools.partial(MUBUF, MUBUFOp.BUFFER_ATOMIC_MIN_U64) -buffer_atomic_max_i64 = functools.partial(MUBUF, MUBUFOp.BUFFER_ATOMIC_MAX_I64) -buffer_atomic_max_u64 = functools.partial(MUBUF, MUBUFOp.BUFFER_ATOMIC_MAX_U64) -buffer_atomic_and_b64 = functools.partial(MUBUF, MUBUFOp.BUFFER_ATOMIC_AND_B64) -buffer_atomic_or_b64 = functools.partial(MUBUF, MUBUFOp.BUFFER_ATOMIC_OR_B64) -buffer_atomic_xor_b64 = functools.partial(MUBUF, MUBUFOp.BUFFER_ATOMIC_XOR_B64) -buffer_atomic_inc_u64 = functools.partial(MUBUF, MUBUFOp.BUFFER_ATOMIC_INC_U64) -buffer_atomic_dec_u64 = functools.partial(MUBUF, MUBUFOp.BUFFER_ATOMIC_DEC_U64) -buffer_atomic_cmpswap_f32 = functools.partial(MUBUF, MUBUFOp.BUFFER_ATOMIC_CMPSWAP_F32) -buffer_atomic_min_f32 = functools.partial(MUBUF, MUBUFOp.BUFFER_ATOMIC_MIN_F32) -buffer_atomic_max_f32 = functools.partial(MUBUF, MUBUFOp.BUFFER_ATOMIC_MAX_F32) -buffer_atomic_add_f32 = functools.partial(MUBUF, MUBUFOp.BUFFER_ATOMIC_ADD_F32) -scratch_load_u8 = functools.partial(FLAT, SCRATCHOp.SCRATCH_LOAD_U8, seg=1) -scratch_load_i8 = functools.partial(FLAT, SCRATCHOp.SCRATCH_LOAD_I8, seg=1) -scratch_load_u16 = functools.partial(FLAT, SCRATCHOp.SCRATCH_LOAD_U16, seg=1) -scratch_load_i16 = functools.partial(FLAT, SCRATCHOp.SCRATCH_LOAD_I16, seg=1) -scratch_load_b32 = functools.partial(FLAT, SCRATCHOp.SCRATCH_LOAD_B32, seg=1) -scratch_load_b64 = functools.partial(FLAT, SCRATCHOp.SCRATCH_LOAD_B64, seg=1) -scratch_load_b96 = functools.partial(FLAT, SCRATCHOp.SCRATCH_LOAD_B96, seg=1) -scratch_load_b128 = functools.partial(FLAT, SCRATCHOp.SCRATCH_LOAD_B128, seg=1) -scratch_store_b8 = functools.partial(FLAT, SCRATCHOp.SCRATCH_STORE_B8, seg=1) -scratch_store_b16 = functools.partial(FLAT, SCRATCHOp.SCRATCH_STORE_B16, seg=1) -scratch_store_b32 = functools.partial(FLAT, SCRATCHOp.SCRATCH_STORE_B32, seg=1) -scratch_store_b64 = functools.partial(FLAT, SCRATCHOp.SCRATCH_STORE_B64, seg=1) -scratch_store_b96 = functools.partial(FLAT, SCRATCHOp.SCRATCH_STORE_B96, seg=1) -scratch_store_b128 = functools.partial(FLAT, SCRATCHOp.SCRATCH_STORE_B128, seg=1) -scratch_load_d16_u8 = functools.partial(FLAT, SCRATCHOp.SCRATCH_LOAD_D16_U8, seg=1) -scratch_load_d16_i8 = functools.partial(FLAT, SCRATCHOp.SCRATCH_LOAD_D16_I8, seg=1) -scratch_load_d16_b16 = functools.partial(FLAT, SCRATCHOp.SCRATCH_LOAD_D16_B16, seg=1) -scratch_load_d16_hi_u8 = functools.partial(FLAT, SCRATCHOp.SCRATCH_LOAD_D16_HI_U8, seg=1) -scratch_load_d16_hi_i8 = functools.partial(FLAT, SCRATCHOp.SCRATCH_LOAD_D16_HI_I8, seg=1) -scratch_load_d16_hi_b16 = functools.partial(FLAT, SCRATCHOp.SCRATCH_LOAD_D16_HI_B16, seg=1) -scratch_store_d16_hi_b8 = functools.partial(FLAT, SCRATCHOp.SCRATCH_STORE_D16_HI_B8, seg=1) -scratch_store_d16_hi_b16 = functools.partial(FLAT, SCRATCHOp.SCRATCH_STORE_D16_HI_B16, seg=1) -s_load_b32 = functools.partial(SMEM, SMEMOp.S_LOAD_B32) -s_load_b64 = functools.partial(SMEM, SMEMOp.S_LOAD_B64) -s_load_b128 = functools.partial(SMEM, SMEMOp.S_LOAD_B128) -s_load_b256 = functools.partial(SMEM, SMEMOp.S_LOAD_B256) -s_load_b512 = functools.partial(SMEM, SMEMOp.S_LOAD_B512) -s_buffer_load_b32 = functools.partial(SMEM, SMEMOp.S_BUFFER_LOAD_B32) -s_buffer_load_b64 = functools.partial(SMEM, SMEMOp.S_BUFFER_LOAD_B64) -s_buffer_load_b128 = functools.partial(SMEM, SMEMOp.S_BUFFER_LOAD_B128) -s_buffer_load_b256 = functools.partial(SMEM, SMEMOp.S_BUFFER_LOAD_B256) -s_buffer_load_b512 = functools.partial(SMEM, SMEMOp.S_BUFFER_LOAD_B512) -s_gl1_inv = functools.partial(SMEM, SMEMOp.S_GL1_INV) -s_dcache_inv = functools.partial(SMEM, SMEMOp.S_DCACHE_INV) -s_mov_b32 = functools.partial(SOP1, SOP1Op.S_MOV_B32) -s_mov_b64 = functools.partial(SOP1, SOP1Op.S_MOV_B64) -s_cmov_b32 = functools.partial(SOP1, SOP1Op.S_CMOV_B32) -s_cmov_b64 = functools.partial(SOP1, SOP1Op.S_CMOV_B64) -s_brev_b32 = functools.partial(SOP1, SOP1Op.S_BREV_B32) -s_brev_b64 = functools.partial(SOP1, SOP1Op.S_BREV_B64) -s_ctz_i32_b32 = functools.partial(SOP1, SOP1Op.S_CTZ_I32_B32) -s_ctz_i32_b64 = functools.partial(SOP1, SOP1Op.S_CTZ_I32_B64) -s_clz_i32_u32 = functools.partial(SOP1, SOP1Op.S_CLZ_I32_U32) -s_clz_i32_u64 = functools.partial(SOP1, SOP1Op.S_CLZ_I32_U64) -s_cls_i32 = functools.partial(SOP1, SOP1Op.S_CLS_I32) -s_cls_i32_i64 = functools.partial(SOP1, SOP1Op.S_CLS_I32_I64) -s_sext_i32_i8 = functools.partial(SOP1, SOP1Op.S_SEXT_I32_I8) -s_sext_i32_i16 = functools.partial(SOP1, SOP1Op.S_SEXT_I32_I16) -s_bitset0_b32 = functools.partial(SOP1, SOP1Op.S_BITSET0_B32) -s_bitset0_b64 = functools.partial(SOP1, SOP1Op.S_BITSET0_B64) -s_bitset1_b32 = functools.partial(SOP1, SOP1Op.S_BITSET1_B32) -s_bitset1_b64 = functools.partial(SOP1, SOP1Op.S_BITSET1_B64) -s_bitreplicate_b64_b32 = functools.partial(SOP1, SOP1Op.S_BITREPLICATE_B64_B32) -s_abs_i32 = functools.partial(SOP1, SOP1Op.S_ABS_I32) -s_bcnt0_i32_b32 = functools.partial(SOP1, SOP1Op.S_BCNT0_I32_B32) -s_bcnt0_i32_b64 = functools.partial(SOP1, SOP1Op.S_BCNT0_I32_B64) -s_bcnt1_i32_b32 = functools.partial(SOP1, SOP1Op.S_BCNT1_I32_B32) -s_bcnt1_i32_b64 = functools.partial(SOP1, SOP1Op.S_BCNT1_I32_B64) -s_quadmask_b32 = functools.partial(SOP1, SOP1Op.S_QUADMASK_B32) -s_quadmask_b64 = functools.partial(SOP1, SOP1Op.S_QUADMASK_B64) -s_wqm_b32 = functools.partial(SOP1, SOP1Op.S_WQM_B32) -s_wqm_b64 = functools.partial(SOP1, SOP1Op.S_WQM_B64) -s_not_b32 = functools.partial(SOP1, SOP1Op.S_NOT_B32) -s_not_b64 = functools.partial(SOP1, SOP1Op.S_NOT_B64) -s_and_saveexec_b32 = functools.partial(SOP1, SOP1Op.S_AND_SAVEEXEC_B32) -s_and_saveexec_b64 = functools.partial(SOP1, SOP1Op.S_AND_SAVEEXEC_B64) -s_or_saveexec_b32 = functools.partial(SOP1, SOP1Op.S_OR_SAVEEXEC_B32) -s_or_saveexec_b64 = functools.partial(SOP1, SOP1Op.S_OR_SAVEEXEC_B64) -s_xor_saveexec_b32 = functools.partial(SOP1, SOP1Op.S_XOR_SAVEEXEC_B32) -s_xor_saveexec_b64 = functools.partial(SOP1, SOP1Op.S_XOR_SAVEEXEC_B64) -s_nand_saveexec_b32 = functools.partial(SOP1, SOP1Op.S_NAND_SAVEEXEC_B32) -s_nand_saveexec_b64 = functools.partial(SOP1, SOP1Op.S_NAND_SAVEEXEC_B64) -s_nor_saveexec_b32 = functools.partial(SOP1, SOP1Op.S_NOR_SAVEEXEC_B32) -s_nor_saveexec_b64 = functools.partial(SOP1, SOP1Op.S_NOR_SAVEEXEC_B64) -s_xnor_saveexec_b32 = functools.partial(SOP1, SOP1Op.S_XNOR_SAVEEXEC_B32) -s_xnor_saveexec_b64 = functools.partial(SOP1, SOP1Op.S_XNOR_SAVEEXEC_B64) -s_and_not0_saveexec_b32 = functools.partial(SOP1, SOP1Op.S_AND_NOT0_SAVEEXEC_B32) -s_and_not0_saveexec_b64 = functools.partial(SOP1, SOP1Op.S_AND_NOT0_SAVEEXEC_B64) -s_or_not0_saveexec_b32 = functools.partial(SOP1, SOP1Op.S_OR_NOT0_SAVEEXEC_B32) -s_or_not0_saveexec_b64 = functools.partial(SOP1, SOP1Op.S_OR_NOT0_SAVEEXEC_B64) -s_and_not1_saveexec_b32 = functools.partial(SOP1, SOP1Op.S_AND_NOT1_SAVEEXEC_B32) -s_and_not1_saveexec_b64 = functools.partial(SOP1, SOP1Op.S_AND_NOT1_SAVEEXEC_B64) -s_or_not1_saveexec_b32 = functools.partial(SOP1, SOP1Op.S_OR_NOT1_SAVEEXEC_B32) -s_or_not1_saveexec_b64 = functools.partial(SOP1, SOP1Op.S_OR_NOT1_SAVEEXEC_B64) -s_and_not0_wrexec_b32 = functools.partial(SOP1, SOP1Op.S_AND_NOT0_WREXEC_B32) -s_and_not0_wrexec_b64 = functools.partial(SOP1, SOP1Op.S_AND_NOT0_WREXEC_B64) -s_and_not1_wrexec_b32 = functools.partial(SOP1, SOP1Op.S_AND_NOT1_WREXEC_B32) -s_and_not1_wrexec_b64 = functools.partial(SOP1, SOP1Op.S_AND_NOT1_WREXEC_B64) -s_movrels_b32 = functools.partial(SOP1, SOP1Op.S_MOVRELS_B32) -s_movrels_b64 = functools.partial(SOP1, SOP1Op.S_MOVRELS_B64) -s_movreld_b32 = functools.partial(SOP1, SOP1Op.S_MOVRELD_B32) -s_movreld_b64 = functools.partial(SOP1, SOP1Op.S_MOVRELD_B64) -s_movrelsd_2_b32 = functools.partial(SOP1, SOP1Op.S_MOVRELSD_2_B32) -s_getpc_b64 = functools.partial(SOP1, SOP1Op.S_GETPC_B64) -s_setpc_b64 = functools.partial(SOP1, SOP1Op.S_SETPC_B64) -s_swappc_b64 = functools.partial(SOP1, SOP1Op.S_SWAPPC_B64) -s_rfe_b64 = functools.partial(SOP1, SOP1Op.S_RFE_B64) -s_sendmsg_rtn_b32 = functools.partial(SOP1, SOP1Op.S_SENDMSG_RTN_B32) -s_sendmsg_rtn_b64 = functools.partial(SOP1, SOP1Op.S_SENDMSG_RTN_B64) -s_ceil_f32 = functools.partial(SOP1, SOP1Op.S_CEIL_F32) -s_floor_f32 = functools.partial(SOP1, SOP1Op.S_FLOOR_F32) -s_trunc_f32 = functools.partial(SOP1, SOP1Op.S_TRUNC_F32) -s_rndne_f32 = functools.partial(SOP1, SOP1Op.S_RNDNE_F32) -s_cvt_f32_i32 = functools.partial(SOP1, SOP1Op.S_CVT_F32_I32) -s_cvt_f32_u32 = functools.partial(SOP1, SOP1Op.S_CVT_F32_U32) -s_cvt_i32_f32 = functools.partial(SOP1, SOP1Op.S_CVT_I32_F32) -s_cvt_u32_f32 = functools.partial(SOP1, SOP1Op.S_CVT_U32_F32) -s_cvt_f16_f32 = functools.partial(SOP1, SOP1Op.S_CVT_F16_F32) -s_cvt_f32_f16 = functools.partial(SOP1, SOP1Op.S_CVT_F32_F16) -s_cvt_hi_f32_f16 = functools.partial(SOP1, SOP1Op.S_CVT_HI_F32_F16) -s_ceil_f16 = functools.partial(SOP1, SOP1Op.S_CEIL_F16) -s_floor_f16 = functools.partial(SOP1, SOP1Op.S_FLOOR_F16) -s_trunc_f16 = functools.partial(SOP1, SOP1Op.S_TRUNC_F16) -s_rndne_f16 = functools.partial(SOP1, SOP1Op.S_RNDNE_F16) -s_add_u32 = functools.partial(SOP2, SOP2Op.S_ADD_U32) -s_sub_u32 = functools.partial(SOP2, SOP2Op.S_SUB_U32) -s_add_i32 = functools.partial(SOP2, SOP2Op.S_ADD_I32) -s_sub_i32 = functools.partial(SOP2, SOP2Op.S_SUB_I32) -s_addc_u32 = functools.partial(SOP2, SOP2Op.S_ADDC_U32) -s_subb_u32 = functools.partial(SOP2, SOP2Op.S_SUBB_U32) -s_absdiff_i32 = functools.partial(SOP2, SOP2Op.S_ABSDIFF_I32) -s_lshl_b32 = functools.partial(SOP2, SOP2Op.S_LSHL_B32) -s_lshl_b64 = functools.partial(SOP2, SOP2Op.S_LSHL_B64) -s_lshr_b32 = functools.partial(SOP2, SOP2Op.S_LSHR_B32) -s_lshr_b64 = functools.partial(SOP2, SOP2Op.S_LSHR_B64) -s_ashr_i32 = functools.partial(SOP2, SOP2Op.S_ASHR_I32) -s_ashr_i64 = functools.partial(SOP2, SOP2Op.S_ASHR_I64) -s_lshl1_add_u32 = functools.partial(SOP2, SOP2Op.S_LSHL1_ADD_U32) -s_lshl2_add_u32 = functools.partial(SOP2, SOP2Op.S_LSHL2_ADD_U32) -s_lshl3_add_u32 = functools.partial(SOP2, SOP2Op.S_LSHL3_ADD_U32) -s_lshl4_add_u32 = functools.partial(SOP2, SOP2Op.S_LSHL4_ADD_U32) -s_min_i32 = functools.partial(SOP2, SOP2Op.S_MIN_I32) -s_min_u32 = functools.partial(SOP2, SOP2Op.S_MIN_U32) -s_max_i32 = functools.partial(SOP2, SOP2Op.S_MAX_I32) -s_max_u32 = functools.partial(SOP2, SOP2Op.S_MAX_U32) -s_and_b32 = functools.partial(SOP2, SOP2Op.S_AND_B32) -s_and_b64 = functools.partial(SOP2, SOP2Op.S_AND_B64) -s_or_b32 = functools.partial(SOP2, SOP2Op.S_OR_B32) -s_or_b64 = functools.partial(SOP2, SOP2Op.S_OR_B64) -s_xor_b32 = functools.partial(SOP2, SOP2Op.S_XOR_B32) -s_xor_b64 = functools.partial(SOP2, SOP2Op.S_XOR_B64) -s_nand_b32 = functools.partial(SOP2, SOP2Op.S_NAND_B32) -s_nand_b64 = functools.partial(SOP2, SOP2Op.S_NAND_B64) -s_nor_b32 = functools.partial(SOP2, SOP2Op.S_NOR_B32) -s_nor_b64 = functools.partial(SOP2, SOP2Op.S_NOR_B64) -s_xnor_b32 = functools.partial(SOP2, SOP2Op.S_XNOR_B32) -s_xnor_b64 = functools.partial(SOP2, SOP2Op.S_XNOR_B64) -s_and_not1_b32 = functools.partial(SOP2, SOP2Op.S_AND_NOT1_B32) -s_and_not1_b64 = functools.partial(SOP2, SOP2Op.S_AND_NOT1_B64) -s_or_not1_b32 = functools.partial(SOP2, SOP2Op.S_OR_NOT1_B32) -s_or_not1_b64 = functools.partial(SOP2, SOP2Op.S_OR_NOT1_B64) -s_bfe_u32 = functools.partial(SOP2, SOP2Op.S_BFE_U32) -s_bfe_i32 = functools.partial(SOP2, SOP2Op.S_BFE_I32) -s_bfe_u64 = functools.partial(SOP2, SOP2Op.S_BFE_U64) -s_bfe_i64 = functools.partial(SOP2, SOP2Op.S_BFE_I64) -s_bfm_b32 = functools.partial(SOP2, SOP2Op.S_BFM_B32) -s_bfm_b64 = functools.partial(SOP2, SOP2Op.S_BFM_B64) -s_mul_i32 = functools.partial(SOP2, SOP2Op.S_MUL_I32) -s_mul_hi_u32 = functools.partial(SOP2, SOP2Op.S_MUL_HI_U32) -s_mul_hi_i32 = functools.partial(SOP2, SOP2Op.S_MUL_HI_I32) -s_cselect_b32 = functools.partial(SOP2, SOP2Op.S_CSELECT_B32) -s_cselect_b64 = functools.partial(SOP2, SOP2Op.S_CSELECT_B64) -s_pack_ll_b32_b16 = functools.partial(SOP2, SOP2Op.S_PACK_LL_B32_B16) -s_pack_lh_b32_b16 = functools.partial(SOP2, SOP2Op.S_PACK_LH_B32_B16) -s_pack_hh_b32_b16 = functools.partial(SOP2, SOP2Op.S_PACK_HH_B32_B16) -s_pack_hl_b32_b16 = functools.partial(SOP2, SOP2Op.S_PACK_HL_B32_B16) -s_add_f32 = functools.partial(SOP2, SOP2Op.S_ADD_F32) -s_sub_f32 = functools.partial(SOP2, SOP2Op.S_SUB_F32) -s_min_f32 = functools.partial(SOP2, SOP2Op.S_MIN_F32) -s_max_f32 = functools.partial(SOP2, SOP2Op.S_MAX_F32) -s_mul_f32 = functools.partial(SOP2, SOP2Op.S_MUL_F32) -s_fmaak_f32 = functools.partial(SOP2, SOP2Op.S_FMAAK_F32) -s_fmamk_f32 = functools.partial(SOP2, SOP2Op.S_FMAMK_F32) -s_fmac_f32 = functools.partial(SOP2, SOP2Op.S_FMAC_F32) -s_cvt_pk_rtz_f16_f32 = functools.partial(SOP2, SOP2Op.S_CVT_PK_RTZ_F16_F32) -s_add_f16 = functools.partial(SOP2, SOP2Op.S_ADD_F16) -s_sub_f16 = functools.partial(SOP2, SOP2Op.S_SUB_F16) -s_min_f16 = functools.partial(SOP2, SOP2Op.S_MIN_F16) -s_max_f16 = functools.partial(SOP2, SOP2Op.S_MAX_F16) -s_mul_f16 = functools.partial(SOP2, SOP2Op.S_MUL_F16) -s_fmac_f16 = functools.partial(SOP2, SOP2Op.S_FMAC_F16) -s_cmp_eq_i32 = functools.partial(SOPC, SOPCOp.S_CMP_EQ_I32) -s_cmp_lg_i32 = functools.partial(SOPC, SOPCOp.S_CMP_LG_I32) -s_cmp_gt_i32 = functools.partial(SOPC, SOPCOp.S_CMP_GT_I32) -s_cmp_ge_i32 = functools.partial(SOPC, SOPCOp.S_CMP_GE_I32) -s_cmp_lt_i32 = functools.partial(SOPC, SOPCOp.S_CMP_LT_I32) -s_cmp_le_i32 = functools.partial(SOPC, SOPCOp.S_CMP_LE_I32) -s_cmp_eq_u32 = functools.partial(SOPC, SOPCOp.S_CMP_EQ_U32) -s_cmp_lg_u32 = functools.partial(SOPC, SOPCOp.S_CMP_LG_U32) -s_cmp_gt_u32 = functools.partial(SOPC, SOPCOp.S_CMP_GT_U32) -s_cmp_ge_u32 = functools.partial(SOPC, SOPCOp.S_CMP_GE_U32) -s_cmp_lt_u32 = functools.partial(SOPC, SOPCOp.S_CMP_LT_U32) -s_cmp_le_u32 = functools.partial(SOPC, SOPCOp.S_CMP_LE_U32) -s_bitcmp0_b32 = functools.partial(SOPC, SOPCOp.S_BITCMP0_B32) -s_bitcmp1_b32 = functools.partial(SOPC, SOPCOp.S_BITCMP1_B32) -s_bitcmp0_b64 = functools.partial(SOPC, SOPCOp.S_BITCMP0_B64) -s_bitcmp1_b64 = functools.partial(SOPC, SOPCOp.S_BITCMP1_B64) -s_cmp_eq_u64 = functools.partial(SOPC, SOPCOp.S_CMP_EQ_U64) -s_cmp_lg_u64 = functools.partial(SOPC, SOPCOp.S_CMP_LG_U64) -s_cmp_lt_f32 = functools.partial(SOPC, SOPCOp.S_CMP_LT_F32) -s_cmp_eq_f32 = functools.partial(SOPC, SOPCOp.S_CMP_EQ_F32) -s_cmp_le_f32 = functools.partial(SOPC, SOPCOp.S_CMP_LE_F32) -s_cmp_gt_f32 = functools.partial(SOPC, SOPCOp.S_CMP_GT_F32) -s_cmp_lg_f32 = functools.partial(SOPC, SOPCOp.S_CMP_LG_F32) -s_cmp_ge_f32 = functools.partial(SOPC, SOPCOp.S_CMP_GE_F32) -s_cmp_o_f32 = functools.partial(SOPC, SOPCOp.S_CMP_O_F32) -s_cmp_u_f32 = functools.partial(SOPC, SOPCOp.S_CMP_U_F32) -s_cmp_nge_f32 = functools.partial(SOPC, SOPCOp.S_CMP_NGE_F32) -s_cmp_nlg_f32 = functools.partial(SOPC, SOPCOp.S_CMP_NLG_F32) -s_cmp_ngt_f32 = functools.partial(SOPC, SOPCOp.S_CMP_NGT_F32) -s_cmp_nle_f32 = functools.partial(SOPC, SOPCOp.S_CMP_NLE_F32) -s_cmp_neq_f32 = functools.partial(SOPC, SOPCOp.S_CMP_NEQ_F32) -s_cmp_nlt_f32 = functools.partial(SOPC, SOPCOp.S_CMP_NLT_F32) -s_cmp_lt_f16 = functools.partial(SOPC, SOPCOp.S_CMP_LT_F16) -s_cmp_eq_f16 = functools.partial(SOPC, SOPCOp.S_CMP_EQ_F16) -s_cmp_le_f16 = functools.partial(SOPC, SOPCOp.S_CMP_LE_F16) -s_cmp_gt_f16 = functools.partial(SOPC, SOPCOp.S_CMP_GT_F16) -s_cmp_lg_f16 = functools.partial(SOPC, SOPCOp.S_CMP_LG_F16) -s_cmp_ge_f16 = functools.partial(SOPC, SOPCOp.S_CMP_GE_F16) -s_cmp_o_f16 = functools.partial(SOPC, SOPCOp.S_CMP_O_F16) -s_cmp_u_f16 = functools.partial(SOPC, SOPCOp.S_CMP_U_F16) -s_cmp_nge_f16 = functools.partial(SOPC, SOPCOp.S_CMP_NGE_F16) -s_cmp_nlg_f16 = functools.partial(SOPC, SOPCOp.S_CMP_NLG_F16) -s_cmp_ngt_f16 = functools.partial(SOPC, SOPCOp.S_CMP_NGT_F16) -s_cmp_nle_f16 = functools.partial(SOPC, SOPCOp.S_CMP_NLE_F16) -s_cmp_neq_f16 = functools.partial(SOPC, SOPCOp.S_CMP_NEQ_F16) -s_cmp_nlt_f16 = functools.partial(SOPC, SOPCOp.S_CMP_NLT_F16) -s_movk_i32 = functools.partial(SOPK, SOPKOp.S_MOVK_I32) -s_version = functools.partial(SOPK, SOPKOp.S_VERSION) -s_cmovk_i32 = functools.partial(SOPK, SOPKOp.S_CMOVK_I32) -s_cmpk_eq_i32 = functools.partial(SOPK, SOPKOp.S_CMPK_EQ_I32) -s_cmpk_lg_i32 = functools.partial(SOPK, SOPKOp.S_CMPK_LG_I32) -s_cmpk_gt_i32 = functools.partial(SOPK, SOPKOp.S_CMPK_GT_I32) -s_cmpk_ge_i32 = functools.partial(SOPK, SOPKOp.S_CMPK_GE_I32) -s_cmpk_lt_i32 = functools.partial(SOPK, SOPKOp.S_CMPK_LT_I32) -s_cmpk_le_i32 = functools.partial(SOPK, SOPKOp.S_CMPK_LE_I32) -s_cmpk_eq_u32 = functools.partial(SOPK, SOPKOp.S_CMPK_EQ_U32) -s_cmpk_lg_u32 = functools.partial(SOPK, SOPKOp.S_CMPK_LG_U32) -s_cmpk_gt_u32 = functools.partial(SOPK, SOPKOp.S_CMPK_GT_U32) -s_cmpk_ge_u32 = functools.partial(SOPK, SOPKOp.S_CMPK_GE_U32) -s_cmpk_lt_u32 = functools.partial(SOPK, SOPKOp.S_CMPK_LT_U32) -s_cmpk_le_u32 = functools.partial(SOPK, SOPKOp.S_CMPK_LE_U32) -s_addk_i32 = functools.partial(SOPK, SOPKOp.S_ADDK_I32) -s_mulk_i32 = functools.partial(SOPK, SOPKOp.S_MULK_I32) -s_getreg_b32 = functools.partial(SOPK, SOPKOp.S_GETREG_B32) -s_setreg_b32 = functools.partial(SOPK, SOPKOp.S_SETREG_B32) -s_setreg_imm32_b32 = functools.partial(SOPK, SOPKOp.S_SETREG_IMM32_B32) -s_call_b64 = functools.partial(SOPK, SOPKOp.S_CALL_B64) -s_waitcnt_vscnt = functools.partial(SOPK, SOPKOp.S_WAITCNT_VSCNT) -s_waitcnt_vmcnt = functools.partial(SOPK, SOPKOp.S_WAITCNT_VMCNT) -s_waitcnt_expcnt = functools.partial(SOPK, SOPKOp.S_WAITCNT_EXPCNT) -s_waitcnt_lgkmcnt = functools.partial(SOPK, SOPKOp.S_WAITCNT_LGKMCNT) -s_nop = functools.partial(SOPP, SOPPOp.S_NOP) -s_setkill = functools.partial(SOPP, SOPPOp.S_SETKILL) -s_sethalt = functools.partial(SOPP, SOPPOp.S_SETHALT) -s_sleep = functools.partial(SOPP, SOPPOp.S_SLEEP) -s_set_inst_prefetch_distance = functools.partial(SOPP, SOPPOp.S_SET_INST_PREFETCH_DISTANCE) -s_clause = functools.partial(SOPP, SOPPOp.S_CLAUSE) -s_delay_alu = functools.partial(SOPP, SOPPOp.S_DELAY_ALU) -s_waitcnt_depctr = functools.partial(SOPP, SOPPOp.S_WAITCNT_DEPCTR) -s_waitcnt = functools.partial(SOPP, SOPPOp.S_WAITCNT) -s_wait_idle = functools.partial(SOPP, SOPPOp.S_WAIT_IDLE) -s_wait_event = functools.partial(SOPP, SOPPOp.S_WAIT_EVENT) -s_trap = functools.partial(SOPP, SOPPOp.S_TRAP) -s_round_mode = functools.partial(SOPP, SOPPOp.S_ROUND_MODE) -s_denorm_mode = functools.partial(SOPP, SOPPOp.S_DENORM_MODE) -s_code_end = functools.partial(SOPP, SOPPOp.S_CODE_END) -s_branch = functools.partial(SOPP, SOPPOp.S_BRANCH) -s_cbranch_scc0 = functools.partial(SOPP, SOPPOp.S_CBRANCH_SCC0) -s_cbranch_scc1 = functools.partial(SOPP, SOPPOp.S_CBRANCH_SCC1) -s_cbranch_vccz = functools.partial(SOPP, SOPPOp.S_CBRANCH_VCCZ) -s_cbranch_vccnz = functools.partial(SOPP, SOPPOp.S_CBRANCH_VCCNZ) -s_cbranch_execz = functools.partial(SOPP, SOPPOp.S_CBRANCH_EXECZ) -s_cbranch_execnz = functools.partial(SOPP, SOPPOp.S_CBRANCH_EXECNZ) -s_cbranch_cdbgsys = functools.partial(SOPP, SOPPOp.S_CBRANCH_CDBGSYS) -s_cbranch_cdbguser = functools.partial(SOPP, SOPPOp.S_CBRANCH_CDBGUSER) -s_cbranch_cdbgsys_or_user = functools.partial(SOPP, SOPPOp.S_CBRANCH_CDBGSYS_OR_USER) -s_cbranch_cdbgsys_and_user = functools.partial(SOPP, SOPPOp.S_CBRANCH_CDBGSYS_AND_USER) -s_endpgm = functools.partial(SOPP, SOPPOp.S_ENDPGM) -s_endpgm_saved = functools.partial(SOPP, SOPPOp.S_ENDPGM_SAVED) -s_endpgm_ordered_ps_done = functools.partial(SOPP, SOPPOp.S_ENDPGM_ORDERED_PS_DONE) -s_wakeup = functools.partial(SOPP, SOPPOp.S_WAKEUP) -s_setprio = functools.partial(SOPP, SOPPOp.S_SETPRIO) -s_sendmsg = functools.partial(SOPP, SOPPOp.S_SENDMSG) -s_sendmsghalt = functools.partial(SOPP, SOPPOp.S_SENDMSGHALT) -s_incperflevel = functools.partial(SOPP, SOPPOp.S_INCPERFLEVEL) -s_decperflevel = functools.partial(SOPP, SOPPOp.S_DECPERFLEVEL) -s_icache_inv = functools.partial(SOPP, SOPPOp.S_ICACHE_INV) -s_barrier = functools.partial(SOPP, SOPPOp.S_BARRIER) -v_interp_p10_f32 = functools.partial(VINTERP, VINTERPOp.V_INTERP_P10_F32) -v_interp_p2_f32 = functools.partial(VINTERP, VINTERPOp.V_INTERP_P2_F32) -v_interp_p10_f16_f32 = functools.partial(VINTERP, VINTERPOp.V_INTERP_P10_F16_F32) -v_interp_p2_f16_f32 = functools.partial(VINTERP, VINTERPOp.V_INTERP_P2_F16_F32) -v_interp_p10_rtz_f16_f32 = functools.partial(VINTERP, VINTERPOp.V_INTERP_P10_RTZ_F16_F32) -v_interp_p2_rtz_f16_f32 = functools.partial(VINTERP, VINTERPOp.V_INTERP_P2_RTZ_F16_F32) -v_nop_e32 = functools.partial(VOP1, VOP1Op.V_NOP) -v_mov_b32_e32 = functools.partial(VOP1, VOP1Op.V_MOV_B32) -v_readfirstlane_b32_e32 = functools.partial(VOP1, VOP1Op.V_READFIRSTLANE_B32) -v_cvt_i32_f64_e32 = functools.partial(VOP1, VOP1Op.V_CVT_I32_F64) -v_cvt_f64_i32_e32 = functools.partial(VOP1, VOP1Op.V_CVT_F64_I32) -v_cvt_f32_i32_e32 = functools.partial(VOP1, VOP1Op.V_CVT_F32_I32) -v_cvt_f32_u32_e32 = functools.partial(VOP1, VOP1Op.V_CVT_F32_U32) -v_cvt_u32_f32_e32 = functools.partial(VOP1, VOP1Op.V_CVT_U32_F32) -v_cvt_i32_f32_e32 = functools.partial(VOP1, VOP1Op.V_CVT_I32_F32) -v_cvt_f16_f32_e32 = functools.partial(VOP1, VOP1Op.V_CVT_F16_F32) -v_cvt_f32_f16_e32 = functools.partial(VOP1, VOP1Op.V_CVT_F32_F16) -v_cvt_nearest_i32_f32_e32 = functools.partial(VOP1, VOP1Op.V_CVT_NEAREST_I32_F32) -v_cvt_floor_i32_f32_e32 = functools.partial(VOP1, VOP1Op.V_CVT_FLOOR_I32_F32) -v_cvt_off_f32_i4_e32 = functools.partial(VOP1, VOP1Op.V_CVT_OFF_F32_I4) -v_cvt_f32_f64_e32 = functools.partial(VOP1, VOP1Op.V_CVT_F32_F64) -v_cvt_f64_f32_e32 = functools.partial(VOP1, VOP1Op.V_CVT_F64_F32) -v_cvt_f32_ubyte0_e32 = functools.partial(VOP1, VOP1Op.V_CVT_F32_UBYTE0) -v_cvt_f32_ubyte1_e32 = functools.partial(VOP1, VOP1Op.V_CVT_F32_UBYTE1) -v_cvt_f32_ubyte2_e32 = functools.partial(VOP1, VOP1Op.V_CVT_F32_UBYTE2) -v_cvt_f32_ubyte3_e32 = functools.partial(VOP1, VOP1Op.V_CVT_F32_UBYTE3) -v_cvt_u32_f64_e32 = functools.partial(VOP1, VOP1Op.V_CVT_U32_F64) -v_cvt_f64_u32_e32 = functools.partial(VOP1, VOP1Op.V_CVT_F64_U32) -v_trunc_f64_e32 = functools.partial(VOP1, VOP1Op.V_TRUNC_F64) -v_ceil_f64_e32 = functools.partial(VOP1, VOP1Op.V_CEIL_F64) -v_rndne_f64_e32 = functools.partial(VOP1, VOP1Op.V_RNDNE_F64) -v_floor_f64_e32 = functools.partial(VOP1, VOP1Op.V_FLOOR_F64) -v_pipeflush_e32 = functools.partial(VOP1, VOP1Op.V_PIPEFLUSH) -v_mov_b16_e32 = functools.partial(VOP1, VOP1Op.V_MOV_B16) -v_fract_f32_e32 = functools.partial(VOP1, VOP1Op.V_FRACT_F32) -v_trunc_f32_e32 = functools.partial(VOP1, VOP1Op.V_TRUNC_F32) -v_ceil_f32_e32 = functools.partial(VOP1, VOP1Op.V_CEIL_F32) -v_rndne_f32_e32 = functools.partial(VOP1, VOP1Op.V_RNDNE_F32) -v_floor_f32_e32 = functools.partial(VOP1, VOP1Op.V_FLOOR_F32) -v_exp_f32_e32 = functools.partial(VOP1, VOP1Op.V_EXP_F32) -v_log_f32_e32 = functools.partial(VOP1, VOP1Op.V_LOG_F32) -v_rcp_f32_e32 = functools.partial(VOP1, VOP1Op.V_RCP_F32) -v_rcp_iflag_f32_e32 = functools.partial(VOP1, VOP1Op.V_RCP_IFLAG_F32) -v_rsq_f32_e32 = functools.partial(VOP1, VOP1Op.V_RSQ_F32) -v_rcp_f64_e32 = functools.partial(VOP1, VOP1Op.V_RCP_F64) -v_rsq_f64_e32 = functools.partial(VOP1, VOP1Op.V_RSQ_F64) -v_sqrt_f32_e32 = functools.partial(VOP1, VOP1Op.V_SQRT_F32) -v_sqrt_f64_e32 = functools.partial(VOP1, VOP1Op.V_SQRT_F64) -v_sin_f32_e32 = functools.partial(VOP1, VOP1Op.V_SIN_F32) -v_cos_f32_e32 = functools.partial(VOP1, VOP1Op.V_COS_F32) -v_not_b32_e32 = functools.partial(VOP1, VOP1Op.V_NOT_B32) -v_bfrev_b32_e32 = functools.partial(VOP1, VOP1Op.V_BFREV_B32) -v_clz_i32_u32_e32 = functools.partial(VOP1, VOP1Op.V_CLZ_I32_U32) -v_ctz_i32_b32_e32 = functools.partial(VOP1, VOP1Op.V_CTZ_I32_B32) -v_cls_i32_e32 = functools.partial(VOP1, VOP1Op.V_CLS_I32) -v_frexp_exp_i32_f64_e32 = functools.partial(VOP1, VOP1Op.V_FREXP_EXP_I32_F64) -v_frexp_mant_f64_e32 = functools.partial(VOP1, VOP1Op.V_FREXP_MANT_F64) -v_fract_f64_e32 = functools.partial(VOP1, VOP1Op.V_FRACT_F64) -v_frexp_exp_i32_f32_e32 = functools.partial(VOP1, VOP1Op.V_FREXP_EXP_I32_F32) -v_frexp_mant_f32_e32 = functools.partial(VOP1, VOP1Op.V_FREXP_MANT_F32) -v_movreld_b32_e32 = functools.partial(VOP1, VOP1Op.V_MOVRELD_B32) -v_movrels_b32_e32 = functools.partial(VOP1, VOP1Op.V_MOVRELS_B32) -v_movrelsd_b32_e32 = functools.partial(VOP1, VOP1Op.V_MOVRELSD_B32) -v_movrelsd_2_b32_e32 = functools.partial(VOP1, VOP1Op.V_MOVRELSD_2_B32) -v_cvt_f16_u16_e32 = functools.partial(VOP1, VOP1Op.V_CVT_F16_U16) -v_cvt_f16_i16_e32 = functools.partial(VOP1, VOP1Op.V_CVT_F16_I16) -v_cvt_u16_f16_e32 = functools.partial(VOP1, VOP1Op.V_CVT_U16_F16) -v_cvt_i16_f16_e32 = functools.partial(VOP1, VOP1Op.V_CVT_I16_F16) -v_rcp_f16_e32 = functools.partial(VOP1, VOP1Op.V_RCP_F16) -v_sqrt_f16_e32 = functools.partial(VOP1, VOP1Op.V_SQRT_F16) -v_rsq_f16_e32 = functools.partial(VOP1, VOP1Op.V_RSQ_F16) -v_log_f16_e32 = functools.partial(VOP1, VOP1Op.V_LOG_F16) -v_exp_f16_e32 = functools.partial(VOP1, VOP1Op.V_EXP_F16) -v_frexp_mant_f16_e32 = functools.partial(VOP1, VOP1Op.V_FREXP_MANT_F16) -v_frexp_exp_i16_f16_e32 = functools.partial(VOP1, VOP1Op.V_FREXP_EXP_I16_F16) -v_floor_f16_e32 = functools.partial(VOP1, VOP1Op.V_FLOOR_F16) -v_ceil_f16_e32 = functools.partial(VOP1, VOP1Op.V_CEIL_F16) -v_trunc_f16_e32 = functools.partial(VOP1, VOP1Op.V_TRUNC_F16) -v_rndne_f16_e32 = functools.partial(VOP1, VOP1Op.V_RNDNE_F16) -v_fract_f16_e32 = functools.partial(VOP1, VOP1Op.V_FRACT_F16) -v_sin_f16_e32 = functools.partial(VOP1, VOP1Op.V_SIN_F16) -v_cos_f16_e32 = functools.partial(VOP1, VOP1Op.V_COS_F16) -v_sat_pk_u8_i16_e32 = functools.partial(VOP1, VOP1Op.V_SAT_PK_U8_I16) -v_cvt_norm_i16_f16_e32 = functools.partial(VOP1, VOP1Op.V_CVT_NORM_I16_F16) -v_cvt_norm_u16_f16_e32 = functools.partial(VOP1, VOP1Op.V_CVT_NORM_U16_F16) -v_swap_b32_e32 = functools.partial(VOP1, VOP1Op.V_SWAP_B32) -v_swap_b16_e32 = functools.partial(VOP1, VOP1Op.V_SWAP_B16) -v_permlane64_b32_e32 = functools.partial(VOP1, VOP1Op.V_PERMLANE64_B32) -v_swaprel_b32_e32 = functools.partial(VOP1, VOP1Op.V_SWAPREL_B32) -v_not_b16_e32 = functools.partial(VOP1, VOP1Op.V_NOT_B16) -v_cvt_i32_i16_e32 = functools.partial(VOP1, VOP1Op.V_CVT_I32_I16) -v_cvt_u32_u16_e32 = functools.partial(VOP1, VOP1Op.V_CVT_U32_U16) -v_cndmask_b32_e32 = functools.partial(VOP2, VOP2Op.V_CNDMASK_B32) -v_dot2acc_f32_f16_e32 = functools.partial(VOP2, VOP2Op.V_DOT2ACC_F32_F16) -v_add_f32_e32 = functools.partial(VOP2, VOP2Op.V_ADD_F32) -v_sub_f32_e32 = functools.partial(VOP2, VOP2Op.V_SUB_F32) -v_subrev_f32_e32 = functools.partial(VOP2, VOP2Op.V_SUBREV_F32) -v_fmac_dx9_zero_f32_e32 = functools.partial(VOP2, VOP2Op.V_FMAC_DX9_ZERO_F32) -v_mul_dx9_zero_f32_e32 = functools.partial(VOP2, VOP2Op.V_MUL_DX9_ZERO_F32) -v_mul_f32_e32 = functools.partial(VOP2, VOP2Op.V_MUL_F32) -v_mul_i32_i24_e32 = functools.partial(VOP2, VOP2Op.V_MUL_I32_I24) -v_mul_hi_i32_i24_e32 = functools.partial(VOP2, VOP2Op.V_MUL_HI_I32_I24) -v_mul_u32_u24_e32 = functools.partial(VOP2, VOP2Op.V_MUL_U32_U24) -v_mul_hi_u32_u24_e32 = functools.partial(VOP2, VOP2Op.V_MUL_HI_U32_U24) -v_min_f32_e32 = functools.partial(VOP2, VOP2Op.V_MIN_F32) -v_max_f32_e32 = functools.partial(VOP2, VOP2Op.V_MAX_F32) -v_min_i32_e32 = functools.partial(VOP2, VOP2Op.V_MIN_I32) -v_max_i32_e32 = functools.partial(VOP2, VOP2Op.V_MAX_I32) -v_min_u32_e32 = functools.partial(VOP2, VOP2Op.V_MIN_U32) -v_max_u32_e32 = functools.partial(VOP2, VOP2Op.V_MAX_U32) -v_lshlrev_b32_e32 = functools.partial(VOP2, VOP2Op.V_LSHLREV_B32) -v_lshrrev_b32_e32 = functools.partial(VOP2, VOP2Op.V_LSHRREV_B32) -v_ashrrev_i32_e32 = functools.partial(VOP2, VOP2Op.V_ASHRREV_I32) -v_and_b32_e32 = functools.partial(VOP2, VOP2Op.V_AND_B32) -v_or_b32_e32 = functools.partial(VOP2, VOP2Op.V_OR_B32) -v_xor_b32_e32 = functools.partial(VOP2, VOP2Op.V_XOR_B32) -v_xnor_b32_e32 = functools.partial(VOP2, VOP2Op.V_XNOR_B32) -v_add_co_ci_u32_e32 = functools.partial(VOP2, VOP2Op.V_ADD_CO_CI_U32) -v_sub_co_ci_u32_e32 = functools.partial(VOP2, VOP2Op.V_SUB_CO_CI_U32) -v_subrev_co_ci_u32_e32 = functools.partial(VOP2, VOP2Op.V_SUBREV_CO_CI_U32) -v_add_nc_u32_e32 = functools.partial(VOP2, VOP2Op.V_ADD_NC_U32) -v_sub_nc_u32_e32 = functools.partial(VOP2, VOP2Op.V_SUB_NC_U32) -v_subrev_nc_u32_e32 = functools.partial(VOP2, VOP2Op.V_SUBREV_NC_U32) -v_fmac_f32_e32 = functools.partial(VOP2, VOP2Op.V_FMAC_F32) -def v_fmamk_f32_e32(vdst, src0, K, vsrc1): return VOP2(VOP2Op.V_FMAMK_F32, vdst, src0, vsrc1, literal=K) -def v_fmaak_f32_e32(vdst, src0, vsrc1, K): return VOP2(VOP2Op.V_FMAAK_F32, vdst, src0, vsrc1, literal=K) -v_cvt_pk_rtz_f16_f32_e32 = functools.partial(VOP2, VOP2Op.V_CVT_PK_RTZ_F16_F32) -v_add_f16_e32 = functools.partial(VOP2, VOP2Op.V_ADD_F16) -v_sub_f16_e32 = functools.partial(VOP2, VOP2Op.V_SUB_F16) -v_subrev_f16_e32 = functools.partial(VOP2, VOP2Op.V_SUBREV_F16) -v_mul_f16_e32 = functools.partial(VOP2, VOP2Op.V_MUL_F16) -v_fmac_f16_e32 = functools.partial(VOP2, VOP2Op.V_FMAC_F16) -def v_fmamk_f16_e32(vdst, src0, K, vsrc1): return VOP2(VOP2Op.V_FMAMK_F16, vdst, src0, vsrc1, literal=K) -def v_fmaak_f16_e32(vdst, src0, vsrc1, K): return VOP2(VOP2Op.V_FMAAK_F16, vdst, src0, vsrc1, literal=K) -v_max_f16_e32 = functools.partial(VOP2, VOP2Op.V_MAX_F16) -v_min_f16_e32 = functools.partial(VOP2, VOP2Op.V_MIN_F16) -v_ldexp_f16_e32 = functools.partial(VOP2, VOP2Op.V_LDEXP_F16) -v_pk_fmac_f16_e32 = functools.partial(VOP2, VOP2Op.V_PK_FMAC_F16) -v_cmp_f_f16_e64 = functools.partial(VOP3, VOP3Op.V_CMP_F_F16) -v_cmp_lt_f16_e64 = functools.partial(VOP3, VOP3Op.V_CMP_LT_F16) -v_cmp_eq_f16_e64 = functools.partial(VOP3, VOP3Op.V_CMP_EQ_F16) -v_cmp_le_f16_e64 = functools.partial(VOP3, VOP3Op.V_CMP_LE_F16) -v_cmp_gt_f16_e64 = functools.partial(VOP3, VOP3Op.V_CMP_GT_F16) -v_cmp_lg_f16_e64 = functools.partial(VOP3, VOP3Op.V_CMP_LG_F16) -v_cmp_ge_f16_e64 = functools.partial(VOP3, VOP3Op.V_CMP_GE_F16) -v_cmp_o_f16_e64 = functools.partial(VOP3, VOP3Op.V_CMP_O_F16) -v_cmp_u_f16_e64 = functools.partial(VOP3, VOP3Op.V_CMP_U_F16) -v_cmp_nge_f16_e64 = functools.partial(VOP3, VOP3Op.V_CMP_NGE_F16) -v_cmp_nlg_f16_e64 = functools.partial(VOP3, VOP3Op.V_CMP_NLG_F16) -v_cmp_ngt_f16_e64 = functools.partial(VOP3, VOP3Op.V_CMP_NGT_F16) -v_cmp_nle_f16_e64 = functools.partial(VOP3, VOP3Op.V_CMP_NLE_F16) -v_cmp_neq_f16_e64 = functools.partial(VOP3, VOP3Op.V_CMP_NEQ_F16) -v_cmp_nlt_f16_e64 = functools.partial(VOP3, VOP3Op.V_CMP_NLT_F16) -v_cmp_t_f16_e64 = functools.partial(VOP3, VOP3Op.V_CMP_T_F16) -v_cmp_f_f32_e64 = functools.partial(VOP3, VOP3Op.V_CMP_F_F32) -v_cmp_lt_f32_e64 = functools.partial(VOP3, VOP3Op.V_CMP_LT_F32) -v_cmp_eq_f32_e64 = functools.partial(VOP3, VOP3Op.V_CMP_EQ_F32) -v_cmp_le_f32_e64 = functools.partial(VOP3, VOP3Op.V_CMP_LE_F32) -v_cmp_gt_f32_e64 = functools.partial(VOP3, VOP3Op.V_CMP_GT_F32) -v_cmp_lg_f32_e64 = functools.partial(VOP3, VOP3Op.V_CMP_LG_F32) -v_cmp_ge_f32_e64 = functools.partial(VOP3, VOP3Op.V_CMP_GE_F32) -v_cmp_o_f32_e64 = functools.partial(VOP3, VOP3Op.V_CMP_O_F32) -v_cmp_u_f32_e64 = functools.partial(VOP3, VOP3Op.V_CMP_U_F32) -v_cmp_nge_f32_e64 = functools.partial(VOP3, VOP3Op.V_CMP_NGE_F32) -v_cmp_nlg_f32_e64 = functools.partial(VOP3, VOP3Op.V_CMP_NLG_F32) -v_cmp_ngt_f32_e64 = functools.partial(VOP3, VOP3Op.V_CMP_NGT_F32) -v_cmp_nle_f32_e64 = functools.partial(VOP3, VOP3Op.V_CMP_NLE_F32) -v_cmp_neq_f32_e64 = functools.partial(VOP3, VOP3Op.V_CMP_NEQ_F32) -v_cmp_nlt_f32_e64 = functools.partial(VOP3, VOP3Op.V_CMP_NLT_F32) -v_cmp_t_f32_e64 = functools.partial(VOP3, VOP3Op.V_CMP_T_F32) -v_cmp_f_f64_e64 = functools.partial(VOP3, VOP3Op.V_CMP_F_F64) -v_cmp_lt_f64_e64 = functools.partial(VOP3, VOP3Op.V_CMP_LT_F64) -v_cmp_eq_f64_e64 = functools.partial(VOP3, VOP3Op.V_CMP_EQ_F64) -v_cmp_le_f64_e64 = functools.partial(VOP3, VOP3Op.V_CMP_LE_F64) -v_cmp_gt_f64_e64 = functools.partial(VOP3, VOP3Op.V_CMP_GT_F64) -v_cmp_lg_f64_e64 = functools.partial(VOP3, VOP3Op.V_CMP_LG_F64) -v_cmp_ge_f64_e64 = functools.partial(VOP3, VOP3Op.V_CMP_GE_F64) -v_cmp_o_f64_e64 = functools.partial(VOP3, VOP3Op.V_CMP_O_F64) -v_cmp_u_f64_e64 = functools.partial(VOP3, VOP3Op.V_CMP_U_F64) -v_cmp_nge_f64_e64 = functools.partial(VOP3, VOP3Op.V_CMP_NGE_F64) -v_cmp_nlg_f64_e64 = functools.partial(VOP3, VOP3Op.V_CMP_NLG_F64) -v_cmp_ngt_f64_e64 = functools.partial(VOP3, VOP3Op.V_CMP_NGT_F64) -v_cmp_nle_f64_e64 = functools.partial(VOP3, VOP3Op.V_CMP_NLE_F64) -v_cmp_neq_f64_e64 = functools.partial(VOP3, VOP3Op.V_CMP_NEQ_F64) -v_cmp_nlt_f64_e64 = functools.partial(VOP3, VOP3Op.V_CMP_NLT_F64) -v_cmp_t_f64_e64 = functools.partial(VOP3, VOP3Op.V_CMP_T_F64) -v_cmp_lt_i16_e64 = functools.partial(VOP3, VOP3Op.V_CMP_LT_I16) -v_cmp_eq_i16_e64 = functools.partial(VOP3, VOP3Op.V_CMP_EQ_I16) -v_cmp_le_i16_e64 = functools.partial(VOP3, VOP3Op.V_CMP_LE_I16) -v_cmp_gt_i16_e64 = functools.partial(VOP3, VOP3Op.V_CMP_GT_I16) -v_cmp_ne_i16_e64 = functools.partial(VOP3, VOP3Op.V_CMP_NE_I16) -v_cmp_ge_i16_e64 = functools.partial(VOP3, VOP3Op.V_CMP_GE_I16) -v_cmp_lt_u16_e64 = functools.partial(VOP3, VOP3Op.V_CMP_LT_U16) -v_cmp_eq_u16_e64 = functools.partial(VOP3, VOP3Op.V_CMP_EQ_U16) -v_cmp_le_u16_e64 = functools.partial(VOP3, VOP3Op.V_CMP_LE_U16) -v_cmp_gt_u16_e64 = functools.partial(VOP3, VOP3Op.V_CMP_GT_U16) -v_cmp_ne_u16_e64 = functools.partial(VOP3, VOP3Op.V_CMP_NE_U16) -v_cmp_ge_u16_e64 = functools.partial(VOP3, VOP3Op.V_CMP_GE_U16) -v_cmp_f_i32_e64 = functools.partial(VOP3, VOP3Op.V_CMP_F_I32) -v_cmp_lt_i32_e64 = functools.partial(VOP3, VOP3Op.V_CMP_LT_I32) -v_cmp_eq_i32_e64 = functools.partial(VOP3, VOP3Op.V_CMP_EQ_I32) -v_cmp_le_i32_e64 = functools.partial(VOP3, VOP3Op.V_CMP_LE_I32) -v_cmp_gt_i32_e64 = functools.partial(VOP3, VOP3Op.V_CMP_GT_I32) -v_cmp_ne_i32_e64 = functools.partial(VOP3, VOP3Op.V_CMP_NE_I32) -v_cmp_ge_i32_e64 = functools.partial(VOP3, VOP3Op.V_CMP_GE_I32) -v_cmp_t_i32_e64 = functools.partial(VOP3, VOP3Op.V_CMP_T_I32) -v_cmp_f_u32_e64 = functools.partial(VOP3, VOP3Op.V_CMP_F_U32) -v_cmp_lt_u32_e64 = functools.partial(VOP3, VOP3Op.V_CMP_LT_U32) -v_cmp_eq_u32_e64 = functools.partial(VOP3, VOP3Op.V_CMP_EQ_U32) -v_cmp_le_u32_e64 = functools.partial(VOP3, VOP3Op.V_CMP_LE_U32) -v_cmp_gt_u32_e64 = functools.partial(VOP3, VOP3Op.V_CMP_GT_U32) -v_cmp_ne_u32_e64 = functools.partial(VOP3, VOP3Op.V_CMP_NE_U32) -v_cmp_ge_u32_e64 = functools.partial(VOP3, VOP3Op.V_CMP_GE_U32) -v_cmp_t_u32_e64 = functools.partial(VOP3, VOP3Op.V_CMP_T_U32) -v_cmp_f_i64_e64 = functools.partial(VOP3, VOP3Op.V_CMP_F_I64) -v_cmp_lt_i64_e64 = functools.partial(VOP3, VOP3Op.V_CMP_LT_I64) -v_cmp_eq_i64_e64 = functools.partial(VOP3, VOP3Op.V_CMP_EQ_I64) -v_cmp_le_i64_e64 = functools.partial(VOP3, VOP3Op.V_CMP_LE_I64) -v_cmp_gt_i64_e64 = functools.partial(VOP3, VOP3Op.V_CMP_GT_I64) -v_cmp_ne_i64_e64 = functools.partial(VOP3, VOP3Op.V_CMP_NE_I64) -v_cmp_ge_i64_e64 = functools.partial(VOP3, VOP3Op.V_CMP_GE_I64) -v_cmp_t_i64_e64 = functools.partial(VOP3, VOP3Op.V_CMP_T_I64) -v_cmp_f_u64_e64 = functools.partial(VOP3, VOP3Op.V_CMP_F_U64) -v_cmp_lt_u64_e64 = functools.partial(VOP3, VOP3Op.V_CMP_LT_U64) -v_cmp_eq_u64_e64 = functools.partial(VOP3, VOP3Op.V_CMP_EQ_U64) -v_cmp_le_u64_e64 = functools.partial(VOP3, VOP3Op.V_CMP_LE_U64) -v_cmp_gt_u64_e64 = functools.partial(VOP3, VOP3Op.V_CMP_GT_U64) -v_cmp_ne_u64_e64 = functools.partial(VOP3, VOP3Op.V_CMP_NE_U64) -v_cmp_ge_u64_e64 = functools.partial(VOP3, VOP3Op.V_CMP_GE_U64) -v_cmp_t_u64_e64 = functools.partial(VOP3, VOP3Op.V_CMP_T_U64) -v_cmp_class_f16_e64 = functools.partial(VOP3, VOP3Op.V_CMP_CLASS_F16) -v_cmp_class_f32_e64 = functools.partial(VOP3, VOP3Op.V_CMP_CLASS_F32) -v_cmp_class_f64_e64 = functools.partial(VOP3, VOP3Op.V_CMP_CLASS_F64) -v_cmpx_f_f16_e64 = functools.partial(VOP3, VOP3Op.V_CMPX_F_F16) -v_cmpx_lt_f16_e64 = functools.partial(VOP3, VOP3Op.V_CMPX_LT_F16) -v_cmpx_eq_f16_e64 = functools.partial(VOP3, VOP3Op.V_CMPX_EQ_F16) -v_cmpx_le_f16_e64 = functools.partial(VOP3, VOP3Op.V_CMPX_LE_F16) -v_cmpx_gt_f16_e64 = functools.partial(VOP3, VOP3Op.V_CMPX_GT_F16) -v_cmpx_lg_f16_e64 = functools.partial(VOP3, VOP3Op.V_CMPX_LG_F16) -v_cmpx_ge_f16_e64 = functools.partial(VOP3, VOP3Op.V_CMPX_GE_F16) -v_cmpx_o_f16_e64 = functools.partial(VOP3, VOP3Op.V_CMPX_O_F16) -v_cmpx_u_f16_e64 = functools.partial(VOP3, VOP3Op.V_CMPX_U_F16) -v_cmpx_nge_f16_e64 = functools.partial(VOP3, VOP3Op.V_CMPX_NGE_F16) -v_cmpx_nlg_f16_e64 = functools.partial(VOP3, VOP3Op.V_CMPX_NLG_F16) -v_cmpx_ngt_f16_e64 = functools.partial(VOP3, VOP3Op.V_CMPX_NGT_F16) -v_cmpx_nle_f16_e64 = functools.partial(VOP3, VOP3Op.V_CMPX_NLE_F16) -v_cmpx_neq_f16_e64 = functools.partial(VOP3, VOP3Op.V_CMPX_NEQ_F16) -v_cmpx_nlt_f16_e64 = functools.partial(VOP3, VOP3Op.V_CMPX_NLT_F16) -v_cmpx_t_f16_e64 = functools.partial(VOP3, VOP3Op.V_CMPX_T_F16) -v_cmpx_f_f32_e64 = functools.partial(VOP3, VOP3Op.V_CMPX_F_F32) -v_cmpx_lt_f32_e64 = functools.partial(VOP3, VOP3Op.V_CMPX_LT_F32) -v_cmpx_eq_f32_e64 = functools.partial(VOP3, VOP3Op.V_CMPX_EQ_F32) -v_cmpx_le_f32_e64 = functools.partial(VOP3, VOP3Op.V_CMPX_LE_F32) -v_cmpx_gt_f32_e64 = functools.partial(VOP3, VOP3Op.V_CMPX_GT_F32) -v_cmpx_lg_f32_e64 = functools.partial(VOP3, VOP3Op.V_CMPX_LG_F32) -v_cmpx_ge_f32_e64 = functools.partial(VOP3, VOP3Op.V_CMPX_GE_F32) -v_cmpx_o_f32_e64 = functools.partial(VOP3, VOP3Op.V_CMPX_O_F32) -v_cmpx_u_f32_e64 = functools.partial(VOP3, VOP3Op.V_CMPX_U_F32) -v_cmpx_nge_f32_e64 = functools.partial(VOP3, VOP3Op.V_CMPX_NGE_F32) -v_cmpx_nlg_f32_e64 = functools.partial(VOP3, VOP3Op.V_CMPX_NLG_F32) -v_cmpx_ngt_f32_e64 = functools.partial(VOP3, VOP3Op.V_CMPX_NGT_F32) -v_cmpx_nle_f32_e64 = functools.partial(VOP3, VOP3Op.V_CMPX_NLE_F32) -v_cmpx_neq_f32_e64 = functools.partial(VOP3, VOP3Op.V_CMPX_NEQ_F32) -v_cmpx_nlt_f32_e64 = functools.partial(VOP3, VOP3Op.V_CMPX_NLT_F32) -v_cmpx_t_f32_e64 = functools.partial(VOP3, VOP3Op.V_CMPX_T_F32) -v_cmpx_f_f64_e64 = functools.partial(VOP3, VOP3Op.V_CMPX_F_F64) -v_cmpx_lt_f64_e64 = functools.partial(VOP3, VOP3Op.V_CMPX_LT_F64) -v_cmpx_eq_f64_e64 = functools.partial(VOP3, VOP3Op.V_CMPX_EQ_F64) -v_cmpx_le_f64_e64 = functools.partial(VOP3, VOP3Op.V_CMPX_LE_F64) -v_cmpx_gt_f64_e64 = functools.partial(VOP3, VOP3Op.V_CMPX_GT_F64) -v_cmpx_lg_f64_e64 = functools.partial(VOP3, VOP3Op.V_CMPX_LG_F64) -v_cmpx_ge_f64_e64 = functools.partial(VOP3, VOP3Op.V_CMPX_GE_F64) -v_cmpx_o_f64_e64 = functools.partial(VOP3, VOP3Op.V_CMPX_O_F64) -v_cmpx_u_f64_e64 = functools.partial(VOP3, VOP3Op.V_CMPX_U_F64) -v_cmpx_nge_f64_e64 = functools.partial(VOP3, VOP3Op.V_CMPX_NGE_F64) -v_cmpx_nlg_f64_e64 = functools.partial(VOP3, VOP3Op.V_CMPX_NLG_F64) -v_cmpx_ngt_f64_e64 = functools.partial(VOP3, VOP3Op.V_CMPX_NGT_F64) -v_cmpx_nle_f64_e64 = functools.partial(VOP3, VOP3Op.V_CMPX_NLE_F64) -v_cmpx_neq_f64_e64 = functools.partial(VOP3, VOP3Op.V_CMPX_NEQ_F64) -v_cmpx_nlt_f64_e64 = functools.partial(VOP3, VOP3Op.V_CMPX_NLT_F64) -v_cmpx_t_f64_e64 = functools.partial(VOP3, VOP3Op.V_CMPX_T_F64) -v_cmpx_lt_i16_e64 = functools.partial(VOP3, VOP3Op.V_CMPX_LT_I16) -v_cmpx_eq_i16_e64 = functools.partial(VOP3, VOP3Op.V_CMPX_EQ_I16) -v_cmpx_le_i16_e64 = functools.partial(VOP3, VOP3Op.V_CMPX_LE_I16) -v_cmpx_gt_i16_e64 = functools.partial(VOP3, VOP3Op.V_CMPX_GT_I16) -v_cmpx_ne_i16_e64 = functools.partial(VOP3, VOP3Op.V_CMPX_NE_I16) -v_cmpx_ge_i16_e64 = functools.partial(VOP3, VOP3Op.V_CMPX_GE_I16) -v_cmpx_lt_u16_e64 = functools.partial(VOP3, VOP3Op.V_CMPX_LT_U16) -v_cmpx_eq_u16_e64 = functools.partial(VOP3, VOP3Op.V_CMPX_EQ_U16) -v_cmpx_le_u16_e64 = functools.partial(VOP3, VOP3Op.V_CMPX_LE_U16) -v_cmpx_gt_u16_e64 = functools.partial(VOP3, VOP3Op.V_CMPX_GT_U16) -v_cmpx_ne_u16_e64 = functools.partial(VOP3, VOP3Op.V_CMPX_NE_U16) -v_cmpx_ge_u16_e64 = functools.partial(VOP3, VOP3Op.V_CMPX_GE_U16) -v_cmpx_f_i32_e64 = functools.partial(VOP3, VOP3Op.V_CMPX_F_I32) -v_cmpx_lt_i32_e64 = functools.partial(VOP3, VOP3Op.V_CMPX_LT_I32) -v_cmpx_eq_i32_e64 = functools.partial(VOP3, VOP3Op.V_CMPX_EQ_I32) -v_cmpx_le_i32_e64 = functools.partial(VOP3, VOP3Op.V_CMPX_LE_I32) -v_cmpx_gt_i32_e64 = functools.partial(VOP3, VOP3Op.V_CMPX_GT_I32) -v_cmpx_ne_i32_e64 = functools.partial(VOP3, VOP3Op.V_CMPX_NE_I32) -v_cmpx_ge_i32_e64 = functools.partial(VOP3, VOP3Op.V_CMPX_GE_I32) -v_cmpx_t_i32_e64 = functools.partial(VOP3, VOP3Op.V_CMPX_T_I32) -v_cmpx_f_u32_e64 = functools.partial(VOP3, VOP3Op.V_CMPX_F_U32) -v_cmpx_lt_u32_e64 = functools.partial(VOP3, VOP3Op.V_CMPX_LT_U32) -v_cmpx_eq_u32_e64 = functools.partial(VOP3, VOP3Op.V_CMPX_EQ_U32) -v_cmpx_le_u32_e64 = functools.partial(VOP3, VOP3Op.V_CMPX_LE_U32) -v_cmpx_gt_u32_e64 = functools.partial(VOP3, VOP3Op.V_CMPX_GT_U32) -v_cmpx_ne_u32_e64 = functools.partial(VOP3, VOP3Op.V_CMPX_NE_U32) -v_cmpx_ge_u32_e64 = functools.partial(VOP3, VOP3Op.V_CMPX_GE_U32) -v_cmpx_t_u32_e64 = functools.partial(VOP3, VOP3Op.V_CMPX_T_U32) -v_cmpx_f_i64_e64 = functools.partial(VOP3, VOP3Op.V_CMPX_F_I64) -v_cmpx_lt_i64_e64 = functools.partial(VOP3, VOP3Op.V_CMPX_LT_I64) -v_cmpx_eq_i64_e64 = functools.partial(VOP3, VOP3Op.V_CMPX_EQ_I64) -v_cmpx_le_i64_e64 = functools.partial(VOP3, VOP3Op.V_CMPX_LE_I64) -v_cmpx_gt_i64_e64 = functools.partial(VOP3, VOP3Op.V_CMPX_GT_I64) -v_cmpx_ne_i64_e64 = functools.partial(VOP3, VOP3Op.V_CMPX_NE_I64) -v_cmpx_ge_i64_e64 = functools.partial(VOP3, VOP3Op.V_CMPX_GE_I64) -v_cmpx_t_i64_e64 = functools.partial(VOP3, VOP3Op.V_CMPX_T_I64) -v_cmpx_f_u64_e64 = functools.partial(VOP3, VOP3Op.V_CMPX_F_U64) -v_cmpx_lt_u64_e64 = functools.partial(VOP3, VOP3Op.V_CMPX_LT_U64) -v_cmpx_eq_u64_e64 = functools.partial(VOP3, VOP3Op.V_CMPX_EQ_U64) -v_cmpx_le_u64_e64 = functools.partial(VOP3, VOP3Op.V_CMPX_LE_U64) -v_cmpx_gt_u64_e64 = functools.partial(VOP3, VOP3Op.V_CMPX_GT_U64) -v_cmpx_ne_u64_e64 = functools.partial(VOP3, VOP3Op.V_CMPX_NE_U64) -v_cmpx_ge_u64_e64 = functools.partial(VOP3, VOP3Op.V_CMPX_GE_U64) -v_cmpx_t_u64_e64 = functools.partial(VOP3, VOP3Op.V_CMPX_T_U64) -v_cmpx_class_f16_e64 = functools.partial(VOP3, VOP3Op.V_CMPX_CLASS_F16) -v_cmpx_class_f32_e64 = functools.partial(VOP3, VOP3Op.V_CMPX_CLASS_F32) -v_cmpx_class_f64_e64 = functools.partial(VOP3, VOP3Op.V_CMPX_CLASS_F64) -v_cndmask_b32_e64 = functools.partial(VOP3, VOP3Op.V_CNDMASK_B32) -v_add_f32_e64 = functools.partial(VOP3, VOP3Op.V_ADD_F32) -v_sub_f32_e64 = functools.partial(VOP3, VOP3Op.V_SUB_F32) -v_subrev_f32_e64 = functools.partial(VOP3, VOP3Op.V_SUBREV_F32) -v_fmac_dx9_zero_f32_e64 = functools.partial(VOP3, VOP3Op.V_FMAC_DX9_ZERO_F32) -v_mul_dx9_zero_f32_e64 = functools.partial(VOP3, VOP3Op.V_MUL_DX9_ZERO_F32) -v_mul_f32_e64 = functools.partial(VOP3, VOP3Op.V_MUL_F32) -v_mul_i32_i24_e64 = functools.partial(VOP3, VOP3Op.V_MUL_I32_I24) -v_mul_hi_i32_i24_e64 = functools.partial(VOP3, VOP3Op.V_MUL_HI_I32_I24) -v_mul_u32_u24_e64 = functools.partial(VOP3, VOP3Op.V_MUL_U32_U24) -v_mul_hi_u32_u24_e64 = functools.partial(VOP3, VOP3Op.V_MUL_HI_U32_U24) -v_min_f32_e64 = functools.partial(VOP3, VOP3Op.V_MIN_F32) -v_max_f32_e64 = functools.partial(VOP3, VOP3Op.V_MAX_F32) -v_min_i32_e64 = functools.partial(VOP3, VOP3Op.V_MIN_I32) -v_max_i32_e64 = functools.partial(VOP3, VOP3Op.V_MAX_I32) -v_min_u32_e64 = functools.partial(VOP3, VOP3Op.V_MIN_U32) -v_max_u32_e64 = functools.partial(VOP3, VOP3Op.V_MAX_U32) -v_lshlrev_b32_e64 = functools.partial(VOP3, VOP3Op.V_LSHLREV_B32) -v_lshrrev_b32_e64 = functools.partial(VOP3, VOP3Op.V_LSHRREV_B32) -v_ashrrev_i32_e64 = functools.partial(VOP3, VOP3Op.V_ASHRREV_I32) -v_and_b32_e64 = functools.partial(VOP3, VOP3Op.V_AND_B32) -v_or_b32_e64 = functools.partial(VOP3, VOP3Op.V_OR_B32) -v_xor_b32_e64 = functools.partial(VOP3, VOP3Op.V_XOR_B32) -v_xnor_b32_e64 = functools.partial(VOP3, VOP3Op.V_XNOR_B32) -v_add_nc_u32_e64 = functools.partial(VOP3, VOP3Op.V_ADD_NC_U32) -v_sub_nc_u32_e64 = functools.partial(VOP3, VOP3Op.V_SUB_NC_U32) -v_subrev_nc_u32_e64 = functools.partial(VOP3, VOP3Op.V_SUBREV_NC_U32) -v_fmac_f32_e64 = functools.partial(VOP3, VOP3Op.V_FMAC_F32) -v_cvt_pk_rtz_f16_f32_e64 = functools.partial(VOP3, VOP3Op.V_CVT_PK_RTZ_F16_F32) -v_add_f16_e64 = functools.partial(VOP3, VOP3Op.V_ADD_F16) -v_sub_f16_e64 = functools.partial(VOP3, VOP3Op.V_SUB_F16) -v_subrev_f16_e64 = functools.partial(VOP3, VOP3Op.V_SUBREV_F16) -v_mul_f16_e64 = functools.partial(VOP3, VOP3Op.V_MUL_F16) -v_fmac_f16_e64 = functools.partial(VOP3, VOP3Op.V_FMAC_F16) -v_max_f16_e64 = functools.partial(VOP3, VOP3Op.V_MAX_F16) -v_min_f16_e64 = functools.partial(VOP3, VOP3Op.V_MIN_F16) -v_ldexp_f16_e64 = functools.partial(VOP3, VOP3Op.V_LDEXP_F16) -v_nop_e64 = functools.partial(VOP3, VOP3Op.V_NOP) -v_mov_b32_e64 = functools.partial(VOP3, VOP3Op.V_MOV_B32) -v_readfirstlane_b32_e64 = functools.partial(VOP3, VOP3Op.V_READFIRSTLANE_B32) -v_cvt_i32_f64_e64 = functools.partial(VOP3, VOP3Op.V_CVT_I32_F64) -v_cvt_f64_i32_e64 = functools.partial(VOP3, VOP3Op.V_CVT_F64_I32) -v_cvt_f32_i32_e64 = functools.partial(VOP3, VOP3Op.V_CVT_F32_I32) -v_cvt_f32_u32_e64 = functools.partial(VOP3, VOP3Op.V_CVT_F32_U32) -v_cvt_u32_f32_e64 = functools.partial(VOP3, VOP3Op.V_CVT_U32_F32) -v_cvt_i32_f32_e64 = functools.partial(VOP3, VOP3Op.V_CVT_I32_F32) -v_cvt_f16_f32_e64 = functools.partial(VOP3, VOP3Op.V_CVT_F16_F32) -v_cvt_f32_f16_e64 = functools.partial(VOP3, VOP3Op.V_CVT_F32_F16) -v_cvt_nearest_i32_f32_e64 = functools.partial(VOP3, VOP3Op.V_CVT_NEAREST_I32_F32) -v_cvt_floor_i32_f32_e64 = functools.partial(VOP3, VOP3Op.V_CVT_FLOOR_I32_F32) -v_cvt_off_f32_i4_e64 = functools.partial(VOP3, VOP3Op.V_CVT_OFF_F32_I4) -v_cvt_f32_f64_e64 = functools.partial(VOP3, VOP3Op.V_CVT_F32_F64) -v_cvt_f64_f32_e64 = functools.partial(VOP3, VOP3Op.V_CVT_F64_F32) -v_cvt_f32_ubyte0_e64 = functools.partial(VOP3, VOP3Op.V_CVT_F32_UBYTE0) -v_cvt_f32_ubyte1_e64 = functools.partial(VOP3, VOP3Op.V_CVT_F32_UBYTE1) -v_cvt_f32_ubyte2_e64 = functools.partial(VOP3, VOP3Op.V_CVT_F32_UBYTE2) -v_cvt_f32_ubyte3_e64 = functools.partial(VOP3, VOP3Op.V_CVT_F32_UBYTE3) -v_cvt_u32_f64_e64 = functools.partial(VOP3, VOP3Op.V_CVT_U32_F64) -v_cvt_f64_u32_e64 = functools.partial(VOP3, VOP3Op.V_CVT_F64_U32) -v_trunc_f64_e64 = functools.partial(VOP3, VOP3Op.V_TRUNC_F64) -v_ceil_f64_e64 = functools.partial(VOP3, VOP3Op.V_CEIL_F64) -v_rndne_f64_e64 = functools.partial(VOP3, VOP3Op.V_RNDNE_F64) -v_floor_f64_e64 = functools.partial(VOP3, VOP3Op.V_FLOOR_F64) -v_pipeflush_e64 = functools.partial(VOP3, VOP3Op.V_PIPEFLUSH) -v_mov_b16_e64 = functools.partial(VOP3, VOP3Op.V_MOV_B16) -v_fract_f32_e64 = functools.partial(VOP3, VOP3Op.V_FRACT_F32) -v_trunc_f32_e64 = functools.partial(VOP3, VOP3Op.V_TRUNC_F32) -v_ceil_f32_e64 = functools.partial(VOP3, VOP3Op.V_CEIL_F32) -v_rndne_f32_e64 = functools.partial(VOP3, VOP3Op.V_RNDNE_F32) -v_floor_f32_e64 = functools.partial(VOP3, VOP3Op.V_FLOOR_F32) -v_exp_f32_e64 = functools.partial(VOP3, VOP3Op.V_EXP_F32) -v_log_f32_e64 = functools.partial(VOP3, VOP3Op.V_LOG_F32) -v_rcp_f32_e64 = functools.partial(VOP3, VOP3Op.V_RCP_F32) -v_rcp_iflag_f32_e64 = functools.partial(VOP3, VOP3Op.V_RCP_IFLAG_F32) -v_rsq_f32_e64 = functools.partial(VOP3, VOP3Op.V_RSQ_F32) -v_rcp_f64_e64 = functools.partial(VOP3, VOP3Op.V_RCP_F64) -v_rsq_f64_e64 = functools.partial(VOP3, VOP3Op.V_RSQ_F64) -v_sqrt_f32_e64 = functools.partial(VOP3, VOP3Op.V_SQRT_F32) -v_sqrt_f64_e64 = functools.partial(VOP3, VOP3Op.V_SQRT_F64) -v_sin_f32_e64 = functools.partial(VOP3, VOP3Op.V_SIN_F32) -v_cos_f32_e64 = functools.partial(VOP3, VOP3Op.V_COS_F32) -v_not_b32_e64 = functools.partial(VOP3, VOP3Op.V_NOT_B32) -v_bfrev_b32_e64 = functools.partial(VOP3, VOP3Op.V_BFREV_B32) -v_clz_i32_u32_e64 = functools.partial(VOP3, VOP3Op.V_CLZ_I32_U32) -v_ctz_i32_b32_e64 = functools.partial(VOP3, VOP3Op.V_CTZ_I32_B32) -v_cls_i32_e64 = functools.partial(VOP3, VOP3Op.V_CLS_I32) -v_frexp_exp_i32_f64_e64 = functools.partial(VOP3, VOP3Op.V_FREXP_EXP_I32_F64) -v_frexp_mant_f64_e64 = functools.partial(VOP3, VOP3Op.V_FREXP_MANT_F64) -v_fract_f64_e64 = functools.partial(VOP3, VOP3Op.V_FRACT_F64) -v_frexp_exp_i32_f32_e64 = functools.partial(VOP3, VOP3Op.V_FREXP_EXP_I32_F32) -v_frexp_mant_f32_e64 = functools.partial(VOP3, VOP3Op.V_FREXP_MANT_F32) -v_movreld_b32_e64 = functools.partial(VOP3, VOP3Op.V_MOVRELD_B32) -v_movrels_b32_e64 = functools.partial(VOP3, VOP3Op.V_MOVRELS_B32) -v_movrelsd_b32_e64 = functools.partial(VOP3, VOP3Op.V_MOVRELSD_B32) -v_movrelsd_2_b32_e64 = functools.partial(VOP3, VOP3Op.V_MOVRELSD_2_B32) -v_cvt_f16_u16_e64 = functools.partial(VOP3, VOP3Op.V_CVT_F16_U16) -v_cvt_f16_i16_e64 = functools.partial(VOP3, VOP3Op.V_CVT_F16_I16) -v_cvt_u16_f16_e64 = functools.partial(VOP3, VOP3Op.V_CVT_U16_F16) -v_cvt_i16_f16_e64 = functools.partial(VOP3, VOP3Op.V_CVT_I16_F16) -v_rcp_f16_e64 = functools.partial(VOP3, VOP3Op.V_RCP_F16) -v_sqrt_f16_e64 = functools.partial(VOP3, VOP3Op.V_SQRT_F16) -v_rsq_f16_e64 = functools.partial(VOP3, VOP3Op.V_RSQ_F16) -v_log_f16_e64 = functools.partial(VOP3, VOP3Op.V_LOG_F16) -v_exp_f16_e64 = functools.partial(VOP3, VOP3Op.V_EXP_F16) -v_frexp_mant_f16_e64 = functools.partial(VOP3, VOP3Op.V_FREXP_MANT_F16) -v_frexp_exp_i16_f16_e64 = functools.partial(VOP3, VOP3Op.V_FREXP_EXP_I16_F16) -v_floor_f16_e64 = functools.partial(VOP3, VOP3Op.V_FLOOR_F16) -v_ceil_f16_e64 = functools.partial(VOP3, VOP3Op.V_CEIL_F16) -v_trunc_f16_e64 = functools.partial(VOP3, VOP3Op.V_TRUNC_F16) -v_rndne_f16_e64 = functools.partial(VOP3, VOP3Op.V_RNDNE_F16) -v_fract_f16_e64 = functools.partial(VOP3, VOP3Op.V_FRACT_F16) -v_sin_f16_e64 = functools.partial(VOP3, VOP3Op.V_SIN_F16) -v_cos_f16_e64 = functools.partial(VOP3, VOP3Op.V_COS_F16) -v_sat_pk_u8_i16_e64 = functools.partial(VOP3, VOP3Op.V_SAT_PK_U8_I16) -v_cvt_norm_i16_f16_e64 = functools.partial(VOP3, VOP3Op.V_CVT_NORM_I16_F16) -v_cvt_norm_u16_f16_e64 = functools.partial(VOP3, VOP3Op.V_CVT_NORM_U16_F16) -v_not_b16_e64 = functools.partial(VOP3, VOP3Op.V_NOT_B16) -v_cvt_i32_i16_e64 = functools.partial(VOP3, VOP3Op.V_CVT_I32_I16) -v_cvt_u32_u16_e64 = functools.partial(VOP3, VOP3Op.V_CVT_U32_U16) -v_fma_dx9_zero_f32 = functools.partial(VOP3, VOP3Op.V_FMA_DX9_ZERO_F32) -v_mad_i32_i24 = functools.partial(VOP3, VOP3Op.V_MAD_I32_I24) -v_mad_u32_u24 = functools.partial(VOP3, VOP3Op.V_MAD_U32_U24) -v_cubeid_f32 = functools.partial(VOP3, VOP3Op.V_CUBEID_F32) -v_cubesc_f32 = functools.partial(VOP3, VOP3Op.V_CUBESC_F32) -v_cubetc_f32 = functools.partial(VOP3, VOP3Op.V_CUBETC_F32) -v_cubema_f32 = functools.partial(VOP3, VOP3Op.V_CUBEMA_F32) -v_bfe_u32 = functools.partial(VOP3, VOP3Op.V_BFE_U32) -v_bfe_i32 = functools.partial(VOP3, VOP3Op.V_BFE_I32) -v_bfi_b32 = functools.partial(VOP3, VOP3Op.V_BFI_B32) -v_fma_f32 = functools.partial(VOP3, VOP3Op.V_FMA_F32) -v_fma_f64 = functools.partial(VOP3, VOP3Op.V_FMA_F64) -v_lerp_u8 = functools.partial(VOP3, VOP3Op.V_LERP_U8) -v_alignbit_b32 = functools.partial(VOP3, VOP3Op.V_ALIGNBIT_B32) -v_alignbyte_b32 = functools.partial(VOP3, VOP3Op.V_ALIGNBYTE_B32) -v_mullit_f32 = functools.partial(VOP3, VOP3Op.V_MULLIT_F32) -v_min3_f32 = functools.partial(VOP3, VOP3Op.V_MIN3_F32) -v_min3_i32 = functools.partial(VOP3, VOP3Op.V_MIN3_I32) -v_min3_u32 = functools.partial(VOP3, VOP3Op.V_MIN3_U32) -v_max3_f32 = functools.partial(VOP3, VOP3Op.V_MAX3_F32) -v_max3_i32 = functools.partial(VOP3, VOP3Op.V_MAX3_I32) -v_max3_u32 = functools.partial(VOP3, VOP3Op.V_MAX3_U32) -v_med3_f32 = functools.partial(VOP3, VOP3Op.V_MED3_F32) -v_med3_i32 = functools.partial(VOP3, VOP3Op.V_MED3_I32) -v_med3_u32 = functools.partial(VOP3, VOP3Op.V_MED3_U32) -v_sad_u8 = functools.partial(VOP3, VOP3Op.V_SAD_U8) -v_sad_hi_u8 = functools.partial(VOP3, VOP3Op.V_SAD_HI_U8) -v_sad_u16 = functools.partial(VOP3, VOP3Op.V_SAD_U16) -v_sad_u32 = functools.partial(VOP3, VOP3Op.V_SAD_U32) -v_cvt_pk_u8_f32 = functools.partial(VOP3, VOP3Op.V_CVT_PK_U8_F32) -v_div_fixup_f32 = functools.partial(VOP3, VOP3Op.V_DIV_FIXUP_F32) -v_div_fixup_f64 = functools.partial(VOP3, VOP3Op.V_DIV_FIXUP_F64) -v_div_fmas_f32 = functools.partial(VOP3, VOP3Op.V_DIV_FMAS_F32) -v_div_fmas_f64 = functools.partial(VOP3, VOP3Op.V_DIV_FMAS_F64) -v_msad_u8 = functools.partial(VOP3, VOP3Op.V_MSAD_U8) -v_qsad_pk_u16_u8 = functools.partial(VOP3, VOP3Op.V_QSAD_PK_U16_U8) -v_mqsad_pk_u16_u8 = functools.partial(VOP3, VOP3Op.V_MQSAD_PK_U16_U8) -v_mqsad_u32_u8 = functools.partial(VOP3, VOP3Op.V_MQSAD_U32_U8) -v_xor3_b32 = functools.partial(VOP3, VOP3Op.V_XOR3_B32) -v_mad_u16 = functools.partial(VOP3, VOP3Op.V_MAD_U16) -v_perm_b32 = functools.partial(VOP3, VOP3Op.V_PERM_B32) -v_xad_u32 = functools.partial(VOP3, VOP3Op.V_XAD_U32) -v_lshl_add_u32 = functools.partial(VOP3, VOP3Op.V_LSHL_ADD_U32) -v_add_lshl_u32 = functools.partial(VOP3, VOP3Op.V_ADD_LSHL_U32) -v_fma_f16 = functools.partial(VOP3, VOP3Op.V_FMA_F16) -v_min3_f16 = functools.partial(VOP3, VOP3Op.V_MIN3_F16) -v_min3_i16 = functools.partial(VOP3, VOP3Op.V_MIN3_I16) -v_min3_u16 = functools.partial(VOP3, VOP3Op.V_MIN3_U16) -v_max3_f16 = functools.partial(VOP3, VOP3Op.V_MAX3_F16) -v_max3_i16 = functools.partial(VOP3, VOP3Op.V_MAX3_I16) -v_max3_u16 = functools.partial(VOP3, VOP3Op.V_MAX3_U16) -v_med3_f16 = functools.partial(VOP3, VOP3Op.V_MED3_F16) -v_med3_i16 = functools.partial(VOP3, VOP3Op.V_MED3_I16) -v_med3_u16 = functools.partial(VOP3, VOP3Op.V_MED3_U16) -v_mad_i16 = functools.partial(VOP3, VOP3Op.V_MAD_I16) -v_div_fixup_f16 = functools.partial(VOP3, VOP3Op.V_DIV_FIXUP_F16) -v_add3_u32 = functools.partial(VOP3, VOP3Op.V_ADD3_U32) -v_lshl_or_b32 = functools.partial(VOP3, VOP3Op.V_LSHL_OR_B32) -v_and_or_b32 = functools.partial(VOP3, VOP3Op.V_AND_OR_B32) -v_or3_b32 = functools.partial(VOP3, VOP3Op.V_OR3_B32) -v_mad_u32_u16 = functools.partial(VOP3, VOP3Op.V_MAD_U32_U16) -v_mad_i32_i16 = functools.partial(VOP3, VOP3Op.V_MAD_I32_I16) -v_permlane16_b32 = functools.partial(VOP3, VOP3Op.V_PERMLANE16_B32) -v_permlanex16_b32 = functools.partial(VOP3, VOP3Op.V_PERMLANEX16_B32) -v_cndmask_b16 = functools.partial(VOP3, VOP3Op.V_CNDMASK_B16) -v_maxmin_f32 = functools.partial(VOP3, VOP3Op.V_MAXMIN_F32) -v_minmax_f32 = functools.partial(VOP3, VOP3Op.V_MINMAX_F32) -v_maxmin_f16 = functools.partial(VOP3, VOP3Op.V_MAXMIN_F16) -v_minmax_f16 = functools.partial(VOP3, VOP3Op.V_MINMAX_F16) -v_maxmin_u32 = functools.partial(VOP3, VOP3Op.V_MAXMIN_U32) -v_minmax_u32 = functools.partial(VOP3, VOP3Op.V_MINMAX_U32) -v_maxmin_i32 = functools.partial(VOP3, VOP3Op.V_MAXMIN_I32) -v_minmax_i32 = functools.partial(VOP3, VOP3Op.V_MINMAX_I32) -v_dot2_f16_f16 = functools.partial(VOP3, VOP3Op.V_DOT2_F16_F16) -v_dot2_bf16_bf16 = functools.partial(VOP3, VOP3Op.V_DOT2_BF16_BF16) -v_add_nc_u16 = functools.partial(VOP3, VOP3Op.V_ADD_NC_U16) -v_sub_nc_u16 = functools.partial(VOP3, VOP3Op.V_SUB_NC_U16) -v_mul_lo_u16 = functools.partial(VOP3, VOP3Op.V_MUL_LO_U16) -v_cvt_pk_i16_f32 = functools.partial(VOP3, VOP3Op.V_CVT_PK_I16_F32) -v_cvt_pk_u16_f32 = functools.partial(VOP3, VOP3Op.V_CVT_PK_U16_F32) -v_max_u16 = functools.partial(VOP3, VOP3Op.V_MAX_U16) -v_max_i16 = functools.partial(VOP3, VOP3Op.V_MAX_I16) -v_min_u16 = functools.partial(VOP3, VOP3Op.V_MIN_U16) -v_min_i16 = functools.partial(VOP3, VOP3Op.V_MIN_I16) -v_add_nc_i16 = functools.partial(VOP3, VOP3Op.V_ADD_NC_I16) -v_sub_nc_i16 = functools.partial(VOP3, VOP3Op.V_SUB_NC_I16) -v_pack_b32_f16 = functools.partial(VOP3, VOP3Op.V_PACK_B32_F16) -v_cvt_pk_norm_i16_f16 = functools.partial(VOP3, VOP3Op.V_CVT_PK_NORM_I16_F16) -v_cvt_pk_norm_u16_f16 = functools.partial(VOP3, VOP3Op.V_CVT_PK_NORM_U16_F16) -v_ldexp_f32 = functools.partial(VOP3, VOP3Op.V_LDEXP_F32) -v_bfm_b32 = functools.partial(VOP3, VOP3Op.V_BFM_B32) -v_bcnt_u32_b32 = functools.partial(VOP3, VOP3Op.V_BCNT_U32_B32) -v_mbcnt_lo_u32_b32 = functools.partial(VOP3, VOP3Op.V_MBCNT_LO_U32_B32) -v_mbcnt_hi_u32_b32 = functools.partial(VOP3, VOP3Op.V_MBCNT_HI_U32_B32) -v_cvt_pk_norm_i16_f32 = functools.partial(VOP3, VOP3Op.V_CVT_PK_NORM_I16_F32) -v_cvt_pk_norm_u16_f32 = functools.partial(VOP3, VOP3Op.V_CVT_PK_NORM_U16_F32) -v_cvt_pk_u16_u32 = functools.partial(VOP3, VOP3Op.V_CVT_PK_U16_U32) -v_cvt_pk_i16_i32 = functools.partial(VOP3, VOP3Op.V_CVT_PK_I16_I32) -v_sub_nc_i32 = functools.partial(VOP3, VOP3Op.V_SUB_NC_I32) -v_add_nc_i32 = functools.partial(VOP3, VOP3Op.V_ADD_NC_I32) -v_add_f64 = functools.partial(VOP3, VOP3Op.V_ADD_F64) -v_mul_f64 = functools.partial(VOP3, VOP3Op.V_MUL_F64) -v_min_f64 = functools.partial(VOP3, VOP3Op.V_MIN_F64) -v_max_f64 = functools.partial(VOP3, VOP3Op.V_MAX_F64) -v_ldexp_f64 = functools.partial(VOP3, VOP3Op.V_LDEXP_F64) -v_mul_lo_u32 = functools.partial(VOP3, VOP3Op.V_MUL_LO_U32) -v_mul_hi_u32 = functools.partial(VOP3, VOP3Op.V_MUL_HI_U32) -v_mul_hi_i32 = functools.partial(VOP3, VOP3Op.V_MUL_HI_I32) -v_trig_preop_f64 = functools.partial(VOP3, VOP3Op.V_TRIG_PREOP_F64) -v_lshlrev_b16 = functools.partial(VOP3, VOP3Op.V_LSHLREV_B16) -v_lshrrev_b16 = functools.partial(VOP3, VOP3Op.V_LSHRREV_B16) -v_ashrrev_i16 = functools.partial(VOP3, VOP3Op.V_ASHRREV_I16) -v_lshlrev_b64 = functools.partial(VOP3, VOP3Op.V_LSHLREV_B64) -v_lshrrev_b64 = functools.partial(VOP3, VOP3Op.V_LSHRREV_B64) -v_ashrrev_i64 = functools.partial(VOP3, VOP3Op.V_ASHRREV_I64) -v_readlane_b32 = functools.partial(VOP3, VOP3Op.V_READLANE_B32) -v_writelane_b32 = functools.partial(VOP3, VOP3Op.V_WRITELANE_B32) -v_and_b16 = functools.partial(VOP3, VOP3Op.V_AND_B16) -v_or_b16 = functools.partial(VOP3, VOP3Op.V_OR_B16) -v_xor_b16 = functools.partial(VOP3, VOP3Op.V_XOR_B16) -v_pk_mad_i16 = functools.partial(VOP3P, VOP3POp.V_PK_MAD_I16) -v_pk_mul_lo_u16 = functools.partial(VOP3P, VOP3POp.V_PK_MUL_LO_U16) -v_pk_add_i16 = functools.partial(VOP3P, VOP3POp.V_PK_ADD_I16) -v_pk_sub_i16 = functools.partial(VOP3P, VOP3POp.V_PK_SUB_I16) -v_pk_lshlrev_b16 = functools.partial(VOP3P, VOP3POp.V_PK_LSHLREV_B16) -v_pk_lshrrev_b16 = functools.partial(VOP3P, VOP3POp.V_PK_LSHRREV_B16) -v_pk_ashrrev_i16 = functools.partial(VOP3P, VOP3POp.V_PK_ASHRREV_I16) -v_pk_max_i16 = functools.partial(VOP3P, VOP3POp.V_PK_MAX_I16) -v_pk_min_i16 = functools.partial(VOP3P, VOP3POp.V_PK_MIN_I16) -v_pk_mad_u16 = functools.partial(VOP3P, VOP3POp.V_PK_MAD_U16) -v_pk_add_u16 = functools.partial(VOP3P, VOP3POp.V_PK_ADD_U16) -v_pk_sub_u16 = functools.partial(VOP3P, VOP3POp.V_PK_SUB_U16) -v_pk_max_u16 = functools.partial(VOP3P, VOP3POp.V_PK_MAX_U16) -v_pk_min_u16 = functools.partial(VOP3P, VOP3POp.V_PK_MIN_U16) -v_pk_fma_f16 = functools.partial(VOP3P, VOP3POp.V_PK_FMA_F16) -v_pk_add_f16 = functools.partial(VOP3P, VOP3POp.V_PK_ADD_F16) -v_pk_mul_f16 = functools.partial(VOP3P, VOP3POp.V_PK_MUL_F16) -v_pk_min_f16 = functools.partial(VOP3P, VOP3POp.V_PK_MIN_F16) -v_pk_max_f16 = functools.partial(VOP3P, VOP3POp.V_PK_MAX_F16) -v_dot2_f32_f16 = functools.partial(VOP3P, VOP3POp.V_DOT2_F32_F16) -v_dot4_i32_iu8 = functools.partial(VOP3P, VOP3POp.V_DOT4_I32_IU8) -v_dot4_u32_u8 = functools.partial(VOP3P, VOP3POp.V_DOT4_U32_U8) -v_dot8_i32_iu4 = functools.partial(VOP3P, VOP3POp.V_DOT8_I32_IU4) -v_dot8_u32_u4 = functools.partial(VOP3P, VOP3POp.V_DOT8_U32_U4) -v_dot2_f32_bf16 = functools.partial(VOP3P, VOP3POp.V_DOT2_F32_BF16) -v_fma_mix_f32 = functools.partial(VOP3P, VOP3POp.V_FMA_MIX_F32) -v_fma_mixlo_f16 = functools.partial(VOP3P, VOP3POp.V_FMA_MIXLO_F16) -v_fma_mixhi_f16 = functools.partial(VOP3P, VOP3POp.V_FMA_MIXHI_F16) -v_wmma_f32_16x16x16_f16 = functools.partial(VOP3P, VOP3POp.V_WMMA_F32_16X16X16_F16) -v_wmma_f32_16x16x16_bf16 = functools.partial(VOP3P, VOP3POp.V_WMMA_F32_16X16X16_BF16) -v_wmma_f16_16x16x16_f16 = functools.partial(VOP3P, VOP3POp.V_WMMA_F16_16X16X16_F16) -v_wmma_bf16_16x16x16_bf16 = functools.partial(VOP3P, VOP3POp.V_WMMA_BF16_16X16X16_BF16) -v_wmma_i32_16x16x16_iu8 = functools.partial(VOP3P, VOP3POp.V_WMMA_I32_16X16X16_IU8) -v_wmma_i32_16x16x16_iu4 = functools.partial(VOP3P, VOP3POp.V_WMMA_I32_16X16X16_IU4) -dword = functools.partial(VOP3SD, VOP3SDOp.DWORD) -v_add_co_ci_u32 = functools.partial(VOP3SD, VOP3SDOp.V_ADD_CO_CI_U32) -v_sub_co_ci_u32 = functools.partial(VOP3SD, VOP3SDOp.V_SUB_CO_CI_U32) -v_subrev_co_ci_u32 = functools.partial(VOP3SD, VOP3SDOp.V_SUBREV_CO_CI_U32) -v_div_scale_f32 = functools.partial(VOP3SD, VOP3SDOp.V_DIV_SCALE_F32) -v_div_scale_f64 = functools.partial(VOP3SD, VOP3SDOp.V_DIV_SCALE_F64) -v_mad_u64_u32 = functools.partial(VOP3SD, VOP3SDOp.V_MAD_U64_U32) -v_mad_i64_i32 = functools.partial(VOP3SD, VOP3SDOp.V_MAD_I64_I32) -v_add_co_u32 = functools.partial(VOP3SD, VOP3SDOp.V_ADD_CO_U32) -v_sub_co_u32 = functools.partial(VOP3SD, VOP3SDOp.V_SUB_CO_U32) -v_subrev_co_u32 = functools.partial(VOP3SD, VOP3SDOp.V_SUBREV_CO_U32) -v_cmp_f_f16_e32 = functools.partial(VOPC, VOPCOp.V_CMP_F_F16) -v_cmp_lt_f16_e32 = functools.partial(VOPC, VOPCOp.V_CMP_LT_F16) -v_cmp_eq_f16_e32 = functools.partial(VOPC, VOPCOp.V_CMP_EQ_F16) -v_cmp_le_f16_e32 = functools.partial(VOPC, VOPCOp.V_CMP_LE_F16) -v_cmp_gt_f16_e32 = functools.partial(VOPC, VOPCOp.V_CMP_GT_F16) -v_cmp_lg_f16_e32 = functools.partial(VOPC, VOPCOp.V_CMP_LG_F16) -v_cmp_ge_f16_e32 = functools.partial(VOPC, VOPCOp.V_CMP_GE_F16) -v_cmp_o_f16_e32 = functools.partial(VOPC, VOPCOp.V_CMP_O_F16) -v_cmp_u_f16_e32 = functools.partial(VOPC, VOPCOp.V_CMP_U_F16) -v_cmp_nge_f16_e32 = functools.partial(VOPC, VOPCOp.V_CMP_NGE_F16) -v_cmp_nlg_f16_e32 = functools.partial(VOPC, VOPCOp.V_CMP_NLG_F16) -v_cmp_ngt_f16_e32 = functools.partial(VOPC, VOPCOp.V_CMP_NGT_F16) -v_cmp_nle_f16_e32 = functools.partial(VOPC, VOPCOp.V_CMP_NLE_F16) -v_cmp_neq_f16_e32 = functools.partial(VOPC, VOPCOp.V_CMP_NEQ_F16) -v_cmp_nlt_f16_e32 = functools.partial(VOPC, VOPCOp.V_CMP_NLT_F16) -v_cmp_t_f16_e32 = functools.partial(VOPC, VOPCOp.V_CMP_T_F16) -v_cmp_f_f32_e32 = functools.partial(VOPC, VOPCOp.V_CMP_F_F32) -v_cmp_lt_f32_e32 = functools.partial(VOPC, VOPCOp.V_CMP_LT_F32) -v_cmp_eq_f32_e32 = functools.partial(VOPC, VOPCOp.V_CMP_EQ_F32) -v_cmp_le_f32_e32 = functools.partial(VOPC, VOPCOp.V_CMP_LE_F32) -v_cmp_gt_f32_e32 = functools.partial(VOPC, VOPCOp.V_CMP_GT_F32) -v_cmp_lg_f32_e32 = functools.partial(VOPC, VOPCOp.V_CMP_LG_F32) -v_cmp_ge_f32_e32 = functools.partial(VOPC, VOPCOp.V_CMP_GE_F32) -v_cmp_o_f32_e32 = functools.partial(VOPC, VOPCOp.V_CMP_O_F32) -v_cmp_u_f32_e32 = functools.partial(VOPC, VOPCOp.V_CMP_U_F32) -v_cmp_nge_f32_e32 = functools.partial(VOPC, VOPCOp.V_CMP_NGE_F32) -v_cmp_nlg_f32_e32 = functools.partial(VOPC, VOPCOp.V_CMP_NLG_F32) -v_cmp_ngt_f32_e32 = functools.partial(VOPC, VOPCOp.V_CMP_NGT_F32) -v_cmp_nle_f32_e32 = functools.partial(VOPC, VOPCOp.V_CMP_NLE_F32) -v_cmp_neq_f32_e32 = functools.partial(VOPC, VOPCOp.V_CMP_NEQ_F32) -v_cmp_nlt_f32_e32 = functools.partial(VOPC, VOPCOp.V_CMP_NLT_F32) -v_cmp_t_f32_e32 = functools.partial(VOPC, VOPCOp.V_CMP_T_F32) -v_cmp_f_f64_e32 = functools.partial(VOPC, VOPCOp.V_CMP_F_F64) -v_cmp_lt_f64_e32 = functools.partial(VOPC, VOPCOp.V_CMP_LT_F64) -v_cmp_eq_f64_e32 = functools.partial(VOPC, VOPCOp.V_CMP_EQ_F64) -v_cmp_le_f64_e32 = functools.partial(VOPC, VOPCOp.V_CMP_LE_F64) -v_cmp_gt_f64_e32 = functools.partial(VOPC, VOPCOp.V_CMP_GT_F64) -v_cmp_lg_f64_e32 = functools.partial(VOPC, VOPCOp.V_CMP_LG_F64) -v_cmp_ge_f64_e32 = functools.partial(VOPC, VOPCOp.V_CMP_GE_F64) -v_cmp_o_f64_e32 = functools.partial(VOPC, VOPCOp.V_CMP_O_F64) -v_cmp_u_f64_e32 = functools.partial(VOPC, VOPCOp.V_CMP_U_F64) -v_cmp_nge_f64_e32 = functools.partial(VOPC, VOPCOp.V_CMP_NGE_F64) -v_cmp_nlg_f64_e32 = functools.partial(VOPC, VOPCOp.V_CMP_NLG_F64) -v_cmp_ngt_f64_e32 = functools.partial(VOPC, VOPCOp.V_CMP_NGT_F64) -v_cmp_nle_f64_e32 = functools.partial(VOPC, VOPCOp.V_CMP_NLE_F64) -v_cmp_neq_f64_e32 = functools.partial(VOPC, VOPCOp.V_CMP_NEQ_F64) -v_cmp_nlt_f64_e32 = functools.partial(VOPC, VOPCOp.V_CMP_NLT_F64) -v_cmp_t_f64_e32 = functools.partial(VOPC, VOPCOp.V_CMP_T_F64) -v_cmp_lt_i16_e32 = functools.partial(VOPC, VOPCOp.V_CMP_LT_I16) -v_cmp_eq_i16_e32 = functools.partial(VOPC, VOPCOp.V_CMP_EQ_I16) -v_cmp_le_i16_e32 = functools.partial(VOPC, VOPCOp.V_CMP_LE_I16) -v_cmp_gt_i16_e32 = functools.partial(VOPC, VOPCOp.V_CMP_GT_I16) -v_cmp_ne_i16_e32 = functools.partial(VOPC, VOPCOp.V_CMP_NE_I16) -v_cmp_ge_i16_e32 = functools.partial(VOPC, VOPCOp.V_CMP_GE_I16) -v_cmp_lt_u16_e32 = functools.partial(VOPC, VOPCOp.V_CMP_LT_U16) -v_cmp_eq_u16_e32 = functools.partial(VOPC, VOPCOp.V_CMP_EQ_U16) -v_cmp_le_u16_e32 = functools.partial(VOPC, VOPCOp.V_CMP_LE_U16) -v_cmp_gt_u16_e32 = functools.partial(VOPC, VOPCOp.V_CMP_GT_U16) -v_cmp_ne_u16_e32 = functools.partial(VOPC, VOPCOp.V_CMP_NE_U16) -v_cmp_ge_u16_e32 = functools.partial(VOPC, VOPCOp.V_CMP_GE_U16) -v_cmp_f_i32_e32 = functools.partial(VOPC, VOPCOp.V_CMP_F_I32) -v_cmp_lt_i32_e32 = functools.partial(VOPC, VOPCOp.V_CMP_LT_I32) -v_cmp_eq_i32_e32 = functools.partial(VOPC, VOPCOp.V_CMP_EQ_I32) -v_cmp_le_i32_e32 = functools.partial(VOPC, VOPCOp.V_CMP_LE_I32) -v_cmp_gt_i32_e32 = functools.partial(VOPC, VOPCOp.V_CMP_GT_I32) -v_cmp_ne_i32_e32 = functools.partial(VOPC, VOPCOp.V_CMP_NE_I32) -v_cmp_ge_i32_e32 = functools.partial(VOPC, VOPCOp.V_CMP_GE_I32) -v_cmp_t_i32_e32 = functools.partial(VOPC, VOPCOp.V_CMP_T_I32) -v_cmp_f_u32_e32 = functools.partial(VOPC, VOPCOp.V_CMP_F_U32) -v_cmp_lt_u32_e32 = functools.partial(VOPC, VOPCOp.V_CMP_LT_U32) -v_cmp_eq_u32_e32 = functools.partial(VOPC, VOPCOp.V_CMP_EQ_U32) -v_cmp_le_u32_e32 = functools.partial(VOPC, VOPCOp.V_CMP_LE_U32) -v_cmp_gt_u32_e32 = functools.partial(VOPC, VOPCOp.V_CMP_GT_U32) -v_cmp_ne_u32_e32 = functools.partial(VOPC, VOPCOp.V_CMP_NE_U32) -v_cmp_ge_u32_e32 = functools.partial(VOPC, VOPCOp.V_CMP_GE_U32) -v_cmp_t_u32_e32 = functools.partial(VOPC, VOPCOp.V_CMP_T_U32) -v_cmp_f_i64_e32 = functools.partial(VOPC, VOPCOp.V_CMP_F_I64) -v_cmp_lt_i64_e32 = functools.partial(VOPC, VOPCOp.V_CMP_LT_I64) -v_cmp_eq_i64_e32 = functools.partial(VOPC, VOPCOp.V_CMP_EQ_I64) -v_cmp_le_i64_e32 = functools.partial(VOPC, VOPCOp.V_CMP_LE_I64) -v_cmp_gt_i64_e32 = functools.partial(VOPC, VOPCOp.V_CMP_GT_I64) -v_cmp_ne_i64_e32 = functools.partial(VOPC, VOPCOp.V_CMP_NE_I64) -v_cmp_ge_i64_e32 = functools.partial(VOPC, VOPCOp.V_CMP_GE_I64) -v_cmp_t_i64_e32 = functools.partial(VOPC, VOPCOp.V_CMP_T_I64) -v_cmp_f_u64_e32 = functools.partial(VOPC, VOPCOp.V_CMP_F_U64) -v_cmp_lt_u64_e32 = functools.partial(VOPC, VOPCOp.V_CMP_LT_U64) -v_cmp_eq_u64_e32 = functools.partial(VOPC, VOPCOp.V_CMP_EQ_U64) -v_cmp_le_u64_e32 = functools.partial(VOPC, VOPCOp.V_CMP_LE_U64) -v_cmp_gt_u64_e32 = functools.partial(VOPC, VOPCOp.V_CMP_GT_U64) -v_cmp_ne_u64_e32 = functools.partial(VOPC, VOPCOp.V_CMP_NE_U64) -v_cmp_ge_u64_e32 = functools.partial(VOPC, VOPCOp.V_CMP_GE_U64) -v_cmp_t_u64_e32 = functools.partial(VOPC, VOPCOp.V_CMP_T_U64) -v_cmp_class_f16_e32 = functools.partial(VOPC, VOPCOp.V_CMP_CLASS_F16) -v_cmp_class_f32_e32 = functools.partial(VOPC, VOPCOp.V_CMP_CLASS_F32) -v_cmp_class_f64_e32 = functools.partial(VOPC, VOPCOp.V_CMP_CLASS_F64) -v_cmpx_f_f16_e32 = functools.partial(VOPC, VOPCOp.V_CMPX_F_F16) -v_cmpx_lt_f16_e32 = functools.partial(VOPC, VOPCOp.V_CMPX_LT_F16) -v_cmpx_eq_f16_e32 = functools.partial(VOPC, VOPCOp.V_CMPX_EQ_F16) -v_cmpx_le_f16_e32 = functools.partial(VOPC, VOPCOp.V_CMPX_LE_F16) -v_cmpx_gt_f16_e32 = functools.partial(VOPC, VOPCOp.V_CMPX_GT_F16) -v_cmpx_lg_f16_e32 = functools.partial(VOPC, VOPCOp.V_CMPX_LG_F16) -v_cmpx_ge_f16_e32 = functools.partial(VOPC, VOPCOp.V_CMPX_GE_F16) -v_cmpx_o_f16_e32 = functools.partial(VOPC, VOPCOp.V_CMPX_O_F16) -v_cmpx_u_f16_e32 = functools.partial(VOPC, VOPCOp.V_CMPX_U_F16) -v_cmpx_nge_f16_e32 = functools.partial(VOPC, VOPCOp.V_CMPX_NGE_F16) -v_cmpx_nlg_f16_e32 = functools.partial(VOPC, VOPCOp.V_CMPX_NLG_F16) -v_cmpx_ngt_f16_e32 = functools.partial(VOPC, VOPCOp.V_CMPX_NGT_F16) -v_cmpx_nle_f16_e32 = functools.partial(VOPC, VOPCOp.V_CMPX_NLE_F16) -v_cmpx_neq_f16_e32 = functools.partial(VOPC, VOPCOp.V_CMPX_NEQ_F16) -v_cmpx_nlt_f16_e32 = functools.partial(VOPC, VOPCOp.V_CMPX_NLT_F16) -v_cmpx_t_f16_e32 = functools.partial(VOPC, VOPCOp.V_CMPX_T_F16) -v_cmpx_f_f32_e32 = functools.partial(VOPC, VOPCOp.V_CMPX_F_F32) -v_cmpx_lt_f32_e32 = functools.partial(VOPC, VOPCOp.V_CMPX_LT_F32) -v_cmpx_eq_f32_e32 = functools.partial(VOPC, VOPCOp.V_CMPX_EQ_F32) -v_cmpx_le_f32_e32 = functools.partial(VOPC, VOPCOp.V_CMPX_LE_F32) -v_cmpx_gt_f32_e32 = functools.partial(VOPC, VOPCOp.V_CMPX_GT_F32) -v_cmpx_lg_f32_e32 = functools.partial(VOPC, VOPCOp.V_CMPX_LG_F32) -v_cmpx_ge_f32_e32 = functools.partial(VOPC, VOPCOp.V_CMPX_GE_F32) -v_cmpx_o_f32_e32 = functools.partial(VOPC, VOPCOp.V_CMPX_O_F32) -v_cmpx_u_f32_e32 = functools.partial(VOPC, VOPCOp.V_CMPX_U_F32) -v_cmpx_nge_f32_e32 = functools.partial(VOPC, VOPCOp.V_CMPX_NGE_F32) -v_cmpx_nlg_f32_e32 = functools.partial(VOPC, VOPCOp.V_CMPX_NLG_F32) -v_cmpx_ngt_f32_e32 = functools.partial(VOPC, VOPCOp.V_CMPX_NGT_F32) -v_cmpx_nle_f32_e32 = functools.partial(VOPC, VOPCOp.V_CMPX_NLE_F32) -v_cmpx_neq_f32_e32 = functools.partial(VOPC, VOPCOp.V_CMPX_NEQ_F32) -v_cmpx_nlt_f32_e32 = functools.partial(VOPC, VOPCOp.V_CMPX_NLT_F32) -v_cmpx_t_f32_e32 = functools.partial(VOPC, VOPCOp.V_CMPX_T_F32) -v_cmpx_f_f64_e32 = functools.partial(VOPC, VOPCOp.V_CMPX_F_F64) -v_cmpx_lt_f64_e32 = functools.partial(VOPC, VOPCOp.V_CMPX_LT_F64) -v_cmpx_eq_f64_e32 = functools.partial(VOPC, VOPCOp.V_CMPX_EQ_F64) -v_cmpx_le_f64_e32 = functools.partial(VOPC, VOPCOp.V_CMPX_LE_F64) -v_cmpx_gt_f64_e32 = functools.partial(VOPC, VOPCOp.V_CMPX_GT_F64) -v_cmpx_lg_f64_e32 = functools.partial(VOPC, VOPCOp.V_CMPX_LG_F64) -v_cmpx_ge_f64_e32 = functools.partial(VOPC, VOPCOp.V_CMPX_GE_F64) -v_cmpx_o_f64_e32 = functools.partial(VOPC, VOPCOp.V_CMPX_O_F64) -v_cmpx_u_f64_e32 = functools.partial(VOPC, VOPCOp.V_CMPX_U_F64) -v_cmpx_nge_f64_e32 = functools.partial(VOPC, VOPCOp.V_CMPX_NGE_F64) -v_cmpx_nlg_f64_e32 = functools.partial(VOPC, VOPCOp.V_CMPX_NLG_F64) -v_cmpx_ngt_f64_e32 = functools.partial(VOPC, VOPCOp.V_CMPX_NGT_F64) -v_cmpx_nle_f64_e32 = functools.partial(VOPC, VOPCOp.V_CMPX_NLE_F64) -v_cmpx_neq_f64_e32 = functools.partial(VOPC, VOPCOp.V_CMPX_NEQ_F64) -v_cmpx_nlt_f64_e32 = functools.partial(VOPC, VOPCOp.V_CMPX_NLT_F64) -v_cmpx_t_f64_e32 = functools.partial(VOPC, VOPCOp.V_CMPX_T_F64) -v_cmpx_lt_i16_e32 = functools.partial(VOPC, VOPCOp.V_CMPX_LT_I16) -v_cmpx_eq_i16_e32 = functools.partial(VOPC, VOPCOp.V_CMPX_EQ_I16) -v_cmpx_le_i16_e32 = functools.partial(VOPC, VOPCOp.V_CMPX_LE_I16) -v_cmpx_gt_i16_e32 = functools.partial(VOPC, VOPCOp.V_CMPX_GT_I16) -v_cmpx_ne_i16_e32 = functools.partial(VOPC, VOPCOp.V_CMPX_NE_I16) -v_cmpx_ge_i16_e32 = functools.partial(VOPC, VOPCOp.V_CMPX_GE_I16) -v_cmpx_lt_u16_e32 = functools.partial(VOPC, VOPCOp.V_CMPX_LT_U16) -v_cmpx_eq_u16_e32 = functools.partial(VOPC, VOPCOp.V_CMPX_EQ_U16) -v_cmpx_le_u16_e32 = functools.partial(VOPC, VOPCOp.V_CMPX_LE_U16) -v_cmpx_gt_u16_e32 = functools.partial(VOPC, VOPCOp.V_CMPX_GT_U16) -v_cmpx_ne_u16_e32 = functools.partial(VOPC, VOPCOp.V_CMPX_NE_U16) -v_cmpx_ge_u16_e32 = functools.partial(VOPC, VOPCOp.V_CMPX_GE_U16) -v_cmpx_f_i32_e32 = functools.partial(VOPC, VOPCOp.V_CMPX_F_I32) -v_cmpx_lt_i32_e32 = functools.partial(VOPC, VOPCOp.V_CMPX_LT_I32) -v_cmpx_eq_i32_e32 = functools.partial(VOPC, VOPCOp.V_CMPX_EQ_I32) -v_cmpx_le_i32_e32 = functools.partial(VOPC, VOPCOp.V_CMPX_LE_I32) -v_cmpx_gt_i32_e32 = functools.partial(VOPC, VOPCOp.V_CMPX_GT_I32) -v_cmpx_ne_i32_e32 = functools.partial(VOPC, VOPCOp.V_CMPX_NE_I32) -v_cmpx_ge_i32_e32 = functools.partial(VOPC, VOPCOp.V_CMPX_GE_I32) -v_cmpx_t_i32_e32 = functools.partial(VOPC, VOPCOp.V_CMPX_T_I32) -v_cmpx_f_u32_e32 = functools.partial(VOPC, VOPCOp.V_CMPX_F_U32) -v_cmpx_lt_u32_e32 = functools.partial(VOPC, VOPCOp.V_CMPX_LT_U32) -v_cmpx_eq_u32_e32 = functools.partial(VOPC, VOPCOp.V_CMPX_EQ_U32) -v_cmpx_le_u32_e32 = functools.partial(VOPC, VOPCOp.V_CMPX_LE_U32) -v_cmpx_gt_u32_e32 = functools.partial(VOPC, VOPCOp.V_CMPX_GT_U32) -v_cmpx_ne_u32_e32 = functools.partial(VOPC, VOPCOp.V_CMPX_NE_U32) -v_cmpx_ge_u32_e32 = functools.partial(VOPC, VOPCOp.V_CMPX_GE_U32) -v_cmpx_t_u32_e32 = functools.partial(VOPC, VOPCOp.V_CMPX_T_U32) -v_cmpx_f_i64_e32 = functools.partial(VOPC, VOPCOp.V_CMPX_F_I64) -v_cmpx_lt_i64_e32 = functools.partial(VOPC, VOPCOp.V_CMPX_LT_I64) -v_cmpx_eq_i64_e32 = functools.partial(VOPC, VOPCOp.V_CMPX_EQ_I64) -v_cmpx_le_i64_e32 = functools.partial(VOPC, VOPCOp.V_CMPX_LE_I64) -v_cmpx_gt_i64_e32 = functools.partial(VOPC, VOPCOp.V_CMPX_GT_I64) -v_cmpx_ne_i64_e32 = functools.partial(VOPC, VOPCOp.V_CMPX_NE_I64) -v_cmpx_ge_i64_e32 = functools.partial(VOPC, VOPCOp.V_CMPX_GE_I64) -v_cmpx_t_i64_e32 = functools.partial(VOPC, VOPCOp.V_CMPX_T_I64) -v_cmpx_f_u64_e32 = functools.partial(VOPC, VOPCOp.V_CMPX_F_U64) -v_cmpx_lt_u64_e32 = functools.partial(VOPC, VOPCOp.V_CMPX_LT_U64) -v_cmpx_eq_u64_e32 = functools.partial(VOPC, VOPCOp.V_CMPX_EQ_U64) -v_cmpx_le_u64_e32 = functools.partial(VOPC, VOPCOp.V_CMPX_LE_U64) -v_cmpx_gt_u64_e32 = functools.partial(VOPC, VOPCOp.V_CMPX_GT_U64) -v_cmpx_ne_u64_e32 = functools.partial(VOPC, VOPCOp.V_CMPX_NE_U64) -v_cmpx_ge_u64_e32 = functools.partial(VOPC, VOPCOp.V_CMPX_GE_U64) -v_cmpx_t_u64_e32 = functools.partial(VOPC, VOPCOp.V_CMPX_T_U64) -v_cmpx_class_f16_e32 = functools.partial(VOPC, VOPCOp.V_CMPX_CLASS_F16) -v_cmpx_class_f32_e32 = functools.partial(VOPC, VOPCOp.V_CMPX_CLASS_F32) -v_cmpx_class_f64_e32 = functools.partial(VOPC, VOPCOp.V_CMPX_CLASS_F64) -v_dual_fmac_f32 = functools.partial(VOPD, VOPDOp.V_DUAL_FMAC_F32) -v_dual_fmaak_f32 = functools.partial(VOPD, VOPDOp.V_DUAL_FMAAK_F32) -v_dual_fmamk_f32 = functools.partial(VOPD, VOPDOp.V_DUAL_FMAMK_F32) -v_dual_mul_f32 = functools.partial(VOPD, VOPDOp.V_DUAL_MUL_F32) -v_dual_add_f32 = functools.partial(VOPD, VOPDOp.V_DUAL_ADD_F32) -v_dual_sub_f32 = functools.partial(VOPD, VOPDOp.V_DUAL_SUB_F32) -v_dual_subrev_f32 = functools.partial(VOPD, VOPDOp.V_DUAL_SUBREV_F32) -v_dual_mul_dx9_zero_f32 = functools.partial(VOPD, VOPDOp.V_DUAL_MUL_DX9_ZERO_F32) -v_dual_mov_b32 = functools.partial(VOPD, VOPDOp.V_DUAL_MOV_B32) -v_dual_cndmask_b32 = functools.partial(VOPD, VOPDOp.V_DUAL_CNDMASK_B32) -v_dual_max_f32 = functools.partial(VOPD, VOPDOp.V_DUAL_MAX_F32) -v_dual_min_f32 = functools.partial(VOPD, VOPDOp.V_DUAL_MIN_F32) -v_dual_dot2acc_f32_f16 = functools.partial(VOPD, VOPDOp.V_DUAL_DOT2ACC_F32_F16) -v_dual_dot2acc_f32_bf16 = functools.partial(VOPD, VOPDOp.V_DUAL_DOT2ACC_F32_BF16) -v_dual_add_nc_u32 = functools.partial(VOPD, VOPDOp.V_DUAL_ADD_NC_U32) -v_dual_lshlrev_b32 = functools.partial(VOPD, VOPDOp.V_DUAL_LSHLREV_B32) -v_dual_and_b32 = functools.partial(VOPD, VOPDOp.V_DUAL_AND_B32) - -VCC_LO = SrcEnum.VCC_LO -VCC_HI = SrcEnum.VCC_HI -NULL = SrcEnum.NULL -M0 = SrcEnum.M0 -EXEC_LO = SrcEnum.EXEC_LO -EXEC_HI = SrcEnum.EXEC_HI -ZERO = SrcEnum.ZERO -DPP8FI = SrcEnum.DPP8FI -SHARED_BASE = SrcEnum.SHARED_BASE -SHARED_LIMIT = SrcEnum.SHARED_LIMIT -PRIVATE_BASE = SrcEnum.PRIVATE_BASE -PRIVATE_LIMIT = SrcEnum.PRIVATE_LIMIT -POS_HALF = SrcEnum.POS_HALF -NEG_HALF = SrcEnum.NEG_HALF -POS_ONE = SrcEnum.POS_ONE -NEG_ONE = SrcEnum.NEG_ONE -POS_TWO = SrcEnum.POS_TWO -NEG_TWO = SrcEnum.NEG_TWO -POS_FOUR = SrcEnum.POS_FOUR -NEG_FOUR = SrcEnum.NEG_FOUR -INV_2PI = SrcEnum.INV_2PI -VCCZ = SrcEnum.VCCZ -EXECZ = SrcEnum.EXECZ -SCC = SrcEnum.SCC -LDS_DIRECT = SrcEnum.LDS_DIRECT -OFF = NULL diff --git a/extra/assembly/amd/autogen/rdna3/enum.py b/extra/assembly/amd/autogen/rdna3/enum.py new file mode 100644 index 0000000000..fc56dccda7 --- /dev/null +++ b/extra/assembly/amd/autogen/rdna3/enum.py @@ -0,0 +1,1590 @@ +# autogenerated from AMD RDNA3.5 ISA PDF by pdf.py - do not edit +from enum import IntEnum + +class SrcEnum(IntEnum): + VCC_LO = 106 + VCC_HI = 107 + NULL = 124 + M0 = 125 + EXEC_LO = 126 + EXEC_HI = 127 + ZERO = 128 + DPP8 = 233 + DPP8FI = 234 + SHARED_BASE = 235 + SHARED_LIMIT = 236 + PRIVATE_BASE = 237 + PRIVATE_LIMIT = 238 + POS_HALF = 240 + NEG_HALF = 241 + POS_ONE = 242 + NEG_ONE = 243 + POS_TWO = 244 + NEG_TWO = 245 + POS_FOUR = 246 + NEG_FOUR = 247 + INV_2PI = 248 + DPP16 = 250 + VCCZ = 251 + EXECZ = 252 + SCC = 253 + LDS_DIRECT = 254 + +class DSOp(IntEnum): + DS_ADD_U32 = 0 + DS_SUB_U32 = 1 + DS_RSUB_U32 = 2 + DS_INC_U32 = 3 + DS_DEC_U32 = 4 + DS_MIN_I32 = 5 + DS_MAX_I32 = 6 + DS_MIN_U32 = 7 + DS_MAX_U32 = 8 + DS_AND_B32 = 9 + DS_OR_B32 = 10 + DS_XOR_B32 = 11 + DS_MSKOR_B32 = 12 + DS_STORE_B32 = 13 + DS_STORE_2ADDR_B32 = 14 + DS_STORE_2ADDR_STRIDE64_B32 = 15 + DS_CMPSTORE_B32 = 16 + DS_CMPSTORE_F32 = 17 + DS_MIN_F32 = 18 + DS_MAX_F32 = 19 + DS_NOP = 20 + DS_ADD_F32 = 21 + DS_GWS_SEMA_RELEASE_ALL = 24 + DS_GWS_INIT = 25 + DS_GWS_SEMA_V = 26 + DS_GWS_SEMA_BR = 27 + DS_GWS_SEMA_P = 28 + DS_GWS_BARRIER = 29 + DS_STORE_B8 = 30 + DS_STORE_B16 = 31 + DS_ADD_RTN_U32 = 32 + DS_SUB_RTN_U32 = 33 + DS_RSUB_RTN_U32 = 34 + DS_INC_RTN_U32 = 35 + DS_DEC_RTN_U32 = 36 + DS_MIN_RTN_I32 = 37 + DS_MAX_RTN_I32 = 38 + DS_MIN_RTN_U32 = 39 + DS_MAX_RTN_U32 = 40 + DS_AND_RTN_B32 = 41 + DS_OR_RTN_B32 = 42 + DS_XOR_RTN_B32 = 43 + DS_MSKOR_RTN_B32 = 44 + DS_STOREXCHG_RTN_B32 = 45 + DS_STOREXCHG_2ADDR_RTN_B32 = 46 + DS_STOREXCHG_2ADDR_STRIDE64_RTN_B32 = 47 + DS_CMPSTORE_RTN_B32 = 48 + DS_CMPSTORE_RTN_F32 = 49 + DS_MIN_RTN_F32 = 50 + DS_MAX_RTN_F32 = 51 + DS_WRAP_RTN_B32 = 52 + DS_SWIZZLE_B32 = 53 + DS_LOAD_B32 = 54 + DS_LOAD_2ADDR_B32 = 55 + DS_LOAD_2ADDR_STRIDE64_B32 = 56 + DS_LOAD_I8 = 57 + DS_LOAD_U8 = 58 + DS_LOAD_I16 = 59 + DS_LOAD_U16 = 60 + DS_CONSUME = 61 + DS_APPEND = 62 + DS_ORDERED_COUNT = 63 + DS_ADD_U64 = 64 + DS_SUB_U64 = 65 + DS_RSUB_U64 = 66 + DS_INC_U64 = 67 + DS_DEC_U64 = 68 + DS_MIN_I64 = 69 + DS_MAX_I64 = 70 + DS_MIN_U64 = 71 + DS_MAX_U64 = 72 + DS_AND_B64 = 73 + DS_OR_B64 = 74 + DS_XOR_B64 = 75 + DS_MSKOR_B64 = 76 + DS_STORE_B64 = 77 + DS_STORE_2ADDR_B64 = 78 + DS_STORE_2ADDR_STRIDE64_B64 = 79 + DS_CMPSTORE_B64 = 80 + DS_CMPSTORE_F64 = 81 + DS_MIN_F64 = 82 + DS_MAX_F64 = 83 + DS_ADD_RTN_U64 = 96 + DS_SUB_RTN_U64 = 97 + DS_RSUB_RTN_U64 = 98 + DS_INC_RTN_U64 = 99 + DS_DEC_RTN_U64 = 100 + DS_MIN_RTN_I64 = 101 + DS_MAX_RTN_I64 = 102 + DS_MIN_RTN_U64 = 103 + DS_MAX_RTN_U64 = 104 + DS_AND_RTN_B64 = 105 + DS_OR_RTN_B64 = 106 + DS_XOR_RTN_B64 = 107 + DS_MSKOR_RTN_B64 = 108 + DS_STOREXCHG_RTN_B64 = 109 + DS_STOREXCHG_2ADDR_RTN_B64 = 110 + DS_STOREXCHG_2ADDR_STRIDE64_RTN_B64 = 111 + DS_CMPSTORE_RTN_B64 = 112 + DS_CMPSTORE_RTN_F64 = 113 + DS_MIN_RTN_F64 = 114 + DS_MAX_RTN_F64 = 115 + DS_LOAD_B64 = 118 + DS_LOAD_2ADDR_B64 = 119 + DS_LOAD_2ADDR_STRIDE64_B64 = 120 + DS_ADD_RTN_F32 = 121 + DS_ADD_GS_REG_RTN = 122 + DS_SUB_GS_REG_RTN = 123 + DS_CONDXCHG32_RTN_B64 = 126 + DS_STORE_B8_D16_HI = 160 + DS_STORE_B16_D16_HI = 161 + DS_LOAD_U8_D16 = 162 + DS_LOAD_U8_D16_HI = 163 + DS_LOAD_I8_D16 = 164 + DS_LOAD_I8_D16_HI = 165 + DS_LOAD_U16_D16 = 166 + DS_LOAD_U16_D16_HI = 167 + DS_BVH_STACK_RTN_B32 = 173 + DS_STORE_ADDTID_B32 = 176 + DS_LOAD_ADDTID_B32 = 177 + DS_PERMUTE_B32 = 178 + DS_BPERMUTE_B32 = 179 + DS_STORE_B96 = 222 + DS_STORE_B128 = 223 + DS_LOAD_B96 = 254 + DS_LOAD_B128 = 255 + +class FLATOp(IntEnum): + FLAT_LOAD_U8 = 16 + FLAT_LOAD_I8 = 17 + FLAT_LOAD_U16 = 18 + FLAT_LOAD_I16 = 19 + FLAT_LOAD_B32 = 20 + FLAT_LOAD_B64 = 21 + FLAT_LOAD_B96 = 22 + FLAT_LOAD_B128 = 23 + FLAT_STORE_B8 = 24 + FLAT_STORE_B16 = 25 + FLAT_STORE_B32 = 26 + FLAT_STORE_B64 = 27 + FLAT_STORE_B96 = 28 + FLAT_STORE_B128 = 29 + FLAT_LOAD_D16_U8 = 30 + FLAT_LOAD_D16_I8 = 31 + FLAT_LOAD_D16_B16 = 32 + FLAT_LOAD_D16_HI_U8 = 33 + FLAT_LOAD_D16_HI_I8 = 34 + FLAT_LOAD_D16_HI_B16 = 35 + FLAT_STORE_D16_HI_B8 = 36 + FLAT_STORE_D16_HI_B16 = 37 + GLOBAL_LOAD_ADDTID_B32 = 40 + GLOBAL_STORE_ADDTID_B32 = 41 + FLAT_ATOMIC_SWAP_B32 = 51 + FLAT_ATOMIC_CMPSWAP_B32 = 52 + FLAT_ATOMIC_ADD_U32 = 53 + FLAT_ATOMIC_SUB_U32 = 54 + FLAT_ATOMIC_CSUB_U32 = 55 + FLAT_ATOMIC_MIN_I32 = 56 + FLAT_ATOMIC_MIN_U32 = 57 + FLAT_ATOMIC_MAX_I32 = 58 + FLAT_ATOMIC_MAX_U32 = 59 + FLAT_ATOMIC_AND_B32 = 60 + FLAT_ATOMIC_OR_B32 = 61 + FLAT_ATOMIC_XOR_B32 = 62 + FLAT_ATOMIC_INC_U32 = 63 + FLAT_ATOMIC_DEC_U32 = 64 + FLAT_ATOMIC_SWAP_B64 = 65 + FLAT_ATOMIC_CMPSWAP_B64 = 66 + FLAT_ATOMIC_ADD_U64 = 67 + FLAT_ATOMIC_SUB_U64 = 68 + FLAT_ATOMIC_MIN_I64 = 69 + FLAT_ATOMIC_MIN_U64 = 70 + FLAT_ATOMIC_MAX_I64 = 71 + FLAT_ATOMIC_MAX_U64 = 72 + FLAT_ATOMIC_AND_B64 = 73 + FLAT_ATOMIC_OR_B64 = 74 + FLAT_ATOMIC_XOR_B64 = 75 + FLAT_ATOMIC_INC_U64 = 76 + FLAT_ATOMIC_DEC_U64 = 77 + FLAT_ATOMIC_CMPSWAP_F32 = 80 + FLAT_ATOMIC_MIN_F32 = 81 + FLAT_ATOMIC_MAX_F32 = 82 + FLAT_ATOMIC_ADD_F32 = 86 + +class GLOBALOp(IntEnum): + GLOBAL_LOAD_U8 = 16 + GLOBAL_LOAD_I8 = 17 + GLOBAL_LOAD_U16 = 18 + GLOBAL_LOAD_I16 = 19 + GLOBAL_LOAD_B32 = 20 + GLOBAL_LOAD_B64 = 21 + GLOBAL_LOAD_B96 = 22 + GLOBAL_LOAD_B128 = 23 + GLOBAL_STORE_B8 = 24 + GLOBAL_STORE_B16 = 25 + GLOBAL_STORE_B32 = 26 + GLOBAL_STORE_B64 = 27 + GLOBAL_STORE_B96 = 28 + GLOBAL_STORE_B128 = 29 + GLOBAL_LOAD_D16_U8 = 30 + GLOBAL_LOAD_D16_I8 = 31 + GLOBAL_LOAD_D16_B16 = 32 + GLOBAL_LOAD_D16_HI_U8 = 33 + GLOBAL_LOAD_D16_HI_I8 = 34 + GLOBAL_LOAD_D16_HI_B16 = 35 + GLOBAL_STORE_D16_HI_B8 = 36 + GLOBAL_STORE_D16_HI_B16 = 37 + GLOBAL_LOAD_ADDTID_B32 = 40 + GLOBAL_STORE_ADDTID_B32 = 41 + GLOBAL_ATOMIC_SWAP_B32 = 51 + GLOBAL_ATOMIC_CMPSWAP_B32 = 52 + GLOBAL_ATOMIC_ADD_U32 = 53 + GLOBAL_ATOMIC_SUB_U32 = 54 + GLOBAL_ATOMIC_CSUB_U32 = 55 + GLOBAL_ATOMIC_MIN_I32 = 56 + GLOBAL_ATOMIC_MIN_U32 = 57 + GLOBAL_ATOMIC_MAX_I32 = 58 + GLOBAL_ATOMIC_MAX_U32 = 59 + GLOBAL_ATOMIC_AND_B32 = 60 + GLOBAL_ATOMIC_OR_B32 = 61 + GLOBAL_ATOMIC_XOR_B32 = 62 + GLOBAL_ATOMIC_INC_U32 = 63 + GLOBAL_ATOMIC_DEC_U32 = 64 + GLOBAL_ATOMIC_SWAP_B64 = 65 + GLOBAL_ATOMIC_CMPSWAP_B64 = 66 + GLOBAL_ATOMIC_ADD_U64 = 67 + GLOBAL_ATOMIC_SUB_U64 = 68 + GLOBAL_ATOMIC_MIN_I64 = 69 + GLOBAL_ATOMIC_MIN_U64 = 70 + GLOBAL_ATOMIC_MAX_I64 = 71 + GLOBAL_ATOMIC_MAX_U64 = 72 + GLOBAL_ATOMIC_AND_B64 = 73 + GLOBAL_ATOMIC_OR_B64 = 74 + GLOBAL_ATOMIC_XOR_B64 = 75 + GLOBAL_ATOMIC_INC_U64 = 76 + GLOBAL_ATOMIC_DEC_U64 = 77 + GLOBAL_ATOMIC_CMPSWAP_F32 = 80 + GLOBAL_ATOMIC_MIN_F32 = 81 + GLOBAL_ATOMIC_MAX_F32 = 82 + GLOBAL_ATOMIC_ADD_F32 = 86 + +class MIMGOp(IntEnum): + IMAGE_LOAD = 0 + IMAGE_LOAD_MIP = 1 + IMAGE_LOAD_PCK = 2 + IMAGE_LOAD_PCK_SGN = 3 + IMAGE_LOAD_MIP_PCK = 4 + IMAGE_LOAD_MIP_PCK_SGN = 5 + IMAGE_STORE = 6 + IMAGE_STORE_MIP = 7 + IMAGE_STORE_PCK = 8 + IMAGE_STORE_MIP_PCK = 9 + IMAGE_ATOMIC_SWAP = 10 + IMAGE_ATOMIC_CMPSWAP = 11 + IMAGE_ATOMIC_ADD = 12 + IMAGE_ATOMIC_SUB = 13 + IMAGE_ATOMIC_SMIN = 14 + IMAGE_ATOMIC_UMIN = 15 + IMAGE_ATOMIC_SMAX = 16 + IMAGE_ATOMIC_UMAX = 17 + IMAGE_ATOMIC_AND = 18 + IMAGE_ATOMIC_OR = 19 + IMAGE_ATOMIC_XOR = 20 + IMAGE_ATOMIC_INC = 21 + IMAGE_ATOMIC_DEC = 22 + IMAGE_GET_RESINFO = 23 + IMAGE_MSAA_LOAD = 24 + IMAGE_BVH_INTERSECT_RAY = 25 + IMAGE_BVH64_INTERSECT_RAY = 26 + IMAGE_SAMPLE = 27 + IMAGE_SAMPLE_D = 28 + IMAGE_SAMPLE_L = 29 + IMAGE_SAMPLE_B = 30 + IMAGE_SAMPLE_LZ = 31 + IMAGE_SAMPLE_C = 32 + IMAGE_SAMPLE_C_D = 33 + IMAGE_SAMPLE_C_L = 34 + IMAGE_SAMPLE_C_B = 35 + IMAGE_SAMPLE_C_LZ = 36 + IMAGE_SAMPLE_O = 37 + IMAGE_SAMPLE_D_O = 38 + IMAGE_SAMPLE_L_O = 39 + IMAGE_SAMPLE_B_O = 40 + IMAGE_SAMPLE_LZ_O = 41 + IMAGE_SAMPLE_C_O = 42 + IMAGE_SAMPLE_C_D_O = 43 + IMAGE_SAMPLE_C_L_O = 44 + IMAGE_SAMPLE_C_B_O = 45 + IMAGE_SAMPLE_C_LZ_O = 46 + IMAGE_GATHER4 = 47 + IMAGE_GATHER4_L = 48 + IMAGE_GATHER4_B = 49 + IMAGE_GATHER4_LZ = 50 + IMAGE_GATHER4_C = 51 + IMAGE_GATHER4_C_LZ = 52 + IMAGE_GATHER4_O = 53 + IMAGE_GATHER4_LZ_O = 54 + IMAGE_GATHER4_C_LZ_O = 55 + IMAGE_GET_LOD = 56 + IMAGE_SAMPLE_D_G16 = 57 + IMAGE_SAMPLE_C_D_G16 = 58 + IMAGE_SAMPLE_D_O_G16 = 59 + IMAGE_SAMPLE_C_D_O_G16 = 60 + IMAGE_SAMPLE_CL = 64 + IMAGE_SAMPLE_D_CL = 65 + IMAGE_SAMPLE_B_CL = 66 + IMAGE_SAMPLE_C_CL = 67 + IMAGE_SAMPLE_C_D_CL = 68 + IMAGE_SAMPLE_C_B_CL = 69 + IMAGE_SAMPLE_CL_O = 70 + IMAGE_SAMPLE_D_CL_O = 71 + IMAGE_SAMPLE_B_CL_O = 72 + IMAGE_SAMPLE_C_CL_O = 73 + IMAGE_SAMPLE_C_D_CL_O = 74 + IMAGE_SAMPLE_C_B_CL_O = 75 + IMAGE_SAMPLE_C_D_CL_G16 = 84 + IMAGE_SAMPLE_D_CL_O_G16 = 85 + IMAGE_SAMPLE_C_D_CL_O_G16 = 86 + IMAGE_SAMPLE_D_CL_G16 = 95 + IMAGE_GATHER4_CL = 96 + IMAGE_GATHER4_B_CL = 97 + IMAGE_GATHER4_C_CL = 98 + IMAGE_GATHER4_C_L = 99 + IMAGE_GATHER4_C_B = 100 + IMAGE_GATHER4_C_B_CL = 101 + IMAGE_GATHER4H = 144 + +class MTBUFOp(IntEnum): + TBUFFER_LOAD_FORMAT_X = 0 + TBUFFER_LOAD_FORMAT_XY = 1 + TBUFFER_LOAD_FORMAT_XYZ = 2 + TBUFFER_LOAD_FORMAT_XYZW = 3 + TBUFFER_STORE_FORMAT_X = 4 + TBUFFER_STORE_FORMAT_XY = 5 + TBUFFER_STORE_FORMAT_XYZ = 6 + TBUFFER_STORE_FORMAT_XYZW = 7 + TBUFFER_LOAD_D16_FORMAT_X = 8 + TBUFFER_LOAD_D16_FORMAT_XY = 9 + TBUFFER_LOAD_D16_FORMAT_XYZ = 10 + TBUFFER_LOAD_D16_FORMAT_XYZW = 11 + TBUFFER_STORE_D16_FORMAT_X = 12 + TBUFFER_STORE_D16_FORMAT_XY = 13 + TBUFFER_STORE_D16_FORMAT_XYZ = 14 + TBUFFER_STORE_D16_FORMAT_XYZW = 15 + +class MUBUFOp(IntEnum): + BUFFER_LOAD_FORMAT_X = 0 + BUFFER_LOAD_FORMAT_XY = 1 + BUFFER_LOAD_FORMAT_XYZ = 2 + BUFFER_LOAD_FORMAT_XYZW = 3 + BUFFER_STORE_FORMAT_X = 4 + BUFFER_STORE_FORMAT_XY = 5 + BUFFER_STORE_FORMAT_XYZ = 6 + BUFFER_STORE_FORMAT_XYZW = 7 + BUFFER_LOAD_D16_FORMAT_X = 8 + BUFFER_LOAD_D16_FORMAT_XY = 9 + BUFFER_LOAD_D16_FORMAT_XYZ = 10 + BUFFER_LOAD_D16_FORMAT_XYZW = 11 + BUFFER_STORE_D16_FORMAT_X = 12 + BUFFER_STORE_D16_FORMAT_XY = 13 + BUFFER_STORE_D16_FORMAT_XYZ = 14 + BUFFER_STORE_D16_FORMAT_XYZW = 15 + BUFFER_LOAD_U8 = 16 + BUFFER_LOAD_I8 = 17 + BUFFER_LOAD_U16 = 18 + BUFFER_LOAD_I16 = 19 + BUFFER_LOAD_B32 = 20 + BUFFER_LOAD_B64 = 21 + BUFFER_LOAD_B96 = 22 + BUFFER_LOAD_B128 = 23 + BUFFER_STORE_B8 = 24 + BUFFER_STORE_B16 = 25 + BUFFER_STORE_B32 = 26 + BUFFER_STORE_B64 = 27 + BUFFER_STORE_B96 = 28 + BUFFER_STORE_B128 = 29 + BUFFER_LOAD_D16_U8 = 30 + BUFFER_LOAD_D16_I8 = 31 + BUFFER_LOAD_D16_B16 = 32 + BUFFER_LOAD_D16_HI_U8 = 33 + BUFFER_LOAD_D16_HI_I8 = 34 + BUFFER_LOAD_D16_HI_B16 = 35 + BUFFER_STORE_D16_HI_B8 = 36 + BUFFER_STORE_D16_HI_B16 = 37 + BUFFER_LOAD_D16_HI_FORMAT_X = 38 + BUFFER_STORE_D16_HI_FORMAT_X = 39 + BUFFER_GL0_INV = 43 + BUFFER_GL1_INV = 44 + BUFFER_ATOMIC_SWAP_B32 = 51 + BUFFER_ATOMIC_CMPSWAP_B32 = 52 + BUFFER_ATOMIC_ADD_U32 = 53 + BUFFER_ATOMIC_SUB_U32 = 54 + BUFFER_ATOMIC_CSUB_U32 = 55 + BUFFER_ATOMIC_MIN_I32 = 56 + BUFFER_ATOMIC_MIN_U32 = 57 + BUFFER_ATOMIC_MAX_I32 = 58 + BUFFER_ATOMIC_MAX_U32 = 59 + BUFFER_ATOMIC_AND_B32 = 60 + BUFFER_ATOMIC_OR_B32 = 61 + BUFFER_ATOMIC_XOR_B32 = 62 + BUFFER_ATOMIC_INC_U32 = 63 + BUFFER_ATOMIC_DEC_U32 = 64 + BUFFER_ATOMIC_SWAP_B64 = 65 + BUFFER_ATOMIC_CMPSWAP_B64 = 66 + BUFFER_ATOMIC_ADD_U64 = 67 + BUFFER_ATOMIC_SUB_U64 = 68 + BUFFER_ATOMIC_MIN_I64 = 69 + BUFFER_ATOMIC_MIN_U64 = 70 + BUFFER_ATOMIC_MAX_I64 = 71 + BUFFER_ATOMIC_MAX_U64 = 72 + BUFFER_ATOMIC_AND_B64 = 73 + BUFFER_ATOMIC_OR_B64 = 74 + BUFFER_ATOMIC_XOR_B64 = 75 + BUFFER_ATOMIC_INC_U64 = 76 + BUFFER_ATOMIC_DEC_U64 = 77 + BUFFER_ATOMIC_CMPSWAP_F32 = 80 + BUFFER_ATOMIC_MIN_F32 = 81 + BUFFER_ATOMIC_MAX_F32 = 82 + BUFFER_ATOMIC_ADD_F32 = 86 + +class SCRATCHOp(IntEnum): + SCRATCH_LOAD_U8 = 16 + SCRATCH_LOAD_I8 = 17 + SCRATCH_LOAD_U16 = 18 + SCRATCH_LOAD_I16 = 19 + SCRATCH_LOAD_B32 = 20 + SCRATCH_LOAD_B64 = 21 + SCRATCH_LOAD_B96 = 22 + SCRATCH_LOAD_B128 = 23 + SCRATCH_STORE_B8 = 24 + SCRATCH_STORE_B16 = 25 + SCRATCH_STORE_B32 = 26 + SCRATCH_STORE_B64 = 27 + SCRATCH_STORE_B96 = 28 + SCRATCH_STORE_B128 = 29 + SCRATCH_LOAD_D16_U8 = 30 + SCRATCH_LOAD_D16_I8 = 31 + SCRATCH_LOAD_D16_B16 = 32 + SCRATCH_LOAD_D16_HI_U8 = 33 + SCRATCH_LOAD_D16_HI_I8 = 34 + SCRATCH_LOAD_D16_HI_B16 = 35 + SCRATCH_STORE_D16_HI_B8 = 36 + SCRATCH_STORE_D16_HI_B16 = 37 + +class SMEMOp(IntEnum): + S_LOAD_B32 = 0 + S_LOAD_B64 = 1 + S_LOAD_B128 = 2 + S_LOAD_B256 = 3 + S_LOAD_B512 = 4 + S_BUFFER_LOAD_B32 = 8 + S_BUFFER_LOAD_B64 = 9 + S_BUFFER_LOAD_B128 = 10 + S_BUFFER_LOAD_B256 = 11 + S_BUFFER_LOAD_B512 = 12 + S_GL1_INV = 32 + S_DCACHE_INV = 33 + +class SOP1Op(IntEnum): + S_MOV_B32 = 0 + S_MOV_B64 = 1 + S_CMOV_B32 = 2 + S_CMOV_B64 = 3 + S_BREV_B32 = 4 + S_BREV_B64 = 5 + S_CTZ_I32_B32 = 8 + S_CTZ_I32_B64 = 9 + S_CLZ_I32_U32 = 10 + S_CLZ_I32_U64 = 11 + S_CLS_I32 = 12 + S_CLS_I32_I64 = 13 + S_SEXT_I32_I8 = 14 + S_SEXT_I32_I16 = 15 + S_BITSET0_B32 = 16 + S_BITSET0_B64 = 17 + S_BITSET1_B32 = 18 + S_BITSET1_B64 = 19 + S_BITREPLICATE_B64_B32 = 20 + S_ABS_I32 = 21 + S_BCNT0_I32_B32 = 22 + S_BCNT0_I32_B64 = 23 + S_BCNT1_I32_B32 = 24 + S_BCNT1_I32_B64 = 25 + S_QUADMASK_B32 = 26 + S_QUADMASK_B64 = 27 + S_WQM_B32 = 28 + S_WQM_B64 = 29 + S_NOT_B32 = 30 + S_NOT_B64 = 31 + S_AND_SAVEEXEC_B32 = 32 + S_AND_SAVEEXEC_B64 = 33 + S_OR_SAVEEXEC_B32 = 34 + S_OR_SAVEEXEC_B64 = 35 + S_XOR_SAVEEXEC_B32 = 36 + S_XOR_SAVEEXEC_B64 = 37 + S_NAND_SAVEEXEC_B32 = 38 + S_NAND_SAVEEXEC_B64 = 39 + S_NOR_SAVEEXEC_B32 = 40 + S_NOR_SAVEEXEC_B64 = 41 + S_XNOR_SAVEEXEC_B32 = 42 + S_XNOR_SAVEEXEC_B64 = 43 + S_AND_NOT0_SAVEEXEC_B32 = 44 + S_AND_NOT0_SAVEEXEC_B64 = 45 + S_OR_NOT0_SAVEEXEC_B32 = 46 + S_OR_NOT0_SAVEEXEC_B64 = 47 + S_AND_NOT1_SAVEEXEC_B32 = 48 + S_AND_NOT1_SAVEEXEC_B64 = 49 + S_OR_NOT1_SAVEEXEC_B32 = 50 + S_OR_NOT1_SAVEEXEC_B64 = 51 + S_AND_NOT0_WREXEC_B32 = 52 + S_AND_NOT0_WREXEC_B64 = 53 + S_AND_NOT1_WREXEC_B32 = 54 + S_AND_NOT1_WREXEC_B64 = 55 + S_MOVRELS_B32 = 64 + S_MOVRELS_B64 = 65 + S_MOVRELD_B32 = 66 + S_MOVRELD_B64 = 67 + S_MOVRELSD_2_B32 = 68 + S_GETPC_B64 = 71 + S_SETPC_B64 = 72 + S_SWAPPC_B64 = 73 + S_RFE_B64 = 74 + S_SENDMSG_RTN_B32 = 76 + S_SENDMSG_RTN_B64 = 77 + S_CEIL_F32 = 96 + S_FLOOR_F32 = 97 + S_TRUNC_F32 = 98 + S_RNDNE_F32 = 99 + S_CVT_F32_I32 = 100 + S_CVT_F32_U32 = 101 + S_CVT_I32_F32 = 102 + S_CVT_U32_F32 = 103 + S_CVT_F16_F32 = 104 + S_CVT_F32_F16 = 105 + S_CVT_HI_F32_F16 = 106 + S_CEIL_F16 = 107 + S_FLOOR_F16 = 108 + S_TRUNC_F16 = 109 + S_RNDNE_F16 = 110 + +class SOP2Op(IntEnum): + S_ADD_U32 = 0 + S_SUB_U32 = 1 + S_ADD_I32 = 2 + S_SUB_I32 = 3 + S_ADDC_U32 = 4 + S_SUBB_U32 = 5 + S_ABSDIFF_I32 = 6 + S_LSHL_B32 = 8 + S_LSHL_B64 = 9 + S_LSHR_B32 = 10 + S_LSHR_B64 = 11 + S_ASHR_I32 = 12 + S_ASHR_I64 = 13 + S_LSHL1_ADD_U32 = 14 + S_LSHL2_ADD_U32 = 15 + S_LSHL3_ADD_U32 = 16 + S_LSHL4_ADD_U32 = 17 + S_MIN_I32 = 18 + S_MIN_U32 = 19 + S_MAX_I32 = 20 + S_MAX_U32 = 21 + S_AND_B32 = 22 + S_AND_B64 = 23 + S_OR_B32 = 24 + S_OR_B64 = 25 + S_XOR_B32 = 26 + S_XOR_B64 = 27 + S_NAND_B32 = 28 + S_NAND_B64 = 29 + S_NOR_B32 = 30 + S_NOR_B64 = 31 + S_XNOR_B32 = 32 + S_XNOR_B64 = 33 + S_AND_NOT1_B32 = 34 + S_AND_NOT1_B64 = 35 + S_OR_NOT1_B32 = 36 + S_OR_NOT1_B64 = 37 + S_BFE_U32 = 38 + S_BFE_I32 = 39 + S_BFE_U64 = 40 + S_BFE_I64 = 41 + S_BFM_B32 = 42 + S_BFM_B64 = 43 + S_MUL_I32 = 44 + S_MUL_HI_U32 = 45 + S_MUL_HI_I32 = 46 + S_CSELECT_B32 = 48 + S_CSELECT_B64 = 49 + S_PACK_LL_B32_B16 = 50 + S_PACK_LH_B32_B16 = 51 + S_PACK_HH_B32_B16 = 52 + S_PACK_HL_B32_B16 = 53 + S_ADD_F32 = 64 + S_SUB_F32 = 65 + S_MIN_F32 = 66 + S_MAX_F32 = 67 + S_MUL_F32 = 68 + S_FMAAK_F32 = 69 + S_FMAMK_F32 = 70 + S_FMAC_F32 = 71 + S_CVT_PK_RTZ_F16_F32 = 72 + S_ADD_F16 = 73 + S_SUB_F16 = 74 + S_MIN_F16 = 75 + S_MAX_F16 = 76 + S_MUL_F16 = 77 + S_FMAC_F16 = 78 + +class SOPCOp(IntEnum): + S_CMP_EQ_I32 = 0 + S_CMP_LG_I32 = 1 + S_CMP_GT_I32 = 2 + S_CMP_GE_I32 = 3 + S_CMP_LT_I32 = 4 + S_CMP_LE_I32 = 5 + S_CMP_EQ_U32 = 6 + S_CMP_LG_U32 = 7 + S_CMP_GT_U32 = 8 + S_CMP_GE_U32 = 9 + S_CMP_LT_U32 = 10 + S_CMP_LE_U32 = 11 + S_BITCMP0_B32 = 12 + S_BITCMP1_B32 = 13 + S_BITCMP0_B64 = 14 + S_BITCMP1_B64 = 15 + S_CMP_EQ_U64 = 16 + S_CMP_LG_U64 = 17 + S_CMP_LT_F32 = 65 + S_CMP_EQ_F32 = 66 + S_CMP_LE_F32 = 67 + S_CMP_GT_F32 = 68 + S_CMP_LG_F32 = 69 + S_CMP_GE_F32 = 70 + S_CMP_O_F32 = 71 + S_CMP_U_F32 = 72 + S_CMP_NGE_F32 = 73 + S_CMP_NLG_F32 = 74 + S_CMP_NGT_F32 = 75 + S_CMP_NLE_F32 = 76 + S_CMP_NEQ_F32 = 77 + S_CMP_NLT_F32 = 78 + S_CMP_LT_F16 = 81 + S_CMP_EQ_F16 = 82 + S_CMP_LE_F16 = 83 + S_CMP_GT_F16 = 84 + S_CMP_LG_F16 = 85 + S_CMP_GE_F16 = 86 + S_CMP_O_F16 = 87 + S_CMP_U_F16 = 88 + S_CMP_NGE_F16 = 89 + S_CMP_NLG_F16 = 90 + S_CMP_NGT_F16 = 91 + S_CMP_NLE_F16 = 92 + S_CMP_NEQ_F16 = 93 + S_CMP_NLT_F16 = 94 + +class SOPKOp(IntEnum): + S_MOVK_I32 = 0 + S_VERSION = 1 + S_CMOVK_I32 = 2 + S_CMPK_EQ_I32 = 3 + S_CMPK_LG_I32 = 4 + S_CMPK_GT_I32 = 5 + S_CMPK_GE_I32 = 6 + S_CMPK_LT_I32 = 7 + S_CMPK_LE_I32 = 8 + S_CMPK_EQ_U32 = 9 + S_CMPK_LG_U32 = 10 + S_CMPK_GT_U32 = 11 + S_CMPK_GE_U32 = 12 + S_CMPK_LT_U32 = 13 + S_CMPK_LE_U32 = 14 + S_ADDK_I32 = 15 + S_MULK_I32 = 16 + S_GETREG_B32 = 17 + S_SETREG_B32 = 18 + S_SETREG_IMM32_B32 = 19 + S_CALL_B64 = 20 + S_WAITCNT_VSCNT = 24 + S_WAITCNT_VMCNT = 25 + S_WAITCNT_EXPCNT = 26 + S_WAITCNT_LGKMCNT = 27 + +class SOPPOp(IntEnum): + S_NOP = 0 + S_SETKILL = 1 + S_SETHALT = 2 + S_SLEEP = 3 + S_SET_INST_PREFETCH_DISTANCE = 4 + S_CLAUSE = 5 + S_DELAY_ALU = 7 + S_WAITCNT_DEPCTR = 8 + S_WAITCNT = 9 + S_WAIT_IDLE = 10 + S_WAIT_EVENT = 11 + S_TRAP = 16 + S_ROUND_MODE = 17 + S_DENORM_MODE = 18 + S_CODE_END = 31 + S_BRANCH = 32 + S_CBRANCH_SCC0 = 33 + S_CBRANCH_SCC1 = 34 + S_CBRANCH_VCCZ = 35 + S_CBRANCH_VCCNZ = 36 + S_CBRANCH_EXECZ = 37 + S_CBRANCH_EXECNZ = 38 + S_CBRANCH_CDBGSYS = 39 + S_CBRANCH_CDBGUSER = 40 + S_CBRANCH_CDBGSYS_OR_USER = 41 + S_CBRANCH_CDBGSYS_AND_USER = 42 + S_ENDPGM = 48 + S_ENDPGM_SAVED = 49 + S_ENDPGM_ORDERED_PS_DONE = 50 + S_WAKEUP = 52 + S_SETPRIO = 53 + S_SENDMSG = 54 + S_SENDMSGHALT = 55 + S_INCPERFLEVEL = 56 + S_DECPERFLEVEL = 57 + S_ICACHE_INV = 60 + S_BARRIER = 61 + +class VINTERPOp(IntEnum): + V_INTERP_P10_F32 = 0 + V_INTERP_P2_F32 = 1 + V_INTERP_P10_F16_F32 = 2 + V_INTERP_P2_F16_F32 = 3 + V_INTERP_P10_RTZ_F16_F32 = 4 + V_INTERP_P2_RTZ_F16_F32 = 5 + +class VOP1Op(IntEnum): + V_NOP = 0 + V_MOV_B32 = 1 + V_READFIRSTLANE_B32 = 2 + V_CVT_I32_F64 = 3 + V_CVT_F64_I32 = 4 + V_CVT_F32_I32 = 5 + V_CVT_F32_U32 = 6 + V_CVT_U32_F32 = 7 + V_CVT_I32_F32 = 8 + V_CVT_F16_F32 = 10 + V_CVT_F32_F16 = 11 + V_CVT_NEAREST_I32_F32 = 12 + V_CVT_FLOOR_I32_F32 = 13 + V_CVT_OFF_F32_I4 = 14 + V_CVT_F32_F64 = 15 + V_CVT_F64_F32 = 16 + V_CVT_F32_UBYTE0 = 17 + V_CVT_F32_UBYTE1 = 18 + V_CVT_F32_UBYTE2 = 19 + V_CVT_F32_UBYTE3 = 20 + V_CVT_U32_F64 = 21 + V_CVT_F64_U32 = 22 + V_TRUNC_F64 = 23 + V_CEIL_F64 = 24 + V_RNDNE_F64 = 25 + V_FLOOR_F64 = 26 + V_PIPEFLUSH = 27 + V_MOV_B16 = 28 + V_FRACT_F32 = 32 + V_TRUNC_F32 = 33 + V_CEIL_F32 = 34 + V_RNDNE_F32 = 35 + V_FLOOR_F32 = 36 + V_EXP_F32 = 37 + V_LOG_F32 = 39 + V_RCP_F32 = 42 + V_RCP_IFLAG_F32 = 43 + V_RSQ_F32 = 46 + V_RCP_F64 = 47 + V_RSQ_F64 = 49 + V_SQRT_F32 = 51 + V_SQRT_F64 = 52 + V_SIN_F32 = 53 + V_COS_F32 = 54 + V_NOT_B32 = 55 + V_BFREV_B32 = 56 + V_CLZ_I32_U32 = 57 + V_CTZ_I32_B32 = 58 + V_CLS_I32 = 59 + V_FREXP_EXP_I32_F64 = 60 + V_FREXP_MANT_F64 = 61 + V_FRACT_F64 = 62 + V_FREXP_EXP_I32_F32 = 63 + V_FREXP_MANT_F32 = 64 + V_MOVRELD_B32 = 66 + V_MOVRELS_B32 = 67 + V_MOVRELSD_B32 = 68 + V_MOVRELSD_2_B32 = 72 + V_CVT_F16_U16 = 80 + V_CVT_F16_I16 = 81 + V_CVT_U16_F16 = 82 + V_CVT_I16_F16 = 83 + V_RCP_F16 = 84 + V_SQRT_F16 = 85 + V_RSQ_F16 = 86 + V_LOG_F16 = 87 + V_EXP_F16 = 88 + V_FREXP_MANT_F16 = 89 + V_FREXP_EXP_I16_F16 = 90 + V_FLOOR_F16 = 91 + V_CEIL_F16 = 92 + V_TRUNC_F16 = 93 + V_RNDNE_F16 = 94 + V_FRACT_F16 = 95 + V_SIN_F16 = 96 + V_COS_F16 = 97 + V_SAT_PK_U8_I16 = 98 + V_CVT_NORM_I16_F16 = 99 + V_CVT_NORM_U16_F16 = 100 + V_SWAP_B32 = 101 + V_SWAP_B16 = 102 + V_PERMLANE64_B32 = 103 + V_SWAPREL_B32 = 104 + V_NOT_B16 = 105 + V_CVT_I32_I16 = 106 + V_CVT_U32_U16 = 107 + +class VOP2Op(IntEnum): + V_CNDMASK_B32 = 1 + V_DOT2ACC_F32_F16 = 2 + V_ADD_F32 = 3 + V_SUB_F32 = 4 + V_SUBREV_F32 = 5 + V_FMAC_DX9_ZERO_F32 = 6 + V_MUL_DX9_ZERO_F32 = 7 + V_MUL_F32 = 8 + V_MUL_I32_I24 = 9 + V_MUL_HI_I32_I24 = 10 + V_MUL_U32_U24 = 11 + V_MUL_HI_U32_U24 = 12 + V_MIN_F32 = 15 + V_MAX_F32 = 16 + V_MIN_I32 = 17 + V_MAX_I32 = 18 + V_MIN_U32 = 19 + V_MAX_U32 = 20 + V_LSHLREV_B32 = 24 + V_LSHRREV_B32 = 25 + V_ASHRREV_I32 = 26 + V_AND_B32 = 27 + V_OR_B32 = 28 + V_XOR_B32 = 29 + V_XNOR_B32 = 30 + V_ADD_CO_CI_U32 = 32 + V_SUB_CO_CI_U32 = 33 + V_SUBREV_CO_CI_U32 = 34 + V_ADD_NC_U32 = 37 + V_SUB_NC_U32 = 38 + V_SUBREV_NC_U32 = 39 + V_FMAC_F32 = 43 + V_FMAMK_F32 = 44 + V_FMAAK_F32 = 45 + V_CVT_PK_RTZ_F16_F32 = 47 + V_ADD_F16 = 50 + V_SUB_F16 = 51 + V_SUBREV_F16 = 52 + V_MUL_F16 = 53 + V_FMAC_F16 = 54 + V_FMAMK_F16 = 55 + V_FMAAK_F16 = 56 + V_MAX_F16 = 57 + V_MIN_F16 = 58 + V_LDEXP_F16 = 59 + V_PK_FMAC_F16 = 60 + +class VOP3Op(IntEnum): + V_CMP_F_F16 = 0 + V_CMP_LT_F16 = 1 + V_CMP_EQ_F16 = 2 + V_CMP_LE_F16 = 3 + V_CMP_GT_F16 = 4 + V_CMP_LG_F16 = 5 + V_CMP_GE_F16 = 6 + V_CMP_O_F16 = 7 + V_CMP_U_F16 = 8 + V_CMP_NGE_F16 = 9 + V_CMP_NLG_F16 = 10 + V_CMP_NGT_F16 = 11 + V_CMP_NLE_F16 = 12 + V_CMP_NEQ_F16 = 13 + V_CMP_NLT_F16 = 14 + V_CMP_T_F16 = 15 + V_CMP_F_F32 = 16 + V_CMP_LT_F32 = 17 + V_CMP_EQ_F32 = 18 + V_CMP_LE_F32 = 19 + V_CMP_GT_F32 = 20 + V_CMP_LG_F32 = 21 + V_CMP_GE_F32 = 22 + V_CMP_O_F32 = 23 + V_CMP_U_F32 = 24 + V_CMP_NGE_F32 = 25 + V_CMP_NLG_F32 = 26 + V_CMP_NGT_F32 = 27 + V_CMP_NLE_F32 = 28 + V_CMP_NEQ_F32 = 29 + V_CMP_NLT_F32 = 30 + V_CMP_T_F32 = 31 + V_CMP_F_F64 = 32 + V_CMP_LT_F64 = 33 + V_CMP_EQ_F64 = 34 + V_CMP_LE_F64 = 35 + V_CMP_GT_F64 = 36 + V_CMP_LG_F64 = 37 + V_CMP_GE_F64 = 38 + V_CMP_O_F64 = 39 + V_CMP_U_F64 = 40 + V_CMP_NGE_F64 = 41 + V_CMP_NLG_F64 = 42 + V_CMP_NGT_F64 = 43 + V_CMP_NLE_F64 = 44 + V_CMP_NEQ_F64 = 45 + V_CMP_NLT_F64 = 46 + V_CMP_T_F64 = 47 + V_CMP_LT_I16 = 49 + V_CMP_EQ_I16 = 50 + V_CMP_LE_I16 = 51 + V_CMP_GT_I16 = 52 + V_CMP_NE_I16 = 53 + V_CMP_GE_I16 = 54 + V_CMP_LT_U16 = 57 + V_CMP_EQ_U16 = 58 + V_CMP_LE_U16 = 59 + V_CMP_GT_U16 = 60 + V_CMP_NE_U16 = 61 + V_CMP_GE_U16 = 62 + V_CMP_F_I32 = 64 + V_CMP_LT_I32 = 65 + V_CMP_EQ_I32 = 66 + V_CMP_LE_I32 = 67 + V_CMP_GT_I32 = 68 + V_CMP_NE_I32 = 69 + V_CMP_GE_I32 = 70 + V_CMP_T_I32 = 71 + V_CMP_F_U32 = 72 + V_CMP_LT_U32 = 73 + V_CMP_EQ_U32 = 74 + V_CMP_LE_U32 = 75 + V_CMP_GT_U32 = 76 + V_CMP_NE_U32 = 77 + V_CMP_GE_U32 = 78 + V_CMP_T_U32 = 79 + V_CMP_F_I64 = 80 + V_CMP_LT_I64 = 81 + V_CMP_EQ_I64 = 82 + V_CMP_LE_I64 = 83 + V_CMP_GT_I64 = 84 + V_CMP_NE_I64 = 85 + V_CMP_GE_I64 = 86 + V_CMP_T_I64 = 87 + V_CMP_F_U64 = 88 + V_CMP_LT_U64 = 89 + V_CMP_EQ_U64 = 90 + V_CMP_LE_U64 = 91 + V_CMP_GT_U64 = 92 + V_CMP_NE_U64 = 93 + V_CMP_GE_U64 = 94 + V_CMP_T_U64 = 95 + V_CMP_CLASS_F16 = 125 + V_CMP_CLASS_F32 = 126 + V_CMP_CLASS_F64 = 127 + V_CMPX_F_F16 = 128 + V_CMPX_LT_F16 = 129 + V_CMPX_EQ_F16 = 130 + V_CMPX_LE_F16 = 131 + V_CMPX_GT_F16 = 132 + V_CMPX_LG_F16 = 133 + V_CMPX_GE_F16 = 134 + V_CMPX_O_F16 = 135 + V_CMPX_U_F16 = 136 + V_CMPX_NGE_F16 = 137 + V_CMPX_NLG_F16 = 138 + V_CMPX_NGT_F16 = 139 + V_CMPX_NLE_F16 = 140 + V_CMPX_NEQ_F16 = 141 + V_CMPX_NLT_F16 = 142 + V_CMPX_T_F16 = 143 + V_CMPX_F_F32 = 144 + V_CMPX_LT_F32 = 145 + V_CMPX_EQ_F32 = 146 + V_CMPX_LE_F32 = 147 + V_CMPX_GT_F32 = 148 + V_CMPX_LG_F32 = 149 + V_CMPX_GE_F32 = 150 + V_CMPX_O_F32 = 151 + V_CMPX_U_F32 = 152 + V_CMPX_NGE_F32 = 153 + V_CMPX_NLG_F32 = 154 + V_CMPX_NGT_F32 = 155 + V_CMPX_NLE_F32 = 156 + V_CMPX_NEQ_F32 = 157 + V_CMPX_NLT_F32 = 158 + V_CMPX_T_F32 = 159 + V_CMPX_F_F64 = 160 + V_CMPX_LT_F64 = 161 + V_CMPX_EQ_F64 = 162 + V_CMPX_LE_F64 = 163 + V_CMPX_GT_F64 = 164 + V_CMPX_LG_F64 = 165 + V_CMPX_GE_F64 = 166 + V_CMPX_O_F64 = 167 + V_CMPX_U_F64 = 168 + V_CMPX_NGE_F64 = 169 + V_CMPX_NLG_F64 = 170 + V_CMPX_NGT_F64 = 171 + V_CMPX_NLE_F64 = 172 + V_CMPX_NEQ_F64 = 173 + V_CMPX_NLT_F64 = 174 + V_CMPX_T_F64 = 175 + V_CMPX_LT_I16 = 177 + V_CMPX_EQ_I16 = 178 + V_CMPX_LE_I16 = 179 + V_CMPX_GT_I16 = 180 + V_CMPX_NE_I16 = 181 + V_CMPX_GE_I16 = 182 + V_CMPX_LT_U16 = 185 + V_CMPX_EQ_U16 = 186 + V_CMPX_LE_U16 = 187 + V_CMPX_GT_U16 = 188 + V_CMPX_NE_U16 = 189 + V_CMPX_GE_U16 = 190 + V_CMPX_F_I32 = 192 + V_CMPX_LT_I32 = 193 + V_CMPX_EQ_I32 = 194 + V_CMPX_LE_I32 = 195 + V_CMPX_GT_I32 = 196 + V_CMPX_NE_I32 = 197 + V_CMPX_GE_I32 = 198 + V_CMPX_T_I32 = 199 + V_CMPX_F_U32 = 200 + V_CMPX_LT_U32 = 201 + V_CMPX_EQ_U32 = 202 + V_CMPX_LE_U32 = 203 + V_CMPX_GT_U32 = 204 + V_CMPX_NE_U32 = 205 + V_CMPX_GE_U32 = 206 + V_CMPX_T_U32 = 207 + V_CMPX_F_I64 = 208 + V_CMPX_LT_I64 = 209 + V_CMPX_EQ_I64 = 210 + V_CMPX_LE_I64 = 211 + V_CMPX_GT_I64 = 212 + V_CMPX_NE_I64 = 213 + V_CMPX_GE_I64 = 214 + V_CMPX_T_I64 = 215 + V_CMPX_F_U64 = 216 + V_CMPX_LT_U64 = 217 + V_CMPX_EQ_U64 = 218 + V_CMPX_LE_U64 = 219 + V_CMPX_GT_U64 = 220 + V_CMPX_NE_U64 = 221 + V_CMPX_GE_U64 = 222 + V_CMPX_T_U64 = 223 + V_CMPX_CLASS_F16 = 253 + V_CMPX_CLASS_F32 = 254 + V_CMPX_CLASS_F64 = 255 + V_CNDMASK_B32 = 257 + V_ADD_F32 = 259 + V_SUB_F32 = 260 + V_SUBREV_F32 = 261 + V_FMAC_DX9_ZERO_F32 = 262 + V_MUL_DX9_ZERO_F32 = 263 + V_MUL_F32 = 264 + V_MUL_I32_I24 = 265 + V_MUL_HI_I32_I24 = 266 + V_MUL_U32_U24 = 267 + V_MUL_HI_U32_U24 = 268 + V_MIN_F32 = 271 + V_MAX_F32 = 272 + V_MIN_I32 = 273 + V_MAX_I32 = 274 + V_MIN_U32 = 275 + V_MAX_U32 = 276 + V_LSHLREV_B32 = 280 + V_LSHRREV_B32 = 281 + V_ASHRREV_I32 = 282 + V_AND_B32 = 283 + V_OR_B32 = 284 + V_XOR_B32 = 285 + V_XNOR_B32 = 286 + V_ADD_NC_U32 = 293 + V_SUB_NC_U32 = 294 + V_SUBREV_NC_U32 = 295 + V_FMAC_F32 = 299 + V_CVT_PK_RTZ_F16_F32 = 303 + V_ADD_F16 = 306 + V_SUB_F16 = 307 + V_SUBREV_F16 = 308 + V_MUL_F16 = 309 + V_FMAC_F16 = 310 + V_MAX_F16 = 313 + V_MIN_F16 = 314 + V_LDEXP_F16 = 315 + V_NOP = 384 + V_MOV_B32 = 385 + V_READFIRSTLANE_B32 = 386 + V_CVT_I32_F64 = 387 + V_CVT_F64_I32 = 388 + V_CVT_F32_I32 = 389 + V_CVT_F32_U32 = 390 + V_CVT_U32_F32 = 391 + V_CVT_I32_F32 = 392 + V_CVT_F16_F32 = 394 + V_CVT_F32_F16 = 395 + V_CVT_NEAREST_I32_F32 = 396 + V_CVT_FLOOR_I32_F32 = 397 + V_CVT_OFF_F32_I4 = 398 + V_CVT_F32_F64 = 399 + V_CVT_F64_F32 = 400 + V_CVT_F32_UBYTE0 = 401 + V_CVT_F32_UBYTE1 = 402 + V_CVT_F32_UBYTE2 = 403 + V_CVT_F32_UBYTE3 = 404 + V_CVT_U32_F64 = 405 + V_CVT_F64_U32 = 406 + V_TRUNC_F64 = 407 + V_CEIL_F64 = 408 + V_RNDNE_F64 = 409 + V_FLOOR_F64 = 410 + V_PIPEFLUSH = 411 + V_MOV_B16 = 412 + V_FRACT_F32 = 416 + V_TRUNC_F32 = 417 + V_CEIL_F32 = 418 + V_RNDNE_F32 = 419 + V_FLOOR_F32 = 420 + V_EXP_F32 = 421 + V_LOG_F32 = 423 + V_RCP_F32 = 426 + V_RCP_IFLAG_F32 = 427 + V_RSQ_F32 = 430 + V_RCP_F64 = 431 + V_RSQ_F64 = 433 + V_SQRT_F32 = 435 + V_SQRT_F64 = 436 + V_SIN_F32 = 437 + V_COS_F32 = 438 + V_NOT_B32 = 439 + V_BFREV_B32 = 440 + V_CLZ_I32_U32 = 441 + V_CTZ_I32_B32 = 442 + V_CLS_I32 = 443 + V_FREXP_EXP_I32_F64 = 444 + V_FREXP_MANT_F64 = 445 + V_FRACT_F64 = 446 + V_FREXP_EXP_I32_F32 = 447 + V_FREXP_MANT_F32 = 448 + V_MOVRELD_B32 = 450 + V_MOVRELS_B32 = 451 + V_MOVRELSD_B32 = 452 + V_MOVRELSD_2_B32 = 456 + V_CVT_F16_U16 = 464 + V_CVT_F16_I16 = 465 + V_CVT_U16_F16 = 466 + V_CVT_I16_F16 = 467 + V_RCP_F16 = 468 + V_SQRT_F16 = 469 + V_RSQ_F16 = 470 + V_LOG_F16 = 471 + V_EXP_F16 = 472 + V_FREXP_MANT_F16 = 473 + V_FREXP_EXP_I16_F16 = 474 + V_FLOOR_F16 = 475 + V_CEIL_F16 = 476 + V_TRUNC_F16 = 477 + V_RNDNE_F16 = 478 + V_FRACT_F16 = 479 + V_SIN_F16 = 480 + V_COS_F16 = 481 + V_SAT_PK_U8_I16 = 482 + V_CVT_NORM_I16_F16 = 483 + V_CVT_NORM_U16_F16 = 484 + V_NOT_B16 = 489 + V_CVT_I32_I16 = 490 + V_CVT_U32_U16 = 491 + V_FMA_DX9_ZERO_F32 = 521 + V_MAD_I32_I24 = 522 + V_MAD_U32_U24 = 523 + V_CUBEID_F32 = 524 + V_CUBESC_F32 = 525 + V_CUBETC_F32 = 526 + V_CUBEMA_F32 = 527 + V_BFE_U32 = 528 + V_BFE_I32 = 529 + V_BFI_B32 = 530 + V_FMA_F32 = 531 + V_FMA_F64 = 532 + V_LERP_U8 = 533 + V_ALIGNBIT_B32 = 534 + V_ALIGNBYTE_B32 = 535 + V_MULLIT_F32 = 536 + V_MIN3_F32 = 537 + V_MIN3_I32 = 538 + V_MIN3_U32 = 539 + V_MAX3_F32 = 540 + V_MAX3_I32 = 541 + V_MAX3_U32 = 542 + V_MED3_F32 = 543 + V_MED3_I32 = 544 + V_MED3_U32 = 545 + V_SAD_U8 = 546 + V_SAD_HI_U8 = 547 + V_SAD_U16 = 548 + V_SAD_U32 = 549 + V_CVT_PK_U8_F32 = 550 + V_DIV_FIXUP_F32 = 551 + V_DIV_FIXUP_F64 = 552 + V_DIV_FMAS_F32 = 567 + V_DIV_FMAS_F64 = 568 + V_MSAD_U8 = 569 + V_QSAD_PK_U16_U8 = 570 + V_MQSAD_PK_U16_U8 = 571 + V_MQSAD_U32_U8 = 573 + V_XOR3_B32 = 576 + V_MAD_U16 = 577 + V_PERM_B32 = 580 + V_XAD_U32 = 581 + V_LSHL_ADD_U32 = 582 + V_ADD_LSHL_U32 = 583 + V_FMA_F16 = 584 + V_MIN3_F16 = 585 + V_MIN3_I16 = 586 + V_MIN3_U16 = 587 + V_MAX3_F16 = 588 + V_MAX3_I16 = 589 + V_MAX3_U16 = 590 + V_MED3_F16 = 591 + V_MED3_I16 = 592 + V_MED3_U16 = 593 + V_MAD_I16 = 595 + V_DIV_FIXUP_F16 = 596 + V_ADD3_U32 = 597 + V_LSHL_OR_B32 = 598 + V_AND_OR_B32 = 599 + V_OR3_B32 = 600 + V_MAD_U32_U16 = 601 + V_MAD_I32_I16 = 602 + V_PERMLANE16_B32 = 603 + V_PERMLANEX16_B32 = 604 + V_CNDMASK_B16 = 605 + V_MAXMIN_F32 = 606 + V_MINMAX_F32 = 607 + V_MAXMIN_F16 = 608 + V_MINMAX_F16 = 609 + V_MAXMIN_U32 = 610 + V_MINMAX_U32 = 611 + V_MAXMIN_I32 = 612 + V_MINMAX_I32 = 613 + V_DOT2_F16_F16 = 614 + V_DOT2_BF16_BF16 = 615 + V_ADD_NC_U16 = 771 + V_SUB_NC_U16 = 772 + V_MUL_LO_U16 = 773 + V_CVT_PK_I16_F32 = 774 + V_CVT_PK_U16_F32 = 775 + V_MAX_U16 = 777 + V_MAX_I16 = 778 + V_MIN_U16 = 779 + V_MIN_I16 = 780 + V_ADD_NC_I16 = 781 + V_SUB_NC_I16 = 782 + V_PACK_B32_F16 = 785 + V_CVT_PK_NORM_I16_F16 = 786 + V_CVT_PK_NORM_U16_F16 = 787 + V_LDEXP_F32 = 796 + V_BFM_B32 = 797 + V_BCNT_U32_B32 = 798 + V_MBCNT_LO_U32_B32 = 799 + V_MBCNT_HI_U32_B32 = 800 + V_CVT_PK_NORM_I16_F32 = 801 + V_CVT_PK_NORM_U16_F32 = 802 + V_CVT_PK_U16_U32 = 803 + V_CVT_PK_I16_I32 = 804 + V_SUB_NC_I32 = 805 + V_ADD_NC_I32 = 806 + V_ADD_F64 = 807 + V_MUL_F64 = 808 + V_MIN_F64 = 809 + V_MAX_F64 = 810 + V_LDEXP_F64 = 811 + V_MUL_LO_U32 = 812 + V_MUL_HI_U32 = 813 + V_MUL_HI_I32 = 814 + V_TRIG_PREOP_F64 = 815 + V_LSHLREV_B16 = 824 + V_LSHRREV_B16 = 825 + V_ASHRREV_I16 = 826 + V_LSHLREV_B64 = 828 + V_LSHRREV_B64 = 829 + V_ASHRREV_I64 = 830 + V_READLANE_B32 = 864 + V_WRITELANE_B32 = 865 + V_AND_B16 = 866 + V_OR_B16 = 867 + V_XOR_B16 = 868 + +class VOP3POp(IntEnum): + V_PK_MAD_I16 = 0 + V_PK_MUL_LO_U16 = 1 + V_PK_ADD_I16 = 2 + V_PK_SUB_I16 = 3 + V_PK_LSHLREV_B16 = 4 + V_PK_LSHRREV_B16 = 5 + V_PK_ASHRREV_I16 = 6 + V_PK_MAX_I16 = 7 + V_PK_MIN_I16 = 8 + V_PK_MAD_U16 = 9 + V_PK_ADD_U16 = 10 + V_PK_SUB_U16 = 11 + V_PK_MAX_U16 = 12 + V_PK_MIN_U16 = 13 + V_PK_FMA_F16 = 14 + V_PK_ADD_F16 = 15 + V_PK_MUL_F16 = 16 + V_PK_MIN_F16 = 17 + V_PK_MAX_F16 = 18 + V_DOT2_F32_F16 = 19 + V_DOT4_I32_IU8 = 22 + V_DOT4_U32_U8 = 23 + V_DOT8_I32_IU4 = 24 + V_DOT8_U32_U4 = 25 + V_DOT2_F32_BF16 = 26 + V_FMA_MIX_F32 = 32 + V_FMA_MIXLO_F16 = 33 + V_FMA_MIXHI_F16 = 34 + V_WMMA_F32_16X16X16_F16 = 64 + V_WMMA_F32_16X16X16_BF16 = 65 + V_WMMA_F16_16X16X16_F16 = 66 + V_WMMA_BF16_16X16X16_BF16 = 67 + V_WMMA_I32_16X16X16_IU8 = 68 + V_WMMA_I32_16X16X16_IU4 = 69 + +class VOP3SDOp(IntEnum): + DWORD = 1 + V_ADD_CO_CI_U32 = 288 + V_SUB_CO_CI_U32 = 289 + V_SUBREV_CO_CI_U32 = 290 + V_DIV_SCALE_F32 = 764 + V_DIV_SCALE_F64 = 765 + V_MAD_U64_U32 = 766 + V_MAD_I64_I32 = 767 + V_ADD_CO_U32 = 768 + V_SUB_CO_U32 = 769 + V_SUBREV_CO_U32 = 770 + +class VOPCOp(IntEnum): + V_CMP_F_F16 = 0 + V_CMP_LT_F16 = 1 + V_CMP_EQ_F16 = 2 + V_CMP_LE_F16 = 3 + V_CMP_GT_F16 = 4 + V_CMP_LG_F16 = 5 + V_CMP_GE_F16 = 6 + V_CMP_O_F16 = 7 + V_CMP_U_F16 = 8 + V_CMP_NGE_F16 = 9 + V_CMP_NLG_F16 = 10 + V_CMP_NGT_F16 = 11 + V_CMP_NLE_F16 = 12 + V_CMP_NEQ_F16 = 13 + V_CMP_NLT_F16 = 14 + V_CMP_T_F16 = 15 + V_CMP_F_F32 = 16 + V_CMP_LT_F32 = 17 + V_CMP_EQ_F32 = 18 + V_CMP_LE_F32 = 19 + V_CMP_GT_F32 = 20 + V_CMP_LG_F32 = 21 + V_CMP_GE_F32 = 22 + V_CMP_O_F32 = 23 + V_CMP_U_F32 = 24 + V_CMP_NGE_F32 = 25 + V_CMP_NLG_F32 = 26 + V_CMP_NGT_F32 = 27 + V_CMP_NLE_F32 = 28 + V_CMP_NEQ_F32 = 29 + V_CMP_NLT_F32 = 30 + V_CMP_T_F32 = 31 + V_CMP_F_F64 = 32 + V_CMP_LT_F64 = 33 + V_CMP_EQ_F64 = 34 + V_CMP_LE_F64 = 35 + V_CMP_GT_F64 = 36 + V_CMP_LG_F64 = 37 + V_CMP_GE_F64 = 38 + V_CMP_O_F64 = 39 + V_CMP_U_F64 = 40 + V_CMP_NGE_F64 = 41 + V_CMP_NLG_F64 = 42 + V_CMP_NGT_F64 = 43 + V_CMP_NLE_F64 = 44 + V_CMP_NEQ_F64 = 45 + V_CMP_NLT_F64 = 46 + V_CMP_T_F64 = 47 + V_CMP_LT_I16 = 49 + V_CMP_EQ_I16 = 50 + V_CMP_LE_I16 = 51 + V_CMP_GT_I16 = 52 + V_CMP_NE_I16 = 53 + V_CMP_GE_I16 = 54 + V_CMP_LT_U16 = 57 + V_CMP_EQ_U16 = 58 + V_CMP_LE_U16 = 59 + V_CMP_GT_U16 = 60 + V_CMP_NE_U16 = 61 + V_CMP_GE_U16 = 62 + V_CMP_F_I32 = 64 + V_CMP_LT_I32 = 65 + V_CMP_EQ_I32 = 66 + V_CMP_LE_I32 = 67 + V_CMP_GT_I32 = 68 + V_CMP_NE_I32 = 69 + V_CMP_GE_I32 = 70 + V_CMP_T_I32 = 71 + V_CMP_F_U32 = 72 + V_CMP_LT_U32 = 73 + V_CMP_EQ_U32 = 74 + V_CMP_LE_U32 = 75 + V_CMP_GT_U32 = 76 + V_CMP_NE_U32 = 77 + V_CMP_GE_U32 = 78 + V_CMP_T_U32 = 79 + V_CMP_F_I64 = 80 + V_CMP_LT_I64 = 81 + V_CMP_EQ_I64 = 82 + V_CMP_LE_I64 = 83 + V_CMP_GT_I64 = 84 + V_CMP_NE_I64 = 85 + V_CMP_GE_I64 = 86 + V_CMP_T_I64 = 87 + V_CMP_F_U64 = 88 + V_CMP_LT_U64 = 89 + V_CMP_EQ_U64 = 90 + V_CMP_LE_U64 = 91 + V_CMP_GT_U64 = 92 + V_CMP_NE_U64 = 93 + V_CMP_GE_U64 = 94 + V_CMP_T_U64 = 95 + V_CMP_CLASS_F16 = 125 + V_CMP_CLASS_F32 = 126 + V_CMP_CLASS_F64 = 127 + V_CMPX_F_F16 = 128 + V_CMPX_LT_F16 = 129 + V_CMPX_EQ_F16 = 130 + V_CMPX_LE_F16 = 131 + V_CMPX_GT_F16 = 132 + V_CMPX_LG_F16 = 133 + V_CMPX_GE_F16 = 134 + V_CMPX_O_F16 = 135 + V_CMPX_U_F16 = 136 + V_CMPX_NGE_F16 = 137 + V_CMPX_NLG_F16 = 138 + V_CMPX_NGT_F16 = 139 + V_CMPX_NLE_F16 = 140 + V_CMPX_NEQ_F16 = 141 + V_CMPX_NLT_F16 = 142 + V_CMPX_T_F16 = 143 + V_CMPX_F_F32 = 144 + V_CMPX_LT_F32 = 145 + V_CMPX_EQ_F32 = 146 + V_CMPX_LE_F32 = 147 + V_CMPX_GT_F32 = 148 + V_CMPX_LG_F32 = 149 + V_CMPX_GE_F32 = 150 + V_CMPX_O_F32 = 151 + V_CMPX_U_F32 = 152 + V_CMPX_NGE_F32 = 153 + V_CMPX_NLG_F32 = 154 + V_CMPX_NGT_F32 = 155 + V_CMPX_NLE_F32 = 156 + V_CMPX_NEQ_F32 = 157 + V_CMPX_NLT_F32 = 158 + V_CMPX_T_F32 = 159 + V_CMPX_F_F64 = 160 + V_CMPX_LT_F64 = 161 + V_CMPX_EQ_F64 = 162 + V_CMPX_LE_F64 = 163 + V_CMPX_GT_F64 = 164 + V_CMPX_LG_F64 = 165 + V_CMPX_GE_F64 = 166 + V_CMPX_O_F64 = 167 + V_CMPX_U_F64 = 168 + V_CMPX_NGE_F64 = 169 + V_CMPX_NLG_F64 = 170 + V_CMPX_NGT_F64 = 171 + V_CMPX_NLE_F64 = 172 + V_CMPX_NEQ_F64 = 173 + V_CMPX_NLT_F64 = 174 + V_CMPX_T_F64 = 175 + V_CMPX_LT_I16 = 177 + V_CMPX_EQ_I16 = 178 + V_CMPX_LE_I16 = 179 + V_CMPX_GT_I16 = 180 + V_CMPX_NE_I16 = 181 + V_CMPX_GE_I16 = 182 + V_CMPX_LT_U16 = 185 + V_CMPX_EQ_U16 = 186 + V_CMPX_LE_U16 = 187 + V_CMPX_GT_U16 = 188 + V_CMPX_NE_U16 = 189 + V_CMPX_GE_U16 = 190 + V_CMPX_F_I32 = 192 + V_CMPX_LT_I32 = 193 + V_CMPX_EQ_I32 = 194 + V_CMPX_LE_I32 = 195 + V_CMPX_GT_I32 = 196 + V_CMPX_NE_I32 = 197 + V_CMPX_GE_I32 = 198 + V_CMPX_T_I32 = 199 + V_CMPX_F_U32 = 200 + V_CMPX_LT_U32 = 201 + V_CMPX_EQ_U32 = 202 + V_CMPX_LE_U32 = 203 + V_CMPX_GT_U32 = 204 + V_CMPX_NE_U32 = 205 + V_CMPX_GE_U32 = 206 + V_CMPX_T_U32 = 207 + V_CMPX_F_I64 = 208 + V_CMPX_LT_I64 = 209 + V_CMPX_EQ_I64 = 210 + V_CMPX_LE_I64 = 211 + V_CMPX_GT_I64 = 212 + V_CMPX_NE_I64 = 213 + V_CMPX_GE_I64 = 214 + V_CMPX_T_I64 = 215 + V_CMPX_F_U64 = 216 + V_CMPX_LT_U64 = 217 + V_CMPX_EQ_U64 = 218 + V_CMPX_LE_U64 = 219 + V_CMPX_GT_U64 = 220 + V_CMPX_NE_U64 = 221 + V_CMPX_GE_U64 = 222 + V_CMPX_T_U64 = 223 + V_CMPX_CLASS_F16 = 253 + V_CMPX_CLASS_F32 = 254 + V_CMPX_CLASS_F64 = 255 + +class VOPDOp(IntEnum): + V_DUAL_FMAC_F32 = 0 + V_DUAL_FMAAK_F32 = 1 + V_DUAL_FMAMK_F32 = 2 + V_DUAL_MUL_F32 = 3 + V_DUAL_ADD_F32 = 4 + V_DUAL_SUB_F32 = 5 + V_DUAL_SUBREV_F32 = 6 + V_DUAL_MUL_DX9_ZERO_F32 = 7 + V_DUAL_MOV_B32 = 8 + V_DUAL_CNDMASK_B32 = 9 + V_DUAL_MAX_F32 = 10 + V_DUAL_MIN_F32 = 11 + V_DUAL_DOT2ACC_F32_F16 = 12 + V_DUAL_DOT2ACC_F32_BF16 = 13 + V_DUAL_ADD_NC_U32 = 16 + V_DUAL_LSHLREV_B32 = 17 + V_DUAL_AND_B32 = 18 diff --git a/extra/assembly/amd/autogen/rdna3/gen_pcode.py b/extra/assembly/amd/autogen/rdna3/gen_pcode.py index 47a47951cb..3c9c0a93f9 100644 --- a/extra/assembly/amd/autogen/rdna3/gen_pcode.py +++ b/extra/assembly/amd/autogen/rdna3/gen_pcode.py @@ -2,7 +2,7 @@ # to regenerate: python -m extra.assembly.amd.pdf --arch rdna3 # ruff: noqa: E501,F405,F403 # mypy: ignore-errors -from extra.assembly.amd.autogen.rdna3 import SOP1Op, SOP2Op, SOPCOp, SOPKOp, SOPPOp, VOP1Op, VOP2Op, VOP3Op, VOP3SDOp, VOP3POp, VOPCOp +from extra.assembly.amd.autogen.rdna3.enum import SOP1Op, SOP2Op, SOPCOp, SOPKOp, SOPPOp, VOP1Op, VOP2Op, VOP3Op, VOP3SDOp, VOP3POp, VOPCOp from extra.assembly.amd.pcode import * def _SOP1Op_S_MOV_B32(s0, s1, s2, d0, scc, vcc, lane, exec_mask, literal, VGPR, _vars, src0_idx=0, vdst_idx=0, pc=0): diff --git a/extra/assembly/amd/autogen/rdna3/ins.py b/extra/assembly/amd/autogen/rdna3/ins.py new file mode 100644 index 0000000000..9eb40b6d9d --- /dev/null +++ b/extra/assembly/amd/autogen/rdna3/ins.py @@ -0,0 +1,1795 @@ +# autogenerated from AMD RDNA3.5 ISA PDF by pdf.py - do not edit +# ruff: noqa: F401,F403 +from typing import Annotated +from extra.assembly.amd.dsl import bits, BitField, Inst32, Inst64, SGPR, VGPR, TTMP as TTMP, s as s, v as v, ttmp as ttmp, SSrc, Src, SImm, Imm, VDSTYEnc, SGPRField, VGPRField +from extra.assembly.amd.autogen.rdna3.enum import * +import functools + +# instruction formats +class DPP16(Inst64): + src0:Src = bits[39:32] + dpp_ctrl = bits[48:40] + fi = bits[50] + bc = bits[51] + src0_neg = bits[52] + src0_abs = bits[53] + src1_neg = bits[54] + src1_abs = bits[55] + bank_mask = bits[59:56] + row_mask = bits[63:60] + +class DPP8(Inst64): + src0:Src = bits[39:32] + lane_sel0 = bits[42:40] + lane_sel1 = bits[45:43] + lane_sel2 = bits[48:46] + lane_sel3 = bits[51:49] + lane_sel4 = bits[54:52] + lane_sel5 = bits[57:55] + lane_sel6 = bits[60:58] + lane_sel7 = bits[63:61] + +class DS(Inst64): + encoding = bits[31:26] == 0b110110 + op:Annotated[BitField, DSOp] = bits[25:18] + vdst:VGPRField = bits[63:56] + addr:VGPRField = bits[39:32] + data0:VGPRField = bits[47:40] + data1:VGPRField = bits[55:48] + offset0 = bits[7:0] + offset1 = bits[15:8] + gds = bits[17] + +class EXP(Inst64): + encoding = bits[31:26] == 0b111110 + en = bits[3:0] + target = bits[9:4] + vsrc0 = bits[39:32] + vsrc1:VGPRField = bits[47:40] + vsrc2 = bits[55:48] + vsrc3 = bits[63:56] + done = bits[11] + row = bits[13] + +class FLAT(Inst64): + encoding = bits[31:26] == 0b110111 + op:Annotated[BitField, FLATOp] = bits[24:18] + vdst:VGPRField = bits[63:56] + addr:VGPRField = bits[39:32] + data:VGPRField = bits[47:40] + saddr:SSrc = bits[54:48] + offset:Imm = bits[12:0] + seg = bits[17:16] + dlc = bits[13] + glc = bits[14] + slc = bits[15] + sve = bits[55] + +class LDSDIR(Inst32): + encoding = bits[31:24] == 0b11001110 + op = bits[21:20] + vdst:VGPRField = bits[7:0] + attr = bits[15:10] + attr_chan = bits[9:8] + wait_va = bits[19:16] + +class MIMG(Inst64): + encoding = bits[31:26] == 0b111100 + op:Annotated[BitField, MIMGOp] = bits[25:18] + vdata:VGPRField = bits[47:40] + vaddr:VGPRField = bits[39:32] + srsrc:SGPRField = bits[52:48] + ssamp = bits[62:58] + dmask = bits[11:8] + dim = bits[4:2] + unrm = bits[7] + dlc = bits[13] + glc = bits[14] + slc = bits[12] + nsa = bits[0] + r128 = bits[15] + a16 = bits[16] + d16 = bits[17] + tfe = bits[53] + lwe = bits[54] + addr1 = bits[71:64] + addr2 = bits[79:72] + +class MTBUF(Inst64): + encoding = bits[31:26] == 0b111010 + op:Annotated[BitField, MTBUFOp] = bits[18:15] + vdata:VGPRField = bits[47:40] + vaddr:VGPRField = bits[39:32] + srsrc:SGPRField = bits[52:48] + soffset:SSrc = bits[63:56] + offset:Imm = bits[11:0] + format = bits[25:19] + offen = bits[54] + idxen = bits[55] + glc = bits[14] + dlc = bits[13] + slc = bits[12] + tfe = bits[53] + +class MUBUF(Inst64): + encoding = bits[31:26] == 0b111000 + op:Annotated[BitField, MUBUFOp] = bits[25:18] + vdata:VGPRField = bits[47:40] + vaddr:VGPRField = bits[39:32] + srsrc:SGPRField = bits[52:48] + soffset:SSrc = bits[63:56] + offset:Imm = bits[11:0] + offen = bits[54] + idxen = bits[55] + glc = bits[14] + dlc = bits[13] + slc = bits[12] + tfe = bits[53] + +class SMEM(Inst64): + encoding = bits[31:26] == 0b111101 + op:Annotated[BitField, SMEMOp] = bits[25:18] + sdata:SGPRField = bits[12:6] + sbase:SGPRField = bits[5:0] + soffset:SSrc = bits[63:57] + offset:Imm = bits[52:32] + glc = bits[14] + dlc = bits[13] + +class SOP1(Inst32): + encoding = bits[31:23] == 0b101111101 + op:Annotated[BitField, SOP1Op] = bits[15:8] + sdst:SGPRField = bits[22:16] + ssrc0:SSrc = bits[7:0] + +class SOP2(Inst32): + encoding = bits[31:30] == 0b10 + op:Annotated[BitField, SOP2Op] = bits[29:23] + sdst:SGPRField = bits[22:16] + ssrc0:SSrc = bits[7:0] + ssrc1:SSrc = bits[15:8] + +class SOPC(Inst32): + encoding = bits[31:23] == 0b101111110 + op:Annotated[BitField, SOPCOp] = bits[22:16] + ssrc0:SSrc = bits[7:0] + ssrc1:SSrc = bits[15:8] + +class SOPK(Inst32): + encoding = bits[31:28] == 0b1011 + op:Annotated[BitField, SOPKOp] = bits[27:23] + sdst:SGPRField = bits[22:16] + simm16:SImm = bits[15:0] + +class SOPP(Inst32): + encoding = bits[31:23] == 0b101111111 + op:Annotated[BitField, SOPPOp] = bits[22:16] + simm16:SImm = bits[15:0] + +class VINTERP(Inst64): + encoding = bits[31:24] == 0b11001101 + op:Annotated[BitField, VINTERPOp] = bits[22:16] + vdst:VGPRField = bits[7:0] + src0:Src = bits[40:32] + src1:Src = bits[49:41] + src2:Src = bits[58:50] + waitexp = bits[10:8] + clmp = bits[15] + opsel = bits[14:11] + neg = bits[63:61] + +class VOP1(Inst32): + encoding = bits[31:25] == 0b111111 + op:Annotated[BitField, VOP1Op] = bits[16:9] + vdst:VGPRField = bits[24:17] + src0:Src = bits[8:0] + +class VOP2(Inst32): + encoding = bits[31] == 0 + op:Annotated[BitField, VOP2Op] = bits[30:25] + vdst:VGPRField = bits[24:17] + src0:Src = bits[8:0] + vsrc1:VGPRField = bits[16:9] + +class VOP3(Inst64): + encoding = bits[31:26] == 0b110101 + op:Annotated[BitField, VOP3Op] = bits[25:16] + vdst:VGPRField = bits[7:0] + src0:Src = bits[40:32] + src1:Src = bits[49:41] + src2:Src = bits[58:50] + omod = bits[60:59] + neg = bits[63:61] + abs = bits[10:8] + clmp = bits[15] + opsel = bits[14:11] + +class VOP3P(Inst64): + encoding = bits[31:24] == 0b11001100 + _defaults = {'opsel_hi': 3, 'opsel_hi2': 1} + op:Annotated[BitField, VOP3POp] = bits[22:16] + vdst:VGPRField = bits[7:0] + src0:Src = bits[40:32] + src1:Src = bits[49:41] + src2:Src = bits[58:50] + neg = bits[63:61] + neg_hi = bits[10:8] + opsel = bits[13:11] + opsel_hi = bits[60:59] + clmp = bits[15] + opsel_hi2 = bits[14] + +class VOP3SD(Inst64): + encoding = bits[31:26] == 0b110101 + op:Annotated[BitField, VOP3SDOp] = bits[25:16] + vdst:VGPRField = bits[7:0] + sdst:SGPRField = bits[14:8] + src0:Src = bits[40:32] + src1:Src = bits[49:41] + src2:Src = bits[58:50] + clmp = bits[15] + omod = bits[60:59] + neg = bits[63:61] + +class VOPC(Inst32): + encoding = bits[31:25] == 0b111110 + op:Annotated[BitField, VOPCOp] = bits[24:17] + src0:Src = bits[8:0] + vsrc1:VGPRField = bits[16:9] + +class VOPD(Inst64): + encoding = bits[31:26] == 0b110010 + opx:Annotated[BitField, VOPDOp] = bits[25:22] + opy:Annotated[BitField, VOPDOp] = bits[21:17] + vdstx:VGPRField = bits[63:56] + vdsty:VDSTYEnc = bits[55:49] + srcx0:Src = bits[8:0] + vsrcx1:VGPRField = bits[16:9] + srcy0:Src = bits[40:32] + vsrcy1:VGPRField = bits[48:41] + +# instruction helpers +ds_add_u32 = functools.partial(DS, DSOp.DS_ADD_U32) +ds_sub_u32 = functools.partial(DS, DSOp.DS_SUB_U32) +ds_rsub_u32 = functools.partial(DS, DSOp.DS_RSUB_U32) +ds_inc_u32 = functools.partial(DS, DSOp.DS_INC_U32) +ds_dec_u32 = functools.partial(DS, DSOp.DS_DEC_U32) +ds_min_i32 = functools.partial(DS, DSOp.DS_MIN_I32) +ds_max_i32 = functools.partial(DS, DSOp.DS_MAX_I32) +ds_min_u32 = functools.partial(DS, DSOp.DS_MIN_U32) +ds_max_u32 = functools.partial(DS, DSOp.DS_MAX_U32) +ds_and_b32 = functools.partial(DS, DSOp.DS_AND_B32) +ds_or_b32 = functools.partial(DS, DSOp.DS_OR_B32) +ds_xor_b32 = functools.partial(DS, DSOp.DS_XOR_B32) +ds_mskor_b32 = functools.partial(DS, DSOp.DS_MSKOR_B32) +ds_store_b32 = functools.partial(DS, DSOp.DS_STORE_B32) +ds_store_2addr_b32 = functools.partial(DS, DSOp.DS_STORE_2ADDR_B32) +ds_store_2addr_stride64_b32 = functools.partial(DS, DSOp.DS_STORE_2ADDR_STRIDE64_B32) +ds_cmpstore_b32 = functools.partial(DS, DSOp.DS_CMPSTORE_B32) +ds_cmpstore_f32 = functools.partial(DS, DSOp.DS_CMPSTORE_F32) +ds_min_f32 = functools.partial(DS, DSOp.DS_MIN_F32) +ds_max_f32 = functools.partial(DS, DSOp.DS_MAX_F32) +ds_nop = functools.partial(DS, DSOp.DS_NOP) +ds_add_f32 = functools.partial(DS, DSOp.DS_ADD_F32) +ds_gws_sema_release_all = functools.partial(DS, DSOp.DS_GWS_SEMA_RELEASE_ALL) +ds_gws_init = functools.partial(DS, DSOp.DS_GWS_INIT) +ds_gws_sema_v = functools.partial(DS, DSOp.DS_GWS_SEMA_V) +ds_gws_sema_br = functools.partial(DS, DSOp.DS_GWS_SEMA_BR) +ds_gws_sema_p = functools.partial(DS, DSOp.DS_GWS_SEMA_P) +ds_gws_barrier = functools.partial(DS, DSOp.DS_GWS_BARRIER) +ds_store_b8 = functools.partial(DS, DSOp.DS_STORE_B8) +ds_store_b16 = functools.partial(DS, DSOp.DS_STORE_B16) +ds_add_rtn_u32 = functools.partial(DS, DSOp.DS_ADD_RTN_U32) +ds_sub_rtn_u32 = functools.partial(DS, DSOp.DS_SUB_RTN_U32) +ds_rsub_rtn_u32 = functools.partial(DS, DSOp.DS_RSUB_RTN_U32) +ds_inc_rtn_u32 = functools.partial(DS, DSOp.DS_INC_RTN_U32) +ds_dec_rtn_u32 = functools.partial(DS, DSOp.DS_DEC_RTN_U32) +ds_min_rtn_i32 = functools.partial(DS, DSOp.DS_MIN_RTN_I32) +ds_max_rtn_i32 = functools.partial(DS, DSOp.DS_MAX_RTN_I32) +ds_min_rtn_u32 = functools.partial(DS, DSOp.DS_MIN_RTN_U32) +ds_max_rtn_u32 = functools.partial(DS, DSOp.DS_MAX_RTN_U32) +ds_and_rtn_b32 = functools.partial(DS, DSOp.DS_AND_RTN_B32) +ds_or_rtn_b32 = functools.partial(DS, DSOp.DS_OR_RTN_B32) +ds_xor_rtn_b32 = functools.partial(DS, DSOp.DS_XOR_RTN_B32) +ds_mskor_rtn_b32 = functools.partial(DS, DSOp.DS_MSKOR_RTN_B32) +ds_storexchg_rtn_b32 = functools.partial(DS, DSOp.DS_STOREXCHG_RTN_B32) +ds_storexchg_2addr_rtn_b32 = functools.partial(DS, DSOp.DS_STOREXCHG_2ADDR_RTN_B32) +ds_storexchg_2addr_stride64_rtn_b32 = functools.partial(DS, DSOp.DS_STOREXCHG_2ADDR_STRIDE64_RTN_B32) +ds_cmpstore_rtn_b32 = functools.partial(DS, DSOp.DS_CMPSTORE_RTN_B32) +ds_cmpstore_rtn_f32 = functools.partial(DS, DSOp.DS_CMPSTORE_RTN_F32) +ds_min_rtn_f32 = functools.partial(DS, DSOp.DS_MIN_RTN_F32) +ds_max_rtn_f32 = functools.partial(DS, DSOp.DS_MAX_RTN_F32) +ds_wrap_rtn_b32 = functools.partial(DS, DSOp.DS_WRAP_RTN_B32) +ds_swizzle_b32 = functools.partial(DS, DSOp.DS_SWIZZLE_B32) +ds_load_b32 = functools.partial(DS, DSOp.DS_LOAD_B32) +ds_load_2addr_b32 = functools.partial(DS, DSOp.DS_LOAD_2ADDR_B32) +ds_load_2addr_stride64_b32 = functools.partial(DS, DSOp.DS_LOAD_2ADDR_STRIDE64_B32) +ds_load_i8 = functools.partial(DS, DSOp.DS_LOAD_I8) +ds_load_u8 = functools.partial(DS, DSOp.DS_LOAD_U8) +ds_load_i16 = functools.partial(DS, DSOp.DS_LOAD_I16) +ds_load_u16 = functools.partial(DS, DSOp.DS_LOAD_U16) +ds_consume = functools.partial(DS, DSOp.DS_CONSUME) +ds_append = functools.partial(DS, DSOp.DS_APPEND) +ds_ordered_count = functools.partial(DS, DSOp.DS_ORDERED_COUNT) +ds_add_u64 = functools.partial(DS, DSOp.DS_ADD_U64) +ds_sub_u64 = functools.partial(DS, DSOp.DS_SUB_U64) +ds_rsub_u64 = functools.partial(DS, DSOp.DS_RSUB_U64) +ds_inc_u64 = functools.partial(DS, DSOp.DS_INC_U64) +ds_dec_u64 = functools.partial(DS, DSOp.DS_DEC_U64) +ds_min_i64 = functools.partial(DS, DSOp.DS_MIN_I64) +ds_max_i64 = functools.partial(DS, DSOp.DS_MAX_I64) +ds_min_u64 = functools.partial(DS, DSOp.DS_MIN_U64) +ds_max_u64 = functools.partial(DS, DSOp.DS_MAX_U64) +ds_and_b64 = functools.partial(DS, DSOp.DS_AND_B64) +ds_or_b64 = functools.partial(DS, DSOp.DS_OR_B64) +ds_xor_b64 = functools.partial(DS, DSOp.DS_XOR_B64) +ds_mskor_b64 = functools.partial(DS, DSOp.DS_MSKOR_B64) +ds_store_b64 = functools.partial(DS, DSOp.DS_STORE_B64) +ds_store_2addr_b64 = functools.partial(DS, DSOp.DS_STORE_2ADDR_B64) +ds_store_2addr_stride64_b64 = functools.partial(DS, DSOp.DS_STORE_2ADDR_STRIDE64_B64) +ds_cmpstore_b64 = functools.partial(DS, DSOp.DS_CMPSTORE_B64) +ds_cmpstore_f64 = functools.partial(DS, DSOp.DS_CMPSTORE_F64) +ds_min_f64 = functools.partial(DS, DSOp.DS_MIN_F64) +ds_max_f64 = functools.partial(DS, DSOp.DS_MAX_F64) +ds_add_rtn_u64 = functools.partial(DS, DSOp.DS_ADD_RTN_U64) +ds_sub_rtn_u64 = functools.partial(DS, DSOp.DS_SUB_RTN_U64) +ds_rsub_rtn_u64 = functools.partial(DS, DSOp.DS_RSUB_RTN_U64) +ds_inc_rtn_u64 = functools.partial(DS, DSOp.DS_INC_RTN_U64) +ds_dec_rtn_u64 = functools.partial(DS, DSOp.DS_DEC_RTN_U64) +ds_min_rtn_i64 = functools.partial(DS, DSOp.DS_MIN_RTN_I64) +ds_max_rtn_i64 = functools.partial(DS, DSOp.DS_MAX_RTN_I64) +ds_min_rtn_u64 = functools.partial(DS, DSOp.DS_MIN_RTN_U64) +ds_max_rtn_u64 = functools.partial(DS, DSOp.DS_MAX_RTN_U64) +ds_and_rtn_b64 = functools.partial(DS, DSOp.DS_AND_RTN_B64) +ds_or_rtn_b64 = functools.partial(DS, DSOp.DS_OR_RTN_B64) +ds_xor_rtn_b64 = functools.partial(DS, DSOp.DS_XOR_RTN_B64) +ds_mskor_rtn_b64 = functools.partial(DS, DSOp.DS_MSKOR_RTN_B64) +ds_storexchg_rtn_b64 = functools.partial(DS, DSOp.DS_STOREXCHG_RTN_B64) +ds_storexchg_2addr_rtn_b64 = functools.partial(DS, DSOp.DS_STOREXCHG_2ADDR_RTN_B64) +ds_storexchg_2addr_stride64_rtn_b64 = functools.partial(DS, DSOp.DS_STOREXCHG_2ADDR_STRIDE64_RTN_B64) +ds_cmpstore_rtn_b64 = functools.partial(DS, DSOp.DS_CMPSTORE_RTN_B64) +ds_cmpstore_rtn_f64 = functools.partial(DS, DSOp.DS_CMPSTORE_RTN_F64) +ds_min_rtn_f64 = functools.partial(DS, DSOp.DS_MIN_RTN_F64) +ds_max_rtn_f64 = functools.partial(DS, DSOp.DS_MAX_RTN_F64) +ds_load_b64 = functools.partial(DS, DSOp.DS_LOAD_B64) +ds_load_2addr_b64 = functools.partial(DS, DSOp.DS_LOAD_2ADDR_B64) +ds_load_2addr_stride64_b64 = functools.partial(DS, DSOp.DS_LOAD_2ADDR_STRIDE64_B64) +ds_add_rtn_f32 = functools.partial(DS, DSOp.DS_ADD_RTN_F32) +ds_add_gs_reg_rtn = functools.partial(DS, DSOp.DS_ADD_GS_REG_RTN) +ds_sub_gs_reg_rtn = functools.partial(DS, DSOp.DS_SUB_GS_REG_RTN) +ds_condxchg32_rtn_b64 = functools.partial(DS, DSOp.DS_CONDXCHG32_RTN_B64) +ds_store_b8_d16_hi = functools.partial(DS, DSOp.DS_STORE_B8_D16_HI) +ds_store_b16_d16_hi = functools.partial(DS, DSOp.DS_STORE_B16_D16_HI) +ds_load_u8_d16 = functools.partial(DS, DSOp.DS_LOAD_U8_D16) +ds_load_u8_d16_hi = functools.partial(DS, DSOp.DS_LOAD_U8_D16_HI) +ds_load_i8_d16 = functools.partial(DS, DSOp.DS_LOAD_I8_D16) +ds_load_i8_d16_hi = functools.partial(DS, DSOp.DS_LOAD_I8_D16_HI) +ds_load_u16_d16 = functools.partial(DS, DSOp.DS_LOAD_U16_D16) +ds_load_u16_d16_hi = functools.partial(DS, DSOp.DS_LOAD_U16_D16_HI) +ds_bvh_stack_rtn_b32 = functools.partial(DS, DSOp.DS_BVH_STACK_RTN_B32) +ds_store_addtid_b32 = functools.partial(DS, DSOp.DS_STORE_ADDTID_B32) +ds_load_addtid_b32 = functools.partial(DS, DSOp.DS_LOAD_ADDTID_B32) +ds_permute_b32 = functools.partial(DS, DSOp.DS_PERMUTE_B32) +ds_bpermute_b32 = functools.partial(DS, DSOp.DS_BPERMUTE_B32) +ds_store_b96 = functools.partial(DS, DSOp.DS_STORE_B96) +ds_store_b128 = functools.partial(DS, DSOp.DS_STORE_B128) +ds_load_b96 = functools.partial(DS, DSOp.DS_LOAD_B96) +ds_load_b128 = functools.partial(DS, DSOp.DS_LOAD_B128) +flat_load_u8 = functools.partial(FLAT, FLATOp.FLAT_LOAD_U8) +flat_load_i8 = functools.partial(FLAT, FLATOp.FLAT_LOAD_I8) +flat_load_u16 = functools.partial(FLAT, FLATOp.FLAT_LOAD_U16) +flat_load_i16 = functools.partial(FLAT, FLATOp.FLAT_LOAD_I16) +flat_load_b32 = functools.partial(FLAT, FLATOp.FLAT_LOAD_B32) +flat_load_b64 = functools.partial(FLAT, FLATOp.FLAT_LOAD_B64) +flat_load_b96 = functools.partial(FLAT, FLATOp.FLAT_LOAD_B96) +flat_load_b128 = functools.partial(FLAT, FLATOp.FLAT_LOAD_B128) +flat_store_b8 = functools.partial(FLAT, FLATOp.FLAT_STORE_B8) +flat_store_b16 = functools.partial(FLAT, FLATOp.FLAT_STORE_B16) +flat_store_b32 = functools.partial(FLAT, FLATOp.FLAT_STORE_B32) +flat_store_b64 = functools.partial(FLAT, FLATOp.FLAT_STORE_B64) +flat_store_b96 = functools.partial(FLAT, FLATOp.FLAT_STORE_B96) +flat_store_b128 = functools.partial(FLAT, FLATOp.FLAT_STORE_B128) +flat_load_d16_u8 = functools.partial(FLAT, FLATOp.FLAT_LOAD_D16_U8) +flat_load_d16_i8 = functools.partial(FLAT, FLATOp.FLAT_LOAD_D16_I8) +flat_load_d16_b16 = functools.partial(FLAT, FLATOp.FLAT_LOAD_D16_B16) +flat_load_d16_hi_u8 = functools.partial(FLAT, FLATOp.FLAT_LOAD_D16_HI_U8) +flat_load_d16_hi_i8 = functools.partial(FLAT, FLATOp.FLAT_LOAD_D16_HI_I8) +flat_load_d16_hi_b16 = functools.partial(FLAT, FLATOp.FLAT_LOAD_D16_HI_B16) +flat_store_d16_hi_b8 = functools.partial(FLAT, FLATOp.FLAT_STORE_D16_HI_B8) +flat_store_d16_hi_b16 = functools.partial(FLAT, FLATOp.FLAT_STORE_D16_HI_B16) +global_load_addtid_b32 = functools.partial(FLAT, FLATOp.GLOBAL_LOAD_ADDTID_B32) +global_store_addtid_b32 = functools.partial(FLAT, FLATOp.GLOBAL_STORE_ADDTID_B32) +flat_atomic_swap_b32 = functools.partial(FLAT, FLATOp.FLAT_ATOMIC_SWAP_B32) +flat_atomic_cmpswap_b32 = functools.partial(FLAT, FLATOp.FLAT_ATOMIC_CMPSWAP_B32) +flat_atomic_add_u32 = functools.partial(FLAT, FLATOp.FLAT_ATOMIC_ADD_U32) +flat_atomic_sub_u32 = functools.partial(FLAT, FLATOp.FLAT_ATOMIC_SUB_U32) +flat_atomic_csub_u32 = functools.partial(FLAT, FLATOp.FLAT_ATOMIC_CSUB_U32) +flat_atomic_min_i32 = functools.partial(FLAT, FLATOp.FLAT_ATOMIC_MIN_I32) +flat_atomic_min_u32 = functools.partial(FLAT, FLATOp.FLAT_ATOMIC_MIN_U32) +flat_atomic_max_i32 = functools.partial(FLAT, FLATOp.FLAT_ATOMIC_MAX_I32) +flat_atomic_max_u32 = functools.partial(FLAT, FLATOp.FLAT_ATOMIC_MAX_U32) +flat_atomic_and_b32 = functools.partial(FLAT, FLATOp.FLAT_ATOMIC_AND_B32) +flat_atomic_or_b32 = functools.partial(FLAT, FLATOp.FLAT_ATOMIC_OR_B32) +flat_atomic_xor_b32 = functools.partial(FLAT, FLATOp.FLAT_ATOMIC_XOR_B32) +flat_atomic_inc_u32 = functools.partial(FLAT, FLATOp.FLAT_ATOMIC_INC_U32) +flat_atomic_dec_u32 = functools.partial(FLAT, FLATOp.FLAT_ATOMIC_DEC_U32) +flat_atomic_swap_b64 = functools.partial(FLAT, FLATOp.FLAT_ATOMIC_SWAP_B64) +flat_atomic_cmpswap_b64 = functools.partial(FLAT, FLATOp.FLAT_ATOMIC_CMPSWAP_B64) +flat_atomic_add_u64 = functools.partial(FLAT, FLATOp.FLAT_ATOMIC_ADD_U64) +flat_atomic_sub_u64 = functools.partial(FLAT, FLATOp.FLAT_ATOMIC_SUB_U64) +flat_atomic_min_i64 = functools.partial(FLAT, FLATOp.FLAT_ATOMIC_MIN_I64) +flat_atomic_min_u64 = functools.partial(FLAT, FLATOp.FLAT_ATOMIC_MIN_U64) +flat_atomic_max_i64 = functools.partial(FLAT, FLATOp.FLAT_ATOMIC_MAX_I64) +flat_atomic_max_u64 = functools.partial(FLAT, FLATOp.FLAT_ATOMIC_MAX_U64) +flat_atomic_and_b64 = functools.partial(FLAT, FLATOp.FLAT_ATOMIC_AND_B64) +flat_atomic_or_b64 = functools.partial(FLAT, FLATOp.FLAT_ATOMIC_OR_B64) +flat_atomic_xor_b64 = functools.partial(FLAT, FLATOp.FLAT_ATOMIC_XOR_B64) +flat_atomic_inc_u64 = functools.partial(FLAT, FLATOp.FLAT_ATOMIC_INC_U64) +flat_atomic_dec_u64 = functools.partial(FLAT, FLATOp.FLAT_ATOMIC_DEC_U64) +flat_atomic_cmpswap_f32 = functools.partial(FLAT, FLATOp.FLAT_ATOMIC_CMPSWAP_F32) +flat_atomic_min_f32 = functools.partial(FLAT, FLATOp.FLAT_ATOMIC_MIN_F32) +flat_atomic_max_f32 = functools.partial(FLAT, FLATOp.FLAT_ATOMIC_MAX_F32) +flat_atomic_add_f32 = functools.partial(FLAT, FLATOp.FLAT_ATOMIC_ADD_F32) +global_load_u8 = functools.partial(FLAT, GLOBALOp.GLOBAL_LOAD_U8, seg=2) +global_load_i8 = functools.partial(FLAT, GLOBALOp.GLOBAL_LOAD_I8, seg=2) +global_load_u16 = functools.partial(FLAT, GLOBALOp.GLOBAL_LOAD_U16, seg=2) +global_load_i16 = functools.partial(FLAT, GLOBALOp.GLOBAL_LOAD_I16, seg=2) +global_load_b32 = functools.partial(FLAT, GLOBALOp.GLOBAL_LOAD_B32, seg=2) +global_load_b64 = functools.partial(FLAT, GLOBALOp.GLOBAL_LOAD_B64, seg=2) +global_load_b96 = functools.partial(FLAT, GLOBALOp.GLOBAL_LOAD_B96, seg=2) +global_load_b128 = functools.partial(FLAT, GLOBALOp.GLOBAL_LOAD_B128, seg=2) +global_store_b8 = functools.partial(FLAT, GLOBALOp.GLOBAL_STORE_B8, seg=2) +global_store_b16 = functools.partial(FLAT, GLOBALOp.GLOBAL_STORE_B16, seg=2) +global_store_b32 = functools.partial(FLAT, GLOBALOp.GLOBAL_STORE_B32, seg=2) +global_store_b64 = functools.partial(FLAT, GLOBALOp.GLOBAL_STORE_B64, seg=2) +global_store_b96 = functools.partial(FLAT, GLOBALOp.GLOBAL_STORE_B96, seg=2) +global_store_b128 = functools.partial(FLAT, GLOBALOp.GLOBAL_STORE_B128, seg=2) +global_load_d16_u8 = functools.partial(FLAT, GLOBALOp.GLOBAL_LOAD_D16_U8, seg=2) +global_load_d16_i8 = functools.partial(FLAT, GLOBALOp.GLOBAL_LOAD_D16_I8, seg=2) +global_load_d16_b16 = functools.partial(FLAT, GLOBALOp.GLOBAL_LOAD_D16_B16, seg=2) +global_load_d16_hi_u8 = functools.partial(FLAT, GLOBALOp.GLOBAL_LOAD_D16_HI_U8, seg=2) +global_load_d16_hi_i8 = functools.partial(FLAT, GLOBALOp.GLOBAL_LOAD_D16_HI_I8, seg=2) +global_load_d16_hi_b16 = functools.partial(FLAT, GLOBALOp.GLOBAL_LOAD_D16_HI_B16, seg=2) +global_store_d16_hi_b8 = functools.partial(FLAT, GLOBALOp.GLOBAL_STORE_D16_HI_B8, seg=2) +global_store_d16_hi_b16 = functools.partial(FLAT, GLOBALOp.GLOBAL_STORE_D16_HI_B16, seg=2) +global_load_addtid_b32 = functools.partial(FLAT, GLOBALOp.GLOBAL_LOAD_ADDTID_B32, seg=2) +global_store_addtid_b32 = functools.partial(FLAT, GLOBALOp.GLOBAL_STORE_ADDTID_B32, seg=2) +global_atomic_swap_b32 = functools.partial(FLAT, GLOBALOp.GLOBAL_ATOMIC_SWAP_B32, seg=2) +global_atomic_cmpswap_b32 = functools.partial(FLAT, GLOBALOp.GLOBAL_ATOMIC_CMPSWAP_B32, seg=2) +global_atomic_add_u32 = functools.partial(FLAT, GLOBALOp.GLOBAL_ATOMIC_ADD_U32, seg=2) +global_atomic_sub_u32 = functools.partial(FLAT, GLOBALOp.GLOBAL_ATOMIC_SUB_U32, seg=2) +global_atomic_csub_u32 = functools.partial(FLAT, GLOBALOp.GLOBAL_ATOMIC_CSUB_U32, seg=2) +global_atomic_min_i32 = functools.partial(FLAT, GLOBALOp.GLOBAL_ATOMIC_MIN_I32, seg=2) +global_atomic_min_u32 = functools.partial(FLAT, GLOBALOp.GLOBAL_ATOMIC_MIN_U32, seg=2) +global_atomic_max_i32 = functools.partial(FLAT, GLOBALOp.GLOBAL_ATOMIC_MAX_I32, seg=2) +global_atomic_max_u32 = functools.partial(FLAT, GLOBALOp.GLOBAL_ATOMIC_MAX_U32, seg=2) +global_atomic_and_b32 = functools.partial(FLAT, GLOBALOp.GLOBAL_ATOMIC_AND_B32, seg=2) +global_atomic_or_b32 = functools.partial(FLAT, GLOBALOp.GLOBAL_ATOMIC_OR_B32, seg=2) +global_atomic_xor_b32 = functools.partial(FLAT, GLOBALOp.GLOBAL_ATOMIC_XOR_B32, seg=2) +global_atomic_inc_u32 = functools.partial(FLAT, GLOBALOp.GLOBAL_ATOMIC_INC_U32, seg=2) +global_atomic_dec_u32 = functools.partial(FLAT, GLOBALOp.GLOBAL_ATOMIC_DEC_U32, seg=2) +global_atomic_swap_b64 = functools.partial(FLAT, GLOBALOp.GLOBAL_ATOMIC_SWAP_B64, seg=2) +global_atomic_cmpswap_b64 = functools.partial(FLAT, GLOBALOp.GLOBAL_ATOMIC_CMPSWAP_B64, seg=2) +global_atomic_add_u64 = functools.partial(FLAT, GLOBALOp.GLOBAL_ATOMIC_ADD_U64, seg=2) +global_atomic_sub_u64 = functools.partial(FLAT, GLOBALOp.GLOBAL_ATOMIC_SUB_U64, seg=2) +global_atomic_min_i64 = functools.partial(FLAT, GLOBALOp.GLOBAL_ATOMIC_MIN_I64, seg=2) +global_atomic_min_u64 = functools.partial(FLAT, GLOBALOp.GLOBAL_ATOMIC_MIN_U64, seg=2) +global_atomic_max_i64 = functools.partial(FLAT, GLOBALOp.GLOBAL_ATOMIC_MAX_I64, seg=2) +global_atomic_max_u64 = functools.partial(FLAT, GLOBALOp.GLOBAL_ATOMIC_MAX_U64, seg=2) +global_atomic_and_b64 = functools.partial(FLAT, GLOBALOp.GLOBAL_ATOMIC_AND_B64, seg=2) +global_atomic_or_b64 = functools.partial(FLAT, GLOBALOp.GLOBAL_ATOMIC_OR_B64, seg=2) +global_atomic_xor_b64 = functools.partial(FLAT, GLOBALOp.GLOBAL_ATOMIC_XOR_B64, seg=2) +global_atomic_inc_u64 = functools.partial(FLAT, GLOBALOp.GLOBAL_ATOMIC_INC_U64, seg=2) +global_atomic_dec_u64 = functools.partial(FLAT, GLOBALOp.GLOBAL_ATOMIC_DEC_U64, seg=2) +global_atomic_cmpswap_f32 = functools.partial(FLAT, GLOBALOp.GLOBAL_ATOMIC_CMPSWAP_F32, seg=2) +global_atomic_min_f32 = functools.partial(FLAT, GLOBALOp.GLOBAL_ATOMIC_MIN_F32, seg=2) +global_atomic_max_f32 = functools.partial(FLAT, GLOBALOp.GLOBAL_ATOMIC_MAX_F32, seg=2) +global_atomic_add_f32 = functools.partial(FLAT, GLOBALOp.GLOBAL_ATOMIC_ADD_F32, seg=2) +image_load = functools.partial(MIMG, MIMGOp.IMAGE_LOAD) +image_load_mip = functools.partial(MIMG, MIMGOp.IMAGE_LOAD_MIP) +image_load_pck = functools.partial(MIMG, MIMGOp.IMAGE_LOAD_PCK) +image_load_pck_sgn = functools.partial(MIMG, MIMGOp.IMAGE_LOAD_PCK_SGN) +image_load_mip_pck = functools.partial(MIMG, MIMGOp.IMAGE_LOAD_MIP_PCK) +image_load_mip_pck_sgn = functools.partial(MIMG, MIMGOp.IMAGE_LOAD_MIP_PCK_SGN) +image_store = functools.partial(MIMG, MIMGOp.IMAGE_STORE) +image_store_mip = functools.partial(MIMG, MIMGOp.IMAGE_STORE_MIP) +image_store_pck = functools.partial(MIMG, MIMGOp.IMAGE_STORE_PCK) +image_store_mip_pck = functools.partial(MIMG, MIMGOp.IMAGE_STORE_MIP_PCK) +image_atomic_swap = functools.partial(MIMG, MIMGOp.IMAGE_ATOMIC_SWAP) +image_atomic_cmpswap = functools.partial(MIMG, MIMGOp.IMAGE_ATOMIC_CMPSWAP) +image_atomic_add = functools.partial(MIMG, MIMGOp.IMAGE_ATOMIC_ADD) +image_atomic_sub = functools.partial(MIMG, MIMGOp.IMAGE_ATOMIC_SUB) +image_atomic_smin = functools.partial(MIMG, MIMGOp.IMAGE_ATOMIC_SMIN) +image_atomic_umin = functools.partial(MIMG, MIMGOp.IMAGE_ATOMIC_UMIN) +image_atomic_smax = functools.partial(MIMG, MIMGOp.IMAGE_ATOMIC_SMAX) +image_atomic_umax = functools.partial(MIMG, MIMGOp.IMAGE_ATOMIC_UMAX) +image_atomic_and = functools.partial(MIMG, MIMGOp.IMAGE_ATOMIC_AND) +image_atomic_or = functools.partial(MIMG, MIMGOp.IMAGE_ATOMIC_OR) +image_atomic_xor = functools.partial(MIMG, MIMGOp.IMAGE_ATOMIC_XOR) +image_atomic_inc = functools.partial(MIMG, MIMGOp.IMAGE_ATOMIC_INC) +image_atomic_dec = functools.partial(MIMG, MIMGOp.IMAGE_ATOMIC_DEC) +image_get_resinfo = functools.partial(MIMG, MIMGOp.IMAGE_GET_RESINFO) +image_msaa_load = functools.partial(MIMG, MIMGOp.IMAGE_MSAA_LOAD) +image_bvh_intersect_ray = functools.partial(MIMG, MIMGOp.IMAGE_BVH_INTERSECT_RAY) +image_bvh64_intersect_ray = functools.partial(MIMG, MIMGOp.IMAGE_BVH64_INTERSECT_RAY) +image_sample = functools.partial(MIMG, MIMGOp.IMAGE_SAMPLE) +image_sample_d = functools.partial(MIMG, MIMGOp.IMAGE_SAMPLE_D) +image_sample_l = functools.partial(MIMG, MIMGOp.IMAGE_SAMPLE_L) +image_sample_b = functools.partial(MIMG, MIMGOp.IMAGE_SAMPLE_B) +image_sample_lz = functools.partial(MIMG, MIMGOp.IMAGE_SAMPLE_LZ) +image_sample_c = functools.partial(MIMG, MIMGOp.IMAGE_SAMPLE_C) +image_sample_c_d = functools.partial(MIMG, MIMGOp.IMAGE_SAMPLE_C_D) +image_sample_c_l = functools.partial(MIMG, MIMGOp.IMAGE_SAMPLE_C_L) +image_sample_c_b = functools.partial(MIMG, MIMGOp.IMAGE_SAMPLE_C_B) +image_sample_c_lz = functools.partial(MIMG, MIMGOp.IMAGE_SAMPLE_C_LZ) +image_sample_o = functools.partial(MIMG, MIMGOp.IMAGE_SAMPLE_O) +image_sample_d_o = functools.partial(MIMG, MIMGOp.IMAGE_SAMPLE_D_O) +image_sample_l_o = functools.partial(MIMG, MIMGOp.IMAGE_SAMPLE_L_O) +image_sample_b_o = functools.partial(MIMG, MIMGOp.IMAGE_SAMPLE_B_O) +image_sample_lz_o = functools.partial(MIMG, MIMGOp.IMAGE_SAMPLE_LZ_O) +image_sample_c_o = functools.partial(MIMG, MIMGOp.IMAGE_SAMPLE_C_O) +image_sample_c_d_o = functools.partial(MIMG, MIMGOp.IMAGE_SAMPLE_C_D_O) +image_sample_c_l_o = functools.partial(MIMG, MIMGOp.IMAGE_SAMPLE_C_L_O) +image_sample_c_b_o = functools.partial(MIMG, MIMGOp.IMAGE_SAMPLE_C_B_O) +image_sample_c_lz_o = functools.partial(MIMG, MIMGOp.IMAGE_SAMPLE_C_LZ_O) +image_gather4 = functools.partial(MIMG, MIMGOp.IMAGE_GATHER4) +image_gather4_l = functools.partial(MIMG, MIMGOp.IMAGE_GATHER4_L) +image_gather4_b = functools.partial(MIMG, MIMGOp.IMAGE_GATHER4_B) +image_gather4_lz = functools.partial(MIMG, MIMGOp.IMAGE_GATHER4_LZ) +image_gather4_c = functools.partial(MIMG, MIMGOp.IMAGE_GATHER4_C) +image_gather4_c_lz = functools.partial(MIMG, MIMGOp.IMAGE_GATHER4_C_LZ) +image_gather4_o = functools.partial(MIMG, MIMGOp.IMAGE_GATHER4_O) +image_gather4_lz_o = functools.partial(MIMG, MIMGOp.IMAGE_GATHER4_LZ_O) +image_gather4_c_lz_o = functools.partial(MIMG, MIMGOp.IMAGE_GATHER4_C_LZ_O) +image_get_lod = functools.partial(MIMG, MIMGOp.IMAGE_GET_LOD) +image_sample_d_g16 = functools.partial(MIMG, MIMGOp.IMAGE_SAMPLE_D_G16) +image_sample_c_d_g16 = functools.partial(MIMG, MIMGOp.IMAGE_SAMPLE_C_D_G16) +image_sample_d_o_g16 = functools.partial(MIMG, MIMGOp.IMAGE_SAMPLE_D_O_G16) +image_sample_c_d_o_g16 = functools.partial(MIMG, MIMGOp.IMAGE_SAMPLE_C_D_O_G16) +image_sample_cl = functools.partial(MIMG, MIMGOp.IMAGE_SAMPLE_CL) +image_sample_d_cl = functools.partial(MIMG, MIMGOp.IMAGE_SAMPLE_D_CL) +image_sample_b_cl = functools.partial(MIMG, MIMGOp.IMAGE_SAMPLE_B_CL) +image_sample_c_cl = functools.partial(MIMG, MIMGOp.IMAGE_SAMPLE_C_CL) +image_sample_c_d_cl = functools.partial(MIMG, MIMGOp.IMAGE_SAMPLE_C_D_CL) +image_sample_c_b_cl = functools.partial(MIMG, MIMGOp.IMAGE_SAMPLE_C_B_CL) +image_sample_cl_o = functools.partial(MIMG, MIMGOp.IMAGE_SAMPLE_CL_O) +image_sample_d_cl_o = functools.partial(MIMG, MIMGOp.IMAGE_SAMPLE_D_CL_O) +image_sample_b_cl_o = functools.partial(MIMG, MIMGOp.IMAGE_SAMPLE_B_CL_O) +image_sample_c_cl_o = functools.partial(MIMG, MIMGOp.IMAGE_SAMPLE_C_CL_O) +image_sample_c_d_cl_o = functools.partial(MIMG, MIMGOp.IMAGE_SAMPLE_C_D_CL_O) +image_sample_c_b_cl_o = functools.partial(MIMG, MIMGOp.IMAGE_SAMPLE_C_B_CL_O) +image_sample_c_d_cl_g16 = functools.partial(MIMG, MIMGOp.IMAGE_SAMPLE_C_D_CL_G16) +image_sample_d_cl_o_g16 = functools.partial(MIMG, MIMGOp.IMAGE_SAMPLE_D_CL_O_G16) +image_sample_c_d_cl_o_g16 = functools.partial(MIMG, MIMGOp.IMAGE_SAMPLE_C_D_CL_O_G16) +image_sample_d_cl_g16 = functools.partial(MIMG, MIMGOp.IMAGE_SAMPLE_D_CL_G16) +image_gather4_cl = functools.partial(MIMG, MIMGOp.IMAGE_GATHER4_CL) +image_gather4_b_cl = functools.partial(MIMG, MIMGOp.IMAGE_GATHER4_B_CL) +image_gather4_c_cl = functools.partial(MIMG, MIMGOp.IMAGE_GATHER4_C_CL) +image_gather4_c_l = functools.partial(MIMG, MIMGOp.IMAGE_GATHER4_C_L) +image_gather4_c_b = functools.partial(MIMG, MIMGOp.IMAGE_GATHER4_C_B) +image_gather4_c_b_cl = functools.partial(MIMG, MIMGOp.IMAGE_GATHER4_C_B_CL) +image_gather4h = functools.partial(MIMG, MIMGOp.IMAGE_GATHER4H) +tbuffer_load_format_x = functools.partial(MTBUF, MTBUFOp.TBUFFER_LOAD_FORMAT_X) +tbuffer_load_format_xy = functools.partial(MTBUF, MTBUFOp.TBUFFER_LOAD_FORMAT_XY) +tbuffer_load_format_xyz = functools.partial(MTBUF, MTBUFOp.TBUFFER_LOAD_FORMAT_XYZ) +tbuffer_load_format_xyzw = functools.partial(MTBUF, MTBUFOp.TBUFFER_LOAD_FORMAT_XYZW) +tbuffer_store_format_x = functools.partial(MTBUF, MTBUFOp.TBUFFER_STORE_FORMAT_X) +tbuffer_store_format_xy = functools.partial(MTBUF, MTBUFOp.TBUFFER_STORE_FORMAT_XY) +tbuffer_store_format_xyz = functools.partial(MTBUF, MTBUFOp.TBUFFER_STORE_FORMAT_XYZ) +tbuffer_store_format_xyzw = functools.partial(MTBUF, MTBUFOp.TBUFFER_STORE_FORMAT_XYZW) +tbuffer_load_d16_format_x = functools.partial(MTBUF, MTBUFOp.TBUFFER_LOAD_D16_FORMAT_X) +tbuffer_load_d16_format_xy = functools.partial(MTBUF, MTBUFOp.TBUFFER_LOAD_D16_FORMAT_XY) +tbuffer_load_d16_format_xyz = functools.partial(MTBUF, MTBUFOp.TBUFFER_LOAD_D16_FORMAT_XYZ) +tbuffer_load_d16_format_xyzw = functools.partial(MTBUF, MTBUFOp.TBUFFER_LOAD_D16_FORMAT_XYZW) +tbuffer_store_d16_format_x = functools.partial(MTBUF, MTBUFOp.TBUFFER_STORE_D16_FORMAT_X) +tbuffer_store_d16_format_xy = functools.partial(MTBUF, MTBUFOp.TBUFFER_STORE_D16_FORMAT_XY) +tbuffer_store_d16_format_xyz = functools.partial(MTBUF, MTBUFOp.TBUFFER_STORE_D16_FORMAT_XYZ) +tbuffer_store_d16_format_xyzw = functools.partial(MTBUF, MTBUFOp.TBUFFER_STORE_D16_FORMAT_XYZW) +buffer_load_format_x = functools.partial(MUBUF, MUBUFOp.BUFFER_LOAD_FORMAT_X) +buffer_load_format_xy = functools.partial(MUBUF, MUBUFOp.BUFFER_LOAD_FORMAT_XY) +buffer_load_format_xyz = functools.partial(MUBUF, MUBUFOp.BUFFER_LOAD_FORMAT_XYZ) +buffer_load_format_xyzw = functools.partial(MUBUF, MUBUFOp.BUFFER_LOAD_FORMAT_XYZW) +buffer_store_format_x = functools.partial(MUBUF, MUBUFOp.BUFFER_STORE_FORMAT_X) +buffer_store_format_xy = functools.partial(MUBUF, MUBUFOp.BUFFER_STORE_FORMAT_XY) +buffer_store_format_xyz = functools.partial(MUBUF, MUBUFOp.BUFFER_STORE_FORMAT_XYZ) +buffer_store_format_xyzw = functools.partial(MUBUF, MUBUFOp.BUFFER_STORE_FORMAT_XYZW) +buffer_load_d16_format_x = functools.partial(MUBUF, MUBUFOp.BUFFER_LOAD_D16_FORMAT_X) +buffer_load_d16_format_xy = functools.partial(MUBUF, MUBUFOp.BUFFER_LOAD_D16_FORMAT_XY) +buffer_load_d16_format_xyz = functools.partial(MUBUF, MUBUFOp.BUFFER_LOAD_D16_FORMAT_XYZ) +buffer_load_d16_format_xyzw = functools.partial(MUBUF, MUBUFOp.BUFFER_LOAD_D16_FORMAT_XYZW) +buffer_store_d16_format_x = functools.partial(MUBUF, MUBUFOp.BUFFER_STORE_D16_FORMAT_X) +buffer_store_d16_format_xy = functools.partial(MUBUF, MUBUFOp.BUFFER_STORE_D16_FORMAT_XY) +buffer_store_d16_format_xyz = functools.partial(MUBUF, MUBUFOp.BUFFER_STORE_D16_FORMAT_XYZ) +buffer_store_d16_format_xyzw = functools.partial(MUBUF, MUBUFOp.BUFFER_STORE_D16_FORMAT_XYZW) +buffer_load_u8 = functools.partial(MUBUF, MUBUFOp.BUFFER_LOAD_U8) +buffer_load_i8 = functools.partial(MUBUF, MUBUFOp.BUFFER_LOAD_I8) +buffer_load_u16 = functools.partial(MUBUF, MUBUFOp.BUFFER_LOAD_U16) +buffer_load_i16 = functools.partial(MUBUF, MUBUFOp.BUFFER_LOAD_I16) +buffer_load_b32 = functools.partial(MUBUF, MUBUFOp.BUFFER_LOAD_B32) +buffer_load_b64 = functools.partial(MUBUF, MUBUFOp.BUFFER_LOAD_B64) +buffer_load_b96 = functools.partial(MUBUF, MUBUFOp.BUFFER_LOAD_B96) +buffer_load_b128 = functools.partial(MUBUF, MUBUFOp.BUFFER_LOAD_B128) +buffer_store_b8 = functools.partial(MUBUF, MUBUFOp.BUFFER_STORE_B8) +buffer_store_b16 = functools.partial(MUBUF, MUBUFOp.BUFFER_STORE_B16) +buffer_store_b32 = functools.partial(MUBUF, MUBUFOp.BUFFER_STORE_B32) +buffer_store_b64 = functools.partial(MUBUF, MUBUFOp.BUFFER_STORE_B64) +buffer_store_b96 = functools.partial(MUBUF, MUBUFOp.BUFFER_STORE_B96) +buffer_store_b128 = functools.partial(MUBUF, MUBUFOp.BUFFER_STORE_B128) +buffer_load_d16_u8 = functools.partial(MUBUF, MUBUFOp.BUFFER_LOAD_D16_U8) +buffer_load_d16_i8 = functools.partial(MUBUF, MUBUFOp.BUFFER_LOAD_D16_I8) +buffer_load_d16_b16 = functools.partial(MUBUF, MUBUFOp.BUFFER_LOAD_D16_B16) +buffer_load_d16_hi_u8 = functools.partial(MUBUF, MUBUFOp.BUFFER_LOAD_D16_HI_U8) +buffer_load_d16_hi_i8 = functools.partial(MUBUF, MUBUFOp.BUFFER_LOAD_D16_HI_I8) +buffer_load_d16_hi_b16 = functools.partial(MUBUF, MUBUFOp.BUFFER_LOAD_D16_HI_B16) +buffer_store_d16_hi_b8 = functools.partial(MUBUF, MUBUFOp.BUFFER_STORE_D16_HI_B8) +buffer_store_d16_hi_b16 = functools.partial(MUBUF, MUBUFOp.BUFFER_STORE_D16_HI_B16) +buffer_load_d16_hi_format_x = functools.partial(MUBUF, MUBUFOp.BUFFER_LOAD_D16_HI_FORMAT_X) +buffer_store_d16_hi_format_x = functools.partial(MUBUF, MUBUFOp.BUFFER_STORE_D16_HI_FORMAT_X) +buffer_gl0_inv = functools.partial(MUBUF, MUBUFOp.BUFFER_GL0_INV) +buffer_gl1_inv = functools.partial(MUBUF, MUBUFOp.BUFFER_GL1_INV) +buffer_atomic_swap_b32 = functools.partial(MUBUF, MUBUFOp.BUFFER_ATOMIC_SWAP_B32) +buffer_atomic_cmpswap_b32 = functools.partial(MUBUF, MUBUFOp.BUFFER_ATOMIC_CMPSWAP_B32) +buffer_atomic_add_u32 = functools.partial(MUBUF, MUBUFOp.BUFFER_ATOMIC_ADD_U32) +buffer_atomic_sub_u32 = functools.partial(MUBUF, MUBUFOp.BUFFER_ATOMIC_SUB_U32) +buffer_atomic_csub_u32 = functools.partial(MUBUF, MUBUFOp.BUFFER_ATOMIC_CSUB_U32) +buffer_atomic_min_i32 = functools.partial(MUBUF, MUBUFOp.BUFFER_ATOMIC_MIN_I32) +buffer_atomic_min_u32 = functools.partial(MUBUF, MUBUFOp.BUFFER_ATOMIC_MIN_U32) +buffer_atomic_max_i32 = functools.partial(MUBUF, MUBUFOp.BUFFER_ATOMIC_MAX_I32) +buffer_atomic_max_u32 = functools.partial(MUBUF, MUBUFOp.BUFFER_ATOMIC_MAX_U32) +buffer_atomic_and_b32 = functools.partial(MUBUF, MUBUFOp.BUFFER_ATOMIC_AND_B32) +buffer_atomic_or_b32 = functools.partial(MUBUF, MUBUFOp.BUFFER_ATOMIC_OR_B32) +buffer_atomic_xor_b32 = functools.partial(MUBUF, MUBUFOp.BUFFER_ATOMIC_XOR_B32) +buffer_atomic_inc_u32 = functools.partial(MUBUF, MUBUFOp.BUFFER_ATOMIC_INC_U32) +buffer_atomic_dec_u32 = functools.partial(MUBUF, MUBUFOp.BUFFER_ATOMIC_DEC_U32) +buffer_atomic_swap_b64 = functools.partial(MUBUF, MUBUFOp.BUFFER_ATOMIC_SWAP_B64) +buffer_atomic_cmpswap_b64 = functools.partial(MUBUF, MUBUFOp.BUFFER_ATOMIC_CMPSWAP_B64) +buffer_atomic_add_u64 = functools.partial(MUBUF, MUBUFOp.BUFFER_ATOMIC_ADD_U64) +buffer_atomic_sub_u64 = functools.partial(MUBUF, MUBUFOp.BUFFER_ATOMIC_SUB_U64) +buffer_atomic_min_i64 = functools.partial(MUBUF, MUBUFOp.BUFFER_ATOMIC_MIN_I64) +buffer_atomic_min_u64 = functools.partial(MUBUF, MUBUFOp.BUFFER_ATOMIC_MIN_U64) +buffer_atomic_max_i64 = functools.partial(MUBUF, MUBUFOp.BUFFER_ATOMIC_MAX_I64) +buffer_atomic_max_u64 = functools.partial(MUBUF, MUBUFOp.BUFFER_ATOMIC_MAX_U64) +buffer_atomic_and_b64 = functools.partial(MUBUF, MUBUFOp.BUFFER_ATOMIC_AND_B64) +buffer_atomic_or_b64 = functools.partial(MUBUF, MUBUFOp.BUFFER_ATOMIC_OR_B64) +buffer_atomic_xor_b64 = functools.partial(MUBUF, MUBUFOp.BUFFER_ATOMIC_XOR_B64) +buffer_atomic_inc_u64 = functools.partial(MUBUF, MUBUFOp.BUFFER_ATOMIC_INC_U64) +buffer_atomic_dec_u64 = functools.partial(MUBUF, MUBUFOp.BUFFER_ATOMIC_DEC_U64) +buffer_atomic_cmpswap_f32 = functools.partial(MUBUF, MUBUFOp.BUFFER_ATOMIC_CMPSWAP_F32) +buffer_atomic_min_f32 = functools.partial(MUBUF, MUBUFOp.BUFFER_ATOMIC_MIN_F32) +buffer_atomic_max_f32 = functools.partial(MUBUF, MUBUFOp.BUFFER_ATOMIC_MAX_F32) +buffer_atomic_add_f32 = functools.partial(MUBUF, MUBUFOp.BUFFER_ATOMIC_ADD_F32) +scratch_load_u8 = functools.partial(FLAT, SCRATCHOp.SCRATCH_LOAD_U8, seg=1) +scratch_load_i8 = functools.partial(FLAT, SCRATCHOp.SCRATCH_LOAD_I8, seg=1) +scratch_load_u16 = functools.partial(FLAT, SCRATCHOp.SCRATCH_LOAD_U16, seg=1) +scratch_load_i16 = functools.partial(FLAT, SCRATCHOp.SCRATCH_LOAD_I16, seg=1) +scratch_load_b32 = functools.partial(FLAT, SCRATCHOp.SCRATCH_LOAD_B32, seg=1) +scratch_load_b64 = functools.partial(FLAT, SCRATCHOp.SCRATCH_LOAD_B64, seg=1) +scratch_load_b96 = functools.partial(FLAT, SCRATCHOp.SCRATCH_LOAD_B96, seg=1) +scratch_load_b128 = functools.partial(FLAT, SCRATCHOp.SCRATCH_LOAD_B128, seg=1) +scratch_store_b8 = functools.partial(FLAT, SCRATCHOp.SCRATCH_STORE_B8, seg=1) +scratch_store_b16 = functools.partial(FLAT, SCRATCHOp.SCRATCH_STORE_B16, seg=1) +scratch_store_b32 = functools.partial(FLAT, SCRATCHOp.SCRATCH_STORE_B32, seg=1) +scratch_store_b64 = functools.partial(FLAT, SCRATCHOp.SCRATCH_STORE_B64, seg=1) +scratch_store_b96 = functools.partial(FLAT, SCRATCHOp.SCRATCH_STORE_B96, seg=1) +scratch_store_b128 = functools.partial(FLAT, SCRATCHOp.SCRATCH_STORE_B128, seg=1) +scratch_load_d16_u8 = functools.partial(FLAT, SCRATCHOp.SCRATCH_LOAD_D16_U8, seg=1) +scratch_load_d16_i8 = functools.partial(FLAT, SCRATCHOp.SCRATCH_LOAD_D16_I8, seg=1) +scratch_load_d16_b16 = functools.partial(FLAT, SCRATCHOp.SCRATCH_LOAD_D16_B16, seg=1) +scratch_load_d16_hi_u8 = functools.partial(FLAT, SCRATCHOp.SCRATCH_LOAD_D16_HI_U8, seg=1) +scratch_load_d16_hi_i8 = functools.partial(FLAT, SCRATCHOp.SCRATCH_LOAD_D16_HI_I8, seg=1) +scratch_load_d16_hi_b16 = functools.partial(FLAT, SCRATCHOp.SCRATCH_LOAD_D16_HI_B16, seg=1) +scratch_store_d16_hi_b8 = functools.partial(FLAT, SCRATCHOp.SCRATCH_STORE_D16_HI_B8, seg=1) +scratch_store_d16_hi_b16 = functools.partial(FLAT, SCRATCHOp.SCRATCH_STORE_D16_HI_B16, seg=1) +s_load_b32 = functools.partial(SMEM, SMEMOp.S_LOAD_B32) +s_load_b64 = functools.partial(SMEM, SMEMOp.S_LOAD_B64) +s_load_b128 = functools.partial(SMEM, SMEMOp.S_LOAD_B128) +s_load_b256 = functools.partial(SMEM, SMEMOp.S_LOAD_B256) +s_load_b512 = functools.partial(SMEM, SMEMOp.S_LOAD_B512) +s_buffer_load_b32 = functools.partial(SMEM, SMEMOp.S_BUFFER_LOAD_B32) +s_buffer_load_b64 = functools.partial(SMEM, SMEMOp.S_BUFFER_LOAD_B64) +s_buffer_load_b128 = functools.partial(SMEM, SMEMOp.S_BUFFER_LOAD_B128) +s_buffer_load_b256 = functools.partial(SMEM, SMEMOp.S_BUFFER_LOAD_B256) +s_buffer_load_b512 = functools.partial(SMEM, SMEMOp.S_BUFFER_LOAD_B512) +s_gl1_inv = functools.partial(SMEM, SMEMOp.S_GL1_INV) +s_dcache_inv = functools.partial(SMEM, SMEMOp.S_DCACHE_INV) +s_mov_b32 = functools.partial(SOP1, SOP1Op.S_MOV_B32) +s_mov_b64 = functools.partial(SOP1, SOP1Op.S_MOV_B64) +s_cmov_b32 = functools.partial(SOP1, SOP1Op.S_CMOV_B32) +s_cmov_b64 = functools.partial(SOP1, SOP1Op.S_CMOV_B64) +s_brev_b32 = functools.partial(SOP1, SOP1Op.S_BREV_B32) +s_brev_b64 = functools.partial(SOP1, SOP1Op.S_BREV_B64) +s_ctz_i32_b32 = functools.partial(SOP1, SOP1Op.S_CTZ_I32_B32) +s_ctz_i32_b64 = functools.partial(SOP1, SOP1Op.S_CTZ_I32_B64) +s_clz_i32_u32 = functools.partial(SOP1, SOP1Op.S_CLZ_I32_U32) +s_clz_i32_u64 = functools.partial(SOP1, SOP1Op.S_CLZ_I32_U64) +s_cls_i32 = functools.partial(SOP1, SOP1Op.S_CLS_I32) +s_cls_i32_i64 = functools.partial(SOP1, SOP1Op.S_CLS_I32_I64) +s_sext_i32_i8 = functools.partial(SOP1, SOP1Op.S_SEXT_I32_I8) +s_sext_i32_i16 = functools.partial(SOP1, SOP1Op.S_SEXT_I32_I16) +s_bitset0_b32 = functools.partial(SOP1, SOP1Op.S_BITSET0_B32) +s_bitset0_b64 = functools.partial(SOP1, SOP1Op.S_BITSET0_B64) +s_bitset1_b32 = functools.partial(SOP1, SOP1Op.S_BITSET1_B32) +s_bitset1_b64 = functools.partial(SOP1, SOP1Op.S_BITSET1_B64) +s_bitreplicate_b64_b32 = functools.partial(SOP1, SOP1Op.S_BITREPLICATE_B64_B32) +s_abs_i32 = functools.partial(SOP1, SOP1Op.S_ABS_I32) +s_bcnt0_i32_b32 = functools.partial(SOP1, SOP1Op.S_BCNT0_I32_B32) +s_bcnt0_i32_b64 = functools.partial(SOP1, SOP1Op.S_BCNT0_I32_B64) +s_bcnt1_i32_b32 = functools.partial(SOP1, SOP1Op.S_BCNT1_I32_B32) +s_bcnt1_i32_b64 = functools.partial(SOP1, SOP1Op.S_BCNT1_I32_B64) +s_quadmask_b32 = functools.partial(SOP1, SOP1Op.S_QUADMASK_B32) +s_quadmask_b64 = functools.partial(SOP1, SOP1Op.S_QUADMASK_B64) +s_wqm_b32 = functools.partial(SOP1, SOP1Op.S_WQM_B32) +s_wqm_b64 = functools.partial(SOP1, SOP1Op.S_WQM_B64) +s_not_b32 = functools.partial(SOP1, SOP1Op.S_NOT_B32) +s_not_b64 = functools.partial(SOP1, SOP1Op.S_NOT_B64) +s_and_saveexec_b32 = functools.partial(SOP1, SOP1Op.S_AND_SAVEEXEC_B32) +s_and_saveexec_b64 = functools.partial(SOP1, SOP1Op.S_AND_SAVEEXEC_B64) +s_or_saveexec_b32 = functools.partial(SOP1, SOP1Op.S_OR_SAVEEXEC_B32) +s_or_saveexec_b64 = functools.partial(SOP1, SOP1Op.S_OR_SAVEEXEC_B64) +s_xor_saveexec_b32 = functools.partial(SOP1, SOP1Op.S_XOR_SAVEEXEC_B32) +s_xor_saveexec_b64 = functools.partial(SOP1, SOP1Op.S_XOR_SAVEEXEC_B64) +s_nand_saveexec_b32 = functools.partial(SOP1, SOP1Op.S_NAND_SAVEEXEC_B32) +s_nand_saveexec_b64 = functools.partial(SOP1, SOP1Op.S_NAND_SAVEEXEC_B64) +s_nor_saveexec_b32 = functools.partial(SOP1, SOP1Op.S_NOR_SAVEEXEC_B32) +s_nor_saveexec_b64 = functools.partial(SOP1, SOP1Op.S_NOR_SAVEEXEC_B64) +s_xnor_saveexec_b32 = functools.partial(SOP1, SOP1Op.S_XNOR_SAVEEXEC_B32) +s_xnor_saveexec_b64 = functools.partial(SOP1, SOP1Op.S_XNOR_SAVEEXEC_B64) +s_and_not0_saveexec_b32 = functools.partial(SOP1, SOP1Op.S_AND_NOT0_SAVEEXEC_B32) +s_and_not0_saveexec_b64 = functools.partial(SOP1, SOP1Op.S_AND_NOT0_SAVEEXEC_B64) +s_or_not0_saveexec_b32 = functools.partial(SOP1, SOP1Op.S_OR_NOT0_SAVEEXEC_B32) +s_or_not0_saveexec_b64 = functools.partial(SOP1, SOP1Op.S_OR_NOT0_SAVEEXEC_B64) +s_and_not1_saveexec_b32 = functools.partial(SOP1, SOP1Op.S_AND_NOT1_SAVEEXEC_B32) +s_and_not1_saveexec_b64 = functools.partial(SOP1, SOP1Op.S_AND_NOT1_SAVEEXEC_B64) +s_or_not1_saveexec_b32 = functools.partial(SOP1, SOP1Op.S_OR_NOT1_SAVEEXEC_B32) +s_or_not1_saveexec_b64 = functools.partial(SOP1, SOP1Op.S_OR_NOT1_SAVEEXEC_B64) +s_and_not0_wrexec_b32 = functools.partial(SOP1, SOP1Op.S_AND_NOT0_WREXEC_B32) +s_and_not0_wrexec_b64 = functools.partial(SOP1, SOP1Op.S_AND_NOT0_WREXEC_B64) +s_and_not1_wrexec_b32 = functools.partial(SOP1, SOP1Op.S_AND_NOT1_WREXEC_B32) +s_and_not1_wrexec_b64 = functools.partial(SOP1, SOP1Op.S_AND_NOT1_WREXEC_B64) +s_movrels_b32 = functools.partial(SOP1, SOP1Op.S_MOVRELS_B32) +s_movrels_b64 = functools.partial(SOP1, SOP1Op.S_MOVRELS_B64) +s_movreld_b32 = functools.partial(SOP1, SOP1Op.S_MOVRELD_B32) +s_movreld_b64 = functools.partial(SOP1, SOP1Op.S_MOVRELD_B64) +s_movrelsd_2_b32 = functools.partial(SOP1, SOP1Op.S_MOVRELSD_2_B32) +s_getpc_b64 = functools.partial(SOP1, SOP1Op.S_GETPC_B64) +s_setpc_b64 = functools.partial(SOP1, SOP1Op.S_SETPC_B64) +s_swappc_b64 = functools.partial(SOP1, SOP1Op.S_SWAPPC_B64) +s_rfe_b64 = functools.partial(SOP1, SOP1Op.S_RFE_B64) +s_sendmsg_rtn_b32 = functools.partial(SOP1, SOP1Op.S_SENDMSG_RTN_B32) +s_sendmsg_rtn_b64 = functools.partial(SOP1, SOP1Op.S_SENDMSG_RTN_B64) +s_ceil_f32 = functools.partial(SOP1, SOP1Op.S_CEIL_F32) +s_floor_f32 = functools.partial(SOP1, SOP1Op.S_FLOOR_F32) +s_trunc_f32 = functools.partial(SOP1, SOP1Op.S_TRUNC_F32) +s_rndne_f32 = functools.partial(SOP1, SOP1Op.S_RNDNE_F32) +s_cvt_f32_i32 = functools.partial(SOP1, SOP1Op.S_CVT_F32_I32) +s_cvt_f32_u32 = functools.partial(SOP1, SOP1Op.S_CVT_F32_U32) +s_cvt_i32_f32 = functools.partial(SOP1, SOP1Op.S_CVT_I32_F32) +s_cvt_u32_f32 = functools.partial(SOP1, SOP1Op.S_CVT_U32_F32) +s_cvt_f16_f32 = functools.partial(SOP1, SOP1Op.S_CVT_F16_F32) +s_cvt_f32_f16 = functools.partial(SOP1, SOP1Op.S_CVT_F32_F16) +s_cvt_hi_f32_f16 = functools.partial(SOP1, SOP1Op.S_CVT_HI_F32_F16) +s_ceil_f16 = functools.partial(SOP1, SOP1Op.S_CEIL_F16) +s_floor_f16 = functools.partial(SOP1, SOP1Op.S_FLOOR_F16) +s_trunc_f16 = functools.partial(SOP1, SOP1Op.S_TRUNC_F16) +s_rndne_f16 = functools.partial(SOP1, SOP1Op.S_RNDNE_F16) +s_add_u32 = functools.partial(SOP2, SOP2Op.S_ADD_U32) +s_sub_u32 = functools.partial(SOP2, SOP2Op.S_SUB_U32) +s_add_i32 = functools.partial(SOP2, SOP2Op.S_ADD_I32) +s_sub_i32 = functools.partial(SOP2, SOP2Op.S_SUB_I32) +s_addc_u32 = functools.partial(SOP2, SOP2Op.S_ADDC_U32) +s_subb_u32 = functools.partial(SOP2, SOP2Op.S_SUBB_U32) +s_absdiff_i32 = functools.partial(SOP2, SOP2Op.S_ABSDIFF_I32) +s_lshl_b32 = functools.partial(SOP2, SOP2Op.S_LSHL_B32) +s_lshl_b64 = functools.partial(SOP2, SOP2Op.S_LSHL_B64) +s_lshr_b32 = functools.partial(SOP2, SOP2Op.S_LSHR_B32) +s_lshr_b64 = functools.partial(SOP2, SOP2Op.S_LSHR_B64) +s_ashr_i32 = functools.partial(SOP2, SOP2Op.S_ASHR_I32) +s_ashr_i64 = functools.partial(SOP2, SOP2Op.S_ASHR_I64) +s_lshl1_add_u32 = functools.partial(SOP2, SOP2Op.S_LSHL1_ADD_U32) +s_lshl2_add_u32 = functools.partial(SOP2, SOP2Op.S_LSHL2_ADD_U32) +s_lshl3_add_u32 = functools.partial(SOP2, SOP2Op.S_LSHL3_ADD_U32) +s_lshl4_add_u32 = functools.partial(SOP2, SOP2Op.S_LSHL4_ADD_U32) +s_min_i32 = functools.partial(SOP2, SOP2Op.S_MIN_I32) +s_min_u32 = functools.partial(SOP2, SOP2Op.S_MIN_U32) +s_max_i32 = functools.partial(SOP2, SOP2Op.S_MAX_I32) +s_max_u32 = functools.partial(SOP2, SOP2Op.S_MAX_U32) +s_and_b32 = functools.partial(SOP2, SOP2Op.S_AND_B32) +s_and_b64 = functools.partial(SOP2, SOP2Op.S_AND_B64) +s_or_b32 = functools.partial(SOP2, SOP2Op.S_OR_B32) +s_or_b64 = functools.partial(SOP2, SOP2Op.S_OR_B64) +s_xor_b32 = functools.partial(SOP2, SOP2Op.S_XOR_B32) +s_xor_b64 = functools.partial(SOP2, SOP2Op.S_XOR_B64) +s_nand_b32 = functools.partial(SOP2, SOP2Op.S_NAND_B32) +s_nand_b64 = functools.partial(SOP2, SOP2Op.S_NAND_B64) +s_nor_b32 = functools.partial(SOP2, SOP2Op.S_NOR_B32) +s_nor_b64 = functools.partial(SOP2, SOP2Op.S_NOR_B64) +s_xnor_b32 = functools.partial(SOP2, SOP2Op.S_XNOR_B32) +s_xnor_b64 = functools.partial(SOP2, SOP2Op.S_XNOR_B64) +s_and_not1_b32 = functools.partial(SOP2, SOP2Op.S_AND_NOT1_B32) +s_and_not1_b64 = functools.partial(SOP2, SOP2Op.S_AND_NOT1_B64) +s_or_not1_b32 = functools.partial(SOP2, SOP2Op.S_OR_NOT1_B32) +s_or_not1_b64 = functools.partial(SOP2, SOP2Op.S_OR_NOT1_B64) +s_bfe_u32 = functools.partial(SOP2, SOP2Op.S_BFE_U32) +s_bfe_i32 = functools.partial(SOP2, SOP2Op.S_BFE_I32) +s_bfe_u64 = functools.partial(SOP2, SOP2Op.S_BFE_U64) +s_bfe_i64 = functools.partial(SOP2, SOP2Op.S_BFE_I64) +s_bfm_b32 = functools.partial(SOP2, SOP2Op.S_BFM_B32) +s_bfm_b64 = functools.partial(SOP2, SOP2Op.S_BFM_B64) +s_mul_i32 = functools.partial(SOP2, SOP2Op.S_MUL_I32) +s_mul_hi_u32 = functools.partial(SOP2, SOP2Op.S_MUL_HI_U32) +s_mul_hi_i32 = functools.partial(SOP2, SOP2Op.S_MUL_HI_I32) +s_cselect_b32 = functools.partial(SOP2, SOP2Op.S_CSELECT_B32) +s_cselect_b64 = functools.partial(SOP2, SOP2Op.S_CSELECT_B64) +s_pack_ll_b32_b16 = functools.partial(SOP2, SOP2Op.S_PACK_LL_B32_B16) +s_pack_lh_b32_b16 = functools.partial(SOP2, SOP2Op.S_PACK_LH_B32_B16) +s_pack_hh_b32_b16 = functools.partial(SOP2, SOP2Op.S_PACK_HH_B32_B16) +s_pack_hl_b32_b16 = functools.partial(SOP2, SOP2Op.S_PACK_HL_B32_B16) +s_add_f32 = functools.partial(SOP2, SOP2Op.S_ADD_F32) +s_sub_f32 = functools.partial(SOP2, SOP2Op.S_SUB_F32) +s_min_f32 = functools.partial(SOP2, SOP2Op.S_MIN_F32) +s_max_f32 = functools.partial(SOP2, SOP2Op.S_MAX_F32) +s_mul_f32 = functools.partial(SOP2, SOP2Op.S_MUL_F32) +s_fmaak_f32 = functools.partial(SOP2, SOP2Op.S_FMAAK_F32) +s_fmamk_f32 = functools.partial(SOP2, SOP2Op.S_FMAMK_F32) +s_fmac_f32 = functools.partial(SOP2, SOP2Op.S_FMAC_F32) +s_cvt_pk_rtz_f16_f32 = functools.partial(SOP2, SOP2Op.S_CVT_PK_RTZ_F16_F32) +s_add_f16 = functools.partial(SOP2, SOP2Op.S_ADD_F16) +s_sub_f16 = functools.partial(SOP2, SOP2Op.S_SUB_F16) +s_min_f16 = functools.partial(SOP2, SOP2Op.S_MIN_F16) +s_max_f16 = functools.partial(SOP2, SOP2Op.S_MAX_F16) +s_mul_f16 = functools.partial(SOP2, SOP2Op.S_MUL_F16) +s_fmac_f16 = functools.partial(SOP2, SOP2Op.S_FMAC_F16) +s_cmp_eq_i32 = functools.partial(SOPC, SOPCOp.S_CMP_EQ_I32) +s_cmp_lg_i32 = functools.partial(SOPC, SOPCOp.S_CMP_LG_I32) +s_cmp_gt_i32 = functools.partial(SOPC, SOPCOp.S_CMP_GT_I32) +s_cmp_ge_i32 = functools.partial(SOPC, SOPCOp.S_CMP_GE_I32) +s_cmp_lt_i32 = functools.partial(SOPC, SOPCOp.S_CMP_LT_I32) +s_cmp_le_i32 = functools.partial(SOPC, SOPCOp.S_CMP_LE_I32) +s_cmp_eq_u32 = functools.partial(SOPC, SOPCOp.S_CMP_EQ_U32) +s_cmp_lg_u32 = functools.partial(SOPC, SOPCOp.S_CMP_LG_U32) +s_cmp_gt_u32 = functools.partial(SOPC, SOPCOp.S_CMP_GT_U32) +s_cmp_ge_u32 = functools.partial(SOPC, SOPCOp.S_CMP_GE_U32) +s_cmp_lt_u32 = functools.partial(SOPC, SOPCOp.S_CMP_LT_U32) +s_cmp_le_u32 = functools.partial(SOPC, SOPCOp.S_CMP_LE_U32) +s_bitcmp0_b32 = functools.partial(SOPC, SOPCOp.S_BITCMP0_B32) +s_bitcmp1_b32 = functools.partial(SOPC, SOPCOp.S_BITCMP1_B32) +s_bitcmp0_b64 = functools.partial(SOPC, SOPCOp.S_BITCMP0_B64) +s_bitcmp1_b64 = functools.partial(SOPC, SOPCOp.S_BITCMP1_B64) +s_cmp_eq_u64 = functools.partial(SOPC, SOPCOp.S_CMP_EQ_U64) +s_cmp_lg_u64 = functools.partial(SOPC, SOPCOp.S_CMP_LG_U64) +s_cmp_lt_f32 = functools.partial(SOPC, SOPCOp.S_CMP_LT_F32) +s_cmp_eq_f32 = functools.partial(SOPC, SOPCOp.S_CMP_EQ_F32) +s_cmp_le_f32 = functools.partial(SOPC, SOPCOp.S_CMP_LE_F32) +s_cmp_gt_f32 = functools.partial(SOPC, SOPCOp.S_CMP_GT_F32) +s_cmp_lg_f32 = functools.partial(SOPC, SOPCOp.S_CMP_LG_F32) +s_cmp_ge_f32 = functools.partial(SOPC, SOPCOp.S_CMP_GE_F32) +s_cmp_o_f32 = functools.partial(SOPC, SOPCOp.S_CMP_O_F32) +s_cmp_u_f32 = functools.partial(SOPC, SOPCOp.S_CMP_U_F32) +s_cmp_nge_f32 = functools.partial(SOPC, SOPCOp.S_CMP_NGE_F32) +s_cmp_nlg_f32 = functools.partial(SOPC, SOPCOp.S_CMP_NLG_F32) +s_cmp_ngt_f32 = functools.partial(SOPC, SOPCOp.S_CMP_NGT_F32) +s_cmp_nle_f32 = functools.partial(SOPC, SOPCOp.S_CMP_NLE_F32) +s_cmp_neq_f32 = functools.partial(SOPC, SOPCOp.S_CMP_NEQ_F32) +s_cmp_nlt_f32 = functools.partial(SOPC, SOPCOp.S_CMP_NLT_F32) +s_cmp_lt_f16 = functools.partial(SOPC, SOPCOp.S_CMP_LT_F16) +s_cmp_eq_f16 = functools.partial(SOPC, SOPCOp.S_CMP_EQ_F16) +s_cmp_le_f16 = functools.partial(SOPC, SOPCOp.S_CMP_LE_F16) +s_cmp_gt_f16 = functools.partial(SOPC, SOPCOp.S_CMP_GT_F16) +s_cmp_lg_f16 = functools.partial(SOPC, SOPCOp.S_CMP_LG_F16) +s_cmp_ge_f16 = functools.partial(SOPC, SOPCOp.S_CMP_GE_F16) +s_cmp_o_f16 = functools.partial(SOPC, SOPCOp.S_CMP_O_F16) +s_cmp_u_f16 = functools.partial(SOPC, SOPCOp.S_CMP_U_F16) +s_cmp_nge_f16 = functools.partial(SOPC, SOPCOp.S_CMP_NGE_F16) +s_cmp_nlg_f16 = functools.partial(SOPC, SOPCOp.S_CMP_NLG_F16) +s_cmp_ngt_f16 = functools.partial(SOPC, SOPCOp.S_CMP_NGT_F16) +s_cmp_nle_f16 = functools.partial(SOPC, SOPCOp.S_CMP_NLE_F16) +s_cmp_neq_f16 = functools.partial(SOPC, SOPCOp.S_CMP_NEQ_F16) +s_cmp_nlt_f16 = functools.partial(SOPC, SOPCOp.S_CMP_NLT_F16) +s_movk_i32 = functools.partial(SOPK, SOPKOp.S_MOVK_I32) +s_version = functools.partial(SOPK, SOPKOp.S_VERSION) +s_cmovk_i32 = functools.partial(SOPK, SOPKOp.S_CMOVK_I32) +s_cmpk_eq_i32 = functools.partial(SOPK, SOPKOp.S_CMPK_EQ_I32) +s_cmpk_lg_i32 = functools.partial(SOPK, SOPKOp.S_CMPK_LG_I32) +s_cmpk_gt_i32 = functools.partial(SOPK, SOPKOp.S_CMPK_GT_I32) +s_cmpk_ge_i32 = functools.partial(SOPK, SOPKOp.S_CMPK_GE_I32) +s_cmpk_lt_i32 = functools.partial(SOPK, SOPKOp.S_CMPK_LT_I32) +s_cmpk_le_i32 = functools.partial(SOPK, SOPKOp.S_CMPK_LE_I32) +s_cmpk_eq_u32 = functools.partial(SOPK, SOPKOp.S_CMPK_EQ_U32) +s_cmpk_lg_u32 = functools.partial(SOPK, SOPKOp.S_CMPK_LG_U32) +s_cmpk_gt_u32 = functools.partial(SOPK, SOPKOp.S_CMPK_GT_U32) +s_cmpk_ge_u32 = functools.partial(SOPK, SOPKOp.S_CMPK_GE_U32) +s_cmpk_lt_u32 = functools.partial(SOPK, SOPKOp.S_CMPK_LT_U32) +s_cmpk_le_u32 = functools.partial(SOPK, SOPKOp.S_CMPK_LE_U32) +s_addk_i32 = functools.partial(SOPK, SOPKOp.S_ADDK_I32) +s_mulk_i32 = functools.partial(SOPK, SOPKOp.S_MULK_I32) +s_getreg_b32 = functools.partial(SOPK, SOPKOp.S_GETREG_B32) +s_setreg_b32 = functools.partial(SOPK, SOPKOp.S_SETREG_B32) +s_setreg_imm32_b32 = functools.partial(SOPK, SOPKOp.S_SETREG_IMM32_B32) +s_call_b64 = functools.partial(SOPK, SOPKOp.S_CALL_B64) +s_waitcnt_vscnt = functools.partial(SOPK, SOPKOp.S_WAITCNT_VSCNT) +s_waitcnt_vmcnt = functools.partial(SOPK, SOPKOp.S_WAITCNT_VMCNT) +s_waitcnt_expcnt = functools.partial(SOPK, SOPKOp.S_WAITCNT_EXPCNT) +s_waitcnt_lgkmcnt = functools.partial(SOPK, SOPKOp.S_WAITCNT_LGKMCNT) +s_nop = functools.partial(SOPP, SOPPOp.S_NOP) +s_setkill = functools.partial(SOPP, SOPPOp.S_SETKILL) +s_sethalt = functools.partial(SOPP, SOPPOp.S_SETHALT) +s_sleep = functools.partial(SOPP, SOPPOp.S_SLEEP) +s_set_inst_prefetch_distance = functools.partial(SOPP, SOPPOp.S_SET_INST_PREFETCH_DISTANCE) +s_clause = functools.partial(SOPP, SOPPOp.S_CLAUSE) +s_delay_alu = functools.partial(SOPP, SOPPOp.S_DELAY_ALU) +s_waitcnt_depctr = functools.partial(SOPP, SOPPOp.S_WAITCNT_DEPCTR) +s_waitcnt = functools.partial(SOPP, SOPPOp.S_WAITCNT) +s_wait_idle = functools.partial(SOPP, SOPPOp.S_WAIT_IDLE) +s_wait_event = functools.partial(SOPP, SOPPOp.S_WAIT_EVENT) +s_trap = functools.partial(SOPP, SOPPOp.S_TRAP) +s_round_mode = functools.partial(SOPP, SOPPOp.S_ROUND_MODE) +s_denorm_mode = functools.partial(SOPP, SOPPOp.S_DENORM_MODE) +s_code_end = functools.partial(SOPP, SOPPOp.S_CODE_END) +s_branch = functools.partial(SOPP, SOPPOp.S_BRANCH) +s_cbranch_scc0 = functools.partial(SOPP, SOPPOp.S_CBRANCH_SCC0) +s_cbranch_scc1 = functools.partial(SOPP, SOPPOp.S_CBRANCH_SCC1) +s_cbranch_vccz = functools.partial(SOPP, SOPPOp.S_CBRANCH_VCCZ) +s_cbranch_vccnz = functools.partial(SOPP, SOPPOp.S_CBRANCH_VCCNZ) +s_cbranch_execz = functools.partial(SOPP, SOPPOp.S_CBRANCH_EXECZ) +s_cbranch_execnz = functools.partial(SOPP, SOPPOp.S_CBRANCH_EXECNZ) +s_cbranch_cdbgsys = functools.partial(SOPP, SOPPOp.S_CBRANCH_CDBGSYS) +s_cbranch_cdbguser = functools.partial(SOPP, SOPPOp.S_CBRANCH_CDBGUSER) +s_cbranch_cdbgsys_or_user = functools.partial(SOPP, SOPPOp.S_CBRANCH_CDBGSYS_OR_USER) +s_cbranch_cdbgsys_and_user = functools.partial(SOPP, SOPPOp.S_CBRANCH_CDBGSYS_AND_USER) +s_endpgm = functools.partial(SOPP, SOPPOp.S_ENDPGM) +s_endpgm_saved = functools.partial(SOPP, SOPPOp.S_ENDPGM_SAVED) +s_endpgm_ordered_ps_done = functools.partial(SOPP, SOPPOp.S_ENDPGM_ORDERED_PS_DONE) +s_wakeup = functools.partial(SOPP, SOPPOp.S_WAKEUP) +s_setprio = functools.partial(SOPP, SOPPOp.S_SETPRIO) +s_sendmsg = functools.partial(SOPP, SOPPOp.S_SENDMSG) +s_sendmsghalt = functools.partial(SOPP, SOPPOp.S_SENDMSGHALT) +s_incperflevel = functools.partial(SOPP, SOPPOp.S_INCPERFLEVEL) +s_decperflevel = functools.partial(SOPP, SOPPOp.S_DECPERFLEVEL) +s_icache_inv = functools.partial(SOPP, SOPPOp.S_ICACHE_INV) +s_barrier = functools.partial(SOPP, SOPPOp.S_BARRIER) +v_interp_p10_f32 = functools.partial(VINTERP, VINTERPOp.V_INTERP_P10_F32) +v_interp_p2_f32 = functools.partial(VINTERP, VINTERPOp.V_INTERP_P2_F32) +v_interp_p10_f16_f32 = functools.partial(VINTERP, VINTERPOp.V_INTERP_P10_F16_F32) +v_interp_p2_f16_f32 = functools.partial(VINTERP, VINTERPOp.V_INTERP_P2_F16_F32) +v_interp_p10_rtz_f16_f32 = functools.partial(VINTERP, VINTERPOp.V_INTERP_P10_RTZ_F16_F32) +v_interp_p2_rtz_f16_f32 = functools.partial(VINTERP, VINTERPOp.V_INTERP_P2_RTZ_F16_F32) +v_nop_e32 = functools.partial(VOP1, VOP1Op.V_NOP) +v_mov_b32_e32 = functools.partial(VOP1, VOP1Op.V_MOV_B32) +v_readfirstlane_b32_e32 = functools.partial(VOP1, VOP1Op.V_READFIRSTLANE_B32) +v_cvt_i32_f64_e32 = functools.partial(VOP1, VOP1Op.V_CVT_I32_F64) +v_cvt_f64_i32_e32 = functools.partial(VOP1, VOP1Op.V_CVT_F64_I32) +v_cvt_f32_i32_e32 = functools.partial(VOP1, VOP1Op.V_CVT_F32_I32) +v_cvt_f32_u32_e32 = functools.partial(VOP1, VOP1Op.V_CVT_F32_U32) +v_cvt_u32_f32_e32 = functools.partial(VOP1, VOP1Op.V_CVT_U32_F32) +v_cvt_i32_f32_e32 = functools.partial(VOP1, VOP1Op.V_CVT_I32_F32) +v_cvt_f16_f32_e32 = functools.partial(VOP1, VOP1Op.V_CVT_F16_F32) +v_cvt_f32_f16_e32 = functools.partial(VOP1, VOP1Op.V_CVT_F32_F16) +v_cvt_nearest_i32_f32_e32 = functools.partial(VOP1, VOP1Op.V_CVT_NEAREST_I32_F32) +v_cvt_floor_i32_f32_e32 = functools.partial(VOP1, VOP1Op.V_CVT_FLOOR_I32_F32) +v_cvt_off_f32_i4_e32 = functools.partial(VOP1, VOP1Op.V_CVT_OFF_F32_I4) +v_cvt_f32_f64_e32 = functools.partial(VOP1, VOP1Op.V_CVT_F32_F64) +v_cvt_f64_f32_e32 = functools.partial(VOP1, VOP1Op.V_CVT_F64_F32) +v_cvt_f32_ubyte0_e32 = functools.partial(VOP1, VOP1Op.V_CVT_F32_UBYTE0) +v_cvt_f32_ubyte1_e32 = functools.partial(VOP1, VOP1Op.V_CVT_F32_UBYTE1) +v_cvt_f32_ubyte2_e32 = functools.partial(VOP1, VOP1Op.V_CVT_F32_UBYTE2) +v_cvt_f32_ubyte3_e32 = functools.partial(VOP1, VOP1Op.V_CVT_F32_UBYTE3) +v_cvt_u32_f64_e32 = functools.partial(VOP1, VOP1Op.V_CVT_U32_F64) +v_cvt_f64_u32_e32 = functools.partial(VOP1, VOP1Op.V_CVT_F64_U32) +v_trunc_f64_e32 = functools.partial(VOP1, VOP1Op.V_TRUNC_F64) +v_ceil_f64_e32 = functools.partial(VOP1, VOP1Op.V_CEIL_F64) +v_rndne_f64_e32 = functools.partial(VOP1, VOP1Op.V_RNDNE_F64) +v_floor_f64_e32 = functools.partial(VOP1, VOP1Op.V_FLOOR_F64) +v_pipeflush_e32 = functools.partial(VOP1, VOP1Op.V_PIPEFLUSH) +v_mov_b16_e32 = functools.partial(VOP1, VOP1Op.V_MOV_B16) +v_fract_f32_e32 = functools.partial(VOP1, VOP1Op.V_FRACT_F32) +v_trunc_f32_e32 = functools.partial(VOP1, VOP1Op.V_TRUNC_F32) +v_ceil_f32_e32 = functools.partial(VOP1, VOP1Op.V_CEIL_F32) +v_rndne_f32_e32 = functools.partial(VOP1, VOP1Op.V_RNDNE_F32) +v_floor_f32_e32 = functools.partial(VOP1, VOP1Op.V_FLOOR_F32) +v_exp_f32_e32 = functools.partial(VOP1, VOP1Op.V_EXP_F32) +v_log_f32_e32 = functools.partial(VOP1, VOP1Op.V_LOG_F32) +v_rcp_f32_e32 = functools.partial(VOP1, VOP1Op.V_RCP_F32) +v_rcp_iflag_f32_e32 = functools.partial(VOP1, VOP1Op.V_RCP_IFLAG_F32) +v_rsq_f32_e32 = functools.partial(VOP1, VOP1Op.V_RSQ_F32) +v_rcp_f64_e32 = functools.partial(VOP1, VOP1Op.V_RCP_F64) +v_rsq_f64_e32 = functools.partial(VOP1, VOP1Op.V_RSQ_F64) +v_sqrt_f32_e32 = functools.partial(VOP1, VOP1Op.V_SQRT_F32) +v_sqrt_f64_e32 = functools.partial(VOP1, VOP1Op.V_SQRT_F64) +v_sin_f32_e32 = functools.partial(VOP1, VOP1Op.V_SIN_F32) +v_cos_f32_e32 = functools.partial(VOP1, VOP1Op.V_COS_F32) +v_not_b32_e32 = functools.partial(VOP1, VOP1Op.V_NOT_B32) +v_bfrev_b32_e32 = functools.partial(VOP1, VOP1Op.V_BFREV_B32) +v_clz_i32_u32_e32 = functools.partial(VOP1, VOP1Op.V_CLZ_I32_U32) +v_ctz_i32_b32_e32 = functools.partial(VOP1, VOP1Op.V_CTZ_I32_B32) +v_cls_i32_e32 = functools.partial(VOP1, VOP1Op.V_CLS_I32) +v_frexp_exp_i32_f64_e32 = functools.partial(VOP1, VOP1Op.V_FREXP_EXP_I32_F64) +v_frexp_mant_f64_e32 = functools.partial(VOP1, VOP1Op.V_FREXP_MANT_F64) +v_fract_f64_e32 = functools.partial(VOP1, VOP1Op.V_FRACT_F64) +v_frexp_exp_i32_f32_e32 = functools.partial(VOP1, VOP1Op.V_FREXP_EXP_I32_F32) +v_frexp_mant_f32_e32 = functools.partial(VOP1, VOP1Op.V_FREXP_MANT_F32) +v_movreld_b32_e32 = functools.partial(VOP1, VOP1Op.V_MOVRELD_B32) +v_movrels_b32_e32 = functools.partial(VOP1, VOP1Op.V_MOVRELS_B32) +v_movrelsd_b32_e32 = functools.partial(VOP1, VOP1Op.V_MOVRELSD_B32) +v_movrelsd_2_b32_e32 = functools.partial(VOP1, VOP1Op.V_MOVRELSD_2_B32) +v_cvt_f16_u16_e32 = functools.partial(VOP1, VOP1Op.V_CVT_F16_U16) +v_cvt_f16_i16_e32 = functools.partial(VOP1, VOP1Op.V_CVT_F16_I16) +v_cvt_u16_f16_e32 = functools.partial(VOP1, VOP1Op.V_CVT_U16_F16) +v_cvt_i16_f16_e32 = functools.partial(VOP1, VOP1Op.V_CVT_I16_F16) +v_rcp_f16_e32 = functools.partial(VOP1, VOP1Op.V_RCP_F16) +v_sqrt_f16_e32 = functools.partial(VOP1, VOP1Op.V_SQRT_F16) +v_rsq_f16_e32 = functools.partial(VOP1, VOP1Op.V_RSQ_F16) +v_log_f16_e32 = functools.partial(VOP1, VOP1Op.V_LOG_F16) +v_exp_f16_e32 = functools.partial(VOP1, VOP1Op.V_EXP_F16) +v_frexp_mant_f16_e32 = functools.partial(VOP1, VOP1Op.V_FREXP_MANT_F16) +v_frexp_exp_i16_f16_e32 = functools.partial(VOP1, VOP1Op.V_FREXP_EXP_I16_F16) +v_floor_f16_e32 = functools.partial(VOP1, VOP1Op.V_FLOOR_F16) +v_ceil_f16_e32 = functools.partial(VOP1, VOP1Op.V_CEIL_F16) +v_trunc_f16_e32 = functools.partial(VOP1, VOP1Op.V_TRUNC_F16) +v_rndne_f16_e32 = functools.partial(VOP1, VOP1Op.V_RNDNE_F16) +v_fract_f16_e32 = functools.partial(VOP1, VOP1Op.V_FRACT_F16) +v_sin_f16_e32 = functools.partial(VOP1, VOP1Op.V_SIN_F16) +v_cos_f16_e32 = functools.partial(VOP1, VOP1Op.V_COS_F16) +v_sat_pk_u8_i16_e32 = functools.partial(VOP1, VOP1Op.V_SAT_PK_U8_I16) +v_cvt_norm_i16_f16_e32 = functools.partial(VOP1, VOP1Op.V_CVT_NORM_I16_F16) +v_cvt_norm_u16_f16_e32 = functools.partial(VOP1, VOP1Op.V_CVT_NORM_U16_F16) +v_swap_b32_e32 = functools.partial(VOP1, VOP1Op.V_SWAP_B32) +v_swap_b16_e32 = functools.partial(VOP1, VOP1Op.V_SWAP_B16) +v_permlane64_b32_e32 = functools.partial(VOP1, VOP1Op.V_PERMLANE64_B32) +v_swaprel_b32_e32 = functools.partial(VOP1, VOP1Op.V_SWAPREL_B32) +v_not_b16_e32 = functools.partial(VOP1, VOP1Op.V_NOT_B16) +v_cvt_i32_i16_e32 = functools.partial(VOP1, VOP1Op.V_CVT_I32_I16) +v_cvt_u32_u16_e32 = functools.partial(VOP1, VOP1Op.V_CVT_U32_U16) +v_cndmask_b32_e32 = functools.partial(VOP2, VOP2Op.V_CNDMASK_B32) +v_dot2acc_f32_f16_e32 = functools.partial(VOP2, VOP2Op.V_DOT2ACC_F32_F16) +v_add_f32_e32 = functools.partial(VOP2, VOP2Op.V_ADD_F32) +v_sub_f32_e32 = functools.partial(VOP2, VOP2Op.V_SUB_F32) +v_subrev_f32_e32 = functools.partial(VOP2, VOP2Op.V_SUBREV_F32) +v_fmac_dx9_zero_f32_e32 = functools.partial(VOP2, VOP2Op.V_FMAC_DX9_ZERO_F32) +v_mul_dx9_zero_f32_e32 = functools.partial(VOP2, VOP2Op.V_MUL_DX9_ZERO_F32) +v_mul_f32_e32 = functools.partial(VOP2, VOP2Op.V_MUL_F32) +v_mul_i32_i24_e32 = functools.partial(VOP2, VOP2Op.V_MUL_I32_I24) +v_mul_hi_i32_i24_e32 = functools.partial(VOP2, VOP2Op.V_MUL_HI_I32_I24) +v_mul_u32_u24_e32 = functools.partial(VOP2, VOP2Op.V_MUL_U32_U24) +v_mul_hi_u32_u24_e32 = functools.partial(VOP2, VOP2Op.V_MUL_HI_U32_U24) +v_min_f32_e32 = functools.partial(VOP2, VOP2Op.V_MIN_F32) +v_max_f32_e32 = functools.partial(VOP2, VOP2Op.V_MAX_F32) +v_min_i32_e32 = functools.partial(VOP2, VOP2Op.V_MIN_I32) +v_max_i32_e32 = functools.partial(VOP2, VOP2Op.V_MAX_I32) +v_min_u32_e32 = functools.partial(VOP2, VOP2Op.V_MIN_U32) +v_max_u32_e32 = functools.partial(VOP2, VOP2Op.V_MAX_U32) +v_lshlrev_b32_e32 = functools.partial(VOP2, VOP2Op.V_LSHLREV_B32) +v_lshrrev_b32_e32 = functools.partial(VOP2, VOP2Op.V_LSHRREV_B32) +v_ashrrev_i32_e32 = functools.partial(VOP2, VOP2Op.V_ASHRREV_I32) +v_and_b32_e32 = functools.partial(VOP2, VOP2Op.V_AND_B32) +v_or_b32_e32 = functools.partial(VOP2, VOP2Op.V_OR_B32) +v_xor_b32_e32 = functools.partial(VOP2, VOP2Op.V_XOR_B32) +v_xnor_b32_e32 = functools.partial(VOP2, VOP2Op.V_XNOR_B32) +v_add_co_ci_u32_e32 = functools.partial(VOP2, VOP2Op.V_ADD_CO_CI_U32) +v_sub_co_ci_u32_e32 = functools.partial(VOP2, VOP2Op.V_SUB_CO_CI_U32) +v_subrev_co_ci_u32_e32 = functools.partial(VOP2, VOP2Op.V_SUBREV_CO_CI_U32) +v_add_nc_u32_e32 = functools.partial(VOP2, VOP2Op.V_ADD_NC_U32) +v_sub_nc_u32_e32 = functools.partial(VOP2, VOP2Op.V_SUB_NC_U32) +v_subrev_nc_u32_e32 = functools.partial(VOP2, VOP2Op.V_SUBREV_NC_U32) +v_fmac_f32_e32 = functools.partial(VOP2, VOP2Op.V_FMAC_F32) +def v_fmamk_f32_e32(vdst, src0, K, vsrc1): return VOP2(VOP2Op.V_FMAMK_F32, vdst, src0, vsrc1, literal=K) +def v_fmaak_f32_e32(vdst, src0, vsrc1, K): return VOP2(VOP2Op.V_FMAAK_F32, vdst, src0, vsrc1, literal=K) +v_cvt_pk_rtz_f16_f32_e32 = functools.partial(VOP2, VOP2Op.V_CVT_PK_RTZ_F16_F32) +v_add_f16_e32 = functools.partial(VOP2, VOP2Op.V_ADD_F16) +v_sub_f16_e32 = functools.partial(VOP2, VOP2Op.V_SUB_F16) +v_subrev_f16_e32 = functools.partial(VOP2, VOP2Op.V_SUBREV_F16) +v_mul_f16_e32 = functools.partial(VOP2, VOP2Op.V_MUL_F16) +v_fmac_f16_e32 = functools.partial(VOP2, VOP2Op.V_FMAC_F16) +def v_fmamk_f16_e32(vdst, src0, K, vsrc1): return VOP2(VOP2Op.V_FMAMK_F16, vdst, src0, vsrc1, literal=K) +def v_fmaak_f16_e32(vdst, src0, vsrc1, K): return VOP2(VOP2Op.V_FMAAK_F16, vdst, src0, vsrc1, literal=K) +v_max_f16_e32 = functools.partial(VOP2, VOP2Op.V_MAX_F16) +v_min_f16_e32 = functools.partial(VOP2, VOP2Op.V_MIN_F16) +v_ldexp_f16_e32 = functools.partial(VOP2, VOP2Op.V_LDEXP_F16) +v_pk_fmac_f16_e32 = functools.partial(VOP2, VOP2Op.V_PK_FMAC_F16) +v_cmp_f_f16_e64 = functools.partial(VOP3, VOP3Op.V_CMP_F_F16) +v_cmp_lt_f16_e64 = functools.partial(VOP3, VOP3Op.V_CMP_LT_F16) +v_cmp_eq_f16_e64 = functools.partial(VOP3, VOP3Op.V_CMP_EQ_F16) +v_cmp_le_f16_e64 = functools.partial(VOP3, VOP3Op.V_CMP_LE_F16) +v_cmp_gt_f16_e64 = functools.partial(VOP3, VOP3Op.V_CMP_GT_F16) +v_cmp_lg_f16_e64 = functools.partial(VOP3, VOP3Op.V_CMP_LG_F16) +v_cmp_ge_f16_e64 = functools.partial(VOP3, VOP3Op.V_CMP_GE_F16) +v_cmp_o_f16_e64 = functools.partial(VOP3, VOP3Op.V_CMP_O_F16) +v_cmp_u_f16_e64 = functools.partial(VOP3, VOP3Op.V_CMP_U_F16) +v_cmp_nge_f16_e64 = functools.partial(VOP3, VOP3Op.V_CMP_NGE_F16) +v_cmp_nlg_f16_e64 = functools.partial(VOP3, VOP3Op.V_CMP_NLG_F16) +v_cmp_ngt_f16_e64 = functools.partial(VOP3, VOP3Op.V_CMP_NGT_F16) +v_cmp_nle_f16_e64 = functools.partial(VOP3, VOP3Op.V_CMP_NLE_F16) +v_cmp_neq_f16_e64 = functools.partial(VOP3, VOP3Op.V_CMP_NEQ_F16) +v_cmp_nlt_f16_e64 = functools.partial(VOP3, VOP3Op.V_CMP_NLT_F16) +v_cmp_t_f16_e64 = functools.partial(VOP3, VOP3Op.V_CMP_T_F16) +v_cmp_f_f32_e64 = functools.partial(VOP3, VOP3Op.V_CMP_F_F32) +v_cmp_lt_f32_e64 = functools.partial(VOP3, VOP3Op.V_CMP_LT_F32) +v_cmp_eq_f32_e64 = functools.partial(VOP3, VOP3Op.V_CMP_EQ_F32) +v_cmp_le_f32_e64 = functools.partial(VOP3, VOP3Op.V_CMP_LE_F32) +v_cmp_gt_f32_e64 = functools.partial(VOP3, VOP3Op.V_CMP_GT_F32) +v_cmp_lg_f32_e64 = functools.partial(VOP3, VOP3Op.V_CMP_LG_F32) +v_cmp_ge_f32_e64 = functools.partial(VOP3, VOP3Op.V_CMP_GE_F32) +v_cmp_o_f32_e64 = functools.partial(VOP3, VOP3Op.V_CMP_O_F32) +v_cmp_u_f32_e64 = functools.partial(VOP3, VOP3Op.V_CMP_U_F32) +v_cmp_nge_f32_e64 = functools.partial(VOP3, VOP3Op.V_CMP_NGE_F32) +v_cmp_nlg_f32_e64 = functools.partial(VOP3, VOP3Op.V_CMP_NLG_F32) +v_cmp_ngt_f32_e64 = functools.partial(VOP3, VOP3Op.V_CMP_NGT_F32) +v_cmp_nle_f32_e64 = functools.partial(VOP3, VOP3Op.V_CMP_NLE_F32) +v_cmp_neq_f32_e64 = functools.partial(VOP3, VOP3Op.V_CMP_NEQ_F32) +v_cmp_nlt_f32_e64 = functools.partial(VOP3, VOP3Op.V_CMP_NLT_F32) +v_cmp_t_f32_e64 = functools.partial(VOP3, VOP3Op.V_CMP_T_F32) +v_cmp_f_f64_e64 = functools.partial(VOP3, VOP3Op.V_CMP_F_F64) +v_cmp_lt_f64_e64 = functools.partial(VOP3, VOP3Op.V_CMP_LT_F64) +v_cmp_eq_f64_e64 = functools.partial(VOP3, VOP3Op.V_CMP_EQ_F64) +v_cmp_le_f64_e64 = functools.partial(VOP3, VOP3Op.V_CMP_LE_F64) +v_cmp_gt_f64_e64 = functools.partial(VOP3, VOP3Op.V_CMP_GT_F64) +v_cmp_lg_f64_e64 = functools.partial(VOP3, VOP3Op.V_CMP_LG_F64) +v_cmp_ge_f64_e64 = functools.partial(VOP3, VOP3Op.V_CMP_GE_F64) +v_cmp_o_f64_e64 = functools.partial(VOP3, VOP3Op.V_CMP_O_F64) +v_cmp_u_f64_e64 = functools.partial(VOP3, VOP3Op.V_CMP_U_F64) +v_cmp_nge_f64_e64 = functools.partial(VOP3, VOP3Op.V_CMP_NGE_F64) +v_cmp_nlg_f64_e64 = functools.partial(VOP3, VOP3Op.V_CMP_NLG_F64) +v_cmp_ngt_f64_e64 = functools.partial(VOP3, VOP3Op.V_CMP_NGT_F64) +v_cmp_nle_f64_e64 = functools.partial(VOP3, VOP3Op.V_CMP_NLE_F64) +v_cmp_neq_f64_e64 = functools.partial(VOP3, VOP3Op.V_CMP_NEQ_F64) +v_cmp_nlt_f64_e64 = functools.partial(VOP3, VOP3Op.V_CMP_NLT_F64) +v_cmp_t_f64_e64 = functools.partial(VOP3, VOP3Op.V_CMP_T_F64) +v_cmp_lt_i16_e64 = functools.partial(VOP3, VOP3Op.V_CMP_LT_I16) +v_cmp_eq_i16_e64 = functools.partial(VOP3, VOP3Op.V_CMP_EQ_I16) +v_cmp_le_i16_e64 = functools.partial(VOP3, VOP3Op.V_CMP_LE_I16) +v_cmp_gt_i16_e64 = functools.partial(VOP3, VOP3Op.V_CMP_GT_I16) +v_cmp_ne_i16_e64 = functools.partial(VOP3, VOP3Op.V_CMP_NE_I16) +v_cmp_ge_i16_e64 = functools.partial(VOP3, VOP3Op.V_CMP_GE_I16) +v_cmp_lt_u16_e64 = functools.partial(VOP3, VOP3Op.V_CMP_LT_U16) +v_cmp_eq_u16_e64 = functools.partial(VOP3, VOP3Op.V_CMP_EQ_U16) +v_cmp_le_u16_e64 = functools.partial(VOP3, VOP3Op.V_CMP_LE_U16) +v_cmp_gt_u16_e64 = functools.partial(VOP3, VOP3Op.V_CMP_GT_U16) +v_cmp_ne_u16_e64 = functools.partial(VOP3, VOP3Op.V_CMP_NE_U16) +v_cmp_ge_u16_e64 = functools.partial(VOP3, VOP3Op.V_CMP_GE_U16) +v_cmp_f_i32_e64 = functools.partial(VOP3, VOP3Op.V_CMP_F_I32) +v_cmp_lt_i32_e64 = functools.partial(VOP3, VOP3Op.V_CMP_LT_I32) +v_cmp_eq_i32_e64 = functools.partial(VOP3, VOP3Op.V_CMP_EQ_I32) +v_cmp_le_i32_e64 = functools.partial(VOP3, VOP3Op.V_CMP_LE_I32) +v_cmp_gt_i32_e64 = functools.partial(VOP3, VOP3Op.V_CMP_GT_I32) +v_cmp_ne_i32_e64 = functools.partial(VOP3, VOP3Op.V_CMP_NE_I32) +v_cmp_ge_i32_e64 = functools.partial(VOP3, VOP3Op.V_CMP_GE_I32) +v_cmp_t_i32_e64 = functools.partial(VOP3, VOP3Op.V_CMP_T_I32) +v_cmp_f_u32_e64 = functools.partial(VOP3, VOP3Op.V_CMP_F_U32) +v_cmp_lt_u32_e64 = functools.partial(VOP3, VOP3Op.V_CMP_LT_U32) +v_cmp_eq_u32_e64 = functools.partial(VOP3, VOP3Op.V_CMP_EQ_U32) +v_cmp_le_u32_e64 = functools.partial(VOP3, VOP3Op.V_CMP_LE_U32) +v_cmp_gt_u32_e64 = functools.partial(VOP3, VOP3Op.V_CMP_GT_U32) +v_cmp_ne_u32_e64 = functools.partial(VOP3, VOP3Op.V_CMP_NE_U32) +v_cmp_ge_u32_e64 = functools.partial(VOP3, VOP3Op.V_CMP_GE_U32) +v_cmp_t_u32_e64 = functools.partial(VOP3, VOP3Op.V_CMP_T_U32) +v_cmp_f_i64_e64 = functools.partial(VOP3, VOP3Op.V_CMP_F_I64) +v_cmp_lt_i64_e64 = functools.partial(VOP3, VOP3Op.V_CMP_LT_I64) +v_cmp_eq_i64_e64 = functools.partial(VOP3, VOP3Op.V_CMP_EQ_I64) +v_cmp_le_i64_e64 = functools.partial(VOP3, VOP3Op.V_CMP_LE_I64) +v_cmp_gt_i64_e64 = functools.partial(VOP3, VOP3Op.V_CMP_GT_I64) +v_cmp_ne_i64_e64 = functools.partial(VOP3, VOP3Op.V_CMP_NE_I64) +v_cmp_ge_i64_e64 = functools.partial(VOP3, VOP3Op.V_CMP_GE_I64) +v_cmp_t_i64_e64 = functools.partial(VOP3, VOP3Op.V_CMP_T_I64) +v_cmp_f_u64_e64 = functools.partial(VOP3, VOP3Op.V_CMP_F_U64) +v_cmp_lt_u64_e64 = functools.partial(VOP3, VOP3Op.V_CMP_LT_U64) +v_cmp_eq_u64_e64 = functools.partial(VOP3, VOP3Op.V_CMP_EQ_U64) +v_cmp_le_u64_e64 = functools.partial(VOP3, VOP3Op.V_CMP_LE_U64) +v_cmp_gt_u64_e64 = functools.partial(VOP3, VOP3Op.V_CMP_GT_U64) +v_cmp_ne_u64_e64 = functools.partial(VOP3, VOP3Op.V_CMP_NE_U64) +v_cmp_ge_u64_e64 = functools.partial(VOP3, VOP3Op.V_CMP_GE_U64) +v_cmp_t_u64_e64 = functools.partial(VOP3, VOP3Op.V_CMP_T_U64) +v_cmp_class_f16_e64 = functools.partial(VOP3, VOP3Op.V_CMP_CLASS_F16) +v_cmp_class_f32_e64 = functools.partial(VOP3, VOP3Op.V_CMP_CLASS_F32) +v_cmp_class_f64_e64 = functools.partial(VOP3, VOP3Op.V_CMP_CLASS_F64) +v_cmpx_f_f16_e64 = functools.partial(VOP3, VOP3Op.V_CMPX_F_F16) +v_cmpx_lt_f16_e64 = functools.partial(VOP3, VOP3Op.V_CMPX_LT_F16) +v_cmpx_eq_f16_e64 = functools.partial(VOP3, VOP3Op.V_CMPX_EQ_F16) +v_cmpx_le_f16_e64 = functools.partial(VOP3, VOP3Op.V_CMPX_LE_F16) +v_cmpx_gt_f16_e64 = functools.partial(VOP3, VOP3Op.V_CMPX_GT_F16) +v_cmpx_lg_f16_e64 = functools.partial(VOP3, VOP3Op.V_CMPX_LG_F16) +v_cmpx_ge_f16_e64 = functools.partial(VOP3, VOP3Op.V_CMPX_GE_F16) +v_cmpx_o_f16_e64 = functools.partial(VOP3, VOP3Op.V_CMPX_O_F16) +v_cmpx_u_f16_e64 = functools.partial(VOP3, VOP3Op.V_CMPX_U_F16) +v_cmpx_nge_f16_e64 = functools.partial(VOP3, VOP3Op.V_CMPX_NGE_F16) +v_cmpx_nlg_f16_e64 = functools.partial(VOP3, VOP3Op.V_CMPX_NLG_F16) +v_cmpx_ngt_f16_e64 = functools.partial(VOP3, VOP3Op.V_CMPX_NGT_F16) +v_cmpx_nle_f16_e64 = functools.partial(VOP3, VOP3Op.V_CMPX_NLE_F16) +v_cmpx_neq_f16_e64 = functools.partial(VOP3, VOP3Op.V_CMPX_NEQ_F16) +v_cmpx_nlt_f16_e64 = functools.partial(VOP3, VOP3Op.V_CMPX_NLT_F16) +v_cmpx_t_f16_e64 = functools.partial(VOP3, VOP3Op.V_CMPX_T_F16) +v_cmpx_f_f32_e64 = functools.partial(VOP3, VOP3Op.V_CMPX_F_F32) +v_cmpx_lt_f32_e64 = functools.partial(VOP3, VOP3Op.V_CMPX_LT_F32) +v_cmpx_eq_f32_e64 = functools.partial(VOP3, VOP3Op.V_CMPX_EQ_F32) +v_cmpx_le_f32_e64 = functools.partial(VOP3, VOP3Op.V_CMPX_LE_F32) +v_cmpx_gt_f32_e64 = functools.partial(VOP3, VOP3Op.V_CMPX_GT_F32) +v_cmpx_lg_f32_e64 = functools.partial(VOP3, VOP3Op.V_CMPX_LG_F32) +v_cmpx_ge_f32_e64 = functools.partial(VOP3, VOP3Op.V_CMPX_GE_F32) +v_cmpx_o_f32_e64 = functools.partial(VOP3, VOP3Op.V_CMPX_O_F32) +v_cmpx_u_f32_e64 = functools.partial(VOP3, VOP3Op.V_CMPX_U_F32) +v_cmpx_nge_f32_e64 = functools.partial(VOP3, VOP3Op.V_CMPX_NGE_F32) +v_cmpx_nlg_f32_e64 = functools.partial(VOP3, VOP3Op.V_CMPX_NLG_F32) +v_cmpx_ngt_f32_e64 = functools.partial(VOP3, VOP3Op.V_CMPX_NGT_F32) +v_cmpx_nle_f32_e64 = functools.partial(VOP3, VOP3Op.V_CMPX_NLE_F32) +v_cmpx_neq_f32_e64 = functools.partial(VOP3, VOP3Op.V_CMPX_NEQ_F32) +v_cmpx_nlt_f32_e64 = functools.partial(VOP3, VOP3Op.V_CMPX_NLT_F32) +v_cmpx_t_f32_e64 = functools.partial(VOP3, VOP3Op.V_CMPX_T_F32) +v_cmpx_f_f64_e64 = functools.partial(VOP3, VOP3Op.V_CMPX_F_F64) +v_cmpx_lt_f64_e64 = functools.partial(VOP3, VOP3Op.V_CMPX_LT_F64) +v_cmpx_eq_f64_e64 = functools.partial(VOP3, VOP3Op.V_CMPX_EQ_F64) +v_cmpx_le_f64_e64 = functools.partial(VOP3, VOP3Op.V_CMPX_LE_F64) +v_cmpx_gt_f64_e64 = functools.partial(VOP3, VOP3Op.V_CMPX_GT_F64) +v_cmpx_lg_f64_e64 = functools.partial(VOP3, VOP3Op.V_CMPX_LG_F64) +v_cmpx_ge_f64_e64 = functools.partial(VOP3, VOP3Op.V_CMPX_GE_F64) +v_cmpx_o_f64_e64 = functools.partial(VOP3, VOP3Op.V_CMPX_O_F64) +v_cmpx_u_f64_e64 = functools.partial(VOP3, VOP3Op.V_CMPX_U_F64) +v_cmpx_nge_f64_e64 = functools.partial(VOP3, VOP3Op.V_CMPX_NGE_F64) +v_cmpx_nlg_f64_e64 = functools.partial(VOP3, VOP3Op.V_CMPX_NLG_F64) +v_cmpx_ngt_f64_e64 = functools.partial(VOP3, VOP3Op.V_CMPX_NGT_F64) +v_cmpx_nle_f64_e64 = functools.partial(VOP3, VOP3Op.V_CMPX_NLE_F64) +v_cmpx_neq_f64_e64 = functools.partial(VOP3, VOP3Op.V_CMPX_NEQ_F64) +v_cmpx_nlt_f64_e64 = functools.partial(VOP3, VOP3Op.V_CMPX_NLT_F64) +v_cmpx_t_f64_e64 = functools.partial(VOP3, VOP3Op.V_CMPX_T_F64) +v_cmpx_lt_i16_e64 = functools.partial(VOP3, VOP3Op.V_CMPX_LT_I16) +v_cmpx_eq_i16_e64 = functools.partial(VOP3, VOP3Op.V_CMPX_EQ_I16) +v_cmpx_le_i16_e64 = functools.partial(VOP3, VOP3Op.V_CMPX_LE_I16) +v_cmpx_gt_i16_e64 = functools.partial(VOP3, VOP3Op.V_CMPX_GT_I16) +v_cmpx_ne_i16_e64 = functools.partial(VOP3, VOP3Op.V_CMPX_NE_I16) +v_cmpx_ge_i16_e64 = functools.partial(VOP3, VOP3Op.V_CMPX_GE_I16) +v_cmpx_lt_u16_e64 = functools.partial(VOP3, VOP3Op.V_CMPX_LT_U16) +v_cmpx_eq_u16_e64 = functools.partial(VOP3, VOP3Op.V_CMPX_EQ_U16) +v_cmpx_le_u16_e64 = functools.partial(VOP3, VOP3Op.V_CMPX_LE_U16) +v_cmpx_gt_u16_e64 = functools.partial(VOP3, VOP3Op.V_CMPX_GT_U16) +v_cmpx_ne_u16_e64 = functools.partial(VOP3, VOP3Op.V_CMPX_NE_U16) +v_cmpx_ge_u16_e64 = functools.partial(VOP3, VOP3Op.V_CMPX_GE_U16) +v_cmpx_f_i32_e64 = functools.partial(VOP3, VOP3Op.V_CMPX_F_I32) +v_cmpx_lt_i32_e64 = functools.partial(VOP3, VOP3Op.V_CMPX_LT_I32) +v_cmpx_eq_i32_e64 = functools.partial(VOP3, VOP3Op.V_CMPX_EQ_I32) +v_cmpx_le_i32_e64 = functools.partial(VOP3, VOP3Op.V_CMPX_LE_I32) +v_cmpx_gt_i32_e64 = functools.partial(VOP3, VOP3Op.V_CMPX_GT_I32) +v_cmpx_ne_i32_e64 = functools.partial(VOP3, VOP3Op.V_CMPX_NE_I32) +v_cmpx_ge_i32_e64 = functools.partial(VOP3, VOP3Op.V_CMPX_GE_I32) +v_cmpx_t_i32_e64 = functools.partial(VOP3, VOP3Op.V_CMPX_T_I32) +v_cmpx_f_u32_e64 = functools.partial(VOP3, VOP3Op.V_CMPX_F_U32) +v_cmpx_lt_u32_e64 = functools.partial(VOP3, VOP3Op.V_CMPX_LT_U32) +v_cmpx_eq_u32_e64 = functools.partial(VOP3, VOP3Op.V_CMPX_EQ_U32) +v_cmpx_le_u32_e64 = functools.partial(VOP3, VOP3Op.V_CMPX_LE_U32) +v_cmpx_gt_u32_e64 = functools.partial(VOP3, VOP3Op.V_CMPX_GT_U32) +v_cmpx_ne_u32_e64 = functools.partial(VOP3, VOP3Op.V_CMPX_NE_U32) +v_cmpx_ge_u32_e64 = functools.partial(VOP3, VOP3Op.V_CMPX_GE_U32) +v_cmpx_t_u32_e64 = functools.partial(VOP3, VOP3Op.V_CMPX_T_U32) +v_cmpx_f_i64_e64 = functools.partial(VOP3, VOP3Op.V_CMPX_F_I64) +v_cmpx_lt_i64_e64 = functools.partial(VOP3, VOP3Op.V_CMPX_LT_I64) +v_cmpx_eq_i64_e64 = functools.partial(VOP3, VOP3Op.V_CMPX_EQ_I64) +v_cmpx_le_i64_e64 = functools.partial(VOP3, VOP3Op.V_CMPX_LE_I64) +v_cmpx_gt_i64_e64 = functools.partial(VOP3, VOP3Op.V_CMPX_GT_I64) +v_cmpx_ne_i64_e64 = functools.partial(VOP3, VOP3Op.V_CMPX_NE_I64) +v_cmpx_ge_i64_e64 = functools.partial(VOP3, VOP3Op.V_CMPX_GE_I64) +v_cmpx_t_i64_e64 = functools.partial(VOP3, VOP3Op.V_CMPX_T_I64) +v_cmpx_f_u64_e64 = functools.partial(VOP3, VOP3Op.V_CMPX_F_U64) +v_cmpx_lt_u64_e64 = functools.partial(VOP3, VOP3Op.V_CMPX_LT_U64) +v_cmpx_eq_u64_e64 = functools.partial(VOP3, VOP3Op.V_CMPX_EQ_U64) +v_cmpx_le_u64_e64 = functools.partial(VOP3, VOP3Op.V_CMPX_LE_U64) +v_cmpx_gt_u64_e64 = functools.partial(VOP3, VOP3Op.V_CMPX_GT_U64) +v_cmpx_ne_u64_e64 = functools.partial(VOP3, VOP3Op.V_CMPX_NE_U64) +v_cmpx_ge_u64_e64 = functools.partial(VOP3, VOP3Op.V_CMPX_GE_U64) +v_cmpx_t_u64_e64 = functools.partial(VOP3, VOP3Op.V_CMPX_T_U64) +v_cmpx_class_f16_e64 = functools.partial(VOP3, VOP3Op.V_CMPX_CLASS_F16) +v_cmpx_class_f32_e64 = functools.partial(VOP3, VOP3Op.V_CMPX_CLASS_F32) +v_cmpx_class_f64_e64 = functools.partial(VOP3, VOP3Op.V_CMPX_CLASS_F64) +v_cndmask_b32_e64 = functools.partial(VOP3, VOP3Op.V_CNDMASK_B32) +v_add_f32_e64 = functools.partial(VOP3, VOP3Op.V_ADD_F32) +v_sub_f32_e64 = functools.partial(VOP3, VOP3Op.V_SUB_F32) +v_subrev_f32_e64 = functools.partial(VOP3, VOP3Op.V_SUBREV_F32) +v_fmac_dx9_zero_f32_e64 = functools.partial(VOP3, VOP3Op.V_FMAC_DX9_ZERO_F32) +v_mul_dx9_zero_f32_e64 = functools.partial(VOP3, VOP3Op.V_MUL_DX9_ZERO_F32) +v_mul_f32_e64 = functools.partial(VOP3, VOP3Op.V_MUL_F32) +v_mul_i32_i24_e64 = functools.partial(VOP3, VOP3Op.V_MUL_I32_I24) +v_mul_hi_i32_i24_e64 = functools.partial(VOP3, VOP3Op.V_MUL_HI_I32_I24) +v_mul_u32_u24_e64 = functools.partial(VOP3, VOP3Op.V_MUL_U32_U24) +v_mul_hi_u32_u24_e64 = functools.partial(VOP3, VOP3Op.V_MUL_HI_U32_U24) +v_min_f32_e64 = functools.partial(VOP3, VOP3Op.V_MIN_F32) +v_max_f32_e64 = functools.partial(VOP3, VOP3Op.V_MAX_F32) +v_min_i32_e64 = functools.partial(VOP3, VOP3Op.V_MIN_I32) +v_max_i32_e64 = functools.partial(VOP3, VOP3Op.V_MAX_I32) +v_min_u32_e64 = functools.partial(VOP3, VOP3Op.V_MIN_U32) +v_max_u32_e64 = functools.partial(VOP3, VOP3Op.V_MAX_U32) +v_lshlrev_b32_e64 = functools.partial(VOP3, VOP3Op.V_LSHLREV_B32) +v_lshrrev_b32_e64 = functools.partial(VOP3, VOP3Op.V_LSHRREV_B32) +v_ashrrev_i32_e64 = functools.partial(VOP3, VOP3Op.V_ASHRREV_I32) +v_and_b32_e64 = functools.partial(VOP3, VOP3Op.V_AND_B32) +v_or_b32_e64 = functools.partial(VOP3, VOP3Op.V_OR_B32) +v_xor_b32_e64 = functools.partial(VOP3, VOP3Op.V_XOR_B32) +v_xnor_b32_e64 = functools.partial(VOP3, VOP3Op.V_XNOR_B32) +v_add_nc_u32_e64 = functools.partial(VOP3, VOP3Op.V_ADD_NC_U32) +v_sub_nc_u32_e64 = functools.partial(VOP3, VOP3Op.V_SUB_NC_U32) +v_subrev_nc_u32_e64 = functools.partial(VOP3, VOP3Op.V_SUBREV_NC_U32) +v_fmac_f32_e64 = functools.partial(VOP3, VOP3Op.V_FMAC_F32) +v_cvt_pk_rtz_f16_f32_e64 = functools.partial(VOP3, VOP3Op.V_CVT_PK_RTZ_F16_F32) +v_add_f16_e64 = functools.partial(VOP3, VOP3Op.V_ADD_F16) +v_sub_f16_e64 = functools.partial(VOP3, VOP3Op.V_SUB_F16) +v_subrev_f16_e64 = functools.partial(VOP3, VOP3Op.V_SUBREV_F16) +v_mul_f16_e64 = functools.partial(VOP3, VOP3Op.V_MUL_F16) +v_fmac_f16_e64 = functools.partial(VOP3, VOP3Op.V_FMAC_F16) +v_max_f16_e64 = functools.partial(VOP3, VOP3Op.V_MAX_F16) +v_min_f16_e64 = functools.partial(VOP3, VOP3Op.V_MIN_F16) +v_ldexp_f16_e64 = functools.partial(VOP3, VOP3Op.V_LDEXP_F16) +v_nop_e64 = functools.partial(VOP3, VOP3Op.V_NOP) +v_mov_b32_e64 = functools.partial(VOP3, VOP3Op.V_MOV_B32) +v_readfirstlane_b32_e64 = functools.partial(VOP3, VOP3Op.V_READFIRSTLANE_B32) +v_cvt_i32_f64_e64 = functools.partial(VOP3, VOP3Op.V_CVT_I32_F64) +v_cvt_f64_i32_e64 = functools.partial(VOP3, VOP3Op.V_CVT_F64_I32) +v_cvt_f32_i32_e64 = functools.partial(VOP3, VOP3Op.V_CVT_F32_I32) +v_cvt_f32_u32_e64 = functools.partial(VOP3, VOP3Op.V_CVT_F32_U32) +v_cvt_u32_f32_e64 = functools.partial(VOP3, VOP3Op.V_CVT_U32_F32) +v_cvt_i32_f32_e64 = functools.partial(VOP3, VOP3Op.V_CVT_I32_F32) +v_cvt_f16_f32_e64 = functools.partial(VOP3, VOP3Op.V_CVT_F16_F32) +v_cvt_f32_f16_e64 = functools.partial(VOP3, VOP3Op.V_CVT_F32_F16) +v_cvt_nearest_i32_f32_e64 = functools.partial(VOP3, VOP3Op.V_CVT_NEAREST_I32_F32) +v_cvt_floor_i32_f32_e64 = functools.partial(VOP3, VOP3Op.V_CVT_FLOOR_I32_F32) +v_cvt_off_f32_i4_e64 = functools.partial(VOP3, VOP3Op.V_CVT_OFF_F32_I4) +v_cvt_f32_f64_e64 = functools.partial(VOP3, VOP3Op.V_CVT_F32_F64) +v_cvt_f64_f32_e64 = functools.partial(VOP3, VOP3Op.V_CVT_F64_F32) +v_cvt_f32_ubyte0_e64 = functools.partial(VOP3, VOP3Op.V_CVT_F32_UBYTE0) +v_cvt_f32_ubyte1_e64 = functools.partial(VOP3, VOP3Op.V_CVT_F32_UBYTE1) +v_cvt_f32_ubyte2_e64 = functools.partial(VOP3, VOP3Op.V_CVT_F32_UBYTE2) +v_cvt_f32_ubyte3_e64 = functools.partial(VOP3, VOP3Op.V_CVT_F32_UBYTE3) +v_cvt_u32_f64_e64 = functools.partial(VOP3, VOP3Op.V_CVT_U32_F64) +v_cvt_f64_u32_e64 = functools.partial(VOP3, VOP3Op.V_CVT_F64_U32) +v_trunc_f64_e64 = functools.partial(VOP3, VOP3Op.V_TRUNC_F64) +v_ceil_f64_e64 = functools.partial(VOP3, VOP3Op.V_CEIL_F64) +v_rndne_f64_e64 = functools.partial(VOP3, VOP3Op.V_RNDNE_F64) +v_floor_f64_e64 = functools.partial(VOP3, VOP3Op.V_FLOOR_F64) +v_pipeflush_e64 = functools.partial(VOP3, VOP3Op.V_PIPEFLUSH) +v_mov_b16_e64 = functools.partial(VOP3, VOP3Op.V_MOV_B16) +v_fract_f32_e64 = functools.partial(VOP3, VOP3Op.V_FRACT_F32) +v_trunc_f32_e64 = functools.partial(VOP3, VOP3Op.V_TRUNC_F32) +v_ceil_f32_e64 = functools.partial(VOP3, VOP3Op.V_CEIL_F32) +v_rndne_f32_e64 = functools.partial(VOP3, VOP3Op.V_RNDNE_F32) +v_floor_f32_e64 = functools.partial(VOP3, VOP3Op.V_FLOOR_F32) +v_exp_f32_e64 = functools.partial(VOP3, VOP3Op.V_EXP_F32) +v_log_f32_e64 = functools.partial(VOP3, VOP3Op.V_LOG_F32) +v_rcp_f32_e64 = functools.partial(VOP3, VOP3Op.V_RCP_F32) +v_rcp_iflag_f32_e64 = functools.partial(VOP3, VOP3Op.V_RCP_IFLAG_F32) +v_rsq_f32_e64 = functools.partial(VOP3, VOP3Op.V_RSQ_F32) +v_rcp_f64_e64 = functools.partial(VOP3, VOP3Op.V_RCP_F64) +v_rsq_f64_e64 = functools.partial(VOP3, VOP3Op.V_RSQ_F64) +v_sqrt_f32_e64 = functools.partial(VOP3, VOP3Op.V_SQRT_F32) +v_sqrt_f64_e64 = functools.partial(VOP3, VOP3Op.V_SQRT_F64) +v_sin_f32_e64 = functools.partial(VOP3, VOP3Op.V_SIN_F32) +v_cos_f32_e64 = functools.partial(VOP3, VOP3Op.V_COS_F32) +v_not_b32_e64 = functools.partial(VOP3, VOP3Op.V_NOT_B32) +v_bfrev_b32_e64 = functools.partial(VOP3, VOP3Op.V_BFREV_B32) +v_clz_i32_u32_e64 = functools.partial(VOP3, VOP3Op.V_CLZ_I32_U32) +v_ctz_i32_b32_e64 = functools.partial(VOP3, VOP3Op.V_CTZ_I32_B32) +v_cls_i32_e64 = functools.partial(VOP3, VOP3Op.V_CLS_I32) +v_frexp_exp_i32_f64_e64 = functools.partial(VOP3, VOP3Op.V_FREXP_EXP_I32_F64) +v_frexp_mant_f64_e64 = functools.partial(VOP3, VOP3Op.V_FREXP_MANT_F64) +v_fract_f64_e64 = functools.partial(VOP3, VOP3Op.V_FRACT_F64) +v_frexp_exp_i32_f32_e64 = functools.partial(VOP3, VOP3Op.V_FREXP_EXP_I32_F32) +v_frexp_mant_f32_e64 = functools.partial(VOP3, VOP3Op.V_FREXP_MANT_F32) +v_movreld_b32_e64 = functools.partial(VOP3, VOP3Op.V_MOVRELD_B32) +v_movrels_b32_e64 = functools.partial(VOP3, VOP3Op.V_MOVRELS_B32) +v_movrelsd_b32_e64 = functools.partial(VOP3, VOP3Op.V_MOVRELSD_B32) +v_movrelsd_2_b32_e64 = functools.partial(VOP3, VOP3Op.V_MOVRELSD_2_B32) +v_cvt_f16_u16_e64 = functools.partial(VOP3, VOP3Op.V_CVT_F16_U16) +v_cvt_f16_i16_e64 = functools.partial(VOP3, VOP3Op.V_CVT_F16_I16) +v_cvt_u16_f16_e64 = functools.partial(VOP3, VOP3Op.V_CVT_U16_F16) +v_cvt_i16_f16_e64 = functools.partial(VOP3, VOP3Op.V_CVT_I16_F16) +v_rcp_f16_e64 = functools.partial(VOP3, VOP3Op.V_RCP_F16) +v_sqrt_f16_e64 = functools.partial(VOP3, VOP3Op.V_SQRT_F16) +v_rsq_f16_e64 = functools.partial(VOP3, VOP3Op.V_RSQ_F16) +v_log_f16_e64 = functools.partial(VOP3, VOP3Op.V_LOG_F16) +v_exp_f16_e64 = functools.partial(VOP3, VOP3Op.V_EXP_F16) +v_frexp_mant_f16_e64 = functools.partial(VOP3, VOP3Op.V_FREXP_MANT_F16) +v_frexp_exp_i16_f16_e64 = functools.partial(VOP3, VOP3Op.V_FREXP_EXP_I16_F16) +v_floor_f16_e64 = functools.partial(VOP3, VOP3Op.V_FLOOR_F16) +v_ceil_f16_e64 = functools.partial(VOP3, VOP3Op.V_CEIL_F16) +v_trunc_f16_e64 = functools.partial(VOP3, VOP3Op.V_TRUNC_F16) +v_rndne_f16_e64 = functools.partial(VOP3, VOP3Op.V_RNDNE_F16) +v_fract_f16_e64 = functools.partial(VOP3, VOP3Op.V_FRACT_F16) +v_sin_f16_e64 = functools.partial(VOP3, VOP3Op.V_SIN_F16) +v_cos_f16_e64 = functools.partial(VOP3, VOP3Op.V_COS_F16) +v_sat_pk_u8_i16_e64 = functools.partial(VOP3, VOP3Op.V_SAT_PK_U8_I16) +v_cvt_norm_i16_f16_e64 = functools.partial(VOP3, VOP3Op.V_CVT_NORM_I16_F16) +v_cvt_norm_u16_f16_e64 = functools.partial(VOP3, VOP3Op.V_CVT_NORM_U16_F16) +v_not_b16_e64 = functools.partial(VOP3, VOP3Op.V_NOT_B16) +v_cvt_i32_i16_e64 = functools.partial(VOP3, VOP3Op.V_CVT_I32_I16) +v_cvt_u32_u16_e64 = functools.partial(VOP3, VOP3Op.V_CVT_U32_U16) +v_fma_dx9_zero_f32 = functools.partial(VOP3, VOP3Op.V_FMA_DX9_ZERO_F32) +v_mad_i32_i24 = functools.partial(VOP3, VOP3Op.V_MAD_I32_I24) +v_mad_u32_u24 = functools.partial(VOP3, VOP3Op.V_MAD_U32_U24) +v_cubeid_f32 = functools.partial(VOP3, VOP3Op.V_CUBEID_F32) +v_cubesc_f32 = functools.partial(VOP3, VOP3Op.V_CUBESC_F32) +v_cubetc_f32 = functools.partial(VOP3, VOP3Op.V_CUBETC_F32) +v_cubema_f32 = functools.partial(VOP3, VOP3Op.V_CUBEMA_F32) +v_bfe_u32 = functools.partial(VOP3, VOP3Op.V_BFE_U32) +v_bfe_i32 = functools.partial(VOP3, VOP3Op.V_BFE_I32) +v_bfi_b32 = functools.partial(VOP3, VOP3Op.V_BFI_B32) +v_fma_f32 = functools.partial(VOP3, VOP3Op.V_FMA_F32) +v_fma_f64 = functools.partial(VOP3, VOP3Op.V_FMA_F64) +v_lerp_u8 = functools.partial(VOP3, VOP3Op.V_LERP_U8) +v_alignbit_b32 = functools.partial(VOP3, VOP3Op.V_ALIGNBIT_B32) +v_alignbyte_b32 = functools.partial(VOP3, VOP3Op.V_ALIGNBYTE_B32) +v_mullit_f32 = functools.partial(VOP3, VOP3Op.V_MULLIT_F32) +v_min3_f32 = functools.partial(VOP3, VOP3Op.V_MIN3_F32) +v_min3_i32 = functools.partial(VOP3, VOP3Op.V_MIN3_I32) +v_min3_u32 = functools.partial(VOP3, VOP3Op.V_MIN3_U32) +v_max3_f32 = functools.partial(VOP3, VOP3Op.V_MAX3_F32) +v_max3_i32 = functools.partial(VOP3, VOP3Op.V_MAX3_I32) +v_max3_u32 = functools.partial(VOP3, VOP3Op.V_MAX3_U32) +v_med3_f32 = functools.partial(VOP3, VOP3Op.V_MED3_F32) +v_med3_i32 = functools.partial(VOP3, VOP3Op.V_MED3_I32) +v_med3_u32 = functools.partial(VOP3, VOP3Op.V_MED3_U32) +v_sad_u8 = functools.partial(VOP3, VOP3Op.V_SAD_U8) +v_sad_hi_u8 = functools.partial(VOP3, VOP3Op.V_SAD_HI_U8) +v_sad_u16 = functools.partial(VOP3, VOP3Op.V_SAD_U16) +v_sad_u32 = functools.partial(VOP3, VOP3Op.V_SAD_U32) +v_cvt_pk_u8_f32 = functools.partial(VOP3, VOP3Op.V_CVT_PK_U8_F32) +v_div_fixup_f32 = functools.partial(VOP3, VOP3Op.V_DIV_FIXUP_F32) +v_div_fixup_f64 = functools.partial(VOP3, VOP3Op.V_DIV_FIXUP_F64) +v_div_fmas_f32 = functools.partial(VOP3, VOP3Op.V_DIV_FMAS_F32) +v_div_fmas_f64 = functools.partial(VOP3, VOP3Op.V_DIV_FMAS_F64) +v_msad_u8 = functools.partial(VOP3, VOP3Op.V_MSAD_U8) +v_qsad_pk_u16_u8 = functools.partial(VOP3, VOP3Op.V_QSAD_PK_U16_U8) +v_mqsad_pk_u16_u8 = functools.partial(VOP3, VOP3Op.V_MQSAD_PK_U16_U8) +v_mqsad_u32_u8 = functools.partial(VOP3, VOP3Op.V_MQSAD_U32_U8) +v_xor3_b32 = functools.partial(VOP3, VOP3Op.V_XOR3_B32) +v_mad_u16 = functools.partial(VOP3, VOP3Op.V_MAD_U16) +v_perm_b32 = functools.partial(VOP3, VOP3Op.V_PERM_B32) +v_xad_u32 = functools.partial(VOP3, VOP3Op.V_XAD_U32) +v_lshl_add_u32 = functools.partial(VOP3, VOP3Op.V_LSHL_ADD_U32) +v_add_lshl_u32 = functools.partial(VOP3, VOP3Op.V_ADD_LSHL_U32) +v_fma_f16 = functools.partial(VOP3, VOP3Op.V_FMA_F16) +v_min3_f16 = functools.partial(VOP3, VOP3Op.V_MIN3_F16) +v_min3_i16 = functools.partial(VOP3, VOP3Op.V_MIN3_I16) +v_min3_u16 = functools.partial(VOP3, VOP3Op.V_MIN3_U16) +v_max3_f16 = functools.partial(VOP3, VOP3Op.V_MAX3_F16) +v_max3_i16 = functools.partial(VOP3, VOP3Op.V_MAX3_I16) +v_max3_u16 = functools.partial(VOP3, VOP3Op.V_MAX3_U16) +v_med3_f16 = functools.partial(VOP3, VOP3Op.V_MED3_F16) +v_med3_i16 = functools.partial(VOP3, VOP3Op.V_MED3_I16) +v_med3_u16 = functools.partial(VOP3, VOP3Op.V_MED3_U16) +v_mad_i16 = functools.partial(VOP3, VOP3Op.V_MAD_I16) +v_div_fixup_f16 = functools.partial(VOP3, VOP3Op.V_DIV_FIXUP_F16) +v_add3_u32 = functools.partial(VOP3, VOP3Op.V_ADD3_U32) +v_lshl_or_b32 = functools.partial(VOP3, VOP3Op.V_LSHL_OR_B32) +v_and_or_b32 = functools.partial(VOP3, VOP3Op.V_AND_OR_B32) +v_or3_b32 = functools.partial(VOP3, VOP3Op.V_OR3_B32) +v_mad_u32_u16 = functools.partial(VOP3, VOP3Op.V_MAD_U32_U16) +v_mad_i32_i16 = functools.partial(VOP3, VOP3Op.V_MAD_I32_I16) +v_permlane16_b32 = functools.partial(VOP3, VOP3Op.V_PERMLANE16_B32) +v_permlanex16_b32 = functools.partial(VOP3, VOP3Op.V_PERMLANEX16_B32) +v_cndmask_b16 = functools.partial(VOP3, VOP3Op.V_CNDMASK_B16) +v_maxmin_f32 = functools.partial(VOP3, VOP3Op.V_MAXMIN_F32) +v_minmax_f32 = functools.partial(VOP3, VOP3Op.V_MINMAX_F32) +v_maxmin_f16 = functools.partial(VOP3, VOP3Op.V_MAXMIN_F16) +v_minmax_f16 = functools.partial(VOP3, VOP3Op.V_MINMAX_F16) +v_maxmin_u32 = functools.partial(VOP3, VOP3Op.V_MAXMIN_U32) +v_minmax_u32 = functools.partial(VOP3, VOP3Op.V_MINMAX_U32) +v_maxmin_i32 = functools.partial(VOP3, VOP3Op.V_MAXMIN_I32) +v_minmax_i32 = functools.partial(VOP3, VOP3Op.V_MINMAX_I32) +v_dot2_f16_f16 = functools.partial(VOP3, VOP3Op.V_DOT2_F16_F16) +v_dot2_bf16_bf16 = functools.partial(VOP3, VOP3Op.V_DOT2_BF16_BF16) +v_add_nc_u16 = functools.partial(VOP3, VOP3Op.V_ADD_NC_U16) +v_sub_nc_u16 = functools.partial(VOP3, VOP3Op.V_SUB_NC_U16) +v_mul_lo_u16 = functools.partial(VOP3, VOP3Op.V_MUL_LO_U16) +v_cvt_pk_i16_f32 = functools.partial(VOP3, VOP3Op.V_CVT_PK_I16_F32) +v_cvt_pk_u16_f32 = functools.partial(VOP3, VOP3Op.V_CVT_PK_U16_F32) +v_max_u16 = functools.partial(VOP3, VOP3Op.V_MAX_U16) +v_max_i16 = functools.partial(VOP3, VOP3Op.V_MAX_I16) +v_min_u16 = functools.partial(VOP3, VOP3Op.V_MIN_U16) +v_min_i16 = functools.partial(VOP3, VOP3Op.V_MIN_I16) +v_add_nc_i16 = functools.partial(VOP3, VOP3Op.V_ADD_NC_I16) +v_sub_nc_i16 = functools.partial(VOP3, VOP3Op.V_SUB_NC_I16) +v_pack_b32_f16 = functools.partial(VOP3, VOP3Op.V_PACK_B32_F16) +v_cvt_pk_norm_i16_f16 = functools.partial(VOP3, VOP3Op.V_CVT_PK_NORM_I16_F16) +v_cvt_pk_norm_u16_f16 = functools.partial(VOP3, VOP3Op.V_CVT_PK_NORM_U16_F16) +v_ldexp_f32 = functools.partial(VOP3, VOP3Op.V_LDEXP_F32) +v_bfm_b32 = functools.partial(VOP3, VOP3Op.V_BFM_B32) +v_bcnt_u32_b32 = functools.partial(VOP3, VOP3Op.V_BCNT_U32_B32) +v_mbcnt_lo_u32_b32 = functools.partial(VOP3, VOP3Op.V_MBCNT_LO_U32_B32) +v_mbcnt_hi_u32_b32 = functools.partial(VOP3, VOP3Op.V_MBCNT_HI_U32_B32) +v_cvt_pk_norm_i16_f32 = functools.partial(VOP3, VOP3Op.V_CVT_PK_NORM_I16_F32) +v_cvt_pk_norm_u16_f32 = functools.partial(VOP3, VOP3Op.V_CVT_PK_NORM_U16_F32) +v_cvt_pk_u16_u32 = functools.partial(VOP3, VOP3Op.V_CVT_PK_U16_U32) +v_cvt_pk_i16_i32 = functools.partial(VOP3, VOP3Op.V_CVT_PK_I16_I32) +v_sub_nc_i32 = functools.partial(VOP3, VOP3Op.V_SUB_NC_I32) +v_add_nc_i32 = functools.partial(VOP3, VOP3Op.V_ADD_NC_I32) +v_add_f64 = functools.partial(VOP3, VOP3Op.V_ADD_F64) +v_mul_f64 = functools.partial(VOP3, VOP3Op.V_MUL_F64) +v_min_f64 = functools.partial(VOP3, VOP3Op.V_MIN_F64) +v_max_f64 = functools.partial(VOP3, VOP3Op.V_MAX_F64) +v_ldexp_f64 = functools.partial(VOP3, VOP3Op.V_LDEXP_F64) +v_mul_lo_u32 = functools.partial(VOP3, VOP3Op.V_MUL_LO_U32) +v_mul_hi_u32 = functools.partial(VOP3, VOP3Op.V_MUL_HI_U32) +v_mul_hi_i32 = functools.partial(VOP3, VOP3Op.V_MUL_HI_I32) +v_trig_preop_f64 = functools.partial(VOP3, VOP3Op.V_TRIG_PREOP_F64) +v_lshlrev_b16 = functools.partial(VOP3, VOP3Op.V_LSHLREV_B16) +v_lshrrev_b16 = functools.partial(VOP3, VOP3Op.V_LSHRREV_B16) +v_ashrrev_i16 = functools.partial(VOP3, VOP3Op.V_ASHRREV_I16) +v_lshlrev_b64 = functools.partial(VOP3, VOP3Op.V_LSHLREV_B64) +v_lshrrev_b64 = functools.partial(VOP3, VOP3Op.V_LSHRREV_B64) +v_ashrrev_i64 = functools.partial(VOP3, VOP3Op.V_ASHRREV_I64) +v_readlane_b32 = functools.partial(VOP3, VOP3Op.V_READLANE_B32) +v_writelane_b32 = functools.partial(VOP3, VOP3Op.V_WRITELANE_B32) +v_and_b16 = functools.partial(VOP3, VOP3Op.V_AND_B16) +v_or_b16 = functools.partial(VOP3, VOP3Op.V_OR_B16) +v_xor_b16 = functools.partial(VOP3, VOP3Op.V_XOR_B16) +v_pk_mad_i16 = functools.partial(VOP3P, VOP3POp.V_PK_MAD_I16) +v_pk_mul_lo_u16 = functools.partial(VOP3P, VOP3POp.V_PK_MUL_LO_U16) +v_pk_add_i16 = functools.partial(VOP3P, VOP3POp.V_PK_ADD_I16) +v_pk_sub_i16 = functools.partial(VOP3P, VOP3POp.V_PK_SUB_I16) +v_pk_lshlrev_b16 = functools.partial(VOP3P, VOP3POp.V_PK_LSHLREV_B16) +v_pk_lshrrev_b16 = functools.partial(VOP3P, VOP3POp.V_PK_LSHRREV_B16) +v_pk_ashrrev_i16 = functools.partial(VOP3P, VOP3POp.V_PK_ASHRREV_I16) +v_pk_max_i16 = functools.partial(VOP3P, VOP3POp.V_PK_MAX_I16) +v_pk_min_i16 = functools.partial(VOP3P, VOP3POp.V_PK_MIN_I16) +v_pk_mad_u16 = functools.partial(VOP3P, VOP3POp.V_PK_MAD_U16) +v_pk_add_u16 = functools.partial(VOP3P, VOP3POp.V_PK_ADD_U16) +v_pk_sub_u16 = functools.partial(VOP3P, VOP3POp.V_PK_SUB_U16) +v_pk_max_u16 = functools.partial(VOP3P, VOP3POp.V_PK_MAX_U16) +v_pk_min_u16 = functools.partial(VOP3P, VOP3POp.V_PK_MIN_U16) +v_pk_fma_f16 = functools.partial(VOP3P, VOP3POp.V_PK_FMA_F16) +v_pk_add_f16 = functools.partial(VOP3P, VOP3POp.V_PK_ADD_F16) +v_pk_mul_f16 = functools.partial(VOP3P, VOP3POp.V_PK_MUL_F16) +v_pk_min_f16 = functools.partial(VOP3P, VOP3POp.V_PK_MIN_F16) +v_pk_max_f16 = functools.partial(VOP3P, VOP3POp.V_PK_MAX_F16) +v_dot2_f32_f16 = functools.partial(VOP3P, VOP3POp.V_DOT2_F32_F16) +v_dot4_i32_iu8 = functools.partial(VOP3P, VOP3POp.V_DOT4_I32_IU8) +v_dot4_u32_u8 = functools.partial(VOP3P, VOP3POp.V_DOT4_U32_U8) +v_dot8_i32_iu4 = functools.partial(VOP3P, VOP3POp.V_DOT8_I32_IU4) +v_dot8_u32_u4 = functools.partial(VOP3P, VOP3POp.V_DOT8_U32_U4) +v_dot2_f32_bf16 = functools.partial(VOP3P, VOP3POp.V_DOT2_F32_BF16) +v_fma_mix_f32 = functools.partial(VOP3P, VOP3POp.V_FMA_MIX_F32) +v_fma_mixlo_f16 = functools.partial(VOP3P, VOP3POp.V_FMA_MIXLO_F16) +v_fma_mixhi_f16 = functools.partial(VOP3P, VOP3POp.V_FMA_MIXHI_F16) +v_wmma_f32_16x16x16_f16 = functools.partial(VOP3P, VOP3POp.V_WMMA_F32_16X16X16_F16) +v_wmma_f32_16x16x16_bf16 = functools.partial(VOP3P, VOP3POp.V_WMMA_F32_16X16X16_BF16) +v_wmma_f16_16x16x16_f16 = functools.partial(VOP3P, VOP3POp.V_WMMA_F16_16X16X16_F16) +v_wmma_bf16_16x16x16_bf16 = functools.partial(VOP3P, VOP3POp.V_WMMA_BF16_16X16X16_BF16) +v_wmma_i32_16x16x16_iu8 = functools.partial(VOP3P, VOP3POp.V_WMMA_I32_16X16X16_IU8) +v_wmma_i32_16x16x16_iu4 = functools.partial(VOP3P, VOP3POp.V_WMMA_I32_16X16X16_IU4) +dword = functools.partial(VOP3SD, VOP3SDOp.DWORD) +v_add_co_ci_u32 = functools.partial(VOP3SD, VOP3SDOp.V_ADD_CO_CI_U32) +v_sub_co_ci_u32 = functools.partial(VOP3SD, VOP3SDOp.V_SUB_CO_CI_U32) +v_subrev_co_ci_u32 = functools.partial(VOP3SD, VOP3SDOp.V_SUBREV_CO_CI_U32) +v_div_scale_f32 = functools.partial(VOP3SD, VOP3SDOp.V_DIV_SCALE_F32) +v_div_scale_f64 = functools.partial(VOP3SD, VOP3SDOp.V_DIV_SCALE_F64) +v_mad_u64_u32 = functools.partial(VOP3SD, VOP3SDOp.V_MAD_U64_U32) +v_mad_i64_i32 = functools.partial(VOP3SD, VOP3SDOp.V_MAD_I64_I32) +v_add_co_u32 = functools.partial(VOP3SD, VOP3SDOp.V_ADD_CO_U32) +v_sub_co_u32 = functools.partial(VOP3SD, VOP3SDOp.V_SUB_CO_U32) +v_subrev_co_u32 = functools.partial(VOP3SD, VOP3SDOp.V_SUBREV_CO_U32) +v_cmp_f_f16_e32 = functools.partial(VOPC, VOPCOp.V_CMP_F_F16) +v_cmp_lt_f16_e32 = functools.partial(VOPC, VOPCOp.V_CMP_LT_F16) +v_cmp_eq_f16_e32 = functools.partial(VOPC, VOPCOp.V_CMP_EQ_F16) +v_cmp_le_f16_e32 = functools.partial(VOPC, VOPCOp.V_CMP_LE_F16) +v_cmp_gt_f16_e32 = functools.partial(VOPC, VOPCOp.V_CMP_GT_F16) +v_cmp_lg_f16_e32 = functools.partial(VOPC, VOPCOp.V_CMP_LG_F16) +v_cmp_ge_f16_e32 = functools.partial(VOPC, VOPCOp.V_CMP_GE_F16) +v_cmp_o_f16_e32 = functools.partial(VOPC, VOPCOp.V_CMP_O_F16) +v_cmp_u_f16_e32 = functools.partial(VOPC, VOPCOp.V_CMP_U_F16) +v_cmp_nge_f16_e32 = functools.partial(VOPC, VOPCOp.V_CMP_NGE_F16) +v_cmp_nlg_f16_e32 = functools.partial(VOPC, VOPCOp.V_CMP_NLG_F16) +v_cmp_ngt_f16_e32 = functools.partial(VOPC, VOPCOp.V_CMP_NGT_F16) +v_cmp_nle_f16_e32 = functools.partial(VOPC, VOPCOp.V_CMP_NLE_F16) +v_cmp_neq_f16_e32 = functools.partial(VOPC, VOPCOp.V_CMP_NEQ_F16) +v_cmp_nlt_f16_e32 = functools.partial(VOPC, VOPCOp.V_CMP_NLT_F16) +v_cmp_t_f16_e32 = functools.partial(VOPC, VOPCOp.V_CMP_T_F16) +v_cmp_f_f32_e32 = functools.partial(VOPC, VOPCOp.V_CMP_F_F32) +v_cmp_lt_f32_e32 = functools.partial(VOPC, VOPCOp.V_CMP_LT_F32) +v_cmp_eq_f32_e32 = functools.partial(VOPC, VOPCOp.V_CMP_EQ_F32) +v_cmp_le_f32_e32 = functools.partial(VOPC, VOPCOp.V_CMP_LE_F32) +v_cmp_gt_f32_e32 = functools.partial(VOPC, VOPCOp.V_CMP_GT_F32) +v_cmp_lg_f32_e32 = functools.partial(VOPC, VOPCOp.V_CMP_LG_F32) +v_cmp_ge_f32_e32 = functools.partial(VOPC, VOPCOp.V_CMP_GE_F32) +v_cmp_o_f32_e32 = functools.partial(VOPC, VOPCOp.V_CMP_O_F32) +v_cmp_u_f32_e32 = functools.partial(VOPC, VOPCOp.V_CMP_U_F32) +v_cmp_nge_f32_e32 = functools.partial(VOPC, VOPCOp.V_CMP_NGE_F32) +v_cmp_nlg_f32_e32 = functools.partial(VOPC, VOPCOp.V_CMP_NLG_F32) +v_cmp_ngt_f32_e32 = functools.partial(VOPC, VOPCOp.V_CMP_NGT_F32) +v_cmp_nle_f32_e32 = functools.partial(VOPC, VOPCOp.V_CMP_NLE_F32) +v_cmp_neq_f32_e32 = functools.partial(VOPC, VOPCOp.V_CMP_NEQ_F32) +v_cmp_nlt_f32_e32 = functools.partial(VOPC, VOPCOp.V_CMP_NLT_F32) +v_cmp_t_f32_e32 = functools.partial(VOPC, VOPCOp.V_CMP_T_F32) +v_cmp_f_f64_e32 = functools.partial(VOPC, VOPCOp.V_CMP_F_F64) +v_cmp_lt_f64_e32 = functools.partial(VOPC, VOPCOp.V_CMP_LT_F64) +v_cmp_eq_f64_e32 = functools.partial(VOPC, VOPCOp.V_CMP_EQ_F64) +v_cmp_le_f64_e32 = functools.partial(VOPC, VOPCOp.V_CMP_LE_F64) +v_cmp_gt_f64_e32 = functools.partial(VOPC, VOPCOp.V_CMP_GT_F64) +v_cmp_lg_f64_e32 = functools.partial(VOPC, VOPCOp.V_CMP_LG_F64) +v_cmp_ge_f64_e32 = functools.partial(VOPC, VOPCOp.V_CMP_GE_F64) +v_cmp_o_f64_e32 = functools.partial(VOPC, VOPCOp.V_CMP_O_F64) +v_cmp_u_f64_e32 = functools.partial(VOPC, VOPCOp.V_CMP_U_F64) +v_cmp_nge_f64_e32 = functools.partial(VOPC, VOPCOp.V_CMP_NGE_F64) +v_cmp_nlg_f64_e32 = functools.partial(VOPC, VOPCOp.V_CMP_NLG_F64) +v_cmp_ngt_f64_e32 = functools.partial(VOPC, VOPCOp.V_CMP_NGT_F64) +v_cmp_nle_f64_e32 = functools.partial(VOPC, VOPCOp.V_CMP_NLE_F64) +v_cmp_neq_f64_e32 = functools.partial(VOPC, VOPCOp.V_CMP_NEQ_F64) +v_cmp_nlt_f64_e32 = functools.partial(VOPC, VOPCOp.V_CMP_NLT_F64) +v_cmp_t_f64_e32 = functools.partial(VOPC, VOPCOp.V_CMP_T_F64) +v_cmp_lt_i16_e32 = functools.partial(VOPC, VOPCOp.V_CMP_LT_I16) +v_cmp_eq_i16_e32 = functools.partial(VOPC, VOPCOp.V_CMP_EQ_I16) +v_cmp_le_i16_e32 = functools.partial(VOPC, VOPCOp.V_CMP_LE_I16) +v_cmp_gt_i16_e32 = functools.partial(VOPC, VOPCOp.V_CMP_GT_I16) +v_cmp_ne_i16_e32 = functools.partial(VOPC, VOPCOp.V_CMP_NE_I16) +v_cmp_ge_i16_e32 = functools.partial(VOPC, VOPCOp.V_CMP_GE_I16) +v_cmp_lt_u16_e32 = functools.partial(VOPC, VOPCOp.V_CMP_LT_U16) +v_cmp_eq_u16_e32 = functools.partial(VOPC, VOPCOp.V_CMP_EQ_U16) +v_cmp_le_u16_e32 = functools.partial(VOPC, VOPCOp.V_CMP_LE_U16) +v_cmp_gt_u16_e32 = functools.partial(VOPC, VOPCOp.V_CMP_GT_U16) +v_cmp_ne_u16_e32 = functools.partial(VOPC, VOPCOp.V_CMP_NE_U16) +v_cmp_ge_u16_e32 = functools.partial(VOPC, VOPCOp.V_CMP_GE_U16) +v_cmp_f_i32_e32 = functools.partial(VOPC, VOPCOp.V_CMP_F_I32) +v_cmp_lt_i32_e32 = functools.partial(VOPC, VOPCOp.V_CMP_LT_I32) +v_cmp_eq_i32_e32 = functools.partial(VOPC, VOPCOp.V_CMP_EQ_I32) +v_cmp_le_i32_e32 = functools.partial(VOPC, VOPCOp.V_CMP_LE_I32) +v_cmp_gt_i32_e32 = functools.partial(VOPC, VOPCOp.V_CMP_GT_I32) +v_cmp_ne_i32_e32 = functools.partial(VOPC, VOPCOp.V_CMP_NE_I32) +v_cmp_ge_i32_e32 = functools.partial(VOPC, VOPCOp.V_CMP_GE_I32) +v_cmp_t_i32_e32 = functools.partial(VOPC, VOPCOp.V_CMP_T_I32) +v_cmp_f_u32_e32 = functools.partial(VOPC, VOPCOp.V_CMP_F_U32) +v_cmp_lt_u32_e32 = functools.partial(VOPC, VOPCOp.V_CMP_LT_U32) +v_cmp_eq_u32_e32 = functools.partial(VOPC, VOPCOp.V_CMP_EQ_U32) +v_cmp_le_u32_e32 = functools.partial(VOPC, VOPCOp.V_CMP_LE_U32) +v_cmp_gt_u32_e32 = functools.partial(VOPC, VOPCOp.V_CMP_GT_U32) +v_cmp_ne_u32_e32 = functools.partial(VOPC, VOPCOp.V_CMP_NE_U32) +v_cmp_ge_u32_e32 = functools.partial(VOPC, VOPCOp.V_CMP_GE_U32) +v_cmp_t_u32_e32 = functools.partial(VOPC, VOPCOp.V_CMP_T_U32) +v_cmp_f_i64_e32 = functools.partial(VOPC, VOPCOp.V_CMP_F_I64) +v_cmp_lt_i64_e32 = functools.partial(VOPC, VOPCOp.V_CMP_LT_I64) +v_cmp_eq_i64_e32 = functools.partial(VOPC, VOPCOp.V_CMP_EQ_I64) +v_cmp_le_i64_e32 = functools.partial(VOPC, VOPCOp.V_CMP_LE_I64) +v_cmp_gt_i64_e32 = functools.partial(VOPC, VOPCOp.V_CMP_GT_I64) +v_cmp_ne_i64_e32 = functools.partial(VOPC, VOPCOp.V_CMP_NE_I64) +v_cmp_ge_i64_e32 = functools.partial(VOPC, VOPCOp.V_CMP_GE_I64) +v_cmp_t_i64_e32 = functools.partial(VOPC, VOPCOp.V_CMP_T_I64) +v_cmp_f_u64_e32 = functools.partial(VOPC, VOPCOp.V_CMP_F_U64) +v_cmp_lt_u64_e32 = functools.partial(VOPC, VOPCOp.V_CMP_LT_U64) +v_cmp_eq_u64_e32 = functools.partial(VOPC, VOPCOp.V_CMP_EQ_U64) +v_cmp_le_u64_e32 = functools.partial(VOPC, VOPCOp.V_CMP_LE_U64) +v_cmp_gt_u64_e32 = functools.partial(VOPC, VOPCOp.V_CMP_GT_U64) +v_cmp_ne_u64_e32 = functools.partial(VOPC, VOPCOp.V_CMP_NE_U64) +v_cmp_ge_u64_e32 = functools.partial(VOPC, VOPCOp.V_CMP_GE_U64) +v_cmp_t_u64_e32 = functools.partial(VOPC, VOPCOp.V_CMP_T_U64) +v_cmp_class_f16_e32 = functools.partial(VOPC, VOPCOp.V_CMP_CLASS_F16) +v_cmp_class_f32_e32 = functools.partial(VOPC, VOPCOp.V_CMP_CLASS_F32) +v_cmp_class_f64_e32 = functools.partial(VOPC, VOPCOp.V_CMP_CLASS_F64) +v_cmpx_f_f16_e32 = functools.partial(VOPC, VOPCOp.V_CMPX_F_F16) +v_cmpx_lt_f16_e32 = functools.partial(VOPC, VOPCOp.V_CMPX_LT_F16) +v_cmpx_eq_f16_e32 = functools.partial(VOPC, VOPCOp.V_CMPX_EQ_F16) +v_cmpx_le_f16_e32 = functools.partial(VOPC, VOPCOp.V_CMPX_LE_F16) +v_cmpx_gt_f16_e32 = functools.partial(VOPC, VOPCOp.V_CMPX_GT_F16) +v_cmpx_lg_f16_e32 = functools.partial(VOPC, VOPCOp.V_CMPX_LG_F16) +v_cmpx_ge_f16_e32 = functools.partial(VOPC, VOPCOp.V_CMPX_GE_F16) +v_cmpx_o_f16_e32 = functools.partial(VOPC, VOPCOp.V_CMPX_O_F16) +v_cmpx_u_f16_e32 = functools.partial(VOPC, VOPCOp.V_CMPX_U_F16) +v_cmpx_nge_f16_e32 = functools.partial(VOPC, VOPCOp.V_CMPX_NGE_F16) +v_cmpx_nlg_f16_e32 = functools.partial(VOPC, VOPCOp.V_CMPX_NLG_F16) +v_cmpx_ngt_f16_e32 = functools.partial(VOPC, VOPCOp.V_CMPX_NGT_F16) +v_cmpx_nle_f16_e32 = functools.partial(VOPC, VOPCOp.V_CMPX_NLE_F16) +v_cmpx_neq_f16_e32 = functools.partial(VOPC, VOPCOp.V_CMPX_NEQ_F16) +v_cmpx_nlt_f16_e32 = functools.partial(VOPC, VOPCOp.V_CMPX_NLT_F16) +v_cmpx_t_f16_e32 = functools.partial(VOPC, VOPCOp.V_CMPX_T_F16) +v_cmpx_f_f32_e32 = functools.partial(VOPC, VOPCOp.V_CMPX_F_F32) +v_cmpx_lt_f32_e32 = functools.partial(VOPC, VOPCOp.V_CMPX_LT_F32) +v_cmpx_eq_f32_e32 = functools.partial(VOPC, VOPCOp.V_CMPX_EQ_F32) +v_cmpx_le_f32_e32 = functools.partial(VOPC, VOPCOp.V_CMPX_LE_F32) +v_cmpx_gt_f32_e32 = functools.partial(VOPC, VOPCOp.V_CMPX_GT_F32) +v_cmpx_lg_f32_e32 = functools.partial(VOPC, VOPCOp.V_CMPX_LG_F32) +v_cmpx_ge_f32_e32 = functools.partial(VOPC, VOPCOp.V_CMPX_GE_F32) +v_cmpx_o_f32_e32 = functools.partial(VOPC, VOPCOp.V_CMPX_O_F32) +v_cmpx_u_f32_e32 = functools.partial(VOPC, VOPCOp.V_CMPX_U_F32) +v_cmpx_nge_f32_e32 = functools.partial(VOPC, VOPCOp.V_CMPX_NGE_F32) +v_cmpx_nlg_f32_e32 = functools.partial(VOPC, VOPCOp.V_CMPX_NLG_F32) +v_cmpx_ngt_f32_e32 = functools.partial(VOPC, VOPCOp.V_CMPX_NGT_F32) +v_cmpx_nle_f32_e32 = functools.partial(VOPC, VOPCOp.V_CMPX_NLE_F32) +v_cmpx_neq_f32_e32 = functools.partial(VOPC, VOPCOp.V_CMPX_NEQ_F32) +v_cmpx_nlt_f32_e32 = functools.partial(VOPC, VOPCOp.V_CMPX_NLT_F32) +v_cmpx_t_f32_e32 = functools.partial(VOPC, VOPCOp.V_CMPX_T_F32) +v_cmpx_f_f64_e32 = functools.partial(VOPC, VOPCOp.V_CMPX_F_F64) +v_cmpx_lt_f64_e32 = functools.partial(VOPC, VOPCOp.V_CMPX_LT_F64) +v_cmpx_eq_f64_e32 = functools.partial(VOPC, VOPCOp.V_CMPX_EQ_F64) +v_cmpx_le_f64_e32 = functools.partial(VOPC, VOPCOp.V_CMPX_LE_F64) +v_cmpx_gt_f64_e32 = functools.partial(VOPC, VOPCOp.V_CMPX_GT_F64) +v_cmpx_lg_f64_e32 = functools.partial(VOPC, VOPCOp.V_CMPX_LG_F64) +v_cmpx_ge_f64_e32 = functools.partial(VOPC, VOPCOp.V_CMPX_GE_F64) +v_cmpx_o_f64_e32 = functools.partial(VOPC, VOPCOp.V_CMPX_O_F64) +v_cmpx_u_f64_e32 = functools.partial(VOPC, VOPCOp.V_CMPX_U_F64) +v_cmpx_nge_f64_e32 = functools.partial(VOPC, VOPCOp.V_CMPX_NGE_F64) +v_cmpx_nlg_f64_e32 = functools.partial(VOPC, VOPCOp.V_CMPX_NLG_F64) +v_cmpx_ngt_f64_e32 = functools.partial(VOPC, VOPCOp.V_CMPX_NGT_F64) +v_cmpx_nle_f64_e32 = functools.partial(VOPC, VOPCOp.V_CMPX_NLE_F64) +v_cmpx_neq_f64_e32 = functools.partial(VOPC, VOPCOp.V_CMPX_NEQ_F64) +v_cmpx_nlt_f64_e32 = functools.partial(VOPC, VOPCOp.V_CMPX_NLT_F64) +v_cmpx_t_f64_e32 = functools.partial(VOPC, VOPCOp.V_CMPX_T_F64) +v_cmpx_lt_i16_e32 = functools.partial(VOPC, VOPCOp.V_CMPX_LT_I16) +v_cmpx_eq_i16_e32 = functools.partial(VOPC, VOPCOp.V_CMPX_EQ_I16) +v_cmpx_le_i16_e32 = functools.partial(VOPC, VOPCOp.V_CMPX_LE_I16) +v_cmpx_gt_i16_e32 = functools.partial(VOPC, VOPCOp.V_CMPX_GT_I16) +v_cmpx_ne_i16_e32 = functools.partial(VOPC, VOPCOp.V_CMPX_NE_I16) +v_cmpx_ge_i16_e32 = functools.partial(VOPC, VOPCOp.V_CMPX_GE_I16) +v_cmpx_lt_u16_e32 = functools.partial(VOPC, VOPCOp.V_CMPX_LT_U16) +v_cmpx_eq_u16_e32 = functools.partial(VOPC, VOPCOp.V_CMPX_EQ_U16) +v_cmpx_le_u16_e32 = functools.partial(VOPC, VOPCOp.V_CMPX_LE_U16) +v_cmpx_gt_u16_e32 = functools.partial(VOPC, VOPCOp.V_CMPX_GT_U16) +v_cmpx_ne_u16_e32 = functools.partial(VOPC, VOPCOp.V_CMPX_NE_U16) +v_cmpx_ge_u16_e32 = functools.partial(VOPC, VOPCOp.V_CMPX_GE_U16) +v_cmpx_f_i32_e32 = functools.partial(VOPC, VOPCOp.V_CMPX_F_I32) +v_cmpx_lt_i32_e32 = functools.partial(VOPC, VOPCOp.V_CMPX_LT_I32) +v_cmpx_eq_i32_e32 = functools.partial(VOPC, VOPCOp.V_CMPX_EQ_I32) +v_cmpx_le_i32_e32 = functools.partial(VOPC, VOPCOp.V_CMPX_LE_I32) +v_cmpx_gt_i32_e32 = functools.partial(VOPC, VOPCOp.V_CMPX_GT_I32) +v_cmpx_ne_i32_e32 = functools.partial(VOPC, VOPCOp.V_CMPX_NE_I32) +v_cmpx_ge_i32_e32 = functools.partial(VOPC, VOPCOp.V_CMPX_GE_I32) +v_cmpx_t_i32_e32 = functools.partial(VOPC, VOPCOp.V_CMPX_T_I32) +v_cmpx_f_u32_e32 = functools.partial(VOPC, VOPCOp.V_CMPX_F_U32) +v_cmpx_lt_u32_e32 = functools.partial(VOPC, VOPCOp.V_CMPX_LT_U32) +v_cmpx_eq_u32_e32 = functools.partial(VOPC, VOPCOp.V_CMPX_EQ_U32) +v_cmpx_le_u32_e32 = functools.partial(VOPC, VOPCOp.V_CMPX_LE_U32) +v_cmpx_gt_u32_e32 = functools.partial(VOPC, VOPCOp.V_CMPX_GT_U32) +v_cmpx_ne_u32_e32 = functools.partial(VOPC, VOPCOp.V_CMPX_NE_U32) +v_cmpx_ge_u32_e32 = functools.partial(VOPC, VOPCOp.V_CMPX_GE_U32) +v_cmpx_t_u32_e32 = functools.partial(VOPC, VOPCOp.V_CMPX_T_U32) +v_cmpx_f_i64_e32 = functools.partial(VOPC, VOPCOp.V_CMPX_F_I64) +v_cmpx_lt_i64_e32 = functools.partial(VOPC, VOPCOp.V_CMPX_LT_I64) +v_cmpx_eq_i64_e32 = functools.partial(VOPC, VOPCOp.V_CMPX_EQ_I64) +v_cmpx_le_i64_e32 = functools.partial(VOPC, VOPCOp.V_CMPX_LE_I64) +v_cmpx_gt_i64_e32 = functools.partial(VOPC, VOPCOp.V_CMPX_GT_I64) +v_cmpx_ne_i64_e32 = functools.partial(VOPC, VOPCOp.V_CMPX_NE_I64) +v_cmpx_ge_i64_e32 = functools.partial(VOPC, VOPCOp.V_CMPX_GE_I64) +v_cmpx_t_i64_e32 = functools.partial(VOPC, VOPCOp.V_CMPX_T_I64) +v_cmpx_f_u64_e32 = functools.partial(VOPC, VOPCOp.V_CMPX_F_U64) +v_cmpx_lt_u64_e32 = functools.partial(VOPC, VOPCOp.V_CMPX_LT_U64) +v_cmpx_eq_u64_e32 = functools.partial(VOPC, VOPCOp.V_CMPX_EQ_U64) +v_cmpx_le_u64_e32 = functools.partial(VOPC, VOPCOp.V_CMPX_LE_U64) +v_cmpx_gt_u64_e32 = functools.partial(VOPC, VOPCOp.V_CMPX_GT_U64) +v_cmpx_ne_u64_e32 = functools.partial(VOPC, VOPCOp.V_CMPX_NE_U64) +v_cmpx_ge_u64_e32 = functools.partial(VOPC, VOPCOp.V_CMPX_GE_U64) +v_cmpx_t_u64_e32 = functools.partial(VOPC, VOPCOp.V_CMPX_T_U64) +v_cmpx_class_f16_e32 = functools.partial(VOPC, VOPCOp.V_CMPX_CLASS_F16) +v_cmpx_class_f32_e32 = functools.partial(VOPC, VOPCOp.V_CMPX_CLASS_F32) +v_cmpx_class_f64_e32 = functools.partial(VOPC, VOPCOp.V_CMPX_CLASS_F64) +v_dual_fmac_f32 = functools.partial(VOPD, VOPDOp.V_DUAL_FMAC_F32) +v_dual_fmaak_f32 = functools.partial(VOPD, VOPDOp.V_DUAL_FMAAK_F32) +v_dual_fmamk_f32 = functools.partial(VOPD, VOPDOp.V_DUAL_FMAMK_F32) +v_dual_mul_f32 = functools.partial(VOPD, VOPDOp.V_DUAL_MUL_F32) +v_dual_add_f32 = functools.partial(VOPD, VOPDOp.V_DUAL_ADD_F32) +v_dual_sub_f32 = functools.partial(VOPD, VOPDOp.V_DUAL_SUB_F32) +v_dual_subrev_f32 = functools.partial(VOPD, VOPDOp.V_DUAL_SUBREV_F32) +v_dual_mul_dx9_zero_f32 = functools.partial(VOPD, VOPDOp.V_DUAL_MUL_DX9_ZERO_F32) +v_dual_mov_b32 = functools.partial(VOPD, VOPDOp.V_DUAL_MOV_B32) +v_dual_cndmask_b32 = functools.partial(VOPD, VOPDOp.V_DUAL_CNDMASK_B32) +v_dual_max_f32 = functools.partial(VOPD, VOPDOp.V_DUAL_MAX_F32) +v_dual_min_f32 = functools.partial(VOPD, VOPDOp.V_DUAL_MIN_F32) +v_dual_dot2acc_f32_f16 = functools.partial(VOPD, VOPDOp.V_DUAL_DOT2ACC_F32_F16) +v_dual_dot2acc_f32_bf16 = functools.partial(VOPD, VOPDOp.V_DUAL_DOT2ACC_F32_BF16) +v_dual_add_nc_u32 = functools.partial(VOPD, VOPDOp.V_DUAL_ADD_NC_U32) +v_dual_lshlrev_b32 = functools.partial(VOPD, VOPDOp.V_DUAL_LSHLREV_B32) +v_dual_and_b32 = functools.partial(VOPD, VOPDOp.V_DUAL_AND_B32) + +VCC_LO = SrcEnum.VCC_LO +VCC_HI = SrcEnum.VCC_HI +NULL = SrcEnum.NULL +M0 = SrcEnum.M0 +EXEC_LO = SrcEnum.EXEC_LO +EXEC_HI = SrcEnum.EXEC_HI +ZERO = SrcEnum.ZERO +DPP8FI = SrcEnum.DPP8FI +SHARED_BASE = SrcEnum.SHARED_BASE +SHARED_LIMIT = SrcEnum.SHARED_LIMIT +PRIVATE_BASE = SrcEnum.PRIVATE_BASE +PRIVATE_LIMIT = SrcEnum.PRIVATE_LIMIT +POS_HALF = SrcEnum.POS_HALF +NEG_HALF = SrcEnum.NEG_HALF +POS_ONE = SrcEnum.POS_ONE +NEG_ONE = SrcEnum.NEG_ONE +POS_TWO = SrcEnum.POS_TWO +NEG_TWO = SrcEnum.NEG_TWO +POS_FOUR = SrcEnum.POS_FOUR +NEG_FOUR = SrcEnum.NEG_FOUR +INV_2PI = SrcEnum.INV_2PI +VCCZ = SrcEnum.VCCZ +EXECZ = SrcEnum.EXECZ +SCC = SrcEnum.SCC +LDS_DIRECT = SrcEnum.LDS_DIRECT +OFF = NULL diff --git a/extra/assembly/amd/autogen/rdna4/__init__.py b/extra/assembly/amd/autogen/rdna4/__init__.py index 72b42cae8a..e69de29bb2 100644 --- a/extra/assembly/amd/autogen/rdna4/__init__.py +++ b/extra/assembly/amd/autogen/rdna4/__init__.py @@ -1,3051 +0,0 @@ -# autogenerated from AMD RDNA4 ISA PDF by pdf.py - do not edit -from enum import IntEnum -from typing import Annotated -from extra.assembly.amd.dsl import bits, BitField, Inst32, Inst64, SGPR, VGPR, TTMP as TTMP, s as s, v as v, ttmp as ttmp, SSrc, Src, SImm, Imm, VDSTYEnc, SGPRField, VGPRField -import functools - -class SrcEnum(IntEnum): - VCC_LO = 106 - VCC_HI = 107 - NULL = 124 - M0 = 125 - EXEC_LO = 126 - EXEC_HI = 127 - ZERO = 128 - DPP8 = 233 - DPP8FI = 234 - SHARED_BASE = 235 - SHARED_LIMIT = 236 - PRIVATE_BASE = 237 - PRIVATE_LIMIT = 238 - POS_HALF = 240 - NEG_HALF = 241 - POS_ONE = 242 - NEG_ONE = 243 - POS_TWO = 244 - NEG_TWO = 245 - POS_FOUR = 246 - NEG_FOUR = 247 - INV_2PI = 248 - DPP16 = 250 - VCCZ = 251 - EXECZ = 252 - SCC = 253 - LDS_DIRECT = 254 - -class DSOp(IntEnum): - DS_ADD_U32 = 0 - DS_SUB_U32 = 1 - DS_RSUB_U32 = 2 - DS_INC_U32 = 3 - DS_DEC_U32 = 4 - DS_MIN_I32 = 5 - DS_MAX_I32 = 6 - DS_MIN_U32 = 7 - DS_MAX_U32 = 8 - DS_AND_B32 = 9 - DS_OR_B32 = 10 - DS_XOR_B32 = 11 - DS_MSKOR_B32 = 12 - DS_STORE_B32 = 13 - DS_STORE_2ADDR_B32 = 14 - DS_STORE_2ADDR_STRIDE64_B32 = 15 - DS_CMPSTORE_B32 = 16 - DS_MIN_NUM_F32 = 18 - DS_MAX_NUM_F32 = 19 - DS_NOP = 20 - DS_ADD_F32 = 21 - DS_STORE_B8 = 30 - DS_STORE_B16 = 31 - DS_ADD_RTN_U32 = 32 - DS_SUB_RTN_U32 = 33 - DS_RSUB_RTN_U32 = 34 - DS_INC_RTN_U32 = 35 - DS_DEC_RTN_U32 = 36 - DS_MIN_RTN_I32 = 37 - DS_MAX_RTN_I32 = 38 - DS_MIN_RTN_U32 = 39 - DS_MAX_RTN_U32 = 40 - DS_AND_RTN_B32 = 41 - DS_OR_RTN_B32 = 42 - DS_XOR_RTN_B32 = 43 - DS_MSKOR_RTN_B32 = 44 - DS_STOREXCHG_RTN_B32 = 45 - DS_STOREXCHG_2ADDR_RTN_B32 = 46 - DS_STOREXCHG_2ADDR_STRIDE64_RTN_B32 = 47 - DS_CMPSTORE_RTN_B32 = 48 - DS_MIN_NUM_RTN_F32 = 50 - DS_MAX_NUM_RTN_F32 = 51 - DS_SWIZZLE_B32 = 53 - DS_LOAD_B32 = 54 - DS_LOAD_2ADDR_B32 = 55 - DS_LOAD_2ADDR_STRIDE64_B32 = 56 - DS_LOAD_I8 = 57 - DS_LOAD_U8 = 58 - DS_LOAD_I16 = 59 - DS_LOAD_U16 = 60 - DS_CONSUME = 61 - DS_APPEND = 62 - DS_ADD_U64 = 64 - DS_SUB_U64 = 65 - DS_RSUB_U64 = 66 - DS_INC_U64 = 67 - DS_DEC_U64 = 68 - DS_MIN_I64 = 69 - DS_MAX_I64 = 70 - DS_MIN_U64 = 71 - DS_MAX_U64 = 72 - DS_AND_B64 = 73 - DS_OR_B64 = 74 - DS_XOR_B64 = 75 - DS_MSKOR_B64 = 76 - DS_STORE_B64 = 77 - DS_STORE_2ADDR_B64 = 78 - DS_STORE_2ADDR_STRIDE64_B64 = 79 - DS_CMPSTORE_B64 = 80 - DS_MIN_NUM_F64 = 82 - DS_MAX_NUM_F64 = 83 - DS_ADD_RTN_U64 = 96 - DS_SUB_RTN_U64 = 97 - DS_RSUB_RTN_U64 = 98 - DS_INC_RTN_U64 = 99 - DS_DEC_RTN_U64 = 100 - DS_MIN_RTN_I64 = 101 - DS_MAX_RTN_I64 = 102 - DS_MIN_RTN_U64 = 103 - DS_MAX_RTN_U64 = 104 - DS_AND_RTN_B64 = 105 - DS_OR_RTN_B64 = 106 - DS_XOR_RTN_B64 = 107 - DS_MSKOR_RTN_B64 = 108 - DS_STOREXCHG_RTN_B64 = 109 - DS_STOREXCHG_2ADDR_RTN_B64 = 110 - DS_STOREXCHG_2ADDR_STRIDE64_RTN_B64 = 111 - DS_CMPSTORE_RTN_B64 = 112 - DS_MIN_NUM_RTN_F64 = 114 - DS_MAX_NUM_RTN_F64 = 115 - DS_LOAD_B64 = 118 - DS_LOAD_2ADDR_B64 = 119 - DS_LOAD_2ADDR_STRIDE64_B64 = 120 - DS_ADD_RTN_F32 = 121 - DS_CONDXCHG32_RTN_B64 = 126 - DS_COND_SUB_U32 = 152 - DS_SUB_CLAMP_U32 = 153 - DS_PK_ADD_F16 = 154 - DS_PK_ADD_BF16 = 155 - DS_STORE_B8_D16_HI = 160 - DS_STORE_B16_D16_HI = 161 - DS_LOAD_U8_D16 = 162 - DS_LOAD_U8_D16_HI = 163 - DS_LOAD_I8_D16 = 164 - DS_LOAD_I8_D16_HI = 165 - DS_LOAD_U16_D16 = 166 - DS_LOAD_U16_D16_HI = 167 - DS_COND_SUB_RTN_U32 = 168 - DS_SUB_CLAMP_RTN_U32 = 169 - DS_PK_ADD_RTN_F16 = 170 - DS_PK_ADD_RTN_BF16 = 171 - DS_STORE_ADDTID_B32 = 176 - DS_LOAD_ADDTID_B32 = 177 - DS_PERMUTE_B32 = 178 - DS_BPERMUTE_B32 = 179 - DS_BPERMUTE_FI_B32 = 205 - DS_STORE_B96 = 222 - DS_STORE_B128 = 223 - DS_BVH_STACK_PUSH4_POP1_RTN_B32 = 224 - DS_BVH_STACK_PUSH8_POP1_RTN_B32 = 225 - DS_BVH_STACK_PUSH8_POP2_RTN_B64 = 226 - DS_LOAD_B96 = 254 - DS_LOAD_B128 = 255 - -class SMEMOp(IntEnum): - S_LOAD_B32 = 0 - S_LOAD_B64 = 1 - S_LOAD_B128 = 2 - S_LOAD_B256 = 3 - S_LOAD_B512 = 4 - S_LOAD_B96 = 5 - S_LOAD_I8 = 8 - S_LOAD_U8 = 9 - S_LOAD_I16 = 10 - S_LOAD_U16 = 11 - S_BUFFER_LOAD_B32 = 16 - S_BUFFER_LOAD_B64 = 17 - S_BUFFER_LOAD_B128 = 18 - S_BUFFER_LOAD_B256 = 19 - S_BUFFER_LOAD_B512 = 20 - S_BUFFER_LOAD_B96 = 21 - S_BUFFER_LOAD_I8 = 24 - S_BUFFER_LOAD_U8 = 25 - S_BUFFER_LOAD_I16 = 26 - S_BUFFER_LOAD_U16 = 27 - S_DCACHE_INV = 33 - S_PREFETCH_INST = 36 - S_PREFETCH_INST_PC_REL = 37 - S_PREFETCH_DATA = 38 - S_BUFFER_PREFETCH_DATA = 39 - S_PREFETCH_DATA_PC_REL = 40 - -class SOP1Op(IntEnum): - S_MOV_B32 = 0 - S_MOV_B64 = 1 - S_CMOV_B32 = 2 - S_CMOV_B64 = 3 - S_BREV_B32 = 4 - S_BREV_B64 = 5 - S_CTZ_I32_B32 = 8 - S_CTZ_I32_B64 = 9 - S_CLZ_I32_U32 = 10 - S_CLZ_I32_U64 = 11 - S_CLS_I32 = 12 - S_CLS_I32_I64 = 13 - S_SEXT_I32_I8 = 14 - S_SEXT_I32_I16 = 15 - S_BITSET0_B32 = 16 - S_BITSET0_B64 = 17 - S_BITSET1_B32 = 18 - S_BITSET1_B64 = 19 - S_BITREPLICATE_B64_B32 = 20 - S_ABS_I32 = 21 - S_BCNT0_I32_B32 = 22 - S_BCNT0_I32_B64 = 23 - S_BCNT1_I32_B32 = 24 - S_BCNT1_I32_B64 = 25 - S_QUADMASK_B32 = 26 - S_QUADMASK_B64 = 27 - S_WQM_B32 = 28 - S_WQM_B64 = 29 - S_NOT_B32 = 30 - S_NOT_B64 = 31 - S_AND_SAVEEXEC_B32 = 32 - S_AND_SAVEEXEC_B64 = 33 - S_OR_SAVEEXEC_B32 = 34 - S_OR_SAVEEXEC_B64 = 35 - S_XOR_SAVEEXEC_B32 = 36 - S_XOR_SAVEEXEC_B64 = 37 - S_NAND_SAVEEXEC_B32 = 38 - S_NAND_SAVEEXEC_B64 = 39 - S_NOR_SAVEEXEC_B32 = 40 - S_NOR_SAVEEXEC_B64 = 41 - S_XNOR_SAVEEXEC_B32 = 42 - S_XNOR_SAVEEXEC_B64 = 43 - S_AND_NOT0_SAVEEXEC_B32 = 44 - S_AND_NOT0_SAVEEXEC_B64 = 45 - S_OR_NOT0_SAVEEXEC_B32 = 46 - S_OR_NOT0_SAVEEXEC_B64 = 47 - S_AND_NOT1_SAVEEXEC_B32 = 48 - S_AND_NOT1_SAVEEXEC_B64 = 49 - S_OR_NOT1_SAVEEXEC_B32 = 50 - S_OR_NOT1_SAVEEXEC_B64 = 51 - S_AND_NOT0_WREXEC_B32 = 52 - S_AND_NOT0_WREXEC_B64 = 53 - S_AND_NOT1_WREXEC_B32 = 54 - S_AND_NOT1_WREXEC_B64 = 55 - S_MOVRELS_B32 = 64 - S_MOVRELS_B64 = 65 - S_MOVRELD_B32 = 66 - S_MOVRELD_B64 = 67 - S_MOVRELSD_2_B32 = 68 - S_GETPC_B64 = 71 - S_SETPC_B64 = 72 - S_SWAPPC_B64 = 73 - S_RFE_B64 = 74 - S_SENDMSG_RTN_B32 = 76 - S_SENDMSG_RTN_B64 = 77 - S_BARRIER_SIGNAL = 78 - S_BARRIER_SIGNAL_ISFIRST = 79 - S_GET_BARRIER_STATE = 80 - S_ALLOC_VGPR = 83 - S_SLEEP_VAR = 88 - S_CEIL_F32 = 96 - S_FLOOR_F32 = 97 - S_TRUNC_F32 = 98 - S_RNDNE_F32 = 99 - S_CVT_F32_I32 = 100 - S_CVT_F32_U32 = 101 - S_CVT_I32_F32 = 102 - S_CVT_U32_F32 = 103 - S_CVT_F16_F32 = 104 - S_CVT_F32_F16 = 105 - S_CVT_HI_F32_F16 = 106 - S_CEIL_F16 = 107 - S_FLOOR_F16 = 108 - S_TRUNC_F16 = 109 - S_RNDNE_F16 = 110 - -class SOP2Op(IntEnum): - S_ADD_CO_U32 = 0 - S_SUB_CO_U32 = 1 - S_ADD_CO_I32 = 2 - S_SUB_CO_I32 = 3 - S_ADD_CO_CI_U32 = 4 - S_SUB_CO_CI_U32 = 5 - S_ABSDIFF_I32 = 6 - S_LSHL_B32 = 8 - S_LSHL_B64 = 9 - S_LSHR_B32 = 10 - S_LSHR_B64 = 11 - S_ASHR_I32 = 12 - S_ASHR_I64 = 13 - S_LSHL1_ADD_U32 = 14 - S_LSHL2_ADD_U32 = 15 - S_LSHL3_ADD_U32 = 16 - S_LSHL4_ADD_U32 = 17 - S_MIN_I32 = 18 - S_MIN_U32 = 19 - S_MAX_I32 = 20 - S_MAX_U32 = 21 - S_AND_B32 = 22 - S_AND_B64 = 23 - S_OR_B32 = 24 - S_OR_B64 = 25 - S_XOR_B32 = 26 - S_XOR_B64 = 27 - S_NAND_B32 = 28 - S_NAND_B64 = 29 - S_NOR_B32 = 30 - S_NOR_B64 = 31 - S_XNOR_B32 = 32 - S_XNOR_B64 = 33 - S_AND_NOT1_B32 = 34 - S_AND_NOT1_B64 = 35 - S_OR_NOT1_B32 = 36 - S_OR_NOT1_B64 = 37 - S_BFE_U32 = 38 - S_BFE_I32 = 39 - S_BFE_U64 = 40 - S_BFE_I64 = 41 - S_BFM_B32 = 42 - S_BFM_B64 = 43 - S_MUL_I32 = 44 - S_MUL_HI_U32 = 45 - S_MUL_HI_I32 = 46 - S_CSELECT_B32 = 48 - S_CSELECT_B64 = 49 - S_PACK_LL_B32_B16 = 50 - S_PACK_LH_B32_B16 = 51 - S_PACK_HH_B32_B16 = 52 - S_PACK_HL_B32_B16 = 53 - S_ADD_F32 = 64 - S_SUB_F32 = 65 - S_MIN_NUM_F32 = 66 - S_MAX_NUM_F32 = 67 - S_MUL_F32 = 68 - S_FMAAK_F32 = 69 - S_FMAMK_F32 = 70 - S_FMAC_F32 = 71 - S_CVT_PK_RTZ_F16_F32 = 72 - S_ADD_F16 = 73 - S_SUB_F16 = 74 - S_MIN_NUM_F16 = 75 - S_MAX_NUM_F16 = 76 - S_MUL_F16 = 77 - S_FMAC_F16 = 78 - S_MINIMUM_F32 = 79 - S_MAXIMUM_F32 = 80 - S_MINIMUM_F16 = 81 - S_MAXIMUM_F16 = 82 - S_ADD_NC_U64 = 83 - S_SUB_NC_U64 = 84 - S_MUL_U64 = 85 - -class SOPCOp(IntEnum): - S_CMP_EQ_I32 = 0 - S_CMP_LG_I32 = 1 - S_CMP_GT_I32 = 2 - S_CMP_GE_I32 = 3 - S_CMP_LT_I32 = 4 - S_CMP_LE_I32 = 5 - S_CMP_EQ_U32 = 6 - S_CMP_LG_U32 = 7 - S_CMP_GT_U32 = 8 - S_CMP_GE_U32 = 9 - S_CMP_LT_U32 = 10 - S_CMP_LE_U32 = 11 - S_BITCMP0_B32 = 12 - S_BITCMP1_B32 = 13 - S_BITCMP0_B64 = 14 - S_BITCMP1_B64 = 15 - S_CMP_EQ_U64 = 16 - S_CMP_LG_U64 = 17 - S_CMP_LT_F32 = 65 - S_CMP_EQ_F32 = 66 - S_CMP_LE_F32 = 67 - S_CMP_GT_F32 = 68 - S_CMP_LG_F32 = 69 - S_CMP_GE_F32 = 70 - S_CMP_O_F32 = 71 - S_CMP_U_F32 = 72 - S_CMP_NGE_F32 = 73 - S_CMP_NLG_F32 = 74 - S_CMP_NGT_F32 = 75 - S_CMP_NLE_F32 = 76 - S_CMP_NEQ_F32 = 77 - S_CMP_NLT_F32 = 78 - S_CMP_LT_F16 = 81 - S_CMP_EQ_F16 = 82 - S_CMP_LE_F16 = 83 - S_CMP_GT_F16 = 84 - S_CMP_LG_F16 = 85 - S_CMP_GE_F16 = 86 - S_CMP_O_F16 = 87 - S_CMP_U_F16 = 88 - S_CMP_NGE_F16 = 89 - S_CMP_NLG_F16 = 90 - S_CMP_NGT_F16 = 91 - S_CMP_NLE_F16 = 92 - S_CMP_NEQ_F16 = 93 - S_CMP_NLT_F16 = 94 - -class SOPKOp(IntEnum): - S_MOVK_I32 = 0 - S_VERSION = 1 - S_CMOVK_I32 = 2 - S_ADDK_CO_I32 = 15 - S_MULK_I32 = 16 - S_GETREG_B32 = 17 - S_SETREG_B32 = 18 - S_SETREG_IMM32_B32 = 19 - S_CALL_B64 = 20 - -class SOPPOp(IntEnum): - S_NOP = 0 - S_SETKILL = 1 - S_SETHALT = 2 - S_SLEEP = 3 - S_CLAUSE = 5 - S_DELAY_ALU = 7 - S_WAIT_ALU = 8 - S_WAITCNT = 9 - S_WAIT_IDLE = 10 - S_WAIT_EVENT = 11 - S_TRAP = 16 - S_ROUND_MODE = 17 - S_DENORM_MODE = 18 - S_BARRIER_WAIT = 20 - S_CODE_END = 31 - S_BRANCH = 32 - S_CBRANCH_SCC0 = 33 - S_CBRANCH_SCC1 = 34 - S_CBRANCH_VCCZ = 35 - S_CBRANCH_VCCNZ = 36 - S_CBRANCH_EXECZ = 37 - S_CBRANCH_EXECNZ = 38 - S_ENDPGM = 48 - S_ENDPGM_SAVED = 49 - S_WAKEUP = 52 - S_SETPRIO = 53 - S_SENDMSG = 54 - S_SENDMSGHALT = 55 - S_INCPERFLEVEL = 56 - S_DECPERFLEVEL = 57 - S_ICACHE_INV = 60 - S_WAIT_LOADCNT = 64 - S_WAIT_STORECNT = 65 - S_WAIT_SAMPLECNT = 66 - S_WAIT_BVHCNT = 67 - S_WAIT_EXPCNT = 68 - S_WAIT_DSCNT = 70 - S_WAIT_KMCNT = 71 - S_WAIT_LOADCNT_DSCNT = 72 - S_WAIT_STORECNT_DSCNT = 73 - -class VBUFFEROp(IntEnum): - BUFFER_LOAD_FORMAT_X = 0 - BUFFER_LOAD_FORMAT_XY = 1 - BUFFER_LOAD_FORMAT_XYZ = 2 - BUFFER_LOAD_FORMAT_XYZW = 3 - BUFFER_STORE_FORMAT_X = 4 - BUFFER_STORE_FORMAT_XY = 5 - BUFFER_STORE_FORMAT_XYZ = 6 - BUFFER_STORE_FORMAT_XYZW = 7 - BUFFER_LOAD_D16_FORMAT_X = 8 - BUFFER_LOAD_D16_FORMAT_XY = 9 - BUFFER_LOAD_D16_FORMAT_XYZ = 10 - BUFFER_LOAD_D16_FORMAT_XYZW = 11 - BUFFER_STORE_D16_FORMAT_X = 12 - BUFFER_STORE_D16_FORMAT_XY = 13 - BUFFER_STORE_D16_FORMAT_XYZ = 14 - BUFFER_STORE_D16_FORMAT_XYZW = 15 - BUFFER_LOAD_U8 = 16 - BUFFER_LOAD_I8 = 17 - BUFFER_LOAD_U16 = 18 - BUFFER_LOAD_I16 = 19 - BUFFER_LOAD_B32 = 20 - BUFFER_LOAD_B64 = 21 - BUFFER_LOAD_B96 = 22 - BUFFER_LOAD_B128 = 23 - BUFFER_STORE_B8 = 24 - BUFFER_STORE_B16 = 25 - BUFFER_STORE_B32 = 26 - BUFFER_STORE_B64 = 27 - BUFFER_STORE_B96 = 28 - BUFFER_STORE_B128 = 29 - BUFFER_LOAD_D16_U8 = 30 - BUFFER_LOAD_D16_I8 = 31 - BUFFER_LOAD_D16_B16 = 32 - BUFFER_LOAD_D16_HI_U8 = 33 - BUFFER_LOAD_D16_HI_I8 = 34 - BUFFER_LOAD_D16_HI_B16 = 35 - BUFFER_STORE_D16_HI_B8 = 36 - BUFFER_STORE_D16_HI_B16 = 37 - BUFFER_LOAD_D16_HI_FORMAT_X = 38 - BUFFER_STORE_D16_HI_FORMAT_X = 39 - BUFFER_ATOMIC_SWAP_B32 = 51 - BUFFER_ATOMIC_CMPSWAP_B32 = 52 - BUFFER_ATOMIC_ADD_U32 = 53 - BUFFER_ATOMIC_SUB_U32 = 54 - BUFFER_ATOMIC_SUB_CLAMP_U32 = 55 - BUFFER_ATOMIC_MIN_I32 = 56 - BUFFER_ATOMIC_MIN_U32 = 57 - BUFFER_ATOMIC_MAX_I32 = 58 - BUFFER_ATOMIC_MAX_U32 = 59 - BUFFER_ATOMIC_AND_B32 = 60 - BUFFER_ATOMIC_OR_B32 = 61 - BUFFER_ATOMIC_XOR_B32 = 62 - BUFFER_ATOMIC_INC_U32 = 63 - BUFFER_ATOMIC_DEC_U32 = 64 - BUFFER_ATOMIC_SWAP_B64 = 65 - BUFFER_ATOMIC_CMPSWAP_B64 = 66 - BUFFER_ATOMIC_ADD_U64 = 67 - BUFFER_ATOMIC_SUB_U64 = 68 - BUFFER_ATOMIC_MIN_I64 = 69 - BUFFER_ATOMIC_MIN_U64 = 70 - BUFFER_ATOMIC_MAX_I64 = 71 - BUFFER_ATOMIC_MAX_U64 = 72 - BUFFER_ATOMIC_AND_B64 = 73 - BUFFER_ATOMIC_OR_B64 = 74 - BUFFER_ATOMIC_XOR_B64 = 75 - BUFFER_ATOMIC_INC_U64 = 76 - BUFFER_ATOMIC_DEC_U64 = 77 - BUFFER_ATOMIC_COND_SUB_U32 = 80 - BUFFER_ATOMIC_MIN_NUM_F32 = 81 - BUFFER_ATOMIC_MAX_NUM_F32 = 82 - BUFFER_ATOMIC_ADD_F32 = 86 - BUFFER_ATOMIC_PK_ADD_F16 = 89 - BUFFER_ATOMIC_PK_ADD_BF16 = 90 - TBUFFER_LOAD_FORMAT_X = 128 - TBUFFER_LOAD_FORMAT_XY = 129 - TBUFFER_LOAD_FORMAT_XYZ = 130 - TBUFFER_LOAD_FORMAT_XYZW = 131 - TBUFFER_STORE_FORMAT_X = 132 - TBUFFER_STORE_FORMAT_XY = 133 - TBUFFER_STORE_FORMAT_XYZ = 134 - TBUFFER_STORE_FORMAT_XYZW = 135 - TBUFFER_LOAD_D16_FORMAT_X = 136 - TBUFFER_LOAD_D16_FORMAT_XY = 137 - TBUFFER_LOAD_D16_FORMAT_XYZ = 138 - TBUFFER_LOAD_D16_FORMAT_XYZW = 139 - TBUFFER_STORE_D16_FORMAT_X = 140 - TBUFFER_STORE_D16_FORMAT_XY = 141 - TBUFFER_STORE_D16_FORMAT_XYZ = 142 - TBUFFER_STORE_D16_FORMAT_XYZW = 143 - -class VDSDIROp(IntEnum): - DS_PARAM_LOAD = 0 - DS_DIRECT_LOAD = 1 - -class VFLATOp(IntEnum): - FLAT_LOAD_U8 = 16 - FLAT_LOAD_I8 = 17 - FLAT_LOAD_U16 = 18 - FLAT_LOAD_I16 = 19 - FLAT_LOAD_B32 = 20 - FLAT_LOAD_B64 = 21 - FLAT_LOAD_B96 = 22 - FLAT_LOAD_B128 = 23 - FLAT_STORE_B8 = 24 - FLAT_STORE_B16 = 25 - FLAT_STORE_B32 = 26 - FLAT_STORE_B64 = 27 - FLAT_STORE_B96 = 28 - FLAT_STORE_B128 = 29 - FLAT_LOAD_D16_U8 = 30 - FLAT_LOAD_D16_I8 = 31 - FLAT_LOAD_D16_B16 = 32 - FLAT_LOAD_D16_HI_U8 = 33 - FLAT_LOAD_D16_HI_I8 = 34 - FLAT_LOAD_D16_HI_B16 = 35 - FLAT_STORE_D16_HI_B8 = 36 - FLAT_STORE_D16_HI_B16 = 37 - FLAT_ATOMIC_SWAP_B32 = 51 - FLAT_ATOMIC_CMPSWAP_B32 = 52 - FLAT_ATOMIC_ADD_U32 = 53 - FLAT_ATOMIC_SUB_U32 = 54 - FLAT_ATOMIC_SUB_CLAMP_U32 = 55 - FLAT_ATOMIC_MIN_I32 = 56 - FLAT_ATOMIC_MIN_U32 = 57 - FLAT_ATOMIC_MAX_I32 = 58 - FLAT_ATOMIC_MAX_U32 = 59 - FLAT_ATOMIC_AND_B32 = 60 - FLAT_ATOMIC_OR_B32 = 61 - FLAT_ATOMIC_XOR_B32 = 62 - FLAT_ATOMIC_INC_U32 = 63 - FLAT_ATOMIC_DEC_U32 = 64 - FLAT_ATOMIC_SWAP_B64 = 65 - FLAT_ATOMIC_CMPSWAP_B64 = 66 - FLAT_ATOMIC_ADD_U64 = 67 - FLAT_ATOMIC_SUB_U64 = 68 - FLAT_ATOMIC_MIN_I64 = 69 - FLAT_ATOMIC_MIN_U64 = 70 - FLAT_ATOMIC_MAX_I64 = 71 - FLAT_ATOMIC_MAX_U64 = 72 - FLAT_ATOMIC_AND_B64 = 73 - FLAT_ATOMIC_OR_B64 = 74 - FLAT_ATOMIC_XOR_B64 = 75 - FLAT_ATOMIC_INC_U64 = 76 - FLAT_ATOMIC_DEC_U64 = 77 - FLAT_ATOMIC_COND_SUB_U32 = 80 - FLAT_ATOMIC_MIN_NUM_F32 = 81 - FLAT_ATOMIC_MAX_NUM_F32 = 82 - FLAT_ATOMIC_ADD_F32 = 86 - FLAT_ATOMIC_PK_ADD_F16 = 89 - FLAT_ATOMIC_PK_ADD_BF16 = 90 - -class VGLOBALOp(IntEnum): - GLOBAL_LOAD_U8 = 16 - GLOBAL_LOAD_I8 = 17 - GLOBAL_LOAD_U16 = 18 - GLOBAL_LOAD_I16 = 19 - GLOBAL_LOAD_B32 = 20 - GLOBAL_LOAD_B64 = 21 - GLOBAL_LOAD_B96 = 22 - GLOBAL_LOAD_B128 = 23 - GLOBAL_STORE_B8 = 24 - GLOBAL_STORE_B16 = 25 - GLOBAL_STORE_B32 = 26 - GLOBAL_STORE_B64 = 27 - GLOBAL_STORE_B96 = 28 - GLOBAL_STORE_B128 = 29 - GLOBAL_LOAD_D16_U8 = 30 - GLOBAL_LOAD_D16_I8 = 31 - GLOBAL_LOAD_D16_B16 = 32 - GLOBAL_LOAD_D16_HI_U8 = 33 - GLOBAL_LOAD_D16_HI_I8 = 34 - GLOBAL_LOAD_D16_HI_B16 = 35 - GLOBAL_STORE_D16_HI_B8 = 36 - GLOBAL_STORE_D16_HI_B16 = 37 - GLOBAL_LOAD_ADDTID_B32 = 40 - GLOBAL_STORE_ADDTID_B32 = 41 - GLOBAL_INV = 43 - GLOBAL_WB = 44 - GLOBAL_ATOMIC_SWAP_B32 = 51 - GLOBAL_ATOMIC_CMPSWAP_B32 = 52 - GLOBAL_ATOMIC_ADD_U32 = 53 - GLOBAL_ATOMIC_SUB_U32 = 54 - GLOBAL_ATOMIC_SUB_CLAMP_U32 = 55 - GLOBAL_ATOMIC_MIN_I32 = 56 - GLOBAL_ATOMIC_MIN_U32 = 57 - GLOBAL_ATOMIC_MAX_I32 = 58 - GLOBAL_ATOMIC_MAX_U32 = 59 - GLOBAL_ATOMIC_AND_B32 = 60 - GLOBAL_ATOMIC_OR_B32 = 61 - GLOBAL_ATOMIC_XOR_B32 = 62 - GLOBAL_ATOMIC_INC_U32 = 63 - GLOBAL_ATOMIC_DEC_U32 = 64 - GLOBAL_ATOMIC_SWAP_B64 = 65 - GLOBAL_ATOMIC_CMPSWAP_B64 = 66 - GLOBAL_ATOMIC_ADD_U64 = 67 - GLOBAL_ATOMIC_SUB_U64 = 68 - GLOBAL_ATOMIC_MIN_I64 = 69 - GLOBAL_ATOMIC_MIN_U64 = 70 - GLOBAL_ATOMIC_MAX_I64 = 71 - GLOBAL_ATOMIC_MAX_U64 = 72 - GLOBAL_ATOMIC_AND_B64 = 73 - GLOBAL_ATOMIC_OR_B64 = 74 - GLOBAL_ATOMIC_XOR_B64 = 75 - GLOBAL_ATOMIC_INC_U64 = 76 - GLOBAL_ATOMIC_DEC_U64 = 77 - GLOBAL_WBINV = 79 - GLOBAL_ATOMIC_COND_SUB_U32 = 80 - GLOBAL_ATOMIC_MIN_NUM_F32 = 81 - GLOBAL_ATOMIC_MAX_NUM_F32 = 82 - GLOBAL_LOAD_BLOCK = 83 - GLOBAL_STORE_BLOCK = 84 - GLOBAL_ATOMIC_ADD_F32 = 86 - GLOBAL_LOAD_TR_B128 = 87 - GLOBAL_LOAD_TR_B64 = 88 - GLOBAL_ATOMIC_PK_ADD_F16 = 89 - GLOBAL_ATOMIC_PK_ADD_BF16 = 90 - GLOBAL_ATOMIC_ORDERED_ADD_B64 = 115 - -class VIMAGEOp(IntEnum): - IMAGE_LOAD = 0 - IMAGE_LOAD_MIP = 1 - IMAGE_LOAD_PCK = 2 - IMAGE_LOAD_PCK_SGN = 3 - IMAGE_LOAD_MIP_PCK = 4 - IMAGE_LOAD_MIP_PCK_SGN = 5 - IMAGE_STORE = 6 - IMAGE_STORE_MIP = 7 - IMAGE_STORE_PCK = 8 - IMAGE_STORE_MIP_PCK = 9 - IMAGE_ATOMIC_SWAP = 10 - IMAGE_ATOMIC_CMPSWAP = 11 - IMAGE_ATOMIC_ADD_UINT = 12 - IMAGE_ATOMIC_SUB_UINT = 13 - IMAGE_ATOMIC_MIN_INT = 14 - IMAGE_ATOMIC_MIN_UINT = 15 - IMAGE_ATOMIC_MAX_INT = 16 - IMAGE_ATOMIC_MAX_UINT = 17 - IMAGE_ATOMIC_AND = 18 - IMAGE_ATOMIC_OR = 19 - IMAGE_ATOMIC_XOR = 20 - IMAGE_ATOMIC_INC_UINT = 21 - IMAGE_ATOMIC_DEC_UINT = 22 - IMAGE_GET_RESINFO = 23 - IMAGE_BVH_INTERSECT_RAY = 25 - IMAGE_BVH64_INTERSECT_RAY = 26 - IMAGE_BVH_DUAL_INTERSECT_RAY = 128 - IMAGE_BVH8_INTERSECT_RAY = 129 - IMAGE_ATOMIC_ADD_FLT = 131 - IMAGE_ATOMIC_MIN_FLT = 132 - IMAGE_ATOMIC_MAX_FLT = 133 - IMAGE_ATOMIC_PK_ADD_F16 = 134 - IMAGE_ATOMIC_PK_ADD_BF16 = 135 - -class VINTERPOp(IntEnum): - V_INTERP_P10_F32 = 0 - V_INTERP_P2_F32 = 1 - V_INTERP_P10_F16_F32 = 2 - V_INTERP_P2_F16_F32 = 3 - V_INTERP_P10_RTZ_F16_F32 = 4 - V_INTERP_P2_RTZ_F16_F32 = 5 - -class VOP1Op(IntEnum): - V_NOP = 0 - V_MOV_B32 = 1 - V_READFIRSTLANE_B32 = 2 - V_CVT_I32_F64 = 3 - V_CVT_F64_I32 = 4 - V_CVT_F32_I32 = 5 - V_CVT_F32_U32 = 6 - V_CVT_U32_F32 = 7 - V_CVT_I32_F32 = 8 - V_CVT_F16_F32 = 10 - V_CVT_F32_F16 = 11 - V_CVT_NEAREST_I32_F32 = 12 - V_CVT_FLOOR_I32_F32 = 13 - V_CVT_OFF_F32_I4 = 14 - V_CVT_F32_F64 = 15 - V_CVT_F64_F32 = 16 - V_CVT_F32_UBYTE0 = 17 - V_CVT_F32_UBYTE1 = 18 - V_CVT_F32_UBYTE2 = 19 - V_CVT_F32_UBYTE3 = 20 - V_CVT_U32_F64 = 21 - V_CVT_F64_U32 = 22 - V_TRUNC_F64 = 23 - V_CEIL_F64 = 24 - V_RNDNE_F64 = 25 - V_FLOOR_F64 = 26 - V_PIPEFLUSH = 27 - V_MOV_B16 = 28 - V_FRACT_F32 = 32 - V_TRUNC_F32 = 33 - V_CEIL_F32 = 34 - V_RNDNE_F32 = 35 - V_FLOOR_F32 = 36 - V_EXP_F32 = 37 - V_LOG_F32 = 39 - V_RCP_F32 = 42 - V_RCP_IFLAG_F32 = 43 - V_RSQ_F32 = 46 - V_RCP_F64 = 47 - V_RSQ_F64 = 49 - V_SQRT_F32 = 51 - V_SQRT_F64 = 52 - V_SIN_F32 = 53 - V_COS_F32 = 54 - V_NOT_B32 = 55 - V_BFREV_B32 = 56 - V_CLZ_I32_U32 = 57 - V_CTZ_I32_B32 = 58 - V_CLS_I32 = 59 - V_FREXP_EXP_I32_F64 = 60 - V_FREXP_MANT_F64 = 61 - V_FRACT_F64 = 62 - V_FREXP_EXP_I32_F32 = 63 - V_FREXP_MANT_F32 = 64 - V_MOVRELD_B32 = 66 - V_MOVRELS_B32 = 67 - V_MOVRELSD_B32 = 68 - V_MOVRELSD_2_B32 = 72 - V_CVT_F16_U16 = 80 - V_CVT_F16_I16 = 81 - V_CVT_U16_F16 = 82 - V_CVT_I16_F16 = 83 - V_RCP_F16 = 84 - V_SQRT_F16 = 85 - V_RSQ_F16 = 86 - V_LOG_F16 = 87 - V_EXP_F16 = 88 - V_FREXP_MANT_F16 = 89 - V_FREXP_EXP_I16_F16 = 90 - V_FLOOR_F16 = 91 - V_CEIL_F16 = 92 - V_TRUNC_F16 = 93 - V_RNDNE_F16 = 94 - V_FRACT_F16 = 95 - V_SIN_F16 = 96 - V_COS_F16 = 97 - V_SAT_PK_U8_I16 = 98 - V_CVT_NORM_I16_F16 = 99 - V_CVT_NORM_U16_F16 = 100 - V_SWAP_B32 = 101 - V_SWAP_B16 = 102 - V_PERMLANE64_B32 = 103 - V_SWAPREL_B32 = 104 - V_NOT_B16 = 105 - V_CVT_I32_I16 = 106 - V_CVT_U32_U16 = 107 - V_CVT_F32_FP8 = 108 - V_CVT_F32_BF8 = 109 - V_CVT_PK_F32_FP8 = 110 - V_CVT_PK_F32_BF8 = 111 - -class VOP2Op(IntEnum): - V_CNDMASK_B32 = 1 - V_ADD_F64 = 2 - V_ADD_F32 = 3 - V_SUB_F32 = 4 - V_SUBREV_F32 = 5 - V_MUL_F64 = 6 - V_MUL_DX9_ZERO_F32 = 7 - V_MUL_F32 = 8 - V_MUL_I32_I24 = 9 - V_MUL_HI_I32_I24 = 10 - V_MUL_U32_U24 = 11 - V_MUL_HI_U32_U24 = 12 - V_MIN_NUM_F64 = 13 - V_MAX_NUM_F64 = 14 - V_MIN_I32 = 17 - V_MAX_I32 = 18 - V_MIN_U32 = 19 - V_MAX_U32 = 20 - V_MIN_NUM_F32 = 21 - V_MAX_NUM_F32 = 22 - V_LSHLREV_B32 = 24 - V_LSHRREV_B32 = 25 - V_ASHRREV_I32 = 26 - V_AND_B32 = 27 - V_OR_B32 = 28 - V_XOR_B32 = 29 - V_XNOR_B32 = 30 - V_LSHLREV_B64 = 31 - V_ADD_CO_CI_U32 = 32 - V_SUB_CO_CI_U32 = 33 - V_SUBREV_CO_CI_U32 = 34 - V_ADD_NC_U32 = 37 - V_SUB_NC_U32 = 38 - V_SUBREV_NC_U32 = 39 - V_FMAC_F32 = 43 - V_FMAMK_F32 = 44 - V_FMAAK_F32 = 45 - V_CVT_PK_RTZ_F16_F32 = 47 - V_MIN_NUM_F16 = 48 - V_MAX_NUM_F16 = 49 - V_ADD_F16 = 50 - V_SUB_F16 = 51 - V_SUBREV_F16 = 52 - V_MUL_F16 = 53 - V_FMAC_F16 = 54 - V_FMAMK_F16 = 55 - V_FMAAK_F16 = 56 - V_LDEXP_F16 = 59 - V_PK_FMAC_F16 = 60 - -class VOP3Op(IntEnum): - V_CMP_LT_F16 = 1 - V_CMP_EQ_F16 = 2 - V_CMP_LE_F16 = 3 - V_CMP_GT_F16 = 4 - V_CMP_LG_F16 = 5 - V_CMP_GE_F16 = 6 - V_CMP_O_F16 = 7 - V_CMP_U_F16 = 8 - V_CMP_NGE_F16 = 9 - V_CMP_NLG_F16 = 10 - V_CMP_NGT_F16 = 11 - V_CMP_NLE_F16 = 12 - V_CMP_NEQ_F16 = 13 - V_CMP_NLT_F16 = 14 - V_CMP_LT_F32 = 17 - V_CMP_EQ_F32 = 18 - V_CMP_LE_F32 = 19 - V_CMP_GT_F32 = 20 - V_CMP_LG_F32 = 21 - V_CMP_GE_F32 = 22 - V_CMP_O_F32 = 23 - V_CMP_U_F32 = 24 - V_CMP_NGE_F32 = 25 - V_CMP_NLG_F32 = 26 - V_CMP_NGT_F32 = 27 - V_CMP_NLE_F32 = 28 - V_CMP_NEQ_F32 = 29 - V_CMP_NLT_F32 = 30 - V_CMP_LT_F64 = 33 - V_CMP_EQ_F64 = 34 - V_CMP_LE_F64 = 35 - V_CMP_GT_F64 = 36 - V_CMP_LG_F64 = 37 - V_CMP_GE_F64 = 38 - V_CMP_O_F64 = 39 - V_CMP_U_F64 = 40 - V_CMP_NGE_F64 = 41 - V_CMP_NLG_F64 = 42 - V_CMP_NGT_F64 = 43 - V_CMP_NLE_F64 = 44 - V_CMP_NEQ_F64 = 45 - V_CMP_NLT_F64 = 46 - V_CMP_LT_I16 = 49 - V_CMP_EQ_I16 = 50 - V_CMP_LE_I16 = 51 - V_CMP_GT_I16 = 52 - V_CMP_NE_I16 = 53 - V_CMP_GE_I16 = 54 - V_CMP_LT_U16 = 57 - V_CMP_EQ_U16 = 58 - V_CMP_LE_U16 = 59 - V_CMP_GT_U16 = 60 - V_CMP_NE_U16 = 61 - V_CMP_GE_U16 = 62 - V_CMP_LT_I32 = 65 - V_CMP_EQ_I32 = 66 - V_CMP_LE_I32 = 67 - V_CMP_GT_I32 = 68 - V_CMP_NE_I32 = 69 - V_CMP_GE_I32 = 70 - V_CMP_LT_U32 = 73 - V_CMP_EQ_U32 = 74 - V_CMP_LE_U32 = 75 - V_CMP_GT_U32 = 76 - V_CMP_NE_U32 = 77 - V_CMP_GE_U32 = 78 - V_CMP_LT_I64 = 81 - V_CMP_EQ_I64 = 82 - V_CMP_LE_I64 = 83 - V_CMP_GT_I64 = 84 - V_CMP_NE_I64 = 85 - V_CMP_GE_I64 = 86 - V_CMP_LT_U64 = 89 - V_CMP_EQ_U64 = 90 - V_CMP_LE_U64 = 91 - V_CMP_GT_U64 = 92 - V_CMP_NE_U64 = 93 - V_CMP_GE_U64 = 94 - V_CMP_CLASS_F16 = 125 - V_CMP_CLASS_F32 = 126 - V_CMP_CLASS_F64 = 127 - V_CMPX_LT_F16 = 129 - V_CMPX_EQ_F16 = 130 - V_CMPX_LE_F16 = 131 - V_CMPX_GT_F16 = 132 - V_CMPX_LG_F16 = 133 - V_CMPX_GE_F16 = 134 - V_CMPX_O_F16 = 135 - V_CMPX_U_F16 = 136 - V_CMPX_NGE_F16 = 137 - V_CMPX_NLG_F16 = 138 - V_CMPX_NGT_F16 = 139 - V_CMPX_NLE_F16 = 140 - V_CMPX_NEQ_F16 = 141 - V_CMPX_NLT_F16 = 142 - V_CMPX_LT_F32 = 145 - V_CMPX_EQ_F32 = 146 - V_CMPX_LE_F32 = 147 - V_CMPX_GT_F32 = 148 - V_CMPX_LG_F32 = 149 - V_CMPX_GE_F32 = 150 - V_CMPX_O_F32 = 151 - V_CMPX_U_F32 = 152 - V_CMPX_NGE_F32 = 153 - V_CMPX_NLG_F32 = 154 - V_CMPX_NGT_F32 = 155 - V_CMPX_NLE_F32 = 156 - V_CMPX_NEQ_F32 = 157 - V_CMPX_NLT_F32 = 158 - V_CMPX_LT_F64 = 161 - V_CMPX_EQ_F64 = 162 - V_CMPX_LE_F64 = 163 - V_CMPX_GT_F64 = 164 - V_CMPX_LG_F64 = 165 - V_CMPX_GE_F64 = 166 - V_CMPX_O_F64 = 167 - V_CMPX_U_F64 = 168 - V_CMPX_NGE_F64 = 169 - V_CMPX_NLG_F64 = 170 - V_CMPX_NGT_F64 = 171 - V_CMPX_NLE_F64 = 172 - V_CMPX_NEQ_F64 = 173 - V_CMPX_NLT_F64 = 174 - V_CMPX_LT_I16 = 177 - V_CMPX_EQ_I16 = 178 - V_CMPX_LE_I16 = 179 - V_CMPX_GT_I16 = 180 - V_CMPX_NE_I16 = 181 - V_CMPX_GE_I16 = 182 - V_CMPX_LT_U16 = 185 - V_CMPX_EQ_U16 = 186 - V_CMPX_LE_U16 = 187 - V_CMPX_GT_U16 = 188 - V_CMPX_NE_U16 = 189 - V_CMPX_GE_U16 = 190 - V_CMPX_LT_I32 = 193 - V_CMPX_EQ_I32 = 194 - V_CMPX_LE_I32 = 195 - V_CMPX_GT_I32 = 196 - V_CMPX_NE_I32 = 197 - V_CMPX_GE_I32 = 198 - V_CMPX_LT_U32 = 201 - V_CMPX_EQ_U32 = 202 - V_CMPX_LE_U32 = 203 - V_CMPX_GT_U32 = 204 - V_CMPX_NE_U32 = 205 - V_CMPX_GE_U32 = 206 - V_CMPX_LT_I64 = 209 - V_CMPX_EQ_I64 = 210 - V_CMPX_LE_I64 = 211 - V_CMPX_GT_I64 = 212 - V_CMPX_NE_I64 = 213 - V_CMPX_GE_I64 = 214 - V_CMPX_LT_U64 = 217 - V_CMPX_EQ_U64 = 218 - V_CMPX_LE_U64 = 219 - V_CMPX_GT_U64 = 220 - V_CMPX_NE_U64 = 221 - V_CMPX_GE_U64 = 222 - V_CMPX_CLASS_F16 = 253 - V_CMPX_CLASS_F32 = 254 - V_CMPX_CLASS_F64 = 255 - V_CNDMASK_B32 = 257 - V_ADD_F64 = 258 - V_ADD_F32 = 259 - V_SUB_F32 = 260 - V_SUBREV_F32 = 261 - V_MUL_F64 = 262 - V_MUL_DX9_ZERO_F32 = 263 - V_MUL_F32 = 264 - V_MUL_I32_I24 = 265 - V_MUL_HI_I32_I24 = 266 - V_MUL_U32_U24 = 267 - V_MUL_HI_U32_U24 = 268 - V_MIN_NUM_F64 = 269 - V_MAX_NUM_F64 = 270 - V_MIN_I32 = 273 - V_MAX_I32 = 274 - V_MIN_U32 = 275 - V_MAX_U32 = 276 - V_MIN_NUM_F32 = 277 - V_MAX_NUM_F32 = 278 - V_LSHLREV_B32 = 280 - V_LSHRREV_B32 = 281 - V_ASHRREV_I32 = 282 - V_AND_B32 = 283 - V_OR_B32 = 284 - V_XOR_B32 = 285 - V_XNOR_B32 = 286 - V_LSHLREV_B64 = 287 - V_ADD_NC_U32 = 293 - V_SUB_NC_U32 = 294 - V_SUBREV_NC_U32 = 295 - V_FMAC_F32 = 299 - V_CVT_PK_RTZ_F16_F32 = 303 - V_MIN_NUM_F16 = 304 - V_MAX_NUM_F16 = 305 - V_ADD_F16 = 306 - V_SUB_F16 = 307 - V_SUBREV_F16 = 308 - V_MUL_F16 = 309 - V_FMAC_F16 = 310 - V_LDEXP_F16 = 315 - V_NOP = 384 - V_MOV_B32 = 385 - V_READFIRSTLANE_B32 = 386 - V_CVT_I32_F64 = 387 - V_CVT_F64_I32 = 388 - V_CVT_F32_I32 = 389 - V_CVT_F32_U32 = 390 - V_CVT_U32_F32 = 391 - V_CVT_I32_F32 = 392 - V_CVT_F16_F32 = 394 - V_CVT_F32_F16 = 395 - V_CVT_NEAREST_I32_F32 = 396 - V_CVT_FLOOR_I32_F32 = 397 - V_CVT_OFF_F32_I4 = 398 - V_CVT_F32_F64 = 399 - V_CVT_F64_F32 = 400 - V_CVT_F32_UBYTE0 = 401 - V_CVT_F32_UBYTE1 = 402 - V_CVT_F32_UBYTE2 = 403 - V_CVT_F32_UBYTE3 = 404 - V_CVT_U32_F64 = 405 - V_CVT_F64_U32 = 406 - V_TRUNC_F64 = 407 - V_CEIL_F64 = 408 - V_RNDNE_F64 = 409 - V_FLOOR_F64 = 410 - V_PIPEFLUSH = 411 - V_MOV_B16 = 412 - V_FRACT_F32 = 416 - V_TRUNC_F32 = 417 - V_CEIL_F32 = 418 - V_RNDNE_F32 = 419 - V_FLOOR_F32 = 420 - V_EXP_F32 = 421 - V_LOG_F32 = 423 - V_RCP_F32 = 426 - V_RCP_IFLAG_F32 = 427 - V_RSQ_F32 = 430 - V_RCP_F64 = 431 - V_RSQ_F64 = 433 - V_SQRT_F32 = 435 - V_SQRT_F64 = 436 - V_SIN_F32 = 437 - V_COS_F32 = 438 - V_NOT_B32 = 439 - V_BFREV_B32 = 440 - V_CLZ_I32_U32 = 441 - V_CTZ_I32_B32 = 442 - V_CLS_I32 = 443 - V_FREXP_EXP_I32_F64 = 444 - V_FREXP_MANT_F64 = 445 - V_FRACT_F64 = 446 - V_FREXP_EXP_I32_F32 = 447 - V_FREXP_MANT_F32 = 448 - V_MOVRELD_B32 = 450 - V_MOVRELS_B32 = 451 - V_MOVRELSD_B32 = 452 - V_MOVRELSD_2_B32 = 456 - V_CVT_F16_U16 = 464 - V_CVT_F16_I16 = 465 - V_CVT_U16_F16 = 466 - V_CVT_I16_F16 = 467 - V_RCP_F16 = 468 - V_SQRT_F16 = 469 - V_RSQ_F16 = 470 - V_LOG_F16 = 471 - V_EXP_F16 = 472 - V_FREXP_MANT_F16 = 473 - V_FREXP_EXP_I16_F16 = 474 - V_FLOOR_F16 = 475 - V_CEIL_F16 = 476 - V_TRUNC_F16 = 477 - V_RNDNE_F16 = 478 - V_FRACT_F16 = 479 - V_SIN_F16 = 480 - V_COS_F16 = 481 - V_SAT_PK_U8_I16 = 482 - V_CVT_NORM_I16_F16 = 483 - V_CVT_NORM_U16_F16 = 484 - V_NOT_B16 = 489 - V_CVT_I32_I16 = 490 - V_CVT_U32_U16 = 491 - V_CVT_F32_FP8 = 492 - V_CVT_F32_BF8 = 493 - V_CVT_PK_F32_FP8 = 494 - V_CVT_PK_F32_BF8 = 495 - V_FMA_DX9_ZERO_F32 = 521 - V_MAD_I32_I24 = 522 - V_MAD_U32_U24 = 523 - V_CUBEID_F32 = 524 - V_CUBESC_F32 = 525 - V_CUBETC_F32 = 526 - V_CUBEMA_F32 = 527 - V_BFE_U32 = 528 - V_BFE_I32 = 529 - V_BFI_B32 = 530 - V_FMA_F32 = 531 - V_FMA_F64 = 532 - V_LERP_U8 = 533 - V_ALIGNBIT_B32 = 534 - V_ALIGNBYTE_B32 = 535 - V_MULLIT_F32 = 536 - V_MIN3_I32 = 538 - V_MIN3_U32 = 539 - V_MAX3_I32 = 541 - V_MAX3_U32 = 542 - V_MED3_I32 = 544 - V_MED3_U32 = 545 - V_SAD_U8 = 546 - V_SAD_HI_U8 = 547 - V_SAD_U16 = 548 - V_SAD_U32 = 549 - V_CVT_PK_U8_F32 = 550 - V_DIV_FIXUP_F32 = 551 - V_DIV_FIXUP_F64 = 552 - V_MIN3_NUM_F32 = 553 - V_MAX3_NUM_F32 = 554 - V_MIN3_NUM_F16 = 555 - V_MAX3_NUM_F16 = 556 - V_MINIMUM3_F32 = 557 - V_MAXIMUM3_F32 = 558 - V_MINIMUM3_F16 = 559 - V_MAXIMUM3_F16 = 560 - V_MED3_NUM_F32 = 561 - V_MED3_NUM_F16 = 562 - V_DIV_FMAS_F32 = 567 - V_DIV_FMAS_F64 = 568 - V_MSAD_U8 = 569 - V_QSAD_PK_U16_U8 = 570 - V_MQSAD_PK_U16_U8 = 571 - V_MQSAD_U32_U8 = 573 - V_XOR3_B32 = 576 - V_MAD_U16 = 577 - V_PERM_B32 = 580 - V_XAD_U32 = 581 - V_LSHL_ADD_U32 = 582 - V_ADD_LSHL_U32 = 583 - V_FMA_F16 = 584 - V_MIN3_I16 = 586 - V_MIN3_U16 = 587 - V_MAX3_I16 = 589 - V_MAX3_U16 = 590 - V_MED3_I16 = 592 - V_MED3_U16 = 593 - V_MAD_I16 = 595 - V_DIV_FIXUP_F16 = 596 - V_ADD3_U32 = 597 - V_LSHL_OR_B32 = 598 - V_AND_OR_B32 = 599 - V_OR3_B32 = 600 - V_MAD_U32_U16 = 601 - V_MAD_I32_I16 = 602 - V_PERMLANE16_B32 = 603 - V_PERMLANEX16_B32 = 604 - V_CNDMASK_B16 = 605 - V_MAXMIN_U32 = 610 - V_MINMAX_U32 = 611 - V_MAXMIN_I32 = 612 - V_MINMAX_I32 = 613 - V_DOT2_F16_F16 = 614 - V_DOT2_BF16_BF16 = 615 - V_MINMAX_NUM_F32 = 616 - V_MAXMIN_NUM_F32 = 617 - V_MINMAX_NUM_F16 = 618 - V_MAXMIN_NUM_F16 = 619 - V_MINIMUMMAXIMUM_F32 = 620 - V_MAXIMUMMINIMUM_F32 = 621 - V_MINIMUMMAXIMUM_F16 = 622 - V_MAXIMUMMINIMUM_F16 = 623 - V_S_EXP_F32 = 640 - V_S_EXP_F16 = 641 - V_S_LOG_F32 = 642 - V_S_LOG_F16 = 643 - V_S_RCP_F32 = 644 - V_S_RCP_F16 = 645 - V_S_RSQ_F32 = 646 - V_S_RSQ_F16 = 647 - V_S_SQRT_F32 = 648 - V_S_SQRT_F16 = 649 - V_ADD_NC_U16 = 771 - V_SUB_NC_U16 = 772 - V_MUL_LO_U16 = 773 - V_CVT_PK_I16_F32 = 774 - V_CVT_PK_U16_F32 = 775 - V_MAX_U16 = 777 - V_MAX_I16 = 778 - V_MIN_U16 = 779 - V_MIN_I16 = 780 - V_ADD_NC_I16 = 781 - V_SUB_NC_I16 = 782 - V_PERMLANE16_VAR_B32 = 783 - V_PERMLANEX16_VAR_B32 = 784 - V_PACK_B32_F16 = 785 - V_CVT_PK_NORM_I16_F16 = 786 - V_CVT_PK_NORM_U16_F16 = 787 - V_LDEXP_F32 = 796 - V_BFM_B32 = 797 - V_BCNT_U32_B32 = 798 - V_MBCNT_LO_U32_B32 = 799 - V_MBCNT_HI_U32_B32 = 800 - V_CVT_PK_NORM_I16_F32 = 801 - V_CVT_PK_NORM_U16_F32 = 802 - V_CVT_PK_U16_U32 = 803 - V_CVT_PK_I16_I32 = 804 - V_SUB_NC_I32 = 805 - V_ADD_NC_I32 = 806 - V_LDEXP_F64 = 811 - V_MUL_LO_U32 = 812 - V_MUL_HI_U32 = 813 - V_MUL_HI_I32 = 814 - V_TRIG_PREOP_F64 = 815 - V_LSHLREV_B16 = 824 - V_LSHRREV_B16 = 825 - V_ASHRREV_I16 = 826 - V_LSHRREV_B64 = 829 - V_ASHRREV_I64 = 830 - V_MINIMUM_F64 = 833 - V_MAXIMUM_F64 = 834 - V_READLANE_B32 = 864 - V_WRITELANE_B32 = 865 - V_AND_B16 = 866 - V_OR_B16 = 867 - V_XOR_B16 = 868 - V_MINIMUM_F32 = 869 - V_MAXIMUM_F32 = 870 - V_MINIMUM_F16 = 871 - V_MAXIMUM_F16 = 872 - V_CVT_PK_FP8_F32 = 873 - V_CVT_PK_BF8_F32 = 874 - V_CVT_SR_FP8_F32 = 875 - V_CVT_SR_BF8_F32 = 876 - -class VOP3POp(IntEnum): - V_PK_MAD_I16 = 0 - V_PK_MUL_LO_U16 = 1 - V_PK_ADD_I16 = 2 - V_PK_SUB_I16 = 3 - V_PK_LSHLREV_B16 = 4 - V_PK_LSHRREV_B16 = 5 - V_PK_ASHRREV_I16 = 6 - V_PK_MAX_I16 = 7 - V_PK_MIN_I16 = 8 - V_PK_MAD_U16 = 9 - V_PK_ADD_U16 = 10 - V_PK_SUB_U16 = 11 - V_PK_MAX_U16 = 12 - V_PK_MIN_U16 = 13 - V_PK_FMA_F16 = 14 - V_PK_ADD_F16 = 15 - V_PK_MUL_F16 = 16 - V_DOT2_F32_F16 = 19 - V_DOT4_I32_IU8 = 22 - V_DOT4_U32_U8 = 23 - V_DOT8_I32_IU4 = 24 - V_DOT8_U32_U4 = 25 - V_DOT2_F32_BF16 = 26 - V_PK_MIN_NUM_F16 = 27 - V_PK_MAX_NUM_F16 = 28 - V_PK_MINIMUM_F16 = 29 - V_PK_MAXIMUM_F16 = 30 - V_FMA_MIX_F32 = 32 - V_FMA_MIXLO_F16 = 33 - V_FMA_MIXHI_F16 = 34 - V_DOT4_F32_FP8_BF8 = 36 - V_DOT4_F32_BF8_FP8 = 37 - V_DOT4_F32_FP8_FP8 = 38 - V_DOT4_F32_BF8_BF8 = 39 - V_WMMA_F32_16X16X16_F16 = 64 - V_WMMA_F32_16X16X16_BF16 = 65 - V_WMMA_F16_16X16X16_F16 = 66 - V_WMMA_BF16_16X16X16_BF16 = 67 - V_WMMA_I32_16X16X16_IU8 = 68 - V_WMMA_I32_16X16X16_IU4 = 69 - V_WMMA_F32_16X16X16_FP8_FP8 = 70 - V_WMMA_F32_16X16X16_FP8_BF8 = 71 - V_WMMA_F32_16X16X16_BF8_FP8 = 72 - V_WMMA_F32_16X16X16_BF8_BF8 = 73 - V_WMMA_I32_16X16X32_IU4 = 74 - V_SWMMAC_F32_16X16X32_F16 = 80 - V_SWMMAC_F32_16X16X32_BF16 = 81 - V_SWMMAC_F16_16X16X32_F16 = 82 - V_SWMMAC_BF16_16X16X32_BF16 = 83 - V_SWMMAC_I32_16X16X32_IU8 = 84 - V_SWMMAC_I32_16X16X32_IU4 = 85 - V_SWMMAC_I32_16X16X64_IU4 = 86 - V_SWMMAC_F32_16X16X32_FP8_FP8 = 87 - V_SWMMAC_F32_16X16X32_FP8_BF8 = 88 - V_SWMMAC_F32_16X16X32_BF8_FP8 = 89 - V_SWMMAC_F32_16X16X32_BF8_BF8 = 90 - -class VOP3SDOp(IntEnum): - DWORD = 1 - V_ADD_CO_CI_U32 = 288 - V_SUB_CO_CI_U32 = 289 - V_SUBREV_CO_CI_U32 = 290 - V_DIV_SCALE_F32 = 764 - V_DIV_SCALE_F64 = 765 - V_MAD_CO_U64_U32 = 766 - V_MAD_CO_I64_I32 = 767 - V_ADD_CO_U32 = 768 - V_SUB_CO_U32 = 769 - V_SUBREV_CO_U32 = 770 - -class VOPCOp(IntEnum): - V_CMP_LT_F16 = 1 - V_CMP_EQ_F16 = 2 - V_CMP_LE_F16 = 3 - V_CMP_GT_F16 = 4 - V_CMP_LG_F16 = 5 - V_CMP_GE_F16 = 6 - V_CMP_O_F16 = 7 - V_CMP_U_F16 = 8 - V_CMP_NGE_F16 = 9 - V_CMP_NLG_F16 = 10 - V_CMP_NGT_F16 = 11 - V_CMP_NLE_F16 = 12 - V_CMP_NEQ_F16 = 13 - V_CMP_NLT_F16 = 14 - V_CMP_LT_F32 = 17 - V_CMP_EQ_F32 = 18 - V_CMP_LE_F32 = 19 - V_CMP_GT_F32 = 20 - V_CMP_LG_F32 = 21 - V_CMP_GE_F32 = 22 - V_CMP_O_F32 = 23 - V_CMP_U_F32 = 24 - V_CMP_NGE_F32 = 25 - V_CMP_NLG_F32 = 26 - V_CMP_NGT_F32 = 27 - V_CMP_NLE_F32 = 28 - V_CMP_NEQ_F32 = 29 - V_CMP_NLT_F32 = 30 - V_CMP_LT_F64 = 33 - V_CMP_EQ_F64 = 34 - V_CMP_LE_F64 = 35 - V_CMP_GT_F64 = 36 - V_CMP_LG_F64 = 37 - V_CMP_GE_F64 = 38 - V_CMP_O_F64 = 39 - V_CMP_U_F64 = 40 - V_CMP_NGE_F64 = 41 - V_CMP_NLG_F64 = 42 - V_CMP_NGT_F64 = 43 - V_CMP_NLE_F64 = 44 - V_CMP_NEQ_F64 = 45 - V_CMP_NLT_F64 = 46 - V_CMP_LT_I16 = 49 - V_CMP_EQ_I16 = 50 - V_CMP_LE_I16 = 51 - V_CMP_GT_I16 = 52 - V_CMP_NE_I16 = 53 - V_CMP_GE_I16 = 54 - V_CMP_LT_U16 = 57 - V_CMP_EQ_U16 = 58 - V_CMP_LE_U16 = 59 - V_CMP_GT_U16 = 60 - V_CMP_NE_U16 = 61 - V_CMP_GE_U16 = 62 - V_CMP_LT_I32 = 65 - V_CMP_EQ_I32 = 66 - V_CMP_LE_I32 = 67 - V_CMP_GT_I32 = 68 - V_CMP_NE_I32 = 69 - V_CMP_GE_I32 = 70 - V_CMP_LT_U32 = 73 - V_CMP_EQ_U32 = 74 - V_CMP_LE_U32 = 75 - V_CMP_GT_U32 = 76 - V_CMP_NE_U32 = 77 - V_CMP_GE_U32 = 78 - V_CMP_LT_I64 = 81 - V_CMP_EQ_I64 = 82 - V_CMP_LE_I64 = 83 - V_CMP_GT_I64 = 84 - V_CMP_NE_I64 = 85 - V_CMP_GE_I64 = 86 - V_CMP_LT_U64 = 89 - V_CMP_EQ_U64 = 90 - V_CMP_LE_U64 = 91 - V_CMP_GT_U64 = 92 - V_CMP_NE_U64 = 93 - V_CMP_GE_U64 = 94 - V_CMP_CLASS_F16 = 125 - V_CMP_CLASS_F32 = 126 - V_CMP_CLASS_F64 = 127 - V_CMPX_LT_F16 = 129 - V_CMPX_EQ_F16 = 130 - V_CMPX_LE_F16 = 131 - V_CMPX_GT_F16 = 132 - V_CMPX_LG_F16 = 133 - V_CMPX_GE_F16 = 134 - V_CMPX_O_F16 = 135 - V_CMPX_U_F16 = 136 - V_CMPX_NGE_F16 = 137 - V_CMPX_NLG_F16 = 138 - V_CMPX_NGT_F16 = 139 - V_CMPX_NLE_F16 = 140 - V_CMPX_NEQ_F16 = 141 - V_CMPX_NLT_F16 = 142 - V_CMPX_LT_F32 = 145 - V_CMPX_EQ_F32 = 146 - V_CMPX_LE_F32 = 147 - V_CMPX_GT_F32 = 148 - V_CMPX_LG_F32 = 149 - V_CMPX_GE_F32 = 150 - V_CMPX_O_F32 = 151 - V_CMPX_U_F32 = 152 - V_CMPX_NGE_F32 = 153 - V_CMPX_NLG_F32 = 154 - V_CMPX_NGT_F32 = 155 - V_CMPX_NLE_F32 = 156 - V_CMPX_NEQ_F32 = 157 - V_CMPX_NLT_F32 = 158 - V_CMPX_LT_F64 = 161 - V_CMPX_EQ_F64 = 162 - V_CMPX_LE_F64 = 163 - V_CMPX_GT_F64 = 164 - V_CMPX_LG_F64 = 165 - V_CMPX_GE_F64 = 166 - V_CMPX_O_F64 = 167 - V_CMPX_U_F64 = 168 - V_CMPX_NGE_F64 = 169 - V_CMPX_NLG_F64 = 170 - V_CMPX_NGT_F64 = 171 - V_CMPX_NLE_F64 = 172 - V_CMPX_NEQ_F64 = 173 - V_CMPX_NLT_F64 = 174 - V_CMPX_LT_I16 = 177 - V_CMPX_EQ_I16 = 178 - V_CMPX_LE_I16 = 179 - V_CMPX_GT_I16 = 180 - V_CMPX_NE_I16 = 181 - V_CMPX_GE_I16 = 182 - V_CMPX_LT_U16 = 185 - V_CMPX_EQ_U16 = 186 - V_CMPX_LE_U16 = 187 - V_CMPX_GT_U16 = 188 - V_CMPX_NE_U16 = 189 - V_CMPX_GE_U16 = 190 - V_CMPX_LT_I32 = 193 - V_CMPX_EQ_I32 = 194 - V_CMPX_LE_I32 = 195 - V_CMPX_GT_I32 = 196 - V_CMPX_NE_I32 = 197 - V_CMPX_GE_I32 = 198 - V_CMPX_LT_U32 = 201 - V_CMPX_EQ_U32 = 202 - V_CMPX_LE_U32 = 203 - V_CMPX_GT_U32 = 204 - V_CMPX_NE_U32 = 205 - V_CMPX_GE_U32 = 206 - V_CMPX_LT_I64 = 209 - V_CMPX_EQ_I64 = 210 - V_CMPX_LE_I64 = 211 - V_CMPX_GT_I64 = 212 - V_CMPX_NE_I64 = 213 - V_CMPX_GE_I64 = 214 - V_CMPX_LT_U64 = 217 - V_CMPX_EQ_U64 = 218 - V_CMPX_LE_U64 = 219 - V_CMPX_GT_U64 = 220 - V_CMPX_NE_U64 = 221 - V_CMPX_GE_U64 = 222 - V_CMPX_CLASS_F16 = 253 - V_CMPX_CLASS_F32 = 254 - V_CMPX_CLASS_F64 = 255 - -class VOPDOp(IntEnum): - V_DUAL_FMAC_F32 = 0 - V_DUAL_FMAAK_F32 = 1 - V_DUAL_FMAMK_F32 = 2 - V_DUAL_MUL_F32 = 3 - V_DUAL_ADD_F32 = 4 - V_DUAL_SUB_F32 = 5 - V_DUAL_SUBREV_F32 = 6 - V_DUAL_MUL_DX9_ZERO_F32 = 7 - V_DUAL_MOV_B32 = 8 - V_DUAL_CNDMASK_B32 = 9 - V_DUAL_MAX_NUM_F32 = 10 - V_DUAL_MIN_NUM_F32 = 11 - V_DUAL_DOT2ACC_F32_F16 = 12 - V_DUAL_DOT2ACC_F32_BF16 = 13 - V_DUAL_ADD_NC_U32 = 16 - V_DUAL_LSHLREV_B32 = 17 - V_DUAL_AND_B32 = 18 - -class VSAMPLEOp(IntEnum): - IMAGE_MSAA_LOAD = 24 - IMAGE_SAMPLE = 27 - IMAGE_SAMPLE_D = 28 - IMAGE_SAMPLE_L = 29 - IMAGE_SAMPLE_B = 30 - IMAGE_SAMPLE_LZ = 31 - IMAGE_SAMPLE_C = 32 - IMAGE_SAMPLE_C_D = 33 - IMAGE_SAMPLE_C_L = 34 - IMAGE_SAMPLE_C_B = 35 - IMAGE_SAMPLE_C_LZ = 36 - IMAGE_SAMPLE_O = 37 - IMAGE_SAMPLE_D_O = 38 - IMAGE_SAMPLE_L_O = 39 - IMAGE_SAMPLE_B_O = 40 - IMAGE_SAMPLE_LZ_O = 41 - IMAGE_SAMPLE_C_O = 42 - IMAGE_SAMPLE_C_D_O = 43 - IMAGE_SAMPLE_C_L_O = 44 - IMAGE_SAMPLE_C_B_O = 45 - IMAGE_SAMPLE_C_LZ_O = 46 - IMAGE_GATHER4 = 47 - IMAGE_GATHER4_L = 48 - IMAGE_GATHER4_B = 49 - IMAGE_GATHER4_LZ = 50 - IMAGE_GATHER4_C = 51 - IMAGE_GATHER4_C_LZ = 52 - IMAGE_GATHER4_O = 53 - IMAGE_GATHER4_LZ_O = 54 - IMAGE_GATHER4_C_LZ_O = 55 - IMAGE_GET_LOD = 56 - IMAGE_SAMPLE_D_G16 = 57 - IMAGE_SAMPLE_C_D_G16 = 58 - IMAGE_SAMPLE_D_O_G16 = 59 - IMAGE_SAMPLE_C_D_O_G16 = 60 - IMAGE_SAMPLE_CL = 64 - IMAGE_SAMPLE_D_CL = 65 - IMAGE_SAMPLE_B_CL = 66 - IMAGE_SAMPLE_C_CL = 67 - IMAGE_SAMPLE_C_D_CL = 68 - IMAGE_SAMPLE_C_B_CL = 69 - IMAGE_SAMPLE_CL_O = 70 - IMAGE_SAMPLE_D_CL_O = 71 - IMAGE_SAMPLE_B_CL_O = 72 - IMAGE_SAMPLE_C_CL_O = 73 - IMAGE_SAMPLE_C_D_CL_O = 74 - IMAGE_SAMPLE_C_B_CL_O = 75 - IMAGE_SAMPLE_C_D_CL_G16 = 84 - IMAGE_SAMPLE_D_CL_O_G16 = 85 - IMAGE_SAMPLE_C_D_CL_O_G16 = 86 - IMAGE_SAMPLE_D_CL_G16 = 95 - IMAGE_GATHER4_CL = 96 - IMAGE_GATHER4_B_CL = 97 - IMAGE_GATHER4_C_CL = 98 - IMAGE_GATHER4_C_L = 99 - IMAGE_GATHER4_C_B = 100 - IMAGE_GATHER4_C_B_CL = 101 - IMAGE_GATHER4H = 144 - -class VSCRATCHOp(IntEnum): - SCRATCH_LOAD_U8 = 16 - SCRATCH_LOAD_I8 = 17 - SCRATCH_LOAD_U16 = 18 - SCRATCH_LOAD_I16 = 19 - SCRATCH_LOAD_B32 = 20 - SCRATCH_LOAD_B64 = 21 - SCRATCH_LOAD_B96 = 22 - SCRATCH_LOAD_B128 = 23 - SCRATCH_STORE_B8 = 24 - SCRATCH_STORE_B16 = 25 - SCRATCH_STORE_B32 = 26 - SCRATCH_STORE_B64 = 27 - SCRATCH_STORE_B96 = 28 - SCRATCH_STORE_B128 = 29 - SCRATCH_LOAD_D16_U8 = 30 - SCRATCH_LOAD_D16_I8 = 31 - SCRATCH_LOAD_D16_B16 = 32 - SCRATCH_LOAD_D16_HI_U8 = 33 - SCRATCH_LOAD_D16_HI_I8 = 34 - SCRATCH_LOAD_D16_HI_B16 = 35 - SCRATCH_STORE_D16_HI_B8 = 36 - SCRATCH_STORE_D16_HI_B16 = 37 - SCRATCH_LOAD_BLOCK = 83 - SCRATCH_STORE_BLOCK = 84 - -# instruction formats -class DPP16(Inst64): - src0:Src = bits[39:32] - dpp_ctrl = bits[48:40] - fi = bits[50] - bc = bits[51] - src0_neg = bits[52] - src0_abs = bits[53] - src1_neg = bits[54] - src1_abs = bits[55] - bank_mask = bits[59:56] - row_mask = bits[63:60] - -class DPP8(Inst64): - src0:Src = bits[39:32] - lane_sel0 = bits[42:40] - lane_sel1 = bits[45:43] - lane_sel2 = bits[48:46] - lane_sel3 = bits[51:49] - lane_sel4 = bits[54:52] - lane_sel5 = bits[57:55] - lane_sel6 = bits[60:58] - lane_sel7 = bits[63:61] - -class SMEM(Inst64): - encoding = bits[31:26] == 0b111101 - op:Annotated[BitField, SMEMOp] = bits[18:13] - sdata:SGPRField = bits[12:6] - sbase:SGPRField = bits[5:0] - soffset:SSrc = bits[63:57] - scope = bits[22:21] - th = bits[24:23] - ioffset = bits[55:32] - -class SOP1(Inst32): - encoding = bits[31:23] == 0b101111101 - op:Annotated[BitField, SOP1Op] = bits[15:8] - sdst:SGPRField = bits[22:16] - ssrc0:SSrc = bits[7:0] - -class SOP2(Inst32): - encoding = bits[31:30] == 0b10 - op:Annotated[BitField, SOP2Op] = bits[29:23] - sdst:SGPRField = bits[22:16] - ssrc0:SSrc = bits[7:0] - ssrc1:SSrc = bits[15:8] - -class SOPC(Inst32): - encoding = bits[31:23] == 0b101111110 - op:Annotated[BitField, SOPCOp] = bits[22:16] - ssrc0:SSrc = bits[7:0] - ssrc1:SSrc = bits[15:8] - -class SOPK(Inst32): - encoding = bits[31:28] == 0b1011 - op:Annotated[BitField, SOPKOp] = bits[27:23] - sdst:SGPRField = bits[22:16] - simm16:SImm = bits[15:0] - -class SOPP(Inst32): - encoding = bits[31:23] == 0b101111111 - op:Annotated[BitField, SOPPOp] = bits[22:16] - simm16:SImm = bits[15:0] - -class VBUFFER(Inst64): - encoding = bits[31:26] == 0b110001 - soffset:SSrc = bits[6:0] - op:Annotated[BitField, VBUFFEROp] = bits[21:14] - tfe = bits[22] - vdata:VGPRField = bits[39:32] - rsrc = bits[49:41] - scope = bits[51:50] - th = bits[54:52] - format = bits[61:55] - offen = bits[62] - idxen = bits[63] - vaddr:VGPRField = bits[71:64] - ioffset = bits[95:72] - -class VDS(Inst64): - encoding = bits[31:26] == 0b110110 - offset0 = bits[7:0] - offset1 = bits[15:8] - op = bits[25:18] - addr:VGPRField = bits[39:32] - data0:VGPRField = bits[47:40] - data1:VGPRField = bits[55:48] - vdst:VGPRField = bits[63:56] - -class VDSDIR(Inst64): - encoding = bits[31:24] == 0b11001101 - vdst:VGPRField = bits[7:0] - waitexp = bits[10:8] - opsel = bits[14:11] - cm = bits[15] - op:Annotated[BitField, VDSDIROp] = bits[20:16] - src0:Src = bits[40:32] - src1:Src = bits[49:41] - src2:Src = bits[58:50] - neg = bits[63:61] - -class VEXPORT(Inst64): - encoding = bits[31:26] == 0b111110 - en = bits[3:0] - target = bits[9:4] - done = bits[11] - row = bits[13] - vsrc0 = bits[39:32] - vsrc1:VGPRField = bits[47:40] - vsrc2 = bits[55:48] - vsrc3 = bits[63:56] - -class VINTERP(Inst64): - encoding = bits[31:24] == 0b11001101 - op:Annotated[BitField, VINTERPOp] = bits[20:16] - vdst:VGPRField = bits[7:0] - src0:Src = bits[40:32] - src1:Src = bits[49:41] - src2:Src = bits[58:50] - waitexp = bits[10:8] - opsel = bits[14:11] - neg = bits[63:61] - cm = bits[15] - -class VOP1(Inst32): - encoding = bits[31:25] == 0b111111 - op:Annotated[BitField, VOP1Op] = bits[15:9] - vdst:VGPRField = bits[24:17] - src0:Src = bits[8:0] - -class VOP2(Inst32): - encoding = bits[31] == 0 - op:Annotated[BitField, VOP2Op] = bits[30:25] - vdst:VGPRField = bits[24:17] - src0:Src = bits[8:0] - vsrc1:VGPRField = bits[16:9] - -class VOP3(Inst64): - encoding = bits[31:26] == 0b110101 - op:Annotated[BitField, VOP3Op] = bits[25:16] - vdst:VGPRField = bits[7:0] - src0:Src = bits[40:32] - src1:Src = bits[49:41] - src2:Src = bits[58:50] - omod = bits[60:59] - neg = bits[63:61] - abs = bits[10:8] - opsel = bits[14:11] - cm = bits[15] - -class VOP3P(Inst64): - encoding = bits[31:24] == 0b11001100 - _defaults = {'opsel_hi': 3, 'opsel_hi2': 1} - op:Annotated[BitField, VOP3POp] = bits[22:16] - vdst:VGPRField = bits[7:0] - src0:Src = bits[40:32] - src1:Src = bits[49:41] - src2:Src = bits[58:50] - neg = bits[63:61] - neg_hi = bits[10:8] - opsel = bits[13:11] - opsel_hi = bits[60:59] - opsel_hi2 = bits[14] - cm = bits[15] - -class VOP3SD(Inst64): - encoding = bits[31:26] == 0b110101 - op:Annotated[BitField, VOP3SDOp] = bits[25:16] - vdst:VGPRField = bits[7:0] - sdst:SGPRField = bits[14:8] - src0:Src = bits[40:32] - src1:Src = bits[49:41] - src2:Src = bits[58:50] - cm = bits[15] - omod = bits[60:59] - neg = bits[63:61] - -class VOPC(Inst32): - encoding = bits[31:25] == 0b111110 - op:Annotated[BitField, VOPCOp] = bits[24:17] - src0:Src = bits[8:0] - vsrc1:VGPRField = bits[16:9] - -class VOPD(Inst64): - encoding = bits[31:26] == 0b110010 - opx:Annotated[BitField, VOPDOp] = bits[25:22] - opy:Annotated[BitField, VOPDOp] = bits[21:17] - vdstx:VGPRField = bits[63:56] - vdsty:VDSTYEnc = bits[55:49] - srcx0:Src = bits[8:0] - vsrcx1:VGPRField = bits[16:9] - srcy0:Src = bits[40:32] - vsrcy1:VGPRField = bits[48:41] - -# instruction helpers -s_load_b32 = functools.partial(SMEM, SMEMOp.S_LOAD_B32) -s_load_b64 = functools.partial(SMEM, SMEMOp.S_LOAD_B64) -s_load_b128 = functools.partial(SMEM, SMEMOp.S_LOAD_B128) -s_load_b256 = functools.partial(SMEM, SMEMOp.S_LOAD_B256) -s_load_b512 = functools.partial(SMEM, SMEMOp.S_LOAD_B512) -s_load_b96 = functools.partial(SMEM, SMEMOp.S_LOAD_B96) -s_load_i8 = functools.partial(SMEM, SMEMOp.S_LOAD_I8) -s_load_u8 = functools.partial(SMEM, SMEMOp.S_LOAD_U8) -s_load_i16 = functools.partial(SMEM, SMEMOp.S_LOAD_I16) -s_load_u16 = functools.partial(SMEM, SMEMOp.S_LOAD_U16) -s_buffer_load_b32 = functools.partial(SMEM, SMEMOp.S_BUFFER_LOAD_B32) -s_buffer_load_b64 = functools.partial(SMEM, SMEMOp.S_BUFFER_LOAD_B64) -s_buffer_load_b128 = functools.partial(SMEM, SMEMOp.S_BUFFER_LOAD_B128) -s_buffer_load_b256 = functools.partial(SMEM, SMEMOp.S_BUFFER_LOAD_B256) -s_buffer_load_b512 = functools.partial(SMEM, SMEMOp.S_BUFFER_LOAD_B512) -s_buffer_load_b96 = functools.partial(SMEM, SMEMOp.S_BUFFER_LOAD_B96) -s_buffer_load_i8 = functools.partial(SMEM, SMEMOp.S_BUFFER_LOAD_I8) -s_buffer_load_u8 = functools.partial(SMEM, SMEMOp.S_BUFFER_LOAD_U8) -s_buffer_load_i16 = functools.partial(SMEM, SMEMOp.S_BUFFER_LOAD_I16) -s_buffer_load_u16 = functools.partial(SMEM, SMEMOp.S_BUFFER_LOAD_U16) -s_dcache_inv = functools.partial(SMEM, SMEMOp.S_DCACHE_INV) -s_prefetch_inst = functools.partial(SMEM, SMEMOp.S_PREFETCH_INST) -s_prefetch_inst_pc_rel = functools.partial(SMEM, SMEMOp.S_PREFETCH_INST_PC_REL) -s_prefetch_data = functools.partial(SMEM, SMEMOp.S_PREFETCH_DATA) -s_buffer_prefetch_data = functools.partial(SMEM, SMEMOp.S_BUFFER_PREFETCH_DATA) -s_prefetch_data_pc_rel = functools.partial(SMEM, SMEMOp.S_PREFETCH_DATA_PC_REL) -s_mov_b32 = functools.partial(SOP1, SOP1Op.S_MOV_B32) -s_mov_b64 = functools.partial(SOP1, SOP1Op.S_MOV_B64) -s_cmov_b32 = functools.partial(SOP1, SOP1Op.S_CMOV_B32) -s_cmov_b64 = functools.partial(SOP1, SOP1Op.S_CMOV_B64) -s_brev_b32 = functools.partial(SOP1, SOP1Op.S_BREV_B32) -s_brev_b64 = functools.partial(SOP1, SOP1Op.S_BREV_B64) -s_ctz_i32_b32 = functools.partial(SOP1, SOP1Op.S_CTZ_I32_B32) -s_ctz_i32_b64 = functools.partial(SOP1, SOP1Op.S_CTZ_I32_B64) -s_clz_i32_u32 = functools.partial(SOP1, SOP1Op.S_CLZ_I32_U32) -s_clz_i32_u64 = functools.partial(SOP1, SOP1Op.S_CLZ_I32_U64) -s_cls_i32 = functools.partial(SOP1, SOP1Op.S_CLS_I32) -s_cls_i32_i64 = functools.partial(SOP1, SOP1Op.S_CLS_I32_I64) -s_sext_i32_i8 = functools.partial(SOP1, SOP1Op.S_SEXT_I32_I8) -s_sext_i32_i16 = functools.partial(SOP1, SOP1Op.S_SEXT_I32_I16) -s_bitset0_b32 = functools.partial(SOP1, SOP1Op.S_BITSET0_B32) -s_bitset0_b64 = functools.partial(SOP1, SOP1Op.S_BITSET0_B64) -s_bitset1_b32 = functools.partial(SOP1, SOP1Op.S_BITSET1_B32) -s_bitset1_b64 = functools.partial(SOP1, SOP1Op.S_BITSET1_B64) -s_bitreplicate_b64_b32 = functools.partial(SOP1, SOP1Op.S_BITREPLICATE_B64_B32) -s_abs_i32 = functools.partial(SOP1, SOP1Op.S_ABS_I32) -s_bcnt0_i32_b32 = functools.partial(SOP1, SOP1Op.S_BCNT0_I32_B32) -s_bcnt0_i32_b64 = functools.partial(SOP1, SOP1Op.S_BCNT0_I32_B64) -s_bcnt1_i32_b32 = functools.partial(SOP1, SOP1Op.S_BCNT1_I32_B32) -s_bcnt1_i32_b64 = functools.partial(SOP1, SOP1Op.S_BCNT1_I32_B64) -s_quadmask_b32 = functools.partial(SOP1, SOP1Op.S_QUADMASK_B32) -s_quadmask_b64 = functools.partial(SOP1, SOP1Op.S_QUADMASK_B64) -s_wqm_b32 = functools.partial(SOP1, SOP1Op.S_WQM_B32) -s_wqm_b64 = functools.partial(SOP1, SOP1Op.S_WQM_B64) -s_not_b32 = functools.partial(SOP1, SOP1Op.S_NOT_B32) -s_not_b64 = functools.partial(SOP1, SOP1Op.S_NOT_B64) -s_and_saveexec_b32 = functools.partial(SOP1, SOP1Op.S_AND_SAVEEXEC_B32) -s_and_saveexec_b64 = functools.partial(SOP1, SOP1Op.S_AND_SAVEEXEC_B64) -s_or_saveexec_b32 = functools.partial(SOP1, SOP1Op.S_OR_SAVEEXEC_B32) -s_or_saveexec_b64 = functools.partial(SOP1, SOP1Op.S_OR_SAVEEXEC_B64) -s_xor_saveexec_b32 = functools.partial(SOP1, SOP1Op.S_XOR_SAVEEXEC_B32) -s_xor_saveexec_b64 = functools.partial(SOP1, SOP1Op.S_XOR_SAVEEXEC_B64) -s_nand_saveexec_b32 = functools.partial(SOP1, SOP1Op.S_NAND_SAVEEXEC_B32) -s_nand_saveexec_b64 = functools.partial(SOP1, SOP1Op.S_NAND_SAVEEXEC_B64) -s_nor_saveexec_b32 = functools.partial(SOP1, SOP1Op.S_NOR_SAVEEXEC_B32) -s_nor_saveexec_b64 = functools.partial(SOP1, SOP1Op.S_NOR_SAVEEXEC_B64) -s_xnor_saveexec_b32 = functools.partial(SOP1, SOP1Op.S_XNOR_SAVEEXEC_B32) -s_xnor_saveexec_b64 = functools.partial(SOP1, SOP1Op.S_XNOR_SAVEEXEC_B64) -s_and_not0_saveexec_b32 = functools.partial(SOP1, SOP1Op.S_AND_NOT0_SAVEEXEC_B32) -s_and_not0_saveexec_b64 = functools.partial(SOP1, SOP1Op.S_AND_NOT0_SAVEEXEC_B64) -s_or_not0_saveexec_b32 = functools.partial(SOP1, SOP1Op.S_OR_NOT0_SAVEEXEC_B32) -s_or_not0_saveexec_b64 = functools.partial(SOP1, SOP1Op.S_OR_NOT0_SAVEEXEC_B64) -s_and_not1_saveexec_b32 = functools.partial(SOP1, SOP1Op.S_AND_NOT1_SAVEEXEC_B32) -s_and_not1_saveexec_b64 = functools.partial(SOP1, SOP1Op.S_AND_NOT1_SAVEEXEC_B64) -s_or_not1_saveexec_b32 = functools.partial(SOP1, SOP1Op.S_OR_NOT1_SAVEEXEC_B32) -s_or_not1_saveexec_b64 = functools.partial(SOP1, SOP1Op.S_OR_NOT1_SAVEEXEC_B64) -s_and_not0_wrexec_b32 = functools.partial(SOP1, SOP1Op.S_AND_NOT0_WREXEC_B32) -s_and_not0_wrexec_b64 = functools.partial(SOP1, SOP1Op.S_AND_NOT0_WREXEC_B64) -s_and_not1_wrexec_b32 = functools.partial(SOP1, SOP1Op.S_AND_NOT1_WREXEC_B32) -s_and_not1_wrexec_b64 = functools.partial(SOP1, SOP1Op.S_AND_NOT1_WREXEC_B64) -s_movrels_b32 = functools.partial(SOP1, SOP1Op.S_MOVRELS_B32) -s_movrels_b64 = functools.partial(SOP1, SOP1Op.S_MOVRELS_B64) -s_movreld_b32 = functools.partial(SOP1, SOP1Op.S_MOVRELD_B32) -s_movreld_b64 = functools.partial(SOP1, SOP1Op.S_MOVRELD_B64) -s_movrelsd_2_b32 = functools.partial(SOP1, SOP1Op.S_MOVRELSD_2_B32) -s_getpc_b64 = functools.partial(SOP1, SOP1Op.S_GETPC_B64) -s_setpc_b64 = functools.partial(SOP1, SOP1Op.S_SETPC_B64) -s_swappc_b64 = functools.partial(SOP1, SOP1Op.S_SWAPPC_B64) -s_rfe_b64 = functools.partial(SOP1, SOP1Op.S_RFE_B64) -s_sendmsg_rtn_b32 = functools.partial(SOP1, SOP1Op.S_SENDMSG_RTN_B32) -s_sendmsg_rtn_b64 = functools.partial(SOP1, SOP1Op.S_SENDMSG_RTN_B64) -s_barrier_signal = functools.partial(SOP1, SOP1Op.S_BARRIER_SIGNAL) -s_barrier_signal_isfirst = functools.partial(SOP1, SOP1Op.S_BARRIER_SIGNAL_ISFIRST) -s_get_barrier_state = functools.partial(SOP1, SOP1Op.S_GET_BARRIER_STATE) -s_alloc_vgpr = functools.partial(SOP1, SOP1Op.S_ALLOC_VGPR) -s_sleep_var = functools.partial(SOP1, SOP1Op.S_SLEEP_VAR) -s_ceil_f32 = functools.partial(SOP1, SOP1Op.S_CEIL_F32) -s_floor_f32 = functools.partial(SOP1, SOP1Op.S_FLOOR_F32) -s_trunc_f32 = functools.partial(SOP1, SOP1Op.S_TRUNC_F32) -s_rndne_f32 = functools.partial(SOP1, SOP1Op.S_RNDNE_F32) -s_cvt_f32_i32 = functools.partial(SOP1, SOP1Op.S_CVT_F32_I32) -s_cvt_f32_u32 = functools.partial(SOP1, SOP1Op.S_CVT_F32_U32) -s_cvt_i32_f32 = functools.partial(SOP1, SOP1Op.S_CVT_I32_F32) -s_cvt_u32_f32 = functools.partial(SOP1, SOP1Op.S_CVT_U32_F32) -s_cvt_f16_f32 = functools.partial(SOP1, SOP1Op.S_CVT_F16_F32) -s_cvt_f32_f16 = functools.partial(SOP1, SOP1Op.S_CVT_F32_F16) -s_cvt_hi_f32_f16 = functools.partial(SOP1, SOP1Op.S_CVT_HI_F32_F16) -s_ceil_f16 = functools.partial(SOP1, SOP1Op.S_CEIL_F16) -s_floor_f16 = functools.partial(SOP1, SOP1Op.S_FLOOR_F16) -s_trunc_f16 = functools.partial(SOP1, SOP1Op.S_TRUNC_F16) -s_rndne_f16 = functools.partial(SOP1, SOP1Op.S_RNDNE_F16) -s_add_co_u32 = functools.partial(SOP2, SOP2Op.S_ADD_CO_U32) -s_sub_co_u32 = functools.partial(SOP2, SOP2Op.S_SUB_CO_U32) -s_add_co_i32 = functools.partial(SOP2, SOP2Op.S_ADD_CO_I32) -s_sub_co_i32 = functools.partial(SOP2, SOP2Op.S_SUB_CO_I32) -s_add_co_ci_u32 = functools.partial(SOP2, SOP2Op.S_ADD_CO_CI_U32) -s_sub_co_ci_u32 = functools.partial(SOP2, SOP2Op.S_SUB_CO_CI_U32) -s_absdiff_i32 = functools.partial(SOP2, SOP2Op.S_ABSDIFF_I32) -s_lshl_b32 = functools.partial(SOP2, SOP2Op.S_LSHL_B32) -s_lshl_b64 = functools.partial(SOP2, SOP2Op.S_LSHL_B64) -s_lshr_b32 = functools.partial(SOP2, SOP2Op.S_LSHR_B32) -s_lshr_b64 = functools.partial(SOP2, SOP2Op.S_LSHR_B64) -s_ashr_i32 = functools.partial(SOP2, SOP2Op.S_ASHR_I32) -s_ashr_i64 = functools.partial(SOP2, SOP2Op.S_ASHR_I64) -s_lshl1_add_u32 = functools.partial(SOP2, SOP2Op.S_LSHL1_ADD_U32) -s_lshl2_add_u32 = functools.partial(SOP2, SOP2Op.S_LSHL2_ADD_U32) -s_lshl3_add_u32 = functools.partial(SOP2, SOP2Op.S_LSHL3_ADD_U32) -s_lshl4_add_u32 = functools.partial(SOP2, SOP2Op.S_LSHL4_ADD_U32) -s_min_i32 = functools.partial(SOP2, SOP2Op.S_MIN_I32) -s_min_u32 = functools.partial(SOP2, SOP2Op.S_MIN_U32) -s_max_i32 = functools.partial(SOP2, SOP2Op.S_MAX_I32) -s_max_u32 = functools.partial(SOP2, SOP2Op.S_MAX_U32) -s_and_b32 = functools.partial(SOP2, SOP2Op.S_AND_B32) -s_and_b64 = functools.partial(SOP2, SOP2Op.S_AND_B64) -s_or_b32 = functools.partial(SOP2, SOP2Op.S_OR_B32) -s_or_b64 = functools.partial(SOP2, SOP2Op.S_OR_B64) -s_xor_b32 = functools.partial(SOP2, SOP2Op.S_XOR_B32) -s_xor_b64 = functools.partial(SOP2, SOP2Op.S_XOR_B64) -s_nand_b32 = functools.partial(SOP2, SOP2Op.S_NAND_B32) -s_nand_b64 = functools.partial(SOP2, SOP2Op.S_NAND_B64) -s_nor_b32 = functools.partial(SOP2, SOP2Op.S_NOR_B32) -s_nor_b64 = functools.partial(SOP2, SOP2Op.S_NOR_B64) -s_xnor_b32 = functools.partial(SOP2, SOP2Op.S_XNOR_B32) -s_xnor_b64 = functools.partial(SOP2, SOP2Op.S_XNOR_B64) -s_and_not1_b32 = functools.partial(SOP2, SOP2Op.S_AND_NOT1_B32) -s_and_not1_b64 = functools.partial(SOP2, SOP2Op.S_AND_NOT1_B64) -s_or_not1_b32 = functools.partial(SOP2, SOP2Op.S_OR_NOT1_B32) -s_or_not1_b64 = functools.partial(SOP2, SOP2Op.S_OR_NOT1_B64) -s_bfe_u32 = functools.partial(SOP2, SOP2Op.S_BFE_U32) -s_bfe_i32 = functools.partial(SOP2, SOP2Op.S_BFE_I32) -s_bfe_u64 = functools.partial(SOP2, SOP2Op.S_BFE_U64) -s_bfe_i64 = functools.partial(SOP2, SOP2Op.S_BFE_I64) -s_bfm_b32 = functools.partial(SOP2, SOP2Op.S_BFM_B32) -s_bfm_b64 = functools.partial(SOP2, SOP2Op.S_BFM_B64) -s_mul_i32 = functools.partial(SOP2, SOP2Op.S_MUL_I32) -s_mul_hi_u32 = functools.partial(SOP2, SOP2Op.S_MUL_HI_U32) -s_mul_hi_i32 = functools.partial(SOP2, SOP2Op.S_MUL_HI_I32) -s_cselect_b32 = functools.partial(SOP2, SOP2Op.S_CSELECT_B32) -s_cselect_b64 = functools.partial(SOP2, SOP2Op.S_CSELECT_B64) -s_pack_ll_b32_b16 = functools.partial(SOP2, SOP2Op.S_PACK_LL_B32_B16) -s_pack_lh_b32_b16 = functools.partial(SOP2, SOP2Op.S_PACK_LH_B32_B16) -s_pack_hh_b32_b16 = functools.partial(SOP2, SOP2Op.S_PACK_HH_B32_B16) -s_pack_hl_b32_b16 = functools.partial(SOP2, SOP2Op.S_PACK_HL_B32_B16) -s_add_f32 = functools.partial(SOP2, SOP2Op.S_ADD_F32) -s_sub_f32 = functools.partial(SOP2, SOP2Op.S_SUB_F32) -s_min_num_f32 = functools.partial(SOP2, SOP2Op.S_MIN_NUM_F32) -s_max_num_f32 = functools.partial(SOP2, SOP2Op.S_MAX_NUM_F32) -s_mul_f32 = functools.partial(SOP2, SOP2Op.S_MUL_F32) -s_fmaak_f32 = functools.partial(SOP2, SOP2Op.S_FMAAK_F32) -s_fmamk_f32 = functools.partial(SOP2, SOP2Op.S_FMAMK_F32) -s_fmac_f32 = functools.partial(SOP2, SOP2Op.S_FMAC_F32) -s_cvt_pk_rtz_f16_f32 = functools.partial(SOP2, SOP2Op.S_CVT_PK_RTZ_F16_F32) -s_add_f16 = functools.partial(SOP2, SOP2Op.S_ADD_F16) -s_sub_f16 = functools.partial(SOP2, SOP2Op.S_SUB_F16) -s_min_num_f16 = functools.partial(SOP2, SOP2Op.S_MIN_NUM_F16) -s_max_num_f16 = functools.partial(SOP2, SOP2Op.S_MAX_NUM_F16) -s_mul_f16 = functools.partial(SOP2, SOP2Op.S_MUL_F16) -s_fmac_f16 = functools.partial(SOP2, SOP2Op.S_FMAC_F16) -s_minimum_f32 = functools.partial(SOP2, SOP2Op.S_MINIMUM_F32) -s_maximum_f32 = functools.partial(SOP2, SOP2Op.S_MAXIMUM_F32) -s_minimum_f16 = functools.partial(SOP2, SOP2Op.S_MINIMUM_F16) -s_maximum_f16 = functools.partial(SOP2, SOP2Op.S_MAXIMUM_F16) -s_add_nc_u64 = functools.partial(SOP2, SOP2Op.S_ADD_NC_U64) -s_sub_nc_u64 = functools.partial(SOP2, SOP2Op.S_SUB_NC_U64) -s_mul_u64 = functools.partial(SOP2, SOP2Op.S_MUL_U64) -s_cmp_eq_i32 = functools.partial(SOPC, SOPCOp.S_CMP_EQ_I32) -s_cmp_lg_i32 = functools.partial(SOPC, SOPCOp.S_CMP_LG_I32) -s_cmp_gt_i32 = functools.partial(SOPC, SOPCOp.S_CMP_GT_I32) -s_cmp_ge_i32 = functools.partial(SOPC, SOPCOp.S_CMP_GE_I32) -s_cmp_lt_i32 = functools.partial(SOPC, SOPCOp.S_CMP_LT_I32) -s_cmp_le_i32 = functools.partial(SOPC, SOPCOp.S_CMP_LE_I32) -s_cmp_eq_u32 = functools.partial(SOPC, SOPCOp.S_CMP_EQ_U32) -s_cmp_lg_u32 = functools.partial(SOPC, SOPCOp.S_CMP_LG_U32) -s_cmp_gt_u32 = functools.partial(SOPC, SOPCOp.S_CMP_GT_U32) -s_cmp_ge_u32 = functools.partial(SOPC, SOPCOp.S_CMP_GE_U32) -s_cmp_lt_u32 = functools.partial(SOPC, SOPCOp.S_CMP_LT_U32) -s_cmp_le_u32 = functools.partial(SOPC, SOPCOp.S_CMP_LE_U32) -s_bitcmp0_b32 = functools.partial(SOPC, SOPCOp.S_BITCMP0_B32) -s_bitcmp1_b32 = functools.partial(SOPC, SOPCOp.S_BITCMP1_B32) -s_bitcmp0_b64 = functools.partial(SOPC, SOPCOp.S_BITCMP0_B64) -s_bitcmp1_b64 = functools.partial(SOPC, SOPCOp.S_BITCMP1_B64) -s_cmp_eq_u64 = functools.partial(SOPC, SOPCOp.S_CMP_EQ_U64) -s_cmp_lg_u64 = functools.partial(SOPC, SOPCOp.S_CMP_LG_U64) -s_cmp_lt_f32 = functools.partial(SOPC, SOPCOp.S_CMP_LT_F32) -s_cmp_eq_f32 = functools.partial(SOPC, SOPCOp.S_CMP_EQ_F32) -s_cmp_le_f32 = functools.partial(SOPC, SOPCOp.S_CMP_LE_F32) -s_cmp_gt_f32 = functools.partial(SOPC, SOPCOp.S_CMP_GT_F32) -s_cmp_lg_f32 = functools.partial(SOPC, SOPCOp.S_CMP_LG_F32) -s_cmp_ge_f32 = functools.partial(SOPC, SOPCOp.S_CMP_GE_F32) -s_cmp_o_f32 = functools.partial(SOPC, SOPCOp.S_CMP_O_F32) -s_cmp_u_f32 = functools.partial(SOPC, SOPCOp.S_CMP_U_F32) -s_cmp_nge_f32 = functools.partial(SOPC, SOPCOp.S_CMP_NGE_F32) -s_cmp_nlg_f32 = functools.partial(SOPC, SOPCOp.S_CMP_NLG_F32) -s_cmp_ngt_f32 = functools.partial(SOPC, SOPCOp.S_CMP_NGT_F32) -s_cmp_nle_f32 = functools.partial(SOPC, SOPCOp.S_CMP_NLE_F32) -s_cmp_neq_f32 = functools.partial(SOPC, SOPCOp.S_CMP_NEQ_F32) -s_cmp_nlt_f32 = functools.partial(SOPC, SOPCOp.S_CMP_NLT_F32) -s_cmp_lt_f16 = functools.partial(SOPC, SOPCOp.S_CMP_LT_F16) -s_cmp_eq_f16 = functools.partial(SOPC, SOPCOp.S_CMP_EQ_F16) -s_cmp_le_f16 = functools.partial(SOPC, SOPCOp.S_CMP_LE_F16) -s_cmp_gt_f16 = functools.partial(SOPC, SOPCOp.S_CMP_GT_F16) -s_cmp_lg_f16 = functools.partial(SOPC, SOPCOp.S_CMP_LG_F16) -s_cmp_ge_f16 = functools.partial(SOPC, SOPCOp.S_CMP_GE_F16) -s_cmp_o_f16 = functools.partial(SOPC, SOPCOp.S_CMP_O_F16) -s_cmp_u_f16 = functools.partial(SOPC, SOPCOp.S_CMP_U_F16) -s_cmp_nge_f16 = functools.partial(SOPC, SOPCOp.S_CMP_NGE_F16) -s_cmp_nlg_f16 = functools.partial(SOPC, SOPCOp.S_CMP_NLG_F16) -s_cmp_ngt_f16 = functools.partial(SOPC, SOPCOp.S_CMP_NGT_F16) -s_cmp_nle_f16 = functools.partial(SOPC, SOPCOp.S_CMP_NLE_F16) -s_cmp_neq_f16 = functools.partial(SOPC, SOPCOp.S_CMP_NEQ_F16) -s_cmp_nlt_f16 = functools.partial(SOPC, SOPCOp.S_CMP_NLT_F16) -s_movk_i32 = functools.partial(SOPK, SOPKOp.S_MOVK_I32) -s_version = functools.partial(SOPK, SOPKOp.S_VERSION) -s_cmovk_i32 = functools.partial(SOPK, SOPKOp.S_CMOVK_I32) -s_addk_co_i32 = functools.partial(SOPK, SOPKOp.S_ADDK_CO_I32) -s_mulk_i32 = functools.partial(SOPK, SOPKOp.S_MULK_I32) -s_getreg_b32 = functools.partial(SOPK, SOPKOp.S_GETREG_B32) -s_setreg_b32 = functools.partial(SOPK, SOPKOp.S_SETREG_B32) -s_setreg_imm32_b32 = functools.partial(SOPK, SOPKOp.S_SETREG_IMM32_B32) -s_call_b64 = functools.partial(SOPK, SOPKOp.S_CALL_B64) -s_nop = functools.partial(SOPP, SOPPOp.S_NOP) -s_setkill = functools.partial(SOPP, SOPPOp.S_SETKILL) -s_sethalt = functools.partial(SOPP, SOPPOp.S_SETHALT) -s_sleep = functools.partial(SOPP, SOPPOp.S_SLEEP) -s_clause = functools.partial(SOPP, SOPPOp.S_CLAUSE) -s_delay_alu = functools.partial(SOPP, SOPPOp.S_DELAY_ALU) -s_wait_alu = functools.partial(SOPP, SOPPOp.S_WAIT_ALU) -s_waitcnt = functools.partial(SOPP, SOPPOp.S_WAITCNT) -s_wait_idle = functools.partial(SOPP, SOPPOp.S_WAIT_IDLE) -s_wait_event = functools.partial(SOPP, SOPPOp.S_WAIT_EVENT) -s_trap = functools.partial(SOPP, SOPPOp.S_TRAP) -s_round_mode = functools.partial(SOPP, SOPPOp.S_ROUND_MODE) -s_denorm_mode = functools.partial(SOPP, SOPPOp.S_DENORM_MODE) -s_barrier_wait = functools.partial(SOPP, SOPPOp.S_BARRIER_WAIT) -s_code_end = functools.partial(SOPP, SOPPOp.S_CODE_END) -s_branch = functools.partial(SOPP, SOPPOp.S_BRANCH) -s_cbranch_scc0 = functools.partial(SOPP, SOPPOp.S_CBRANCH_SCC0) -s_cbranch_scc1 = functools.partial(SOPP, SOPPOp.S_CBRANCH_SCC1) -s_cbranch_vccz = functools.partial(SOPP, SOPPOp.S_CBRANCH_VCCZ) -s_cbranch_vccnz = functools.partial(SOPP, SOPPOp.S_CBRANCH_VCCNZ) -s_cbranch_execz = functools.partial(SOPP, SOPPOp.S_CBRANCH_EXECZ) -s_cbranch_execnz = functools.partial(SOPP, SOPPOp.S_CBRANCH_EXECNZ) -s_endpgm = functools.partial(SOPP, SOPPOp.S_ENDPGM) -s_endpgm_saved = functools.partial(SOPP, SOPPOp.S_ENDPGM_SAVED) -s_wakeup = functools.partial(SOPP, SOPPOp.S_WAKEUP) -s_setprio = functools.partial(SOPP, SOPPOp.S_SETPRIO) -s_sendmsg = functools.partial(SOPP, SOPPOp.S_SENDMSG) -s_sendmsghalt = functools.partial(SOPP, SOPPOp.S_SENDMSGHALT) -s_incperflevel = functools.partial(SOPP, SOPPOp.S_INCPERFLEVEL) -s_decperflevel = functools.partial(SOPP, SOPPOp.S_DECPERFLEVEL) -s_icache_inv = functools.partial(SOPP, SOPPOp.S_ICACHE_INV) -s_wait_loadcnt = functools.partial(SOPP, SOPPOp.S_WAIT_LOADCNT) -s_wait_storecnt = functools.partial(SOPP, SOPPOp.S_WAIT_STORECNT) -s_wait_samplecnt = functools.partial(SOPP, SOPPOp.S_WAIT_SAMPLECNT) -s_wait_bvhcnt = functools.partial(SOPP, SOPPOp.S_WAIT_BVHCNT) -s_wait_expcnt = functools.partial(SOPP, SOPPOp.S_WAIT_EXPCNT) -s_wait_dscnt = functools.partial(SOPP, SOPPOp.S_WAIT_DSCNT) -s_wait_kmcnt = functools.partial(SOPP, SOPPOp.S_WAIT_KMCNT) -s_wait_loadcnt_dscnt = functools.partial(SOPP, SOPPOp.S_WAIT_LOADCNT_DSCNT) -s_wait_storecnt_dscnt = functools.partial(SOPP, SOPPOp.S_WAIT_STORECNT_DSCNT) -buffer_load_format_x = functools.partial(VBUFFER, VBUFFEROp.BUFFER_LOAD_FORMAT_X) -buffer_load_format_xy = functools.partial(VBUFFER, VBUFFEROp.BUFFER_LOAD_FORMAT_XY) -buffer_load_format_xyz = functools.partial(VBUFFER, VBUFFEROp.BUFFER_LOAD_FORMAT_XYZ) -buffer_load_format_xyzw = functools.partial(VBUFFER, VBUFFEROp.BUFFER_LOAD_FORMAT_XYZW) -buffer_store_format_x = functools.partial(VBUFFER, VBUFFEROp.BUFFER_STORE_FORMAT_X) -buffer_store_format_xy = functools.partial(VBUFFER, VBUFFEROp.BUFFER_STORE_FORMAT_XY) -buffer_store_format_xyz = functools.partial(VBUFFER, VBUFFEROp.BUFFER_STORE_FORMAT_XYZ) -buffer_store_format_xyzw = functools.partial(VBUFFER, VBUFFEROp.BUFFER_STORE_FORMAT_XYZW) -buffer_load_d16_format_x = functools.partial(VBUFFER, VBUFFEROp.BUFFER_LOAD_D16_FORMAT_X) -buffer_load_d16_format_xy = functools.partial(VBUFFER, VBUFFEROp.BUFFER_LOAD_D16_FORMAT_XY) -buffer_load_d16_format_xyz = functools.partial(VBUFFER, VBUFFEROp.BUFFER_LOAD_D16_FORMAT_XYZ) -buffer_load_d16_format_xyzw = functools.partial(VBUFFER, VBUFFEROp.BUFFER_LOAD_D16_FORMAT_XYZW) -buffer_store_d16_format_x = functools.partial(VBUFFER, VBUFFEROp.BUFFER_STORE_D16_FORMAT_X) -buffer_store_d16_format_xy = functools.partial(VBUFFER, VBUFFEROp.BUFFER_STORE_D16_FORMAT_XY) -buffer_store_d16_format_xyz = functools.partial(VBUFFER, VBUFFEROp.BUFFER_STORE_D16_FORMAT_XYZ) -buffer_store_d16_format_xyzw = functools.partial(VBUFFER, VBUFFEROp.BUFFER_STORE_D16_FORMAT_XYZW) -buffer_load_u8 = functools.partial(VBUFFER, VBUFFEROp.BUFFER_LOAD_U8) -buffer_load_i8 = functools.partial(VBUFFER, VBUFFEROp.BUFFER_LOAD_I8) -buffer_load_u16 = functools.partial(VBUFFER, VBUFFEROp.BUFFER_LOAD_U16) -buffer_load_i16 = functools.partial(VBUFFER, VBUFFEROp.BUFFER_LOAD_I16) -buffer_load_b32 = functools.partial(VBUFFER, VBUFFEROp.BUFFER_LOAD_B32) -buffer_load_b64 = functools.partial(VBUFFER, VBUFFEROp.BUFFER_LOAD_B64) -buffer_load_b96 = functools.partial(VBUFFER, VBUFFEROp.BUFFER_LOAD_B96) -buffer_load_b128 = functools.partial(VBUFFER, VBUFFEROp.BUFFER_LOAD_B128) -buffer_store_b8 = functools.partial(VBUFFER, VBUFFEROp.BUFFER_STORE_B8) -buffer_store_b16 = functools.partial(VBUFFER, VBUFFEROp.BUFFER_STORE_B16) -buffer_store_b32 = functools.partial(VBUFFER, VBUFFEROp.BUFFER_STORE_B32) -buffer_store_b64 = functools.partial(VBUFFER, VBUFFEROp.BUFFER_STORE_B64) -buffer_store_b96 = functools.partial(VBUFFER, VBUFFEROp.BUFFER_STORE_B96) -buffer_store_b128 = functools.partial(VBUFFER, VBUFFEROp.BUFFER_STORE_B128) -buffer_load_d16_u8 = functools.partial(VBUFFER, VBUFFEROp.BUFFER_LOAD_D16_U8) -buffer_load_d16_i8 = functools.partial(VBUFFER, VBUFFEROp.BUFFER_LOAD_D16_I8) -buffer_load_d16_b16 = functools.partial(VBUFFER, VBUFFEROp.BUFFER_LOAD_D16_B16) -buffer_load_d16_hi_u8 = functools.partial(VBUFFER, VBUFFEROp.BUFFER_LOAD_D16_HI_U8) -buffer_load_d16_hi_i8 = functools.partial(VBUFFER, VBUFFEROp.BUFFER_LOAD_D16_HI_I8) -buffer_load_d16_hi_b16 = functools.partial(VBUFFER, VBUFFEROp.BUFFER_LOAD_D16_HI_B16) -buffer_store_d16_hi_b8 = functools.partial(VBUFFER, VBUFFEROp.BUFFER_STORE_D16_HI_B8) -buffer_store_d16_hi_b16 = functools.partial(VBUFFER, VBUFFEROp.BUFFER_STORE_D16_HI_B16) -buffer_load_d16_hi_format_x = functools.partial(VBUFFER, VBUFFEROp.BUFFER_LOAD_D16_HI_FORMAT_X) -buffer_store_d16_hi_format_x = functools.partial(VBUFFER, VBUFFEROp.BUFFER_STORE_D16_HI_FORMAT_X) -buffer_atomic_swap_b32 = functools.partial(VBUFFER, VBUFFEROp.BUFFER_ATOMIC_SWAP_B32) -buffer_atomic_cmpswap_b32 = functools.partial(VBUFFER, VBUFFEROp.BUFFER_ATOMIC_CMPSWAP_B32) -buffer_atomic_add_u32 = functools.partial(VBUFFER, VBUFFEROp.BUFFER_ATOMIC_ADD_U32) -buffer_atomic_sub_u32 = functools.partial(VBUFFER, VBUFFEROp.BUFFER_ATOMIC_SUB_U32) -buffer_atomic_sub_clamp_u32 = functools.partial(VBUFFER, VBUFFEROp.BUFFER_ATOMIC_SUB_CLAMP_U32) -buffer_atomic_min_i32 = functools.partial(VBUFFER, VBUFFEROp.BUFFER_ATOMIC_MIN_I32) -buffer_atomic_min_u32 = functools.partial(VBUFFER, VBUFFEROp.BUFFER_ATOMIC_MIN_U32) -buffer_atomic_max_i32 = functools.partial(VBUFFER, VBUFFEROp.BUFFER_ATOMIC_MAX_I32) -buffer_atomic_max_u32 = functools.partial(VBUFFER, VBUFFEROp.BUFFER_ATOMIC_MAX_U32) -buffer_atomic_and_b32 = functools.partial(VBUFFER, VBUFFEROp.BUFFER_ATOMIC_AND_B32) -buffer_atomic_or_b32 = functools.partial(VBUFFER, VBUFFEROp.BUFFER_ATOMIC_OR_B32) -buffer_atomic_xor_b32 = functools.partial(VBUFFER, VBUFFEROp.BUFFER_ATOMIC_XOR_B32) -buffer_atomic_inc_u32 = functools.partial(VBUFFER, VBUFFEROp.BUFFER_ATOMIC_INC_U32) -buffer_atomic_dec_u32 = functools.partial(VBUFFER, VBUFFEROp.BUFFER_ATOMIC_DEC_U32) -buffer_atomic_swap_b64 = functools.partial(VBUFFER, VBUFFEROp.BUFFER_ATOMIC_SWAP_B64) -buffer_atomic_cmpswap_b64 = functools.partial(VBUFFER, VBUFFEROp.BUFFER_ATOMIC_CMPSWAP_B64) -buffer_atomic_add_u64 = functools.partial(VBUFFER, VBUFFEROp.BUFFER_ATOMIC_ADD_U64) -buffer_atomic_sub_u64 = functools.partial(VBUFFER, VBUFFEROp.BUFFER_ATOMIC_SUB_U64) -buffer_atomic_min_i64 = functools.partial(VBUFFER, VBUFFEROp.BUFFER_ATOMIC_MIN_I64) -buffer_atomic_min_u64 = functools.partial(VBUFFER, VBUFFEROp.BUFFER_ATOMIC_MIN_U64) -buffer_atomic_max_i64 = functools.partial(VBUFFER, VBUFFEROp.BUFFER_ATOMIC_MAX_I64) -buffer_atomic_max_u64 = functools.partial(VBUFFER, VBUFFEROp.BUFFER_ATOMIC_MAX_U64) -buffer_atomic_and_b64 = functools.partial(VBUFFER, VBUFFEROp.BUFFER_ATOMIC_AND_B64) -buffer_atomic_or_b64 = functools.partial(VBUFFER, VBUFFEROp.BUFFER_ATOMIC_OR_B64) -buffer_atomic_xor_b64 = functools.partial(VBUFFER, VBUFFEROp.BUFFER_ATOMIC_XOR_B64) -buffer_atomic_inc_u64 = functools.partial(VBUFFER, VBUFFEROp.BUFFER_ATOMIC_INC_U64) -buffer_atomic_dec_u64 = functools.partial(VBUFFER, VBUFFEROp.BUFFER_ATOMIC_DEC_U64) -buffer_atomic_cond_sub_u32 = functools.partial(VBUFFER, VBUFFEROp.BUFFER_ATOMIC_COND_SUB_U32) -buffer_atomic_min_num_f32 = functools.partial(VBUFFER, VBUFFEROp.BUFFER_ATOMIC_MIN_NUM_F32) -buffer_atomic_max_num_f32 = functools.partial(VBUFFER, VBUFFEROp.BUFFER_ATOMIC_MAX_NUM_F32) -buffer_atomic_add_f32 = functools.partial(VBUFFER, VBUFFEROp.BUFFER_ATOMIC_ADD_F32) -buffer_atomic_pk_add_f16 = functools.partial(VBUFFER, VBUFFEROp.BUFFER_ATOMIC_PK_ADD_F16) -buffer_atomic_pk_add_bf16 = functools.partial(VBUFFER, VBUFFEROp.BUFFER_ATOMIC_PK_ADD_BF16) -tbuffer_load_format_x = functools.partial(VBUFFER, VBUFFEROp.TBUFFER_LOAD_FORMAT_X) -tbuffer_load_format_xy = functools.partial(VBUFFER, VBUFFEROp.TBUFFER_LOAD_FORMAT_XY) -tbuffer_load_format_xyz = functools.partial(VBUFFER, VBUFFEROp.TBUFFER_LOAD_FORMAT_XYZ) -tbuffer_load_format_xyzw = functools.partial(VBUFFER, VBUFFEROp.TBUFFER_LOAD_FORMAT_XYZW) -tbuffer_store_format_x = functools.partial(VBUFFER, VBUFFEROp.TBUFFER_STORE_FORMAT_X) -tbuffer_store_format_xy = functools.partial(VBUFFER, VBUFFEROp.TBUFFER_STORE_FORMAT_XY) -tbuffer_store_format_xyz = functools.partial(VBUFFER, VBUFFEROp.TBUFFER_STORE_FORMAT_XYZ) -tbuffer_store_format_xyzw = functools.partial(VBUFFER, VBUFFEROp.TBUFFER_STORE_FORMAT_XYZW) -tbuffer_load_d16_format_x = functools.partial(VBUFFER, VBUFFEROp.TBUFFER_LOAD_D16_FORMAT_X) -tbuffer_load_d16_format_xy = functools.partial(VBUFFER, VBUFFEROp.TBUFFER_LOAD_D16_FORMAT_XY) -tbuffer_load_d16_format_xyz = functools.partial(VBUFFER, VBUFFEROp.TBUFFER_LOAD_D16_FORMAT_XYZ) -tbuffer_load_d16_format_xyzw = functools.partial(VBUFFER, VBUFFEROp.TBUFFER_LOAD_D16_FORMAT_XYZW) -tbuffer_store_d16_format_x = functools.partial(VBUFFER, VBUFFEROp.TBUFFER_STORE_D16_FORMAT_X) -tbuffer_store_d16_format_xy = functools.partial(VBUFFER, VBUFFEROp.TBUFFER_STORE_D16_FORMAT_XY) -tbuffer_store_d16_format_xyz = functools.partial(VBUFFER, VBUFFEROp.TBUFFER_STORE_D16_FORMAT_XYZ) -tbuffer_store_d16_format_xyzw = functools.partial(VBUFFER, VBUFFEROp.TBUFFER_STORE_D16_FORMAT_XYZW) -ds_param_load = functools.partial(VDSDIR, VDSDIROp.DS_PARAM_LOAD) -ds_direct_load = functools.partial(VDSDIR, VDSDIROp.DS_DIRECT_LOAD) -v_interp_p10_f32 = functools.partial(VINTERP, VINTERPOp.V_INTERP_P10_F32) -v_interp_p2_f32 = functools.partial(VINTERP, VINTERPOp.V_INTERP_P2_F32) -v_interp_p10_f16_f32 = functools.partial(VINTERP, VINTERPOp.V_INTERP_P10_F16_F32) -v_interp_p2_f16_f32 = functools.partial(VINTERP, VINTERPOp.V_INTERP_P2_F16_F32) -v_interp_p10_rtz_f16_f32 = functools.partial(VINTERP, VINTERPOp.V_INTERP_P10_RTZ_F16_F32) -v_interp_p2_rtz_f16_f32 = functools.partial(VINTERP, VINTERPOp.V_INTERP_P2_RTZ_F16_F32) -v_nop_e32 = functools.partial(VOP1, VOP1Op.V_NOP) -v_mov_b32_e32 = functools.partial(VOP1, VOP1Op.V_MOV_B32) -v_readfirstlane_b32_e32 = functools.partial(VOP1, VOP1Op.V_READFIRSTLANE_B32) -v_cvt_i32_f64_e32 = functools.partial(VOP1, VOP1Op.V_CVT_I32_F64) -v_cvt_f64_i32_e32 = functools.partial(VOP1, VOP1Op.V_CVT_F64_I32) -v_cvt_f32_i32_e32 = functools.partial(VOP1, VOP1Op.V_CVT_F32_I32) -v_cvt_f32_u32_e32 = functools.partial(VOP1, VOP1Op.V_CVT_F32_U32) -v_cvt_u32_f32_e32 = functools.partial(VOP1, VOP1Op.V_CVT_U32_F32) -v_cvt_i32_f32_e32 = functools.partial(VOP1, VOP1Op.V_CVT_I32_F32) -v_cvt_f16_f32_e32 = functools.partial(VOP1, VOP1Op.V_CVT_F16_F32) -v_cvt_f32_f16_e32 = functools.partial(VOP1, VOP1Op.V_CVT_F32_F16) -v_cvt_nearest_i32_f32_e32 = functools.partial(VOP1, VOP1Op.V_CVT_NEAREST_I32_F32) -v_cvt_floor_i32_f32_e32 = functools.partial(VOP1, VOP1Op.V_CVT_FLOOR_I32_F32) -v_cvt_off_f32_i4_e32 = functools.partial(VOP1, VOP1Op.V_CVT_OFF_F32_I4) -v_cvt_f32_f64_e32 = functools.partial(VOP1, VOP1Op.V_CVT_F32_F64) -v_cvt_f64_f32_e32 = functools.partial(VOP1, VOP1Op.V_CVT_F64_F32) -v_cvt_f32_ubyte0_e32 = functools.partial(VOP1, VOP1Op.V_CVT_F32_UBYTE0) -v_cvt_f32_ubyte1_e32 = functools.partial(VOP1, VOP1Op.V_CVT_F32_UBYTE1) -v_cvt_f32_ubyte2_e32 = functools.partial(VOP1, VOP1Op.V_CVT_F32_UBYTE2) -v_cvt_f32_ubyte3_e32 = functools.partial(VOP1, VOP1Op.V_CVT_F32_UBYTE3) -v_cvt_u32_f64_e32 = functools.partial(VOP1, VOP1Op.V_CVT_U32_F64) -v_cvt_f64_u32_e32 = functools.partial(VOP1, VOP1Op.V_CVT_F64_U32) -v_trunc_f64_e32 = functools.partial(VOP1, VOP1Op.V_TRUNC_F64) -v_ceil_f64_e32 = functools.partial(VOP1, VOP1Op.V_CEIL_F64) -v_rndne_f64_e32 = functools.partial(VOP1, VOP1Op.V_RNDNE_F64) -v_floor_f64_e32 = functools.partial(VOP1, VOP1Op.V_FLOOR_F64) -v_pipeflush_e32 = functools.partial(VOP1, VOP1Op.V_PIPEFLUSH) -v_mov_b16_e32 = functools.partial(VOP1, VOP1Op.V_MOV_B16) -v_fract_f32_e32 = functools.partial(VOP1, VOP1Op.V_FRACT_F32) -v_trunc_f32_e32 = functools.partial(VOP1, VOP1Op.V_TRUNC_F32) -v_ceil_f32_e32 = functools.partial(VOP1, VOP1Op.V_CEIL_F32) -v_rndne_f32_e32 = functools.partial(VOP1, VOP1Op.V_RNDNE_F32) -v_floor_f32_e32 = functools.partial(VOP1, VOP1Op.V_FLOOR_F32) -v_exp_f32_e32 = functools.partial(VOP1, VOP1Op.V_EXP_F32) -v_log_f32_e32 = functools.partial(VOP1, VOP1Op.V_LOG_F32) -v_rcp_f32_e32 = functools.partial(VOP1, VOP1Op.V_RCP_F32) -v_rcp_iflag_f32_e32 = functools.partial(VOP1, VOP1Op.V_RCP_IFLAG_F32) -v_rsq_f32_e32 = functools.partial(VOP1, VOP1Op.V_RSQ_F32) -v_rcp_f64_e32 = functools.partial(VOP1, VOP1Op.V_RCP_F64) -v_rsq_f64_e32 = functools.partial(VOP1, VOP1Op.V_RSQ_F64) -v_sqrt_f32_e32 = functools.partial(VOP1, VOP1Op.V_SQRT_F32) -v_sqrt_f64_e32 = functools.partial(VOP1, VOP1Op.V_SQRT_F64) -v_sin_f32_e32 = functools.partial(VOP1, VOP1Op.V_SIN_F32) -v_cos_f32_e32 = functools.partial(VOP1, VOP1Op.V_COS_F32) -v_not_b32_e32 = functools.partial(VOP1, VOP1Op.V_NOT_B32) -v_bfrev_b32_e32 = functools.partial(VOP1, VOP1Op.V_BFREV_B32) -v_clz_i32_u32_e32 = functools.partial(VOP1, VOP1Op.V_CLZ_I32_U32) -v_ctz_i32_b32_e32 = functools.partial(VOP1, VOP1Op.V_CTZ_I32_B32) -v_cls_i32_e32 = functools.partial(VOP1, VOP1Op.V_CLS_I32) -v_frexp_exp_i32_f64_e32 = functools.partial(VOP1, VOP1Op.V_FREXP_EXP_I32_F64) -v_frexp_mant_f64_e32 = functools.partial(VOP1, VOP1Op.V_FREXP_MANT_F64) -v_fract_f64_e32 = functools.partial(VOP1, VOP1Op.V_FRACT_F64) -v_frexp_exp_i32_f32_e32 = functools.partial(VOP1, VOP1Op.V_FREXP_EXP_I32_F32) -v_frexp_mant_f32_e32 = functools.partial(VOP1, VOP1Op.V_FREXP_MANT_F32) -v_movreld_b32_e32 = functools.partial(VOP1, VOP1Op.V_MOVRELD_B32) -v_movrels_b32_e32 = functools.partial(VOP1, VOP1Op.V_MOVRELS_B32) -v_movrelsd_b32_e32 = functools.partial(VOP1, VOP1Op.V_MOVRELSD_B32) -v_movrelsd_2_b32_e32 = functools.partial(VOP1, VOP1Op.V_MOVRELSD_2_B32) -v_cvt_f16_u16_e32 = functools.partial(VOP1, VOP1Op.V_CVT_F16_U16) -v_cvt_f16_i16_e32 = functools.partial(VOP1, VOP1Op.V_CVT_F16_I16) -v_cvt_u16_f16_e32 = functools.partial(VOP1, VOP1Op.V_CVT_U16_F16) -v_cvt_i16_f16_e32 = functools.partial(VOP1, VOP1Op.V_CVT_I16_F16) -v_rcp_f16_e32 = functools.partial(VOP1, VOP1Op.V_RCP_F16) -v_sqrt_f16_e32 = functools.partial(VOP1, VOP1Op.V_SQRT_F16) -v_rsq_f16_e32 = functools.partial(VOP1, VOP1Op.V_RSQ_F16) -v_log_f16_e32 = functools.partial(VOP1, VOP1Op.V_LOG_F16) -v_exp_f16_e32 = functools.partial(VOP1, VOP1Op.V_EXP_F16) -v_frexp_mant_f16_e32 = functools.partial(VOP1, VOP1Op.V_FREXP_MANT_F16) -v_frexp_exp_i16_f16_e32 = functools.partial(VOP1, VOP1Op.V_FREXP_EXP_I16_F16) -v_floor_f16_e32 = functools.partial(VOP1, VOP1Op.V_FLOOR_F16) -v_ceil_f16_e32 = functools.partial(VOP1, VOP1Op.V_CEIL_F16) -v_trunc_f16_e32 = functools.partial(VOP1, VOP1Op.V_TRUNC_F16) -v_rndne_f16_e32 = functools.partial(VOP1, VOP1Op.V_RNDNE_F16) -v_fract_f16_e32 = functools.partial(VOP1, VOP1Op.V_FRACT_F16) -v_sin_f16_e32 = functools.partial(VOP1, VOP1Op.V_SIN_F16) -v_cos_f16_e32 = functools.partial(VOP1, VOP1Op.V_COS_F16) -v_sat_pk_u8_i16_e32 = functools.partial(VOP1, VOP1Op.V_SAT_PK_U8_I16) -v_cvt_norm_i16_f16_e32 = functools.partial(VOP1, VOP1Op.V_CVT_NORM_I16_F16) -v_cvt_norm_u16_f16_e32 = functools.partial(VOP1, VOP1Op.V_CVT_NORM_U16_F16) -v_swap_b32_e32 = functools.partial(VOP1, VOP1Op.V_SWAP_B32) -v_swap_b16_e32 = functools.partial(VOP1, VOP1Op.V_SWAP_B16) -v_permlane64_b32_e32 = functools.partial(VOP1, VOP1Op.V_PERMLANE64_B32) -v_swaprel_b32_e32 = functools.partial(VOP1, VOP1Op.V_SWAPREL_B32) -v_not_b16_e32 = functools.partial(VOP1, VOP1Op.V_NOT_B16) -v_cvt_i32_i16_e32 = functools.partial(VOP1, VOP1Op.V_CVT_I32_I16) -v_cvt_u32_u16_e32 = functools.partial(VOP1, VOP1Op.V_CVT_U32_U16) -v_cvt_f32_fp8_e32 = functools.partial(VOP1, VOP1Op.V_CVT_F32_FP8) -v_cvt_f32_bf8_e32 = functools.partial(VOP1, VOP1Op.V_CVT_F32_BF8) -v_cvt_pk_f32_fp8_e32 = functools.partial(VOP1, VOP1Op.V_CVT_PK_F32_FP8) -v_cvt_pk_f32_bf8_e32 = functools.partial(VOP1, VOP1Op.V_CVT_PK_F32_BF8) -v_cndmask_b32_e32 = functools.partial(VOP2, VOP2Op.V_CNDMASK_B32) -v_add_f64_e32 = functools.partial(VOP2, VOP2Op.V_ADD_F64) -v_add_f32_e32 = functools.partial(VOP2, VOP2Op.V_ADD_F32) -v_sub_f32_e32 = functools.partial(VOP2, VOP2Op.V_SUB_F32) -v_subrev_f32_e32 = functools.partial(VOP2, VOP2Op.V_SUBREV_F32) -v_mul_f64_e32 = functools.partial(VOP2, VOP2Op.V_MUL_F64) -v_mul_dx9_zero_f32_e32 = functools.partial(VOP2, VOP2Op.V_MUL_DX9_ZERO_F32) -v_mul_f32_e32 = functools.partial(VOP2, VOP2Op.V_MUL_F32) -v_mul_i32_i24_e32 = functools.partial(VOP2, VOP2Op.V_MUL_I32_I24) -v_mul_hi_i32_i24_e32 = functools.partial(VOP2, VOP2Op.V_MUL_HI_I32_I24) -v_mul_u32_u24_e32 = functools.partial(VOP2, VOP2Op.V_MUL_U32_U24) -v_mul_hi_u32_u24_e32 = functools.partial(VOP2, VOP2Op.V_MUL_HI_U32_U24) -v_min_num_f64_e32 = functools.partial(VOP2, VOP2Op.V_MIN_NUM_F64) -v_max_num_f64_e32 = functools.partial(VOP2, VOP2Op.V_MAX_NUM_F64) -v_min_i32_e32 = functools.partial(VOP2, VOP2Op.V_MIN_I32) -v_max_i32_e32 = functools.partial(VOP2, VOP2Op.V_MAX_I32) -v_min_u32_e32 = functools.partial(VOP2, VOP2Op.V_MIN_U32) -v_max_u32_e32 = functools.partial(VOP2, VOP2Op.V_MAX_U32) -v_min_num_f32_e32 = functools.partial(VOP2, VOP2Op.V_MIN_NUM_F32) -v_max_num_f32_e32 = functools.partial(VOP2, VOP2Op.V_MAX_NUM_F32) -v_lshlrev_b32_e32 = functools.partial(VOP2, VOP2Op.V_LSHLREV_B32) -v_lshrrev_b32_e32 = functools.partial(VOP2, VOP2Op.V_LSHRREV_B32) -v_ashrrev_i32_e32 = functools.partial(VOP2, VOP2Op.V_ASHRREV_I32) -v_and_b32_e32 = functools.partial(VOP2, VOP2Op.V_AND_B32) -v_or_b32_e32 = functools.partial(VOP2, VOP2Op.V_OR_B32) -v_xor_b32_e32 = functools.partial(VOP2, VOP2Op.V_XOR_B32) -v_xnor_b32_e32 = functools.partial(VOP2, VOP2Op.V_XNOR_B32) -v_lshlrev_b64_e32 = functools.partial(VOP2, VOP2Op.V_LSHLREV_B64) -v_add_co_ci_u32_e32 = functools.partial(VOP2, VOP2Op.V_ADD_CO_CI_U32) -v_sub_co_ci_u32_e32 = functools.partial(VOP2, VOP2Op.V_SUB_CO_CI_U32) -v_subrev_co_ci_u32_e32 = functools.partial(VOP2, VOP2Op.V_SUBREV_CO_CI_U32) -v_add_nc_u32_e32 = functools.partial(VOP2, VOP2Op.V_ADD_NC_U32) -v_sub_nc_u32_e32 = functools.partial(VOP2, VOP2Op.V_SUB_NC_U32) -v_subrev_nc_u32_e32 = functools.partial(VOP2, VOP2Op.V_SUBREV_NC_U32) -v_fmac_f32_e32 = functools.partial(VOP2, VOP2Op.V_FMAC_F32) -def v_fmamk_f32_e32(vdst, src0, K, vsrc1): return VOP2(VOP2Op.V_FMAMK_F32, vdst, src0, vsrc1, literal=K) -def v_fmaak_f32_e32(vdst, src0, vsrc1, K): return VOP2(VOP2Op.V_FMAAK_F32, vdst, src0, vsrc1, literal=K) -v_cvt_pk_rtz_f16_f32_e32 = functools.partial(VOP2, VOP2Op.V_CVT_PK_RTZ_F16_F32) -v_min_num_f16_e32 = functools.partial(VOP2, VOP2Op.V_MIN_NUM_F16) -v_max_num_f16_e32 = functools.partial(VOP2, VOP2Op.V_MAX_NUM_F16) -v_add_f16_e32 = functools.partial(VOP2, VOP2Op.V_ADD_F16) -v_sub_f16_e32 = functools.partial(VOP2, VOP2Op.V_SUB_F16) -v_subrev_f16_e32 = functools.partial(VOP2, VOP2Op.V_SUBREV_F16) -v_mul_f16_e32 = functools.partial(VOP2, VOP2Op.V_MUL_F16) -v_fmac_f16_e32 = functools.partial(VOP2, VOP2Op.V_FMAC_F16) -def v_fmamk_f16_e32(vdst, src0, K, vsrc1): return VOP2(VOP2Op.V_FMAMK_F16, vdst, src0, vsrc1, literal=K) -def v_fmaak_f16_e32(vdst, src0, vsrc1, K): return VOP2(VOP2Op.V_FMAAK_F16, vdst, src0, vsrc1, literal=K) -v_ldexp_f16_e32 = functools.partial(VOP2, VOP2Op.V_LDEXP_F16) -v_pk_fmac_f16_e32 = functools.partial(VOP2, VOP2Op.V_PK_FMAC_F16) -v_cmp_lt_f16_e64 = functools.partial(VOP3, VOP3Op.V_CMP_LT_F16) -v_cmp_eq_f16_e64 = functools.partial(VOP3, VOP3Op.V_CMP_EQ_F16) -v_cmp_le_f16_e64 = functools.partial(VOP3, VOP3Op.V_CMP_LE_F16) -v_cmp_gt_f16_e64 = functools.partial(VOP3, VOP3Op.V_CMP_GT_F16) -v_cmp_lg_f16_e64 = functools.partial(VOP3, VOP3Op.V_CMP_LG_F16) -v_cmp_ge_f16_e64 = functools.partial(VOP3, VOP3Op.V_CMP_GE_F16) -v_cmp_o_f16_e64 = functools.partial(VOP3, VOP3Op.V_CMP_O_F16) -v_cmp_u_f16_e64 = functools.partial(VOP3, VOP3Op.V_CMP_U_F16) -v_cmp_nge_f16_e64 = functools.partial(VOP3, VOP3Op.V_CMP_NGE_F16) -v_cmp_nlg_f16_e64 = functools.partial(VOP3, VOP3Op.V_CMP_NLG_F16) -v_cmp_ngt_f16_e64 = functools.partial(VOP3, VOP3Op.V_CMP_NGT_F16) -v_cmp_nle_f16_e64 = functools.partial(VOP3, VOP3Op.V_CMP_NLE_F16) -v_cmp_neq_f16_e64 = functools.partial(VOP3, VOP3Op.V_CMP_NEQ_F16) -v_cmp_nlt_f16_e64 = functools.partial(VOP3, VOP3Op.V_CMP_NLT_F16) -v_cmp_lt_f32_e64 = functools.partial(VOP3, VOP3Op.V_CMP_LT_F32) -v_cmp_eq_f32_e64 = functools.partial(VOP3, VOP3Op.V_CMP_EQ_F32) -v_cmp_le_f32_e64 = functools.partial(VOP3, VOP3Op.V_CMP_LE_F32) -v_cmp_gt_f32_e64 = functools.partial(VOP3, VOP3Op.V_CMP_GT_F32) -v_cmp_lg_f32_e64 = functools.partial(VOP3, VOP3Op.V_CMP_LG_F32) -v_cmp_ge_f32_e64 = functools.partial(VOP3, VOP3Op.V_CMP_GE_F32) -v_cmp_o_f32_e64 = functools.partial(VOP3, VOP3Op.V_CMP_O_F32) -v_cmp_u_f32_e64 = functools.partial(VOP3, VOP3Op.V_CMP_U_F32) -v_cmp_nge_f32_e64 = functools.partial(VOP3, VOP3Op.V_CMP_NGE_F32) -v_cmp_nlg_f32_e64 = functools.partial(VOP3, VOP3Op.V_CMP_NLG_F32) -v_cmp_ngt_f32_e64 = functools.partial(VOP3, VOP3Op.V_CMP_NGT_F32) -v_cmp_nle_f32_e64 = functools.partial(VOP3, VOP3Op.V_CMP_NLE_F32) -v_cmp_neq_f32_e64 = functools.partial(VOP3, VOP3Op.V_CMP_NEQ_F32) -v_cmp_nlt_f32_e64 = functools.partial(VOP3, VOP3Op.V_CMP_NLT_F32) -v_cmp_lt_f64_e64 = functools.partial(VOP3, VOP3Op.V_CMP_LT_F64) -v_cmp_eq_f64_e64 = functools.partial(VOP3, VOP3Op.V_CMP_EQ_F64) -v_cmp_le_f64_e64 = functools.partial(VOP3, VOP3Op.V_CMP_LE_F64) -v_cmp_gt_f64_e64 = functools.partial(VOP3, VOP3Op.V_CMP_GT_F64) -v_cmp_lg_f64_e64 = functools.partial(VOP3, VOP3Op.V_CMP_LG_F64) -v_cmp_ge_f64_e64 = functools.partial(VOP3, VOP3Op.V_CMP_GE_F64) -v_cmp_o_f64_e64 = functools.partial(VOP3, VOP3Op.V_CMP_O_F64) -v_cmp_u_f64_e64 = functools.partial(VOP3, VOP3Op.V_CMP_U_F64) -v_cmp_nge_f64_e64 = functools.partial(VOP3, VOP3Op.V_CMP_NGE_F64) -v_cmp_nlg_f64_e64 = functools.partial(VOP3, VOP3Op.V_CMP_NLG_F64) -v_cmp_ngt_f64_e64 = functools.partial(VOP3, VOP3Op.V_CMP_NGT_F64) -v_cmp_nle_f64_e64 = functools.partial(VOP3, VOP3Op.V_CMP_NLE_F64) -v_cmp_neq_f64_e64 = functools.partial(VOP3, VOP3Op.V_CMP_NEQ_F64) -v_cmp_nlt_f64_e64 = functools.partial(VOP3, VOP3Op.V_CMP_NLT_F64) -v_cmp_lt_i16_e64 = functools.partial(VOP3, VOP3Op.V_CMP_LT_I16) -v_cmp_eq_i16_e64 = functools.partial(VOP3, VOP3Op.V_CMP_EQ_I16) -v_cmp_le_i16_e64 = functools.partial(VOP3, VOP3Op.V_CMP_LE_I16) -v_cmp_gt_i16_e64 = functools.partial(VOP3, VOP3Op.V_CMP_GT_I16) -v_cmp_ne_i16_e64 = functools.partial(VOP3, VOP3Op.V_CMP_NE_I16) -v_cmp_ge_i16_e64 = functools.partial(VOP3, VOP3Op.V_CMP_GE_I16) -v_cmp_lt_u16_e64 = functools.partial(VOP3, VOP3Op.V_CMP_LT_U16) -v_cmp_eq_u16_e64 = functools.partial(VOP3, VOP3Op.V_CMP_EQ_U16) -v_cmp_le_u16_e64 = functools.partial(VOP3, VOP3Op.V_CMP_LE_U16) -v_cmp_gt_u16_e64 = functools.partial(VOP3, VOP3Op.V_CMP_GT_U16) -v_cmp_ne_u16_e64 = functools.partial(VOP3, VOP3Op.V_CMP_NE_U16) -v_cmp_ge_u16_e64 = functools.partial(VOP3, VOP3Op.V_CMP_GE_U16) -v_cmp_lt_i32_e64 = functools.partial(VOP3, VOP3Op.V_CMP_LT_I32) -v_cmp_eq_i32_e64 = functools.partial(VOP3, VOP3Op.V_CMP_EQ_I32) -v_cmp_le_i32_e64 = functools.partial(VOP3, VOP3Op.V_CMP_LE_I32) -v_cmp_gt_i32_e64 = functools.partial(VOP3, VOP3Op.V_CMP_GT_I32) -v_cmp_ne_i32_e64 = functools.partial(VOP3, VOP3Op.V_CMP_NE_I32) -v_cmp_ge_i32_e64 = functools.partial(VOP3, VOP3Op.V_CMP_GE_I32) -v_cmp_lt_u32_e64 = functools.partial(VOP3, VOP3Op.V_CMP_LT_U32) -v_cmp_eq_u32_e64 = functools.partial(VOP3, VOP3Op.V_CMP_EQ_U32) -v_cmp_le_u32_e64 = functools.partial(VOP3, VOP3Op.V_CMP_LE_U32) -v_cmp_gt_u32_e64 = functools.partial(VOP3, VOP3Op.V_CMP_GT_U32) -v_cmp_ne_u32_e64 = functools.partial(VOP3, VOP3Op.V_CMP_NE_U32) -v_cmp_ge_u32_e64 = functools.partial(VOP3, VOP3Op.V_CMP_GE_U32) -v_cmp_lt_i64_e64 = functools.partial(VOP3, VOP3Op.V_CMP_LT_I64) -v_cmp_eq_i64_e64 = functools.partial(VOP3, VOP3Op.V_CMP_EQ_I64) -v_cmp_le_i64_e64 = functools.partial(VOP3, VOP3Op.V_CMP_LE_I64) -v_cmp_gt_i64_e64 = functools.partial(VOP3, VOP3Op.V_CMP_GT_I64) -v_cmp_ne_i64_e64 = functools.partial(VOP3, VOP3Op.V_CMP_NE_I64) -v_cmp_ge_i64_e64 = functools.partial(VOP3, VOP3Op.V_CMP_GE_I64) -v_cmp_lt_u64_e64 = functools.partial(VOP3, VOP3Op.V_CMP_LT_U64) -v_cmp_eq_u64_e64 = functools.partial(VOP3, VOP3Op.V_CMP_EQ_U64) -v_cmp_le_u64_e64 = functools.partial(VOP3, VOP3Op.V_CMP_LE_U64) -v_cmp_gt_u64_e64 = functools.partial(VOP3, VOP3Op.V_CMP_GT_U64) -v_cmp_ne_u64_e64 = functools.partial(VOP3, VOP3Op.V_CMP_NE_U64) -v_cmp_ge_u64_e64 = functools.partial(VOP3, VOP3Op.V_CMP_GE_U64) -v_cmp_class_f16_e64 = functools.partial(VOP3, VOP3Op.V_CMP_CLASS_F16) -v_cmp_class_f32_e64 = functools.partial(VOP3, VOP3Op.V_CMP_CLASS_F32) -v_cmp_class_f64_e64 = functools.partial(VOP3, VOP3Op.V_CMP_CLASS_F64) -v_cmpx_lt_f16_e64 = functools.partial(VOP3, VOP3Op.V_CMPX_LT_F16) -v_cmpx_eq_f16_e64 = functools.partial(VOP3, VOP3Op.V_CMPX_EQ_F16) -v_cmpx_le_f16_e64 = functools.partial(VOP3, VOP3Op.V_CMPX_LE_F16) -v_cmpx_gt_f16_e64 = functools.partial(VOP3, VOP3Op.V_CMPX_GT_F16) -v_cmpx_lg_f16_e64 = functools.partial(VOP3, VOP3Op.V_CMPX_LG_F16) -v_cmpx_ge_f16_e64 = functools.partial(VOP3, VOP3Op.V_CMPX_GE_F16) -v_cmpx_o_f16_e64 = functools.partial(VOP3, VOP3Op.V_CMPX_O_F16) -v_cmpx_u_f16_e64 = functools.partial(VOP3, VOP3Op.V_CMPX_U_F16) -v_cmpx_nge_f16_e64 = functools.partial(VOP3, VOP3Op.V_CMPX_NGE_F16) -v_cmpx_nlg_f16_e64 = functools.partial(VOP3, VOP3Op.V_CMPX_NLG_F16) -v_cmpx_ngt_f16_e64 = functools.partial(VOP3, VOP3Op.V_CMPX_NGT_F16) -v_cmpx_nle_f16_e64 = functools.partial(VOP3, VOP3Op.V_CMPX_NLE_F16) -v_cmpx_neq_f16_e64 = functools.partial(VOP3, VOP3Op.V_CMPX_NEQ_F16) -v_cmpx_nlt_f16_e64 = functools.partial(VOP3, VOP3Op.V_CMPX_NLT_F16) -v_cmpx_lt_f32_e64 = functools.partial(VOP3, VOP3Op.V_CMPX_LT_F32) -v_cmpx_eq_f32_e64 = functools.partial(VOP3, VOP3Op.V_CMPX_EQ_F32) -v_cmpx_le_f32_e64 = functools.partial(VOP3, VOP3Op.V_CMPX_LE_F32) -v_cmpx_gt_f32_e64 = functools.partial(VOP3, VOP3Op.V_CMPX_GT_F32) -v_cmpx_lg_f32_e64 = functools.partial(VOP3, VOP3Op.V_CMPX_LG_F32) -v_cmpx_ge_f32_e64 = functools.partial(VOP3, VOP3Op.V_CMPX_GE_F32) -v_cmpx_o_f32_e64 = functools.partial(VOP3, VOP3Op.V_CMPX_O_F32) -v_cmpx_u_f32_e64 = functools.partial(VOP3, VOP3Op.V_CMPX_U_F32) -v_cmpx_nge_f32_e64 = functools.partial(VOP3, VOP3Op.V_CMPX_NGE_F32) -v_cmpx_nlg_f32_e64 = functools.partial(VOP3, VOP3Op.V_CMPX_NLG_F32) -v_cmpx_ngt_f32_e64 = functools.partial(VOP3, VOP3Op.V_CMPX_NGT_F32) -v_cmpx_nle_f32_e64 = functools.partial(VOP3, VOP3Op.V_CMPX_NLE_F32) -v_cmpx_neq_f32_e64 = functools.partial(VOP3, VOP3Op.V_CMPX_NEQ_F32) -v_cmpx_nlt_f32_e64 = functools.partial(VOP3, VOP3Op.V_CMPX_NLT_F32) -v_cmpx_lt_f64_e64 = functools.partial(VOP3, VOP3Op.V_CMPX_LT_F64) -v_cmpx_eq_f64_e64 = functools.partial(VOP3, VOP3Op.V_CMPX_EQ_F64) -v_cmpx_le_f64_e64 = functools.partial(VOP3, VOP3Op.V_CMPX_LE_F64) -v_cmpx_gt_f64_e64 = functools.partial(VOP3, VOP3Op.V_CMPX_GT_F64) -v_cmpx_lg_f64_e64 = functools.partial(VOP3, VOP3Op.V_CMPX_LG_F64) -v_cmpx_ge_f64_e64 = functools.partial(VOP3, VOP3Op.V_CMPX_GE_F64) -v_cmpx_o_f64_e64 = functools.partial(VOP3, VOP3Op.V_CMPX_O_F64) -v_cmpx_u_f64_e64 = functools.partial(VOP3, VOP3Op.V_CMPX_U_F64) -v_cmpx_nge_f64_e64 = functools.partial(VOP3, VOP3Op.V_CMPX_NGE_F64) -v_cmpx_nlg_f64_e64 = functools.partial(VOP3, VOP3Op.V_CMPX_NLG_F64) -v_cmpx_ngt_f64_e64 = functools.partial(VOP3, VOP3Op.V_CMPX_NGT_F64) -v_cmpx_nle_f64_e64 = functools.partial(VOP3, VOP3Op.V_CMPX_NLE_F64) -v_cmpx_neq_f64_e64 = functools.partial(VOP3, VOP3Op.V_CMPX_NEQ_F64) -v_cmpx_nlt_f64_e64 = functools.partial(VOP3, VOP3Op.V_CMPX_NLT_F64) -v_cmpx_lt_i16_e64 = functools.partial(VOP3, VOP3Op.V_CMPX_LT_I16) -v_cmpx_eq_i16_e64 = functools.partial(VOP3, VOP3Op.V_CMPX_EQ_I16) -v_cmpx_le_i16_e64 = functools.partial(VOP3, VOP3Op.V_CMPX_LE_I16) -v_cmpx_gt_i16_e64 = functools.partial(VOP3, VOP3Op.V_CMPX_GT_I16) -v_cmpx_ne_i16_e64 = functools.partial(VOP3, VOP3Op.V_CMPX_NE_I16) -v_cmpx_ge_i16_e64 = functools.partial(VOP3, VOP3Op.V_CMPX_GE_I16) -v_cmpx_lt_u16_e64 = functools.partial(VOP3, VOP3Op.V_CMPX_LT_U16) -v_cmpx_eq_u16_e64 = functools.partial(VOP3, VOP3Op.V_CMPX_EQ_U16) -v_cmpx_le_u16_e64 = functools.partial(VOP3, VOP3Op.V_CMPX_LE_U16) -v_cmpx_gt_u16_e64 = functools.partial(VOP3, VOP3Op.V_CMPX_GT_U16) -v_cmpx_ne_u16_e64 = functools.partial(VOP3, VOP3Op.V_CMPX_NE_U16) -v_cmpx_ge_u16_e64 = functools.partial(VOP3, VOP3Op.V_CMPX_GE_U16) -v_cmpx_lt_i32_e64 = functools.partial(VOP3, VOP3Op.V_CMPX_LT_I32) -v_cmpx_eq_i32_e64 = functools.partial(VOP3, VOP3Op.V_CMPX_EQ_I32) -v_cmpx_le_i32_e64 = functools.partial(VOP3, VOP3Op.V_CMPX_LE_I32) -v_cmpx_gt_i32_e64 = functools.partial(VOP3, VOP3Op.V_CMPX_GT_I32) -v_cmpx_ne_i32_e64 = functools.partial(VOP3, VOP3Op.V_CMPX_NE_I32) -v_cmpx_ge_i32_e64 = functools.partial(VOP3, VOP3Op.V_CMPX_GE_I32) -v_cmpx_lt_u32_e64 = functools.partial(VOP3, VOP3Op.V_CMPX_LT_U32) -v_cmpx_eq_u32_e64 = functools.partial(VOP3, VOP3Op.V_CMPX_EQ_U32) -v_cmpx_le_u32_e64 = functools.partial(VOP3, VOP3Op.V_CMPX_LE_U32) -v_cmpx_gt_u32_e64 = functools.partial(VOP3, VOP3Op.V_CMPX_GT_U32) -v_cmpx_ne_u32_e64 = functools.partial(VOP3, VOP3Op.V_CMPX_NE_U32) -v_cmpx_ge_u32_e64 = functools.partial(VOP3, VOP3Op.V_CMPX_GE_U32) -v_cmpx_lt_i64_e64 = functools.partial(VOP3, VOP3Op.V_CMPX_LT_I64) -v_cmpx_eq_i64_e64 = functools.partial(VOP3, VOP3Op.V_CMPX_EQ_I64) -v_cmpx_le_i64_e64 = functools.partial(VOP3, VOP3Op.V_CMPX_LE_I64) -v_cmpx_gt_i64_e64 = functools.partial(VOP3, VOP3Op.V_CMPX_GT_I64) -v_cmpx_ne_i64_e64 = functools.partial(VOP3, VOP3Op.V_CMPX_NE_I64) -v_cmpx_ge_i64_e64 = functools.partial(VOP3, VOP3Op.V_CMPX_GE_I64) -v_cmpx_lt_u64_e64 = functools.partial(VOP3, VOP3Op.V_CMPX_LT_U64) -v_cmpx_eq_u64_e64 = functools.partial(VOP3, VOP3Op.V_CMPX_EQ_U64) -v_cmpx_le_u64_e64 = functools.partial(VOP3, VOP3Op.V_CMPX_LE_U64) -v_cmpx_gt_u64_e64 = functools.partial(VOP3, VOP3Op.V_CMPX_GT_U64) -v_cmpx_ne_u64_e64 = functools.partial(VOP3, VOP3Op.V_CMPX_NE_U64) -v_cmpx_ge_u64_e64 = functools.partial(VOP3, VOP3Op.V_CMPX_GE_U64) -v_cmpx_class_f16_e64 = functools.partial(VOP3, VOP3Op.V_CMPX_CLASS_F16) -v_cmpx_class_f32_e64 = functools.partial(VOP3, VOP3Op.V_CMPX_CLASS_F32) -v_cmpx_class_f64_e64 = functools.partial(VOP3, VOP3Op.V_CMPX_CLASS_F64) -v_cndmask_b32_e64 = functools.partial(VOP3, VOP3Op.V_CNDMASK_B32) -v_add_f64_e64 = functools.partial(VOP3, VOP3Op.V_ADD_F64) -v_add_f32_e64 = functools.partial(VOP3, VOP3Op.V_ADD_F32) -v_sub_f32_e64 = functools.partial(VOP3, VOP3Op.V_SUB_F32) -v_subrev_f32_e64 = functools.partial(VOP3, VOP3Op.V_SUBREV_F32) -v_mul_f64_e64 = functools.partial(VOP3, VOP3Op.V_MUL_F64) -v_mul_dx9_zero_f32_e64 = functools.partial(VOP3, VOP3Op.V_MUL_DX9_ZERO_F32) -v_mul_f32_e64 = functools.partial(VOP3, VOP3Op.V_MUL_F32) -v_mul_i32_i24_e64 = functools.partial(VOP3, VOP3Op.V_MUL_I32_I24) -v_mul_hi_i32_i24_e64 = functools.partial(VOP3, VOP3Op.V_MUL_HI_I32_I24) -v_mul_u32_u24_e64 = functools.partial(VOP3, VOP3Op.V_MUL_U32_U24) -v_mul_hi_u32_u24_e64 = functools.partial(VOP3, VOP3Op.V_MUL_HI_U32_U24) -v_min_num_f64_e64 = functools.partial(VOP3, VOP3Op.V_MIN_NUM_F64) -v_max_num_f64_e64 = functools.partial(VOP3, VOP3Op.V_MAX_NUM_F64) -v_min_i32_e64 = functools.partial(VOP3, VOP3Op.V_MIN_I32) -v_max_i32_e64 = functools.partial(VOP3, VOP3Op.V_MAX_I32) -v_min_u32_e64 = functools.partial(VOP3, VOP3Op.V_MIN_U32) -v_max_u32_e64 = functools.partial(VOP3, VOP3Op.V_MAX_U32) -v_min_num_f32_e64 = functools.partial(VOP3, VOP3Op.V_MIN_NUM_F32) -v_max_num_f32_e64 = functools.partial(VOP3, VOP3Op.V_MAX_NUM_F32) -v_lshlrev_b32_e64 = functools.partial(VOP3, VOP3Op.V_LSHLREV_B32) -v_lshrrev_b32_e64 = functools.partial(VOP3, VOP3Op.V_LSHRREV_B32) -v_ashrrev_i32_e64 = functools.partial(VOP3, VOP3Op.V_ASHRREV_I32) -v_and_b32_e64 = functools.partial(VOP3, VOP3Op.V_AND_B32) -v_or_b32_e64 = functools.partial(VOP3, VOP3Op.V_OR_B32) -v_xor_b32_e64 = functools.partial(VOP3, VOP3Op.V_XOR_B32) -v_xnor_b32_e64 = functools.partial(VOP3, VOP3Op.V_XNOR_B32) -v_lshlrev_b64_e64 = functools.partial(VOP3, VOP3Op.V_LSHLREV_B64) -v_add_nc_u32_e64 = functools.partial(VOP3, VOP3Op.V_ADD_NC_U32) -v_sub_nc_u32_e64 = functools.partial(VOP3, VOP3Op.V_SUB_NC_U32) -v_subrev_nc_u32_e64 = functools.partial(VOP3, VOP3Op.V_SUBREV_NC_U32) -v_fmac_f32_e64 = functools.partial(VOP3, VOP3Op.V_FMAC_F32) -v_cvt_pk_rtz_f16_f32_e64 = functools.partial(VOP3, VOP3Op.V_CVT_PK_RTZ_F16_F32) -v_min_num_f16_e64 = functools.partial(VOP3, VOP3Op.V_MIN_NUM_F16) -v_max_num_f16_e64 = functools.partial(VOP3, VOP3Op.V_MAX_NUM_F16) -v_add_f16_e64 = functools.partial(VOP3, VOP3Op.V_ADD_F16) -v_sub_f16_e64 = functools.partial(VOP3, VOP3Op.V_SUB_F16) -v_subrev_f16_e64 = functools.partial(VOP3, VOP3Op.V_SUBREV_F16) -v_mul_f16_e64 = functools.partial(VOP3, VOP3Op.V_MUL_F16) -v_fmac_f16_e64 = functools.partial(VOP3, VOP3Op.V_FMAC_F16) -v_ldexp_f16_e64 = functools.partial(VOP3, VOP3Op.V_LDEXP_F16) -v_nop_e64 = functools.partial(VOP3, VOP3Op.V_NOP) -v_mov_b32_e64 = functools.partial(VOP3, VOP3Op.V_MOV_B32) -v_readfirstlane_b32_e64 = functools.partial(VOP3, VOP3Op.V_READFIRSTLANE_B32) -v_cvt_i32_f64_e64 = functools.partial(VOP3, VOP3Op.V_CVT_I32_F64) -v_cvt_f64_i32_e64 = functools.partial(VOP3, VOP3Op.V_CVT_F64_I32) -v_cvt_f32_i32_e64 = functools.partial(VOP3, VOP3Op.V_CVT_F32_I32) -v_cvt_f32_u32_e64 = functools.partial(VOP3, VOP3Op.V_CVT_F32_U32) -v_cvt_u32_f32_e64 = functools.partial(VOP3, VOP3Op.V_CVT_U32_F32) -v_cvt_i32_f32_e64 = functools.partial(VOP3, VOP3Op.V_CVT_I32_F32) -v_cvt_f16_f32_e64 = functools.partial(VOP3, VOP3Op.V_CVT_F16_F32) -v_cvt_f32_f16_e64 = functools.partial(VOP3, VOP3Op.V_CVT_F32_F16) -v_cvt_nearest_i32_f32_e64 = functools.partial(VOP3, VOP3Op.V_CVT_NEAREST_I32_F32) -v_cvt_floor_i32_f32_e64 = functools.partial(VOP3, VOP3Op.V_CVT_FLOOR_I32_F32) -v_cvt_off_f32_i4_e64 = functools.partial(VOP3, VOP3Op.V_CVT_OFF_F32_I4) -v_cvt_f32_f64_e64 = functools.partial(VOP3, VOP3Op.V_CVT_F32_F64) -v_cvt_f64_f32_e64 = functools.partial(VOP3, VOP3Op.V_CVT_F64_F32) -v_cvt_f32_ubyte0_e64 = functools.partial(VOP3, VOP3Op.V_CVT_F32_UBYTE0) -v_cvt_f32_ubyte1_e64 = functools.partial(VOP3, VOP3Op.V_CVT_F32_UBYTE1) -v_cvt_f32_ubyte2_e64 = functools.partial(VOP3, VOP3Op.V_CVT_F32_UBYTE2) -v_cvt_f32_ubyte3_e64 = functools.partial(VOP3, VOP3Op.V_CVT_F32_UBYTE3) -v_cvt_u32_f64_e64 = functools.partial(VOP3, VOP3Op.V_CVT_U32_F64) -v_cvt_f64_u32_e64 = functools.partial(VOP3, VOP3Op.V_CVT_F64_U32) -v_trunc_f64_e64 = functools.partial(VOP3, VOP3Op.V_TRUNC_F64) -v_ceil_f64_e64 = functools.partial(VOP3, VOP3Op.V_CEIL_F64) -v_rndne_f64_e64 = functools.partial(VOP3, VOP3Op.V_RNDNE_F64) -v_floor_f64_e64 = functools.partial(VOP3, VOP3Op.V_FLOOR_F64) -v_pipeflush_e64 = functools.partial(VOP3, VOP3Op.V_PIPEFLUSH) -v_mov_b16_e64 = functools.partial(VOP3, VOP3Op.V_MOV_B16) -v_fract_f32_e64 = functools.partial(VOP3, VOP3Op.V_FRACT_F32) -v_trunc_f32_e64 = functools.partial(VOP3, VOP3Op.V_TRUNC_F32) -v_ceil_f32_e64 = functools.partial(VOP3, VOP3Op.V_CEIL_F32) -v_rndne_f32_e64 = functools.partial(VOP3, VOP3Op.V_RNDNE_F32) -v_floor_f32_e64 = functools.partial(VOP3, VOP3Op.V_FLOOR_F32) -v_exp_f32_e64 = functools.partial(VOP3, VOP3Op.V_EXP_F32) -v_log_f32_e64 = functools.partial(VOP3, VOP3Op.V_LOG_F32) -v_rcp_f32_e64 = functools.partial(VOP3, VOP3Op.V_RCP_F32) -v_rcp_iflag_f32_e64 = functools.partial(VOP3, VOP3Op.V_RCP_IFLAG_F32) -v_rsq_f32_e64 = functools.partial(VOP3, VOP3Op.V_RSQ_F32) -v_rcp_f64_e64 = functools.partial(VOP3, VOP3Op.V_RCP_F64) -v_rsq_f64_e64 = functools.partial(VOP3, VOP3Op.V_RSQ_F64) -v_sqrt_f32_e64 = functools.partial(VOP3, VOP3Op.V_SQRT_F32) -v_sqrt_f64_e64 = functools.partial(VOP3, VOP3Op.V_SQRT_F64) -v_sin_f32_e64 = functools.partial(VOP3, VOP3Op.V_SIN_F32) -v_cos_f32_e64 = functools.partial(VOP3, VOP3Op.V_COS_F32) -v_not_b32_e64 = functools.partial(VOP3, VOP3Op.V_NOT_B32) -v_bfrev_b32_e64 = functools.partial(VOP3, VOP3Op.V_BFREV_B32) -v_clz_i32_u32_e64 = functools.partial(VOP3, VOP3Op.V_CLZ_I32_U32) -v_ctz_i32_b32_e64 = functools.partial(VOP3, VOP3Op.V_CTZ_I32_B32) -v_cls_i32_e64 = functools.partial(VOP3, VOP3Op.V_CLS_I32) -v_frexp_exp_i32_f64_e64 = functools.partial(VOP3, VOP3Op.V_FREXP_EXP_I32_F64) -v_frexp_mant_f64_e64 = functools.partial(VOP3, VOP3Op.V_FREXP_MANT_F64) -v_fract_f64_e64 = functools.partial(VOP3, VOP3Op.V_FRACT_F64) -v_frexp_exp_i32_f32_e64 = functools.partial(VOP3, VOP3Op.V_FREXP_EXP_I32_F32) -v_frexp_mant_f32_e64 = functools.partial(VOP3, VOP3Op.V_FREXP_MANT_F32) -v_movreld_b32_e64 = functools.partial(VOP3, VOP3Op.V_MOVRELD_B32) -v_movrels_b32_e64 = functools.partial(VOP3, VOP3Op.V_MOVRELS_B32) -v_movrelsd_b32_e64 = functools.partial(VOP3, VOP3Op.V_MOVRELSD_B32) -v_movrelsd_2_b32_e64 = functools.partial(VOP3, VOP3Op.V_MOVRELSD_2_B32) -v_cvt_f16_u16_e64 = functools.partial(VOP3, VOP3Op.V_CVT_F16_U16) -v_cvt_f16_i16_e64 = functools.partial(VOP3, VOP3Op.V_CVT_F16_I16) -v_cvt_u16_f16_e64 = functools.partial(VOP3, VOP3Op.V_CVT_U16_F16) -v_cvt_i16_f16_e64 = functools.partial(VOP3, VOP3Op.V_CVT_I16_F16) -v_rcp_f16_e64 = functools.partial(VOP3, VOP3Op.V_RCP_F16) -v_sqrt_f16_e64 = functools.partial(VOP3, VOP3Op.V_SQRT_F16) -v_rsq_f16_e64 = functools.partial(VOP3, VOP3Op.V_RSQ_F16) -v_log_f16_e64 = functools.partial(VOP3, VOP3Op.V_LOG_F16) -v_exp_f16_e64 = functools.partial(VOP3, VOP3Op.V_EXP_F16) -v_frexp_mant_f16_e64 = functools.partial(VOP3, VOP3Op.V_FREXP_MANT_F16) -v_frexp_exp_i16_f16_e64 = functools.partial(VOP3, VOP3Op.V_FREXP_EXP_I16_F16) -v_floor_f16_e64 = functools.partial(VOP3, VOP3Op.V_FLOOR_F16) -v_ceil_f16_e64 = functools.partial(VOP3, VOP3Op.V_CEIL_F16) -v_trunc_f16_e64 = functools.partial(VOP3, VOP3Op.V_TRUNC_F16) -v_rndne_f16_e64 = functools.partial(VOP3, VOP3Op.V_RNDNE_F16) -v_fract_f16_e64 = functools.partial(VOP3, VOP3Op.V_FRACT_F16) -v_sin_f16_e64 = functools.partial(VOP3, VOP3Op.V_SIN_F16) -v_cos_f16_e64 = functools.partial(VOP3, VOP3Op.V_COS_F16) -v_sat_pk_u8_i16_e64 = functools.partial(VOP3, VOP3Op.V_SAT_PK_U8_I16) -v_cvt_norm_i16_f16_e64 = functools.partial(VOP3, VOP3Op.V_CVT_NORM_I16_F16) -v_cvt_norm_u16_f16_e64 = functools.partial(VOP3, VOP3Op.V_CVT_NORM_U16_F16) -v_not_b16_e64 = functools.partial(VOP3, VOP3Op.V_NOT_B16) -v_cvt_i32_i16_e64 = functools.partial(VOP3, VOP3Op.V_CVT_I32_I16) -v_cvt_u32_u16_e64 = functools.partial(VOP3, VOP3Op.V_CVT_U32_U16) -v_cvt_f32_fp8_e64 = functools.partial(VOP3, VOP3Op.V_CVT_F32_FP8) -v_cvt_f32_bf8_e64 = functools.partial(VOP3, VOP3Op.V_CVT_F32_BF8) -v_cvt_pk_f32_fp8_e64 = functools.partial(VOP3, VOP3Op.V_CVT_PK_F32_FP8) -v_cvt_pk_f32_bf8_e64 = functools.partial(VOP3, VOP3Op.V_CVT_PK_F32_BF8) -v_fma_dx9_zero_f32 = functools.partial(VOP3, VOP3Op.V_FMA_DX9_ZERO_F32) -v_mad_i32_i24 = functools.partial(VOP3, VOP3Op.V_MAD_I32_I24) -v_mad_u32_u24 = functools.partial(VOP3, VOP3Op.V_MAD_U32_U24) -v_cubeid_f32 = functools.partial(VOP3, VOP3Op.V_CUBEID_F32) -v_cubesc_f32 = functools.partial(VOP3, VOP3Op.V_CUBESC_F32) -v_cubetc_f32 = functools.partial(VOP3, VOP3Op.V_CUBETC_F32) -v_cubema_f32 = functools.partial(VOP3, VOP3Op.V_CUBEMA_F32) -v_bfe_u32 = functools.partial(VOP3, VOP3Op.V_BFE_U32) -v_bfe_i32 = functools.partial(VOP3, VOP3Op.V_BFE_I32) -v_bfi_b32 = functools.partial(VOP3, VOP3Op.V_BFI_B32) -v_fma_f32 = functools.partial(VOP3, VOP3Op.V_FMA_F32) -v_fma_f64 = functools.partial(VOP3, VOP3Op.V_FMA_F64) -v_lerp_u8 = functools.partial(VOP3, VOP3Op.V_LERP_U8) -v_alignbit_b32 = functools.partial(VOP3, VOP3Op.V_ALIGNBIT_B32) -v_alignbyte_b32 = functools.partial(VOP3, VOP3Op.V_ALIGNBYTE_B32) -v_mullit_f32 = functools.partial(VOP3, VOP3Op.V_MULLIT_F32) -v_min3_i32 = functools.partial(VOP3, VOP3Op.V_MIN3_I32) -v_min3_u32 = functools.partial(VOP3, VOP3Op.V_MIN3_U32) -v_max3_i32 = functools.partial(VOP3, VOP3Op.V_MAX3_I32) -v_max3_u32 = functools.partial(VOP3, VOP3Op.V_MAX3_U32) -v_med3_i32 = functools.partial(VOP3, VOP3Op.V_MED3_I32) -v_med3_u32 = functools.partial(VOP3, VOP3Op.V_MED3_U32) -v_sad_u8 = functools.partial(VOP3, VOP3Op.V_SAD_U8) -v_sad_hi_u8 = functools.partial(VOP3, VOP3Op.V_SAD_HI_U8) -v_sad_u16 = functools.partial(VOP3, VOP3Op.V_SAD_U16) -v_sad_u32 = functools.partial(VOP3, VOP3Op.V_SAD_U32) -v_cvt_pk_u8_f32 = functools.partial(VOP3, VOP3Op.V_CVT_PK_U8_F32) -v_div_fixup_f32 = functools.partial(VOP3, VOP3Op.V_DIV_FIXUP_F32) -v_div_fixup_f64 = functools.partial(VOP3, VOP3Op.V_DIV_FIXUP_F64) -v_min3_num_f32 = functools.partial(VOP3, VOP3Op.V_MIN3_NUM_F32) -v_max3_num_f32 = functools.partial(VOP3, VOP3Op.V_MAX3_NUM_F32) -v_min3_num_f16 = functools.partial(VOP3, VOP3Op.V_MIN3_NUM_F16) -v_max3_num_f16 = functools.partial(VOP3, VOP3Op.V_MAX3_NUM_F16) -v_minimum3_f32 = functools.partial(VOP3, VOP3Op.V_MINIMUM3_F32) -v_maximum3_f32 = functools.partial(VOP3, VOP3Op.V_MAXIMUM3_F32) -v_minimum3_f16 = functools.partial(VOP3, VOP3Op.V_MINIMUM3_F16) -v_maximum3_f16 = functools.partial(VOP3, VOP3Op.V_MAXIMUM3_F16) -v_med3_num_f32 = functools.partial(VOP3, VOP3Op.V_MED3_NUM_F32) -v_med3_num_f16 = functools.partial(VOP3, VOP3Op.V_MED3_NUM_F16) -v_div_fmas_f32 = functools.partial(VOP3, VOP3Op.V_DIV_FMAS_F32) -v_div_fmas_f64 = functools.partial(VOP3, VOP3Op.V_DIV_FMAS_F64) -v_msad_u8 = functools.partial(VOP3, VOP3Op.V_MSAD_U8) -v_qsad_pk_u16_u8 = functools.partial(VOP3, VOP3Op.V_QSAD_PK_U16_U8) -v_mqsad_pk_u16_u8 = functools.partial(VOP3, VOP3Op.V_MQSAD_PK_U16_U8) -v_mqsad_u32_u8 = functools.partial(VOP3, VOP3Op.V_MQSAD_U32_U8) -v_xor3_b32 = functools.partial(VOP3, VOP3Op.V_XOR3_B32) -v_mad_u16 = functools.partial(VOP3, VOP3Op.V_MAD_U16) -v_perm_b32 = functools.partial(VOP3, VOP3Op.V_PERM_B32) -v_xad_u32 = functools.partial(VOP3, VOP3Op.V_XAD_U32) -v_lshl_add_u32 = functools.partial(VOP3, VOP3Op.V_LSHL_ADD_U32) -v_add_lshl_u32 = functools.partial(VOP3, VOP3Op.V_ADD_LSHL_U32) -v_fma_f16 = functools.partial(VOP3, VOP3Op.V_FMA_F16) -v_min3_i16 = functools.partial(VOP3, VOP3Op.V_MIN3_I16) -v_min3_u16 = functools.partial(VOP3, VOP3Op.V_MIN3_U16) -v_max3_i16 = functools.partial(VOP3, VOP3Op.V_MAX3_I16) -v_max3_u16 = functools.partial(VOP3, VOP3Op.V_MAX3_U16) -v_med3_i16 = functools.partial(VOP3, VOP3Op.V_MED3_I16) -v_med3_u16 = functools.partial(VOP3, VOP3Op.V_MED3_U16) -v_mad_i16 = functools.partial(VOP3, VOP3Op.V_MAD_I16) -v_div_fixup_f16 = functools.partial(VOP3, VOP3Op.V_DIV_FIXUP_F16) -v_add3_u32 = functools.partial(VOP3, VOP3Op.V_ADD3_U32) -v_lshl_or_b32 = functools.partial(VOP3, VOP3Op.V_LSHL_OR_B32) -v_and_or_b32 = functools.partial(VOP3, VOP3Op.V_AND_OR_B32) -v_or3_b32 = functools.partial(VOP3, VOP3Op.V_OR3_B32) -v_mad_u32_u16 = functools.partial(VOP3, VOP3Op.V_MAD_U32_U16) -v_mad_i32_i16 = functools.partial(VOP3, VOP3Op.V_MAD_I32_I16) -v_permlane16_b32 = functools.partial(VOP3, VOP3Op.V_PERMLANE16_B32) -v_permlanex16_b32 = functools.partial(VOP3, VOP3Op.V_PERMLANEX16_B32) -v_cndmask_b16 = functools.partial(VOP3, VOP3Op.V_CNDMASK_B16) -v_maxmin_u32 = functools.partial(VOP3, VOP3Op.V_MAXMIN_U32) -v_minmax_u32 = functools.partial(VOP3, VOP3Op.V_MINMAX_U32) -v_maxmin_i32 = functools.partial(VOP3, VOP3Op.V_MAXMIN_I32) -v_minmax_i32 = functools.partial(VOP3, VOP3Op.V_MINMAX_I32) -v_dot2_f16_f16 = functools.partial(VOP3, VOP3Op.V_DOT2_F16_F16) -v_dot2_bf16_bf16 = functools.partial(VOP3, VOP3Op.V_DOT2_BF16_BF16) -v_minmax_num_f32 = functools.partial(VOP3, VOP3Op.V_MINMAX_NUM_F32) -v_maxmin_num_f32 = functools.partial(VOP3, VOP3Op.V_MAXMIN_NUM_F32) -v_minmax_num_f16 = functools.partial(VOP3, VOP3Op.V_MINMAX_NUM_F16) -v_maxmin_num_f16 = functools.partial(VOP3, VOP3Op.V_MAXMIN_NUM_F16) -v_minimummaximum_f32 = functools.partial(VOP3, VOP3Op.V_MINIMUMMAXIMUM_F32) -v_maximumminimum_f32 = functools.partial(VOP3, VOP3Op.V_MAXIMUMMINIMUM_F32) -v_minimummaximum_f16 = functools.partial(VOP3, VOP3Op.V_MINIMUMMAXIMUM_F16) -v_maximumminimum_f16 = functools.partial(VOP3, VOP3Op.V_MAXIMUMMINIMUM_F16) -v_s_exp_f32 = functools.partial(VOP3, VOP3Op.V_S_EXP_F32) -v_s_exp_f16 = functools.partial(VOP3, VOP3Op.V_S_EXP_F16) -v_s_log_f32 = functools.partial(VOP3, VOP3Op.V_S_LOG_F32) -v_s_log_f16 = functools.partial(VOP3, VOP3Op.V_S_LOG_F16) -v_s_rcp_f32 = functools.partial(VOP3, VOP3Op.V_S_RCP_F32) -v_s_rcp_f16 = functools.partial(VOP3, VOP3Op.V_S_RCP_F16) -v_s_rsq_f32 = functools.partial(VOP3, VOP3Op.V_S_RSQ_F32) -v_s_rsq_f16 = functools.partial(VOP3, VOP3Op.V_S_RSQ_F16) -v_s_sqrt_f32 = functools.partial(VOP3, VOP3Op.V_S_SQRT_F32) -v_s_sqrt_f16 = functools.partial(VOP3, VOP3Op.V_S_SQRT_F16) -v_add_nc_u16 = functools.partial(VOP3, VOP3Op.V_ADD_NC_U16) -v_sub_nc_u16 = functools.partial(VOP3, VOP3Op.V_SUB_NC_U16) -v_mul_lo_u16 = functools.partial(VOP3, VOP3Op.V_MUL_LO_U16) -v_cvt_pk_i16_f32 = functools.partial(VOP3, VOP3Op.V_CVT_PK_I16_F32) -v_cvt_pk_u16_f32 = functools.partial(VOP3, VOP3Op.V_CVT_PK_U16_F32) -v_max_u16 = functools.partial(VOP3, VOP3Op.V_MAX_U16) -v_max_i16 = functools.partial(VOP3, VOP3Op.V_MAX_I16) -v_min_u16 = functools.partial(VOP3, VOP3Op.V_MIN_U16) -v_min_i16 = functools.partial(VOP3, VOP3Op.V_MIN_I16) -v_add_nc_i16 = functools.partial(VOP3, VOP3Op.V_ADD_NC_I16) -v_sub_nc_i16 = functools.partial(VOP3, VOP3Op.V_SUB_NC_I16) -v_permlane16_var_b32 = functools.partial(VOP3, VOP3Op.V_PERMLANE16_VAR_B32) -v_permlanex16_var_b32 = functools.partial(VOP3, VOP3Op.V_PERMLANEX16_VAR_B32) -v_pack_b32_f16 = functools.partial(VOP3, VOP3Op.V_PACK_B32_F16) -v_cvt_pk_norm_i16_f16 = functools.partial(VOP3, VOP3Op.V_CVT_PK_NORM_I16_F16) -v_cvt_pk_norm_u16_f16 = functools.partial(VOP3, VOP3Op.V_CVT_PK_NORM_U16_F16) -v_ldexp_f32 = functools.partial(VOP3, VOP3Op.V_LDEXP_F32) -v_bfm_b32 = functools.partial(VOP3, VOP3Op.V_BFM_B32) -v_bcnt_u32_b32 = functools.partial(VOP3, VOP3Op.V_BCNT_U32_B32) -v_mbcnt_lo_u32_b32 = functools.partial(VOP3, VOP3Op.V_MBCNT_LO_U32_B32) -v_mbcnt_hi_u32_b32 = functools.partial(VOP3, VOP3Op.V_MBCNT_HI_U32_B32) -v_cvt_pk_norm_i16_f32 = functools.partial(VOP3, VOP3Op.V_CVT_PK_NORM_I16_F32) -v_cvt_pk_norm_u16_f32 = functools.partial(VOP3, VOP3Op.V_CVT_PK_NORM_U16_F32) -v_cvt_pk_u16_u32 = functools.partial(VOP3, VOP3Op.V_CVT_PK_U16_U32) -v_cvt_pk_i16_i32 = functools.partial(VOP3, VOP3Op.V_CVT_PK_I16_I32) -v_sub_nc_i32 = functools.partial(VOP3, VOP3Op.V_SUB_NC_I32) -v_add_nc_i32 = functools.partial(VOP3, VOP3Op.V_ADD_NC_I32) -v_ldexp_f64 = functools.partial(VOP3, VOP3Op.V_LDEXP_F64) -v_mul_lo_u32 = functools.partial(VOP3, VOP3Op.V_MUL_LO_U32) -v_mul_hi_u32 = functools.partial(VOP3, VOP3Op.V_MUL_HI_U32) -v_mul_hi_i32 = functools.partial(VOP3, VOP3Op.V_MUL_HI_I32) -v_trig_preop_f64 = functools.partial(VOP3, VOP3Op.V_TRIG_PREOP_F64) -v_lshlrev_b16 = functools.partial(VOP3, VOP3Op.V_LSHLREV_B16) -v_lshrrev_b16 = functools.partial(VOP3, VOP3Op.V_LSHRREV_B16) -v_ashrrev_i16 = functools.partial(VOP3, VOP3Op.V_ASHRREV_I16) -v_lshrrev_b64 = functools.partial(VOP3, VOP3Op.V_LSHRREV_B64) -v_ashrrev_i64 = functools.partial(VOP3, VOP3Op.V_ASHRREV_I64) -v_minimum_f64 = functools.partial(VOP3, VOP3Op.V_MINIMUM_F64) -v_maximum_f64 = functools.partial(VOP3, VOP3Op.V_MAXIMUM_F64) -v_readlane_b32 = functools.partial(VOP3, VOP3Op.V_READLANE_B32) -v_writelane_b32 = functools.partial(VOP3, VOP3Op.V_WRITELANE_B32) -v_and_b16 = functools.partial(VOP3, VOP3Op.V_AND_B16) -v_or_b16 = functools.partial(VOP3, VOP3Op.V_OR_B16) -v_xor_b16 = functools.partial(VOP3, VOP3Op.V_XOR_B16) -v_minimum_f32 = functools.partial(VOP3, VOP3Op.V_MINIMUM_F32) -v_maximum_f32 = functools.partial(VOP3, VOP3Op.V_MAXIMUM_F32) -v_minimum_f16 = functools.partial(VOP3, VOP3Op.V_MINIMUM_F16) -v_maximum_f16 = functools.partial(VOP3, VOP3Op.V_MAXIMUM_F16) -v_cvt_pk_fp8_f32 = functools.partial(VOP3, VOP3Op.V_CVT_PK_FP8_F32) -v_cvt_pk_bf8_f32 = functools.partial(VOP3, VOP3Op.V_CVT_PK_BF8_F32) -v_cvt_sr_fp8_f32 = functools.partial(VOP3, VOP3Op.V_CVT_SR_FP8_F32) -v_cvt_sr_bf8_f32 = functools.partial(VOP3, VOP3Op.V_CVT_SR_BF8_F32) -v_pk_mad_i16 = functools.partial(VOP3P, VOP3POp.V_PK_MAD_I16) -v_pk_mul_lo_u16 = functools.partial(VOP3P, VOP3POp.V_PK_MUL_LO_U16) -v_pk_add_i16 = functools.partial(VOP3P, VOP3POp.V_PK_ADD_I16) -v_pk_sub_i16 = functools.partial(VOP3P, VOP3POp.V_PK_SUB_I16) -v_pk_lshlrev_b16 = functools.partial(VOP3P, VOP3POp.V_PK_LSHLREV_B16) -v_pk_lshrrev_b16 = functools.partial(VOP3P, VOP3POp.V_PK_LSHRREV_B16) -v_pk_ashrrev_i16 = functools.partial(VOP3P, VOP3POp.V_PK_ASHRREV_I16) -v_pk_max_i16 = functools.partial(VOP3P, VOP3POp.V_PK_MAX_I16) -v_pk_min_i16 = functools.partial(VOP3P, VOP3POp.V_PK_MIN_I16) -v_pk_mad_u16 = functools.partial(VOP3P, VOP3POp.V_PK_MAD_U16) -v_pk_add_u16 = functools.partial(VOP3P, VOP3POp.V_PK_ADD_U16) -v_pk_sub_u16 = functools.partial(VOP3P, VOP3POp.V_PK_SUB_U16) -v_pk_max_u16 = functools.partial(VOP3P, VOP3POp.V_PK_MAX_U16) -v_pk_min_u16 = functools.partial(VOP3P, VOP3POp.V_PK_MIN_U16) -v_pk_fma_f16 = functools.partial(VOP3P, VOP3POp.V_PK_FMA_F16) -v_pk_add_f16 = functools.partial(VOP3P, VOP3POp.V_PK_ADD_F16) -v_pk_mul_f16 = functools.partial(VOP3P, VOP3POp.V_PK_MUL_F16) -v_dot2_f32_f16 = functools.partial(VOP3P, VOP3POp.V_DOT2_F32_F16) -v_dot4_i32_iu8 = functools.partial(VOP3P, VOP3POp.V_DOT4_I32_IU8) -v_dot4_u32_u8 = functools.partial(VOP3P, VOP3POp.V_DOT4_U32_U8) -v_dot8_i32_iu4 = functools.partial(VOP3P, VOP3POp.V_DOT8_I32_IU4) -v_dot8_u32_u4 = functools.partial(VOP3P, VOP3POp.V_DOT8_U32_U4) -v_dot2_f32_bf16 = functools.partial(VOP3P, VOP3POp.V_DOT2_F32_BF16) -v_pk_min_num_f16 = functools.partial(VOP3P, VOP3POp.V_PK_MIN_NUM_F16) -v_pk_max_num_f16 = functools.partial(VOP3P, VOP3POp.V_PK_MAX_NUM_F16) -v_pk_minimum_f16 = functools.partial(VOP3P, VOP3POp.V_PK_MINIMUM_F16) -v_pk_maximum_f16 = functools.partial(VOP3P, VOP3POp.V_PK_MAXIMUM_F16) -v_fma_mix_f32 = functools.partial(VOP3P, VOP3POp.V_FMA_MIX_F32) -v_fma_mixlo_f16 = functools.partial(VOP3P, VOP3POp.V_FMA_MIXLO_F16) -v_fma_mixhi_f16 = functools.partial(VOP3P, VOP3POp.V_FMA_MIXHI_F16) -v_dot4_f32_fp8_bf8 = functools.partial(VOP3P, VOP3POp.V_DOT4_F32_FP8_BF8) -v_dot4_f32_bf8_fp8 = functools.partial(VOP3P, VOP3POp.V_DOT4_F32_BF8_FP8) -v_dot4_f32_fp8_fp8 = functools.partial(VOP3P, VOP3POp.V_DOT4_F32_FP8_FP8) -v_dot4_f32_bf8_bf8 = functools.partial(VOP3P, VOP3POp.V_DOT4_F32_BF8_BF8) -v_wmma_f32_16x16x16_f16 = functools.partial(VOP3P, VOP3POp.V_WMMA_F32_16X16X16_F16) -v_wmma_f32_16x16x16_bf16 = functools.partial(VOP3P, VOP3POp.V_WMMA_F32_16X16X16_BF16) -v_wmma_f16_16x16x16_f16 = functools.partial(VOP3P, VOP3POp.V_WMMA_F16_16X16X16_F16) -v_wmma_bf16_16x16x16_bf16 = functools.partial(VOP3P, VOP3POp.V_WMMA_BF16_16X16X16_BF16) -v_wmma_i32_16x16x16_iu8 = functools.partial(VOP3P, VOP3POp.V_WMMA_I32_16X16X16_IU8) -v_wmma_i32_16x16x16_iu4 = functools.partial(VOP3P, VOP3POp.V_WMMA_I32_16X16X16_IU4) -v_wmma_f32_16x16x16_fp8_fp8 = functools.partial(VOP3P, VOP3POp.V_WMMA_F32_16X16X16_FP8_FP8) -v_wmma_f32_16x16x16_fp8_bf8 = functools.partial(VOP3P, VOP3POp.V_WMMA_F32_16X16X16_FP8_BF8) -v_wmma_f32_16x16x16_bf8_fp8 = functools.partial(VOP3P, VOP3POp.V_WMMA_F32_16X16X16_BF8_FP8) -v_wmma_f32_16x16x16_bf8_bf8 = functools.partial(VOP3P, VOP3POp.V_WMMA_F32_16X16X16_BF8_BF8) -v_wmma_i32_16x16x32_iu4 = functools.partial(VOP3P, VOP3POp.V_WMMA_I32_16X16X32_IU4) -v_swmmac_f32_16x16x32_f16 = functools.partial(VOP3P, VOP3POp.V_SWMMAC_F32_16X16X32_F16) -v_swmmac_f32_16x16x32_bf16 = functools.partial(VOP3P, VOP3POp.V_SWMMAC_F32_16X16X32_BF16) -v_swmmac_f16_16x16x32_f16 = functools.partial(VOP3P, VOP3POp.V_SWMMAC_F16_16X16X32_F16) -v_swmmac_bf16_16x16x32_bf16 = functools.partial(VOP3P, VOP3POp.V_SWMMAC_BF16_16X16X32_BF16) -v_swmmac_i32_16x16x32_iu8 = functools.partial(VOP3P, VOP3POp.V_SWMMAC_I32_16X16X32_IU8) -v_swmmac_i32_16x16x32_iu4 = functools.partial(VOP3P, VOP3POp.V_SWMMAC_I32_16X16X32_IU4) -v_swmmac_i32_16x16x64_iu4 = functools.partial(VOP3P, VOP3POp.V_SWMMAC_I32_16X16X64_IU4) -v_swmmac_f32_16x16x32_fp8_fp8 = functools.partial(VOP3P, VOP3POp.V_SWMMAC_F32_16X16X32_FP8_FP8) -v_swmmac_f32_16x16x32_fp8_bf8 = functools.partial(VOP3P, VOP3POp.V_SWMMAC_F32_16X16X32_FP8_BF8) -v_swmmac_f32_16x16x32_bf8_fp8 = functools.partial(VOP3P, VOP3POp.V_SWMMAC_F32_16X16X32_BF8_FP8) -v_swmmac_f32_16x16x32_bf8_bf8 = functools.partial(VOP3P, VOP3POp.V_SWMMAC_F32_16X16X32_BF8_BF8) -dword = functools.partial(VOP3SD, VOP3SDOp.DWORD) -v_add_co_ci_u32 = functools.partial(VOP3SD, VOP3SDOp.V_ADD_CO_CI_U32) -v_sub_co_ci_u32 = functools.partial(VOP3SD, VOP3SDOp.V_SUB_CO_CI_U32) -v_subrev_co_ci_u32 = functools.partial(VOP3SD, VOP3SDOp.V_SUBREV_CO_CI_U32) -v_div_scale_f32 = functools.partial(VOP3SD, VOP3SDOp.V_DIV_SCALE_F32) -v_div_scale_f64 = functools.partial(VOP3SD, VOP3SDOp.V_DIV_SCALE_F64) -v_mad_co_u64_u32 = functools.partial(VOP3SD, VOP3SDOp.V_MAD_CO_U64_U32) -v_mad_co_i64_i32 = functools.partial(VOP3SD, VOP3SDOp.V_MAD_CO_I64_I32) -v_add_co_u32 = functools.partial(VOP3SD, VOP3SDOp.V_ADD_CO_U32) -v_sub_co_u32 = functools.partial(VOP3SD, VOP3SDOp.V_SUB_CO_U32) -v_subrev_co_u32 = functools.partial(VOP3SD, VOP3SDOp.V_SUBREV_CO_U32) -v_cmp_lt_f16_e32 = functools.partial(VOPC, VOPCOp.V_CMP_LT_F16) -v_cmp_eq_f16_e32 = functools.partial(VOPC, VOPCOp.V_CMP_EQ_F16) -v_cmp_le_f16_e32 = functools.partial(VOPC, VOPCOp.V_CMP_LE_F16) -v_cmp_gt_f16_e32 = functools.partial(VOPC, VOPCOp.V_CMP_GT_F16) -v_cmp_lg_f16_e32 = functools.partial(VOPC, VOPCOp.V_CMP_LG_F16) -v_cmp_ge_f16_e32 = functools.partial(VOPC, VOPCOp.V_CMP_GE_F16) -v_cmp_o_f16_e32 = functools.partial(VOPC, VOPCOp.V_CMP_O_F16) -v_cmp_u_f16_e32 = functools.partial(VOPC, VOPCOp.V_CMP_U_F16) -v_cmp_nge_f16_e32 = functools.partial(VOPC, VOPCOp.V_CMP_NGE_F16) -v_cmp_nlg_f16_e32 = functools.partial(VOPC, VOPCOp.V_CMP_NLG_F16) -v_cmp_ngt_f16_e32 = functools.partial(VOPC, VOPCOp.V_CMP_NGT_F16) -v_cmp_nle_f16_e32 = functools.partial(VOPC, VOPCOp.V_CMP_NLE_F16) -v_cmp_neq_f16_e32 = functools.partial(VOPC, VOPCOp.V_CMP_NEQ_F16) -v_cmp_nlt_f16_e32 = functools.partial(VOPC, VOPCOp.V_CMP_NLT_F16) -v_cmp_lt_f32_e32 = functools.partial(VOPC, VOPCOp.V_CMP_LT_F32) -v_cmp_eq_f32_e32 = functools.partial(VOPC, VOPCOp.V_CMP_EQ_F32) -v_cmp_le_f32_e32 = functools.partial(VOPC, VOPCOp.V_CMP_LE_F32) -v_cmp_gt_f32_e32 = functools.partial(VOPC, VOPCOp.V_CMP_GT_F32) -v_cmp_lg_f32_e32 = functools.partial(VOPC, VOPCOp.V_CMP_LG_F32) -v_cmp_ge_f32_e32 = functools.partial(VOPC, VOPCOp.V_CMP_GE_F32) -v_cmp_o_f32_e32 = functools.partial(VOPC, VOPCOp.V_CMP_O_F32) -v_cmp_u_f32_e32 = functools.partial(VOPC, VOPCOp.V_CMP_U_F32) -v_cmp_nge_f32_e32 = functools.partial(VOPC, VOPCOp.V_CMP_NGE_F32) -v_cmp_nlg_f32_e32 = functools.partial(VOPC, VOPCOp.V_CMP_NLG_F32) -v_cmp_ngt_f32_e32 = functools.partial(VOPC, VOPCOp.V_CMP_NGT_F32) -v_cmp_nle_f32_e32 = functools.partial(VOPC, VOPCOp.V_CMP_NLE_F32) -v_cmp_neq_f32_e32 = functools.partial(VOPC, VOPCOp.V_CMP_NEQ_F32) -v_cmp_nlt_f32_e32 = functools.partial(VOPC, VOPCOp.V_CMP_NLT_F32) -v_cmp_lt_f64_e32 = functools.partial(VOPC, VOPCOp.V_CMP_LT_F64) -v_cmp_eq_f64_e32 = functools.partial(VOPC, VOPCOp.V_CMP_EQ_F64) -v_cmp_le_f64_e32 = functools.partial(VOPC, VOPCOp.V_CMP_LE_F64) -v_cmp_gt_f64_e32 = functools.partial(VOPC, VOPCOp.V_CMP_GT_F64) -v_cmp_lg_f64_e32 = functools.partial(VOPC, VOPCOp.V_CMP_LG_F64) -v_cmp_ge_f64_e32 = functools.partial(VOPC, VOPCOp.V_CMP_GE_F64) -v_cmp_o_f64_e32 = functools.partial(VOPC, VOPCOp.V_CMP_O_F64) -v_cmp_u_f64_e32 = functools.partial(VOPC, VOPCOp.V_CMP_U_F64) -v_cmp_nge_f64_e32 = functools.partial(VOPC, VOPCOp.V_CMP_NGE_F64) -v_cmp_nlg_f64_e32 = functools.partial(VOPC, VOPCOp.V_CMP_NLG_F64) -v_cmp_ngt_f64_e32 = functools.partial(VOPC, VOPCOp.V_CMP_NGT_F64) -v_cmp_nle_f64_e32 = functools.partial(VOPC, VOPCOp.V_CMP_NLE_F64) -v_cmp_neq_f64_e32 = functools.partial(VOPC, VOPCOp.V_CMP_NEQ_F64) -v_cmp_nlt_f64_e32 = functools.partial(VOPC, VOPCOp.V_CMP_NLT_F64) -v_cmp_lt_i16_e32 = functools.partial(VOPC, VOPCOp.V_CMP_LT_I16) -v_cmp_eq_i16_e32 = functools.partial(VOPC, VOPCOp.V_CMP_EQ_I16) -v_cmp_le_i16_e32 = functools.partial(VOPC, VOPCOp.V_CMP_LE_I16) -v_cmp_gt_i16_e32 = functools.partial(VOPC, VOPCOp.V_CMP_GT_I16) -v_cmp_ne_i16_e32 = functools.partial(VOPC, VOPCOp.V_CMP_NE_I16) -v_cmp_ge_i16_e32 = functools.partial(VOPC, VOPCOp.V_CMP_GE_I16) -v_cmp_lt_u16_e32 = functools.partial(VOPC, VOPCOp.V_CMP_LT_U16) -v_cmp_eq_u16_e32 = functools.partial(VOPC, VOPCOp.V_CMP_EQ_U16) -v_cmp_le_u16_e32 = functools.partial(VOPC, VOPCOp.V_CMP_LE_U16) -v_cmp_gt_u16_e32 = functools.partial(VOPC, VOPCOp.V_CMP_GT_U16) -v_cmp_ne_u16_e32 = functools.partial(VOPC, VOPCOp.V_CMP_NE_U16) -v_cmp_ge_u16_e32 = functools.partial(VOPC, VOPCOp.V_CMP_GE_U16) -v_cmp_lt_i32_e32 = functools.partial(VOPC, VOPCOp.V_CMP_LT_I32) -v_cmp_eq_i32_e32 = functools.partial(VOPC, VOPCOp.V_CMP_EQ_I32) -v_cmp_le_i32_e32 = functools.partial(VOPC, VOPCOp.V_CMP_LE_I32) -v_cmp_gt_i32_e32 = functools.partial(VOPC, VOPCOp.V_CMP_GT_I32) -v_cmp_ne_i32_e32 = functools.partial(VOPC, VOPCOp.V_CMP_NE_I32) -v_cmp_ge_i32_e32 = functools.partial(VOPC, VOPCOp.V_CMP_GE_I32) -v_cmp_lt_u32_e32 = functools.partial(VOPC, VOPCOp.V_CMP_LT_U32) -v_cmp_eq_u32_e32 = functools.partial(VOPC, VOPCOp.V_CMP_EQ_U32) -v_cmp_le_u32_e32 = functools.partial(VOPC, VOPCOp.V_CMP_LE_U32) -v_cmp_gt_u32_e32 = functools.partial(VOPC, VOPCOp.V_CMP_GT_U32) -v_cmp_ne_u32_e32 = functools.partial(VOPC, VOPCOp.V_CMP_NE_U32) -v_cmp_ge_u32_e32 = functools.partial(VOPC, VOPCOp.V_CMP_GE_U32) -v_cmp_lt_i64_e32 = functools.partial(VOPC, VOPCOp.V_CMP_LT_I64) -v_cmp_eq_i64_e32 = functools.partial(VOPC, VOPCOp.V_CMP_EQ_I64) -v_cmp_le_i64_e32 = functools.partial(VOPC, VOPCOp.V_CMP_LE_I64) -v_cmp_gt_i64_e32 = functools.partial(VOPC, VOPCOp.V_CMP_GT_I64) -v_cmp_ne_i64_e32 = functools.partial(VOPC, VOPCOp.V_CMP_NE_I64) -v_cmp_ge_i64_e32 = functools.partial(VOPC, VOPCOp.V_CMP_GE_I64) -v_cmp_lt_u64_e32 = functools.partial(VOPC, VOPCOp.V_CMP_LT_U64) -v_cmp_eq_u64_e32 = functools.partial(VOPC, VOPCOp.V_CMP_EQ_U64) -v_cmp_le_u64_e32 = functools.partial(VOPC, VOPCOp.V_CMP_LE_U64) -v_cmp_gt_u64_e32 = functools.partial(VOPC, VOPCOp.V_CMP_GT_U64) -v_cmp_ne_u64_e32 = functools.partial(VOPC, VOPCOp.V_CMP_NE_U64) -v_cmp_ge_u64_e32 = functools.partial(VOPC, VOPCOp.V_CMP_GE_U64) -v_cmp_class_f16_e32 = functools.partial(VOPC, VOPCOp.V_CMP_CLASS_F16) -v_cmp_class_f32_e32 = functools.partial(VOPC, VOPCOp.V_CMP_CLASS_F32) -v_cmp_class_f64_e32 = functools.partial(VOPC, VOPCOp.V_CMP_CLASS_F64) -v_cmpx_lt_f16_e32 = functools.partial(VOPC, VOPCOp.V_CMPX_LT_F16) -v_cmpx_eq_f16_e32 = functools.partial(VOPC, VOPCOp.V_CMPX_EQ_F16) -v_cmpx_le_f16_e32 = functools.partial(VOPC, VOPCOp.V_CMPX_LE_F16) -v_cmpx_gt_f16_e32 = functools.partial(VOPC, VOPCOp.V_CMPX_GT_F16) -v_cmpx_lg_f16_e32 = functools.partial(VOPC, VOPCOp.V_CMPX_LG_F16) -v_cmpx_ge_f16_e32 = functools.partial(VOPC, VOPCOp.V_CMPX_GE_F16) -v_cmpx_o_f16_e32 = functools.partial(VOPC, VOPCOp.V_CMPX_O_F16) -v_cmpx_u_f16_e32 = functools.partial(VOPC, VOPCOp.V_CMPX_U_F16) -v_cmpx_nge_f16_e32 = functools.partial(VOPC, VOPCOp.V_CMPX_NGE_F16) -v_cmpx_nlg_f16_e32 = functools.partial(VOPC, VOPCOp.V_CMPX_NLG_F16) -v_cmpx_ngt_f16_e32 = functools.partial(VOPC, VOPCOp.V_CMPX_NGT_F16) -v_cmpx_nle_f16_e32 = functools.partial(VOPC, VOPCOp.V_CMPX_NLE_F16) -v_cmpx_neq_f16_e32 = functools.partial(VOPC, VOPCOp.V_CMPX_NEQ_F16) -v_cmpx_nlt_f16_e32 = functools.partial(VOPC, VOPCOp.V_CMPX_NLT_F16) -v_cmpx_lt_f32_e32 = functools.partial(VOPC, VOPCOp.V_CMPX_LT_F32) -v_cmpx_eq_f32_e32 = functools.partial(VOPC, VOPCOp.V_CMPX_EQ_F32) -v_cmpx_le_f32_e32 = functools.partial(VOPC, VOPCOp.V_CMPX_LE_F32) -v_cmpx_gt_f32_e32 = functools.partial(VOPC, VOPCOp.V_CMPX_GT_F32) -v_cmpx_lg_f32_e32 = functools.partial(VOPC, VOPCOp.V_CMPX_LG_F32) -v_cmpx_ge_f32_e32 = functools.partial(VOPC, VOPCOp.V_CMPX_GE_F32) -v_cmpx_o_f32_e32 = functools.partial(VOPC, VOPCOp.V_CMPX_O_F32) -v_cmpx_u_f32_e32 = functools.partial(VOPC, VOPCOp.V_CMPX_U_F32) -v_cmpx_nge_f32_e32 = functools.partial(VOPC, VOPCOp.V_CMPX_NGE_F32) -v_cmpx_nlg_f32_e32 = functools.partial(VOPC, VOPCOp.V_CMPX_NLG_F32) -v_cmpx_ngt_f32_e32 = functools.partial(VOPC, VOPCOp.V_CMPX_NGT_F32) -v_cmpx_nle_f32_e32 = functools.partial(VOPC, VOPCOp.V_CMPX_NLE_F32) -v_cmpx_neq_f32_e32 = functools.partial(VOPC, VOPCOp.V_CMPX_NEQ_F32) -v_cmpx_nlt_f32_e32 = functools.partial(VOPC, VOPCOp.V_CMPX_NLT_F32) -v_cmpx_lt_f64_e32 = functools.partial(VOPC, VOPCOp.V_CMPX_LT_F64) -v_cmpx_eq_f64_e32 = functools.partial(VOPC, VOPCOp.V_CMPX_EQ_F64) -v_cmpx_le_f64_e32 = functools.partial(VOPC, VOPCOp.V_CMPX_LE_F64) -v_cmpx_gt_f64_e32 = functools.partial(VOPC, VOPCOp.V_CMPX_GT_F64) -v_cmpx_lg_f64_e32 = functools.partial(VOPC, VOPCOp.V_CMPX_LG_F64) -v_cmpx_ge_f64_e32 = functools.partial(VOPC, VOPCOp.V_CMPX_GE_F64) -v_cmpx_o_f64_e32 = functools.partial(VOPC, VOPCOp.V_CMPX_O_F64) -v_cmpx_u_f64_e32 = functools.partial(VOPC, VOPCOp.V_CMPX_U_F64) -v_cmpx_nge_f64_e32 = functools.partial(VOPC, VOPCOp.V_CMPX_NGE_F64) -v_cmpx_nlg_f64_e32 = functools.partial(VOPC, VOPCOp.V_CMPX_NLG_F64) -v_cmpx_ngt_f64_e32 = functools.partial(VOPC, VOPCOp.V_CMPX_NGT_F64) -v_cmpx_nle_f64_e32 = functools.partial(VOPC, VOPCOp.V_CMPX_NLE_F64) -v_cmpx_neq_f64_e32 = functools.partial(VOPC, VOPCOp.V_CMPX_NEQ_F64) -v_cmpx_nlt_f64_e32 = functools.partial(VOPC, VOPCOp.V_CMPX_NLT_F64) -v_cmpx_lt_i16_e32 = functools.partial(VOPC, VOPCOp.V_CMPX_LT_I16) -v_cmpx_eq_i16_e32 = functools.partial(VOPC, VOPCOp.V_CMPX_EQ_I16) -v_cmpx_le_i16_e32 = functools.partial(VOPC, VOPCOp.V_CMPX_LE_I16) -v_cmpx_gt_i16_e32 = functools.partial(VOPC, VOPCOp.V_CMPX_GT_I16) -v_cmpx_ne_i16_e32 = functools.partial(VOPC, VOPCOp.V_CMPX_NE_I16) -v_cmpx_ge_i16_e32 = functools.partial(VOPC, VOPCOp.V_CMPX_GE_I16) -v_cmpx_lt_u16_e32 = functools.partial(VOPC, VOPCOp.V_CMPX_LT_U16) -v_cmpx_eq_u16_e32 = functools.partial(VOPC, VOPCOp.V_CMPX_EQ_U16) -v_cmpx_le_u16_e32 = functools.partial(VOPC, VOPCOp.V_CMPX_LE_U16) -v_cmpx_gt_u16_e32 = functools.partial(VOPC, VOPCOp.V_CMPX_GT_U16) -v_cmpx_ne_u16_e32 = functools.partial(VOPC, VOPCOp.V_CMPX_NE_U16) -v_cmpx_ge_u16_e32 = functools.partial(VOPC, VOPCOp.V_CMPX_GE_U16) -v_cmpx_lt_i32_e32 = functools.partial(VOPC, VOPCOp.V_CMPX_LT_I32) -v_cmpx_eq_i32_e32 = functools.partial(VOPC, VOPCOp.V_CMPX_EQ_I32) -v_cmpx_le_i32_e32 = functools.partial(VOPC, VOPCOp.V_CMPX_LE_I32) -v_cmpx_gt_i32_e32 = functools.partial(VOPC, VOPCOp.V_CMPX_GT_I32) -v_cmpx_ne_i32_e32 = functools.partial(VOPC, VOPCOp.V_CMPX_NE_I32) -v_cmpx_ge_i32_e32 = functools.partial(VOPC, VOPCOp.V_CMPX_GE_I32) -v_cmpx_lt_u32_e32 = functools.partial(VOPC, VOPCOp.V_CMPX_LT_U32) -v_cmpx_eq_u32_e32 = functools.partial(VOPC, VOPCOp.V_CMPX_EQ_U32) -v_cmpx_le_u32_e32 = functools.partial(VOPC, VOPCOp.V_CMPX_LE_U32) -v_cmpx_gt_u32_e32 = functools.partial(VOPC, VOPCOp.V_CMPX_GT_U32) -v_cmpx_ne_u32_e32 = functools.partial(VOPC, VOPCOp.V_CMPX_NE_U32) -v_cmpx_ge_u32_e32 = functools.partial(VOPC, VOPCOp.V_CMPX_GE_U32) -v_cmpx_lt_i64_e32 = functools.partial(VOPC, VOPCOp.V_CMPX_LT_I64) -v_cmpx_eq_i64_e32 = functools.partial(VOPC, VOPCOp.V_CMPX_EQ_I64) -v_cmpx_le_i64_e32 = functools.partial(VOPC, VOPCOp.V_CMPX_LE_I64) -v_cmpx_gt_i64_e32 = functools.partial(VOPC, VOPCOp.V_CMPX_GT_I64) -v_cmpx_ne_i64_e32 = functools.partial(VOPC, VOPCOp.V_CMPX_NE_I64) -v_cmpx_ge_i64_e32 = functools.partial(VOPC, VOPCOp.V_CMPX_GE_I64) -v_cmpx_lt_u64_e32 = functools.partial(VOPC, VOPCOp.V_CMPX_LT_U64) -v_cmpx_eq_u64_e32 = functools.partial(VOPC, VOPCOp.V_CMPX_EQ_U64) -v_cmpx_le_u64_e32 = functools.partial(VOPC, VOPCOp.V_CMPX_LE_U64) -v_cmpx_gt_u64_e32 = functools.partial(VOPC, VOPCOp.V_CMPX_GT_U64) -v_cmpx_ne_u64_e32 = functools.partial(VOPC, VOPCOp.V_CMPX_NE_U64) -v_cmpx_ge_u64_e32 = functools.partial(VOPC, VOPCOp.V_CMPX_GE_U64) -v_cmpx_class_f16_e32 = functools.partial(VOPC, VOPCOp.V_CMPX_CLASS_F16) -v_cmpx_class_f32_e32 = functools.partial(VOPC, VOPCOp.V_CMPX_CLASS_F32) -v_cmpx_class_f64_e32 = functools.partial(VOPC, VOPCOp.V_CMPX_CLASS_F64) -v_dual_fmac_f32 = functools.partial(VOPD, VOPDOp.V_DUAL_FMAC_F32) -v_dual_fmaak_f32 = functools.partial(VOPD, VOPDOp.V_DUAL_FMAAK_F32) -v_dual_fmamk_f32 = functools.partial(VOPD, VOPDOp.V_DUAL_FMAMK_F32) -v_dual_mul_f32 = functools.partial(VOPD, VOPDOp.V_DUAL_MUL_F32) -v_dual_add_f32 = functools.partial(VOPD, VOPDOp.V_DUAL_ADD_F32) -v_dual_sub_f32 = functools.partial(VOPD, VOPDOp.V_DUAL_SUB_F32) -v_dual_subrev_f32 = functools.partial(VOPD, VOPDOp.V_DUAL_SUBREV_F32) -v_dual_mul_dx9_zero_f32 = functools.partial(VOPD, VOPDOp.V_DUAL_MUL_DX9_ZERO_F32) -v_dual_mov_b32 = functools.partial(VOPD, VOPDOp.V_DUAL_MOV_B32) -v_dual_cndmask_b32 = functools.partial(VOPD, VOPDOp.V_DUAL_CNDMASK_B32) -v_dual_max_num_f32 = functools.partial(VOPD, VOPDOp.V_DUAL_MAX_NUM_F32) -v_dual_min_num_f32 = functools.partial(VOPD, VOPDOp.V_DUAL_MIN_NUM_F32) -v_dual_dot2acc_f32_f16 = functools.partial(VOPD, VOPDOp.V_DUAL_DOT2ACC_F32_F16) -v_dual_dot2acc_f32_bf16 = functools.partial(VOPD, VOPDOp.V_DUAL_DOT2ACC_F32_BF16) -v_dual_add_nc_u32 = functools.partial(VOPD, VOPDOp.V_DUAL_ADD_NC_U32) -v_dual_lshlrev_b32 = functools.partial(VOPD, VOPDOp.V_DUAL_LSHLREV_B32) -v_dual_and_b32 = functools.partial(VOPD, VOPDOp.V_DUAL_AND_B32) - -VCC_LO = SrcEnum.VCC_LO -VCC_HI = SrcEnum.VCC_HI -NULL = SrcEnum.NULL -M0 = SrcEnum.M0 -EXEC_LO = SrcEnum.EXEC_LO -EXEC_HI = SrcEnum.EXEC_HI -ZERO = SrcEnum.ZERO -DPP8FI = SrcEnum.DPP8FI -SHARED_BASE = SrcEnum.SHARED_BASE -SHARED_LIMIT = SrcEnum.SHARED_LIMIT -PRIVATE_BASE = SrcEnum.PRIVATE_BASE -PRIVATE_LIMIT = SrcEnum.PRIVATE_LIMIT -POS_HALF = SrcEnum.POS_HALF -NEG_HALF = SrcEnum.NEG_HALF -POS_ONE = SrcEnum.POS_ONE -NEG_ONE = SrcEnum.NEG_ONE -POS_TWO = SrcEnum.POS_TWO -NEG_TWO = SrcEnum.NEG_TWO -POS_FOUR = SrcEnum.POS_FOUR -NEG_FOUR = SrcEnum.NEG_FOUR -INV_2PI = SrcEnum.INV_2PI -VCCZ = SrcEnum.VCCZ -EXECZ = SrcEnum.EXECZ -SCC = SrcEnum.SCC -LDS_DIRECT = SrcEnum.LDS_DIRECT -OFF = NULL diff --git a/extra/assembly/amd/autogen/rdna4/enum.py b/extra/assembly/amd/autogen/rdna4/enum.py new file mode 100644 index 0000000000..b3057ec856 --- /dev/null +++ b/extra/assembly/amd/autogen/rdna4/enum.py @@ -0,0 +1,1629 @@ +# autogenerated from AMD RDNA4 ISA PDF by pdf.py - do not edit +from enum import IntEnum + +class SrcEnum(IntEnum): + VCC_LO = 106 + VCC_HI = 107 + NULL = 124 + M0 = 125 + EXEC_LO = 126 + EXEC_HI = 127 + ZERO = 128 + DPP8 = 233 + DPP8FI = 234 + SHARED_BASE = 235 + SHARED_LIMIT = 236 + PRIVATE_BASE = 237 + PRIVATE_LIMIT = 238 + POS_HALF = 240 + NEG_HALF = 241 + POS_ONE = 242 + NEG_ONE = 243 + POS_TWO = 244 + NEG_TWO = 245 + POS_FOUR = 246 + NEG_FOUR = 247 + INV_2PI = 248 + DPP16 = 250 + VCCZ = 251 + EXECZ = 252 + SCC = 253 + LDS_DIRECT = 254 + +class DSOp(IntEnum): + DS_ADD_U32 = 0 + DS_SUB_U32 = 1 + DS_RSUB_U32 = 2 + DS_INC_U32 = 3 + DS_DEC_U32 = 4 + DS_MIN_I32 = 5 + DS_MAX_I32 = 6 + DS_MIN_U32 = 7 + DS_MAX_U32 = 8 + DS_AND_B32 = 9 + DS_OR_B32 = 10 + DS_XOR_B32 = 11 + DS_MSKOR_B32 = 12 + DS_STORE_B32 = 13 + DS_STORE_2ADDR_B32 = 14 + DS_STORE_2ADDR_STRIDE64_B32 = 15 + DS_CMPSTORE_B32 = 16 + DS_MIN_NUM_F32 = 18 + DS_MAX_NUM_F32 = 19 + DS_NOP = 20 + DS_ADD_F32 = 21 + DS_STORE_B8 = 30 + DS_STORE_B16 = 31 + DS_ADD_RTN_U32 = 32 + DS_SUB_RTN_U32 = 33 + DS_RSUB_RTN_U32 = 34 + DS_INC_RTN_U32 = 35 + DS_DEC_RTN_U32 = 36 + DS_MIN_RTN_I32 = 37 + DS_MAX_RTN_I32 = 38 + DS_MIN_RTN_U32 = 39 + DS_MAX_RTN_U32 = 40 + DS_AND_RTN_B32 = 41 + DS_OR_RTN_B32 = 42 + DS_XOR_RTN_B32 = 43 + DS_MSKOR_RTN_B32 = 44 + DS_STOREXCHG_RTN_B32 = 45 + DS_STOREXCHG_2ADDR_RTN_B32 = 46 + DS_STOREXCHG_2ADDR_STRIDE64_RTN_B32 = 47 + DS_CMPSTORE_RTN_B32 = 48 + DS_MIN_NUM_RTN_F32 = 50 + DS_MAX_NUM_RTN_F32 = 51 + DS_SWIZZLE_B32 = 53 + DS_LOAD_B32 = 54 + DS_LOAD_2ADDR_B32 = 55 + DS_LOAD_2ADDR_STRIDE64_B32 = 56 + DS_LOAD_I8 = 57 + DS_LOAD_U8 = 58 + DS_LOAD_I16 = 59 + DS_LOAD_U16 = 60 + DS_CONSUME = 61 + DS_APPEND = 62 + DS_ADD_U64 = 64 + DS_SUB_U64 = 65 + DS_RSUB_U64 = 66 + DS_INC_U64 = 67 + DS_DEC_U64 = 68 + DS_MIN_I64 = 69 + DS_MAX_I64 = 70 + DS_MIN_U64 = 71 + DS_MAX_U64 = 72 + DS_AND_B64 = 73 + DS_OR_B64 = 74 + DS_XOR_B64 = 75 + DS_MSKOR_B64 = 76 + DS_STORE_B64 = 77 + DS_STORE_2ADDR_B64 = 78 + DS_STORE_2ADDR_STRIDE64_B64 = 79 + DS_CMPSTORE_B64 = 80 + DS_MIN_NUM_F64 = 82 + DS_MAX_NUM_F64 = 83 + DS_ADD_RTN_U64 = 96 + DS_SUB_RTN_U64 = 97 + DS_RSUB_RTN_U64 = 98 + DS_INC_RTN_U64 = 99 + DS_DEC_RTN_U64 = 100 + DS_MIN_RTN_I64 = 101 + DS_MAX_RTN_I64 = 102 + DS_MIN_RTN_U64 = 103 + DS_MAX_RTN_U64 = 104 + DS_AND_RTN_B64 = 105 + DS_OR_RTN_B64 = 106 + DS_XOR_RTN_B64 = 107 + DS_MSKOR_RTN_B64 = 108 + DS_STOREXCHG_RTN_B64 = 109 + DS_STOREXCHG_2ADDR_RTN_B64 = 110 + DS_STOREXCHG_2ADDR_STRIDE64_RTN_B64 = 111 + DS_CMPSTORE_RTN_B64 = 112 + DS_MIN_NUM_RTN_F64 = 114 + DS_MAX_NUM_RTN_F64 = 115 + DS_LOAD_B64 = 118 + DS_LOAD_2ADDR_B64 = 119 + DS_LOAD_2ADDR_STRIDE64_B64 = 120 + DS_ADD_RTN_F32 = 121 + DS_CONDXCHG32_RTN_B64 = 126 + DS_COND_SUB_U32 = 152 + DS_SUB_CLAMP_U32 = 153 + DS_PK_ADD_F16 = 154 + DS_PK_ADD_BF16 = 155 + DS_STORE_B8_D16_HI = 160 + DS_STORE_B16_D16_HI = 161 + DS_LOAD_U8_D16 = 162 + DS_LOAD_U8_D16_HI = 163 + DS_LOAD_I8_D16 = 164 + DS_LOAD_I8_D16_HI = 165 + DS_LOAD_U16_D16 = 166 + DS_LOAD_U16_D16_HI = 167 + DS_COND_SUB_RTN_U32 = 168 + DS_SUB_CLAMP_RTN_U32 = 169 + DS_PK_ADD_RTN_F16 = 170 + DS_PK_ADD_RTN_BF16 = 171 + DS_STORE_ADDTID_B32 = 176 + DS_LOAD_ADDTID_B32 = 177 + DS_PERMUTE_B32 = 178 + DS_BPERMUTE_B32 = 179 + DS_BPERMUTE_FI_B32 = 205 + DS_STORE_B96 = 222 + DS_STORE_B128 = 223 + DS_BVH_STACK_PUSH4_POP1_RTN_B32 = 224 + DS_BVH_STACK_PUSH8_POP1_RTN_B32 = 225 + DS_BVH_STACK_PUSH8_POP2_RTN_B64 = 226 + DS_LOAD_B96 = 254 + DS_LOAD_B128 = 255 + +class SMEMOp(IntEnum): + S_LOAD_B32 = 0 + S_LOAD_B64 = 1 + S_LOAD_B128 = 2 + S_LOAD_B256 = 3 + S_LOAD_B512 = 4 + S_LOAD_B96 = 5 + S_LOAD_I8 = 8 + S_LOAD_U8 = 9 + S_LOAD_I16 = 10 + S_LOAD_U16 = 11 + S_BUFFER_LOAD_B32 = 16 + S_BUFFER_LOAD_B64 = 17 + S_BUFFER_LOAD_B128 = 18 + S_BUFFER_LOAD_B256 = 19 + S_BUFFER_LOAD_B512 = 20 + S_BUFFER_LOAD_B96 = 21 + S_BUFFER_LOAD_I8 = 24 + S_BUFFER_LOAD_U8 = 25 + S_BUFFER_LOAD_I16 = 26 + S_BUFFER_LOAD_U16 = 27 + S_DCACHE_INV = 33 + S_PREFETCH_INST = 36 + S_PREFETCH_INST_PC_REL = 37 + S_PREFETCH_DATA = 38 + S_BUFFER_PREFETCH_DATA = 39 + S_PREFETCH_DATA_PC_REL = 40 + +class SOP1Op(IntEnum): + S_MOV_B32 = 0 + S_MOV_B64 = 1 + S_CMOV_B32 = 2 + S_CMOV_B64 = 3 + S_BREV_B32 = 4 + S_BREV_B64 = 5 + S_CTZ_I32_B32 = 8 + S_CTZ_I32_B64 = 9 + S_CLZ_I32_U32 = 10 + S_CLZ_I32_U64 = 11 + S_CLS_I32 = 12 + S_CLS_I32_I64 = 13 + S_SEXT_I32_I8 = 14 + S_SEXT_I32_I16 = 15 + S_BITSET0_B32 = 16 + S_BITSET0_B64 = 17 + S_BITSET1_B32 = 18 + S_BITSET1_B64 = 19 + S_BITREPLICATE_B64_B32 = 20 + S_ABS_I32 = 21 + S_BCNT0_I32_B32 = 22 + S_BCNT0_I32_B64 = 23 + S_BCNT1_I32_B32 = 24 + S_BCNT1_I32_B64 = 25 + S_QUADMASK_B32 = 26 + S_QUADMASK_B64 = 27 + S_WQM_B32 = 28 + S_WQM_B64 = 29 + S_NOT_B32 = 30 + S_NOT_B64 = 31 + S_AND_SAVEEXEC_B32 = 32 + S_AND_SAVEEXEC_B64 = 33 + S_OR_SAVEEXEC_B32 = 34 + S_OR_SAVEEXEC_B64 = 35 + S_XOR_SAVEEXEC_B32 = 36 + S_XOR_SAVEEXEC_B64 = 37 + S_NAND_SAVEEXEC_B32 = 38 + S_NAND_SAVEEXEC_B64 = 39 + S_NOR_SAVEEXEC_B32 = 40 + S_NOR_SAVEEXEC_B64 = 41 + S_XNOR_SAVEEXEC_B32 = 42 + S_XNOR_SAVEEXEC_B64 = 43 + S_AND_NOT0_SAVEEXEC_B32 = 44 + S_AND_NOT0_SAVEEXEC_B64 = 45 + S_OR_NOT0_SAVEEXEC_B32 = 46 + S_OR_NOT0_SAVEEXEC_B64 = 47 + S_AND_NOT1_SAVEEXEC_B32 = 48 + S_AND_NOT1_SAVEEXEC_B64 = 49 + S_OR_NOT1_SAVEEXEC_B32 = 50 + S_OR_NOT1_SAVEEXEC_B64 = 51 + S_AND_NOT0_WREXEC_B32 = 52 + S_AND_NOT0_WREXEC_B64 = 53 + S_AND_NOT1_WREXEC_B32 = 54 + S_AND_NOT1_WREXEC_B64 = 55 + S_MOVRELS_B32 = 64 + S_MOVRELS_B64 = 65 + S_MOVRELD_B32 = 66 + S_MOVRELD_B64 = 67 + S_MOVRELSD_2_B32 = 68 + S_GETPC_B64 = 71 + S_SETPC_B64 = 72 + S_SWAPPC_B64 = 73 + S_RFE_B64 = 74 + S_SENDMSG_RTN_B32 = 76 + S_SENDMSG_RTN_B64 = 77 + S_BARRIER_SIGNAL = 78 + S_BARRIER_SIGNAL_ISFIRST = 79 + S_GET_BARRIER_STATE = 80 + S_ALLOC_VGPR = 83 + S_SLEEP_VAR = 88 + S_CEIL_F32 = 96 + S_FLOOR_F32 = 97 + S_TRUNC_F32 = 98 + S_RNDNE_F32 = 99 + S_CVT_F32_I32 = 100 + S_CVT_F32_U32 = 101 + S_CVT_I32_F32 = 102 + S_CVT_U32_F32 = 103 + S_CVT_F16_F32 = 104 + S_CVT_F32_F16 = 105 + S_CVT_HI_F32_F16 = 106 + S_CEIL_F16 = 107 + S_FLOOR_F16 = 108 + S_TRUNC_F16 = 109 + S_RNDNE_F16 = 110 + +class SOP2Op(IntEnum): + S_ADD_CO_U32 = 0 + S_SUB_CO_U32 = 1 + S_ADD_CO_I32 = 2 + S_SUB_CO_I32 = 3 + S_ADD_CO_CI_U32 = 4 + S_SUB_CO_CI_U32 = 5 + S_ABSDIFF_I32 = 6 + S_LSHL_B32 = 8 + S_LSHL_B64 = 9 + S_LSHR_B32 = 10 + S_LSHR_B64 = 11 + S_ASHR_I32 = 12 + S_ASHR_I64 = 13 + S_LSHL1_ADD_U32 = 14 + S_LSHL2_ADD_U32 = 15 + S_LSHL3_ADD_U32 = 16 + S_LSHL4_ADD_U32 = 17 + S_MIN_I32 = 18 + S_MIN_U32 = 19 + S_MAX_I32 = 20 + S_MAX_U32 = 21 + S_AND_B32 = 22 + S_AND_B64 = 23 + S_OR_B32 = 24 + S_OR_B64 = 25 + S_XOR_B32 = 26 + S_XOR_B64 = 27 + S_NAND_B32 = 28 + S_NAND_B64 = 29 + S_NOR_B32 = 30 + S_NOR_B64 = 31 + S_XNOR_B32 = 32 + S_XNOR_B64 = 33 + S_AND_NOT1_B32 = 34 + S_AND_NOT1_B64 = 35 + S_OR_NOT1_B32 = 36 + S_OR_NOT1_B64 = 37 + S_BFE_U32 = 38 + S_BFE_I32 = 39 + S_BFE_U64 = 40 + S_BFE_I64 = 41 + S_BFM_B32 = 42 + S_BFM_B64 = 43 + S_MUL_I32 = 44 + S_MUL_HI_U32 = 45 + S_MUL_HI_I32 = 46 + S_CSELECT_B32 = 48 + S_CSELECT_B64 = 49 + S_PACK_LL_B32_B16 = 50 + S_PACK_LH_B32_B16 = 51 + S_PACK_HH_B32_B16 = 52 + S_PACK_HL_B32_B16 = 53 + S_ADD_F32 = 64 + S_SUB_F32 = 65 + S_MIN_NUM_F32 = 66 + S_MAX_NUM_F32 = 67 + S_MUL_F32 = 68 + S_FMAAK_F32 = 69 + S_FMAMK_F32 = 70 + S_FMAC_F32 = 71 + S_CVT_PK_RTZ_F16_F32 = 72 + S_ADD_F16 = 73 + S_SUB_F16 = 74 + S_MIN_NUM_F16 = 75 + S_MAX_NUM_F16 = 76 + S_MUL_F16 = 77 + S_FMAC_F16 = 78 + S_MINIMUM_F32 = 79 + S_MAXIMUM_F32 = 80 + S_MINIMUM_F16 = 81 + S_MAXIMUM_F16 = 82 + S_ADD_NC_U64 = 83 + S_SUB_NC_U64 = 84 + S_MUL_U64 = 85 + +class SOPCOp(IntEnum): + S_CMP_EQ_I32 = 0 + S_CMP_LG_I32 = 1 + S_CMP_GT_I32 = 2 + S_CMP_GE_I32 = 3 + S_CMP_LT_I32 = 4 + S_CMP_LE_I32 = 5 + S_CMP_EQ_U32 = 6 + S_CMP_LG_U32 = 7 + S_CMP_GT_U32 = 8 + S_CMP_GE_U32 = 9 + S_CMP_LT_U32 = 10 + S_CMP_LE_U32 = 11 + S_BITCMP0_B32 = 12 + S_BITCMP1_B32 = 13 + S_BITCMP0_B64 = 14 + S_BITCMP1_B64 = 15 + S_CMP_EQ_U64 = 16 + S_CMP_LG_U64 = 17 + S_CMP_LT_F32 = 65 + S_CMP_EQ_F32 = 66 + S_CMP_LE_F32 = 67 + S_CMP_GT_F32 = 68 + S_CMP_LG_F32 = 69 + S_CMP_GE_F32 = 70 + S_CMP_O_F32 = 71 + S_CMP_U_F32 = 72 + S_CMP_NGE_F32 = 73 + S_CMP_NLG_F32 = 74 + S_CMP_NGT_F32 = 75 + S_CMP_NLE_F32 = 76 + S_CMP_NEQ_F32 = 77 + S_CMP_NLT_F32 = 78 + S_CMP_LT_F16 = 81 + S_CMP_EQ_F16 = 82 + S_CMP_LE_F16 = 83 + S_CMP_GT_F16 = 84 + S_CMP_LG_F16 = 85 + S_CMP_GE_F16 = 86 + S_CMP_O_F16 = 87 + S_CMP_U_F16 = 88 + S_CMP_NGE_F16 = 89 + S_CMP_NLG_F16 = 90 + S_CMP_NGT_F16 = 91 + S_CMP_NLE_F16 = 92 + S_CMP_NEQ_F16 = 93 + S_CMP_NLT_F16 = 94 + +class SOPKOp(IntEnum): + S_MOVK_I32 = 0 + S_VERSION = 1 + S_CMOVK_I32 = 2 + S_ADDK_CO_I32 = 15 + S_MULK_I32 = 16 + S_GETREG_B32 = 17 + S_SETREG_B32 = 18 + S_SETREG_IMM32_B32 = 19 + S_CALL_B64 = 20 + +class SOPPOp(IntEnum): + S_NOP = 0 + S_SETKILL = 1 + S_SETHALT = 2 + S_SLEEP = 3 + S_CLAUSE = 5 + S_DELAY_ALU = 7 + S_WAIT_ALU = 8 + S_WAITCNT = 9 + S_WAIT_IDLE = 10 + S_WAIT_EVENT = 11 + S_TRAP = 16 + S_ROUND_MODE = 17 + S_DENORM_MODE = 18 + S_BARRIER_WAIT = 20 + S_CODE_END = 31 + S_BRANCH = 32 + S_CBRANCH_SCC0 = 33 + S_CBRANCH_SCC1 = 34 + S_CBRANCH_VCCZ = 35 + S_CBRANCH_VCCNZ = 36 + S_CBRANCH_EXECZ = 37 + S_CBRANCH_EXECNZ = 38 + S_ENDPGM = 48 + S_ENDPGM_SAVED = 49 + S_WAKEUP = 52 + S_SETPRIO = 53 + S_SENDMSG = 54 + S_SENDMSGHALT = 55 + S_INCPERFLEVEL = 56 + S_DECPERFLEVEL = 57 + S_ICACHE_INV = 60 + S_WAIT_LOADCNT = 64 + S_WAIT_STORECNT = 65 + S_WAIT_SAMPLECNT = 66 + S_WAIT_BVHCNT = 67 + S_WAIT_EXPCNT = 68 + S_WAIT_DSCNT = 70 + S_WAIT_KMCNT = 71 + S_WAIT_LOADCNT_DSCNT = 72 + S_WAIT_STORECNT_DSCNT = 73 + +class VBUFFEROp(IntEnum): + BUFFER_LOAD_FORMAT_X = 0 + BUFFER_LOAD_FORMAT_XY = 1 + BUFFER_LOAD_FORMAT_XYZ = 2 + BUFFER_LOAD_FORMAT_XYZW = 3 + BUFFER_STORE_FORMAT_X = 4 + BUFFER_STORE_FORMAT_XY = 5 + BUFFER_STORE_FORMAT_XYZ = 6 + BUFFER_STORE_FORMAT_XYZW = 7 + BUFFER_LOAD_D16_FORMAT_X = 8 + BUFFER_LOAD_D16_FORMAT_XY = 9 + BUFFER_LOAD_D16_FORMAT_XYZ = 10 + BUFFER_LOAD_D16_FORMAT_XYZW = 11 + BUFFER_STORE_D16_FORMAT_X = 12 + BUFFER_STORE_D16_FORMAT_XY = 13 + BUFFER_STORE_D16_FORMAT_XYZ = 14 + BUFFER_STORE_D16_FORMAT_XYZW = 15 + BUFFER_LOAD_U8 = 16 + BUFFER_LOAD_I8 = 17 + BUFFER_LOAD_U16 = 18 + BUFFER_LOAD_I16 = 19 + BUFFER_LOAD_B32 = 20 + BUFFER_LOAD_B64 = 21 + BUFFER_LOAD_B96 = 22 + BUFFER_LOAD_B128 = 23 + BUFFER_STORE_B8 = 24 + BUFFER_STORE_B16 = 25 + BUFFER_STORE_B32 = 26 + BUFFER_STORE_B64 = 27 + BUFFER_STORE_B96 = 28 + BUFFER_STORE_B128 = 29 + BUFFER_LOAD_D16_U8 = 30 + BUFFER_LOAD_D16_I8 = 31 + BUFFER_LOAD_D16_B16 = 32 + BUFFER_LOAD_D16_HI_U8 = 33 + BUFFER_LOAD_D16_HI_I8 = 34 + BUFFER_LOAD_D16_HI_B16 = 35 + BUFFER_STORE_D16_HI_B8 = 36 + BUFFER_STORE_D16_HI_B16 = 37 + BUFFER_LOAD_D16_HI_FORMAT_X = 38 + BUFFER_STORE_D16_HI_FORMAT_X = 39 + BUFFER_ATOMIC_SWAP_B32 = 51 + BUFFER_ATOMIC_CMPSWAP_B32 = 52 + BUFFER_ATOMIC_ADD_U32 = 53 + BUFFER_ATOMIC_SUB_U32 = 54 + BUFFER_ATOMIC_SUB_CLAMP_U32 = 55 + BUFFER_ATOMIC_MIN_I32 = 56 + BUFFER_ATOMIC_MIN_U32 = 57 + BUFFER_ATOMIC_MAX_I32 = 58 + BUFFER_ATOMIC_MAX_U32 = 59 + BUFFER_ATOMIC_AND_B32 = 60 + BUFFER_ATOMIC_OR_B32 = 61 + BUFFER_ATOMIC_XOR_B32 = 62 + BUFFER_ATOMIC_INC_U32 = 63 + BUFFER_ATOMIC_DEC_U32 = 64 + BUFFER_ATOMIC_SWAP_B64 = 65 + BUFFER_ATOMIC_CMPSWAP_B64 = 66 + BUFFER_ATOMIC_ADD_U64 = 67 + BUFFER_ATOMIC_SUB_U64 = 68 + BUFFER_ATOMIC_MIN_I64 = 69 + BUFFER_ATOMIC_MIN_U64 = 70 + BUFFER_ATOMIC_MAX_I64 = 71 + BUFFER_ATOMIC_MAX_U64 = 72 + BUFFER_ATOMIC_AND_B64 = 73 + BUFFER_ATOMIC_OR_B64 = 74 + BUFFER_ATOMIC_XOR_B64 = 75 + BUFFER_ATOMIC_INC_U64 = 76 + BUFFER_ATOMIC_DEC_U64 = 77 + BUFFER_ATOMIC_COND_SUB_U32 = 80 + BUFFER_ATOMIC_MIN_NUM_F32 = 81 + BUFFER_ATOMIC_MAX_NUM_F32 = 82 + BUFFER_ATOMIC_ADD_F32 = 86 + BUFFER_ATOMIC_PK_ADD_F16 = 89 + BUFFER_ATOMIC_PK_ADD_BF16 = 90 + TBUFFER_LOAD_FORMAT_X = 128 + TBUFFER_LOAD_FORMAT_XY = 129 + TBUFFER_LOAD_FORMAT_XYZ = 130 + TBUFFER_LOAD_FORMAT_XYZW = 131 + TBUFFER_STORE_FORMAT_X = 132 + TBUFFER_STORE_FORMAT_XY = 133 + TBUFFER_STORE_FORMAT_XYZ = 134 + TBUFFER_STORE_FORMAT_XYZW = 135 + TBUFFER_LOAD_D16_FORMAT_X = 136 + TBUFFER_LOAD_D16_FORMAT_XY = 137 + TBUFFER_LOAD_D16_FORMAT_XYZ = 138 + TBUFFER_LOAD_D16_FORMAT_XYZW = 139 + TBUFFER_STORE_D16_FORMAT_X = 140 + TBUFFER_STORE_D16_FORMAT_XY = 141 + TBUFFER_STORE_D16_FORMAT_XYZ = 142 + TBUFFER_STORE_D16_FORMAT_XYZW = 143 + +class VDSDIROp(IntEnum): + DS_PARAM_LOAD = 0 + DS_DIRECT_LOAD = 1 + +class VFLATOp(IntEnum): + FLAT_LOAD_U8 = 16 + FLAT_LOAD_I8 = 17 + FLAT_LOAD_U16 = 18 + FLAT_LOAD_I16 = 19 + FLAT_LOAD_B32 = 20 + FLAT_LOAD_B64 = 21 + FLAT_LOAD_B96 = 22 + FLAT_LOAD_B128 = 23 + FLAT_STORE_B8 = 24 + FLAT_STORE_B16 = 25 + FLAT_STORE_B32 = 26 + FLAT_STORE_B64 = 27 + FLAT_STORE_B96 = 28 + FLAT_STORE_B128 = 29 + FLAT_LOAD_D16_U8 = 30 + FLAT_LOAD_D16_I8 = 31 + FLAT_LOAD_D16_B16 = 32 + FLAT_LOAD_D16_HI_U8 = 33 + FLAT_LOAD_D16_HI_I8 = 34 + FLAT_LOAD_D16_HI_B16 = 35 + FLAT_STORE_D16_HI_B8 = 36 + FLAT_STORE_D16_HI_B16 = 37 + FLAT_ATOMIC_SWAP_B32 = 51 + FLAT_ATOMIC_CMPSWAP_B32 = 52 + FLAT_ATOMIC_ADD_U32 = 53 + FLAT_ATOMIC_SUB_U32 = 54 + FLAT_ATOMIC_SUB_CLAMP_U32 = 55 + FLAT_ATOMIC_MIN_I32 = 56 + FLAT_ATOMIC_MIN_U32 = 57 + FLAT_ATOMIC_MAX_I32 = 58 + FLAT_ATOMIC_MAX_U32 = 59 + FLAT_ATOMIC_AND_B32 = 60 + FLAT_ATOMIC_OR_B32 = 61 + FLAT_ATOMIC_XOR_B32 = 62 + FLAT_ATOMIC_INC_U32 = 63 + FLAT_ATOMIC_DEC_U32 = 64 + FLAT_ATOMIC_SWAP_B64 = 65 + FLAT_ATOMIC_CMPSWAP_B64 = 66 + FLAT_ATOMIC_ADD_U64 = 67 + FLAT_ATOMIC_SUB_U64 = 68 + FLAT_ATOMIC_MIN_I64 = 69 + FLAT_ATOMIC_MIN_U64 = 70 + FLAT_ATOMIC_MAX_I64 = 71 + FLAT_ATOMIC_MAX_U64 = 72 + FLAT_ATOMIC_AND_B64 = 73 + FLAT_ATOMIC_OR_B64 = 74 + FLAT_ATOMIC_XOR_B64 = 75 + FLAT_ATOMIC_INC_U64 = 76 + FLAT_ATOMIC_DEC_U64 = 77 + FLAT_ATOMIC_COND_SUB_U32 = 80 + FLAT_ATOMIC_MIN_NUM_F32 = 81 + FLAT_ATOMIC_MAX_NUM_F32 = 82 + FLAT_ATOMIC_ADD_F32 = 86 + FLAT_ATOMIC_PK_ADD_F16 = 89 + FLAT_ATOMIC_PK_ADD_BF16 = 90 + +class VGLOBALOp(IntEnum): + GLOBAL_LOAD_U8 = 16 + GLOBAL_LOAD_I8 = 17 + GLOBAL_LOAD_U16 = 18 + GLOBAL_LOAD_I16 = 19 + GLOBAL_LOAD_B32 = 20 + GLOBAL_LOAD_B64 = 21 + GLOBAL_LOAD_B96 = 22 + GLOBAL_LOAD_B128 = 23 + GLOBAL_STORE_B8 = 24 + GLOBAL_STORE_B16 = 25 + GLOBAL_STORE_B32 = 26 + GLOBAL_STORE_B64 = 27 + GLOBAL_STORE_B96 = 28 + GLOBAL_STORE_B128 = 29 + GLOBAL_LOAD_D16_U8 = 30 + GLOBAL_LOAD_D16_I8 = 31 + GLOBAL_LOAD_D16_B16 = 32 + GLOBAL_LOAD_D16_HI_U8 = 33 + GLOBAL_LOAD_D16_HI_I8 = 34 + GLOBAL_LOAD_D16_HI_B16 = 35 + GLOBAL_STORE_D16_HI_B8 = 36 + GLOBAL_STORE_D16_HI_B16 = 37 + GLOBAL_LOAD_ADDTID_B32 = 40 + GLOBAL_STORE_ADDTID_B32 = 41 + GLOBAL_INV = 43 + GLOBAL_WB = 44 + GLOBAL_ATOMIC_SWAP_B32 = 51 + GLOBAL_ATOMIC_CMPSWAP_B32 = 52 + GLOBAL_ATOMIC_ADD_U32 = 53 + GLOBAL_ATOMIC_SUB_U32 = 54 + GLOBAL_ATOMIC_SUB_CLAMP_U32 = 55 + GLOBAL_ATOMIC_MIN_I32 = 56 + GLOBAL_ATOMIC_MIN_U32 = 57 + GLOBAL_ATOMIC_MAX_I32 = 58 + GLOBAL_ATOMIC_MAX_U32 = 59 + GLOBAL_ATOMIC_AND_B32 = 60 + GLOBAL_ATOMIC_OR_B32 = 61 + GLOBAL_ATOMIC_XOR_B32 = 62 + GLOBAL_ATOMIC_INC_U32 = 63 + GLOBAL_ATOMIC_DEC_U32 = 64 + GLOBAL_ATOMIC_SWAP_B64 = 65 + GLOBAL_ATOMIC_CMPSWAP_B64 = 66 + GLOBAL_ATOMIC_ADD_U64 = 67 + GLOBAL_ATOMIC_SUB_U64 = 68 + GLOBAL_ATOMIC_MIN_I64 = 69 + GLOBAL_ATOMIC_MIN_U64 = 70 + GLOBAL_ATOMIC_MAX_I64 = 71 + GLOBAL_ATOMIC_MAX_U64 = 72 + GLOBAL_ATOMIC_AND_B64 = 73 + GLOBAL_ATOMIC_OR_B64 = 74 + GLOBAL_ATOMIC_XOR_B64 = 75 + GLOBAL_ATOMIC_INC_U64 = 76 + GLOBAL_ATOMIC_DEC_U64 = 77 + GLOBAL_WBINV = 79 + GLOBAL_ATOMIC_COND_SUB_U32 = 80 + GLOBAL_ATOMIC_MIN_NUM_F32 = 81 + GLOBAL_ATOMIC_MAX_NUM_F32 = 82 + GLOBAL_LOAD_BLOCK = 83 + GLOBAL_STORE_BLOCK = 84 + GLOBAL_ATOMIC_ADD_F32 = 86 + GLOBAL_LOAD_TR_B128 = 87 + GLOBAL_LOAD_TR_B64 = 88 + GLOBAL_ATOMIC_PK_ADD_F16 = 89 + GLOBAL_ATOMIC_PK_ADD_BF16 = 90 + GLOBAL_ATOMIC_ORDERED_ADD_B64 = 115 + +class VIMAGEOp(IntEnum): + IMAGE_LOAD = 0 + IMAGE_LOAD_MIP = 1 + IMAGE_LOAD_PCK = 2 + IMAGE_LOAD_PCK_SGN = 3 + IMAGE_LOAD_MIP_PCK = 4 + IMAGE_LOAD_MIP_PCK_SGN = 5 + IMAGE_STORE = 6 + IMAGE_STORE_MIP = 7 + IMAGE_STORE_PCK = 8 + IMAGE_STORE_MIP_PCK = 9 + IMAGE_ATOMIC_SWAP = 10 + IMAGE_ATOMIC_CMPSWAP = 11 + IMAGE_ATOMIC_ADD_UINT = 12 + IMAGE_ATOMIC_SUB_UINT = 13 + IMAGE_ATOMIC_MIN_INT = 14 + IMAGE_ATOMIC_MIN_UINT = 15 + IMAGE_ATOMIC_MAX_INT = 16 + IMAGE_ATOMIC_MAX_UINT = 17 + IMAGE_ATOMIC_AND = 18 + IMAGE_ATOMIC_OR = 19 + IMAGE_ATOMIC_XOR = 20 + IMAGE_ATOMIC_INC_UINT = 21 + IMAGE_ATOMIC_DEC_UINT = 22 + IMAGE_GET_RESINFO = 23 + IMAGE_BVH_INTERSECT_RAY = 25 + IMAGE_BVH64_INTERSECT_RAY = 26 + IMAGE_BVH_DUAL_INTERSECT_RAY = 128 + IMAGE_BVH8_INTERSECT_RAY = 129 + IMAGE_ATOMIC_ADD_FLT = 131 + IMAGE_ATOMIC_MIN_FLT = 132 + IMAGE_ATOMIC_MAX_FLT = 133 + IMAGE_ATOMIC_PK_ADD_F16 = 134 + IMAGE_ATOMIC_PK_ADD_BF16 = 135 + +class VINTERPOp(IntEnum): + V_INTERP_P10_F32 = 0 + V_INTERP_P2_F32 = 1 + V_INTERP_P10_F16_F32 = 2 + V_INTERP_P2_F16_F32 = 3 + V_INTERP_P10_RTZ_F16_F32 = 4 + V_INTERP_P2_RTZ_F16_F32 = 5 + +class VOP1Op(IntEnum): + V_NOP = 0 + V_MOV_B32 = 1 + V_READFIRSTLANE_B32 = 2 + V_CVT_I32_F64 = 3 + V_CVT_F64_I32 = 4 + V_CVT_F32_I32 = 5 + V_CVT_F32_U32 = 6 + V_CVT_U32_F32 = 7 + V_CVT_I32_F32 = 8 + V_CVT_F16_F32 = 10 + V_CVT_F32_F16 = 11 + V_CVT_NEAREST_I32_F32 = 12 + V_CVT_FLOOR_I32_F32 = 13 + V_CVT_OFF_F32_I4 = 14 + V_CVT_F32_F64 = 15 + V_CVT_F64_F32 = 16 + V_CVT_F32_UBYTE0 = 17 + V_CVT_F32_UBYTE1 = 18 + V_CVT_F32_UBYTE2 = 19 + V_CVT_F32_UBYTE3 = 20 + V_CVT_U32_F64 = 21 + V_CVT_F64_U32 = 22 + V_TRUNC_F64 = 23 + V_CEIL_F64 = 24 + V_RNDNE_F64 = 25 + V_FLOOR_F64 = 26 + V_PIPEFLUSH = 27 + V_MOV_B16 = 28 + V_FRACT_F32 = 32 + V_TRUNC_F32 = 33 + V_CEIL_F32 = 34 + V_RNDNE_F32 = 35 + V_FLOOR_F32 = 36 + V_EXP_F32 = 37 + V_LOG_F32 = 39 + V_RCP_F32 = 42 + V_RCP_IFLAG_F32 = 43 + V_RSQ_F32 = 46 + V_RCP_F64 = 47 + V_RSQ_F64 = 49 + V_SQRT_F32 = 51 + V_SQRT_F64 = 52 + V_SIN_F32 = 53 + V_COS_F32 = 54 + V_NOT_B32 = 55 + V_BFREV_B32 = 56 + V_CLZ_I32_U32 = 57 + V_CTZ_I32_B32 = 58 + V_CLS_I32 = 59 + V_FREXP_EXP_I32_F64 = 60 + V_FREXP_MANT_F64 = 61 + V_FRACT_F64 = 62 + V_FREXP_EXP_I32_F32 = 63 + V_FREXP_MANT_F32 = 64 + V_MOVRELD_B32 = 66 + V_MOVRELS_B32 = 67 + V_MOVRELSD_B32 = 68 + V_MOVRELSD_2_B32 = 72 + V_CVT_F16_U16 = 80 + V_CVT_F16_I16 = 81 + V_CVT_U16_F16 = 82 + V_CVT_I16_F16 = 83 + V_RCP_F16 = 84 + V_SQRT_F16 = 85 + V_RSQ_F16 = 86 + V_LOG_F16 = 87 + V_EXP_F16 = 88 + V_FREXP_MANT_F16 = 89 + V_FREXP_EXP_I16_F16 = 90 + V_FLOOR_F16 = 91 + V_CEIL_F16 = 92 + V_TRUNC_F16 = 93 + V_RNDNE_F16 = 94 + V_FRACT_F16 = 95 + V_SIN_F16 = 96 + V_COS_F16 = 97 + V_SAT_PK_U8_I16 = 98 + V_CVT_NORM_I16_F16 = 99 + V_CVT_NORM_U16_F16 = 100 + V_SWAP_B32 = 101 + V_SWAP_B16 = 102 + V_PERMLANE64_B32 = 103 + V_SWAPREL_B32 = 104 + V_NOT_B16 = 105 + V_CVT_I32_I16 = 106 + V_CVT_U32_U16 = 107 + V_CVT_F32_FP8 = 108 + V_CVT_F32_BF8 = 109 + V_CVT_PK_F32_FP8 = 110 + V_CVT_PK_F32_BF8 = 111 + +class VOP2Op(IntEnum): + V_CNDMASK_B32 = 1 + V_ADD_F64 = 2 + V_ADD_F32 = 3 + V_SUB_F32 = 4 + V_SUBREV_F32 = 5 + V_MUL_F64 = 6 + V_MUL_DX9_ZERO_F32 = 7 + V_MUL_F32 = 8 + V_MUL_I32_I24 = 9 + V_MUL_HI_I32_I24 = 10 + V_MUL_U32_U24 = 11 + V_MUL_HI_U32_U24 = 12 + V_MIN_NUM_F64 = 13 + V_MAX_NUM_F64 = 14 + V_MIN_I32 = 17 + V_MAX_I32 = 18 + V_MIN_U32 = 19 + V_MAX_U32 = 20 + V_MIN_NUM_F32 = 21 + V_MAX_NUM_F32 = 22 + V_LSHLREV_B32 = 24 + V_LSHRREV_B32 = 25 + V_ASHRREV_I32 = 26 + V_AND_B32 = 27 + V_OR_B32 = 28 + V_XOR_B32 = 29 + V_XNOR_B32 = 30 + V_LSHLREV_B64 = 31 + V_ADD_CO_CI_U32 = 32 + V_SUB_CO_CI_U32 = 33 + V_SUBREV_CO_CI_U32 = 34 + V_ADD_NC_U32 = 37 + V_SUB_NC_U32 = 38 + V_SUBREV_NC_U32 = 39 + V_FMAC_F32 = 43 + V_FMAMK_F32 = 44 + V_FMAAK_F32 = 45 + V_CVT_PK_RTZ_F16_F32 = 47 + V_MIN_NUM_F16 = 48 + V_MAX_NUM_F16 = 49 + V_ADD_F16 = 50 + V_SUB_F16 = 51 + V_SUBREV_F16 = 52 + V_MUL_F16 = 53 + V_FMAC_F16 = 54 + V_FMAMK_F16 = 55 + V_FMAAK_F16 = 56 + V_LDEXP_F16 = 59 + V_PK_FMAC_F16 = 60 + +class VOP3Op(IntEnum): + V_CMP_LT_F16 = 1 + V_CMP_EQ_F16 = 2 + V_CMP_LE_F16 = 3 + V_CMP_GT_F16 = 4 + V_CMP_LG_F16 = 5 + V_CMP_GE_F16 = 6 + V_CMP_O_F16 = 7 + V_CMP_U_F16 = 8 + V_CMP_NGE_F16 = 9 + V_CMP_NLG_F16 = 10 + V_CMP_NGT_F16 = 11 + V_CMP_NLE_F16 = 12 + V_CMP_NEQ_F16 = 13 + V_CMP_NLT_F16 = 14 + V_CMP_LT_F32 = 17 + V_CMP_EQ_F32 = 18 + V_CMP_LE_F32 = 19 + V_CMP_GT_F32 = 20 + V_CMP_LG_F32 = 21 + V_CMP_GE_F32 = 22 + V_CMP_O_F32 = 23 + V_CMP_U_F32 = 24 + V_CMP_NGE_F32 = 25 + V_CMP_NLG_F32 = 26 + V_CMP_NGT_F32 = 27 + V_CMP_NLE_F32 = 28 + V_CMP_NEQ_F32 = 29 + V_CMP_NLT_F32 = 30 + V_CMP_LT_F64 = 33 + V_CMP_EQ_F64 = 34 + V_CMP_LE_F64 = 35 + V_CMP_GT_F64 = 36 + V_CMP_LG_F64 = 37 + V_CMP_GE_F64 = 38 + V_CMP_O_F64 = 39 + V_CMP_U_F64 = 40 + V_CMP_NGE_F64 = 41 + V_CMP_NLG_F64 = 42 + V_CMP_NGT_F64 = 43 + V_CMP_NLE_F64 = 44 + V_CMP_NEQ_F64 = 45 + V_CMP_NLT_F64 = 46 + V_CMP_LT_I16 = 49 + V_CMP_EQ_I16 = 50 + V_CMP_LE_I16 = 51 + V_CMP_GT_I16 = 52 + V_CMP_NE_I16 = 53 + V_CMP_GE_I16 = 54 + V_CMP_LT_U16 = 57 + V_CMP_EQ_U16 = 58 + V_CMP_LE_U16 = 59 + V_CMP_GT_U16 = 60 + V_CMP_NE_U16 = 61 + V_CMP_GE_U16 = 62 + V_CMP_LT_I32 = 65 + V_CMP_EQ_I32 = 66 + V_CMP_LE_I32 = 67 + V_CMP_GT_I32 = 68 + V_CMP_NE_I32 = 69 + V_CMP_GE_I32 = 70 + V_CMP_LT_U32 = 73 + V_CMP_EQ_U32 = 74 + V_CMP_LE_U32 = 75 + V_CMP_GT_U32 = 76 + V_CMP_NE_U32 = 77 + V_CMP_GE_U32 = 78 + V_CMP_LT_I64 = 81 + V_CMP_EQ_I64 = 82 + V_CMP_LE_I64 = 83 + V_CMP_GT_I64 = 84 + V_CMP_NE_I64 = 85 + V_CMP_GE_I64 = 86 + V_CMP_LT_U64 = 89 + V_CMP_EQ_U64 = 90 + V_CMP_LE_U64 = 91 + V_CMP_GT_U64 = 92 + V_CMP_NE_U64 = 93 + V_CMP_GE_U64 = 94 + V_CMP_CLASS_F16 = 125 + V_CMP_CLASS_F32 = 126 + V_CMP_CLASS_F64 = 127 + V_CMPX_LT_F16 = 129 + V_CMPX_EQ_F16 = 130 + V_CMPX_LE_F16 = 131 + V_CMPX_GT_F16 = 132 + V_CMPX_LG_F16 = 133 + V_CMPX_GE_F16 = 134 + V_CMPX_O_F16 = 135 + V_CMPX_U_F16 = 136 + V_CMPX_NGE_F16 = 137 + V_CMPX_NLG_F16 = 138 + V_CMPX_NGT_F16 = 139 + V_CMPX_NLE_F16 = 140 + V_CMPX_NEQ_F16 = 141 + V_CMPX_NLT_F16 = 142 + V_CMPX_LT_F32 = 145 + V_CMPX_EQ_F32 = 146 + V_CMPX_LE_F32 = 147 + V_CMPX_GT_F32 = 148 + V_CMPX_LG_F32 = 149 + V_CMPX_GE_F32 = 150 + V_CMPX_O_F32 = 151 + V_CMPX_U_F32 = 152 + V_CMPX_NGE_F32 = 153 + V_CMPX_NLG_F32 = 154 + V_CMPX_NGT_F32 = 155 + V_CMPX_NLE_F32 = 156 + V_CMPX_NEQ_F32 = 157 + V_CMPX_NLT_F32 = 158 + V_CMPX_LT_F64 = 161 + V_CMPX_EQ_F64 = 162 + V_CMPX_LE_F64 = 163 + V_CMPX_GT_F64 = 164 + V_CMPX_LG_F64 = 165 + V_CMPX_GE_F64 = 166 + V_CMPX_O_F64 = 167 + V_CMPX_U_F64 = 168 + V_CMPX_NGE_F64 = 169 + V_CMPX_NLG_F64 = 170 + V_CMPX_NGT_F64 = 171 + V_CMPX_NLE_F64 = 172 + V_CMPX_NEQ_F64 = 173 + V_CMPX_NLT_F64 = 174 + V_CMPX_LT_I16 = 177 + V_CMPX_EQ_I16 = 178 + V_CMPX_LE_I16 = 179 + V_CMPX_GT_I16 = 180 + V_CMPX_NE_I16 = 181 + V_CMPX_GE_I16 = 182 + V_CMPX_LT_U16 = 185 + V_CMPX_EQ_U16 = 186 + V_CMPX_LE_U16 = 187 + V_CMPX_GT_U16 = 188 + V_CMPX_NE_U16 = 189 + V_CMPX_GE_U16 = 190 + V_CMPX_LT_I32 = 193 + V_CMPX_EQ_I32 = 194 + V_CMPX_LE_I32 = 195 + V_CMPX_GT_I32 = 196 + V_CMPX_NE_I32 = 197 + V_CMPX_GE_I32 = 198 + V_CMPX_LT_U32 = 201 + V_CMPX_EQ_U32 = 202 + V_CMPX_LE_U32 = 203 + V_CMPX_GT_U32 = 204 + V_CMPX_NE_U32 = 205 + V_CMPX_GE_U32 = 206 + V_CMPX_LT_I64 = 209 + V_CMPX_EQ_I64 = 210 + V_CMPX_LE_I64 = 211 + V_CMPX_GT_I64 = 212 + V_CMPX_NE_I64 = 213 + V_CMPX_GE_I64 = 214 + V_CMPX_LT_U64 = 217 + V_CMPX_EQ_U64 = 218 + V_CMPX_LE_U64 = 219 + V_CMPX_GT_U64 = 220 + V_CMPX_NE_U64 = 221 + V_CMPX_GE_U64 = 222 + V_CMPX_CLASS_F16 = 253 + V_CMPX_CLASS_F32 = 254 + V_CMPX_CLASS_F64 = 255 + V_CNDMASK_B32 = 257 + V_ADD_F64 = 258 + V_ADD_F32 = 259 + V_SUB_F32 = 260 + V_SUBREV_F32 = 261 + V_MUL_F64 = 262 + V_MUL_DX9_ZERO_F32 = 263 + V_MUL_F32 = 264 + V_MUL_I32_I24 = 265 + V_MUL_HI_I32_I24 = 266 + V_MUL_U32_U24 = 267 + V_MUL_HI_U32_U24 = 268 + V_MIN_NUM_F64 = 269 + V_MAX_NUM_F64 = 270 + V_MIN_I32 = 273 + V_MAX_I32 = 274 + V_MIN_U32 = 275 + V_MAX_U32 = 276 + V_MIN_NUM_F32 = 277 + V_MAX_NUM_F32 = 278 + V_LSHLREV_B32 = 280 + V_LSHRREV_B32 = 281 + V_ASHRREV_I32 = 282 + V_AND_B32 = 283 + V_OR_B32 = 284 + V_XOR_B32 = 285 + V_XNOR_B32 = 286 + V_LSHLREV_B64 = 287 + V_ADD_NC_U32 = 293 + V_SUB_NC_U32 = 294 + V_SUBREV_NC_U32 = 295 + V_FMAC_F32 = 299 + V_CVT_PK_RTZ_F16_F32 = 303 + V_MIN_NUM_F16 = 304 + V_MAX_NUM_F16 = 305 + V_ADD_F16 = 306 + V_SUB_F16 = 307 + V_SUBREV_F16 = 308 + V_MUL_F16 = 309 + V_FMAC_F16 = 310 + V_LDEXP_F16 = 315 + V_NOP = 384 + V_MOV_B32 = 385 + V_READFIRSTLANE_B32 = 386 + V_CVT_I32_F64 = 387 + V_CVT_F64_I32 = 388 + V_CVT_F32_I32 = 389 + V_CVT_F32_U32 = 390 + V_CVT_U32_F32 = 391 + V_CVT_I32_F32 = 392 + V_CVT_F16_F32 = 394 + V_CVT_F32_F16 = 395 + V_CVT_NEAREST_I32_F32 = 396 + V_CVT_FLOOR_I32_F32 = 397 + V_CVT_OFF_F32_I4 = 398 + V_CVT_F32_F64 = 399 + V_CVT_F64_F32 = 400 + V_CVT_F32_UBYTE0 = 401 + V_CVT_F32_UBYTE1 = 402 + V_CVT_F32_UBYTE2 = 403 + V_CVT_F32_UBYTE3 = 404 + V_CVT_U32_F64 = 405 + V_CVT_F64_U32 = 406 + V_TRUNC_F64 = 407 + V_CEIL_F64 = 408 + V_RNDNE_F64 = 409 + V_FLOOR_F64 = 410 + V_PIPEFLUSH = 411 + V_MOV_B16 = 412 + V_FRACT_F32 = 416 + V_TRUNC_F32 = 417 + V_CEIL_F32 = 418 + V_RNDNE_F32 = 419 + V_FLOOR_F32 = 420 + V_EXP_F32 = 421 + V_LOG_F32 = 423 + V_RCP_F32 = 426 + V_RCP_IFLAG_F32 = 427 + V_RSQ_F32 = 430 + V_RCP_F64 = 431 + V_RSQ_F64 = 433 + V_SQRT_F32 = 435 + V_SQRT_F64 = 436 + V_SIN_F32 = 437 + V_COS_F32 = 438 + V_NOT_B32 = 439 + V_BFREV_B32 = 440 + V_CLZ_I32_U32 = 441 + V_CTZ_I32_B32 = 442 + V_CLS_I32 = 443 + V_FREXP_EXP_I32_F64 = 444 + V_FREXP_MANT_F64 = 445 + V_FRACT_F64 = 446 + V_FREXP_EXP_I32_F32 = 447 + V_FREXP_MANT_F32 = 448 + V_MOVRELD_B32 = 450 + V_MOVRELS_B32 = 451 + V_MOVRELSD_B32 = 452 + V_MOVRELSD_2_B32 = 456 + V_CVT_F16_U16 = 464 + V_CVT_F16_I16 = 465 + V_CVT_U16_F16 = 466 + V_CVT_I16_F16 = 467 + V_RCP_F16 = 468 + V_SQRT_F16 = 469 + V_RSQ_F16 = 470 + V_LOG_F16 = 471 + V_EXP_F16 = 472 + V_FREXP_MANT_F16 = 473 + V_FREXP_EXP_I16_F16 = 474 + V_FLOOR_F16 = 475 + V_CEIL_F16 = 476 + V_TRUNC_F16 = 477 + V_RNDNE_F16 = 478 + V_FRACT_F16 = 479 + V_SIN_F16 = 480 + V_COS_F16 = 481 + V_SAT_PK_U8_I16 = 482 + V_CVT_NORM_I16_F16 = 483 + V_CVT_NORM_U16_F16 = 484 + V_NOT_B16 = 489 + V_CVT_I32_I16 = 490 + V_CVT_U32_U16 = 491 + V_CVT_F32_FP8 = 492 + V_CVT_F32_BF8 = 493 + V_CVT_PK_F32_FP8 = 494 + V_CVT_PK_F32_BF8 = 495 + V_FMA_DX9_ZERO_F32 = 521 + V_MAD_I32_I24 = 522 + V_MAD_U32_U24 = 523 + V_CUBEID_F32 = 524 + V_CUBESC_F32 = 525 + V_CUBETC_F32 = 526 + V_CUBEMA_F32 = 527 + V_BFE_U32 = 528 + V_BFE_I32 = 529 + V_BFI_B32 = 530 + V_FMA_F32 = 531 + V_FMA_F64 = 532 + V_LERP_U8 = 533 + V_ALIGNBIT_B32 = 534 + V_ALIGNBYTE_B32 = 535 + V_MULLIT_F32 = 536 + V_MIN3_I32 = 538 + V_MIN3_U32 = 539 + V_MAX3_I32 = 541 + V_MAX3_U32 = 542 + V_MED3_I32 = 544 + V_MED3_U32 = 545 + V_SAD_U8 = 546 + V_SAD_HI_U8 = 547 + V_SAD_U16 = 548 + V_SAD_U32 = 549 + V_CVT_PK_U8_F32 = 550 + V_DIV_FIXUP_F32 = 551 + V_DIV_FIXUP_F64 = 552 + V_MIN3_NUM_F32 = 553 + V_MAX3_NUM_F32 = 554 + V_MIN3_NUM_F16 = 555 + V_MAX3_NUM_F16 = 556 + V_MINIMUM3_F32 = 557 + V_MAXIMUM3_F32 = 558 + V_MINIMUM3_F16 = 559 + V_MAXIMUM3_F16 = 560 + V_MED3_NUM_F32 = 561 + V_MED3_NUM_F16 = 562 + V_DIV_FMAS_F32 = 567 + V_DIV_FMAS_F64 = 568 + V_MSAD_U8 = 569 + V_QSAD_PK_U16_U8 = 570 + V_MQSAD_PK_U16_U8 = 571 + V_MQSAD_U32_U8 = 573 + V_XOR3_B32 = 576 + V_MAD_U16 = 577 + V_PERM_B32 = 580 + V_XAD_U32 = 581 + V_LSHL_ADD_U32 = 582 + V_ADD_LSHL_U32 = 583 + V_FMA_F16 = 584 + V_MIN3_I16 = 586 + V_MIN3_U16 = 587 + V_MAX3_I16 = 589 + V_MAX3_U16 = 590 + V_MED3_I16 = 592 + V_MED3_U16 = 593 + V_MAD_I16 = 595 + V_DIV_FIXUP_F16 = 596 + V_ADD3_U32 = 597 + V_LSHL_OR_B32 = 598 + V_AND_OR_B32 = 599 + V_OR3_B32 = 600 + V_MAD_U32_U16 = 601 + V_MAD_I32_I16 = 602 + V_PERMLANE16_B32 = 603 + V_PERMLANEX16_B32 = 604 + V_CNDMASK_B16 = 605 + V_MAXMIN_U32 = 610 + V_MINMAX_U32 = 611 + V_MAXMIN_I32 = 612 + V_MINMAX_I32 = 613 + V_DOT2_F16_F16 = 614 + V_DOT2_BF16_BF16 = 615 + V_MINMAX_NUM_F32 = 616 + V_MAXMIN_NUM_F32 = 617 + V_MINMAX_NUM_F16 = 618 + V_MAXMIN_NUM_F16 = 619 + V_MINIMUMMAXIMUM_F32 = 620 + V_MAXIMUMMINIMUM_F32 = 621 + V_MINIMUMMAXIMUM_F16 = 622 + V_MAXIMUMMINIMUM_F16 = 623 + V_S_EXP_F32 = 640 + V_S_EXP_F16 = 641 + V_S_LOG_F32 = 642 + V_S_LOG_F16 = 643 + V_S_RCP_F32 = 644 + V_S_RCP_F16 = 645 + V_S_RSQ_F32 = 646 + V_S_RSQ_F16 = 647 + V_S_SQRT_F32 = 648 + V_S_SQRT_F16 = 649 + V_ADD_NC_U16 = 771 + V_SUB_NC_U16 = 772 + V_MUL_LO_U16 = 773 + V_CVT_PK_I16_F32 = 774 + V_CVT_PK_U16_F32 = 775 + V_MAX_U16 = 777 + V_MAX_I16 = 778 + V_MIN_U16 = 779 + V_MIN_I16 = 780 + V_ADD_NC_I16 = 781 + V_SUB_NC_I16 = 782 + V_PERMLANE16_VAR_B32 = 783 + V_PERMLANEX16_VAR_B32 = 784 + V_PACK_B32_F16 = 785 + V_CVT_PK_NORM_I16_F16 = 786 + V_CVT_PK_NORM_U16_F16 = 787 + V_LDEXP_F32 = 796 + V_BFM_B32 = 797 + V_BCNT_U32_B32 = 798 + V_MBCNT_LO_U32_B32 = 799 + V_MBCNT_HI_U32_B32 = 800 + V_CVT_PK_NORM_I16_F32 = 801 + V_CVT_PK_NORM_U16_F32 = 802 + V_CVT_PK_U16_U32 = 803 + V_CVT_PK_I16_I32 = 804 + V_SUB_NC_I32 = 805 + V_ADD_NC_I32 = 806 + V_LDEXP_F64 = 811 + V_MUL_LO_U32 = 812 + V_MUL_HI_U32 = 813 + V_MUL_HI_I32 = 814 + V_TRIG_PREOP_F64 = 815 + V_LSHLREV_B16 = 824 + V_LSHRREV_B16 = 825 + V_ASHRREV_I16 = 826 + V_LSHRREV_B64 = 829 + V_ASHRREV_I64 = 830 + V_MINIMUM_F64 = 833 + V_MAXIMUM_F64 = 834 + V_READLANE_B32 = 864 + V_WRITELANE_B32 = 865 + V_AND_B16 = 866 + V_OR_B16 = 867 + V_XOR_B16 = 868 + V_MINIMUM_F32 = 869 + V_MAXIMUM_F32 = 870 + V_MINIMUM_F16 = 871 + V_MAXIMUM_F16 = 872 + V_CVT_PK_FP8_F32 = 873 + V_CVT_PK_BF8_F32 = 874 + V_CVT_SR_FP8_F32 = 875 + V_CVT_SR_BF8_F32 = 876 + +class VOP3POp(IntEnum): + V_PK_MAD_I16 = 0 + V_PK_MUL_LO_U16 = 1 + V_PK_ADD_I16 = 2 + V_PK_SUB_I16 = 3 + V_PK_LSHLREV_B16 = 4 + V_PK_LSHRREV_B16 = 5 + V_PK_ASHRREV_I16 = 6 + V_PK_MAX_I16 = 7 + V_PK_MIN_I16 = 8 + V_PK_MAD_U16 = 9 + V_PK_ADD_U16 = 10 + V_PK_SUB_U16 = 11 + V_PK_MAX_U16 = 12 + V_PK_MIN_U16 = 13 + V_PK_FMA_F16 = 14 + V_PK_ADD_F16 = 15 + V_PK_MUL_F16 = 16 + V_DOT2_F32_F16 = 19 + V_DOT4_I32_IU8 = 22 + V_DOT4_U32_U8 = 23 + V_DOT8_I32_IU4 = 24 + V_DOT8_U32_U4 = 25 + V_DOT2_F32_BF16 = 26 + V_PK_MIN_NUM_F16 = 27 + V_PK_MAX_NUM_F16 = 28 + V_PK_MINIMUM_F16 = 29 + V_PK_MAXIMUM_F16 = 30 + V_FMA_MIX_F32 = 32 + V_FMA_MIXLO_F16 = 33 + V_FMA_MIXHI_F16 = 34 + V_DOT4_F32_FP8_BF8 = 36 + V_DOT4_F32_BF8_FP8 = 37 + V_DOT4_F32_FP8_FP8 = 38 + V_DOT4_F32_BF8_BF8 = 39 + V_WMMA_F32_16X16X16_F16 = 64 + V_WMMA_F32_16X16X16_BF16 = 65 + V_WMMA_F16_16X16X16_F16 = 66 + V_WMMA_BF16_16X16X16_BF16 = 67 + V_WMMA_I32_16X16X16_IU8 = 68 + V_WMMA_I32_16X16X16_IU4 = 69 + V_WMMA_F32_16X16X16_FP8_FP8 = 70 + V_WMMA_F32_16X16X16_FP8_BF8 = 71 + V_WMMA_F32_16X16X16_BF8_FP8 = 72 + V_WMMA_F32_16X16X16_BF8_BF8 = 73 + V_WMMA_I32_16X16X32_IU4 = 74 + V_SWMMAC_F32_16X16X32_F16 = 80 + V_SWMMAC_F32_16X16X32_BF16 = 81 + V_SWMMAC_F16_16X16X32_F16 = 82 + V_SWMMAC_BF16_16X16X32_BF16 = 83 + V_SWMMAC_I32_16X16X32_IU8 = 84 + V_SWMMAC_I32_16X16X32_IU4 = 85 + V_SWMMAC_I32_16X16X64_IU4 = 86 + V_SWMMAC_F32_16X16X32_FP8_FP8 = 87 + V_SWMMAC_F32_16X16X32_FP8_BF8 = 88 + V_SWMMAC_F32_16X16X32_BF8_FP8 = 89 + V_SWMMAC_F32_16X16X32_BF8_BF8 = 90 + +class VOP3SDOp(IntEnum): + DWORD = 1 + V_ADD_CO_CI_U32 = 288 + V_SUB_CO_CI_U32 = 289 + V_SUBREV_CO_CI_U32 = 290 + V_DIV_SCALE_F32 = 764 + V_DIV_SCALE_F64 = 765 + V_MAD_CO_U64_U32 = 766 + V_MAD_CO_I64_I32 = 767 + V_ADD_CO_U32 = 768 + V_SUB_CO_U32 = 769 + V_SUBREV_CO_U32 = 770 + +class VOPCOp(IntEnum): + V_CMP_LT_F16 = 1 + V_CMP_EQ_F16 = 2 + V_CMP_LE_F16 = 3 + V_CMP_GT_F16 = 4 + V_CMP_LG_F16 = 5 + V_CMP_GE_F16 = 6 + V_CMP_O_F16 = 7 + V_CMP_U_F16 = 8 + V_CMP_NGE_F16 = 9 + V_CMP_NLG_F16 = 10 + V_CMP_NGT_F16 = 11 + V_CMP_NLE_F16 = 12 + V_CMP_NEQ_F16 = 13 + V_CMP_NLT_F16 = 14 + V_CMP_LT_F32 = 17 + V_CMP_EQ_F32 = 18 + V_CMP_LE_F32 = 19 + V_CMP_GT_F32 = 20 + V_CMP_LG_F32 = 21 + V_CMP_GE_F32 = 22 + V_CMP_O_F32 = 23 + V_CMP_U_F32 = 24 + V_CMP_NGE_F32 = 25 + V_CMP_NLG_F32 = 26 + V_CMP_NGT_F32 = 27 + V_CMP_NLE_F32 = 28 + V_CMP_NEQ_F32 = 29 + V_CMP_NLT_F32 = 30 + V_CMP_LT_F64 = 33 + V_CMP_EQ_F64 = 34 + V_CMP_LE_F64 = 35 + V_CMP_GT_F64 = 36 + V_CMP_LG_F64 = 37 + V_CMP_GE_F64 = 38 + V_CMP_O_F64 = 39 + V_CMP_U_F64 = 40 + V_CMP_NGE_F64 = 41 + V_CMP_NLG_F64 = 42 + V_CMP_NGT_F64 = 43 + V_CMP_NLE_F64 = 44 + V_CMP_NEQ_F64 = 45 + V_CMP_NLT_F64 = 46 + V_CMP_LT_I16 = 49 + V_CMP_EQ_I16 = 50 + V_CMP_LE_I16 = 51 + V_CMP_GT_I16 = 52 + V_CMP_NE_I16 = 53 + V_CMP_GE_I16 = 54 + V_CMP_LT_U16 = 57 + V_CMP_EQ_U16 = 58 + V_CMP_LE_U16 = 59 + V_CMP_GT_U16 = 60 + V_CMP_NE_U16 = 61 + V_CMP_GE_U16 = 62 + V_CMP_LT_I32 = 65 + V_CMP_EQ_I32 = 66 + V_CMP_LE_I32 = 67 + V_CMP_GT_I32 = 68 + V_CMP_NE_I32 = 69 + V_CMP_GE_I32 = 70 + V_CMP_LT_U32 = 73 + V_CMP_EQ_U32 = 74 + V_CMP_LE_U32 = 75 + V_CMP_GT_U32 = 76 + V_CMP_NE_U32 = 77 + V_CMP_GE_U32 = 78 + V_CMP_LT_I64 = 81 + V_CMP_EQ_I64 = 82 + V_CMP_LE_I64 = 83 + V_CMP_GT_I64 = 84 + V_CMP_NE_I64 = 85 + V_CMP_GE_I64 = 86 + V_CMP_LT_U64 = 89 + V_CMP_EQ_U64 = 90 + V_CMP_LE_U64 = 91 + V_CMP_GT_U64 = 92 + V_CMP_NE_U64 = 93 + V_CMP_GE_U64 = 94 + V_CMP_CLASS_F16 = 125 + V_CMP_CLASS_F32 = 126 + V_CMP_CLASS_F64 = 127 + V_CMPX_LT_F16 = 129 + V_CMPX_EQ_F16 = 130 + V_CMPX_LE_F16 = 131 + V_CMPX_GT_F16 = 132 + V_CMPX_LG_F16 = 133 + V_CMPX_GE_F16 = 134 + V_CMPX_O_F16 = 135 + V_CMPX_U_F16 = 136 + V_CMPX_NGE_F16 = 137 + V_CMPX_NLG_F16 = 138 + V_CMPX_NGT_F16 = 139 + V_CMPX_NLE_F16 = 140 + V_CMPX_NEQ_F16 = 141 + V_CMPX_NLT_F16 = 142 + V_CMPX_LT_F32 = 145 + V_CMPX_EQ_F32 = 146 + V_CMPX_LE_F32 = 147 + V_CMPX_GT_F32 = 148 + V_CMPX_LG_F32 = 149 + V_CMPX_GE_F32 = 150 + V_CMPX_O_F32 = 151 + V_CMPX_U_F32 = 152 + V_CMPX_NGE_F32 = 153 + V_CMPX_NLG_F32 = 154 + V_CMPX_NGT_F32 = 155 + V_CMPX_NLE_F32 = 156 + V_CMPX_NEQ_F32 = 157 + V_CMPX_NLT_F32 = 158 + V_CMPX_LT_F64 = 161 + V_CMPX_EQ_F64 = 162 + V_CMPX_LE_F64 = 163 + V_CMPX_GT_F64 = 164 + V_CMPX_LG_F64 = 165 + V_CMPX_GE_F64 = 166 + V_CMPX_O_F64 = 167 + V_CMPX_U_F64 = 168 + V_CMPX_NGE_F64 = 169 + V_CMPX_NLG_F64 = 170 + V_CMPX_NGT_F64 = 171 + V_CMPX_NLE_F64 = 172 + V_CMPX_NEQ_F64 = 173 + V_CMPX_NLT_F64 = 174 + V_CMPX_LT_I16 = 177 + V_CMPX_EQ_I16 = 178 + V_CMPX_LE_I16 = 179 + V_CMPX_GT_I16 = 180 + V_CMPX_NE_I16 = 181 + V_CMPX_GE_I16 = 182 + V_CMPX_LT_U16 = 185 + V_CMPX_EQ_U16 = 186 + V_CMPX_LE_U16 = 187 + V_CMPX_GT_U16 = 188 + V_CMPX_NE_U16 = 189 + V_CMPX_GE_U16 = 190 + V_CMPX_LT_I32 = 193 + V_CMPX_EQ_I32 = 194 + V_CMPX_LE_I32 = 195 + V_CMPX_GT_I32 = 196 + V_CMPX_NE_I32 = 197 + V_CMPX_GE_I32 = 198 + V_CMPX_LT_U32 = 201 + V_CMPX_EQ_U32 = 202 + V_CMPX_LE_U32 = 203 + V_CMPX_GT_U32 = 204 + V_CMPX_NE_U32 = 205 + V_CMPX_GE_U32 = 206 + V_CMPX_LT_I64 = 209 + V_CMPX_EQ_I64 = 210 + V_CMPX_LE_I64 = 211 + V_CMPX_GT_I64 = 212 + V_CMPX_NE_I64 = 213 + V_CMPX_GE_I64 = 214 + V_CMPX_LT_U64 = 217 + V_CMPX_EQ_U64 = 218 + V_CMPX_LE_U64 = 219 + V_CMPX_GT_U64 = 220 + V_CMPX_NE_U64 = 221 + V_CMPX_GE_U64 = 222 + V_CMPX_CLASS_F16 = 253 + V_CMPX_CLASS_F32 = 254 + V_CMPX_CLASS_F64 = 255 + +class VOPDOp(IntEnum): + V_DUAL_FMAC_F32 = 0 + V_DUAL_FMAAK_F32 = 1 + V_DUAL_FMAMK_F32 = 2 + V_DUAL_MUL_F32 = 3 + V_DUAL_ADD_F32 = 4 + V_DUAL_SUB_F32 = 5 + V_DUAL_SUBREV_F32 = 6 + V_DUAL_MUL_DX9_ZERO_F32 = 7 + V_DUAL_MOV_B32 = 8 + V_DUAL_CNDMASK_B32 = 9 + V_DUAL_MAX_NUM_F32 = 10 + V_DUAL_MIN_NUM_F32 = 11 + V_DUAL_DOT2ACC_F32_F16 = 12 + V_DUAL_DOT2ACC_F32_BF16 = 13 + V_DUAL_ADD_NC_U32 = 16 + V_DUAL_LSHLREV_B32 = 17 + V_DUAL_AND_B32 = 18 + +class VSAMPLEOp(IntEnum): + IMAGE_MSAA_LOAD = 24 + IMAGE_SAMPLE = 27 + IMAGE_SAMPLE_D = 28 + IMAGE_SAMPLE_L = 29 + IMAGE_SAMPLE_B = 30 + IMAGE_SAMPLE_LZ = 31 + IMAGE_SAMPLE_C = 32 + IMAGE_SAMPLE_C_D = 33 + IMAGE_SAMPLE_C_L = 34 + IMAGE_SAMPLE_C_B = 35 + IMAGE_SAMPLE_C_LZ = 36 + IMAGE_SAMPLE_O = 37 + IMAGE_SAMPLE_D_O = 38 + IMAGE_SAMPLE_L_O = 39 + IMAGE_SAMPLE_B_O = 40 + IMAGE_SAMPLE_LZ_O = 41 + IMAGE_SAMPLE_C_O = 42 + IMAGE_SAMPLE_C_D_O = 43 + IMAGE_SAMPLE_C_L_O = 44 + IMAGE_SAMPLE_C_B_O = 45 + IMAGE_SAMPLE_C_LZ_O = 46 + IMAGE_GATHER4 = 47 + IMAGE_GATHER4_L = 48 + IMAGE_GATHER4_B = 49 + IMAGE_GATHER4_LZ = 50 + IMAGE_GATHER4_C = 51 + IMAGE_GATHER4_C_LZ = 52 + IMAGE_GATHER4_O = 53 + IMAGE_GATHER4_LZ_O = 54 + IMAGE_GATHER4_C_LZ_O = 55 + IMAGE_GET_LOD = 56 + IMAGE_SAMPLE_D_G16 = 57 + IMAGE_SAMPLE_C_D_G16 = 58 + IMAGE_SAMPLE_D_O_G16 = 59 + IMAGE_SAMPLE_C_D_O_G16 = 60 + IMAGE_SAMPLE_CL = 64 + IMAGE_SAMPLE_D_CL = 65 + IMAGE_SAMPLE_B_CL = 66 + IMAGE_SAMPLE_C_CL = 67 + IMAGE_SAMPLE_C_D_CL = 68 + IMAGE_SAMPLE_C_B_CL = 69 + IMAGE_SAMPLE_CL_O = 70 + IMAGE_SAMPLE_D_CL_O = 71 + IMAGE_SAMPLE_B_CL_O = 72 + IMAGE_SAMPLE_C_CL_O = 73 + IMAGE_SAMPLE_C_D_CL_O = 74 + IMAGE_SAMPLE_C_B_CL_O = 75 + IMAGE_SAMPLE_C_D_CL_G16 = 84 + IMAGE_SAMPLE_D_CL_O_G16 = 85 + IMAGE_SAMPLE_C_D_CL_O_G16 = 86 + IMAGE_SAMPLE_D_CL_G16 = 95 + IMAGE_GATHER4_CL = 96 + IMAGE_GATHER4_B_CL = 97 + IMAGE_GATHER4_C_CL = 98 + IMAGE_GATHER4_C_L = 99 + IMAGE_GATHER4_C_B = 100 + IMAGE_GATHER4_C_B_CL = 101 + IMAGE_GATHER4H = 144 + +class VSCRATCHOp(IntEnum): + SCRATCH_LOAD_U8 = 16 + SCRATCH_LOAD_I8 = 17 + SCRATCH_LOAD_U16 = 18 + SCRATCH_LOAD_I16 = 19 + SCRATCH_LOAD_B32 = 20 + SCRATCH_LOAD_B64 = 21 + SCRATCH_LOAD_B96 = 22 + SCRATCH_LOAD_B128 = 23 + SCRATCH_STORE_B8 = 24 + SCRATCH_STORE_B16 = 25 + SCRATCH_STORE_B32 = 26 + SCRATCH_STORE_B64 = 27 + SCRATCH_STORE_B96 = 28 + SCRATCH_STORE_B128 = 29 + SCRATCH_LOAD_D16_U8 = 30 + SCRATCH_LOAD_D16_I8 = 31 + SCRATCH_LOAD_D16_B16 = 32 + SCRATCH_LOAD_D16_HI_U8 = 33 + SCRATCH_LOAD_D16_HI_I8 = 34 + SCRATCH_LOAD_D16_HI_B16 = 35 + SCRATCH_STORE_D16_HI_B8 = 36 + SCRATCH_STORE_D16_HI_B16 = 37 + SCRATCH_LOAD_BLOCK = 83 + SCRATCH_STORE_BLOCK = 84 diff --git a/extra/assembly/amd/autogen/rdna4/gen_pcode.py b/extra/assembly/amd/autogen/rdna4/gen_pcode.py index 76930f5223..988b5ccec5 100644 --- a/extra/assembly/amd/autogen/rdna4/gen_pcode.py +++ b/extra/assembly/amd/autogen/rdna4/gen_pcode.py @@ -2,7 +2,7 @@ # to regenerate: python -m extra.assembly.amd.pdf --arch rdna4 # ruff: noqa: E501,F405,F403 # mypy: ignore-errors -from extra.assembly.amd.autogen.rdna4 import SOP1Op, SOP2Op, SOPCOp, SOPKOp, SOPPOp, VOP1Op, VOP2Op, VOP3Op, VOP3SDOp, VOP3POp, VOPCOp +from extra.assembly.amd.autogen.rdna4.enum import SOP1Op, SOP2Op, SOPCOp, SOPKOp, SOPPOp, VOP1Op, VOP2Op, VOP3Op, VOP3SDOp, VOP3POp, VOPCOp from extra.assembly.amd.pcode import * def _SOP1Op_S_MOV_B32(s0, s1, s2, d0, scc, vcc, lane, exec_mask, literal, VGPR, _vars, src0_idx=0, vdst_idx=0, pc=0): diff --git a/extra/assembly/amd/autogen/rdna4/ins.py b/extra/assembly/amd/autogen/rdna4/ins.py new file mode 100644 index 0000000000..13fe4e585c --- /dev/null +++ b/extra/assembly/amd/autogen/rdna4/ins.py @@ -0,0 +1,1425 @@ +# autogenerated from AMD RDNA4 ISA PDF by pdf.py - do not edit +# ruff: noqa: F401,F403 +from typing import Annotated +from extra.assembly.amd.dsl import bits, BitField, Inst32, Inst64, SGPR, VGPR, TTMP as TTMP, s as s, v as v, ttmp as ttmp, SSrc, Src, SImm, Imm, VDSTYEnc, SGPRField, VGPRField +from extra.assembly.amd.autogen.rdna4.enum import * +import functools + +# instruction formats +class DPP16(Inst64): + src0:Src = bits[39:32] + dpp_ctrl = bits[48:40] + fi = bits[50] + bc = bits[51] + src0_neg = bits[52] + src0_abs = bits[53] + src1_neg = bits[54] + src1_abs = bits[55] + bank_mask = bits[59:56] + row_mask = bits[63:60] + +class DPP8(Inst64): + src0:Src = bits[39:32] + lane_sel0 = bits[42:40] + lane_sel1 = bits[45:43] + lane_sel2 = bits[48:46] + lane_sel3 = bits[51:49] + lane_sel4 = bits[54:52] + lane_sel5 = bits[57:55] + lane_sel6 = bits[60:58] + lane_sel7 = bits[63:61] + +class SMEM(Inst64): + encoding = bits[31:26] == 0b111101 + op:Annotated[BitField, SMEMOp] = bits[18:13] + sdata:SGPRField = bits[12:6] + sbase:SGPRField = bits[5:0] + soffset:SSrc = bits[63:57] + scope = bits[22:21] + th = bits[24:23] + ioffset = bits[55:32] + +class SOP1(Inst32): + encoding = bits[31:23] == 0b101111101 + op:Annotated[BitField, SOP1Op] = bits[15:8] + sdst:SGPRField = bits[22:16] + ssrc0:SSrc = bits[7:0] + +class SOP2(Inst32): + encoding = bits[31:30] == 0b10 + op:Annotated[BitField, SOP2Op] = bits[29:23] + sdst:SGPRField = bits[22:16] + ssrc0:SSrc = bits[7:0] + ssrc1:SSrc = bits[15:8] + +class SOPC(Inst32): + encoding = bits[31:23] == 0b101111110 + op:Annotated[BitField, SOPCOp] = bits[22:16] + ssrc0:SSrc = bits[7:0] + ssrc1:SSrc = bits[15:8] + +class SOPK(Inst32): + encoding = bits[31:28] == 0b1011 + op:Annotated[BitField, SOPKOp] = bits[27:23] + sdst:SGPRField = bits[22:16] + simm16:SImm = bits[15:0] + +class SOPP(Inst32): + encoding = bits[31:23] == 0b101111111 + op:Annotated[BitField, SOPPOp] = bits[22:16] + simm16:SImm = bits[15:0] + +class VBUFFER(Inst64): + encoding = bits[31:26] == 0b110001 + soffset:SSrc = bits[6:0] + op:Annotated[BitField, VBUFFEROp] = bits[21:14] + tfe = bits[22] + vdata:VGPRField = bits[39:32] + rsrc = bits[49:41] + scope = bits[51:50] + th = bits[54:52] + format = bits[61:55] + offen = bits[62] + idxen = bits[63] + vaddr:VGPRField = bits[71:64] + ioffset = bits[95:72] + +class VDS(Inst64): + encoding = bits[31:26] == 0b110110 + offset0 = bits[7:0] + offset1 = bits[15:8] + op = bits[25:18] + addr:VGPRField = bits[39:32] + data0:VGPRField = bits[47:40] + data1:VGPRField = bits[55:48] + vdst:VGPRField = bits[63:56] + +class VDSDIR(Inst64): + encoding = bits[31:24] == 0b11001101 + vdst:VGPRField = bits[7:0] + waitexp = bits[10:8] + opsel = bits[14:11] + cm = bits[15] + op:Annotated[BitField, VDSDIROp] = bits[20:16] + src0:Src = bits[40:32] + src1:Src = bits[49:41] + src2:Src = bits[58:50] + neg = bits[63:61] + +class VEXPORT(Inst64): + encoding = bits[31:26] == 0b111110 + en = bits[3:0] + target = bits[9:4] + done = bits[11] + row = bits[13] + vsrc0 = bits[39:32] + vsrc1:VGPRField = bits[47:40] + vsrc2 = bits[55:48] + vsrc3 = bits[63:56] + +class VINTERP(Inst64): + encoding = bits[31:24] == 0b11001101 + op:Annotated[BitField, VINTERPOp] = bits[20:16] + vdst:VGPRField = bits[7:0] + src0:Src = bits[40:32] + src1:Src = bits[49:41] + src2:Src = bits[58:50] + waitexp = bits[10:8] + opsel = bits[14:11] + neg = bits[63:61] + cm = bits[15] + +class VOP1(Inst32): + encoding = bits[31:25] == 0b111111 + op:Annotated[BitField, VOP1Op] = bits[15:9] + vdst:VGPRField = bits[24:17] + src0:Src = bits[8:0] + +class VOP2(Inst32): + encoding = bits[31] == 0 + op:Annotated[BitField, VOP2Op] = bits[30:25] + vdst:VGPRField = bits[24:17] + src0:Src = bits[8:0] + vsrc1:VGPRField = bits[16:9] + +class VOP3(Inst64): + encoding = bits[31:26] == 0b110101 + op:Annotated[BitField, VOP3Op] = bits[25:16] + vdst:VGPRField = bits[7:0] + src0:Src = bits[40:32] + src1:Src = bits[49:41] + src2:Src = bits[58:50] + omod = bits[60:59] + neg = bits[63:61] + abs = bits[10:8] + opsel = bits[14:11] + cm = bits[15] + +class VOP3P(Inst64): + encoding = bits[31:24] == 0b11001100 + _defaults = {'opsel_hi': 3, 'opsel_hi2': 1} + op:Annotated[BitField, VOP3POp] = bits[22:16] + vdst:VGPRField = bits[7:0] + src0:Src = bits[40:32] + src1:Src = bits[49:41] + src2:Src = bits[58:50] + neg = bits[63:61] + neg_hi = bits[10:8] + opsel = bits[13:11] + opsel_hi = bits[60:59] + opsel_hi2 = bits[14] + cm = bits[15] + +class VOP3SD(Inst64): + encoding = bits[31:26] == 0b110101 + op:Annotated[BitField, VOP3SDOp] = bits[25:16] + vdst:VGPRField = bits[7:0] + sdst:SGPRField = bits[14:8] + src0:Src = bits[40:32] + src1:Src = bits[49:41] + src2:Src = bits[58:50] + cm = bits[15] + omod = bits[60:59] + neg = bits[63:61] + +class VOPC(Inst32): + encoding = bits[31:25] == 0b111110 + op:Annotated[BitField, VOPCOp] = bits[24:17] + src0:Src = bits[8:0] + vsrc1:VGPRField = bits[16:9] + +class VOPD(Inst64): + encoding = bits[31:26] == 0b110010 + opx:Annotated[BitField, VOPDOp] = bits[25:22] + opy:Annotated[BitField, VOPDOp] = bits[21:17] + vdstx:VGPRField = bits[63:56] + vdsty:VDSTYEnc = bits[55:49] + srcx0:Src = bits[8:0] + vsrcx1:VGPRField = bits[16:9] + srcy0:Src = bits[40:32] + vsrcy1:VGPRField = bits[48:41] + +# instruction helpers +s_load_b32 = functools.partial(SMEM, SMEMOp.S_LOAD_B32) +s_load_b64 = functools.partial(SMEM, SMEMOp.S_LOAD_B64) +s_load_b128 = functools.partial(SMEM, SMEMOp.S_LOAD_B128) +s_load_b256 = functools.partial(SMEM, SMEMOp.S_LOAD_B256) +s_load_b512 = functools.partial(SMEM, SMEMOp.S_LOAD_B512) +s_load_b96 = functools.partial(SMEM, SMEMOp.S_LOAD_B96) +s_load_i8 = functools.partial(SMEM, SMEMOp.S_LOAD_I8) +s_load_u8 = functools.partial(SMEM, SMEMOp.S_LOAD_U8) +s_load_i16 = functools.partial(SMEM, SMEMOp.S_LOAD_I16) +s_load_u16 = functools.partial(SMEM, SMEMOp.S_LOAD_U16) +s_buffer_load_b32 = functools.partial(SMEM, SMEMOp.S_BUFFER_LOAD_B32) +s_buffer_load_b64 = functools.partial(SMEM, SMEMOp.S_BUFFER_LOAD_B64) +s_buffer_load_b128 = functools.partial(SMEM, SMEMOp.S_BUFFER_LOAD_B128) +s_buffer_load_b256 = functools.partial(SMEM, SMEMOp.S_BUFFER_LOAD_B256) +s_buffer_load_b512 = functools.partial(SMEM, SMEMOp.S_BUFFER_LOAD_B512) +s_buffer_load_b96 = functools.partial(SMEM, SMEMOp.S_BUFFER_LOAD_B96) +s_buffer_load_i8 = functools.partial(SMEM, SMEMOp.S_BUFFER_LOAD_I8) +s_buffer_load_u8 = functools.partial(SMEM, SMEMOp.S_BUFFER_LOAD_U8) +s_buffer_load_i16 = functools.partial(SMEM, SMEMOp.S_BUFFER_LOAD_I16) +s_buffer_load_u16 = functools.partial(SMEM, SMEMOp.S_BUFFER_LOAD_U16) +s_dcache_inv = functools.partial(SMEM, SMEMOp.S_DCACHE_INV) +s_prefetch_inst = functools.partial(SMEM, SMEMOp.S_PREFETCH_INST) +s_prefetch_inst_pc_rel = functools.partial(SMEM, SMEMOp.S_PREFETCH_INST_PC_REL) +s_prefetch_data = functools.partial(SMEM, SMEMOp.S_PREFETCH_DATA) +s_buffer_prefetch_data = functools.partial(SMEM, SMEMOp.S_BUFFER_PREFETCH_DATA) +s_prefetch_data_pc_rel = functools.partial(SMEM, SMEMOp.S_PREFETCH_DATA_PC_REL) +s_mov_b32 = functools.partial(SOP1, SOP1Op.S_MOV_B32) +s_mov_b64 = functools.partial(SOP1, SOP1Op.S_MOV_B64) +s_cmov_b32 = functools.partial(SOP1, SOP1Op.S_CMOV_B32) +s_cmov_b64 = functools.partial(SOP1, SOP1Op.S_CMOV_B64) +s_brev_b32 = functools.partial(SOP1, SOP1Op.S_BREV_B32) +s_brev_b64 = functools.partial(SOP1, SOP1Op.S_BREV_B64) +s_ctz_i32_b32 = functools.partial(SOP1, SOP1Op.S_CTZ_I32_B32) +s_ctz_i32_b64 = functools.partial(SOP1, SOP1Op.S_CTZ_I32_B64) +s_clz_i32_u32 = functools.partial(SOP1, SOP1Op.S_CLZ_I32_U32) +s_clz_i32_u64 = functools.partial(SOP1, SOP1Op.S_CLZ_I32_U64) +s_cls_i32 = functools.partial(SOP1, SOP1Op.S_CLS_I32) +s_cls_i32_i64 = functools.partial(SOP1, SOP1Op.S_CLS_I32_I64) +s_sext_i32_i8 = functools.partial(SOP1, SOP1Op.S_SEXT_I32_I8) +s_sext_i32_i16 = functools.partial(SOP1, SOP1Op.S_SEXT_I32_I16) +s_bitset0_b32 = functools.partial(SOP1, SOP1Op.S_BITSET0_B32) +s_bitset0_b64 = functools.partial(SOP1, SOP1Op.S_BITSET0_B64) +s_bitset1_b32 = functools.partial(SOP1, SOP1Op.S_BITSET1_B32) +s_bitset1_b64 = functools.partial(SOP1, SOP1Op.S_BITSET1_B64) +s_bitreplicate_b64_b32 = functools.partial(SOP1, SOP1Op.S_BITREPLICATE_B64_B32) +s_abs_i32 = functools.partial(SOP1, SOP1Op.S_ABS_I32) +s_bcnt0_i32_b32 = functools.partial(SOP1, SOP1Op.S_BCNT0_I32_B32) +s_bcnt0_i32_b64 = functools.partial(SOP1, SOP1Op.S_BCNT0_I32_B64) +s_bcnt1_i32_b32 = functools.partial(SOP1, SOP1Op.S_BCNT1_I32_B32) +s_bcnt1_i32_b64 = functools.partial(SOP1, SOP1Op.S_BCNT1_I32_B64) +s_quadmask_b32 = functools.partial(SOP1, SOP1Op.S_QUADMASK_B32) +s_quadmask_b64 = functools.partial(SOP1, SOP1Op.S_QUADMASK_B64) +s_wqm_b32 = functools.partial(SOP1, SOP1Op.S_WQM_B32) +s_wqm_b64 = functools.partial(SOP1, SOP1Op.S_WQM_B64) +s_not_b32 = functools.partial(SOP1, SOP1Op.S_NOT_B32) +s_not_b64 = functools.partial(SOP1, SOP1Op.S_NOT_B64) +s_and_saveexec_b32 = functools.partial(SOP1, SOP1Op.S_AND_SAVEEXEC_B32) +s_and_saveexec_b64 = functools.partial(SOP1, SOP1Op.S_AND_SAVEEXEC_B64) +s_or_saveexec_b32 = functools.partial(SOP1, SOP1Op.S_OR_SAVEEXEC_B32) +s_or_saveexec_b64 = functools.partial(SOP1, SOP1Op.S_OR_SAVEEXEC_B64) +s_xor_saveexec_b32 = functools.partial(SOP1, SOP1Op.S_XOR_SAVEEXEC_B32) +s_xor_saveexec_b64 = functools.partial(SOP1, SOP1Op.S_XOR_SAVEEXEC_B64) +s_nand_saveexec_b32 = functools.partial(SOP1, SOP1Op.S_NAND_SAVEEXEC_B32) +s_nand_saveexec_b64 = functools.partial(SOP1, SOP1Op.S_NAND_SAVEEXEC_B64) +s_nor_saveexec_b32 = functools.partial(SOP1, SOP1Op.S_NOR_SAVEEXEC_B32) +s_nor_saveexec_b64 = functools.partial(SOP1, SOP1Op.S_NOR_SAVEEXEC_B64) +s_xnor_saveexec_b32 = functools.partial(SOP1, SOP1Op.S_XNOR_SAVEEXEC_B32) +s_xnor_saveexec_b64 = functools.partial(SOP1, SOP1Op.S_XNOR_SAVEEXEC_B64) +s_and_not0_saveexec_b32 = functools.partial(SOP1, SOP1Op.S_AND_NOT0_SAVEEXEC_B32) +s_and_not0_saveexec_b64 = functools.partial(SOP1, SOP1Op.S_AND_NOT0_SAVEEXEC_B64) +s_or_not0_saveexec_b32 = functools.partial(SOP1, SOP1Op.S_OR_NOT0_SAVEEXEC_B32) +s_or_not0_saveexec_b64 = functools.partial(SOP1, SOP1Op.S_OR_NOT0_SAVEEXEC_B64) +s_and_not1_saveexec_b32 = functools.partial(SOP1, SOP1Op.S_AND_NOT1_SAVEEXEC_B32) +s_and_not1_saveexec_b64 = functools.partial(SOP1, SOP1Op.S_AND_NOT1_SAVEEXEC_B64) +s_or_not1_saveexec_b32 = functools.partial(SOP1, SOP1Op.S_OR_NOT1_SAVEEXEC_B32) +s_or_not1_saveexec_b64 = functools.partial(SOP1, SOP1Op.S_OR_NOT1_SAVEEXEC_B64) +s_and_not0_wrexec_b32 = functools.partial(SOP1, SOP1Op.S_AND_NOT0_WREXEC_B32) +s_and_not0_wrexec_b64 = functools.partial(SOP1, SOP1Op.S_AND_NOT0_WREXEC_B64) +s_and_not1_wrexec_b32 = functools.partial(SOP1, SOP1Op.S_AND_NOT1_WREXEC_B32) +s_and_not1_wrexec_b64 = functools.partial(SOP1, SOP1Op.S_AND_NOT1_WREXEC_B64) +s_movrels_b32 = functools.partial(SOP1, SOP1Op.S_MOVRELS_B32) +s_movrels_b64 = functools.partial(SOP1, SOP1Op.S_MOVRELS_B64) +s_movreld_b32 = functools.partial(SOP1, SOP1Op.S_MOVRELD_B32) +s_movreld_b64 = functools.partial(SOP1, SOP1Op.S_MOVRELD_B64) +s_movrelsd_2_b32 = functools.partial(SOP1, SOP1Op.S_MOVRELSD_2_B32) +s_getpc_b64 = functools.partial(SOP1, SOP1Op.S_GETPC_B64) +s_setpc_b64 = functools.partial(SOP1, SOP1Op.S_SETPC_B64) +s_swappc_b64 = functools.partial(SOP1, SOP1Op.S_SWAPPC_B64) +s_rfe_b64 = functools.partial(SOP1, SOP1Op.S_RFE_B64) +s_sendmsg_rtn_b32 = functools.partial(SOP1, SOP1Op.S_SENDMSG_RTN_B32) +s_sendmsg_rtn_b64 = functools.partial(SOP1, SOP1Op.S_SENDMSG_RTN_B64) +s_barrier_signal = functools.partial(SOP1, SOP1Op.S_BARRIER_SIGNAL) +s_barrier_signal_isfirst = functools.partial(SOP1, SOP1Op.S_BARRIER_SIGNAL_ISFIRST) +s_get_barrier_state = functools.partial(SOP1, SOP1Op.S_GET_BARRIER_STATE) +s_alloc_vgpr = functools.partial(SOP1, SOP1Op.S_ALLOC_VGPR) +s_sleep_var = functools.partial(SOP1, SOP1Op.S_SLEEP_VAR) +s_ceil_f32 = functools.partial(SOP1, SOP1Op.S_CEIL_F32) +s_floor_f32 = functools.partial(SOP1, SOP1Op.S_FLOOR_F32) +s_trunc_f32 = functools.partial(SOP1, SOP1Op.S_TRUNC_F32) +s_rndne_f32 = functools.partial(SOP1, SOP1Op.S_RNDNE_F32) +s_cvt_f32_i32 = functools.partial(SOP1, SOP1Op.S_CVT_F32_I32) +s_cvt_f32_u32 = functools.partial(SOP1, SOP1Op.S_CVT_F32_U32) +s_cvt_i32_f32 = functools.partial(SOP1, SOP1Op.S_CVT_I32_F32) +s_cvt_u32_f32 = functools.partial(SOP1, SOP1Op.S_CVT_U32_F32) +s_cvt_f16_f32 = functools.partial(SOP1, SOP1Op.S_CVT_F16_F32) +s_cvt_f32_f16 = functools.partial(SOP1, SOP1Op.S_CVT_F32_F16) +s_cvt_hi_f32_f16 = functools.partial(SOP1, SOP1Op.S_CVT_HI_F32_F16) +s_ceil_f16 = functools.partial(SOP1, SOP1Op.S_CEIL_F16) +s_floor_f16 = functools.partial(SOP1, SOP1Op.S_FLOOR_F16) +s_trunc_f16 = functools.partial(SOP1, SOP1Op.S_TRUNC_F16) +s_rndne_f16 = functools.partial(SOP1, SOP1Op.S_RNDNE_F16) +s_add_co_u32 = functools.partial(SOP2, SOP2Op.S_ADD_CO_U32) +s_sub_co_u32 = functools.partial(SOP2, SOP2Op.S_SUB_CO_U32) +s_add_co_i32 = functools.partial(SOP2, SOP2Op.S_ADD_CO_I32) +s_sub_co_i32 = functools.partial(SOP2, SOP2Op.S_SUB_CO_I32) +s_add_co_ci_u32 = functools.partial(SOP2, SOP2Op.S_ADD_CO_CI_U32) +s_sub_co_ci_u32 = functools.partial(SOP2, SOP2Op.S_SUB_CO_CI_U32) +s_absdiff_i32 = functools.partial(SOP2, SOP2Op.S_ABSDIFF_I32) +s_lshl_b32 = functools.partial(SOP2, SOP2Op.S_LSHL_B32) +s_lshl_b64 = functools.partial(SOP2, SOP2Op.S_LSHL_B64) +s_lshr_b32 = functools.partial(SOP2, SOP2Op.S_LSHR_B32) +s_lshr_b64 = functools.partial(SOP2, SOP2Op.S_LSHR_B64) +s_ashr_i32 = functools.partial(SOP2, SOP2Op.S_ASHR_I32) +s_ashr_i64 = functools.partial(SOP2, SOP2Op.S_ASHR_I64) +s_lshl1_add_u32 = functools.partial(SOP2, SOP2Op.S_LSHL1_ADD_U32) +s_lshl2_add_u32 = functools.partial(SOP2, SOP2Op.S_LSHL2_ADD_U32) +s_lshl3_add_u32 = functools.partial(SOP2, SOP2Op.S_LSHL3_ADD_U32) +s_lshl4_add_u32 = functools.partial(SOP2, SOP2Op.S_LSHL4_ADD_U32) +s_min_i32 = functools.partial(SOP2, SOP2Op.S_MIN_I32) +s_min_u32 = functools.partial(SOP2, SOP2Op.S_MIN_U32) +s_max_i32 = functools.partial(SOP2, SOP2Op.S_MAX_I32) +s_max_u32 = functools.partial(SOP2, SOP2Op.S_MAX_U32) +s_and_b32 = functools.partial(SOP2, SOP2Op.S_AND_B32) +s_and_b64 = functools.partial(SOP2, SOP2Op.S_AND_B64) +s_or_b32 = functools.partial(SOP2, SOP2Op.S_OR_B32) +s_or_b64 = functools.partial(SOP2, SOP2Op.S_OR_B64) +s_xor_b32 = functools.partial(SOP2, SOP2Op.S_XOR_B32) +s_xor_b64 = functools.partial(SOP2, SOP2Op.S_XOR_B64) +s_nand_b32 = functools.partial(SOP2, SOP2Op.S_NAND_B32) +s_nand_b64 = functools.partial(SOP2, SOP2Op.S_NAND_B64) +s_nor_b32 = functools.partial(SOP2, SOP2Op.S_NOR_B32) +s_nor_b64 = functools.partial(SOP2, SOP2Op.S_NOR_B64) +s_xnor_b32 = functools.partial(SOP2, SOP2Op.S_XNOR_B32) +s_xnor_b64 = functools.partial(SOP2, SOP2Op.S_XNOR_B64) +s_and_not1_b32 = functools.partial(SOP2, SOP2Op.S_AND_NOT1_B32) +s_and_not1_b64 = functools.partial(SOP2, SOP2Op.S_AND_NOT1_B64) +s_or_not1_b32 = functools.partial(SOP2, SOP2Op.S_OR_NOT1_B32) +s_or_not1_b64 = functools.partial(SOP2, SOP2Op.S_OR_NOT1_B64) +s_bfe_u32 = functools.partial(SOP2, SOP2Op.S_BFE_U32) +s_bfe_i32 = functools.partial(SOP2, SOP2Op.S_BFE_I32) +s_bfe_u64 = functools.partial(SOP2, SOP2Op.S_BFE_U64) +s_bfe_i64 = functools.partial(SOP2, SOP2Op.S_BFE_I64) +s_bfm_b32 = functools.partial(SOP2, SOP2Op.S_BFM_B32) +s_bfm_b64 = functools.partial(SOP2, SOP2Op.S_BFM_B64) +s_mul_i32 = functools.partial(SOP2, SOP2Op.S_MUL_I32) +s_mul_hi_u32 = functools.partial(SOP2, SOP2Op.S_MUL_HI_U32) +s_mul_hi_i32 = functools.partial(SOP2, SOP2Op.S_MUL_HI_I32) +s_cselect_b32 = functools.partial(SOP2, SOP2Op.S_CSELECT_B32) +s_cselect_b64 = functools.partial(SOP2, SOP2Op.S_CSELECT_B64) +s_pack_ll_b32_b16 = functools.partial(SOP2, SOP2Op.S_PACK_LL_B32_B16) +s_pack_lh_b32_b16 = functools.partial(SOP2, SOP2Op.S_PACK_LH_B32_B16) +s_pack_hh_b32_b16 = functools.partial(SOP2, SOP2Op.S_PACK_HH_B32_B16) +s_pack_hl_b32_b16 = functools.partial(SOP2, SOP2Op.S_PACK_HL_B32_B16) +s_add_f32 = functools.partial(SOP2, SOP2Op.S_ADD_F32) +s_sub_f32 = functools.partial(SOP2, SOP2Op.S_SUB_F32) +s_min_num_f32 = functools.partial(SOP2, SOP2Op.S_MIN_NUM_F32) +s_max_num_f32 = functools.partial(SOP2, SOP2Op.S_MAX_NUM_F32) +s_mul_f32 = functools.partial(SOP2, SOP2Op.S_MUL_F32) +s_fmaak_f32 = functools.partial(SOP2, SOP2Op.S_FMAAK_F32) +s_fmamk_f32 = functools.partial(SOP2, SOP2Op.S_FMAMK_F32) +s_fmac_f32 = functools.partial(SOP2, SOP2Op.S_FMAC_F32) +s_cvt_pk_rtz_f16_f32 = functools.partial(SOP2, SOP2Op.S_CVT_PK_RTZ_F16_F32) +s_add_f16 = functools.partial(SOP2, SOP2Op.S_ADD_F16) +s_sub_f16 = functools.partial(SOP2, SOP2Op.S_SUB_F16) +s_min_num_f16 = functools.partial(SOP2, SOP2Op.S_MIN_NUM_F16) +s_max_num_f16 = functools.partial(SOP2, SOP2Op.S_MAX_NUM_F16) +s_mul_f16 = functools.partial(SOP2, SOP2Op.S_MUL_F16) +s_fmac_f16 = functools.partial(SOP2, SOP2Op.S_FMAC_F16) +s_minimum_f32 = functools.partial(SOP2, SOP2Op.S_MINIMUM_F32) +s_maximum_f32 = functools.partial(SOP2, SOP2Op.S_MAXIMUM_F32) +s_minimum_f16 = functools.partial(SOP2, SOP2Op.S_MINIMUM_F16) +s_maximum_f16 = functools.partial(SOP2, SOP2Op.S_MAXIMUM_F16) +s_add_nc_u64 = functools.partial(SOP2, SOP2Op.S_ADD_NC_U64) +s_sub_nc_u64 = functools.partial(SOP2, SOP2Op.S_SUB_NC_U64) +s_mul_u64 = functools.partial(SOP2, SOP2Op.S_MUL_U64) +s_cmp_eq_i32 = functools.partial(SOPC, SOPCOp.S_CMP_EQ_I32) +s_cmp_lg_i32 = functools.partial(SOPC, SOPCOp.S_CMP_LG_I32) +s_cmp_gt_i32 = functools.partial(SOPC, SOPCOp.S_CMP_GT_I32) +s_cmp_ge_i32 = functools.partial(SOPC, SOPCOp.S_CMP_GE_I32) +s_cmp_lt_i32 = functools.partial(SOPC, SOPCOp.S_CMP_LT_I32) +s_cmp_le_i32 = functools.partial(SOPC, SOPCOp.S_CMP_LE_I32) +s_cmp_eq_u32 = functools.partial(SOPC, SOPCOp.S_CMP_EQ_U32) +s_cmp_lg_u32 = functools.partial(SOPC, SOPCOp.S_CMP_LG_U32) +s_cmp_gt_u32 = functools.partial(SOPC, SOPCOp.S_CMP_GT_U32) +s_cmp_ge_u32 = functools.partial(SOPC, SOPCOp.S_CMP_GE_U32) +s_cmp_lt_u32 = functools.partial(SOPC, SOPCOp.S_CMP_LT_U32) +s_cmp_le_u32 = functools.partial(SOPC, SOPCOp.S_CMP_LE_U32) +s_bitcmp0_b32 = functools.partial(SOPC, SOPCOp.S_BITCMP0_B32) +s_bitcmp1_b32 = functools.partial(SOPC, SOPCOp.S_BITCMP1_B32) +s_bitcmp0_b64 = functools.partial(SOPC, SOPCOp.S_BITCMP0_B64) +s_bitcmp1_b64 = functools.partial(SOPC, SOPCOp.S_BITCMP1_B64) +s_cmp_eq_u64 = functools.partial(SOPC, SOPCOp.S_CMP_EQ_U64) +s_cmp_lg_u64 = functools.partial(SOPC, SOPCOp.S_CMP_LG_U64) +s_cmp_lt_f32 = functools.partial(SOPC, SOPCOp.S_CMP_LT_F32) +s_cmp_eq_f32 = functools.partial(SOPC, SOPCOp.S_CMP_EQ_F32) +s_cmp_le_f32 = functools.partial(SOPC, SOPCOp.S_CMP_LE_F32) +s_cmp_gt_f32 = functools.partial(SOPC, SOPCOp.S_CMP_GT_F32) +s_cmp_lg_f32 = functools.partial(SOPC, SOPCOp.S_CMP_LG_F32) +s_cmp_ge_f32 = functools.partial(SOPC, SOPCOp.S_CMP_GE_F32) +s_cmp_o_f32 = functools.partial(SOPC, SOPCOp.S_CMP_O_F32) +s_cmp_u_f32 = functools.partial(SOPC, SOPCOp.S_CMP_U_F32) +s_cmp_nge_f32 = functools.partial(SOPC, SOPCOp.S_CMP_NGE_F32) +s_cmp_nlg_f32 = functools.partial(SOPC, SOPCOp.S_CMP_NLG_F32) +s_cmp_ngt_f32 = functools.partial(SOPC, SOPCOp.S_CMP_NGT_F32) +s_cmp_nle_f32 = functools.partial(SOPC, SOPCOp.S_CMP_NLE_F32) +s_cmp_neq_f32 = functools.partial(SOPC, SOPCOp.S_CMP_NEQ_F32) +s_cmp_nlt_f32 = functools.partial(SOPC, SOPCOp.S_CMP_NLT_F32) +s_cmp_lt_f16 = functools.partial(SOPC, SOPCOp.S_CMP_LT_F16) +s_cmp_eq_f16 = functools.partial(SOPC, SOPCOp.S_CMP_EQ_F16) +s_cmp_le_f16 = functools.partial(SOPC, SOPCOp.S_CMP_LE_F16) +s_cmp_gt_f16 = functools.partial(SOPC, SOPCOp.S_CMP_GT_F16) +s_cmp_lg_f16 = functools.partial(SOPC, SOPCOp.S_CMP_LG_F16) +s_cmp_ge_f16 = functools.partial(SOPC, SOPCOp.S_CMP_GE_F16) +s_cmp_o_f16 = functools.partial(SOPC, SOPCOp.S_CMP_O_F16) +s_cmp_u_f16 = functools.partial(SOPC, SOPCOp.S_CMP_U_F16) +s_cmp_nge_f16 = functools.partial(SOPC, SOPCOp.S_CMP_NGE_F16) +s_cmp_nlg_f16 = functools.partial(SOPC, SOPCOp.S_CMP_NLG_F16) +s_cmp_ngt_f16 = functools.partial(SOPC, SOPCOp.S_CMP_NGT_F16) +s_cmp_nle_f16 = functools.partial(SOPC, SOPCOp.S_CMP_NLE_F16) +s_cmp_neq_f16 = functools.partial(SOPC, SOPCOp.S_CMP_NEQ_F16) +s_cmp_nlt_f16 = functools.partial(SOPC, SOPCOp.S_CMP_NLT_F16) +s_movk_i32 = functools.partial(SOPK, SOPKOp.S_MOVK_I32) +s_version = functools.partial(SOPK, SOPKOp.S_VERSION) +s_cmovk_i32 = functools.partial(SOPK, SOPKOp.S_CMOVK_I32) +s_addk_co_i32 = functools.partial(SOPK, SOPKOp.S_ADDK_CO_I32) +s_mulk_i32 = functools.partial(SOPK, SOPKOp.S_MULK_I32) +s_getreg_b32 = functools.partial(SOPK, SOPKOp.S_GETREG_B32) +s_setreg_b32 = functools.partial(SOPK, SOPKOp.S_SETREG_B32) +s_setreg_imm32_b32 = functools.partial(SOPK, SOPKOp.S_SETREG_IMM32_B32) +s_call_b64 = functools.partial(SOPK, SOPKOp.S_CALL_B64) +s_nop = functools.partial(SOPP, SOPPOp.S_NOP) +s_setkill = functools.partial(SOPP, SOPPOp.S_SETKILL) +s_sethalt = functools.partial(SOPP, SOPPOp.S_SETHALT) +s_sleep = functools.partial(SOPP, SOPPOp.S_SLEEP) +s_clause = functools.partial(SOPP, SOPPOp.S_CLAUSE) +s_delay_alu = functools.partial(SOPP, SOPPOp.S_DELAY_ALU) +s_wait_alu = functools.partial(SOPP, SOPPOp.S_WAIT_ALU) +s_waitcnt = functools.partial(SOPP, SOPPOp.S_WAITCNT) +s_wait_idle = functools.partial(SOPP, SOPPOp.S_WAIT_IDLE) +s_wait_event = functools.partial(SOPP, SOPPOp.S_WAIT_EVENT) +s_trap = functools.partial(SOPP, SOPPOp.S_TRAP) +s_round_mode = functools.partial(SOPP, SOPPOp.S_ROUND_MODE) +s_denorm_mode = functools.partial(SOPP, SOPPOp.S_DENORM_MODE) +s_barrier_wait = functools.partial(SOPP, SOPPOp.S_BARRIER_WAIT) +s_code_end = functools.partial(SOPP, SOPPOp.S_CODE_END) +s_branch = functools.partial(SOPP, SOPPOp.S_BRANCH) +s_cbranch_scc0 = functools.partial(SOPP, SOPPOp.S_CBRANCH_SCC0) +s_cbranch_scc1 = functools.partial(SOPP, SOPPOp.S_CBRANCH_SCC1) +s_cbranch_vccz = functools.partial(SOPP, SOPPOp.S_CBRANCH_VCCZ) +s_cbranch_vccnz = functools.partial(SOPP, SOPPOp.S_CBRANCH_VCCNZ) +s_cbranch_execz = functools.partial(SOPP, SOPPOp.S_CBRANCH_EXECZ) +s_cbranch_execnz = functools.partial(SOPP, SOPPOp.S_CBRANCH_EXECNZ) +s_endpgm = functools.partial(SOPP, SOPPOp.S_ENDPGM) +s_endpgm_saved = functools.partial(SOPP, SOPPOp.S_ENDPGM_SAVED) +s_wakeup = functools.partial(SOPP, SOPPOp.S_WAKEUP) +s_setprio = functools.partial(SOPP, SOPPOp.S_SETPRIO) +s_sendmsg = functools.partial(SOPP, SOPPOp.S_SENDMSG) +s_sendmsghalt = functools.partial(SOPP, SOPPOp.S_SENDMSGHALT) +s_incperflevel = functools.partial(SOPP, SOPPOp.S_INCPERFLEVEL) +s_decperflevel = functools.partial(SOPP, SOPPOp.S_DECPERFLEVEL) +s_icache_inv = functools.partial(SOPP, SOPPOp.S_ICACHE_INV) +s_wait_loadcnt = functools.partial(SOPP, SOPPOp.S_WAIT_LOADCNT) +s_wait_storecnt = functools.partial(SOPP, SOPPOp.S_WAIT_STORECNT) +s_wait_samplecnt = functools.partial(SOPP, SOPPOp.S_WAIT_SAMPLECNT) +s_wait_bvhcnt = functools.partial(SOPP, SOPPOp.S_WAIT_BVHCNT) +s_wait_expcnt = functools.partial(SOPP, SOPPOp.S_WAIT_EXPCNT) +s_wait_dscnt = functools.partial(SOPP, SOPPOp.S_WAIT_DSCNT) +s_wait_kmcnt = functools.partial(SOPP, SOPPOp.S_WAIT_KMCNT) +s_wait_loadcnt_dscnt = functools.partial(SOPP, SOPPOp.S_WAIT_LOADCNT_DSCNT) +s_wait_storecnt_dscnt = functools.partial(SOPP, SOPPOp.S_WAIT_STORECNT_DSCNT) +buffer_load_format_x = functools.partial(VBUFFER, VBUFFEROp.BUFFER_LOAD_FORMAT_X) +buffer_load_format_xy = functools.partial(VBUFFER, VBUFFEROp.BUFFER_LOAD_FORMAT_XY) +buffer_load_format_xyz = functools.partial(VBUFFER, VBUFFEROp.BUFFER_LOAD_FORMAT_XYZ) +buffer_load_format_xyzw = functools.partial(VBUFFER, VBUFFEROp.BUFFER_LOAD_FORMAT_XYZW) +buffer_store_format_x = functools.partial(VBUFFER, VBUFFEROp.BUFFER_STORE_FORMAT_X) +buffer_store_format_xy = functools.partial(VBUFFER, VBUFFEROp.BUFFER_STORE_FORMAT_XY) +buffer_store_format_xyz = functools.partial(VBUFFER, VBUFFEROp.BUFFER_STORE_FORMAT_XYZ) +buffer_store_format_xyzw = functools.partial(VBUFFER, VBUFFEROp.BUFFER_STORE_FORMAT_XYZW) +buffer_load_d16_format_x = functools.partial(VBUFFER, VBUFFEROp.BUFFER_LOAD_D16_FORMAT_X) +buffer_load_d16_format_xy = functools.partial(VBUFFER, VBUFFEROp.BUFFER_LOAD_D16_FORMAT_XY) +buffer_load_d16_format_xyz = functools.partial(VBUFFER, VBUFFEROp.BUFFER_LOAD_D16_FORMAT_XYZ) +buffer_load_d16_format_xyzw = functools.partial(VBUFFER, VBUFFEROp.BUFFER_LOAD_D16_FORMAT_XYZW) +buffer_store_d16_format_x = functools.partial(VBUFFER, VBUFFEROp.BUFFER_STORE_D16_FORMAT_X) +buffer_store_d16_format_xy = functools.partial(VBUFFER, VBUFFEROp.BUFFER_STORE_D16_FORMAT_XY) +buffer_store_d16_format_xyz = functools.partial(VBUFFER, VBUFFEROp.BUFFER_STORE_D16_FORMAT_XYZ) +buffer_store_d16_format_xyzw = functools.partial(VBUFFER, VBUFFEROp.BUFFER_STORE_D16_FORMAT_XYZW) +buffer_load_u8 = functools.partial(VBUFFER, VBUFFEROp.BUFFER_LOAD_U8) +buffer_load_i8 = functools.partial(VBUFFER, VBUFFEROp.BUFFER_LOAD_I8) +buffer_load_u16 = functools.partial(VBUFFER, VBUFFEROp.BUFFER_LOAD_U16) +buffer_load_i16 = functools.partial(VBUFFER, VBUFFEROp.BUFFER_LOAD_I16) +buffer_load_b32 = functools.partial(VBUFFER, VBUFFEROp.BUFFER_LOAD_B32) +buffer_load_b64 = functools.partial(VBUFFER, VBUFFEROp.BUFFER_LOAD_B64) +buffer_load_b96 = functools.partial(VBUFFER, VBUFFEROp.BUFFER_LOAD_B96) +buffer_load_b128 = functools.partial(VBUFFER, VBUFFEROp.BUFFER_LOAD_B128) +buffer_store_b8 = functools.partial(VBUFFER, VBUFFEROp.BUFFER_STORE_B8) +buffer_store_b16 = functools.partial(VBUFFER, VBUFFEROp.BUFFER_STORE_B16) +buffer_store_b32 = functools.partial(VBUFFER, VBUFFEROp.BUFFER_STORE_B32) +buffer_store_b64 = functools.partial(VBUFFER, VBUFFEROp.BUFFER_STORE_B64) +buffer_store_b96 = functools.partial(VBUFFER, VBUFFEROp.BUFFER_STORE_B96) +buffer_store_b128 = functools.partial(VBUFFER, VBUFFEROp.BUFFER_STORE_B128) +buffer_load_d16_u8 = functools.partial(VBUFFER, VBUFFEROp.BUFFER_LOAD_D16_U8) +buffer_load_d16_i8 = functools.partial(VBUFFER, VBUFFEROp.BUFFER_LOAD_D16_I8) +buffer_load_d16_b16 = functools.partial(VBUFFER, VBUFFEROp.BUFFER_LOAD_D16_B16) +buffer_load_d16_hi_u8 = functools.partial(VBUFFER, VBUFFEROp.BUFFER_LOAD_D16_HI_U8) +buffer_load_d16_hi_i8 = functools.partial(VBUFFER, VBUFFEROp.BUFFER_LOAD_D16_HI_I8) +buffer_load_d16_hi_b16 = functools.partial(VBUFFER, VBUFFEROp.BUFFER_LOAD_D16_HI_B16) +buffer_store_d16_hi_b8 = functools.partial(VBUFFER, VBUFFEROp.BUFFER_STORE_D16_HI_B8) +buffer_store_d16_hi_b16 = functools.partial(VBUFFER, VBUFFEROp.BUFFER_STORE_D16_HI_B16) +buffer_load_d16_hi_format_x = functools.partial(VBUFFER, VBUFFEROp.BUFFER_LOAD_D16_HI_FORMAT_X) +buffer_store_d16_hi_format_x = functools.partial(VBUFFER, VBUFFEROp.BUFFER_STORE_D16_HI_FORMAT_X) +buffer_atomic_swap_b32 = functools.partial(VBUFFER, VBUFFEROp.BUFFER_ATOMIC_SWAP_B32) +buffer_atomic_cmpswap_b32 = functools.partial(VBUFFER, VBUFFEROp.BUFFER_ATOMIC_CMPSWAP_B32) +buffer_atomic_add_u32 = functools.partial(VBUFFER, VBUFFEROp.BUFFER_ATOMIC_ADD_U32) +buffer_atomic_sub_u32 = functools.partial(VBUFFER, VBUFFEROp.BUFFER_ATOMIC_SUB_U32) +buffer_atomic_sub_clamp_u32 = functools.partial(VBUFFER, VBUFFEROp.BUFFER_ATOMIC_SUB_CLAMP_U32) +buffer_atomic_min_i32 = functools.partial(VBUFFER, VBUFFEROp.BUFFER_ATOMIC_MIN_I32) +buffer_atomic_min_u32 = functools.partial(VBUFFER, VBUFFEROp.BUFFER_ATOMIC_MIN_U32) +buffer_atomic_max_i32 = functools.partial(VBUFFER, VBUFFEROp.BUFFER_ATOMIC_MAX_I32) +buffer_atomic_max_u32 = functools.partial(VBUFFER, VBUFFEROp.BUFFER_ATOMIC_MAX_U32) +buffer_atomic_and_b32 = functools.partial(VBUFFER, VBUFFEROp.BUFFER_ATOMIC_AND_B32) +buffer_atomic_or_b32 = functools.partial(VBUFFER, VBUFFEROp.BUFFER_ATOMIC_OR_B32) +buffer_atomic_xor_b32 = functools.partial(VBUFFER, VBUFFEROp.BUFFER_ATOMIC_XOR_B32) +buffer_atomic_inc_u32 = functools.partial(VBUFFER, VBUFFEROp.BUFFER_ATOMIC_INC_U32) +buffer_atomic_dec_u32 = functools.partial(VBUFFER, VBUFFEROp.BUFFER_ATOMIC_DEC_U32) +buffer_atomic_swap_b64 = functools.partial(VBUFFER, VBUFFEROp.BUFFER_ATOMIC_SWAP_B64) +buffer_atomic_cmpswap_b64 = functools.partial(VBUFFER, VBUFFEROp.BUFFER_ATOMIC_CMPSWAP_B64) +buffer_atomic_add_u64 = functools.partial(VBUFFER, VBUFFEROp.BUFFER_ATOMIC_ADD_U64) +buffer_atomic_sub_u64 = functools.partial(VBUFFER, VBUFFEROp.BUFFER_ATOMIC_SUB_U64) +buffer_atomic_min_i64 = functools.partial(VBUFFER, VBUFFEROp.BUFFER_ATOMIC_MIN_I64) +buffer_atomic_min_u64 = functools.partial(VBUFFER, VBUFFEROp.BUFFER_ATOMIC_MIN_U64) +buffer_atomic_max_i64 = functools.partial(VBUFFER, VBUFFEROp.BUFFER_ATOMIC_MAX_I64) +buffer_atomic_max_u64 = functools.partial(VBUFFER, VBUFFEROp.BUFFER_ATOMIC_MAX_U64) +buffer_atomic_and_b64 = functools.partial(VBUFFER, VBUFFEROp.BUFFER_ATOMIC_AND_B64) +buffer_atomic_or_b64 = functools.partial(VBUFFER, VBUFFEROp.BUFFER_ATOMIC_OR_B64) +buffer_atomic_xor_b64 = functools.partial(VBUFFER, VBUFFEROp.BUFFER_ATOMIC_XOR_B64) +buffer_atomic_inc_u64 = functools.partial(VBUFFER, VBUFFEROp.BUFFER_ATOMIC_INC_U64) +buffer_atomic_dec_u64 = functools.partial(VBUFFER, VBUFFEROp.BUFFER_ATOMIC_DEC_U64) +buffer_atomic_cond_sub_u32 = functools.partial(VBUFFER, VBUFFEROp.BUFFER_ATOMIC_COND_SUB_U32) +buffer_atomic_min_num_f32 = functools.partial(VBUFFER, VBUFFEROp.BUFFER_ATOMIC_MIN_NUM_F32) +buffer_atomic_max_num_f32 = functools.partial(VBUFFER, VBUFFEROp.BUFFER_ATOMIC_MAX_NUM_F32) +buffer_atomic_add_f32 = functools.partial(VBUFFER, VBUFFEROp.BUFFER_ATOMIC_ADD_F32) +buffer_atomic_pk_add_f16 = functools.partial(VBUFFER, VBUFFEROp.BUFFER_ATOMIC_PK_ADD_F16) +buffer_atomic_pk_add_bf16 = functools.partial(VBUFFER, VBUFFEROp.BUFFER_ATOMIC_PK_ADD_BF16) +tbuffer_load_format_x = functools.partial(VBUFFER, VBUFFEROp.TBUFFER_LOAD_FORMAT_X) +tbuffer_load_format_xy = functools.partial(VBUFFER, VBUFFEROp.TBUFFER_LOAD_FORMAT_XY) +tbuffer_load_format_xyz = functools.partial(VBUFFER, VBUFFEROp.TBUFFER_LOAD_FORMAT_XYZ) +tbuffer_load_format_xyzw = functools.partial(VBUFFER, VBUFFEROp.TBUFFER_LOAD_FORMAT_XYZW) +tbuffer_store_format_x = functools.partial(VBUFFER, VBUFFEROp.TBUFFER_STORE_FORMAT_X) +tbuffer_store_format_xy = functools.partial(VBUFFER, VBUFFEROp.TBUFFER_STORE_FORMAT_XY) +tbuffer_store_format_xyz = functools.partial(VBUFFER, VBUFFEROp.TBUFFER_STORE_FORMAT_XYZ) +tbuffer_store_format_xyzw = functools.partial(VBUFFER, VBUFFEROp.TBUFFER_STORE_FORMAT_XYZW) +tbuffer_load_d16_format_x = functools.partial(VBUFFER, VBUFFEROp.TBUFFER_LOAD_D16_FORMAT_X) +tbuffer_load_d16_format_xy = functools.partial(VBUFFER, VBUFFEROp.TBUFFER_LOAD_D16_FORMAT_XY) +tbuffer_load_d16_format_xyz = functools.partial(VBUFFER, VBUFFEROp.TBUFFER_LOAD_D16_FORMAT_XYZ) +tbuffer_load_d16_format_xyzw = functools.partial(VBUFFER, VBUFFEROp.TBUFFER_LOAD_D16_FORMAT_XYZW) +tbuffer_store_d16_format_x = functools.partial(VBUFFER, VBUFFEROp.TBUFFER_STORE_D16_FORMAT_X) +tbuffer_store_d16_format_xy = functools.partial(VBUFFER, VBUFFEROp.TBUFFER_STORE_D16_FORMAT_XY) +tbuffer_store_d16_format_xyz = functools.partial(VBUFFER, VBUFFEROp.TBUFFER_STORE_D16_FORMAT_XYZ) +tbuffer_store_d16_format_xyzw = functools.partial(VBUFFER, VBUFFEROp.TBUFFER_STORE_D16_FORMAT_XYZW) +ds_param_load = functools.partial(VDSDIR, VDSDIROp.DS_PARAM_LOAD) +ds_direct_load = functools.partial(VDSDIR, VDSDIROp.DS_DIRECT_LOAD) +v_interp_p10_f32 = functools.partial(VINTERP, VINTERPOp.V_INTERP_P10_F32) +v_interp_p2_f32 = functools.partial(VINTERP, VINTERPOp.V_INTERP_P2_F32) +v_interp_p10_f16_f32 = functools.partial(VINTERP, VINTERPOp.V_INTERP_P10_F16_F32) +v_interp_p2_f16_f32 = functools.partial(VINTERP, VINTERPOp.V_INTERP_P2_F16_F32) +v_interp_p10_rtz_f16_f32 = functools.partial(VINTERP, VINTERPOp.V_INTERP_P10_RTZ_F16_F32) +v_interp_p2_rtz_f16_f32 = functools.partial(VINTERP, VINTERPOp.V_INTERP_P2_RTZ_F16_F32) +v_nop_e32 = functools.partial(VOP1, VOP1Op.V_NOP) +v_mov_b32_e32 = functools.partial(VOP1, VOP1Op.V_MOV_B32) +v_readfirstlane_b32_e32 = functools.partial(VOP1, VOP1Op.V_READFIRSTLANE_B32) +v_cvt_i32_f64_e32 = functools.partial(VOP1, VOP1Op.V_CVT_I32_F64) +v_cvt_f64_i32_e32 = functools.partial(VOP1, VOP1Op.V_CVT_F64_I32) +v_cvt_f32_i32_e32 = functools.partial(VOP1, VOP1Op.V_CVT_F32_I32) +v_cvt_f32_u32_e32 = functools.partial(VOP1, VOP1Op.V_CVT_F32_U32) +v_cvt_u32_f32_e32 = functools.partial(VOP1, VOP1Op.V_CVT_U32_F32) +v_cvt_i32_f32_e32 = functools.partial(VOP1, VOP1Op.V_CVT_I32_F32) +v_cvt_f16_f32_e32 = functools.partial(VOP1, VOP1Op.V_CVT_F16_F32) +v_cvt_f32_f16_e32 = functools.partial(VOP1, VOP1Op.V_CVT_F32_F16) +v_cvt_nearest_i32_f32_e32 = functools.partial(VOP1, VOP1Op.V_CVT_NEAREST_I32_F32) +v_cvt_floor_i32_f32_e32 = functools.partial(VOP1, VOP1Op.V_CVT_FLOOR_I32_F32) +v_cvt_off_f32_i4_e32 = functools.partial(VOP1, VOP1Op.V_CVT_OFF_F32_I4) +v_cvt_f32_f64_e32 = functools.partial(VOP1, VOP1Op.V_CVT_F32_F64) +v_cvt_f64_f32_e32 = functools.partial(VOP1, VOP1Op.V_CVT_F64_F32) +v_cvt_f32_ubyte0_e32 = functools.partial(VOP1, VOP1Op.V_CVT_F32_UBYTE0) +v_cvt_f32_ubyte1_e32 = functools.partial(VOP1, VOP1Op.V_CVT_F32_UBYTE1) +v_cvt_f32_ubyte2_e32 = functools.partial(VOP1, VOP1Op.V_CVT_F32_UBYTE2) +v_cvt_f32_ubyte3_e32 = functools.partial(VOP1, VOP1Op.V_CVT_F32_UBYTE3) +v_cvt_u32_f64_e32 = functools.partial(VOP1, VOP1Op.V_CVT_U32_F64) +v_cvt_f64_u32_e32 = functools.partial(VOP1, VOP1Op.V_CVT_F64_U32) +v_trunc_f64_e32 = functools.partial(VOP1, VOP1Op.V_TRUNC_F64) +v_ceil_f64_e32 = functools.partial(VOP1, VOP1Op.V_CEIL_F64) +v_rndne_f64_e32 = functools.partial(VOP1, VOP1Op.V_RNDNE_F64) +v_floor_f64_e32 = functools.partial(VOP1, VOP1Op.V_FLOOR_F64) +v_pipeflush_e32 = functools.partial(VOP1, VOP1Op.V_PIPEFLUSH) +v_mov_b16_e32 = functools.partial(VOP1, VOP1Op.V_MOV_B16) +v_fract_f32_e32 = functools.partial(VOP1, VOP1Op.V_FRACT_F32) +v_trunc_f32_e32 = functools.partial(VOP1, VOP1Op.V_TRUNC_F32) +v_ceil_f32_e32 = functools.partial(VOP1, VOP1Op.V_CEIL_F32) +v_rndne_f32_e32 = functools.partial(VOP1, VOP1Op.V_RNDNE_F32) +v_floor_f32_e32 = functools.partial(VOP1, VOP1Op.V_FLOOR_F32) +v_exp_f32_e32 = functools.partial(VOP1, VOP1Op.V_EXP_F32) +v_log_f32_e32 = functools.partial(VOP1, VOP1Op.V_LOG_F32) +v_rcp_f32_e32 = functools.partial(VOP1, VOP1Op.V_RCP_F32) +v_rcp_iflag_f32_e32 = functools.partial(VOP1, VOP1Op.V_RCP_IFLAG_F32) +v_rsq_f32_e32 = functools.partial(VOP1, VOP1Op.V_RSQ_F32) +v_rcp_f64_e32 = functools.partial(VOP1, VOP1Op.V_RCP_F64) +v_rsq_f64_e32 = functools.partial(VOP1, VOP1Op.V_RSQ_F64) +v_sqrt_f32_e32 = functools.partial(VOP1, VOP1Op.V_SQRT_F32) +v_sqrt_f64_e32 = functools.partial(VOP1, VOP1Op.V_SQRT_F64) +v_sin_f32_e32 = functools.partial(VOP1, VOP1Op.V_SIN_F32) +v_cos_f32_e32 = functools.partial(VOP1, VOP1Op.V_COS_F32) +v_not_b32_e32 = functools.partial(VOP1, VOP1Op.V_NOT_B32) +v_bfrev_b32_e32 = functools.partial(VOP1, VOP1Op.V_BFREV_B32) +v_clz_i32_u32_e32 = functools.partial(VOP1, VOP1Op.V_CLZ_I32_U32) +v_ctz_i32_b32_e32 = functools.partial(VOP1, VOP1Op.V_CTZ_I32_B32) +v_cls_i32_e32 = functools.partial(VOP1, VOP1Op.V_CLS_I32) +v_frexp_exp_i32_f64_e32 = functools.partial(VOP1, VOP1Op.V_FREXP_EXP_I32_F64) +v_frexp_mant_f64_e32 = functools.partial(VOP1, VOP1Op.V_FREXP_MANT_F64) +v_fract_f64_e32 = functools.partial(VOP1, VOP1Op.V_FRACT_F64) +v_frexp_exp_i32_f32_e32 = functools.partial(VOP1, VOP1Op.V_FREXP_EXP_I32_F32) +v_frexp_mant_f32_e32 = functools.partial(VOP1, VOP1Op.V_FREXP_MANT_F32) +v_movreld_b32_e32 = functools.partial(VOP1, VOP1Op.V_MOVRELD_B32) +v_movrels_b32_e32 = functools.partial(VOP1, VOP1Op.V_MOVRELS_B32) +v_movrelsd_b32_e32 = functools.partial(VOP1, VOP1Op.V_MOVRELSD_B32) +v_movrelsd_2_b32_e32 = functools.partial(VOP1, VOP1Op.V_MOVRELSD_2_B32) +v_cvt_f16_u16_e32 = functools.partial(VOP1, VOP1Op.V_CVT_F16_U16) +v_cvt_f16_i16_e32 = functools.partial(VOP1, VOP1Op.V_CVT_F16_I16) +v_cvt_u16_f16_e32 = functools.partial(VOP1, VOP1Op.V_CVT_U16_F16) +v_cvt_i16_f16_e32 = functools.partial(VOP1, VOP1Op.V_CVT_I16_F16) +v_rcp_f16_e32 = functools.partial(VOP1, VOP1Op.V_RCP_F16) +v_sqrt_f16_e32 = functools.partial(VOP1, VOP1Op.V_SQRT_F16) +v_rsq_f16_e32 = functools.partial(VOP1, VOP1Op.V_RSQ_F16) +v_log_f16_e32 = functools.partial(VOP1, VOP1Op.V_LOG_F16) +v_exp_f16_e32 = functools.partial(VOP1, VOP1Op.V_EXP_F16) +v_frexp_mant_f16_e32 = functools.partial(VOP1, VOP1Op.V_FREXP_MANT_F16) +v_frexp_exp_i16_f16_e32 = functools.partial(VOP1, VOP1Op.V_FREXP_EXP_I16_F16) +v_floor_f16_e32 = functools.partial(VOP1, VOP1Op.V_FLOOR_F16) +v_ceil_f16_e32 = functools.partial(VOP1, VOP1Op.V_CEIL_F16) +v_trunc_f16_e32 = functools.partial(VOP1, VOP1Op.V_TRUNC_F16) +v_rndne_f16_e32 = functools.partial(VOP1, VOP1Op.V_RNDNE_F16) +v_fract_f16_e32 = functools.partial(VOP1, VOP1Op.V_FRACT_F16) +v_sin_f16_e32 = functools.partial(VOP1, VOP1Op.V_SIN_F16) +v_cos_f16_e32 = functools.partial(VOP1, VOP1Op.V_COS_F16) +v_sat_pk_u8_i16_e32 = functools.partial(VOP1, VOP1Op.V_SAT_PK_U8_I16) +v_cvt_norm_i16_f16_e32 = functools.partial(VOP1, VOP1Op.V_CVT_NORM_I16_F16) +v_cvt_norm_u16_f16_e32 = functools.partial(VOP1, VOP1Op.V_CVT_NORM_U16_F16) +v_swap_b32_e32 = functools.partial(VOP1, VOP1Op.V_SWAP_B32) +v_swap_b16_e32 = functools.partial(VOP1, VOP1Op.V_SWAP_B16) +v_permlane64_b32_e32 = functools.partial(VOP1, VOP1Op.V_PERMLANE64_B32) +v_swaprel_b32_e32 = functools.partial(VOP1, VOP1Op.V_SWAPREL_B32) +v_not_b16_e32 = functools.partial(VOP1, VOP1Op.V_NOT_B16) +v_cvt_i32_i16_e32 = functools.partial(VOP1, VOP1Op.V_CVT_I32_I16) +v_cvt_u32_u16_e32 = functools.partial(VOP1, VOP1Op.V_CVT_U32_U16) +v_cvt_f32_fp8_e32 = functools.partial(VOP1, VOP1Op.V_CVT_F32_FP8) +v_cvt_f32_bf8_e32 = functools.partial(VOP1, VOP1Op.V_CVT_F32_BF8) +v_cvt_pk_f32_fp8_e32 = functools.partial(VOP1, VOP1Op.V_CVT_PK_F32_FP8) +v_cvt_pk_f32_bf8_e32 = functools.partial(VOP1, VOP1Op.V_CVT_PK_F32_BF8) +v_cndmask_b32_e32 = functools.partial(VOP2, VOP2Op.V_CNDMASK_B32) +v_add_f64_e32 = functools.partial(VOP2, VOP2Op.V_ADD_F64) +v_add_f32_e32 = functools.partial(VOP2, VOP2Op.V_ADD_F32) +v_sub_f32_e32 = functools.partial(VOP2, VOP2Op.V_SUB_F32) +v_subrev_f32_e32 = functools.partial(VOP2, VOP2Op.V_SUBREV_F32) +v_mul_f64_e32 = functools.partial(VOP2, VOP2Op.V_MUL_F64) +v_mul_dx9_zero_f32_e32 = functools.partial(VOP2, VOP2Op.V_MUL_DX9_ZERO_F32) +v_mul_f32_e32 = functools.partial(VOP2, VOP2Op.V_MUL_F32) +v_mul_i32_i24_e32 = functools.partial(VOP2, VOP2Op.V_MUL_I32_I24) +v_mul_hi_i32_i24_e32 = functools.partial(VOP2, VOP2Op.V_MUL_HI_I32_I24) +v_mul_u32_u24_e32 = functools.partial(VOP2, VOP2Op.V_MUL_U32_U24) +v_mul_hi_u32_u24_e32 = functools.partial(VOP2, VOP2Op.V_MUL_HI_U32_U24) +v_min_num_f64_e32 = functools.partial(VOP2, VOP2Op.V_MIN_NUM_F64) +v_max_num_f64_e32 = functools.partial(VOP2, VOP2Op.V_MAX_NUM_F64) +v_min_i32_e32 = functools.partial(VOP2, VOP2Op.V_MIN_I32) +v_max_i32_e32 = functools.partial(VOP2, VOP2Op.V_MAX_I32) +v_min_u32_e32 = functools.partial(VOP2, VOP2Op.V_MIN_U32) +v_max_u32_e32 = functools.partial(VOP2, VOP2Op.V_MAX_U32) +v_min_num_f32_e32 = functools.partial(VOP2, VOP2Op.V_MIN_NUM_F32) +v_max_num_f32_e32 = functools.partial(VOP2, VOP2Op.V_MAX_NUM_F32) +v_lshlrev_b32_e32 = functools.partial(VOP2, VOP2Op.V_LSHLREV_B32) +v_lshrrev_b32_e32 = functools.partial(VOP2, VOP2Op.V_LSHRREV_B32) +v_ashrrev_i32_e32 = functools.partial(VOP2, VOP2Op.V_ASHRREV_I32) +v_and_b32_e32 = functools.partial(VOP2, VOP2Op.V_AND_B32) +v_or_b32_e32 = functools.partial(VOP2, VOP2Op.V_OR_B32) +v_xor_b32_e32 = functools.partial(VOP2, VOP2Op.V_XOR_B32) +v_xnor_b32_e32 = functools.partial(VOP2, VOP2Op.V_XNOR_B32) +v_lshlrev_b64_e32 = functools.partial(VOP2, VOP2Op.V_LSHLREV_B64) +v_add_co_ci_u32_e32 = functools.partial(VOP2, VOP2Op.V_ADD_CO_CI_U32) +v_sub_co_ci_u32_e32 = functools.partial(VOP2, VOP2Op.V_SUB_CO_CI_U32) +v_subrev_co_ci_u32_e32 = functools.partial(VOP2, VOP2Op.V_SUBREV_CO_CI_U32) +v_add_nc_u32_e32 = functools.partial(VOP2, VOP2Op.V_ADD_NC_U32) +v_sub_nc_u32_e32 = functools.partial(VOP2, VOP2Op.V_SUB_NC_U32) +v_subrev_nc_u32_e32 = functools.partial(VOP2, VOP2Op.V_SUBREV_NC_U32) +v_fmac_f32_e32 = functools.partial(VOP2, VOP2Op.V_FMAC_F32) +def v_fmamk_f32_e32(vdst, src0, K, vsrc1): return VOP2(VOP2Op.V_FMAMK_F32, vdst, src0, vsrc1, literal=K) +def v_fmaak_f32_e32(vdst, src0, vsrc1, K): return VOP2(VOP2Op.V_FMAAK_F32, vdst, src0, vsrc1, literal=K) +v_cvt_pk_rtz_f16_f32_e32 = functools.partial(VOP2, VOP2Op.V_CVT_PK_RTZ_F16_F32) +v_min_num_f16_e32 = functools.partial(VOP2, VOP2Op.V_MIN_NUM_F16) +v_max_num_f16_e32 = functools.partial(VOP2, VOP2Op.V_MAX_NUM_F16) +v_add_f16_e32 = functools.partial(VOP2, VOP2Op.V_ADD_F16) +v_sub_f16_e32 = functools.partial(VOP2, VOP2Op.V_SUB_F16) +v_subrev_f16_e32 = functools.partial(VOP2, VOP2Op.V_SUBREV_F16) +v_mul_f16_e32 = functools.partial(VOP2, VOP2Op.V_MUL_F16) +v_fmac_f16_e32 = functools.partial(VOP2, VOP2Op.V_FMAC_F16) +def v_fmamk_f16_e32(vdst, src0, K, vsrc1): return VOP2(VOP2Op.V_FMAMK_F16, vdst, src0, vsrc1, literal=K) +def v_fmaak_f16_e32(vdst, src0, vsrc1, K): return VOP2(VOP2Op.V_FMAAK_F16, vdst, src0, vsrc1, literal=K) +v_ldexp_f16_e32 = functools.partial(VOP2, VOP2Op.V_LDEXP_F16) +v_pk_fmac_f16_e32 = functools.partial(VOP2, VOP2Op.V_PK_FMAC_F16) +v_cmp_lt_f16_e64 = functools.partial(VOP3, VOP3Op.V_CMP_LT_F16) +v_cmp_eq_f16_e64 = functools.partial(VOP3, VOP3Op.V_CMP_EQ_F16) +v_cmp_le_f16_e64 = functools.partial(VOP3, VOP3Op.V_CMP_LE_F16) +v_cmp_gt_f16_e64 = functools.partial(VOP3, VOP3Op.V_CMP_GT_F16) +v_cmp_lg_f16_e64 = functools.partial(VOP3, VOP3Op.V_CMP_LG_F16) +v_cmp_ge_f16_e64 = functools.partial(VOP3, VOP3Op.V_CMP_GE_F16) +v_cmp_o_f16_e64 = functools.partial(VOP3, VOP3Op.V_CMP_O_F16) +v_cmp_u_f16_e64 = functools.partial(VOP3, VOP3Op.V_CMP_U_F16) +v_cmp_nge_f16_e64 = functools.partial(VOP3, VOP3Op.V_CMP_NGE_F16) +v_cmp_nlg_f16_e64 = functools.partial(VOP3, VOP3Op.V_CMP_NLG_F16) +v_cmp_ngt_f16_e64 = functools.partial(VOP3, VOP3Op.V_CMP_NGT_F16) +v_cmp_nle_f16_e64 = functools.partial(VOP3, VOP3Op.V_CMP_NLE_F16) +v_cmp_neq_f16_e64 = functools.partial(VOP3, VOP3Op.V_CMP_NEQ_F16) +v_cmp_nlt_f16_e64 = functools.partial(VOP3, VOP3Op.V_CMP_NLT_F16) +v_cmp_lt_f32_e64 = functools.partial(VOP3, VOP3Op.V_CMP_LT_F32) +v_cmp_eq_f32_e64 = functools.partial(VOP3, VOP3Op.V_CMP_EQ_F32) +v_cmp_le_f32_e64 = functools.partial(VOP3, VOP3Op.V_CMP_LE_F32) +v_cmp_gt_f32_e64 = functools.partial(VOP3, VOP3Op.V_CMP_GT_F32) +v_cmp_lg_f32_e64 = functools.partial(VOP3, VOP3Op.V_CMP_LG_F32) +v_cmp_ge_f32_e64 = functools.partial(VOP3, VOP3Op.V_CMP_GE_F32) +v_cmp_o_f32_e64 = functools.partial(VOP3, VOP3Op.V_CMP_O_F32) +v_cmp_u_f32_e64 = functools.partial(VOP3, VOP3Op.V_CMP_U_F32) +v_cmp_nge_f32_e64 = functools.partial(VOP3, VOP3Op.V_CMP_NGE_F32) +v_cmp_nlg_f32_e64 = functools.partial(VOP3, VOP3Op.V_CMP_NLG_F32) +v_cmp_ngt_f32_e64 = functools.partial(VOP3, VOP3Op.V_CMP_NGT_F32) +v_cmp_nle_f32_e64 = functools.partial(VOP3, VOP3Op.V_CMP_NLE_F32) +v_cmp_neq_f32_e64 = functools.partial(VOP3, VOP3Op.V_CMP_NEQ_F32) +v_cmp_nlt_f32_e64 = functools.partial(VOP3, VOP3Op.V_CMP_NLT_F32) +v_cmp_lt_f64_e64 = functools.partial(VOP3, VOP3Op.V_CMP_LT_F64) +v_cmp_eq_f64_e64 = functools.partial(VOP3, VOP3Op.V_CMP_EQ_F64) +v_cmp_le_f64_e64 = functools.partial(VOP3, VOP3Op.V_CMP_LE_F64) +v_cmp_gt_f64_e64 = functools.partial(VOP3, VOP3Op.V_CMP_GT_F64) +v_cmp_lg_f64_e64 = functools.partial(VOP3, VOP3Op.V_CMP_LG_F64) +v_cmp_ge_f64_e64 = functools.partial(VOP3, VOP3Op.V_CMP_GE_F64) +v_cmp_o_f64_e64 = functools.partial(VOP3, VOP3Op.V_CMP_O_F64) +v_cmp_u_f64_e64 = functools.partial(VOP3, VOP3Op.V_CMP_U_F64) +v_cmp_nge_f64_e64 = functools.partial(VOP3, VOP3Op.V_CMP_NGE_F64) +v_cmp_nlg_f64_e64 = functools.partial(VOP3, VOP3Op.V_CMP_NLG_F64) +v_cmp_ngt_f64_e64 = functools.partial(VOP3, VOP3Op.V_CMP_NGT_F64) +v_cmp_nle_f64_e64 = functools.partial(VOP3, VOP3Op.V_CMP_NLE_F64) +v_cmp_neq_f64_e64 = functools.partial(VOP3, VOP3Op.V_CMP_NEQ_F64) +v_cmp_nlt_f64_e64 = functools.partial(VOP3, VOP3Op.V_CMP_NLT_F64) +v_cmp_lt_i16_e64 = functools.partial(VOP3, VOP3Op.V_CMP_LT_I16) +v_cmp_eq_i16_e64 = functools.partial(VOP3, VOP3Op.V_CMP_EQ_I16) +v_cmp_le_i16_e64 = functools.partial(VOP3, VOP3Op.V_CMP_LE_I16) +v_cmp_gt_i16_e64 = functools.partial(VOP3, VOP3Op.V_CMP_GT_I16) +v_cmp_ne_i16_e64 = functools.partial(VOP3, VOP3Op.V_CMP_NE_I16) +v_cmp_ge_i16_e64 = functools.partial(VOP3, VOP3Op.V_CMP_GE_I16) +v_cmp_lt_u16_e64 = functools.partial(VOP3, VOP3Op.V_CMP_LT_U16) +v_cmp_eq_u16_e64 = functools.partial(VOP3, VOP3Op.V_CMP_EQ_U16) +v_cmp_le_u16_e64 = functools.partial(VOP3, VOP3Op.V_CMP_LE_U16) +v_cmp_gt_u16_e64 = functools.partial(VOP3, VOP3Op.V_CMP_GT_U16) +v_cmp_ne_u16_e64 = functools.partial(VOP3, VOP3Op.V_CMP_NE_U16) +v_cmp_ge_u16_e64 = functools.partial(VOP3, VOP3Op.V_CMP_GE_U16) +v_cmp_lt_i32_e64 = functools.partial(VOP3, VOP3Op.V_CMP_LT_I32) +v_cmp_eq_i32_e64 = functools.partial(VOP3, VOP3Op.V_CMP_EQ_I32) +v_cmp_le_i32_e64 = functools.partial(VOP3, VOP3Op.V_CMP_LE_I32) +v_cmp_gt_i32_e64 = functools.partial(VOP3, VOP3Op.V_CMP_GT_I32) +v_cmp_ne_i32_e64 = functools.partial(VOP3, VOP3Op.V_CMP_NE_I32) +v_cmp_ge_i32_e64 = functools.partial(VOP3, VOP3Op.V_CMP_GE_I32) +v_cmp_lt_u32_e64 = functools.partial(VOP3, VOP3Op.V_CMP_LT_U32) +v_cmp_eq_u32_e64 = functools.partial(VOP3, VOP3Op.V_CMP_EQ_U32) +v_cmp_le_u32_e64 = functools.partial(VOP3, VOP3Op.V_CMP_LE_U32) +v_cmp_gt_u32_e64 = functools.partial(VOP3, VOP3Op.V_CMP_GT_U32) +v_cmp_ne_u32_e64 = functools.partial(VOP3, VOP3Op.V_CMP_NE_U32) +v_cmp_ge_u32_e64 = functools.partial(VOP3, VOP3Op.V_CMP_GE_U32) +v_cmp_lt_i64_e64 = functools.partial(VOP3, VOP3Op.V_CMP_LT_I64) +v_cmp_eq_i64_e64 = functools.partial(VOP3, VOP3Op.V_CMP_EQ_I64) +v_cmp_le_i64_e64 = functools.partial(VOP3, VOP3Op.V_CMP_LE_I64) +v_cmp_gt_i64_e64 = functools.partial(VOP3, VOP3Op.V_CMP_GT_I64) +v_cmp_ne_i64_e64 = functools.partial(VOP3, VOP3Op.V_CMP_NE_I64) +v_cmp_ge_i64_e64 = functools.partial(VOP3, VOP3Op.V_CMP_GE_I64) +v_cmp_lt_u64_e64 = functools.partial(VOP3, VOP3Op.V_CMP_LT_U64) +v_cmp_eq_u64_e64 = functools.partial(VOP3, VOP3Op.V_CMP_EQ_U64) +v_cmp_le_u64_e64 = functools.partial(VOP3, VOP3Op.V_CMP_LE_U64) +v_cmp_gt_u64_e64 = functools.partial(VOP3, VOP3Op.V_CMP_GT_U64) +v_cmp_ne_u64_e64 = functools.partial(VOP3, VOP3Op.V_CMP_NE_U64) +v_cmp_ge_u64_e64 = functools.partial(VOP3, VOP3Op.V_CMP_GE_U64) +v_cmp_class_f16_e64 = functools.partial(VOP3, VOP3Op.V_CMP_CLASS_F16) +v_cmp_class_f32_e64 = functools.partial(VOP3, VOP3Op.V_CMP_CLASS_F32) +v_cmp_class_f64_e64 = functools.partial(VOP3, VOP3Op.V_CMP_CLASS_F64) +v_cmpx_lt_f16_e64 = functools.partial(VOP3, VOP3Op.V_CMPX_LT_F16) +v_cmpx_eq_f16_e64 = functools.partial(VOP3, VOP3Op.V_CMPX_EQ_F16) +v_cmpx_le_f16_e64 = functools.partial(VOP3, VOP3Op.V_CMPX_LE_F16) +v_cmpx_gt_f16_e64 = functools.partial(VOP3, VOP3Op.V_CMPX_GT_F16) +v_cmpx_lg_f16_e64 = functools.partial(VOP3, VOP3Op.V_CMPX_LG_F16) +v_cmpx_ge_f16_e64 = functools.partial(VOP3, VOP3Op.V_CMPX_GE_F16) +v_cmpx_o_f16_e64 = functools.partial(VOP3, VOP3Op.V_CMPX_O_F16) +v_cmpx_u_f16_e64 = functools.partial(VOP3, VOP3Op.V_CMPX_U_F16) +v_cmpx_nge_f16_e64 = functools.partial(VOP3, VOP3Op.V_CMPX_NGE_F16) +v_cmpx_nlg_f16_e64 = functools.partial(VOP3, VOP3Op.V_CMPX_NLG_F16) +v_cmpx_ngt_f16_e64 = functools.partial(VOP3, VOP3Op.V_CMPX_NGT_F16) +v_cmpx_nle_f16_e64 = functools.partial(VOP3, VOP3Op.V_CMPX_NLE_F16) +v_cmpx_neq_f16_e64 = functools.partial(VOP3, VOP3Op.V_CMPX_NEQ_F16) +v_cmpx_nlt_f16_e64 = functools.partial(VOP3, VOP3Op.V_CMPX_NLT_F16) +v_cmpx_lt_f32_e64 = functools.partial(VOP3, VOP3Op.V_CMPX_LT_F32) +v_cmpx_eq_f32_e64 = functools.partial(VOP3, VOP3Op.V_CMPX_EQ_F32) +v_cmpx_le_f32_e64 = functools.partial(VOP3, VOP3Op.V_CMPX_LE_F32) +v_cmpx_gt_f32_e64 = functools.partial(VOP3, VOP3Op.V_CMPX_GT_F32) +v_cmpx_lg_f32_e64 = functools.partial(VOP3, VOP3Op.V_CMPX_LG_F32) +v_cmpx_ge_f32_e64 = functools.partial(VOP3, VOP3Op.V_CMPX_GE_F32) +v_cmpx_o_f32_e64 = functools.partial(VOP3, VOP3Op.V_CMPX_O_F32) +v_cmpx_u_f32_e64 = functools.partial(VOP3, VOP3Op.V_CMPX_U_F32) +v_cmpx_nge_f32_e64 = functools.partial(VOP3, VOP3Op.V_CMPX_NGE_F32) +v_cmpx_nlg_f32_e64 = functools.partial(VOP3, VOP3Op.V_CMPX_NLG_F32) +v_cmpx_ngt_f32_e64 = functools.partial(VOP3, VOP3Op.V_CMPX_NGT_F32) +v_cmpx_nle_f32_e64 = functools.partial(VOP3, VOP3Op.V_CMPX_NLE_F32) +v_cmpx_neq_f32_e64 = functools.partial(VOP3, VOP3Op.V_CMPX_NEQ_F32) +v_cmpx_nlt_f32_e64 = functools.partial(VOP3, VOP3Op.V_CMPX_NLT_F32) +v_cmpx_lt_f64_e64 = functools.partial(VOP3, VOP3Op.V_CMPX_LT_F64) +v_cmpx_eq_f64_e64 = functools.partial(VOP3, VOP3Op.V_CMPX_EQ_F64) +v_cmpx_le_f64_e64 = functools.partial(VOP3, VOP3Op.V_CMPX_LE_F64) +v_cmpx_gt_f64_e64 = functools.partial(VOP3, VOP3Op.V_CMPX_GT_F64) +v_cmpx_lg_f64_e64 = functools.partial(VOP3, VOP3Op.V_CMPX_LG_F64) +v_cmpx_ge_f64_e64 = functools.partial(VOP3, VOP3Op.V_CMPX_GE_F64) +v_cmpx_o_f64_e64 = functools.partial(VOP3, VOP3Op.V_CMPX_O_F64) +v_cmpx_u_f64_e64 = functools.partial(VOP3, VOP3Op.V_CMPX_U_F64) +v_cmpx_nge_f64_e64 = functools.partial(VOP3, VOP3Op.V_CMPX_NGE_F64) +v_cmpx_nlg_f64_e64 = functools.partial(VOP3, VOP3Op.V_CMPX_NLG_F64) +v_cmpx_ngt_f64_e64 = functools.partial(VOP3, VOP3Op.V_CMPX_NGT_F64) +v_cmpx_nle_f64_e64 = functools.partial(VOP3, VOP3Op.V_CMPX_NLE_F64) +v_cmpx_neq_f64_e64 = functools.partial(VOP3, VOP3Op.V_CMPX_NEQ_F64) +v_cmpx_nlt_f64_e64 = functools.partial(VOP3, VOP3Op.V_CMPX_NLT_F64) +v_cmpx_lt_i16_e64 = functools.partial(VOP3, VOP3Op.V_CMPX_LT_I16) +v_cmpx_eq_i16_e64 = functools.partial(VOP3, VOP3Op.V_CMPX_EQ_I16) +v_cmpx_le_i16_e64 = functools.partial(VOP3, VOP3Op.V_CMPX_LE_I16) +v_cmpx_gt_i16_e64 = functools.partial(VOP3, VOP3Op.V_CMPX_GT_I16) +v_cmpx_ne_i16_e64 = functools.partial(VOP3, VOP3Op.V_CMPX_NE_I16) +v_cmpx_ge_i16_e64 = functools.partial(VOP3, VOP3Op.V_CMPX_GE_I16) +v_cmpx_lt_u16_e64 = functools.partial(VOP3, VOP3Op.V_CMPX_LT_U16) +v_cmpx_eq_u16_e64 = functools.partial(VOP3, VOP3Op.V_CMPX_EQ_U16) +v_cmpx_le_u16_e64 = functools.partial(VOP3, VOP3Op.V_CMPX_LE_U16) +v_cmpx_gt_u16_e64 = functools.partial(VOP3, VOP3Op.V_CMPX_GT_U16) +v_cmpx_ne_u16_e64 = functools.partial(VOP3, VOP3Op.V_CMPX_NE_U16) +v_cmpx_ge_u16_e64 = functools.partial(VOP3, VOP3Op.V_CMPX_GE_U16) +v_cmpx_lt_i32_e64 = functools.partial(VOP3, VOP3Op.V_CMPX_LT_I32) +v_cmpx_eq_i32_e64 = functools.partial(VOP3, VOP3Op.V_CMPX_EQ_I32) +v_cmpx_le_i32_e64 = functools.partial(VOP3, VOP3Op.V_CMPX_LE_I32) +v_cmpx_gt_i32_e64 = functools.partial(VOP3, VOP3Op.V_CMPX_GT_I32) +v_cmpx_ne_i32_e64 = functools.partial(VOP3, VOP3Op.V_CMPX_NE_I32) +v_cmpx_ge_i32_e64 = functools.partial(VOP3, VOP3Op.V_CMPX_GE_I32) +v_cmpx_lt_u32_e64 = functools.partial(VOP3, VOP3Op.V_CMPX_LT_U32) +v_cmpx_eq_u32_e64 = functools.partial(VOP3, VOP3Op.V_CMPX_EQ_U32) +v_cmpx_le_u32_e64 = functools.partial(VOP3, VOP3Op.V_CMPX_LE_U32) +v_cmpx_gt_u32_e64 = functools.partial(VOP3, VOP3Op.V_CMPX_GT_U32) +v_cmpx_ne_u32_e64 = functools.partial(VOP3, VOP3Op.V_CMPX_NE_U32) +v_cmpx_ge_u32_e64 = functools.partial(VOP3, VOP3Op.V_CMPX_GE_U32) +v_cmpx_lt_i64_e64 = functools.partial(VOP3, VOP3Op.V_CMPX_LT_I64) +v_cmpx_eq_i64_e64 = functools.partial(VOP3, VOP3Op.V_CMPX_EQ_I64) +v_cmpx_le_i64_e64 = functools.partial(VOP3, VOP3Op.V_CMPX_LE_I64) +v_cmpx_gt_i64_e64 = functools.partial(VOP3, VOP3Op.V_CMPX_GT_I64) +v_cmpx_ne_i64_e64 = functools.partial(VOP3, VOP3Op.V_CMPX_NE_I64) +v_cmpx_ge_i64_e64 = functools.partial(VOP3, VOP3Op.V_CMPX_GE_I64) +v_cmpx_lt_u64_e64 = functools.partial(VOP3, VOP3Op.V_CMPX_LT_U64) +v_cmpx_eq_u64_e64 = functools.partial(VOP3, VOP3Op.V_CMPX_EQ_U64) +v_cmpx_le_u64_e64 = functools.partial(VOP3, VOP3Op.V_CMPX_LE_U64) +v_cmpx_gt_u64_e64 = functools.partial(VOP3, VOP3Op.V_CMPX_GT_U64) +v_cmpx_ne_u64_e64 = functools.partial(VOP3, VOP3Op.V_CMPX_NE_U64) +v_cmpx_ge_u64_e64 = functools.partial(VOP3, VOP3Op.V_CMPX_GE_U64) +v_cmpx_class_f16_e64 = functools.partial(VOP3, VOP3Op.V_CMPX_CLASS_F16) +v_cmpx_class_f32_e64 = functools.partial(VOP3, VOP3Op.V_CMPX_CLASS_F32) +v_cmpx_class_f64_e64 = functools.partial(VOP3, VOP3Op.V_CMPX_CLASS_F64) +v_cndmask_b32_e64 = functools.partial(VOP3, VOP3Op.V_CNDMASK_B32) +v_add_f64_e64 = functools.partial(VOP3, VOP3Op.V_ADD_F64) +v_add_f32_e64 = functools.partial(VOP3, VOP3Op.V_ADD_F32) +v_sub_f32_e64 = functools.partial(VOP3, VOP3Op.V_SUB_F32) +v_subrev_f32_e64 = functools.partial(VOP3, VOP3Op.V_SUBREV_F32) +v_mul_f64_e64 = functools.partial(VOP3, VOP3Op.V_MUL_F64) +v_mul_dx9_zero_f32_e64 = functools.partial(VOP3, VOP3Op.V_MUL_DX9_ZERO_F32) +v_mul_f32_e64 = functools.partial(VOP3, VOP3Op.V_MUL_F32) +v_mul_i32_i24_e64 = functools.partial(VOP3, VOP3Op.V_MUL_I32_I24) +v_mul_hi_i32_i24_e64 = functools.partial(VOP3, VOP3Op.V_MUL_HI_I32_I24) +v_mul_u32_u24_e64 = functools.partial(VOP3, VOP3Op.V_MUL_U32_U24) +v_mul_hi_u32_u24_e64 = functools.partial(VOP3, VOP3Op.V_MUL_HI_U32_U24) +v_min_num_f64_e64 = functools.partial(VOP3, VOP3Op.V_MIN_NUM_F64) +v_max_num_f64_e64 = functools.partial(VOP3, VOP3Op.V_MAX_NUM_F64) +v_min_i32_e64 = functools.partial(VOP3, VOP3Op.V_MIN_I32) +v_max_i32_e64 = functools.partial(VOP3, VOP3Op.V_MAX_I32) +v_min_u32_e64 = functools.partial(VOP3, VOP3Op.V_MIN_U32) +v_max_u32_e64 = functools.partial(VOP3, VOP3Op.V_MAX_U32) +v_min_num_f32_e64 = functools.partial(VOP3, VOP3Op.V_MIN_NUM_F32) +v_max_num_f32_e64 = functools.partial(VOP3, VOP3Op.V_MAX_NUM_F32) +v_lshlrev_b32_e64 = functools.partial(VOP3, VOP3Op.V_LSHLREV_B32) +v_lshrrev_b32_e64 = functools.partial(VOP3, VOP3Op.V_LSHRREV_B32) +v_ashrrev_i32_e64 = functools.partial(VOP3, VOP3Op.V_ASHRREV_I32) +v_and_b32_e64 = functools.partial(VOP3, VOP3Op.V_AND_B32) +v_or_b32_e64 = functools.partial(VOP3, VOP3Op.V_OR_B32) +v_xor_b32_e64 = functools.partial(VOP3, VOP3Op.V_XOR_B32) +v_xnor_b32_e64 = functools.partial(VOP3, VOP3Op.V_XNOR_B32) +v_lshlrev_b64_e64 = functools.partial(VOP3, VOP3Op.V_LSHLREV_B64) +v_add_nc_u32_e64 = functools.partial(VOP3, VOP3Op.V_ADD_NC_U32) +v_sub_nc_u32_e64 = functools.partial(VOP3, VOP3Op.V_SUB_NC_U32) +v_subrev_nc_u32_e64 = functools.partial(VOP3, VOP3Op.V_SUBREV_NC_U32) +v_fmac_f32_e64 = functools.partial(VOP3, VOP3Op.V_FMAC_F32) +v_cvt_pk_rtz_f16_f32_e64 = functools.partial(VOP3, VOP3Op.V_CVT_PK_RTZ_F16_F32) +v_min_num_f16_e64 = functools.partial(VOP3, VOP3Op.V_MIN_NUM_F16) +v_max_num_f16_e64 = functools.partial(VOP3, VOP3Op.V_MAX_NUM_F16) +v_add_f16_e64 = functools.partial(VOP3, VOP3Op.V_ADD_F16) +v_sub_f16_e64 = functools.partial(VOP3, VOP3Op.V_SUB_F16) +v_subrev_f16_e64 = functools.partial(VOP3, VOP3Op.V_SUBREV_F16) +v_mul_f16_e64 = functools.partial(VOP3, VOP3Op.V_MUL_F16) +v_fmac_f16_e64 = functools.partial(VOP3, VOP3Op.V_FMAC_F16) +v_ldexp_f16_e64 = functools.partial(VOP3, VOP3Op.V_LDEXP_F16) +v_nop_e64 = functools.partial(VOP3, VOP3Op.V_NOP) +v_mov_b32_e64 = functools.partial(VOP3, VOP3Op.V_MOV_B32) +v_readfirstlane_b32_e64 = functools.partial(VOP3, VOP3Op.V_READFIRSTLANE_B32) +v_cvt_i32_f64_e64 = functools.partial(VOP3, VOP3Op.V_CVT_I32_F64) +v_cvt_f64_i32_e64 = functools.partial(VOP3, VOP3Op.V_CVT_F64_I32) +v_cvt_f32_i32_e64 = functools.partial(VOP3, VOP3Op.V_CVT_F32_I32) +v_cvt_f32_u32_e64 = functools.partial(VOP3, VOP3Op.V_CVT_F32_U32) +v_cvt_u32_f32_e64 = functools.partial(VOP3, VOP3Op.V_CVT_U32_F32) +v_cvt_i32_f32_e64 = functools.partial(VOP3, VOP3Op.V_CVT_I32_F32) +v_cvt_f16_f32_e64 = functools.partial(VOP3, VOP3Op.V_CVT_F16_F32) +v_cvt_f32_f16_e64 = functools.partial(VOP3, VOP3Op.V_CVT_F32_F16) +v_cvt_nearest_i32_f32_e64 = functools.partial(VOP3, VOP3Op.V_CVT_NEAREST_I32_F32) +v_cvt_floor_i32_f32_e64 = functools.partial(VOP3, VOP3Op.V_CVT_FLOOR_I32_F32) +v_cvt_off_f32_i4_e64 = functools.partial(VOP3, VOP3Op.V_CVT_OFF_F32_I4) +v_cvt_f32_f64_e64 = functools.partial(VOP3, VOP3Op.V_CVT_F32_F64) +v_cvt_f64_f32_e64 = functools.partial(VOP3, VOP3Op.V_CVT_F64_F32) +v_cvt_f32_ubyte0_e64 = functools.partial(VOP3, VOP3Op.V_CVT_F32_UBYTE0) +v_cvt_f32_ubyte1_e64 = functools.partial(VOP3, VOP3Op.V_CVT_F32_UBYTE1) +v_cvt_f32_ubyte2_e64 = functools.partial(VOP3, VOP3Op.V_CVT_F32_UBYTE2) +v_cvt_f32_ubyte3_e64 = functools.partial(VOP3, VOP3Op.V_CVT_F32_UBYTE3) +v_cvt_u32_f64_e64 = functools.partial(VOP3, VOP3Op.V_CVT_U32_F64) +v_cvt_f64_u32_e64 = functools.partial(VOP3, VOP3Op.V_CVT_F64_U32) +v_trunc_f64_e64 = functools.partial(VOP3, VOP3Op.V_TRUNC_F64) +v_ceil_f64_e64 = functools.partial(VOP3, VOP3Op.V_CEIL_F64) +v_rndne_f64_e64 = functools.partial(VOP3, VOP3Op.V_RNDNE_F64) +v_floor_f64_e64 = functools.partial(VOP3, VOP3Op.V_FLOOR_F64) +v_pipeflush_e64 = functools.partial(VOP3, VOP3Op.V_PIPEFLUSH) +v_mov_b16_e64 = functools.partial(VOP3, VOP3Op.V_MOV_B16) +v_fract_f32_e64 = functools.partial(VOP3, VOP3Op.V_FRACT_F32) +v_trunc_f32_e64 = functools.partial(VOP3, VOP3Op.V_TRUNC_F32) +v_ceil_f32_e64 = functools.partial(VOP3, VOP3Op.V_CEIL_F32) +v_rndne_f32_e64 = functools.partial(VOP3, VOP3Op.V_RNDNE_F32) +v_floor_f32_e64 = functools.partial(VOP3, VOP3Op.V_FLOOR_F32) +v_exp_f32_e64 = functools.partial(VOP3, VOP3Op.V_EXP_F32) +v_log_f32_e64 = functools.partial(VOP3, VOP3Op.V_LOG_F32) +v_rcp_f32_e64 = functools.partial(VOP3, VOP3Op.V_RCP_F32) +v_rcp_iflag_f32_e64 = functools.partial(VOP3, VOP3Op.V_RCP_IFLAG_F32) +v_rsq_f32_e64 = functools.partial(VOP3, VOP3Op.V_RSQ_F32) +v_rcp_f64_e64 = functools.partial(VOP3, VOP3Op.V_RCP_F64) +v_rsq_f64_e64 = functools.partial(VOP3, VOP3Op.V_RSQ_F64) +v_sqrt_f32_e64 = functools.partial(VOP3, VOP3Op.V_SQRT_F32) +v_sqrt_f64_e64 = functools.partial(VOP3, VOP3Op.V_SQRT_F64) +v_sin_f32_e64 = functools.partial(VOP3, VOP3Op.V_SIN_F32) +v_cos_f32_e64 = functools.partial(VOP3, VOP3Op.V_COS_F32) +v_not_b32_e64 = functools.partial(VOP3, VOP3Op.V_NOT_B32) +v_bfrev_b32_e64 = functools.partial(VOP3, VOP3Op.V_BFREV_B32) +v_clz_i32_u32_e64 = functools.partial(VOP3, VOP3Op.V_CLZ_I32_U32) +v_ctz_i32_b32_e64 = functools.partial(VOP3, VOP3Op.V_CTZ_I32_B32) +v_cls_i32_e64 = functools.partial(VOP3, VOP3Op.V_CLS_I32) +v_frexp_exp_i32_f64_e64 = functools.partial(VOP3, VOP3Op.V_FREXP_EXP_I32_F64) +v_frexp_mant_f64_e64 = functools.partial(VOP3, VOP3Op.V_FREXP_MANT_F64) +v_fract_f64_e64 = functools.partial(VOP3, VOP3Op.V_FRACT_F64) +v_frexp_exp_i32_f32_e64 = functools.partial(VOP3, VOP3Op.V_FREXP_EXP_I32_F32) +v_frexp_mant_f32_e64 = functools.partial(VOP3, VOP3Op.V_FREXP_MANT_F32) +v_movreld_b32_e64 = functools.partial(VOP3, VOP3Op.V_MOVRELD_B32) +v_movrels_b32_e64 = functools.partial(VOP3, VOP3Op.V_MOVRELS_B32) +v_movrelsd_b32_e64 = functools.partial(VOP3, VOP3Op.V_MOVRELSD_B32) +v_movrelsd_2_b32_e64 = functools.partial(VOP3, VOP3Op.V_MOVRELSD_2_B32) +v_cvt_f16_u16_e64 = functools.partial(VOP3, VOP3Op.V_CVT_F16_U16) +v_cvt_f16_i16_e64 = functools.partial(VOP3, VOP3Op.V_CVT_F16_I16) +v_cvt_u16_f16_e64 = functools.partial(VOP3, VOP3Op.V_CVT_U16_F16) +v_cvt_i16_f16_e64 = functools.partial(VOP3, VOP3Op.V_CVT_I16_F16) +v_rcp_f16_e64 = functools.partial(VOP3, VOP3Op.V_RCP_F16) +v_sqrt_f16_e64 = functools.partial(VOP3, VOP3Op.V_SQRT_F16) +v_rsq_f16_e64 = functools.partial(VOP3, VOP3Op.V_RSQ_F16) +v_log_f16_e64 = functools.partial(VOP3, VOP3Op.V_LOG_F16) +v_exp_f16_e64 = functools.partial(VOP3, VOP3Op.V_EXP_F16) +v_frexp_mant_f16_e64 = functools.partial(VOP3, VOP3Op.V_FREXP_MANT_F16) +v_frexp_exp_i16_f16_e64 = functools.partial(VOP3, VOP3Op.V_FREXP_EXP_I16_F16) +v_floor_f16_e64 = functools.partial(VOP3, VOP3Op.V_FLOOR_F16) +v_ceil_f16_e64 = functools.partial(VOP3, VOP3Op.V_CEIL_F16) +v_trunc_f16_e64 = functools.partial(VOP3, VOP3Op.V_TRUNC_F16) +v_rndne_f16_e64 = functools.partial(VOP3, VOP3Op.V_RNDNE_F16) +v_fract_f16_e64 = functools.partial(VOP3, VOP3Op.V_FRACT_F16) +v_sin_f16_e64 = functools.partial(VOP3, VOP3Op.V_SIN_F16) +v_cos_f16_e64 = functools.partial(VOP3, VOP3Op.V_COS_F16) +v_sat_pk_u8_i16_e64 = functools.partial(VOP3, VOP3Op.V_SAT_PK_U8_I16) +v_cvt_norm_i16_f16_e64 = functools.partial(VOP3, VOP3Op.V_CVT_NORM_I16_F16) +v_cvt_norm_u16_f16_e64 = functools.partial(VOP3, VOP3Op.V_CVT_NORM_U16_F16) +v_not_b16_e64 = functools.partial(VOP3, VOP3Op.V_NOT_B16) +v_cvt_i32_i16_e64 = functools.partial(VOP3, VOP3Op.V_CVT_I32_I16) +v_cvt_u32_u16_e64 = functools.partial(VOP3, VOP3Op.V_CVT_U32_U16) +v_cvt_f32_fp8_e64 = functools.partial(VOP3, VOP3Op.V_CVT_F32_FP8) +v_cvt_f32_bf8_e64 = functools.partial(VOP3, VOP3Op.V_CVT_F32_BF8) +v_cvt_pk_f32_fp8_e64 = functools.partial(VOP3, VOP3Op.V_CVT_PK_F32_FP8) +v_cvt_pk_f32_bf8_e64 = functools.partial(VOP3, VOP3Op.V_CVT_PK_F32_BF8) +v_fma_dx9_zero_f32 = functools.partial(VOP3, VOP3Op.V_FMA_DX9_ZERO_F32) +v_mad_i32_i24 = functools.partial(VOP3, VOP3Op.V_MAD_I32_I24) +v_mad_u32_u24 = functools.partial(VOP3, VOP3Op.V_MAD_U32_U24) +v_cubeid_f32 = functools.partial(VOP3, VOP3Op.V_CUBEID_F32) +v_cubesc_f32 = functools.partial(VOP3, VOP3Op.V_CUBESC_F32) +v_cubetc_f32 = functools.partial(VOP3, VOP3Op.V_CUBETC_F32) +v_cubema_f32 = functools.partial(VOP3, VOP3Op.V_CUBEMA_F32) +v_bfe_u32 = functools.partial(VOP3, VOP3Op.V_BFE_U32) +v_bfe_i32 = functools.partial(VOP3, VOP3Op.V_BFE_I32) +v_bfi_b32 = functools.partial(VOP3, VOP3Op.V_BFI_B32) +v_fma_f32 = functools.partial(VOP3, VOP3Op.V_FMA_F32) +v_fma_f64 = functools.partial(VOP3, VOP3Op.V_FMA_F64) +v_lerp_u8 = functools.partial(VOP3, VOP3Op.V_LERP_U8) +v_alignbit_b32 = functools.partial(VOP3, VOP3Op.V_ALIGNBIT_B32) +v_alignbyte_b32 = functools.partial(VOP3, VOP3Op.V_ALIGNBYTE_B32) +v_mullit_f32 = functools.partial(VOP3, VOP3Op.V_MULLIT_F32) +v_min3_i32 = functools.partial(VOP3, VOP3Op.V_MIN3_I32) +v_min3_u32 = functools.partial(VOP3, VOP3Op.V_MIN3_U32) +v_max3_i32 = functools.partial(VOP3, VOP3Op.V_MAX3_I32) +v_max3_u32 = functools.partial(VOP3, VOP3Op.V_MAX3_U32) +v_med3_i32 = functools.partial(VOP3, VOP3Op.V_MED3_I32) +v_med3_u32 = functools.partial(VOP3, VOP3Op.V_MED3_U32) +v_sad_u8 = functools.partial(VOP3, VOP3Op.V_SAD_U8) +v_sad_hi_u8 = functools.partial(VOP3, VOP3Op.V_SAD_HI_U8) +v_sad_u16 = functools.partial(VOP3, VOP3Op.V_SAD_U16) +v_sad_u32 = functools.partial(VOP3, VOP3Op.V_SAD_U32) +v_cvt_pk_u8_f32 = functools.partial(VOP3, VOP3Op.V_CVT_PK_U8_F32) +v_div_fixup_f32 = functools.partial(VOP3, VOP3Op.V_DIV_FIXUP_F32) +v_div_fixup_f64 = functools.partial(VOP3, VOP3Op.V_DIV_FIXUP_F64) +v_min3_num_f32 = functools.partial(VOP3, VOP3Op.V_MIN3_NUM_F32) +v_max3_num_f32 = functools.partial(VOP3, VOP3Op.V_MAX3_NUM_F32) +v_min3_num_f16 = functools.partial(VOP3, VOP3Op.V_MIN3_NUM_F16) +v_max3_num_f16 = functools.partial(VOP3, VOP3Op.V_MAX3_NUM_F16) +v_minimum3_f32 = functools.partial(VOP3, VOP3Op.V_MINIMUM3_F32) +v_maximum3_f32 = functools.partial(VOP3, VOP3Op.V_MAXIMUM3_F32) +v_minimum3_f16 = functools.partial(VOP3, VOP3Op.V_MINIMUM3_F16) +v_maximum3_f16 = functools.partial(VOP3, VOP3Op.V_MAXIMUM3_F16) +v_med3_num_f32 = functools.partial(VOP3, VOP3Op.V_MED3_NUM_F32) +v_med3_num_f16 = functools.partial(VOP3, VOP3Op.V_MED3_NUM_F16) +v_div_fmas_f32 = functools.partial(VOP3, VOP3Op.V_DIV_FMAS_F32) +v_div_fmas_f64 = functools.partial(VOP3, VOP3Op.V_DIV_FMAS_F64) +v_msad_u8 = functools.partial(VOP3, VOP3Op.V_MSAD_U8) +v_qsad_pk_u16_u8 = functools.partial(VOP3, VOP3Op.V_QSAD_PK_U16_U8) +v_mqsad_pk_u16_u8 = functools.partial(VOP3, VOP3Op.V_MQSAD_PK_U16_U8) +v_mqsad_u32_u8 = functools.partial(VOP3, VOP3Op.V_MQSAD_U32_U8) +v_xor3_b32 = functools.partial(VOP3, VOP3Op.V_XOR3_B32) +v_mad_u16 = functools.partial(VOP3, VOP3Op.V_MAD_U16) +v_perm_b32 = functools.partial(VOP3, VOP3Op.V_PERM_B32) +v_xad_u32 = functools.partial(VOP3, VOP3Op.V_XAD_U32) +v_lshl_add_u32 = functools.partial(VOP3, VOP3Op.V_LSHL_ADD_U32) +v_add_lshl_u32 = functools.partial(VOP3, VOP3Op.V_ADD_LSHL_U32) +v_fma_f16 = functools.partial(VOP3, VOP3Op.V_FMA_F16) +v_min3_i16 = functools.partial(VOP3, VOP3Op.V_MIN3_I16) +v_min3_u16 = functools.partial(VOP3, VOP3Op.V_MIN3_U16) +v_max3_i16 = functools.partial(VOP3, VOP3Op.V_MAX3_I16) +v_max3_u16 = functools.partial(VOP3, VOP3Op.V_MAX3_U16) +v_med3_i16 = functools.partial(VOP3, VOP3Op.V_MED3_I16) +v_med3_u16 = functools.partial(VOP3, VOP3Op.V_MED3_U16) +v_mad_i16 = functools.partial(VOP3, VOP3Op.V_MAD_I16) +v_div_fixup_f16 = functools.partial(VOP3, VOP3Op.V_DIV_FIXUP_F16) +v_add3_u32 = functools.partial(VOP3, VOP3Op.V_ADD3_U32) +v_lshl_or_b32 = functools.partial(VOP3, VOP3Op.V_LSHL_OR_B32) +v_and_or_b32 = functools.partial(VOP3, VOP3Op.V_AND_OR_B32) +v_or3_b32 = functools.partial(VOP3, VOP3Op.V_OR3_B32) +v_mad_u32_u16 = functools.partial(VOP3, VOP3Op.V_MAD_U32_U16) +v_mad_i32_i16 = functools.partial(VOP3, VOP3Op.V_MAD_I32_I16) +v_permlane16_b32 = functools.partial(VOP3, VOP3Op.V_PERMLANE16_B32) +v_permlanex16_b32 = functools.partial(VOP3, VOP3Op.V_PERMLANEX16_B32) +v_cndmask_b16 = functools.partial(VOP3, VOP3Op.V_CNDMASK_B16) +v_maxmin_u32 = functools.partial(VOP3, VOP3Op.V_MAXMIN_U32) +v_minmax_u32 = functools.partial(VOP3, VOP3Op.V_MINMAX_U32) +v_maxmin_i32 = functools.partial(VOP3, VOP3Op.V_MAXMIN_I32) +v_minmax_i32 = functools.partial(VOP3, VOP3Op.V_MINMAX_I32) +v_dot2_f16_f16 = functools.partial(VOP3, VOP3Op.V_DOT2_F16_F16) +v_dot2_bf16_bf16 = functools.partial(VOP3, VOP3Op.V_DOT2_BF16_BF16) +v_minmax_num_f32 = functools.partial(VOP3, VOP3Op.V_MINMAX_NUM_F32) +v_maxmin_num_f32 = functools.partial(VOP3, VOP3Op.V_MAXMIN_NUM_F32) +v_minmax_num_f16 = functools.partial(VOP3, VOP3Op.V_MINMAX_NUM_F16) +v_maxmin_num_f16 = functools.partial(VOP3, VOP3Op.V_MAXMIN_NUM_F16) +v_minimummaximum_f32 = functools.partial(VOP3, VOP3Op.V_MINIMUMMAXIMUM_F32) +v_maximumminimum_f32 = functools.partial(VOP3, VOP3Op.V_MAXIMUMMINIMUM_F32) +v_minimummaximum_f16 = functools.partial(VOP3, VOP3Op.V_MINIMUMMAXIMUM_F16) +v_maximumminimum_f16 = functools.partial(VOP3, VOP3Op.V_MAXIMUMMINIMUM_F16) +v_s_exp_f32 = functools.partial(VOP3, VOP3Op.V_S_EXP_F32) +v_s_exp_f16 = functools.partial(VOP3, VOP3Op.V_S_EXP_F16) +v_s_log_f32 = functools.partial(VOP3, VOP3Op.V_S_LOG_F32) +v_s_log_f16 = functools.partial(VOP3, VOP3Op.V_S_LOG_F16) +v_s_rcp_f32 = functools.partial(VOP3, VOP3Op.V_S_RCP_F32) +v_s_rcp_f16 = functools.partial(VOP3, VOP3Op.V_S_RCP_F16) +v_s_rsq_f32 = functools.partial(VOP3, VOP3Op.V_S_RSQ_F32) +v_s_rsq_f16 = functools.partial(VOP3, VOP3Op.V_S_RSQ_F16) +v_s_sqrt_f32 = functools.partial(VOP3, VOP3Op.V_S_SQRT_F32) +v_s_sqrt_f16 = functools.partial(VOP3, VOP3Op.V_S_SQRT_F16) +v_add_nc_u16 = functools.partial(VOP3, VOP3Op.V_ADD_NC_U16) +v_sub_nc_u16 = functools.partial(VOP3, VOP3Op.V_SUB_NC_U16) +v_mul_lo_u16 = functools.partial(VOP3, VOP3Op.V_MUL_LO_U16) +v_cvt_pk_i16_f32 = functools.partial(VOP3, VOP3Op.V_CVT_PK_I16_F32) +v_cvt_pk_u16_f32 = functools.partial(VOP3, VOP3Op.V_CVT_PK_U16_F32) +v_max_u16 = functools.partial(VOP3, VOP3Op.V_MAX_U16) +v_max_i16 = functools.partial(VOP3, VOP3Op.V_MAX_I16) +v_min_u16 = functools.partial(VOP3, VOP3Op.V_MIN_U16) +v_min_i16 = functools.partial(VOP3, VOP3Op.V_MIN_I16) +v_add_nc_i16 = functools.partial(VOP3, VOP3Op.V_ADD_NC_I16) +v_sub_nc_i16 = functools.partial(VOP3, VOP3Op.V_SUB_NC_I16) +v_permlane16_var_b32 = functools.partial(VOP3, VOP3Op.V_PERMLANE16_VAR_B32) +v_permlanex16_var_b32 = functools.partial(VOP3, VOP3Op.V_PERMLANEX16_VAR_B32) +v_pack_b32_f16 = functools.partial(VOP3, VOP3Op.V_PACK_B32_F16) +v_cvt_pk_norm_i16_f16 = functools.partial(VOP3, VOP3Op.V_CVT_PK_NORM_I16_F16) +v_cvt_pk_norm_u16_f16 = functools.partial(VOP3, VOP3Op.V_CVT_PK_NORM_U16_F16) +v_ldexp_f32 = functools.partial(VOP3, VOP3Op.V_LDEXP_F32) +v_bfm_b32 = functools.partial(VOP3, VOP3Op.V_BFM_B32) +v_bcnt_u32_b32 = functools.partial(VOP3, VOP3Op.V_BCNT_U32_B32) +v_mbcnt_lo_u32_b32 = functools.partial(VOP3, VOP3Op.V_MBCNT_LO_U32_B32) +v_mbcnt_hi_u32_b32 = functools.partial(VOP3, VOP3Op.V_MBCNT_HI_U32_B32) +v_cvt_pk_norm_i16_f32 = functools.partial(VOP3, VOP3Op.V_CVT_PK_NORM_I16_F32) +v_cvt_pk_norm_u16_f32 = functools.partial(VOP3, VOP3Op.V_CVT_PK_NORM_U16_F32) +v_cvt_pk_u16_u32 = functools.partial(VOP3, VOP3Op.V_CVT_PK_U16_U32) +v_cvt_pk_i16_i32 = functools.partial(VOP3, VOP3Op.V_CVT_PK_I16_I32) +v_sub_nc_i32 = functools.partial(VOP3, VOP3Op.V_SUB_NC_I32) +v_add_nc_i32 = functools.partial(VOP3, VOP3Op.V_ADD_NC_I32) +v_ldexp_f64 = functools.partial(VOP3, VOP3Op.V_LDEXP_F64) +v_mul_lo_u32 = functools.partial(VOP3, VOP3Op.V_MUL_LO_U32) +v_mul_hi_u32 = functools.partial(VOP3, VOP3Op.V_MUL_HI_U32) +v_mul_hi_i32 = functools.partial(VOP3, VOP3Op.V_MUL_HI_I32) +v_trig_preop_f64 = functools.partial(VOP3, VOP3Op.V_TRIG_PREOP_F64) +v_lshlrev_b16 = functools.partial(VOP3, VOP3Op.V_LSHLREV_B16) +v_lshrrev_b16 = functools.partial(VOP3, VOP3Op.V_LSHRREV_B16) +v_ashrrev_i16 = functools.partial(VOP3, VOP3Op.V_ASHRREV_I16) +v_lshrrev_b64 = functools.partial(VOP3, VOP3Op.V_LSHRREV_B64) +v_ashrrev_i64 = functools.partial(VOP3, VOP3Op.V_ASHRREV_I64) +v_minimum_f64 = functools.partial(VOP3, VOP3Op.V_MINIMUM_F64) +v_maximum_f64 = functools.partial(VOP3, VOP3Op.V_MAXIMUM_F64) +v_readlane_b32 = functools.partial(VOP3, VOP3Op.V_READLANE_B32) +v_writelane_b32 = functools.partial(VOP3, VOP3Op.V_WRITELANE_B32) +v_and_b16 = functools.partial(VOP3, VOP3Op.V_AND_B16) +v_or_b16 = functools.partial(VOP3, VOP3Op.V_OR_B16) +v_xor_b16 = functools.partial(VOP3, VOP3Op.V_XOR_B16) +v_minimum_f32 = functools.partial(VOP3, VOP3Op.V_MINIMUM_F32) +v_maximum_f32 = functools.partial(VOP3, VOP3Op.V_MAXIMUM_F32) +v_minimum_f16 = functools.partial(VOP3, VOP3Op.V_MINIMUM_F16) +v_maximum_f16 = functools.partial(VOP3, VOP3Op.V_MAXIMUM_F16) +v_cvt_pk_fp8_f32 = functools.partial(VOP3, VOP3Op.V_CVT_PK_FP8_F32) +v_cvt_pk_bf8_f32 = functools.partial(VOP3, VOP3Op.V_CVT_PK_BF8_F32) +v_cvt_sr_fp8_f32 = functools.partial(VOP3, VOP3Op.V_CVT_SR_FP8_F32) +v_cvt_sr_bf8_f32 = functools.partial(VOP3, VOP3Op.V_CVT_SR_BF8_F32) +v_pk_mad_i16 = functools.partial(VOP3P, VOP3POp.V_PK_MAD_I16) +v_pk_mul_lo_u16 = functools.partial(VOP3P, VOP3POp.V_PK_MUL_LO_U16) +v_pk_add_i16 = functools.partial(VOP3P, VOP3POp.V_PK_ADD_I16) +v_pk_sub_i16 = functools.partial(VOP3P, VOP3POp.V_PK_SUB_I16) +v_pk_lshlrev_b16 = functools.partial(VOP3P, VOP3POp.V_PK_LSHLREV_B16) +v_pk_lshrrev_b16 = functools.partial(VOP3P, VOP3POp.V_PK_LSHRREV_B16) +v_pk_ashrrev_i16 = functools.partial(VOP3P, VOP3POp.V_PK_ASHRREV_I16) +v_pk_max_i16 = functools.partial(VOP3P, VOP3POp.V_PK_MAX_I16) +v_pk_min_i16 = functools.partial(VOP3P, VOP3POp.V_PK_MIN_I16) +v_pk_mad_u16 = functools.partial(VOP3P, VOP3POp.V_PK_MAD_U16) +v_pk_add_u16 = functools.partial(VOP3P, VOP3POp.V_PK_ADD_U16) +v_pk_sub_u16 = functools.partial(VOP3P, VOP3POp.V_PK_SUB_U16) +v_pk_max_u16 = functools.partial(VOP3P, VOP3POp.V_PK_MAX_U16) +v_pk_min_u16 = functools.partial(VOP3P, VOP3POp.V_PK_MIN_U16) +v_pk_fma_f16 = functools.partial(VOP3P, VOP3POp.V_PK_FMA_F16) +v_pk_add_f16 = functools.partial(VOP3P, VOP3POp.V_PK_ADD_F16) +v_pk_mul_f16 = functools.partial(VOP3P, VOP3POp.V_PK_MUL_F16) +v_dot2_f32_f16 = functools.partial(VOP3P, VOP3POp.V_DOT2_F32_F16) +v_dot4_i32_iu8 = functools.partial(VOP3P, VOP3POp.V_DOT4_I32_IU8) +v_dot4_u32_u8 = functools.partial(VOP3P, VOP3POp.V_DOT4_U32_U8) +v_dot8_i32_iu4 = functools.partial(VOP3P, VOP3POp.V_DOT8_I32_IU4) +v_dot8_u32_u4 = functools.partial(VOP3P, VOP3POp.V_DOT8_U32_U4) +v_dot2_f32_bf16 = functools.partial(VOP3P, VOP3POp.V_DOT2_F32_BF16) +v_pk_min_num_f16 = functools.partial(VOP3P, VOP3POp.V_PK_MIN_NUM_F16) +v_pk_max_num_f16 = functools.partial(VOP3P, VOP3POp.V_PK_MAX_NUM_F16) +v_pk_minimum_f16 = functools.partial(VOP3P, VOP3POp.V_PK_MINIMUM_F16) +v_pk_maximum_f16 = functools.partial(VOP3P, VOP3POp.V_PK_MAXIMUM_F16) +v_fma_mix_f32 = functools.partial(VOP3P, VOP3POp.V_FMA_MIX_F32) +v_fma_mixlo_f16 = functools.partial(VOP3P, VOP3POp.V_FMA_MIXLO_F16) +v_fma_mixhi_f16 = functools.partial(VOP3P, VOP3POp.V_FMA_MIXHI_F16) +v_dot4_f32_fp8_bf8 = functools.partial(VOP3P, VOP3POp.V_DOT4_F32_FP8_BF8) +v_dot4_f32_bf8_fp8 = functools.partial(VOP3P, VOP3POp.V_DOT4_F32_BF8_FP8) +v_dot4_f32_fp8_fp8 = functools.partial(VOP3P, VOP3POp.V_DOT4_F32_FP8_FP8) +v_dot4_f32_bf8_bf8 = functools.partial(VOP3P, VOP3POp.V_DOT4_F32_BF8_BF8) +v_wmma_f32_16x16x16_f16 = functools.partial(VOP3P, VOP3POp.V_WMMA_F32_16X16X16_F16) +v_wmma_f32_16x16x16_bf16 = functools.partial(VOP3P, VOP3POp.V_WMMA_F32_16X16X16_BF16) +v_wmma_f16_16x16x16_f16 = functools.partial(VOP3P, VOP3POp.V_WMMA_F16_16X16X16_F16) +v_wmma_bf16_16x16x16_bf16 = functools.partial(VOP3P, VOP3POp.V_WMMA_BF16_16X16X16_BF16) +v_wmma_i32_16x16x16_iu8 = functools.partial(VOP3P, VOP3POp.V_WMMA_I32_16X16X16_IU8) +v_wmma_i32_16x16x16_iu4 = functools.partial(VOP3P, VOP3POp.V_WMMA_I32_16X16X16_IU4) +v_wmma_f32_16x16x16_fp8_fp8 = functools.partial(VOP3P, VOP3POp.V_WMMA_F32_16X16X16_FP8_FP8) +v_wmma_f32_16x16x16_fp8_bf8 = functools.partial(VOP3P, VOP3POp.V_WMMA_F32_16X16X16_FP8_BF8) +v_wmma_f32_16x16x16_bf8_fp8 = functools.partial(VOP3P, VOP3POp.V_WMMA_F32_16X16X16_BF8_FP8) +v_wmma_f32_16x16x16_bf8_bf8 = functools.partial(VOP3P, VOP3POp.V_WMMA_F32_16X16X16_BF8_BF8) +v_wmma_i32_16x16x32_iu4 = functools.partial(VOP3P, VOP3POp.V_WMMA_I32_16X16X32_IU4) +v_swmmac_f32_16x16x32_f16 = functools.partial(VOP3P, VOP3POp.V_SWMMAC_F32_16X16X32_F16) +v_swmmac_f32_16x16x32_bf16 = functools.partial(VOP3P, VOP3POp.V_SWMMAC_F32_16X16X32_BF16) +v_swmmac_f16_16x16x32_f16 = functools.partial(VOP3P, VOP3POp.V_SWMMAC_F16_16X16X32_F16) +v_swmmac_bf16_16x16x32_bf16 = functools.partial(VOP3P, VOP3POp.V_SWMMAC_BF16_16X16X32_BF16) +v_swmmac_i32_16x16x32_iu8 = functools.partial(VOP3P, VOP3POp.V_SWMMAC_I32_16X16X32_IU8) +v_swmmac_i32_16x16x32_iu4 = functools.partial(VOP3P, VOP3POp.V_SWMMAC_I32_16X16X32_IU4) +v_swmmac_i32_16x16x64_iu4 = functools.partial(VOP3P, VOP3POp.V_SWMMAC_I32_16X16X64_IU4) +v_swmmac_f32_16x16x32_fp8_fp8 = functools.partial(VOP3P, VOP3POp.V_SWMMAC_F32_16X16X32_FP8_FP8) +v_swmmac_f32_16x16x32_fp8_bf8 = functools.partial(VOP3P, VOP3POp.V_SWMMAC_F32_16X16X32_FP8_BF8) +v_swmmac_f32_16x16x32_bf8_fp8 = functools.partial(VOP3P, VOP3POp.V_SWMMAC_F32_16X16X32_BF8_FP8) +v_swmmac_f32_16x16x32_bf8_bf8 = functools.partial(VOP3P, VOP3POp.V_SWMMAC_F32_16X16X32_BF8_BF8) +dword = functools.partial(VOP3SD, VOP3SDOp.DWORD) +v_add_co_ci_u32 = functools.partial(VOP3SD, VOP3SDOp.V_ADD_CO_CI_U32) +v_sub_co_ci_u32 = functools.partial(VOP3SD, VOP3SDOp.V_SUB_CO_CI_U32) +v_subrev_co_ci_u32 = functools.partial(VOP3SD, VOP3SDOp.V_SUBREV_CO_CI_U32) +v_div_scale_f32 = functools.partial(VOP3SD, VOP3SDOp.V_DIV_SCALE_F32) +v_div_scale_f64 = functools.partial(VOP3SD, VOP3SDOp.V_DIV_SCALE_F64) +v_mad_co_u64_u32 = functools.partial(VOP3SD, VOP3SDOp.V_MAD_CO_U64_U32) +v_mad_co_i64_i32 = functools.partial(VOP3SD, VOP3SDOp.V_MAD_CO_I64_I32) +v_add_co_u32 = functools.partial(VOP3SD, VOP3SDOp.V_ADD_CO_U32) +v_sub_co_u32 = functools.partial(VOP3SD, VOP3SDOp.V_SUB_CO_U32) +v_subrev_co_u32 = functools.partial(VOP3SD, VOP3SDOp.V_SUBREV_CO_U32) +v_cmp_lt_f16_e32 = functools.partial(VOPC, VOPCOp.V_CMP_LT_F16) +v_cmp_eq_f16_e32 = functools.partial(VOPC, VOPCOp.V_CMP_EQ_F16) +v_cmp_le_f16_e32 = functools.partial(VOPC, VOPCOp.V_CMP_LE_F16) +v_cmp_gt_f16_e32 = functools.partial(VOPC, VOPCOp.V_CMP_GT_F16) +v_cmp_lg_f16_e32 = functools.partial(VOPC, VOPCOp.V_CMP_LG_F16) +v_cmp_ge_f16_e32 = functools.partial(VOPC, VOPCOp.V_CMP_GE_F16) +v_cmp_o_f16_e32 = functools.partial(VOPC, VOPCOp.V_CMP_O_F16) +v_cmp_u_f16_e32 = functools.partial(VOPC, VOPCOp.V_CMP_U_F16) +v_cmp_nge_f16_e32 = functools.partial(VOPC, VOPCOp.V_CMP_NGE_F16) +v_cmp_nlg_f16_e32 = functools.partial(VOPC, VOPCOp.V_CMP_NLG_F16) +v_cmp_ngt_f16_e32 = functools.partial(VOPC, VOPCOp.V_CMP_NGT_F16) +v_cmp_nle_f16_e32 = functools.partial(VOPC, VOPCOp.V_CMP_NLE_F16) +v_cmp_neq_f16_e32 = functools.partial(VOPC, VOPCOp.V_CMP_NEQ_F16) +v_cmp_nlt_f16_e32 = functools.partial(VOPC, VOPCOp.V_CMP_NLT_F16) +v_cmp_lt_f32_e32 = functools.partial(VOPC, VOPCOp.V_CMP_LT_F32) +v_cmp_eq_f32_e32 = functools.partial(VOPC, VOPCOp.V_CMP_EQ_F32) +v_cmp_le_f32_e32 = functools.partial(VOPC, VOPCOp.V_CMP_LE_F32) +v_cmp_gt_f32_e32 = functools.partial(VOPC, VOPCOp.V_CMP_GT_F32) +v_cmp_lg_f32_e32 = functools.partial(VOPC, VOPCOp.V_CMP_LG_F32) +v_cmp_ge_f32_e32 = functools.partial(VOPC, VOPCOp.V_CMP_GE_F32) +v_cmp_o_f32_e32 = functools.partial(VOPC, VOPCOp.V_CMP_O_F32) +v_cmp_u_f32_e32 = functools.partial(VOPC, VOPCOp.V_CMP_U_F32) +v_cmp_nge_f32_e32 = functools.partial(VOPC, VOPCOp.V_CMP_NGE_F32) +v_cmp_nlg_f32_e32 = functools.partial(VOPC, VOPCOp.V_CMP_NLG_F32) +v_cmp_ngt_f32_e32 = functools.partial(VOPC, VOPCOp.V_CMP_NGT_F32) +v_cmp_nle_f32_e32 = functools.partial(VOPC, VOPCOp.V_CMP_NLE_F32) +v_cmp_neq_f32_e32 = functools.partial(VOPC, VOPCOp.V_CMP_NEQ_F32) +v_cmp_nlt_f32_e32 = functools.partial(VOPC, VOPCOp.V_CMP_NLT_F32) +v_cmp_lt_f64_e32 = functools.partial(VOPC, VOPCOp.V_CMP_LT_F64) +v_cmp_eq_f64_e32 = functools.partial(VOPC, VOPCOp.V_CMP_EQ_F64) +v_cmp_le_f64_e32 = functools.partial(VOPC, VOPCOp.V_CMP_LE_F64) +v_cmp_gt_f64_e32 = functools.partial(VOPC, VOPCOp.V_CMP_GT_F64) +v_cmp_lg_f64_e32 = functools.partial(VOPC, VOPCOp.V_CMP_LG_F64) +v_cmp_ge_f64_e32 = functools.partial(VOPC, VOPCOp.V_CMP_GE_F64) +v_cmp_o_f64_e32 = functools.partial(VOPC, VOPCOp.V_CMP_O_F64) +v_cmp_u_f64_e32 = functools.partial(VOPC, VOPCOp.V_CMP_U_F64) +v_cmp_nge_f64_e32 = functools.partial(VOPC, VOPCOp.V_CMP_NGE_F64) +v_cmp_nlg_f64_e32 = functools.partial(VOPC, VOPCOp.V_CMP_NLG_F64) +v_cmp_ngt_f64_e32 = functools.partial(VOPC, VOPCOp.V_CMP_NGT_F64) +v_cmp_nle_f64_e32 = functools.partial(VOPC, VOPCOp.V_CMP_NLE_F64) +v_cmp_neq_f64_e32 = functools.partial(VOPC, VOPCOp.V_CMP_NEQ_F64) +v_cmp_nlt_f64_e32 = functools.partial(VOPC, VOPCOp.V_CMP_NLT_F64) +v_cmp_lt_i16_e32 = functools.partial(VOPC, VOPCOp.V_CMP_LT_I16) +v_cmp_eq_i16_e32 = functools.partial(VOPC, VOPCOp.V_CMP_EQ_I16) +v_cmp_le_i16_e32 = functools.partial(VOPC, VOPCOp.V_CMP_LE_I16) +v_cmp_gt_i16_e32 = functools.partial(VOPC, VOPCOp.V_CMP_GT_I16) +v_cmp_ne_i16_e32 = functools.partial(VOPC, VOPCOp.V_CMP_NE_I16) +v_cmp_ge_i16_e32 = functools.partial(VOPC, VOPCOp.V_CMP_GE_I16) +v_cmp_lt_u16_e32 = functools.partial(VOPC, VOPCOp.V_CMP_LT_U16) +v_cmp_eq_u16_e32 = functools.partial(VOPC, VOPCOp.V_CMP_EQ_U16) +v_cmp_le_u16_e32 = functools.partial(VOPC, VOPCOp.V_CMP_LE_U16) +v_cmp_gt_u16_e32 = functools.partial(VOPC, VOPCOp.V_CMP_GT_U16) +v_cmp_ne_u16_e32 = functools.partial(VOPC, VOPCOp.V_CMP_NE_U16) +v_cmp_ge_u16_e32 = functools.partial(VOPC, VOPCOp.V_CMP_GE_U16) +v_cmp_lt_i32_e32 = functools.partial(VOPC, VOPCOp.V_CMP_LT_I32) +v_cmp_eq_i32_e32 = functools.partial(VOPC, VOPCOp.V_CMP_EQ_I32) +v_cmp_le_i32_e32 = functools.partial(VOPC, VOPCOp.V_CMP_LE_I32) +v_cmp_gt_i32_e32 = functools.partial(VOPC, VOPCOp.V_CMP_GT_I32) +v_cmp_ne_i32_e32 = functools.partial(VOPC, VOPCOp.V_CMP_NE_I32) +v_cmp_ge_i32_e32 = functools.partial(VOPC, VOPCOp.V_CMP_GE_I32) +v_cmp_lt_u32_e32 = functools.partial(VOPC, VOPCOp.V_CMP_LT_U32) +v_cmp_eq_u32_e32 = functools.partial(VOPC, VOPCOp.V_CMP_EQ_U32) +v_cmp_le_u32_e32 = functools.partial(VOPC, VOPCOp.V_CMP_LE_U32) +v_cmp_gt_u32_e32 = functools.partial(VOPC, VOPCOp.V_CMP_GT_U32) +v_cmp_ne_u32_e32 = functools.partial(VOPC, VOPCOp.V_CMP_NE_U32) +v_cmp_ge_u32_e32 = functools.partial(VOPC, VOPCOp.V_CMP_GE_U32) +v_cmp_lt_i64_e32 = functools.partial(VOPC, VOPCOp.V_CMP_LT_I64) +v_cmp_eq_i64_e32 = functools.partial(VOPC, VOPCOp.V_CMP_EQ_I64) +v_cmp_le_i64_e32 = functools.partial(VOPC, VOPCOp.V_CMP_LE_I64) +v_cmp_gt_i64_e32 = functools.partial(VOPC, VOPCOp.V_CMP_GT_I64) +v_cmp_ne_i64_e32 = functools.partial(VOPC, VOPCOp.V_CMP_NE_I64) +v_cmp_ge_i64_e32 = functools.partial(VOPC, VOPCOp.V_CMP_GE_I64) +v_cmp_lt_u64_e32 = functools.partial(VOPC, VOPCOp.V_CMP_LT_U64) +v_cmp_eq_u64_e32 = functools.partial(VOPC, VOPCOp.V_CMP_EQ_U64) +v_cmp_le_u64_e32 = functools.partial(VOPC, VOPCOp.V_CMP_LE_U64) +v_cmp_gt_u64_e32 = functools.partial(VOPC, VOPCOp.V_CMP_GT_U64) +v_cmp_ne_u64_e32 = functools.partial(VOPC, VOPCOp.V_CMP_NE_U64) +v_cmp_ge_u64_e32 = functools.partial(VOPC, VOPCOp.V_CMP_GE_U64) +v_cmp_class_f16_e32 = functools.partial(VOPC, VOPCOp.V_CMP_CLASS_F16) +v_cmp_class_f32_e32 = functools.partial(VOPC, VOPCOp.V_CMP_CLASS_F32) +v_cmp_class_f64_e32 = functools.partial(VOPC, VOPCOp.V_CMP_CLASS_F64) +v_cmpx_lt_f16_e32 = functools.partial(VOPC, VOPCOp.V_CMPX_LT_F16) +v_cmpx_eq_f16_e32 = functools.partial(VOPC, VOPCOp.V_CMPX_EQ_F16) +v_cmpx_le_f16_e32 = functools.partial(VOPC, VOPCOp.V_CMPX_LE_F16) +v_cmpx_gt_f16_e32 = functools.partial(VOPC, VOPCOp.V_CMPX_GT_F16) +v_cmpx_lg_f16_e32 = functools.partial(VOPC, VOPCOp.V_CMPX_LG_F16) +v_cmpx_ge_f16_e32 = functools.partial(VOPC, VOPCOp.V_CMPX_GE_F16) +v_cmpx_o_f16_e32 = functools.partial(VOPC, VOPCOp.V_CMPX_O_F16) +v_cmpx_u_f16_e32 = functools.partial(VOPC, VOPCOp.V_CMPX_U_F16) +v_cmpx_nge_f16_e32 = functools.partial(VOPC, VOPCOp.V_CMPX_NGE_F16) +v_cmpx_nlg_f16_e32 = functools.partial(VOPC, VOPCOp.V_CMPX_NLG_F16) +v_cmpx_ngt_f16_e32 = functools.partial(VOPC, VOPCOp.V_CMPX_NGT_F16) +v_cmpx_nle_f16_e32 = functools.partial(VOPC, VOPCOp.V_CMPX_NLE_F16) +v_cmpx_neq_f16_e32 = functools.partial(VOPC, VOPCOp.V_CMPX_NEQ_F16) +v_cmpx_nlt_f16_e32 = functools.partial(VOPC, VOPCOp.V_CMPX_NLT_F16) +v_cmpx_lt_f32_e32 = functools.partial(VOPC, VOPCOp.V_CMPX_LT_F32) +v_cmpx_eq_f32_e32 = functools.partial(VOPC, VOPCOp.V_CMPX_EQ_F32) +v_cmpx_le_f32_e32 = functools.partial(VOPC, VOPCOp.V_CMPX_LE_F32) +v_cmpx_gt_f32_e32 = functools.partial(VOPC, VOPCOp.V_CMPX_GT_F32) +v_cmpx_lg_f32_e32 = functools.partial(VOPC, VOPCOp.V_CMPX_LG_F32) +v_cmpx_ge_f32_e32 = functools.partial(VOPC, VOPCOp.V_CMPX_GE_F32) +v_cmpx_o_f32_e32 = functools.partial(VOPC, VOPCOp.V_CMPX_O_F32) +v_cmpx_u_f32_e32 = functools.partial(VOPC, VOPCOp.V_CMPX_U_F32) +v_cmpx_nge_f32_e32 = functools.partial(VOPC, VOPCOp.V_CMPX_NGE_F32) +v_cmpx_nlg_f32_e32 = functools.partial(VOPC, VOPCOp.V_CMPX_NLG_F32) +v_cmpx_ngt_f32_e32 = functools.partial(VOPC, VOPCOp.V_CMPX_NGT_F32) +v_cmpx_nle_f32_e32 = functools.partial(VOPC, VOPCOp.V_CMPX_NLE_F32) +v_cmpx_neq_f32_e32 = functools.partial(VOPC, VOPCOp.V_CMPX_NEQ_F32) +v_cmpx_nlt_f32_e32 = functools.partial(VOPC, VOPCOp.V_CMPX_NLT_F32) +v_cmpx_lt_f64_e32 = functools.partial(VOPC, VOPCOp.V_CMPX_LT_F64) +v_cmpx_eq_f64_e32 = functools.partial(VOPC, VOPCOp.V_CMPX_EQ_F64) +v_cmpx_le_f64_e32 = functools.partial(VOPC, VOPCOp.V_CMPX_LE_F64) +v_cmpx_gt_f64_e32 = functools.partial(VOPC, VOPCOp.V_CMPX_GT_F64) +v_cmpx_lg_f64_e32 = functools.partial(VOPC, VOPCOp.V_CMPX_LG_F64) +v_cmpx_ge_f64_e32 = functools.partial(VOPC, VOPCOp.V_CMPX_GE_F64) +v_cmpx_o_f64_e32 = functools.partial(VOPC, VOPCOp.V_CMPX_O_F64) +v_cmpx_u_f64_e32 = functools.partial(VOPC, VOPCOp.V_CMPX_U_F64) +v_cmpx_nge_f64_e32 = functools.partial(VOPC, VOPCOp.V_CMPX_NGE_F64) +v_cmpx_nlg_f64_e32 = functools.partial(VOPC, VOPCOp.V_CMPX_NLG_F64) +v_cmpx_ngt_f64_e32 = functools.partial(VOPC, VOPCOp.V_CMPX_NGT_F64) +v_cmpx_nle_f64_e32 = functools.partial(VOPC, VOPCOp.V_CMPX_NLE_F64) +v_cmpx_neq_f64_e32 = functools.partial(VOPC, VOPCOp.V_CMPX_NEQ_F64) +v_cmpx_nlt_f64_e32 = functools.partial(VOPC, VOPCOp.V_CMPX_NLT_F64) +v_cmpx_lt_i16_e32 = functools.partial(VOPC, VOPCOp.V_CMPX_LT_I16) +v_cmpx_eq_i16_e32 = functools.partial(VOPC, VOPCOp.V_CMPX_EQ_I16) +v_cmpx_le_i16_e32 = functools.partial(VOPC, VOPCOp.V_CMPX_LE_I16) +v_cmpx_gt_i16_e32 = functools.partial(VOPC, VOPCOp.V_CMPX_GT_I16) +v_cmpx_ne_i16_e32 = functools.partial(VOPC, VOPCOp.V_CMPX_NE_I16) +v_cmpx_ge_i16_e32 = functools.partial(VOPC, VOPCOp.V_CMPX_GE_I16) +v_cmpx_lt_u16_e32 = functools.partial(VOPC, VOPCOp.V_CMPX_LT_U16) +v_cmpx_eq_u16_e32 = functools.partial(VOPC, VOPCOp.V_CMPX_EQ_U16) +v_cmpx_le_u16_e32 = functools.partial(VOPC, VOPCOp.V_CMPX_LE_U16) +v_cmpx_gt_u16_e32 = functools.partial(VOPC, VOPCOp.V_CMPX_GT_U16) +v_cmpx_ne_u16_e32 = functools.partial(VOPC, VOPCOp.V_CMPX_NE_U16) +v_cmpx_ge_u16_e32 = functools.partial(VOPC, VOPCOp.V_CMPX_GE_U16) +v_cmpx_lt_i32_e32 = functools.partial(VOPC, VOPCOp.V_CMPX_LT_I32) +v_cmpx_eq_i32_e32 = functools.partial(VOPC, VOPCOp.V_CMPX_EQ_I32) +v_cmpx_le_i32_e32 = functools.partial(VOPC, VOPCOp.V_CMPX_LE_I32) +v_cmpx_gt_i32_e32 = functools.partial(VOPC, VOPCOp.V_CMPX_GT_I32) +v_cmpx_ne_i32_e32 = functools.partial(VOPC, VOPCOp.V_CMPX_NE_I32) +v_cmpx_ge_i32_e32 = functools.partial(VOPC, VOPCOp.V_CMPX_GE_I32) +v_cmpx_lt_u32_e32 = functools.partial(VOPC, VOPCOp.V_CMPX_LT_U32) +v_cmpx_eq_u32_e32 = functools.partial(VOPC, VOPCOp.V_CMPX_EQ_U32) +v_cmpx_le_u32_e32 = functools.partial(VOPC, VOPCOp.V_CMPX_LE_U32) +v_cmpx_gt_u32_e32 = functools.partial(VOPC, VOPCOp.V_CMPX_GT_U32) +v_cmpx_ne_u32_e32 = functools.partial(VOPC, VOPCOp.V_CMPX_NE_U32) +v_cmpx_ge_u32_e32 = functools.partial(VOPC, VOPCOp.V_CMPX_GE_U32) +v_cmpx_lt_i64_e32 = functools.partial(VOPC, VOPCOp.V_CMPX_LT_I64) +v_cmpx_eq_i64_e32 = functools.partial(VOPC, VOPCOp.V_CMPX_EQ_I64) +v_cmpx_le_i64_e32 = functools.partial(VOPC, VOPCOp.V_CMPX_LE_I64) +v_cmpx_gt_i64_e32 = functools.partial(VOPC, VOPCOp.V_CMPX_GT_I64) +v_cmpx_ne_i64_e32 = functools.partial(VOPC, VOPCOp.V_CMPX_NE_I64) +v_cmpx_ge_i64_e32 = functools.partial(VOPC, VOPCOp.V_CMPX_GE_I64) +v_cmpx_lt_u64_e32 = functools.partial(VOPC, VOPCOp.V_CMPX_LT_U64) +v_cmpx_eq_u64_e32 = functools.partial(VOPC, VOPCOp.V_CMPX_EQ_U64) +v_cmpx_le_u64_e32 = functools.partial(VOPC, VOPCOp.V_CMPX_LE_U64) +v_cmpx_gt_u64_e32 = functools.partial(VOPC, VOPCOp.V_CMPX_GT_U64) +v_cmpx_ne_u64_e32 = functools.partial(VOPC, VOPCOp.V_CMPX_NE_U64) +v_cmpx_ge_u64_e32 = functools.partial(VOPC, VOPCOp.V_CMPX_GE_U64) +v_cmpx_class_f16_e32 = functools.partial(VOPC, VOPCOp.V_CMPX_CLASS_F16) +v_cmpx_class_f32_e32 = functools.partial(VOPC, VOPCOp.V_CMPX_CLASS_F32) +v_cmpx_class_f64_e32 = functools.partial(VOPC, VOPCOp.V_CMPX_CLASS_F64) +v_dual_fmac_f32 = functools.partial(VOPD, VOPDOp.V_DUAL_FMAC_F32) +v_dual_fmaak_f32 = functools.partial(VOPD, VOPDOp.V_DUAL_FMAAK_F32) +v_dual_fmamk_f32 = functools.partial(VOPD, VOPDOp.V_DUAL_FMAMK_F32) +v_dual_mul_f32 = functools.partial(VOPD, VOPDOp.V_DUAL_MUL_F32) +v_dual_add_f32 = functools.partial(VOPD, VOPDOp.V_DUAL_ADD_F32) +v_dual_sub_f32 = functools.partial(VOPD, VOPDOp.V_DUAL_SUB_F32) +v_dual_subrev_f32 = functools.partial(VOPD, VOPDOp.V_DUAL_SUBREV_F32) +v_dual_mul_dx9_zero_f32 = functools.partial(VOPD, VOPDOp.V_DUAL_MUL_DX9_ZERO_F32) +v_dual_mov_b32 = functools.partial(VOPD, VOPDOp.V_DUAL_MOV_B32) +v_dual_cndmask_b32 = functools.partial(VOPD, VOPDOp.V_DUAL_CNDMASK_B32) +v_dual_max_num_f32 = functools.partial(VOPD, VOPDOp.V_DUAL_MAX_NUM_F32) +v_dual_min_num_f32 = functools.partial(VOPD, VOPDOp.V_DUAL_MIN_NUM_F32) +v_dual_dot2acc_f32_f16 = functools.partial(VOPD, VOPDOp.V_DUAL_DOT2ACC_F32_F16) +v_dual_dot2acc_f32_bf16 = functools.partial(VOPD, VOPDOp.V_DUAL_DOT2ACC_F32_BF16) +v_dual_add_nc_u32 = functools.partial(VOPD, VOPDOp.V_DUAL_ADD_NC_U32) +v_dual_lshlrev_b32 = functools.partial(VOPD, VOPDOp.V_DUAL_LSHLREV_B32) +v_dual_and_b32 = functools.partial(VOPD, VOPDOp.V_DUAL_AND_B32) + +VCC_LO = SrcEnum.VCC_LO +VCC_HI = SrcEnum.VCC_HI +NULL = SrcEnum.NULL +M0 = SrcEnum.M0 +EXEC_LO = SrcEnum.EXEC_LO +EXEC_HI = SrcEnum.EXEC_HI +ZERO = SrcEnum.ZERO +DPP8FI = SrcEnum.DPP8FI +SHARED_BASE = SrcEnum.SHARED_BASE +SHARED_LIMIT = SrcEnum.SHARED_LIMIT +PRIVATE_BASE = SrcEnum.PRIVATE_BASE +PRIVATE_LIMIT = SrcEnum.PRIVATE_LIMIT +POS_HALF = SrcEnum.POS_HALF +NEG_HALF = SrcEnum.NEG_HALF +POS_ONE = SrcEnum.POS_ONE +NEG_ONE = SrcEnum.NEG_ONE +POS_TWO = SrcEnum.POS_TWO +NEG_TWO = SrcEnum.NEG_TWO +POS_FOUR = SrcEnum.POS_FOUR +NEG_FOUR = SrcEnum.NEG_FOUR +INV_2PI = SrcEnum.INV_2PI +VCCZ = SrcEnum.VCCZ +EXECZ = SrcEnum.EXECZ +SCC = SrcEnum.SCC +LDS_DIRECT = SrcEnum.LDS_DIRECT +OFF = NULL diff --git a/extra/assembly/amd/dsl.py b/extra/assembly/amd/dsl.py index 4ae1fbc8f0..a1bea30722 100644 --- a/extra/assembly/amd/dsl.py +++ b/extra/assembly/amd/dsl.py @@ -297,11 +297,11 @@ class Inst: op_name = op.name if hasattr(op, 'name') else None # Look up op name from int if needed (happens in from_bytes path) if op_name is None and self.__class__.__name__ == 'VOP3': - from extra.assembly.amd.autogen.rdna3 import VOP3Op + from extra.assembly.amd.autogen.rdna3.ins import VOP3Op try: op_name = VOP3Op(op).name except ValueError: pass if op_name is None and self.__class__.__name__ == 'VOPC': - from extra.assembly.amd.autogen.rdna3 import VOPCOp + from extra.assembly.amd.autogen.rdna3.ins import VOPCOp try: op_name = VOPCOp(op).name except ValueError: pass if op_name is None: return False diff --git a/extra/assembly/amd/emu.py b/extra/assembly/amd/emu.py index e093104883..b32940dbe4 100644 --- a/extra/assembly/amd/emu.py +++ b/extra/assembly/amd/emu.py @@ -5,10 +5,8 @@ import ctypes, struct from extra.assembly.amd.dsl import Inst, RawImm, unwrap, FLOAT_ENC, MASK32, MASK64, _f32, _i32, _sext, _f16, _i16, _f64, _i64 from extra.assembly.amd.asm import detect_format from extra.assembly.amd.autogen.rdna3.gen_pcode import get_compiled_functions -from extra.assembly.amd.autogen.rdna3 import ( - SOP1, SOP2, SOPC, SOPK, SOPP, SMEM, VOP1, VOP2, VOP3, VOP3SD, VOP3P, VOPC, DS, FLAT, VOPD, SrcEnum, - SOP1Op, SOP2Op, SOPCOp, SOPKOp, SOPPOp, SMEMOp, VOP1Op, VOP2Op, VOP3Op, VOP3SDOp, VOP3POp, VOPCOp, DSOp, FLATOp, GLOBALOp, VOPDOp -) +from extra.assembly.amd.autogen.rdna3.ins import (SOP1, SOP2, SOPC, SOPK, SOPP, SMEM, VOP1, VOP2, VOP3, VOP3SD, VOP3P, VOPC, DS, FLAT, VOPD, + SrcEnum, SOP1Op, SOP2Op, SOPCOp, SOPKOp, SOPPOp, SMEMOp, VOP1Op, VOP2Op, VOP3Op, VOP3SDOp, VOP3POp, VOPCOp, DSOp, FLATOp, GLOBALOp, VOPDOp) Program = dict[int, Inst] WAVE_SIZE, SGPR_COUNT, VGPR_COUNT = 32, 128, 256 diff --git a/extra/assembly/amd/pdf.py b/extra/assembly/amd/pdf.py index 177820a459..a7a91a2166 100644 --- a/extra/assembly/amd/pdf.py +++ b/extra/assembly/amd/pdf.py @@ -393,14 +393,21 @@ def _merge_results(results: list[dict]) -> dict: # CODE GENERATION # ═══════════════════════════════════════════════════════════════════════════════ -def _generate_init_py(formats, enums, src_enum, doc_name) -> str: - """Generate __init__.py content (instruction formats and enums).""" +def _generate_enum_py(enums, src_enum, doc_name) -> str: + """Generate enum.py content (just enums, no dsl.py dependency).""" def enum_lines(name, items): return [f"class {name}(IntEnum):"] + [f" {n} = {v}" for v, n in sorted(items.items())] + [""] - def field_key(f, order): return order.index(f[0].lower()) if f[0].lower() in order else 1000 - lines = [f"# autogenerated from AMD {doc_name} ISA PDF by pdf.py - do not edit", "from enum import IntEnum", "from typing import Annotated", - "from extra.assembly.amd.dsl import bits, BitField, Inst32, Inst64, SGPR, VGPR, TTMP as TTMP, s as s, v as v, ttmp as ttmp, SSrc, Src, SImm, Imm, VDSTYEnc, SGPRField, VGPRField", - "import functools", ""] + lines = [f"# autogenerated from AMD {doc_name} ISA PDF by pdf.py - do not edit", "from enum import IntEnum", ""] lines += enum_lines("SrcEnum", src_enum) + sum([enum_lines(n, ops) for n, ops in sorted(enums.items())], []) + return '\n'.join(lines) + +def _generate_ins_py(formats, enums, src_enum, doc_name) -> str: + """Generate ins.py content (instruction formats and helpers, imports dsl.py and enum.py).""" + def field_key(f, order): return order.index(f[0].lower()) if f[0].lower() in order else 1000 + lines = [f"# autogenerated from AMD {doc_name} ISA PDF by pdf.py - do not edit", + "# ruff: noqa: F401,F403", "from typing import Annotated", + "from extra.assembly.amd.dsl import bits, BitField, Inst32, Inst64, SGPR, VGPR, TTMP as TTMP, s as s, v as v, ttmp as ttmp, SSrc, Src, SImm, Imm, VDSTYEnc, SGPRField, VGPRField", + "from extra.assembly.amd.autogen.{arch}.enum import *", + "import functools", ""] format_defaults = {'VOP3P': {'opsel_hi': 3, 'opsel_hi2': 1}} lines.append("# instruction formats") for fmt_name, fields in sorted(formats.items()): @@ -434,9 +441,9 @@ def _generate_init_py(formats, enums, src_enum, doc_name) -> str: def _generate_gen_pcode_py(enums, pseudocode, arch) -> str: """Generate gen_pcode.py content (compiled pseudocode functions).""" - # Get op enums for this arch + # Get op enums for this arch (import from .ins which re-exports from .enum) import importlib - autogen = importlib.import_module(f"extra.assembly.amd.autogen.{arch}") + autogen = importlib.import_module(f"extra.assembly.amd.autogen.{arch}.ins") OP_ENUMS = [getattr(autogen, name) for name in ['SOP1Op', 'SOP2Op', 'SOPCOp', 'SOPKOp', 'SOPPOp', 'VOP1Op', 'VOP2Op', 'VOP3Op', 'VOP3SDOp', 'VOP3POp', 'VOPCOp', 'VOP3AOp', 'VOP3BOp'] if hasattr(autogen, name)] # Build defined ops mapping @@ -450,7 +457,7 @@ def _generate_gen_pcode_py(enums, pseudocode, arch) -> str: # to regenerate: python -m extra.assembly.amd.pdf --arch {arch} # ruff: noqa: E501,F405,F403 # mypy: ignore-errors -from extra.assembly.amd.autogen.{arch} import {", ".join(enum_names)} +from extra.assembly.amd.autogen.{arch}.enum import {", ".join(enum_names)} from extra.assembly.amd.pcode import * '''] @@ -579,7 +586,7 @@ def _generate_function(cls_name: str, op, pc: str, code: str) -> tuple[str, str] # ═══════════════════════════════════════════════════════════════════════════════ def generate_arch(arch: str) -> dict: - """Generate both __init__.py and gen_pcode.py for a single architecture.""" + """Generate enum.py, ins.py and gen_pcode.py for a single architecture.""" urls = PDF_URLS[arch] if isinstance(urls, str): urls = [urls] @@ -589,15 +596,24 @@ def generate_arch(arch: str) -> dict: merged = _merge_results(results) if len(results) > 1 else results[0] doc_name = "+".join(merged["doc_names"]) if len(results) > 1 else merged["doc_name"] - # Write __init__.py - init_path = Path(f"extra/assembly/amd/autogen/{arch}/__init__.py") - init_path.parent.mkdir(parents=True, exist_ok=True) - init_content = _generate_init_py(merged["formats"], merged["enums"], merged["src_enum"], doc_name) - init_path.write_text(init_content) - print(f"Generated {init_path}: SrcEnum ({len(merged['src_enum'])}) + {len(merged['enums'])} enums + {len(merged['formats'])} formats") + base_path = Path(f"extra/assembly/amd/autogen/{arch}") + base_path.mkdir(parents=True, exist_ok=True) + (base_path / "__init__.py").touch() - # Write gen_pcode.py (needs __init__.py to exist first for imports) - pcode_path = Path(f"extra/assembly/amd/autogen/{arch}/gen_pcode.py") + # Write enum.py (enums only, no dsl.py dependency) + enum_path = base_path / "enum.py" + enum_content = _generate_enum_py(merged["enums"], merged["src_enum"], doc_name) + enum_path.write_text(enum_content) + print(f"Generated {enum_path}: SrcEnum ({len(merged['src_enum'])}) + {len(merged['enums'])} enums") + + # Write ins.py (instruction formats and helpers, imports dsl.py and enum.py) + ins_path = base_path / "ins.py" + ins_content = _generate_ins_py(merged["formats"], merged["enums"], merged["src_enum"], doc_name).replace("{arch}", arch) + ins_path.write_text(ins_content) + print(f"Generated {ins_path}: {len(merged['formats'])} formats") + + # Write gen_pcode.py (needs enum.py to exist first for imports) + pcode_path = base_path / "gen_pcode.py" pcode_content = _generate_gen_pcode_py(merged["enums"], merged["pseudocode"], arch) pcode_path.write_text(pcode_content) print(f"Generated {pcode_path}: {len(merged['pseudocode'])} instructions") diff --git a/extra/assembly/amd/test/external_test_usability.py b/extra/assembly/amd/test/external_test_usability.py index df29891a67..07f09562b9 100644 --- a/extra/assembly/amd/test/external_test_usability.py +++ b/extra/assembly/amd/test/external_test_usability.py @@ -3,7 +3,7 @@ # Currently many of these tests fail - they document desired behavior import unittest -from extra.assembly.amd.autogen.rdna3 import * +from extra.assembly.amd.autogen.rdna3.ins import * from extra.assembly.amd.dsl import Inst, RawImm, SGPR, VGPR class TestRegisterSliceSyntax(unittest.TestCase): diff --git a/extra/assembly/amd/test/test_emu.py b/extra/assembly/amd/test/test_emu.py index d8a57fba6c..9605d15b79 100644 --- a/extra/assembly/amd/test/test_emu.py +++ b/extra/assembly/amd/test/test_emu.py @@ -6,7 +6,7 @@ Set USE_HW=1 to run on both emulator and real hardware, comparing results. """ import ctypes, unittest, os, struct -from extra.assembly.amd.autogen.rdna3 import * +from extra.assembly.amd.autogen.rdna3.ins import * from extra.assembly.amd.dsl import RawImm from extra.assembly.amd.emu import WaveState, run_asm, set_valid_mem_ranges from extra.assembly.amd.pcode import _i32, _f32 diff --git a/extra/assembly/amd/test/test_formats.py b/extra/assembly/amd/test/test_formats.py index 21fe926546..1c2a674322 100644 --- a/extra/assembly/amd/test/test_formats.py +++ b/extra/assembly/amd/test/test_formats.py @@ -1,7 +1,7 @@ #!/usr/bin/env python3 """Test MUBUF, MTBUF, MIMG, EXP, DS formats against LLVM.""" import unittest -from extra.assembly.amd.autogen.rdna3 import * +from extra.assembly.amd.autogen.rdna3.ins import * from extra.assembly.amd.dsl import encode_src, RawImm from extra.assembly.amd.asm import detect_format diff --git a/extra/assembly/amd/test/test_handwritten.py b/extra/assembly/amd/test/test_handwritten.py index cfe52dd52b..1348764c51 100644 --- a/extra/assembly/amd/test/test_handwritten.py +++ b/extra/assembly/amd/test/test_handwritten.py @@ -2,7 +2,7 @@ # the Inst constructor should be looking at the types of the fields to correctly set the value import unittest, struct -from extra.assembly.amd.autogen.rdna3 import * +from extra.assembly.amd.autogen.rdna3.ins import * from extra.assembly.amd.dsl import Inst from extra.assembly.amd.asm import asm from extra.assembly.amd.test.test_roundtrip import compile_asm diff --git a/extra/assembly/amd/test/test_integration.py b/extra/assembly/amd/test/test_integration.py index 6c98976423..c03e473b2b 100644 --- a/extra/assembly/amd/test/test_integration.py +++ b/extra/assembly/amd/test/test_integration.py @@ -1,7 +1,7 @@ #!/usr/bin/env python3 """Integration test: round-trip RDNA3 assembly through AMD toolchain.""" import unittest, re, io, sys, subprocess -from extra.assembly.amd.autogen.rdna3 import * +from extra.assembly.amd.autogen.rdna3.ins import * from extra.assembly.amd.asm import waitcnt, asm from extra.assembly.amd.test.helpers import get_llvm_mc diff --git a/extra/assembly/amd/test/test_llvm.py b/extra/assembly/amd/test/test_llvm.py index 955b3239a2..ca6010fdcf 100644 --- a/extra/assembly/amd/test/test_llvm.py +++ b/extra/assembly/amd/test/test_llvm.py @@ -2,7 +2,7 @@ """Test RDNA3 assembler/disassembler against LLVM test vectors.""" import unittest, re, subprocess from tinygrad.helpers import fetch -from extra.assembly.amd.autogen.rdna3 import * +from extra.assembly.amd.autogen.rdna3.ins import * from extra.assembly.amd.asm import asm from extra.assembly.amd.test.helpers import get_llvm_mc diff --git a/extra/assembly/amd/test/test_pdf_parser.py b/extra/assembly/amd/test/test_pdf_parser.py index 92a565213a..91e648352d 100644 --- a/extra/assembly/amd/test/test_pdf_parser.py +++ b/extra/assembly/amd/test/test_pdf_parser.py @@ -1,10 +1,7 @@ #!/usr/bin/env python3 """Test that PDF parser correctly extracts format fields.""" import unittest, os -from extra.assembly.amd.autogen.rdna3 import ( - SOP1, SOP2, SOPK, SOPP, VOP1, VOP2, VOP3SD, VOPC, FLAT, VOPD, - SOP1Op, SOP2Op, VOP1Op, VOP3Op -) +from extra.assembly.amd.autogen.rdna3.ins import SOP1, SOP2, SOPK, SOPP, VOP1, VOP2, VOP3SD, VOPC, FLAT, VOPD, SOP1Op, SOP2Op, VOP1Op, VOP3Op # expected formats with key fields and whether they have ENCODING EXPECTED_FORMATS = { diff --git a/extra/assembly/amd/test/test_rdna3_asm.py b/extra/assembly/amd/test/test_rdna3_asm.py index 74ba86d9f7..9fcd1243cb 100644 --- a/extra/assembly/amd/test/test_rdna3_asm.py +++ b/extra/assembly/amd/test/test_rdna3_asm.py @@ -1,6 +1,6 @@ #!/usr/bin/env python3 import unittest, subprocess -from extra.assembly.amd.autogen.rdna3 import * +from extra.assembly.amd.autogen.rdna3.ins import * from extra.assembly.amd.test.helpers import get_llvm_mc def llvm_assemble(asm: str) -> bytes: diff --git a/extra/assembly/amd/test/test_roundtrip.py b/extra/assembly/amd/test/test_roundtrip.py index d2660ab140..cc9ff9c66b 100644 --- a/extra/assembly/amd/test/test_roundtrip.py +++ b/extra/assembly/amd/test/test_roundtrip.py @@ -1,7 +1,7 @@ #!/usr/bin/env python3 """Roundtrip tests: generate tinygrad kernels, decode instructions, re-encode, verify match.""" import unittest, io, sys, re, subprocess, os -from extra.assembly.amd.autogen.rdna3 import * +from extra.assembly.amd.autogen.rdna3.ins import * from extra.assembly.amd.dsl import Inst from extra.assembly.amd.asm import asm from extra.assembly.amd.asm import detect_format diff --git a/extra/remu/test/hwtest.py b/extra/remu/test/hwtest.py index 19d10909fd..e740a1b4a2 100644 --- a/extra/remu/test/hwtest.py +++ b/extra/remu/test/hwtest.py @@ -11,7 +11,7 @@ from tinygrad.runtime.support.compiler_amd import amdgpu_disassemble from tinygrad.renderer import ProgramSpec from tinygrad.engine.realize import CompiledRunner -from extra.assembly.amd.autogen.rdna3 import * +from extra.assembly.amd.autogen.rdna3.ins import * from extra.assembly.amd.asm import waitcnt from test.testextra.test_cfg_viz import template diff --git a/test/testextra/test_cfg_viz.py b/test/testextra/test_cfg_viz.py index 329e11268f..fb5e42d851 100644 --- a/test/testextra/test_cfg_viz.py +++ b/test/testextra/test_cfg_viz.py @@ -10,7 +10,7 @@ from tinygrad.renderer import ProgramSpec from tinygrad.helpers import TracingKey, getenv from tinygrad.engine.realize import ExecItem, CompiledRunner -from extra.assembly.amd.autogen.rdna3 import * +from extra.assembly.amd.autogen.rdna3.ins import * # TODO: use the RDNA3 renderer when it's in master template = """.text