/*
 * Copyright (c) 2015-2021 Advanced Micro Devices, Inc.
 * All rights reserved.
 *
 * Redistribution and use in source and binary forms, with or without
 * modification, are permitted provided that the following conditions are met:
 *
 * 1. Redistributions of source code must retain the above copyright notice,
 * this list of conditions and the following disclaimer.
 *
 * 2. Redistributions in binary form must reproduce the above copyright notice,
 * this list of conditions and the following disclaimer in the documentation
 * and/or other materials provided with the distribution.
 *
 * 3. Neither the name of the copyright holder nor the names of its
 * contributors may be used to endorse or promote products derived from this
 * software without specific prior written permission.
 *
 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
 * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
 * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
 * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
 * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
 * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
 * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
 * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
 * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
 * POSSIBILITY OF SUCH DAMAGE.
 */

#include <vector>

#include "arch/amdgpu/vega/gpu_decoder.hh"
#include "arch/amdgpu/vega/insts/gpu_static_inst.hh"
#include "arch/amdgpu/vega/insts/instructions.hh"

namespace gem5
{

namespace VegaISA
{
    Decoder::Decoder()
    {
    } // Decoder

    Decoder::~Decoder()
    {
    } // ~Decoder

    /*
     * These will probably have to be updated according to the Vega ISA manual:
     * https://developer.amd.com/wp-content/resources/
     * Vega_Shader_ISA_28July2017.pdf
     */
    IsaDecodeMethod Decoder::tableDecodePrimary[] = {
        &Decoder::decode_OP_VOP2__V_CNDMASK_B32,
        &Decoder::decode_OP_VOP2__V_CNDMASK_B32,
        &Decoder::decode_OP_VOP2__V_CNDMASK_B32,
        &Decoder::decode_OP_VOP2__V_CNDMASK_B32,
        &Decoder::decode_OP_VOP2__V_ADD_F32,
        &Decoder::decode_OP_VOP2__V_ADD_F32,
        &Decoder::decode_OP_VOP2__V_ADD_F32,
        &Decoder::decode_OP_VOP2__V_ADD_F32,
        &Decoder::decode_OP_VOP2__V_SUB_F32,
        &Decoder::decode_OP_VOP2__V_SUB_F32,
        &Decoder::decode_OP_VOP2__V_SUB_F32,
        &Decoder::decode_OP_VOP2__V_SUB_F32,
        &Decoder::decode_OP_VOP2__V_SUBREV_F32,
        &Decoder::decode_OP_VOP2__V_SUBREV_F32,
        &Decoder::decode_OP_VOP2__V_SUBREV_F32,
        &Decoder::decode_OP_VOP2__V_SUBREV_F32,
        &Decoder::decode_OP_VOP2__V_MUL_LEGACY_F32,
        &Decoder::decode_OP_VOP2__V_MUL_LEGACY_F32,
        &Decoder::decode_OP_VOP2__V_MUL_LEGACY_F32,
        &Decoder::decode_OP_VOP2__V_MUL_LEGACY_F32,
        &Decoder::decode_OP_VOP2__V_MUL_F32,
        &Decoder::decode_OP_VOP2__V_MUL_F32,
        &Decoder::decode_OP_VOP2__V_MUL_F32,
        &Decoder::decode_OP_VOP2__V_MUL_F32,
        &Decoder::decode_OP_VOP2__V_MUL_I32_I24,
        &Decoder::decode_OP_VOP2__V_MUL_I32_I24,
        &Decoder::decode_OP_VOP2__V_MUL_I32_I24,
        &Decoder::decode_OP_VOP2__V_MUL_I32_I24,
        &Decoder::decode_OP_VOP2__V_MUL_HI_I32_I24,
        &Decoder::decode_OP_VOP2__V_MUL_HI_I32_I24,
        &Decoder::decode_OP_VOP2__V_MUL_HI_I32_I24,
        &Decoder::decode_OP_VOP2__V_MUL_HI_I32_I24,
        &Decoder::decode_OP_VOP2__V_MUL_U32_U24,
        &Decoder::decode_OP_VOP2__V_MUL_U32_U24,
        &Decoder::decode_OP_VOP2__V_MUL_U32_U24,
        &Decoder::decode_OP_VOP2__V_MUL_U32_U24,
        &Decoder::decode_OP_VOP2__V_MUL_HI_U32_U24,
        &Decoder::decode_OP_VOP2__V_MUL_HI_U32_U24,
        &Decoder::decode_OP_VOP2__V_MUL_HI_U32_U24,
        &Decoder::decode_OP_VOP2__V_MUL_HI_U32_U24,
        &Decoder::decode_OP_VOP2__V_MIN_F32,
        &Decoder::decode_OP_VOP2__V_MIN_F32,
        &Decoder::decode_OP_VOP2__V_MIN_F32,
        &Decoder::decode_OP_VOP2__V_MIN_F32,
        &Decoder::decode_OP_VOP2__V_MAX_F32,
        &Decoder::decode_OP_VOP2__V_MAX_F32,
        &Decoder::decode_OP_VOP2__V_MAX_F32,
        &Decoder::decode_OP_VOP2__V_MAX_F32,
        &Decoder::decode_OP_VOP2__V_MIN_I32,
        &Decoder::decode_OP_VOP2__V_MIN_I32,
        &Decoder::decode_OP_VOP2__V_MIN_I32,
        &Decoder::decode_OP_VOP2__V_MIN_I32,
        &Decoder::decode_OP_VOP2__V_MAX_I32,
        &Decoder::decode_OP_VOP2__V_MAX_I32,
        &Decoder::decode_OP_VOP2__V_MAX_I32,
        &Decoder::decode_OP_VOP2__V_MAX_I32,
        &Decoder::decode_OP_VOP2__V_MIN_U32,
        &Decoder::decode_OP_VOP2__V_MIN_U32,
        &Decoder::decode_OP_VOP2__V_MIN_U32,
        &Decoder::decode_OP_VOP2__V_MIN_U32,
        &Decoder::decode_OP_VOP2__V_MAX_U32,
        &Decoder::decode_OP_VOP2__V_MAX_U32,
        &Decoder::decode_OP_VOP2__V_MAX_U32,
        &Decoder::decode_OP_VOP2__V_MAX_U32,
        &Decoder::decode_OP_VOP2__V_LSHRREV_B32,
        &Decoder::decode_OP_VOP2__V_LSHRREV_B32,
        &Decoder::decode_OP_VOP2__V_LSHRREV_B32,
        &Decoder::decode_OP_VOP2__V_LSHRREV_B32,
        &Decoder::decode_OP_VOP2__V_ASHRREV_I32,
        &Decoder::decode_OP_VOP2__V_ASHRREV_I32,
        &Decoder::decode_OP_VOP2__V_ASHRREV_I32,
        &Decoder::decode_OP_VOP2__V_ASHRREV_I32,
        &Decoder::decode_OP_VOP2__V_LSHLREV_B32,
        &Decoder::decode_OP_VOP2__V_LSHLREV_B32,
        &Decoder::decode_OP_VOP2__V_LSHLREV_B32,
        &Decoder::decode_OP_VOP2__V_LSHLREV_B32,
        &Decoder::decode_OP_VOP2__V_AND_B32,
        &Decoder::decode_OP_VOP2__V_AND_B32,
        &Decoder::decode_OP_VOP2__V_AND_B32,
        &Decoder::decode_OP_VOP2__V_AND_B32,
        &Decoder::decode_OP_VOP2__V_OR_B32,
        &Decoder::decode_OP_VOP2__V_OR_B32,
        &Decoder::decode_OP_VOP2__V_OR_B32,
        &Decoder::decode_OP_VOP2__V_OR_B32,
        &Decoder::decode_OP_VOP2__V_XOR_B32,
        &Decoder::decode_OP_VOP2__V_XOR_B32,
        &Decoder::decode_OP_VOP2__V_XOR_B32,
        &Decoder::decode_OP_VOP2__V_XOR_B32,
        &Decoder::decode_OP_VOP2__V_MAC_F32,
        &Decoder::decode_OP_VOP2__V_MAC_F32,
        &Decoder::decode_OP_VOP2__V_MAC_F32,
        &Decoder::decode_OP_VOP2__V_MAC_F32,
        &Decoder::decode_OP_VOP2__V_MADMK_F32,
        &Decoder::decode_OP_VOP2__V_MADMK_F32,
        &Decoder::decode_OP_VOP2__V_MADMK_F32,
        &Decoder::decode_OP_VOP2__V_MADMK_F32,
        &Decoder::decode_OP_VOP2__V_MADAK_F32,
        &Decoder::decode_OP_VOP2__V_MADAK_F32,
        &Decoder::decode_OP_VOP2__V_MADAK_F32,
        &Decoder::decode_OP_VOP2__V_MADAK_F32,
        &Decoder::decode_OP_VOP2__V_ADD_CO_U32,
        &Decoder::decode_OP_VOP2__V_ADD_CO_U32,
        &Decoder::decode_OP_VOP2__V_ADD_CO_U32,
        &Decoder::decode_OP_VOP2__V_ADD_CO_U32,
        &Decoder::decode_OP_VOP2__V_SUB_CO_U32,
        &Decoder::decode_OP_VOP2__V_SUB_CO_U32,
        &Decoder::decode_OP_VOP2__V_SUB_CO_U32,
        &Decoder::decode_OP_VOP2__V_SUB_CO_U32,
        &Decoder::decode_OP_VOP2__V_SUBREV_CO_U32,
        &Decoder::decode_OP_VOP2__V_SUBREV_CO_U32,
        &Decoder::decode_OP_VOP2__V_SUBREV_CO_U32,
        &Decoder::decode_OP_VOP2__V_SUBREV_CO_U32,
        &Decoder::decode_OP_VOP2__V_ADDC_CO_U32,
        &Decoder::decode_OP_VOP2__V_ADDC_CO_U32,
        &Decoder::decode_OP_VOP2__V_ADDC_CO_U32,
        &Decoder::decode_OP_VOP2__V_ADDC_CO_U32,
        &Decoder::decode_OP_VOP2__V_SUBB_CO_U32,
        &Decoder::decode_OP_VOP2__V_SUBB_CO_U32,
        &Decoder::decode_OP_VOP2__V_SUBB_CO_U32,
        &Decoder::decode_OP_VOP2__V_SUBB_CO_U32,
        &Decoder::decode_OP_VOP2__V_SUBBREV_CO_U32,
        &Decoder::decode_OP_VOP2__V_SUBBREV_CO_U32,
        &Decoder::decode_OP_VOP2__V_SUBBREV_CO_U32,
        &Decoder::decode_OP_VOP2__V_SUBBREV_CO_U32,
        &Decoder::decode_OP_VOP2__V_ADD_F16,
        &Decoder::decode_OP_VOP2__V_ADD_F16,
        &Decoder::decode_OP_VOP2__V_ADD_F16,
        &Decoder::decode_OP_VOP2__V_ADD_F16,
        &Decoder::decode_OP_VOP2__V_SUB_F16,
        &Decoder::decode_OP_VOP2__V_SUB_F16,
        &Decoder::decode_OP_VOP2__V_SUB_F16,
        &Decoder::decode_OP_VOP2__V_SUB_F16,
        &Decoder::decode_OP_VOP2__V_SUBREV_F16,
        &Decoder::decode_OP_VOP2__V_SUBREV_F16,
        &Decoder::decode_OP_VOP2__V_SUBREV_F16,
        &Decoder::decode_OP_VOP2__V_SUBREV_F16,
        &Decoder::decode_OP_VOP2__V_MUL_F16,
        &Decoder::decode_OP_VOP2__V_MUL_F16,
        &Decoder::decode_OP_VOP2__V_MUL_F16,
        &Decoder::decode_OP_VOP2__V_MUL_F16,
        &Decoder::decode_OP_VOP2__V_MAC_F16,
        &Decoder::decode_OP_VOP2__V_MAC_F16,
        &Decoder::decode_OP_VOP2__V_MAC_F16,
        &Decoder::decode_OP_VOP2__V_MAC_F16,
        &Decoder::decode_OP_VOP2__V_MADMK_F16,
        &Decoder::decode_OP_VOP2__V_MADMK_F16,
        &Decoder::decode_OP_VOP2__V_MADMK_F16,
        &Decoder::decode_OP_VOP2__V_MADMK_F16,
        &Decoder::decode_OP_VOP2__V_MADAK_F16,
        &Decoder::decode_OP_VOP2__V_MADAK_F16,
        &Decoder::decode_OP_VOP2__V_MADAK_F16,
        &Decoder::decode_OP_VOP2__V_MADAK_F16,
        &Decoder::decode_OP_VOP2__V_ADD_U16,
        &Decoder::decode_OP_VOP2__V_ADD_U16,
        &Decoder::decode_OP_VOP2__V_ADD_U16,
        &Decoder::decode_OP_VOP2__V_ADD_U16,
        &Decoder::decode_OP_VOP2__V_SUB_U16,
        &Decoder::decode_OP_VOP2__V_SUB_U16,
        &Decoder::decode_OP_VOP2__V_SUB_U16,
        &Decoder::decode_OP_VOP2__V_SUB_U16,
        &Decoder::decode_OP_VOP2__V_SUBREV_U16,
        &Decoder::decode_OP_VOP2__V_SUBREV_U16,
        &Decoder::decode_OP_VOP2__V_SUBREV_U16,
        &Decoder::decode_OP_VOP2__V_SUBREV_U16,
        &Decoder::decode_OP_VOP2__V_MUL_LO_U16,
        &Decoder::decode_OP_VOP2__V_MUL_LO_U16,
        &Decoder::decode_OP_VOP2__V_MUL_LO_U16,
        &Decoder::decode_OP_VOP2__V_MUL_LO_U16,
        &Decoder::decode_OP_VOP2__V_LSHLREV_B16,
        &Decoder::decode_OP_VOP2__V_LSHLREV_B16,
        &Decoder::decode_OP_VOP2__V_LSHLREV_B16,
        &Decoder::decode_OP_VOP2__V_LSHLREV_B16,
        &Decoder::decode_OP_VOP2__V_LSHRREV_B16,
        &Decoder::decode_OP_VOP2__V_LSHRREV_B16,
        &Decoder::decode_OP_VOP2__V_LSHRREV_B16,
        &Decoder::decode_OP_VOP2__V_LSHRREV_B16,
        &Decoder::decode_OP_VOP2__V_ASHRREV_I16,
        &Decoder::decode_OP_VOP2__V_ASHRREV_I16,
        &Decoder::decode_OP_VOP2__V_ASHRREV_I16,
        &Decoder::decode_OP_VOP2__V_ASHRREV_I16,
        &Decoder::decode_OP_VOP2__V_MAX_F16,
        &Decoder::decode_OP_VOP2__V_MAX_F16,
        &Decoder::decode_OP_VOP2__V_MAX_F16,
        &Decoder::decode_OP_VOP2__V_MAX_F16,
        &Decoder::decode_OP_VOP2__V_MIN_F16,
        &Decoder::decode_OP_VOP2__V_MIN_F16,
        &Decoder::decode_OP_VOP2__V_MIN_F16,
        &Decoder::decode_OP_VOP2__V_MIN_F16,
        &Decoder::decode_OP_VOP2__V_MAX_U16,
        &Decoder::decode_OP_VOP2__V_MAX_U16,
        &Decoder::decode_OP_VOP2__V_MAX_U16,
        &Decoder::decode_OP_VOP2__V_MAX_U16,
        &Decoder::decode_OP_VOP2__V_MAX_I16,
        &Decoder::decode_OP_VOP2__V_MAX_I16,
        &Decoder::decode_OP_VOP2__V_MAX_I16,
        &Decoder::decode_OP_VOP2__V_MAX_I16,
        &Decoder::decode_OP_VOP2__V_MIN_U16,
        &Decoder::decode_OP_VOP2__V_MIN_U16,
        &Decoder::decode_OP_VOP2__V_MIN_U16,
        &Decoder::decode_OP_VOP2__V_MIN_U16,
        &Decoder::decode_OP_VOP2__V_MIN_I16,
        &Decoder::decode_OP_VOP2__V_MIN_I16,
        &Decoder::decode_OP_VOP2__V_MIN_I16,
        &Decoder::decode_OP_VOP2__V_MIN_I16,
        &Decoder::decode_OP_VOP2__V_LDEXP_F16,
        &Decoder::decode_OP_VOP2__V_LDEXP_F16,
        &Decoder::decode_OP_VOP2__V_LDEXP_F16,
        &Decoder::decode_OP_VOP2__V_LDEXP_F16,
        &Decoder::decode_OP_VOP2__V_ADD_U32,
        &Decoder::decode_OP_VOP2__V_ADD_U32,
        &Decoder::decode_OP_VOP2__V_ADD_U32,
        &Decoder::decode_OP_VOP2__V_ADD_U32,
        &Decoder::decode_OP_VOP2__V_SUB_U32,
        &Decoder::decode_OP_VOP2__V_SUB_U32,
        &Decoder::decode_OP_VOP2__V_SUB_U32,
        &Decoder::decode_OP_VOP2__V_SUB_U32,
        &Decoder::decode_OP_VOP2__V_SUBREV_U32,
        &Decoder::decode_OP_VOP2__V_SUBREV_U32,
        &Decoder::decode_OP_VOP2__V_SUBREV_U32,
        &Decoder::decode_OP_VOP2__V_SUBREV_U32,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::subDecode_OP_VOPC,
        &Decoder::subDecode_OP_VOPC,
        &Decoder::subDecode_OP_VOPC,
        &Decoder::subDecode_OP_VOPC,
        &Decoder::subDecode_OP_VOP1,
        &Decoder::subDecode_OP_VOP1,
        &Decoder::subDecode_OP_VOP1,
        &Decoder::subDecode_OP_VOP1,
        &Decoder::decode_OP_SOP2__S_ADD_U32,
        &Decoder::decode_OP_SOP2__S_SUB_U32,
        &Decoder::decode_OP_SOP2__S_ADD_I32,
        &Decoder::decode_OP_SOP2__S_SUB_I32,
        &Decoder::decode_OP_SOP2__S_ADDC_U32,
        &Decoder::decode_OP_SOP2__S_SUBB_U32,
        &Decoder::decode_OP_SOP2__S_MIN_I32,
        &Decoder::decode_OP_SOP2__S_MIN_U32,
        &Decoder::decode_OP_SOP2__S_MAX_I32,
        &Decoder::decode_OP_SOP2__S_MAX_U32,
        &Decoder::decode_OP_SOP2__S_CSELECT_B32,
        &Decoder::decode_OP_SOP2__S_CSELECT_B64,
        &Decoder::decode_OP_SOP2__S_AND_B32,
        &Decoder::decode_OP_SOP2__S_AND_B64,
        &Decoder::decode_OP_SOP2__S_OR_B32,
        &Decoder::decode_OP_SOP2__S_OR_B64,
        &Decoder::decode_OP_SOP2__S_XOR_B32,
        &Decoder::decode_OP_SOP2__S_XOR_B64,
        &Decoder::decode_OP_SOP2__S_ANDN2_B32,
        &Decoder::decode_OP_SOP2__S_ANDN2_B64,
        &Decoder::decode_OP_SOP2__S_ORN2_B32,
        &Decoder::decode_OP_SOP2__S_ORN2_B64,
        &Decoder::decode_OP_SOP2__S_NAND_B32,
        &Decoder::decode_OP_SOP2__S_NAND_B64,
        &Decoder::decode_OP_SOP2__S_NOR_B32,
        &Decoder::decode_OP_SOP2__S_NOR_B64,
        &Decoder::decode_OP_SOP2__S_XNOR_B32,
        &Decoder::decode_OP_SOP2__S_XNOR_B64,
        &Decoder::decode_OP_SOP2__S_LSHL_B32,
        &Decoder::decode_OP_SOP2__S_LSHL_B64,
        &Decoder::decode_OP_SOP2__S_LSHR_B32,
        &Decoder::decode_OP_SOP2__S_LSHR_B64,
        &Decoder::decode_OP_SOP2__S_ASHR_I32,
        &Decoder::decode_OP_SOP2__S_ASHR_I64,
        &Decoder::decode_OP_SOP2__S_BFM_B32,
        &Decoder::decode_OP_SOP2__S_BFM_B64,
        &Decoder::decode_OP_SOP2__S_MUL_I32,
        &Decoder::decode_OP_SOP2__S_BFE_U32,
        &Decoder::decode_OP_SOP2__S_BFE_I32,
        &Decoder::decode_OP_SOP2__S_BFE_U64,
        &Decoder::decode_OP_SOP2__S_BFE_I64,
        &Decoder::decode_OP_SOP2__S_CBRANCH_G_FORK,
        &Decoder::decode_OP_SOP2__S_ABSDIFF_I32,
        &Decoder::decode_OP_SOP2__S_RFE_RESTORE_B64,
        &Decoder::decode_OP_SOP2__S_MUL_HI_U32,
        &Decoder::decode_OP_SOP2__S_MUL_HI_I32,
        &Decoder::decode_OP_SOP2__S_LSHL1_ADD_U32,
        &Decoder::decode_OP_SOP2__S_LSHL2_ADD_U32,
        &Decoder::decode_OP_SOP2__S_LSHL3_ADD_U32,
        &Decoder::decode_OP_SOP2__S_LSHL4_ADD_U32,
        &Decoder::decode_OP_SOP2__S_PACK_LL_B32_B16,
        &Decoder::decode_OP_SOP2__S_PACK_LH_B32_B16,
        &Decoder::decode_OP_SOP2__S_HH_B32_B16,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_OP_SOPK__S_MOVK_I32,
        &Decoder::decode_OP_SOPK__S_CMOVK_I32,
        &Decoder::decode_OP_SOPK__S_CMPK_EQ_I32,
        &Decoder::decode_OP_SOPK__S_CMPK_LG_I32,
        &Decoder::decode_OP_SOPK__S_CMPK_GT_I32,
        &Decoder::decode_OP_SOPK__S_CMPK_GE_I32,
        &Decoder::decode_OP_SOPK__S_CMPK_LT_I32,
        &Decoder::decode_OP_SOPK__S_CMPK_LE_I32,
        &Decoder::decode_OP_SOPK__S_CMPK_EQ_U32,
        &Decoder::decode_OP_SOPK__S_CMPK_LG_U32,
        &Decoder::decode_OP_SOPK__S_CMPK_GT_U32,
        &Decoder::decode_OP_SOPK__S_CMPK_GE_U32,
        &Decoder::decode_OP_SOPK__S_CMPK_LT_U32,
        &Decoder::decode_OP_SOPK__S_CMPK_LE_U32,
        &Decoder::decode_OP_SOPK__S_ADDK_I32,
        &Decoder::decode_OP_SOPK__S_MULK_I32,
        &Decoder::decode_OP_SOPK__S_CBRANCH_I_FORK,
        &Decoder::decode_OP_SOPK__S_GETREG_B32,
        &Decoder::decode_OP_SOPK__S_SETREG_B32,
        &Decoder::decode_invalid,
        &Decoder::decode_OP_SOPK__S_SETREG_IMM32_B32,
        &Decoder::decode_OP_SOPK__S_CALL_B64,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::subDecode_OP_SOP1,
        &Decoder::subDecode_OP_SOPC,
        &Decoder::subDecode_OP_SOPP,
        &Decoder::subDecode_OP_SMEM,
        &Decoder::subDecode_OP_SMEM,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_OP_EXP,
        &Decoder::decode_OP_EXP,
        &Decoder::decode_OP_EXP,
        &Decoder::decode_OP_EXP,
        &Decoder::decode_OP_EXP,
        &Decoder::decode_OP_EXP,
        &Decoder::decode_OP_EXP,
        &Decoder::decode_OP_EXP,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::subDecode_OPU_VOP3,
        &Decoder::subDecode_OPU_VOP3,
        &Decoder::subDecode_OPU_VOP3,
        &Decoder::subDecode_OPU_VOP3,
        &Decoder::subDecode_OPU_VOP3,
        &Decoder::subDecode_OPU_VOP3,
        &Decoder::decode_invalid,
        &Decoder::subDecode_OP_VOP3P,
        &Decoder::subDecode_OP_VINTRP,
        &Decoder::subDecode_OP_VINTRP,
        &Decoder::subDecode_OP_VINTRP,
        &Decoder::subDecode_OP_VINTRP,
        &Decoder::subDecode_OP_VINTRP,
        &Decoder::subDecode_OP_VINTRP,
        &Decoder::subDecode_OP_VINTRP,
        &Decoder::subDecode_OP_VINTRP,
        &Decoder::subDecode_OP_DS,
        &Decoder::subDecode_OP_DS,
        &Decoder::subDecode_OP_DS,
        &Decoder::subDecode_OP_DS,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::subDecode_OP_FLAT,
        &Decoder::decode_invalid,
        &Decoder::subDecode_OP_FLAT,
        &Decoder::subDecode_OP_FLAT,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::subDecode_OP_MUBUF,
        &Decoder::subDecode_OP_MUBUF,
        &Decoder::subDecode_OP_MUBUF,
        &Decoder::subDecode_OP_MUBUF,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::subDecode_OP_MTBUF,
        &Decoder::subDecode_OP_MTBUF,
        &Decoder::subDecode_OP_MTBUF,
        &Decoder::subDecode_OP_MTBUF,
        &Decoder::subDecode_OP_MTBUF,
        &Decoder::subDecode_OP_MTBUF,
        &Decoder::subDecode_OP_MTBUF,
        &Decoder::subDecode_OP_MTBUF,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::subDecode_OP_MIMG,
        &Decoder::subDecode_OP_MIMG,
        &Decoder::subDecode_OP_MIMG,
        &Decoder::subDecode_OP_MIMG,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid
    };

    IsaDecodeMethod Decoder::tableSubDecode_OPU_VOP3[] = {
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_OPU_VOP3__V_CMP_CLASS_F32,
        &Decoder::decode_OPU_VOP3__V_CMPX_CLASS_F32,
        &Decoder::decode_OPU_VOP3__V_CMP_CLASS_F64,
        &Decoder::decode_OPU_VOP3__V_CMPX_CLASS_F64,
        &Decoder::decode_OPU_VOP3__V_CMP_CLASS_F16,
        &Decoder::decode_OPU_VOP3__V_CMPX_CLASS_F16,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_OPU_VOP3__V_CMP_F_F16,
        &Decoder::decode_OPU_VOP3__V_CMP_LT_F16,
        &Decoder::decode_OPU_VOP3__V_CMP_EQ_F16,
        &Decoder::decode_OPU_VOP3__V_CMP_LE_F16,
        &Decoder::decode_OPU_VOP3__V_CMP_GT_F16,
        &Decoder::decode_OPU_VOP3__V_CMP_LG_F16,
        &Decoder::decode_OPU_VOP3__V_CMP_GE_F16,
        &Decoder::decode_OPU_VOP3__V_CMP_O_F16,
        &Decoder::decode_OPU_VOP3__V_CMP_U_F16,
        &Decoder::decode_OPU_VOP3__V_CMP_NGE_F16,
        &Decoder::decode_OPU_VOP3__V_CMP_NLG_F16,
        &Decoder::decode_OPU_VOP3__V_CMP_NGT_F16,
        &Decoder::decode_OPU_VOP3__V_CMP_NLE_F16,
        &Decoder::decode_OPU_VOP3__V_CMP_NEQ_F16,
        &Decoder::decode_OPU_VOP3__V_CMP_NLT_F16,
        &Decoder::decode_OPU_VOP3__V_CMP_TRU_F16,
        &Decoder::decode_OPU_VOP3__V_CMPX_F_F16,
        &Decoder::decode_OPU_VOP3__V_CMPX_LT_F16,
        &Decoder::decode_OPU_VOP3__V_CMPX_EQ_F16,
        &Decoder::decode_OPU_VOP3__V_CMPX_LE_F16,
        &Decoder::decode_OPU_VOP3__V_CMPX_GT_F16,
        &Decoder::decode_OPU_VOP3__V_CMPX_LG_F16,
        &Decoder::decode_OPU_VOP3__V_CMPX_GE_F16,
        &Decoder::decode_OPU_VOP3__V_CMPX_O_F16,
        &Decoder::decode_OPU_VOP3__V_CMPX_U_F16,
        &Decoder::decode_OPU_VOP3__V_CMPX_NGE_F16,
        &Decoder::decode_OPU_VOP3__V_CMPX_NLG_F16,
        &Decoder::decode_OPU_VOP3__V_CMPX_NGT_F16,
        &Decoder::decode_OPU_VOP3__V_CMPX_NLE_F16,
        &Decoder::decode_OPU_VOP3__V_CMPX_NEQ_F16,
        &Decoder::decode_OPU_VOP3__V_CMPX_NLT_F16,
        &Decoder::decode_OPU_VOP3__V_CMPX_TRU_F16,
        &Decoder::decode_OPU_VOP3__V_CMP_F_F32,
        &Decoder::decode_OPU_VOP3__V_CMP_LT_F32,
        &Decoder::decode_OPU_VOP3__V_CMP_EQ_F32,
        &Decoder::decode_OPU_VOP3__V_CMP_LE_F32,
        &Decoder::decode_OPU_VOP3__V_CMP_GT_F32,
        &Decoder::decode_OPU_VOP3__V_CMP_LG_F32,
        &Decoder::decode_OPU_VOP3__V_CMP_GE_F32,
        &Decoder::decode_OPU_VOP3__V_CMP_O_F32,
        &Decoder::decode_OPU_VOP3__V_CMP_U_F32,
        &Decoder::decode_OPU_VOP3__V_CMP_NGE_F32,
        &Decoder::decode_OPU_VOP3__V_CMP_NLG_F32,
        &Decoder::decode_OPU_VOP3__V_CMP_NGT_F32,
        &Decoder::decode_OPU_VOP3__V_CMP_NLE_F32,
        &Decoder::decode_OPU_VOP3__V_CMP_NEQ_F32,
        &Decoder::decode_OPU_VOP3__V_CMP_NLT_F32,
        &Decoder::decode_OPU_VOP3__V_CMP_TRU_F32,
        &Decoder::decode_OPU_VOP3__V_CMPX_F_F32,
        &Decoder::decode_OPU_VOP3__V_CMPX_LT_F32,
        &Decoder::decode_OPU_VOP3__V_CMPX_EQ_F32,
        &Decoder::decode_OPU_VOP3__V_CMPX_LE_F32,
        &Decoder::decode_OPU_VOP3__V_CMPX_GT_F32,
        &Decoder::decode_OPU_VOP3__V_CMPX_LG_F32,
        &Decoder::decode_OPU_VOP3__V_CMPX_GE_F32,
        &Decoder::decode_OPU_VOP3__V_CMPX_O_F32,
        &Decoder::decode_OPU_VOP3__V_CMPX_U_F32,
        &Decoder::decode_OPU_VOP3__V_CMPX_NGE_F32,
        &Decoder::decode_OPU_VOP3__V_CMPX_NLG_F32,
        &Decoder::decode_OPU_VOP3__V_CMPX_NGT_F32,
        &Decoder::decode_OPU_VOP3__V_CMPX_NLE_F32,
        &Decoder::decode_OPU_VOP3__V_CMPX_NEQ_F32,
        &Decoder::decode_OPU_VOP3__V_CMPX_NLT_F32,
        &Decoder::decode_OPU_VOP3__V_CMPX_TRU_F32,
        &Decoder::decode_OPU_VOP3__V_CMP_F_F64,
        &Decoder::decode_OPU_VOP3__V_CMP_LT_F64,
        &Decoder::decode_OPU_VOP3__V_CMP_EQ_F64,
        &Decoder::decode_OPU_VOP3__V_CMP_LE_F64,
        &Decoder::decode_OPU_VOP3__V_CMP_GT_F64,
        &Decoder::decode_OPU_VOP3__V_CMP_LG_F64,
        &Decoder::decode_OPU_VOP3__V_CMP_GE_F64,
        &Decoder::decode_OPU_VOP3__V_CMP_O_F64,
        &Decoder::decode_OPU_VOP3__V_CMP_U_F64,
        &Decoder::decode_OPU_VOP3__V_CMP_NGE_F64,
        &Decoder::decode_OPU_VOP3__V_CMP_NLG_F64,
        &Decoder::decode_OPU_VOP3__V_CMP_NGT_F64,
        &Decoder::decode_OPU_VOP3__V_CMP_NLE_F64,
        &Decoder::decode_OPU_VOP3__V_CMP_NEQ_F64,
        &Decoder::decode_OPU_VOP3__V_CMP_NLT_F64,
        &Decoder::decode_OPU_VOP3__V_CMP_TRU_F64,
        &Decoder::decode_OPU_VOP3__V_CMPX_F_F64,
        &Decoder::decode_OPU_VOP3__V_CMPX_LT_F64,
        &Decoder::decode_OPU_VOP3__V_CMPX_EQ_F64,
        &Decoder::decode_OPU_VOP3__V_CMPX_LE_F64,
        &Decoder::decode_OPU_VOP3__V_CMPX_GT_F64,
        &Decoder::decode_OPU_VOP3__V_CMPX_LG_F64,
        &Decoder::decode_OPU_VOP3__V_CMPX_GE_F64,
        &Decoder::decode_OPU_VOP3__V_CMPX_O_F64,
        &Decoder::decode_OPU_VOP3__V_CMPX_U_F64,
        &Decoder::decode_OPU_VOP3__V_CMPX_NGE_F64,
        &Decoder::decode_OPU_VOP3__V_CMPX_NLG_F64,
        &Decoder::decode_OPU_VOP3__V_CMPX_NGT_F64,
        &Decoder::decode_OPU_VOP3__V_CMPX_NLE_F64,
        &Decoder::decode_OPU_VOP3__V_CMPX_NEQ_F64,
        &Decoder::decode_OPU_VOP3__V_CMPX_NLT_F64,
        &Decoder::decode_OPU_VOP3__V_CMPX_TRU_F64,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_OPU_VOP3__V_CMP_F_I16,
        &Decoder::decode_OPU_VOP3__V_CMP_LT_I16,
        &Decoder::decode_OPU_VOP3__V_CMP_EQ_I16,
        &Decoder::decode_OPU_VOP3__V_CMP_LE_I16,
        &Decoder::decode_OPU_VOP3__V_CMP_GT_I16,
        &Decoder::decode_OPU_VOP3__V_CMP_NE_I16,
        &Decoder::decode_OPU_VOP3__V_CMP_GE_I16,
        &Decoder::decode_OPU_VOP3__V_CMP_T_I16,
        &Decoder::decode_OPU_VOP3__V_CMP_F_U16,
        &Decoder::decode_OPU_VOP3__V_CMP_LT_U16,
        &Decoder::decode_OPU_VOP3__V_CMP_EQ_U16,
        &Decoder::decode_OPU_VOP3__V_CMP_LE_U16,
        &Decoder::decode_OPU_VOP3__V_CMP_GT_U16,
        &Decoder::decode_OPU_VOP3__V_CMP_NE_U16,
        &Decoder::decode_OPU_VOP3__V_CMP_GE_U16,
        &Decoder::decode_OPU_VOP3__V_CMP_T_U16,
        &Decoder::decode_OPU_VOP3__V_CMPX_F_I16,
        &Decoder::decode_OPU_VOP3__V_CMPX_LT_I16,
        &Decoder::decode_OPU_VOP3__V_CMPX_EQ_I16,
        &Decoder::decode_OPU_VOP3__V_CMPX_LE_I16,
        &Decoder::decode_OPU_VOP3__V_CMPX_GT_I16,
        &Decoder::decode_OPU_VOP3__V_CMPX_NE_I16,
        &Decoder::decode_OPU_VOP3__V_CMPX_GE_I16,
        &Decoder::decode_OPU_VOP3__V_CMPX_T_I16,
        &Decoder::decode_OPU_VOP3__V_CMPX_F_U16,
        &Decoder::decode_OPU_VOP3__V_CMPX_LT_U16,
        &Decoder::decode_OPU_VOP3__V_CMPX_EQ_U16,
        &Decoder::decode_OPU_VOP3__V_CMPX_LE_U16,
        &Decoder::decode_OPU_VOP3__V_CMPX_GT_U16,
        &Decoder::decode_OPU_VOP3__V_CMPX_NE_U16,
        &Decoder::decode_OPU_VOP3__V_CMPX_GE_U16,
        &Decoder::decode_OPU_VOP3__V_CMPX_T_U16,
        &Decoder::decode_OPU_VOP3__V_CMP_F_I32,
        &Decoder::decode_OPU_VOP3__V_CMP_LT_I32,
        &Decoder::decode_OPU_VOP3__V_CMP_EQ_I32,
        &Decoder::decode_OPU_VOP3__V_CMP_LE_I32,
        &Decoder::decode_OPU_VOP3__V_CMP_GT_I32,
        &Decoder::decode_OPU_VOP3__V_CMP_NE_I32,
        &Decoder::decode_OPU_VOP3__V_CMP_GE_I32,
        &Decoder::decode_OPU_VOP3__V_CMP_T_I32,
        &Decoder::decode_OPU_VOP3__V_CMP_F_U32,
        &Decoder::decode_OPU_VOP3__V_CMP_LT_U32,
        &Decoder::decode_OPU_VOP3__V_CMP_EQ_U32,
        &Decoder::decode_OPU_VOP3__V_CMP_LE_U32,
        &Decoder::decode_OPU_VOP3__V_CMP_GT_U32,
        &Decoder::decode_OPU_VOP3__V_CMP_NE_U32,
        &Decoder::decode_OPU_VOP3__V_CMP_GE_U32,
        &Decoder::decode_OPU_VOP3__V_CMP_T_U32,
        &Decoder::decode_OPU_VOP3__V_CMPX_F_I32,
        &Decoder::decode_OPU_VOP3__V_CMPX_LT_I32,
        &Decoder::decode_OPU_VOP3__V_CMPX_EQ_I32,
        &Decoder::decode_OPU_VOP3__V_CMPX_LE_I32,
        &Decoder::decode_OPU_VOP3__V_CMPX_GT_I32,
        &Decoder::decode_OPU_VOP3__V_CMPX_NE_I32,
        &Decoder::decode_OPU_VOP3__V_CMPX_GE_I32,
        &Decoder::decode_OPU_VOP3__V_CMPX_T_I32,
        &Decoder::decode_OPU_VOP3__V_CMPX_F_U32,
        &Decoder::decode_OPU_VOP3__V_CMPX_LT_U32,
        &Decoder::decode_OPU_VOP3__V_CMPX_EQ_U32,
        &Decoder::decode_OPU_VOP3__V_CMPX_LE_U32,
        &Decoder::decode_OPU_VOP3__V_CMPX_GT_U32,
        &Decoder::decode_OPU_VOP3__V_CMPX_NE_U32,
        &Decoder::decode_OPU_VOP3__V_CMPX_GE_U32,
        &Decoder::decode_OPU_VOP3__V_CMPX_T_U32,
        &Decoder::decode_OPU_VOP3__V_CMP_F_I64,
        &Decoder::decode_OPU_VOP3__V_CMP_LT_I64,
        &Decoder::decode_OPU_VOP3__V_CMP_EQ_I64,
        &Decoder::decode_OPU_VOP3__V_CMP_LE_I64,
        &Decoder::decode_OPU_VOP3__V_CMP_GT_I64,
        &Decoder::decode_OPU_VOP3__V_CMP_NE_I64,
        &Decoder::decode_OPU_VOP3__V_CMP_GE_I64,
        &Decoder::decode_OPU_VOP3__V_CMP_T_I64,
        &Decoder::decode_OPU_VOP3__V_CMP_F_U64,
        &Decoder::decode_OPU_VOP3__V_CMP_LT_U64,
        &Decoder::decode_OPU_VOP3__V_CMP_EQ_U64,
        &Decoder::decode_OPU_VOP3__V_CMP_LE_U64,
        &Decoder::decode_OPU_VOP3__V_CMP_GT_U64,
        &Decoder::decode_OPU_VOP3__V_CMP_NE_U64,
        &Decoder::decode_OPU_VOP3__V_CMP_GE_U64,
        &Decoder::decode_OPU_VOP3__V_CMP_T_U64,
        &Decoder::decode_OPU_VOP3__V_CMPX_F_I64,
        &Decoder::decode_OPU_VOP3__V_CMPX_LT_I64,
        &Decoder::decode_OPU_VOP3__V_CMPX_EQ_I64,
        &Decoder::decode_OPU_VOP3__V_CMPX_LE_I64,
        &Decoder::decode_OPU_VOP3__V_CMPX_GT_I64,
        &Decoder::decode_OPU_VOP3__V_CMPX_NE_I64,
        &Decoder::decode_OPU_VOP3__V_CMPX_GE_I64,
        &Decoder::decode_OPU_VOP3__V_CMPX_T_I64,
        &Decoder::decode_OPU_VOP3__V_CMPX_F_U64,
        &Decoder::decode_OPU_VOP3__V_CMPX_LT_U64,
        &Decoder::decode_OPU_VOP3__V_CMPX_EQ_U64,
        &Decoder::decode_OPU_VOP3__V_CMPX_LE_U64,
        &Decoder::decode_OPU_VOP3__V_CMPX_GT_U64,
        &Decoder::decode_OPU_VOP3__V_CMPX_NE_U64,
        &Decoder::decode_OPU_VOP3__V_CMPX_GE_U64,
        &Decoder::decode_OPU_VOP3__V_CMPX_T_U64,
        &Decoder::decode_OPU_VOP3__V_CNDMASK_B32,
        &Decoder::decode_OPU_VOP3__V_ADD_F32,
        &Decoder::decode_OPU_VOP3__V_SUB_F32,
        &Decoder::decode_OPU_VOP3__V_SUBREV_F32,
        &Decoder::decode_OPU_VOP3__V_MUL_LEGACY_F32,
        &Decoder::decode_OPU_VOP3__V_MUL_F32,
        &Decoder::decode_OPU_VOP3__V_MUL_I32_I24,
        &Decoder::decode_OPU_VOP3__V_MUL_HI_I32_I24,
        &Decoder::decode_OPU_VOP3__V_MUL_U32_U24,
        &Decoder::decode_OPU_VOP3__V_MUL_HI_U32_U24,
        &Decoder::decode_OPU_VOP3__V_MIN_F32,
        &Decoder::decode_OPU_VOP3__V_MAX_F32,
        &Decoder::decode_OPU_VOP3__V_MIN_I32,
        &Decoder::decode_OPU_VOP3__V_MAX_I32,
        &Decoder::decode_OPU_VOP3__V_MIN_U32,
        &Decoder::decode_OPU_VOP3__V_MAX_U32,
        &Decoder::decode_OPU_VOP3__V_LSHRREV_B32,
        &Decoder::decode_OPU_VOP3__V_ASHRREV_I32,
        &Decoder::decode_OPU_VOP3__V_LSHLREV_B32,
        &Decoder::decode_OPU_VOP3__V_AND_B32,
        &Decoder::decode_OPU_VOP3__V_OR_B32,
        &Decoder::decode_OPU_VOP3__V_XOR_B32,
        &Decoder::decode_OPU_VOP3__V_MAC_F32,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_OPU_VOP3__V_ADD_CO_U32,
        &Decoder::decode_OPU_VOP3__V_SUB_CO_U32,
        &Decoder::decode_OPU_VOP3__V_SUBREV_CO_U32,
        &Decoder::decode_OPU_VOP3__V_ADDC_CO_U32,
        &Decoder::decode_OPU_VOP3__V_SUBB_CO_U32,
        &Decoder::decode_OPU_VOP3__V_SUBBREV_CO_U32,
        &Decoder::decode_OPU_VOP3__V_ADD_F16,
        &Decoder::decode_OPU_VOP3__V_SUB_F16,
        &Decoder::decode_OPU_VOP3__V_SUBREV_F16,
        &Decoder::decode_OPU_VOP3__V_MUL_F16,
        &Decoder::decode_OPU_VOP3__V_MAC_F16,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_OPU_VOP3__V_ADD_U16,
        &Decoder::decode_OPU_VOP3__V_SUB_U16,
        &Decoder::decode_OPU_VOP3__V_SUBREV_U16,
        &Decoder::decode_OPU_VOP3__V_MUL_LO_U16,
        &Decoder::decode_OPU_VOP3__V_LSHLREV_B16,
        &Decoder::decode_OPU_VOP3__V_LSHRREV_B16,
        &Decoder::decode_OPU_VOP3__V_ASHRREV_I16,
        &Decoder::decode_OPU_VOP3__V_MAX_F16,
        &Decoder::decode_OPU_VOP3__V_MIN_F16,
        &Decoder::decode_OPU_VOP3__V_MAX_U16,
        &Decoder::decode_OPU_VOP3__V_MAX_I16,
        &Decoder::decode_OPU_VOP3__V_MIN_U16,
        &Decoder::decode_OPU_VOP3__V_MIN_I16,
        &Decoder::decode_OPU_VOP3__V_LDEXP_F16,
        &Decoder::decode_OPU_VOP3__V_ADD_U32,
        &Decoder::decode_OPU_VOP3__V_SUB_U32,
        &Decoder::decode_OPU_VOP3__V_SUBREV_U32,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_OPU_VOP3__V_NOP,
        &Decoder::decode_OPU_VOP3__V_MOV_B32,
        &Decoder::decode_invalid,
        &Decoder::decode_OPU_VOP3__V_CVT_I32_F64,
        &Decoder::decode_OPU_VOP3__V_CVT_F64_I32,
        &Decoder::decode_OPU_VOP3__V_CVT_F32_I32,
        &Decoder::decode_OPU_VOP3__V_CVT_F32_U32,
        &Decoder::decode_OPU_VOP3__V_CVT_U32_F32,
        &Decoder::decode_OPU_VOP3__V_CVT_I32_F32,
        &Decoder::decode_OPU_VOP3__V_MOV_FED_B32,
        &Decoder::decode_OPU_VOP3__V_CVT_F16_F32,
        &Decoder::decode_OPU_VOP3__V_CVT_F32_F16,
        &Decoder::decode_OPU_VOP3__V_CVT_RPI_I32_F32,
        &Decoder::decode_OPU_VOP3__V_CVT_FLR_I32_F32,
        &Decoder::decode_OPU_VOP3__V_CVT_OFF_F32_I4,
        &Decoder::decode_OPU_VOP3__V_CVT_F32_F64,
        &Decoder::decode_OPU_VOP3__V_CVT_F64_F32,
        &Decoder::decode_OPU_VOP3__V_CVT_F32_UBYTE0,
        &Decoder::decode_OPU_VOP3__V_CVT_F32_UBYTE1,
        &Decoder::decode_OPU_VOP3__V_CVT_F32_UBYTE2,
        &Decoder::decode_OPU_VOP3__V_CVT_F32_UBYTE3,
        &Decoder::decode_OPU_VOP3__V_CVT_U32_F64,
        &Decoder::decode_OPU_VOP3__V_CVT_F64_U32,
        &Decoder::decode_OPU_VOP3__V_TRUNC_F64,
        &Decoder::decode_OPU_VOP3__V_CEIL_F64,
        &Decoder::decode_OPU_VOP3__V_RNDNE_F64,
        &Decoder::decode_OPU_VOP3__V_FLOOR_F64,
        &Decoder::decode_OPU_VOP3__V_FRACT_F32,
        &Decoder::decode_OPU_VOP3__V_TRUNC_F32,
        &Decoder::decode_OPU_VOP3__V_CEIL_F32,
        &Decoder::decode_OPU_VOP3__V_RNDNE_F32,
        &Decoder::decode_OPU_VOP3__V_FLOOR_F32,
        &Decoder::decode_OPU_VOP3__V_EXP_F32,
        &Decoder::decode_OPU_VOP3__V_LOG_F32,
        &Decoder::decode_OPU_VOP3__V_RCP_F32,
        &Decoder::decode_OPU_VOP3__V_RCP_IFLAG_F32,
        &Decoder::decode_OPU_VOP3__V_RSQ_F32,
        &Decoder::decode_OPU_VOP3__V_RCP_F64,
        &Decoder::decode_OPU_VOP3__V_RSQ_F64,
        &Decoder::decode_OPU_VOP3__V_SQRT_F32,
        &Decoder::decode_OPU_VOP3__V_SQRT_F64,
        &Decoder::decode_OPU_VOP3__V_SIN_F32,
        &Decoder::decode_OPU_VOP3__V_COS_F32,
        &Decoder::decode_OPU_VOP3__V_NOT_B32,
        &Decoder::decode_OPU_VOP3__V_BFREV_B32,
        &Decoder::decode_OPU_VOP3__V_FFBH_U32,
        &Decoder::decode_OPU_VOP3__V_FFBL_B32,
        &Decoder::decode_OPU_VOP3__V_FFBH_I32,
        &Decoder::decode_OPU_VOP3__V_FREXP_EXP_I32_F64,
        &Decoder::decode_OPU_VOP3__V_FREXP_MANT_F64,
        &Decoder::decode_OPU_VOP3__V_FRACT_F64,
        &Decoder::decode_OPU_VOP3__V_FREXP_EXP_I32_F32,
        &Decoder::decode_OPU_VOP3__V_FREXP_MANT_F32,
        &Decoder::decode_OPU_VOP3__V_CLREXCP,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_OPU_VOP3__V_CVT_F16_U16,
        &Decoder::decode_OPU_VOP3__V_CVT_F16_I16,
        &Decoder::decode_OPU_VOP3__V_CVT_U16_F16,
        &Decoder::decode_OPU_VOP3__V_CVT_I16_F16,
        &Decoder::decode_OPU_VOP3__V_RCP_F16,
        &Decoder::decode_OPU_VOP3__V_SQRT_F16,
        &Decoder::decode_OPU_VOP3__V_RSQ_F16,
        &Decoder::decode_OPU_VOP3__V_LOG_F16,
        &Decoder::decode_OPU_VOP3__V_EXP_F16,
        &Decoder::decode_OPU_VOP3__V_FREXP_MANT_F16,
        &Decoder::decode_OPU_VOP3__V_FREXP_EXP_I16_F16,
        &Decoder::decode_OPU_VOP3__V_FLOOR_F16,
        &Decoder::decode_OPU_VOP3__V_CEIL_F16,
        &Decoder::decode_OPU_VOP3__V_TRUNC_F16,
        &Decoder::decode_OPU_VOP3__V_RNDNE_F16,
        &Decoder::decode_OPU_VOP3__V_FRACT_F16,
        &Decoder::decode_OPU_VOP3__V_SIN_F16,
        &Decoder::decode_OPU_VOP3__V_COS_F16,
        &Decoder::decode_OPU_VOP3__V_EXP_LEGACY_F32,
        &Decoder::decode_OPU_VOP3__V_LOG_LEGACY_F32,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_OPU_VOP3__V_MAD_LEGACY_F32,
        &Decoder::decode_OPU_VOP3__V_MAD_F32,
        &Decoder::decode_OPU_VOP3__V_MAD_I32_I24,
        &Decoder::decode_OPU_VOP3__V_MAD_U32_U24,
        &Decoder::decode_OPU_VOP3__V_CUBEID_F32,
        &Decoder::decode_OPU_VOP3__V_CUBESC_F32,
        &Decoder::decode_OPU_VOP3__V_CUBETC_F32,
        &Decoder::decode_OPU_VOP3__V_CUBEMA_F32,
        &Decoder::decode_OPU_VOP3__V_BFE_U32,
        &Decoder::decode_OPU_VOP3__V_BFE_I32,
        &Decoder::decode_OPU_VOP3__V_BFI_B32,
        &Decoder::decode_OPU_VOP3__V_FMA_F32,
        &Decoder::decode_OPU_VOP3__V_FMA_F64,
        &Decoder::decode_OPU_VOP3__V_LERP_U8,
        &Decoder::decode_OPU_VOP3__V_ALIGNBIT_B32,
        &Decoder::decode_OPU_VOP3__V_ALIGNBYTE_B32,
        &Decoder::decode_OPU_VOP3__V_MIN3_F32,
        &Decoder::decode_OPU_VOP3__V_MIN3_I32,
        &Decoder::decode_OPU_VOP3__V_MIN3_U32,
        &Decoder::decode_OPU_VOP3__V_MAX3_F32,
        &Decoder::decode_OPU_VOP3__V_MAX3_I32,
        &Decoder::decode_OPU_VOP3__V_MAX3_U32,
        &Decoder::decode_OPU_VOP3__V_MED3_F32,
        &Decoder::decode_OPU_VOP3__V_MED3_I32,
        &Decoder::decode_OPU_VOP3__V_MED3_U32,
        &Decoder::decode_OPU_VOP3__V_SAD_U8,
        &Decoder::decode_OPU_VOP3__V_SAD_HI_U8,
        &Decoder::decode_OPU_VOP3__V_SAD_U16,
        &Decoder::decode_OPU_VOP3__V_SAD_U32,
        &Decoder::decode_OPU_VOP3__V_CVT_PK_U8_F32,
        &Decoder::decode_OPU_VOP3__V_DIV_FIXUP_F32,
        &Decoder::decode_OPU_VOP3__V_DIV_FIXUP_F64,
        &Decoder::decode_OPU_VOP3__V_DIV_SCALE_F32,
        &Decoder::decode_OPU_VOP3__V_DIV_SCALE_F64,
        &Decoder::decode_OPU_VOP3__V_DIV_FMAS_F32,
        &Decoder::decode_OPU_VOP3__V_DIV_FMAS_F64,
        &Decoder::decode_OPU_VOP3__V_MSAD_U8,
        &Decoder::decode_OPU_VOP3__V_QSAD_PK_U16_U8,
        &Decoder::decode_OPU_VOP3__V_MQSAD_PK_U16_U8,
        &Decoder::decode_OPU_VOP3__V_MQSAD_U32_U8,
        &Decoder::decode_OPU_VOP3__V_MAD_U64_U32,
        &Decoder::decode_OPU_VOP3__V_MAD_I64_I32,
        &Decoder::decode_OPU_VOP3__V_MAD_F16,
        &Decoder::decode_OPU_VOP3__V_MAD_U16,
        &Decoder::decode_OPU_VOP3__V_MAD_I16,
        &Decoder::decode_OPU_VOP3__V_PERM_B32,
        &Decoder::decode_OPU_VOP3__V_FMA_F16,
        &Decoder::decode_OPU_VOP3__V_DIV_FIXUP_F16,
        &Decoder::decode_OPU_VOP3__V_CVT_PKACCUM_U8_F32,
        &Decoder::decode_OPU_VOP3__V_MAD_U32_U16,
        &Decoder::decode_OPU_VOP3__V_MAD_I32_I16,
        &Decoder::decode_OPU_VOP3__V_XAD_U32,
        &Decoder::decode_OPU_VOP3__V_MIN3_F16,
        &Decoder::decode_OPU_VOP3__V_MIN3_I16,
        &Decoder::decode_OPU_VOP3__V_MIN3_U16,
        &Decoder::decode_OPU_VOP3__V_MAX3_F16,
        &Decoder::decode_OPU_VOP3__V_MAX3_I16,
        &Decoder::decode_OPU_VOP3__V_MAX3_U16,
        &Decoder::decode_OPU_VOP3__V_MED3_F16,
        &Decoder::decode_OPU_VOP3__V_MED3_I16,
        &Decoder::decode_OPU_VOP3__V_MED3_U16,
        &Decoder::decode_OPU_VOP3__V_LSHL_ADD_U32,
        &Decoder::decode_OPU_VOP3__V_ADD_LSHL_U32,
        &Decoder::decode_OPU_VOP3__V_ADD3_U32,
        &Decoder::decode_OPU_VOP3__V_LSHL_OR_B32,
        &Decoder::decode_OPU_VOP3__V_AND_OR_B32,
        &Decoder::decode_OPU_VOP3__V_OR3_B32,
        &Decoder::decode_OPU_VOP3__V_MAD_F16,
        &Decoder::decode_OPU_VOP3__V_MAD_U16,
        &Decoder::decode_OPU_VOP3__V_MAD_I16,
        &Decoder::decode_OPU_VOP3__V_FMA_F16,
        &Decoder::decode_OPU_VOP3__V_DIV_FIXUP_F16,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_OPU_VOP3__V_INTERP_P1_F32,
        &Decoder::decode_OPU_VOP3__V_INTERP_P2_F32,
        &Decoder::decode_OPU_VOP3__V_INTERP_MOV_F32,
        &Decoder::decode_invalid,
        &Decoder::decode_OPU_VOP3__V_INTERP_P1LL_F16,
        &Decoder::decode_OPU_VOP3__V_INTERP_P1LV_F16,
        &Decoder::decode_OPU_VOP3__V_INTERP_P2_LEGACY_F16,
        &Decoder::decode_OPU_VOP3__V_INTERP_P2_F16,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_OPU_VOP3__V_ADD_F64,
        &Decoder::decode_OPU_VOP3__V_MUL_F64,
        &Decoder::decode_OPU_VOP3__V_MIN_F64,
        &Decoder::decode_OPU_VOP3__V_MAX_F64,
        &Decoder::decode_OPU_VOP3__V_LDEXP_F64,
        &Decoder::decode_OPU_VOP3__V_MUL_LO_U32,
        &Decoder::decode_OPU_VOP3__V_MUL_HI_U32,
        &Decoder::decode_OPU_VOP3__V_MUL_HI_I32,
        &Decoder::decode_OPU_VOP3__V_LDEXP_F32,
        &Decoder::decode_OPU_VOP3__V_READLANE_B32,
        &Decoder::decode_OPU_VOP3__V_WRITELANE_B32,
        &Decoder::decode_OPU_VOP3__V_BCNT_U32_B32,
        &Decoder::decode_OPU_VOP3__V_MBCNT_LO_U32_B32,
        &Decoder::decode_OPU_VOP3__V_MBCNT_HI_U32_B32,
        &Decoder::decode_invalid,
        &Decoder::decode_OPU_VOP3__V_LSHLREV_B64,
        &Decoder::decode_OPU_VOP3__V_LSHRREV_B64,
        &Decoder::decode_OPU_VOP3__V_ASHRREV_I64,
        &Decoder::decode_OPU_VOP3__V_TRIG_PREOP_F64,
        &Decoder::decode_OPU_VOP3__V_BFM_B32,
        &Decoder::decode_OPU_VOP3__V_CVT_PKNORM_I16_F32,
        &Decoder::decode_OPU_VOP3__V_CVT_PKNORM_U16_F32,
        &Decoder::decode_OPU_VOP3__V_CVT_PKRTZ_F16_F32,
        &Decoder::decode_OPU_VOP3__V_CVT_PK_U16_U32,
        &Decoder::decode_OPU_VOP3__V_CVT_PK_I16_I32,
        &Decoder::decode_OPU_VOP3__V_PKNORM_I16_F16,
        &Decoder::decode_OPU_VOP3__V_PKNORM_U16_F16,
        &Decoder::decode_OPU_VOP3__V_ADD_I32,
        &Decoder::decode_OPU_VOP3__V_SUB_I32,
        &Decoder::decode_OPU_VOP3__V_ADD_I16,
        &Decoder::decode_OPU_VOP3__V_SUB_I16,
        &Decoder::decode_OPU_VOP3__V_PACK_B32_F16,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid
    };

    IsaDecodeMethod Decoder::tableSubDecode_OP_DS[] = {
        &Decoder::decode_OP_DS__DS_ADD_U32,
        &Decoder::decode_OP_DS__DS_SUB_U32,
        &Decoder::decode_OP_DS__DS_RSUB_U32,
        &Decoder::decode_OP_DS__DS_INC_U32,
        &Decoder::decode_OP_DS__DS_DEC_U32,
        &Decoder::decode_OP_DS__DS_MIN_I32,
        &Decoder::decode_OP_DS__DS_MAX_I32,
        &Decoder::decode_OP_DS__DS_MIN_U32,
        &Decoder::decode_OP_DS__DS_MAX_U32,
        &Decoder::decode_OP_DS__DS_AND_B32,
        &Decoder::decode_OP_DS__DS_OR_B32,
        &Decoder::decode_OP_DS__DS_XOR_B32,
        &Decoder::decode_OP_DS__DS_MSKOR_B32,
        &Decoder::decode_OP_DS__DS_WRITE_B32,
        &Decoder::decode_OP_DS__DS_WRITE2_B32,
        &Decoder::decode_OP_DS__DS_WRITE2ST64_B32,
        &Decoder::decode_OP_DS__DS_CMPST_B32,
        &Decoder::decode_OP_DS__DS_CMPST_F32,
        &Decoder::decode_OP_DS__DS_MIN_F32,
        &Decoder::decode_OP_DS__DS_MAX_F32,
        &Decoder::decode_OP_DS__DS_NOP,
        &Decoder::decode_OP_DS__DS_ADD_F32,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_OP_DS__DS_WRITE_ADDTID_B32,
        &Decoder::decode_OP_DS__DS_WRITE_B8,
        &Decoder::decode_OP_DS__DS_WRITE_B16,
        &Decoder::decode_OP_DS__DS_ADD_RTN_U32,
        &Decoder::decode_OP_DS__DS_SUB_RTN_U32,
        &Decoder::decode_OP_DS__DS_RSUB_RTN_U32,
        &Decoder::decode_OP_DS__DS_INC_RTN_U32,
        &Decoder::decode_OP_DS__DS_DEC_RTN_U32,
        &Decoder::decode_OP_DS__DS_MIN_RTN_I32,
        &Decoder::decode_OP_DS__DS_MAX_RTN_I32,
        &Decoder::decode_OP_DS__DS_MIN_RTN_U32,
        &Decoder::decode_OP_DS__DS_MAX_RTN_U32,
        &Decoder::decode_OP_DS__DS_AND_RTN_B32,
        &Decoder::decode_OP_DS__DS_OR_RTN_B32,
        &Decoder::decode_OP_DS__DS_XOR_RTN_B32,
        &Decoder::decode_OP_DS__DS_MSKOR_RTN_B32,
        &Decoder::decode_OP_DS__DS_WRXCHG_RTN_B32,
        &Decoder::decode_OP_DS__DS_WRXCHG2_RTN_B32,
        &Decoder::decode_OP_DS__DS_WRXCHG2ST64_RTN_B32,
        &Decoder::decode_OP_DS__DS_CMPST_RTN_B32,
        &Decoder::decode_OP_DS__DS_CMPST_RTN_F32,
        &Decoder::decode_OP_DS__DS_MIN_RTN_F32,
        &Decoder::decode_OP_DS__DS_MAX_RTN_F32,
        &Decoder::decode_OP_DS__DS_WRAP_RTN_B32,
        &Decoder::decode_OP_DS__DS_ADD_RTN_F32,
        &Decoder::decode_OP_DS__DS_READ_B32,
        &Decoder::decode_OP_DS__DS_READ2_B32,
        &Decoder::decode_OP_DS__DS_READ2ST64_B32,
        &Decoder::decode_OP_DS__DS_READ_I8,
        &Decoder::decode_OP_DS__DS_READ_U8,
        &Decoder::decode_OP_DS__DS_READ_I16,
        &Decoder::decode_OP_DS__DS_READ_U16,
        &Decoder::decode_OP_DS__DS_SWIZZLE_B32,
        &Decoder::decode_OP_DS__DS_PERMUTE_B32,
        &Decoder::decode_OP_DS__DS_BPERMUTE_B32,
        &Decoder::decode_OP_DS__DS_ADD_U64,
        &Decoder::decode_OP_DS__DS_SUB_U64,
        &Decoder::decode_OP_DS__DS_RSUB_U64,
        &Decoder::decode_OP_DS__DS_INC_U64,
        &Decoder::decode_OP_DS__DS_DEC_U64,
        &Decoder::decode_OP_DS__DS_MIN_I64,
        &Decoder::decode_OP_DS__DS_MAX_I64,
        &Decoder::decode_OP_DS__DS_MIN_U64,
        &Decoder::decode_OP_DS__DS_MAX_U64,
        &Decoder::decode_OP_DS__DS_AND_B64,
        &Decoder::decode_OP_DS__DS_OR_B64,
        &Decoder::decode_OP_DS__DS_XOR_B64,
        &Decoder::decode_OP_DS__DS_MSKOR_B64,
        &Decoder::decode_OP_DS__DS_WRITE_B64,
        &Decoder::decode_OP_DS__DS_WRITE2_B64,
        &Decoder::decode_OP_DS__DS_WRITE2ST64_B64,
        &Decoder::decode_OP_DS__DS_CMPST_B64,
        &Decoder::decode_OP_DS__DS_CMPST_F64,
        &Decoder::decode_OP_DS__DS_MIN_F64,
        &Decoder::decode_OP_DS__DS_MAX_F64,
        &Decoder::decode_OP_DS__DS_WRITE_B8_D16_HI,
        &Decoder::decode_OP_DS__DS_WRITE_B16_D16_HI,
        &Decoder::decode_OP_DS__DS_READ_U8_D16,
        &Decoder::decode_OP_DS__DS_READ_U8_D16_HI,
        &Decoder::decode_OP_DS__DS_READ_I8_D16,
        &Decoder::decode_OP_DS__DS_READ_I8_D16_HI,
        &Decoder::decode_OP_DS__DS_READ_U16_D16,
        &Decoder::decode_OP_DS__DS_READ_U16_D16_HI,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_OP_DS__DS_ADD_RTN_U64,
        &Decoder::decode_OP_DS__DS_SUB_RTN_U64,
        &Decoder::decode_OP_DS__DS_RSUB_RTN_U64,
        &Decoder::decode_OP_DS__DS_INC_RTN_U64,
        &Decoder::decode_OP_DS__DS_DEC_RTN_U64,
        &Decoder::decode_OP_DS__DS_MIN_RTN_I64,
        &Decoder::decode_OP_DS__DS_MAX_RTN_I64,
        &Decoder::decode_OP_DS__DS_MIN_RTN_U64,
        &Decoder::decode_OP_DS__DS_MAX_RTN_U64,
        &Decoder::decode_OP_DS__DS_AND_RTN_B64,
        &Decoder::decode_OP_DS__DS_OR_RTN_B64,
        &Decoder::decode_OP_DS__DS_XOR_RTN_B64,
        &Decoder::decode_OP_DS__DS_MSKOR_RTN_B64,
        &Decoder::decode_OP_DS__DS_WRXCHG_RTN_B64,
        &Decoder::decode_OP_DS__DS_WRXCHG2_RTN_B64,
        &Decoder::decode_OP_DS__DS_WRXCHG2ST64_RTN_B64,
        &Decoder::decode_OP_DS__DS_CMPST_RTN_B64,
        &Decoder::decode_OP_DS__DS_CMPST_RTN_F64,
        &Decoder::decode_OP_DS__DS_MIN_RTN_F64,
        &Decoder::decode_OP_DS__DS_MAX_RTN_F64,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_OP_DS__DS_READ_B64,
        &Decoder::decode_OP_DS__DS_READ2_B64,
        &Decoder::decode_OP_DS__DS_READ2ST64_B64,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_OP_DS__DS_CONDXCHG32_RTN_B64,
        &Decoder::decode_invalid,
        &Decoder::decode_OP_DS__DS_ADD_SRC2_U32,
        &Decoder::decode_OP_DS__DS_SUB_SRC2_U32,
        &Decoder::decode_OP_DS__DS_RSUB_SRC2_U32,
        &Decoder::decode_OP_DS__DS_INC_SRC2_U32,
        &Decoder::decode_OP_DS__DS_DEC_SRC2_U32,
        &Decoder::decode_OP_DS__DS_MIN_SRC2_I32,
        &Decoder::decode_OP_DS__DS_MAX_SRC2_I32,
        &Decoder::decode_OP_DS__DS_MIN_SRC2_U32,
        &Decoder::decode_OP_DS__DS_MAX_SRC2_U32,
        &Decoder::decode_OP_DS__DS_AND_SRC2_B32,
        &Decoder::decode_OP_DS__DS_OR_SRC2_B32,
        &Decoder::decode_OP_DS__DS_XOR_SRC2_B32,
        &Decoder::decode_invalid,
        &Decoder::decode_OP_DS__DS_WRITE_SRC2_B32,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_OP_DS__DS_MIN_SRC2_F32,
        &Decoder::decode_OP_DS__DS_MAX_SRC2_F32,
        &Decoder::decode_invalid,
        &Decoder::decode_OP_DS__DS_ADD_SRC2_F32,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_OP_DS__DS_GWS_SEMA_RELEASE_ALL,
        &Decoder::decode_OP_DS__DS_GWS_INIT,
        &Decoder::decode_OP_DS__DS_GWS_SEMA_V,
        &Decoder::decode_OP_DS__DS_GWS_SEMA_BR,
        &Decoder::decode_OP_DS__DS_GWS_SEMA_P,
        &Decoder::decode_OP_DS__DS_GWS_BARRIER,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_OP_DS__DS_READ_ADDTID_B32,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_OP_DS__DS_CONSUME,
        &Decoder::decode_OP_DS__DS_APPEND,
        &Decoder::decode_OP_DS__DS_ORDERED_COUNT,
        &Decoder::decode_OP_DS__DS_ADD_SRC2_U64,
        &Decoder::decode_OP_DS__DS_SUB_SRC2_U64,
        &Decoder::decode_OP_DS__DS_RSUB_SRC2_U64,
        &Decoder::decode_OP_DS__DS_INC_SRC2_U64,
        &Decoder::decode_OP_DS__DS_DEC_SRC2_U64,
        &Decoder::decode_OP_DS__DS_MIN_SRC2_I64,
        &Decoder::decode_OP_DS__DS_MAX_SRC2_I64,
        &Decoder::decode_OP_DS__DS_MIN_SRC2_U64,
        &Decoder::decode_OP_DS__DS_MAX_SRC2_U64,
        &Decoder::decode_OP_DS__DS_AND_SRC2_B64,
        &Decoder::decode_OP_DS__DS_OR_SRC2_B64,
        &Decoder::decode_OP_DS__DS_XOR_SRC2_B64,
        &Decoder::decode_invalid,
        &Decoder::decode_OP_DS__DS_WRITE_SRC2_B64,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_OP_DS__DS_MIN_SRC2_F64,
        &Decoder::decode_OP_DS__DS_MAX_SRC2_F64,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_OP_DS__DS_WRITE_B96,
        &Decoder::decode_OP_DS__DS_WRITE_B128,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_OP_DS__DS_READ_B96,
        &Decoder::decode_OP_DS__DS_READ_B128
    };

    IsaDecodeMethod Decoder::tableSubDecode_OP_FLAT[] = {
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_OP_FLAT__FLAT_LOAD_UBYTE,
        &Decoder::decode_OP_FLAT__FLAT_LOAD_SBYTE,
        &Decoder::decode_OP_FLAT__FLAT_LOAD_USHORT,
        &Decoder::decode_OP_FLAT__FLAT_LOAD_SSHORT,
        &Decoder::decode_OP_FLAT__FLAT_LOAD_DWORD,
        &Decoder::decode_OP_FLAT__FLAT_LOAD_DWORDX2,
        &Decoder::decode_OP_FLAT__FLAT_LOAD_DWORDX3,
        &Decoder::decode_OP_FLAT__FLAT_LOAD_DWORDX4,
        &Decoder::decode_OP_FLAT__FLAT_STORE_BYTE,
        &Decoder::decode_OP_FLAT__FLAT_STORE_BYTE_D16_HI,
        &Decoder::decode_OP_FLAT__FLAT_STORE_SHORT,
        &Decoder::decode_OP_FLAT__FLAT_STORE_SHORT_D16_HI,
        &Decoder::decode_OP_FLAT__FLAT_STORE_DWORD,
        &Decoder::decode_OP_FLAT__FLAT_STORE_DWORDX2,
        &Decoder::decode_OP_FLAT__FLAT_STORE_DWORDX3,
        &Decoder::decode_OP_FLAT__FLAT_STORE_DWORDX4,
        &Decoder::decode_OP_FLAT__FLAT_LOAD_UBYTE_D16,
        &Decoder::decode_OP_FLAT__FLAT_LOAD_UBYTE_D16_HI,
        &Decoder::decode_OP_FLAT__FLAT_LOAD_SBYTE_D16,
        &Decoder::decode_OP_FLAT__FLAT_LOAD_SBYTE_D16_HI,
        &Decoder::decode_OP_FLAT__FLAT_LOAD_SHORT_D16,
        &Decoder::decode_OP_FLAT__FLAT_LOAD_SHORT_D16_HI,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_OP_FLAT__FLAT_ATOMIC_SWAP,
        &Decoder::decode_OP_FLAT__FLAT_ATOMIC_CMPSWAP,
        &Decoder::decode_OP_FLAT__FLAT_ATOMIC_ADD,
        &Decoder::decode_OP_FLAT__FLAT_ATOMIC_SUB,
        &Decoder::decode_OP_FLAT__FLAT_ATOMIC_SMIN,
        &Decoder::decode_OP_FLAT__FLAT_ATOMIC_UMIN,
        &Decoder::decode_OP_FLAT__FLAT_ATOMIC_SMAX,
        &Decoder::decode_OP_FLAT__FLAT_ATOMIC_UMAX,
        &Decoder::decode_OP_FLAT__FLAT_ATOMIC_AND,
        &Decoder::decode_OP_FLAT__FLAT_ATOMIC_OR,
        &Decoder::decode_OP_FLAT__FLAT_ATOMIC_XOR,
        &Decoder::decode_OP_FLAT__FLAT_ATOMIC_INC,
        &Decoder::decode_OP_FLAT__FLAT_ATOMIC_DEC,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_OP_FLAT__FLAT_ATOMIC_SWAP_X2,
        &Decoder::decode_OP_FLAT__FLAT_ATOMIC_CMPSWAP_X2,
        &Decoder::decode_OP_FLAT__FLAT_ATOMIC_ADD_X2,
        &Decoder::decode_OP_FLAT__FLAT_ATOMIC_SUB_X2,
        &Decoder::decode_OP_FLAT__FLAT_ATOMIC_SMIN_X2,
        &Decoder::decode_OP_FLAT__FLAT_ATOMIC_UMIN_X2,
        &Decoder::decode_OP_FLAT__FLAT_ATOMIC_SMAX_X2,
        &Decoder::decode_OP_FLAT__FLAT_ATOMIC_UMAX_X2,
        &Decoder::decode_OP_FLAT__FLAT_ATOMIC_AND_X2,
        &Decoder::decode_OP_FLAT__FLAT_ATOMIC_OR_X2,
        &Decoder::decode_OP_FLAT__FLAT_ATOMIC_XOR_X2,
        &Decoder::decode_OP_FLAT__FLAT_ATOMIC_INC_X2,
        &Decoder::decode_OP_FLAT__FLAT_ATOMIC_DEC_X2,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid
    };

    IsaDecodeMethod Decoder::tableSubDecode_OP_GLOBAL[] = {
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_OP_GLOBAL__GLOBAL_LOAD_UBYTE,
        &Decoder::decode_OP_GLOBAL__GLOBAL_LOAD_SBYTE,
        &Decoder::decode_OP_GLOBAL__GLOBAL_LOAD_USHORT,
        &Decoder::decode_OP_GLOBAL__GLOBAL_LOAD_SSHORT,
        &Decoder::decode_OP_GLOBAL__GLOBAL_LOAD_DWORD,
        &Decoder::decode_OP_GLOBAL__GLOBAL_LOAD_DWORDX2,
        &Decoder::decode_OP_GLOBAL__GLOBAL_LOAD_DWORDX3,
        &Decoder::decode_OP_GLOBAL__GLOBAL_LOAD_DWORDX4,
        &Decoder::decode_OP_GLOBAL__GLOBAL_STORE_BYTE,
        &Decoder::decode_OP_GLOBAL__GLOBAL_STORE_BYTE_D16_HI,
        &Decoder::decode_OP_GLOBAL__GLOBAL_STORE_SHORT,
        &Decoder::decode_OP_GLOBAL__GLOBAL_STORE_SHORT_D16_HI,
        &Decoder::decode_OP_GLOBAL__GLOBAL_STORE_DWORD,
        &Decoder::decode_OP_GLOBAL__GLOBAL_STORE_DWORDX2,
        &Decoder::decode_OP_GLOBAL__GLOBAL_STORE_DWORDX3,
        &Decoder::decode_OP_GLOBAL__GLOBAL_STORE_DWORDX4,
        &Decoder::decode_OP_GLOBAL__GLOBAL_LOAD_UBYTE_D16,
        &Decoder::decode_OP_GLOBAL__GLOBAL_LOAD_UBYTE_D16_HI,
        &Decoder::decode_OP_GLOBAL__GLOBAL_LOAD_SBYTE_D16,
        &Decoder::decode_OP_GLOBAL__GLOBAL_LOAD_SBYTE_D16_HI,
        &Decoder::decode_OP_GLOBAL__GLOBAL_LOAD_SHORT_D16,
        &Decoder::decode_OP_GLOBAL__GLOBAL_LOAD_SHORT_D16_HI,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_OP_GLOBAL__GLOBAL_ATOMIC_SWAP,
        &Decoder::decode_OP_GLOBAL__GLOBAL_ATOMIC_CMPSWAP,
        &Decoder::decode_OP_GLOBAL__GLOBAL_ATOMIC_ADD,
        &Decoder::decode_OP_GLOBAL__GLOBAL_ATOMIC_SUB,
        &Decoder::decode_OP_GLOBAL__GLOBAL_ATOMIC_SMIN,
        &Decoder::decode_OP_GLOBAL__GLOBAL_ATOMIC_UMIN,
        &Decoder::decode_OP_GLOBAL__GLOBAL_ATOMIC_SMAX,
        &Decoder::decode_OP_GLOBAL__GLOBAL_ATOMIC_UMAX,
        &Decoder::decode_OP_GLOBAL__GLOBAL_ATOMIC_AND,
        &Decoder::decode_OP_GLOBAL__GLOBAL_ATOMIC_OR,
        &Decoder::decode_OP_GLOBAL__GLOBAL_ATOMIC_XOR,
        &Decoder::decode_OP_GLOBAL__GLOBAL_ATOMIC_INC,
        &Decoder::decode_OP_GLOBAL__GLOBAL_ATOMIC_DEC,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_OP_GLOBAL__GLOBAL_ATOMIC_SWAP_X2,
        &Decoder::decode_OP_GLOBAL__GLOBAL_ATOMIC_CMPSWAP_X2,
        &Decoder::decode_OP_GLOBAL__GLOBAL_ATOMIC_ADD_X2,
        &Decoder::decode_OP_GLOBAL__GLOBAL_ATOMIC_SUB_X2,
        &Decoder::decode_OP_GLOBAL__GLOBAL_ATOMIC_SMIN_X2,
        &Decoder::decode_OP_GLOBAL__GLOBAL_ATOMIC_UMIN_X2,
        &Decoder::decode_OP_GLOBAL__GLOBAL_ATOMIC_SMAX_X2,
        &Decoder::decode_OP_GLOBAL__GLOBAL_ATOMIC_UMAX_X2,
        &Decoder::decode_OP_GLOBAL__GLOBAL_ATOMIC_AND_X2,
        &Decoder::decode_OP_GLOBAL__GLOBAL_ATOMIC_OR_X2,
        &Decoder::decode_OP_GLOBAL__GLOBAL_ATOMIC_XOR_X2,
        &Decoder::decode_OP_GLOBAL__GLOBAL_ATOMIC_INC_X2,
        &Decoder::decode_OP_GLOBAL__GLOBAL_ATOMIC_DEC_X2,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid
    };

    IsaDecodeMethod Decoder::tableSubDecode_OP_MIMG[] = {
        &Decoder::decode_OP_MIMG__IMAGE_LOAD,
        &Decoder::decode_OP_MIMG__IMAGE_LOAD_MIP,
        &Decoder::decode_OP_MIMG__IMAGE_LOAD_PCK,
        &Decoder::decode_OP_MIMG__IMAGE_LOAD_PCK_SGN,
        &Decoder::decode_OP_MIMG__IMAGE_LOAD_MIP_PCK,
        &Decoder::decode_OP_MIMG__IMAGE_LOAD_MIP_PCK_SGN,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_OP_MIMG__IMAGE_STORE,
        &Decoder::decode_OP_MIMG__IMAGE_STORE_MIP,
        &Decoder::decode_OP_MIMG__IMAGE_STORE_PCK,
        &Decoder::decode_OP_MIMG__IMAGE_STORE_MIP_PCK,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_OP_MIMG__IMAGE_GET_RESINFO,
        &Decoder::decode_invalid,
        &Decoder::decode_OP_MIMG__IMAGE_ATOMIC_SWAP,
        &Decoder::decode_OP_MIMG__IMAGE_ATOMIC_CMPSWAP,
        &Decoder::decode_OP_MIMG__IMAGE_ATOMIC_ADD,
        &Decoder::decode_OP_MIMG__IMAGE_ATOMIC_SUB,
        &Decoder::decode_OP_MIMG__IMAGE_ATOMIC_SMIN,
        &Decoder::decode_OP_MIMG__IMAGE_ATOMIC_UMIN,
        &Decoder::decode_OP_MIMG__IMAGE_ATOMIC_SMAX,
        &Decoder::decode_OP_MIMG__IMAGE_ATOMIC_UMAX,
        &Decoder::decode_OP_MIMG__IMAGE_ATOMIC_AND,
        &Decoder::decode_OP_MIMG__IMAGE_ATOMIC_OR,
        &Decoder::decode_OP_MIMG__IMAGE_ATOMIC_XOR,
        &Decoder::decode_OP_MIMG__IMAGE_ATOMIC_INC,
        &Decoder::decode_OP_MIMG__IMAGE_ATOMIC_DEC,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_OP_MIMG__IMAGE_SAMPLE,
        &Decoder::decode_OP_MIMG__IMAGE_SAMPLE_CL,
        &Decoder::decode_OP_MIMG__IMAGE_SAMPLE_D,
        &Decoder::decode_OP_MIMG__IMAGE_SAMPLE_D_CL,
        &Decoder::decode_OP_MIMG__IMAGE_SAMPLE_L,
        &Decoder::decode_OP_MIMG__IMAGE_SAMPLE_B,
        &Decoder::decode_OP_MIMG__IMAGE_SAMPLE_B_CL,
        &Decoder::decode_OP_MIMG__IMAGE_SAMPLE_LZ,
        &Decoder::decode_OP_MIMG__IMAGE_SAMPLE_C,
        &Decoder::decode_OP_MIMG__IMAGE_SAMPLE_C_CL,
        &Decoder::decode_OP_MIMG__IMAGE_SAMPLE_C_D,
        &Decoder::decode_OP_MIMG__IMAGE_SAMPLE_C_D_CL,
        &Decoder::decode_OP_MIMG__IMAGE_SAMPLE_C_L,
        &Decoder::decode_OP_MIMG__IMAGE_SAMPLE_C_B,
        &Decoder::decode_OP_MIMG__IMAGE_SAMPLE_C_B_CL,
        &Decoder::decode_OP_MIMG__IMAGE_SAMPLE_C_LZ,
        &Decoder::decode_OP_MIMG__IMAGE_SAMPLE_O,
        &Decoder::decode_OP_MIMG__IMAGE_SAMPLE_CL_O,
        &Decoder::decode_OP_MIMG__IMAGE_SAMPLE_D_O,
        &Decoder::decode_OP_MIMG__IMAGE_SAMPLE_D_CL_O,
        &Decoder::decode_OP_MIMG__IMAGE_SAMPLE_L_O,
        &Decoder::decode_OP_MIMG__IMAGE_SAMPLE_B_O,
        &Decoder::decode_OP_MIMG__IMAGE_SAMPLE_B_CL_O,
        &Decoder::decode_OP_MIMG__IMAGE_SAMPLE_LZ_O,
        &Decoder::decode_OP_MIMG__IMAGE_SAMPLE_C_O,
        &Decoder::decode_OP_MIMG__IMAGE_SAMPLE_C_CL_O,
        &Decoder::decode_OP_MIMG__IMAGE_SAMPLE_C_D_O,
        &Decoder::decode_OP_MIMG__IMAGE_SAMPLE_C_D_CL_O,
        &Decoder::decode_OP_MIMG__IMAGE_SAMPLE_C_L_O,
        &Decoder::decode_OP_MIMG__IMAGE_SAMPLE_C_B_O,
        &Decoder::decode_OP_MIMG__IMAGE_SAMPLE_C_B_CL_O,
        &Decoder::decode_OP_MIMG__IMAGE_SAMPLE_C_LZ_O,
        &Decoder::decode_OP_MIMG__IMAGE_GATHER4,
        &Decoder::decode_OP_MIMG__IMAGE_GATHER4_CL,
        &Decoder::decode_OP_MIMG__IMAGE_GATHER4H,
        &Decoder::decode_invalid,
        &Decoder::decode_OP_MIMG__IMAGE_GATHER4_L,
        &Decoder::decode_OP_MIMG__IMAGE_GATHER4_B,
        &Decoder::decode_OP_MIMG__IMAGE_GATHER4_B_CL,
        &Decoder::decode_OP_MIMG__IMAGE_GATHER4_LZ,
        &Decoder::decode_OP_MIMG__IMAGE_GATHER4_C,
        &Decoder::decode_OP_MIMG__IMAGE_GATHER4_C_CL,
        &Decoder::decode_OP_MIMG__IMAGE_GATHER4H_PCK,
        &Decoder::decode_OP_MIMG__IMAGE_GATHER8H_PCK,
        &Decoder::decode_OP_MIMG__IMAGE_GATHER4_C_L,
        &Decoder::decode_OP_MIMG__IMAGE_GATHER4_C_B,
        &Decoder::decode_OP_MIMG__IMAGE_GATHER4_C_B_CL,
        &Decoder::decode_OP_MIMG__IMAGE_GATHER4_C_LZ,
        &Decoder::decode_OP_MIMG__IMAGE_GATHER4_O,
        &Decoder::decode_OP_MIMG__IMAGE_GATHER4_CL_O,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_OP_MIMG__IMAGE_GATHER4_L_O,
        &Decoder::decode_OP_MIMG__IMAGE_GATHER4_B_O,
        &Decoder::decode_OP_MIMG__IMAGE_GATHER4_B_CL_O,
        &Decoder::decode_OP_MIMG__IMAGE_GATHER4_LZ_O,
        &Decoder::decode_OP_MIMG__IMAGE_GATHER4_C_O,
        &Decoder::decode_OP_MIMG__IMAGE_GATHER4_C_CL_O,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_OP_MIMG__IMAGE_GATHER4_C_L_O,
        &Decoder::decode_OP_MIMG__IMAGE_GATHER4_C_B_O,
        &Decoder::decode_OP_MIMG__IMAGE_GATHER4_C_B_CL_O,
        &Decoder::decode_OP_MIMG__IMAGE_GATHER4_C_LZ_O,
        &Decoder::decode_OP_MIMG__IMAGE_GET_LOD,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_OP_MIMG__IMAGE_SAMPLE_CD,
        &Decoder::decode_OP_MIMG__IMAGE_SAMPLE_CD_CL,
        &Decoder::decode_OP_MIMG__IMAGE_SAMPLE_C_CD,
        &Decoder::decode_OP_MIMG__IMAGE_SAMPLE_C_CD_CL,
        &Decoder::decode_OP_MIMG__IMAGE_SAMPLE_CD_O,
        &Decoder::decode_OP_MIMG__IMAGE_SAMPLE_CD_CL_O,
        &Decoder::decode_OP_MIMG__IMAGE_SAMPLE_C_CD_O,
        &Decoder::decode_OP_MIMG__IMAGE_SAMPLE_C_CD_CL_O,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid
    };

    IsaDecodeMethod Decoder::tableSubDecode_OP_MTBUF[] = {
        &Decoder::decode_OP_MTBUF__TBUFFER_LOAD_FORMAT_X,
        &Decoder::decode_OP_MTBUF__TBUFFER_LOAD_FORMAT_XY,
        &Decoder::decode_OP_MTBUF__TBUFFER_LOAD_FORMAT_XYZ,
        &Decoder::decode_OP_MTBUF__TBUFFER_LOAD_FORMAT_XYZW,
        &Decoder::decode_OP_MTBUF__TBUFFER_STORE_FORMAT_X,
        &Decoder::decode_OP_MTBUF__TBUFFER_STORE_FORMAT_XY,
        &Decoder::decode_OP_MTBUF__TBUFFER_STORE_FORMAT_XYZ,
        &Decoder::decode_OP_MTBUF__TBUFFER_STORE_FORMAT_XYZW,
        &Decoder::decode_OP_MTBUF__TBUFFER_LOAD_FORMAT_D16_X,
        &Decoder::decode_OP_MTBUF__TBUFFER_LOAD_FORMAT_D16_XY,
        &Decoder::decode_OP_MTBUF__TBUFFER_LOAD_FORMAT_D16_XYZ,
        &Decoder::decode_OP_MTBUF__TBUFFER_LOAD_FORMAT_D16_XYZW,
        &Decoder::decode_OP_MTBUF__TBUFFER_STORE_FORMAT_D16_X,
        &Decoder::decode_OP_MTBUF__TBUFFER_STORE_FORMAT_D16_XY,
        &Decoder::decode_OP_MTBUF__TBUFFER_STORE_FORMAT_D16_XYZ,
        &Decoder::decode_OP_MTBUF__TBUFFER_STORE_FORMAT_D16_XYZW
    };

    IsaDecodeMethod Decoder::tableSubDecode_OP_MUBUF[] = {
        &Decoder::decode_OP_MUBUF__BUFFER_LOAD_FORMAT_X,
        &Decoder::decode_OP_MUBUF__BUFFER_LOAD_FORMAT_XY,
        &Decoder::decode_OP_MUBUF__BUFFER_LOAD_FORMAT_XYZ,
        &Decoder::decode_OP_MUBUF__BUFFER_LOAD_FORMAT_XYZW,
        &Decoder::decode_OP_MUBUF__BUFFER_STORE_FORMAT_X,
        &Decoder::decode_OP_MUBUF__BUFFER_STORE_FORMAT_XY,
        &Decoder::decode_OP_MUBUF__BUFFER_STORE_FORMAT_XYZ,
        &Decoder::decode_OP_MUBUF__BUFFER_STORE_FORMAT_XYZW,
        &Decoder::decode_OP_MUBUF__BUFFER_LOAD_FORMAT_D16_X,
        &Decoder::decode_OP_MUBUF__BUFFER_LOAD_FORMAT_D16_XY,
        &Decoder::decode_OP_MUBUF__BUFFER_LOAD_FORMAT_D16_XYZ,
        &Decoder::decode_OP_MUBUF__BUFFER_LOAD_FORMAT_D16_XYZW,
        &Decoder::decode_OP_MUBUF__BUFFER_STORE_FORMAT_D16_X,
        &Decoder::decode_OP_MUBUF__BUFFER_STORE_FORMAT_D16_XY,
        &Decoder::decode_OP_MUBUF__BUFFER_STORE_FORMAT_D16_XYZ,
        &Decoder::decode_OP_MUBUF__BUFFER_STORE_FORMAT_D16_XYZW,
        &Decoder::decode_OP_MUBUF__BUFFER_LOAD_UBYTE,
        &Decoder::decode_OP_MUBUF__BUFFER_LOAD_SBYTE,
        &Decoder::decode_OP_MUBUF__BUFFER_LOAD_USHORT,
        &Decoder::decode_OP_MUBUF__BUFFER_LOAD_SSHORT,
        &Decoder::decode_OP_MUBUF__BUFFER_LOAD_DWORD,
        &Decoder::decode_OP_MUBUF__BUFFER_LOAD_DWORDX2,
        &Decoder::decode_OP_MUBUF__BUFFER_LOAD_DWORDX3,
        &Decoder::decode_OP_MUBUF__BUFFER_LOAD_DWORDX4,
        &Decoder::decode_OP_MUBUF__BUFFER_STORE_BYTE,
        &Decoder::decode_OP_MUBUF__BUFFER_STORE_BYTE_D16_HI,
        &Decoder::decode_OP_MUBUF__BUFFER_STORE_SHORT,
        &Decoder::decode_OP_MUBUF__BUFFER_STORE_SHORT_D16_HI,
        &Decoder::decode_OP_MUBUF__BUFFER_STORE_DWORD,
        &Decoder::decode_OP_MUBUF__BUFFER_STORE_DWORDX2,
        &Decoder::decode_OP_MUBUF__BUFFER_STORE_DWORDX3,
        &Decoder::decode_OP_MUBUF__BUFFER_STORE_DWORDX4,
        &Decoder::decode_OP_MUBUF__BUFFER_LOAD_UBYTE_D16,
        &Decoder::decode_OP_MUBUF__BUFFER_LOAD_UBYTE_D16_HI,
        &Decoder::decode_OP_MUBUF__BUFFER_LOAD_SBYTE_D16,
        &Decoder::decode_OP_MUBUF__BUFFER_LOAD_SBYTE_D16_HI,
        &Decoder::decode_OP_MUBUF__BUFFER_LOAD_SHORT_D16,
        &Decoder::decode_OP_MUBUF__BUFFER_LOAD_SHORT_D16_HI,
        &Decoder::decode_OP_MUBUF__BUFFER_LOAD_FORMAT_D16_HI_X,
        &Decoder::decode_OP_MUBUF__BUFFER_STORE_FORMAT_D16_HI_X,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_OP_MUBUF__BUFFER_STORE_LDS_DWORD,
        &Decoder::decode_OP_MUBUF__BUFFER_WBINVL1,
        &Decoder::decode_OP_MUBUF__BUFFER_WBINVL1_VOL,
        &Decoder::decode_OP_MUBUF__BUFFER_ATOMIC_SWAP,
        &Decoder::decode_OP_MUBUF__BUFFER_ATOMIC_CMPSWAP,
        &Decoder::decode_OP_MUBUF__BUFFER_ATOMIC_ADD,
        &Decoder::decode_OP_MUBUF__BUFFER_ATOMIC_SUB,
        &Decoder::decode_OP_MUBUF__BUFFER_ATOMIC_SMIN,
        &Decoder::decode_OP_MUBUF__BUFFER_ATOMIC_UMIN,
        &Decoder::decode_OP_MUBUF__BUFFER_ATOMIC_SMAX,
        &Decoder::decode_OP_MUBUF__BUFFER_ATOMIC_UMAX,
        &Decoder::decode_OP_MUBUF__BUFFER_ATOMIC_AND,
        &Decoder::decode_OP_MUBUF__BUFFER_ATOMIC_OR,
        &Decoder::decode_OP_MUBUF__BUFFER_ATOMIC_XOR,
        &Decoder::decode_OP_MUBUF__BUFFER_ATOMIC_INC,
        &Decoder::decode_OP_MUBUF__BUFFER_ATOMIC_DEC,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_OP_MUBUF__BUFFER_ATOMIC_SWAP_X2,
        &Decoder::decode_OP_MUBUF__BUFFER_ATOMIC_CMPSWAP_X2,
        &Decoder::decode_OP_MUBUF__BUFFER_ATOMIC_ADD_X2,
        &Decoder::decode_OP_MUBUF__BUFFER_ATOMIC_SUB_X2,
        &Decoder::decode_OP_MUBUF__BUFFER_ATOMIC_SMIN_X2,
        &Decoder::decode_OP_MUBUF__BUFFER_ATOMIC_UMIN_X2,
        &Decoder::decode_OP_MUBUF__BUFFER_ATOMIC_SMAX_X2,
        &Decoder::decode_OP_MUBUF__BUFFER_ATOMIC_UMAX_X2,
        &Decoder::decode_OP_MUBUF__BUFFER_ATOMIC_AND_X2,
        &Decoder::decode_OP_MUBUF__BUFFER_ATOMIC_OR_X2,
        &Decoder::decode_OP_MUBUF__BUFFER_ATOMIC_XOR_X2,
        &Decoder::decode_OP_MUBUF__BUFFER_ATOMIC_INC_X2,
        &Decoder::decode_OP_MUBUF__BUFFER_ATOMIC_DEC_X2,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid
    };

    IsaDecodeMethod Decoder::tableSubDecode_OP_SCRATCH[] = {
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_OP_SCRATCH__SCRATCH_LOAD_UBYTE,
        &Decoder::decode_OP_SCRATCH__SCRATCH_LOAD_SBYTE,
        &Decoder::decode_OP_SCRATCH__SCRATCH_LOAD_USHORT,
        &Decoder::decode_OP_SCRATCH__SCRATCH_LOAD_SSHORT,
        &Decoder::decode_OP_SCRATCH__SCRATCH_LOAD_DWORD,
        &Decoder::decode_OP_SCRATCH__SCRATCH_LOAD_DWORDX2,
        &Decoder::decode_OP_SCRATCH__SCRATCH_LOAD_DWORDX3,
        &Decoder::decode_OP_SCRATCH__SCRATCH_LOAD_DWORDX4,
        &Decoder::decode_OP_SCRATCH__SCRATCH_STORE_BYTE,
        &Decoder::decode_OP_SCRATCH__SCRATCH_STORE_BYTE_D16_HI,
        &Decoder::decode_OP_SCRATCH__SCRATCH_STORE_SHORT,
        &Decoder::decode_OP_SCRATCH__SCRATCH_STORE_SHORT_D16_HI,
        &Decoder::decode_OP_SCRATCH__SCRATCH_STORE_DWORD,
        &Decoder::decode_OP_SCRATCH__SCRATCH_STORE_DWORDX2,
        &Decoder::decode_OP_SCRATCH__SCRATCH_STORE_DWORDX3,
        &Decoder::decode_OP_SCRATCH__SCRATCH_STORE_DWORDX4,
        &Decoder::decode_OP_SCRATCH__SCRATCH_LOAD_UBYTE_D16,
        &Decoder::decode_OP_SCRATCH__SCRATCH_LOAD_UBYTE_D16_HI,
        &Decoder::decode_OP_SCRATCH__SCRATCH_LOAD_SBYTE_D16,
        &Decoder::decode_OP_SCRATCH__SCRATCH_LOAD_SBYTE_D16_HI,
        &Decoder::decode_OP_SCRATCH__SCRATCH_LOAD_SHORT_D16,
        &Decoder::decode_OP_SCRATCH__SCRATCH_LOAD_SHORT_D16_HI,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
    };

    IsaDecodeMethod Decoder::tableSubDecode_OP_SMEM[] = {
        &Decoder::decode_OP_SMEM__S_LOAD_DWORD,
        &Decoder::decode_OP_SMEM__S_LOAD_DWORDX2,
        &Decoder::decode_OP_SMEM__S_LOAD_DWORDX4,
        &Decoder::decode_OP_SMEM__S_LOAD_DWORDX8,
        &Decoder::decode_OP_SMEM__S_LOAD_DWORDX16,
        &Decoder::decode_OP_SMEM__S_SCRATCH_LOAD_DWORD,
        &Decoder::decode_OP_SMEM__S_SCRATCH_LOAD_DWORDX2,
        &Decoder::decode_OP_SMEM__S_SCRATCH_LOAD_DWORDX4,
        &Decoder::decode_OP_SMEM__S_BUFFER_LOAD_DWORD,
        &Decoder::decode_OP_SMEM__S_BUFFER_LOAD_DWORDX2,
        &Decoder::decode_OP_SMEM__S_BUFFER_LOAD_DWORDX4,
        &Decoder::decode_OP_SMEM__S_BUFFER_LOAD_DWORDX8,
        &Decoder::decode_OP_SMEM__S_BUFFER_LOAD_DWORDX16,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_OP_SMEM__S_STORE_DWORD,
        &Decoder::decode_OP_SMEM__S_STORE_DWORDX2,
        &Decoder::decode_OP_SMEM__S_STORE_DWORDX4,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_OP_SMEM__S_SCRATCH_STORE_DWORD,
        &Decoder::decode_OP_SMEM__S_SCRATCH_STORE_DWORDX2,
        &Decoder::decode_OP_SMEM__S_SCRATCH_STORE_DWORDX4,
        &Decoder::decode_OP_SMEM__S_BUFFER_STORE_DWORD,
        &Decoder::decode_OP_SMEM__S_BUFFER_STORE_DWORDX2,
        &Decoder::decode_OP_SMEM__S_BUFFER_STORE_DWORDX4,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_OP_SMEM__S_DCACHE_INV,
        &Decoder::decode_OP_SMEM__S_DCACHE_WB,
        &Decoder::decode_OP_SMEM__S_DCACHE_INV_VOL,
        &Decoder::decode_OP_SMEM__S_DCACHE_WB_VOL,
        &Decoder::decode_OP_SMEM__S_MEMTIME,
        &Decoder::decode_OP_SMEM__S_MEMREALTIME,
        &Decoder::decode_OP_SMEM__S_ATC_PROBE,
        &Decoder::decode_OP_SMEM__S_ATC_PROBE_BUFFER,
        &Decoder::decode_OP_SMEM__S_DCACHE_DISCARD,
        &Decoder::decode_OP_SMEM__S_DCACHE_DISCARD_X2,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_OP_SMEM__S_BUFFER_ATOMIC_SWAP,
        &Decoder::decode_OP_SMEM__S_BUFFER_ATOMIC_CMPSWAP,
        &Decoder::decode_OP_SMEM__S_BUFFER_ATOMIC_ADD,
        &Decoder::decode_OP_SMEM__S_BUFFER_ATOMIC_SUB,
        &Decoder::decode_OP_SMEM__S_BUFFER_ATOMIC_SMIN,
        &Decoder::decode_OP_SMEM__S_BUFFER_ATOMIC_UMIN,
        &Decoder::decode_OP_SMEM__S_BUFFER_ATOMIC_SMAX,
        &Decoder::decode_OP_SMEM__S_BUFFER_ATOMIC_UMAX,
        &Decoder::decode_OP_SMEM__S_BUFFER_ATOMIC_AND,
        &Decoder::decode_OP_SMEM__S_BUFFER_ATOMIC_OR,
        &Decoder::decode_OP_SMEM__S_BUFFER_ATOMIC_XOR,
        &Decoder::decode_OP_SMEM__S_BUFFER_ATOMIC_INC,
        &Decoder::decode_OP_SMEM__S_BUFFER_ATOMIC_DEC,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_OP_SMEM__S_BUFFER_ATOMIC_SWAP_X2,
        &Decoder::decode_OP_SMEM__S_BUFFER_ATOMIC_CMPSWAP_X2,
        &Decoder::decode_OP_SMEM__S_BUFFER_ATOMIC_ADD_X2,
        &Decoder::decode_OP_SMEM__S_BUFFER_ATOMIC_SUB_X2,
        &Decoder::decode_OP_SMEM__S_BUFFER_ATOMIC_SMIN_X2,
        &Decoder::decode_OP_SMEM__S_BUFFER_ATOMIC_UMIN_X2,
        &Decoder::decode_OP_SMEM__S_BUFFER_ATOMIC_SMAX_X2,
        &Decoder::decode_OP_SMEM__S_BUFFER_ATOMIC_UMAX_X2,
        &Decoder::decode_OP_SMEM__S_BUFFER_ATOMIC_AND_X2,
        &Decoder::decode_OP_SMEM__S_BUFFER_ATOMIC_OR_X2,
        &Decoder::decode_OP_SMEM__S_BUFFER_ATOMIC_XOR_X2,
        &Decoder::decode_OP_SMEM__S_BUFFER_ATOMIC_INC_X2,
        &Decoder::decode_OP_SMEM__S_BUFFER_ATOMIC_DEC_X2,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_OP_SMEM__S_ATOMIC_SWAP,
        &Decoder::decode_OP_SMEM__S_ATOMIC_CMPSWAP,
        &Decoder::decode_OP_SMEM__S_ATOMIC_ADD,
        &Decoder::decode_OP_SMEM__S_ATOMIC_SUB,
        &Decoder::decode_OP_SMEM__S_ATOMIC_SMIN,
        &Decoder::decode_OP_SMEM__S_ATOMIC_UMIN,
        &Decoder::decode_OP_SMEM__S_ATOMIC_SMAX,
        &Decoder::decode_OP_SMEM__S_ATOMIC_UMAX,
        &Decoder::decode_OP_SMEM__S_ATOMIC_AND,
        &Decoder::decode_OP_SMEM__S_ATOMIC_OR,
        &Decoder::decode_OP_SMEM__S_ATOMIC_XOR,
        &Decoder::decode_OP_SMEM__S_ATOMIC_INC,
        &Decoder::decode_OP_SMEM__S_ATOMIC_DEC,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_OP_SMEM__S_ATOMIC_SWAP_X2,
        &Decoder::decode_OP_SMEM__S_ATOMIC_CMPSWAP_X2,
        &Decoder::decode_OP_SMEM__S_ATOMIC_ADD_X2,
        &Decoder::decode_OP_SMEM__S_ATOMIC_SUB_X2,
        &Decoder::decode_OP_SMEM__S_ATOMIC_SMIN_X2,
        &Decoder::decode_OP_SMEM__S_ATOMIC_UMIN_X2,
        &Decoder::decode_OP_SMEM__S_ATOMIC_SMAX_X2,
        &Decoder::decode_OP_SMEM__S_ATOMIC_UMAX_X2,
        &Decoder::decode_OP_SMEM__S_ATOMIC_AND_X2,
        &Decoder::decode_OP_SMEM__S_ATOMIC_OR_X2,
        &Decoder::decode_OP_SMEM__S_ATOMIC_XOR_X2,
        &Decoder::decode_OP_SMEM__S_ATOMIC_INC_X2,
        &Decoder::decode_OP_SMEM__S_ATOMIC_DEC_X2,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
    };

    IsaDecodeMethod Decoder::tableSubDecode_OP_SOP1[] = {
        &Decoder::decode_OP_SOP1__S_MOV_B32,
        &Decoder::decode_OP_SOP1__S_MOV_B64,
        &Decoder::decode_OP_SOP1__S_CMOV_B32,
        &Decoder::decode_OP_SOP1__S_CMOV_B64,
        &Decoder::decode_OP_SOP1__S_NOT_B32,
        &Decoder::decode_OP_SOP1__S_NOT_B64,
        &Decoder::decode_OP_SOP1__S_WQM_B32,
        &Decoder::decode_OP_SOP1__S_WQM_B64,
        &Decoder::decode_OP_SOP1__S_BREV_B32,
        &Decoder::decode_OP_SOP1__S_BREV_B64,
        &Decoder::decode_OP_SOP1__S_BCNT0_I32_B32,
        &Decoder::decode_OP_SOP1__S_BCNT0_I32_B64,
        &Decoder::decode_OP_SOP1__S_BCNT1_I32_B32,
        &Decoder::decode_OP_SOP1__S_BCNT1_I32_B64,
        &Decoder::decode_OP_SOP1__S_FF0_I32_B32,
        &Decoder::decode_OP_SOP1__S_FF0_I32_B64,
        &Decoder::decode_OP_SOP1__S_FF1_I32_B32,
        &Decoder::decode_OP_SOP1__S_FF1_I32_B64,
        &Decoder::decode_OP_SOP1__S_FLBIT_I32_B32,
        &Decoder::decode_OP_SOP1__S_FLBIT_I32_B64,
        &Decoder::decode_OP_SOP1__S_FLBIT_I32,
        &Decoder::decode_OP_SOP1__S_FLBIT_I32_I64,
        &Decoder::decode_OP_SOP1__S_SEXT_I32_I8,
        &Decoder::decode_OP_SOP1__S_SEXT_I32_I16,
        &Decoder::decode_OP_SOP1__S_BITSET0_B32,
        &Decoder::decode_OP_SOP1__S_BITSET0_B64,
        &Decoder::decode_OP_SOP1__S_BITSET1_B32,
        &Decoder::decode_OP_SOP1__S_BITSET1_B64,
        &Decoder::decode_OP_SOP1__S_GETPC_B64,
        &Decoder::decode_OP_SOP1__S_SETPC_B64,
        &Decoder::decode_OP_SOP1__S_SWAPPC_B64,
        &Decoder::decode_OP_SOP1__S_RFE_B64,
        &Decoder::decode_OP_SOP1__S_AND_SAVEEXEC_B64,
        &Decoder::decode_OP_SOP1__S_OR_SAVEEXEC_B64,
        &Decoder::decode_OP_SOP1__S_XOR_SAVEEXEC_B64,
        &Decoder::decode_OP_SOP1__S_ANDN2_SAVEEXEC_B64,
        &Decoder::decode_OP_SOP1__S_ORN2_SAVEEXEC_B64,
        &Decoder::decode_OP_SOP1__S_NAND_SAVEEXEC_B64,
        &Decoder::decode_OP_SOP1__S_NOR_SAVEEXEC_B64,
        &Decoder::decode_OP_SOP1__S_XNOR_SAVEEXEC_B64,
        &Decoder::decode_OP_SOP1__S_QUADMASK_B32,
        &Decoder::decode_OP_SOP1__S_QUADMASK_B64,
        &Decoder::decode_OP_SOP1__S_MOVRELS_B32,
        &Decoder::decode_OP_SOP1__S_MOVRELS_B64,
        &Decoder::decode_OP_SOP1__S_MOVRELD_B32,
        &Decoder::decode_OP_SOP1__S_MOVRELD_B64,
        &Decoder::decode_OP_SOP1__S_CBRANCH_JOIN,
        &Decoder::decode_invalid,
        &Decoder::decode_OP_SOP1__S_ABS_I32,
        &Decoder::decode_invalid,
        &Decoder::decode_OP_SOP1__S_SET_GPR_IDX_IDX,
        &Decoder::decode_OP_SOP1__S_ANDN1_SAVEEXEC_B64,
        &Decoder::decode_OP_SOP1__S_ORN1_SAVEEXEC_B64,
        &Decoder::decode_OP_SOP1__S_ANDN1_WREXEC_B64,
        &Decoder::decode_OP_SOP1__S_ANDN2_WREXEC_B64,
        &Decoder::decode_OP_SOP1__S_BITREPLICATE_B64_B32,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid
    };

    IsaDecodeMethod Decoder::tableSubDecode_OP_SOPC[] = {
        &Decoder::decode_OP_SOPC__S_CMP_EQ_I32,
        &Decoder::decode_OP_SOPC__S_CMP_LG_I32,
        &Decoder::decode_OP_SOPC__S_CMP_GT_I32,
        &Decoder::decode_OP_SOPC__S_CMP_GE_I32,
        &Decoder::decode_OP_SOPC__S_CMP_LT_I32,
        &Decoder::decode_OP_SOPC__S_CMP_LE_I32,
        &Decoder::decode_OP_SOPC__S_CMP_EQ_U32,
        &Decoder::decode_OP_SOPC__S_CMP_LG_U32,
        &Decoder::decode_OP_SOPC__S_CMP_GT_U32,
        &Decoder::decode_OP_SOPC__S_CMP_GE_U32,
        &Decoder::decode_OP_SOPC__S_CMP_LT_U32,
        &Decoder::decode_OP_SOPC__S_CMP_LE_U32,
        &Decoder::decode_OP_SOPC__S_BITCMP0_B32,
        &Decoder::decode_OP_SOPC__S_BITCMP1_B32,
        &Decoder::decode_OP_SOPC__S_BITCMP0_B64,
        &Decoder::decode_OP_SOPC__S_BITCMP1_B64,
        &Decoder::decode_OP_SOPC__S_SETVSKIP,
        &Decoder::decode_OP_SOPC__S_SET_GPR_IDX_ON,
        &Decoder::decode_OP_SOPC__S_CMP_EQ_U64,
        &Decoder::decode_OP_SOPC__S_CMP_LG_U64,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid
    };

    IsaDecodeMethod Decoder::tableSubDecode_OP_SOPP[] = {
        &Decoder::decode_OP_SOPP__S_NOP,
        &Decoder::decode_OP_SOPP__S_ENDPGM,
        &Decoder::decode_OP_SOPP__S_BRANCH,
        &Decoder::decode_OP_SOPP__S_WAKEUP,
        &Decoder::decode_OP_SOPP__S_CBRANCH_SCC0,
        &Decoder::decode_OP_SOPP__S_CBRANCH_SCC1,
        &Decoder::decode_OP_SOPP__S_CBRANCH_VCCZ,
        &Decoder::decode_OP_SOPP__S_CBRANCH_VCCNZ,
        &Decoder::decode_OP_SOPP__S_CBRANCH_EXECZ,
        &Decoder::decode_OP_SOPP__S_CBRANCH_EXECNZ,
        &Decoder::decode_OP_SOPP__S_BARRIER,
        &Decoder::decode_OP_SOPP__S_SETKILL,
        &Decoder::decode_OP_SOPP__S_WAITCNT,
        &Decoder::decode_OP_SOPP__S_SETHALT,
        &Decoder::decode_OP_SOPP__S_SLEEP,
        &Decoder::decode_OP_SOPP__S_SETPRIO,
        &Decoder::decode_OP_SOPP__S_SENDMSG,
        &Decoder::decode_OP_SOPP__S_SENDMSGHALT,
        &Decoder::decode_OP_SOPP__S_TRAP,
        &Decoder::decode_OP_SOPP__S_ICACHE_INV,
        &Decoder::decode_OP_SOPP__S_INCPERFLEVEL,
        &Decoder::decode_OP_SOPP__S_DECPERFLEVEL,
        &Decoder::decode_OP_SOPP__S_TTRACEDATA,
        &Decoder::decode_OP_SOPP__S_CBRANCH_CDBGSYS,
        &Decoder::decode_OP_SOPP__S_CBRANCH_CDBGUSER,
        &Decoder::decode_OP_SOPP__S_CBRANCH_CDBGSYS_OR_USER,
        &Decoder::decode_OP_SOPP__S_CBRANCH_CDBGSYS_AND_USER,
        &Decoder::decode_OP_SOPP__S_ENDPGM_SAVED,
        &Decoder::decode_OP_SOPP__S_SET_GPR_IDX_OFF,
        &Decoder::decode_OP_SOPP__S_SET_GPR_IDX_MODE,
        &Decoder::decode_OP_SOPP__S_ENDPGM_ORDERED_PS_DONE,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid
    };

    IsaDecodeMethod Decoder::tableSubDecode_OP_VINTRP[] = {
        &Decoder::decode_OP_VINTRP__V_INTERP_P1_F32,
        &Decoder::decode_OP_VINTRP__V_INTERP_P2_F32,
        &Decoder::decode_OP_VINTRP__V_INTERP_MOV_F32,
        &Decoder::decode_invalid
    };

    IsaDecodeMethod Decoder::tableSubDecode_OP_VOP1[] = {
        &Decoder::decode_OP_VOP1__V_NOP,
        &Decoder::decode_OP_VOP1__V_MOV_B32,
        &Decoder::decode_OP_VOP1__V_READFIRSTLANE_B32,
        &Decoder::decode_OP_VOP1__V_CVT_I32_F64,
        &Decoder::decode_OP_VOP1__V_CVT_F64_I32,
        &Decoder::decode_OP_VOP1__V_CVT_F32_I32,
        &Decoder::decode_OP_VOP1__V_CVT_F32_U32,
        &Decoder::decode_OP_VOP1__V_CVT_U32_F32,
        &Decoder::decode_OP_VOP1__V_CVT_I32_F32,
        &Decoder::decode_invalid,
        &Decoder::decode_OP_VOP1__V_CVT_F16_F32,
        &Decoder::decode_OP_VOP1__V_CVT_F32_F16,
        &Decoder::decode_OP_VOP1__V_CVT_RPI_I32_F32,
        &Decoder::decode_OP_VOP1__V_CVT_FLR_I32_F32,
        &Decoder::decode_OP_VOP1__V_CVT_OFF_F32_I4,
        &Decoder::decode_OP_VOP1__V_CVT_F32_F64,
        &Decoder::decode_OP_VOP1__V_CVT_F64_F32,
        &Decoder::decode_OP_VOP1__V_CVT_F32_UBYTE0,
        &Decoder::decode_OP_VOP1__V_CVT_F32_UBYTE1,
        &Decoder::decode_OP_VOP1__V_CVT_F32_UBYTE2,
        &Decoder::decode_OP_VOP1__V_CVT_F32_UBYTE3,
        &Decoder::decode_OP_VOP1__V_CVT_U32_F64,
        &Decoder::decode_OP_VOP1__V_CVT_F64_U32,
        &Decoder::decode_OP_VOP1__V_TRUNC_F64,
        &Decoder::decode_OP_VOP1__V_CEIL_F64,
        &Decoder::decode_OP_VOP1__V_RNDNE_F64,
        &Decoder::decode_OP_VOP1__V_FLOOR_F64,
        &Decoder::decode_OP_VOP1__V_FRACT_F32,
        &Decoder::decode_OP_VOP1__V_TRUNC_F32,
        &Decoder::decode_OP_VOP1__V_CEIL_F32,
        &Decoder::decode_OP_VOP1__V_RNDNE_F32,
        &Decoder::decode_OP_VOP1__V_FLOOR_F32,
        &Decoder::decode_OP_VOP1__V_EXP_F32,
        &Decoder::decode_OP_VOP1__V_LOG_F32,
        &Decoder::decode_OP_VOP1__V_RCP_F32,
        &Decoder::decode_OP_VOP1__V_RCP_IFLAG_F32,
        &Decoder::decode_OP_VOP1__V_RSQ_F32,
        &Decoder::decode_OP_VOP1__V_RCP_F64,
        &Decoder::decode_OP_VOP1__V_RSQ_F64,
        &Decoder::decode_OP_VOP1__V_SQRT_F32,
        &Decoder::decode_OP_VOP1__V_SQRT_F64,
        &Decoder::decode_OP_VOP1__V_SIN_F32,
        &Decoder::decode_OP_VOP1__V_COS_F32,
        &Decoder::decode_OP_VOP1__V_NOT_B32,
        &Decoder::decode_OP_VOP1__V_BFREV_B32,
        &Decoder::decode_OP_VOP1__V_FFBH_U32,
        &Decoder::decode_OP_VOP1__V_FFBL_B32,
        &Decoder::decode_OP_VOP1__V_FFBH_I32,
        &Decoder::decode_OP_VOP1__V_FREXP_EXP_I32_F64,
        &Decoder::decode_OP_VOP1__V_FREXP_MANT_F64,
        &Decoder::decode_OP_VOP1__V_FRACT_F64,
        &Decoder::decode_OP_VOP1__V_FREXP_EXP_I32_F32,
        &Decoder::decode_OP_VOP1__V_FREXP_MANT_F32,
        &Decoder::decode_OP_VOP1__V_CLREXCP,
        &Decoder::decode_invalid,
        &Decoder::decode_OP_VOP1__V_SCREEN_PARTITION_4SE_B32,
        &Decoder::decode_invalid,
        &Decoder::decode_OP_VOP1__V_CVT_F16_U16,
        &Decoder::decode_OP_VOP1__V_CVT_F16_I16,
        &Decoder::decode_OP_VOP1__V_CVT_U16_F16,
        &Decoder::decode_OP_VOP1__V_CVT_I16_F16,
        &Decoder::decode_OP_VOP1__V_RCP_F16,
        &Decoder::decode_OP_VOP1__V_SQRT_F16,
        &Decoder::decode_OP_VOP1__V_RSQ_F16,
        &Decoder::decode_OP_VOP1__V_LOG_F16,
        &Decoder::decode_OP_VOP1__V_EXP_F16,
        &Decoder::decode_OP_VOP1__V_FREXP_MANT_F16,
        &Decoder::decode_OP_VOP1__V_FREXP_EXP_I16_F16,
        &Decoder::decode_OP_VOP1__V_FLOOR_F16,
        &Decoder::decode_OP_VOP1__V_CEIL_F16,
        &Decoder::decode_OP_VOP1__V_TRUNC_F16,
        &Decoder::decode_OP_VOP1__V_RNDNE_F16,
        &Decoder::decode_OP_VOP1__V_FRACT_F16,
        &Decoder::decode_OP_VOP1__V_SIN_F16,
        &Decoder::decode_OP_VOP1__V_COS_F16,
        &Decoder::decode_OP_VOP1__V_EXP_LEGACY_F32,
        &Decoder::decode_OP_VOP1__V_LOG_LEGACY_F32,
        &Decoder::decode_OP_VOP1__V_CVT_NORM_I16_F16,
        &Decoder::decode_OP_VOP1__V_CVT_NORM_U16_F16,
        &Decoder::decode_OP_VOP1__V_SAT_PK_U8_I16,
        &Decoder::decode_OP_VOP1__V_SWAP_B32,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid
    };

    IsaDecodeMethod Decoder::tableSubDecode_OP_VOPC[] = {
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_OP_VOPC__V_CMP_CLASS_F32,
        &Decoder::decode_OP_VOPC__V_CMPX_CLASS_F32,
        &Decoder::decode_OP_VOPC__V_CMP_CLASS_F64,
        &Decoder::decode_OP_VOPC__V_CMPX_CLASS_F64,
        &Decoder::decode_OP_VOPC__V_CMP_CLASS_F16,
        &Decoder::decode_OP_VOPC__V_CMPX_CLASS_F16,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_OP_VOPC__V_CMP_F_F16,
        &Decoder::decode_OP_VOPC__V_CMP_LT_F16,
        &Decoder::decode_OP_VOPC__V_CMP_EQ_F16,
        &Decoder::decode_OP_VOPC__V_CMP_LE_F16,
        &Decoder::decode_OP_VOPC__V_CMP_GT_F16,
        &Decoder::decode_OP_VOPC__V_CMP_LG_F16,
        &Decoder::decode_OP_VOPC__V_CMP_GE_F16,
        &Decoder::decode_OP_VOPC__V_CMP_O_F16,
        &Decoder::decode_OP_VOPC__V_CMP_U_F16,
        &Decoder::decode_OP_VOPC__V_CMP_NGE_F16,
        &Decoder::decode_OP_VOPC__V_CMP_NLG_F16,
        &Decoder::decode_OP_VOPC__V_CMP_NGT_F16,
        &Decoder::decode_OP_VOPC__V_CMP_NLE_F16,
        &Decoder::decode_OP_VOPC__V_CMP_NEQ_F16,
        &Decoder::decode_OP_VOPC__V_CMP_NLT_F16,
        &Decoder::decode_OP_VOPC__V_CMP_TRU_F16,
        &Decoder::decode_OP_VOPC__V_CMPX_F_F16,
        &Decoder::decode_OP_VOPC__V_CMPX_LT_F16,
        &Decoder::decode_OP_VOPC__V_CMPX_EQ_F16,
        &Decoder::decode_OP_VOPC__V_CMPX_LE_F16,
        &Decoder::decode_OP_VOPC__V_CMPX_GT_F16,
        &Decoder::decode_OP_VOPC__V_CMPX_LG_F16,
        &Decoder::decode_OP_VOPC__V_CMPX_GE_F16,
        &Decoder::decode_OP_VOPC__V_CMPX_O_F16,
        &Decoder::decode_OP_VOPC__V_CMPX_U_F16,
        &Decoder::decode_OP_VOPC__V_CMPX_NGE_F16,
        &Decoder::decode_OP_VOPC__V_CMPX_NLG_F16,
        &Decoder::decode_OP_VOPC__V_CMPX_NGT_F16,
        &Decoder::decode_OP_VOPC__V_CMPX_NLE_F16,
        &Decoder::decode_OP_VOPC__V_CMPX_NEQ_F16,
        &Decoder::decode_OP_VOPC__V_CMPX_NLT_F16,
        &Decoder::decode_OP_VOPC__V_CMPX_TRU_F16,
        &Decoder::decode_OP_VOPC__V_CMP_F_F32,
        &Decoder::decode_OP_VOPC__V_CMP_LT_F32,
        &Decoder::decode_OP_VOPC__V_CMP_EQ_F32,
        &Decoder::decode_OP_VOPC__V_CMP_LE_F32,
        &Decoder::decode_OP_VOPC__V_CMP_GT_F32,
        &Decoder::decode_OP_VOPC__V_CMP_LG_F32,
        &Decoder::decode_OP_VOPC__V_CMP_GE_F32,
        &Decoder::decode_OP_VOPC__V_CMP_O_F32,
        &Decoder::decode_OP_VOPC__V_CMP_U_F32,
        &Decoder::decode_OP_VOPC__V_CMP_NGE_F32,
        &Decoder::decode_OP_VOPC__V_CMP_NLG_F32,
        &Decoder::decode_OP_VOPC__V_CMP_NGT_F32,
        &Decoder::decode_OP_VOPC__V_CMP_NLE_F32,
        &Decoder::decode_OP_VOPC__V_CMP_NEQ_F32,
        &Decoder::decode_OP_VOPC__V_CMP_NLT_F32,
        &Decoder::decode_OP_VOPC__V_CMP_TRU_F32,
        &Decoder::decode_OP_VOPC__V_CMPX_F_F32,
        &Decoder::decode_OP_VOPC__V_CMPX_LT_F32,
        &Decoder::decode_OP_VOPC__V_CMPX_EQ_F32,
        &Decoder::decode_OP_VOPC__V_CMPX_LE_F32,
        &Decoder::decode_OP_VOPC__V_CMPX_GT_F32,
        &Decoder::decode_OP_VOPC__V_CMPX_LG_F32,
        &Decoder::decode_OP_VOPC__V_CMPX_GE_F32,
        &Decoder::decode_OP_VOPC__V_CMPX_O_F32,
        &Decoder::decode_OP_VOPC__V_CMPX_U_F32,
        &Decoder::decode_OP_VOPC__V_CMPX_NGE_F32,
        &Decoder::decode_OP_VOPC__V_CMPX_NLG_F32,
        &Decoder::decode_OP_VOPC__V_CMPX_NGT_F32,
        &Decoder::decode_OP_VOPC__V_CMPX_NLE_F32,
        &Decoder::decode_OP_VOPC__V_CMPX_NEQ_F32,
        &Decoder::decode_OP_VOPC__V_CMPX_NLT_F32,
        &Decoder::decode_OP_VOPC__V_CMPX_TRU_F32,
        &Decoder::decode_OP_VOPC__V_CMP_F_F64,
        &Decoder::decode_OP_VOPC__V_CMP_LT_F64,
        &Decoder::decode_OP_VOPC__V_CMP_EQ_F64,
        &Decoder::decode_OP_VOPC__V_CMP_LE_F64,
        &Decoder::decode_OP_VOPC__V_CMP_GT_F64,
        &Decoder::decode_OP_VOPC__V_CMP_LG_F64,
        &Decoder::decode_OP_VOPC__V_CMP_GE_F64,
        &Decoder::decode_OP_VOPC__V_CMP_O_F64,
        &Decoder::decode_OP_VOPC__V_CMP_U_F64,
        &Decoder::decode_OP_VOPC__V_CMP_NGE_F64,
        &Decoder::decode_OP_VOPC__V_CMP_NLG_F64,
        &Decoder::decode_OP_VOPC__V_CMP_NGT_F64,
        &Decoder::decode_OP_VOPC__V_CMP_NLE_F64,
        &Decoder::decode_OP_VOPC__V_CMP_NEQ_F64,
        &Decoder::decode_OP_VOPC__V_CMP_NLT_F64,
        &Decoder::decode_OP_VOPC__V_CMP_TRU_F64,
        &Decoder::decode_OP_VOPC__V_CMPX_F_F64,
        &Decoder::decode_OP_VOPC__V_CMPX_LT_F64,
        &Decoder::decode_OP_VOPC__V_CMPX_EQ_F64,
        &Decoder::decode_OP_VOPC__V_CMPX_LE_F64,
        &Decoder::decode_OP_VOPC__V_CMPX_GT_F64,
        &Decoder::decode_OP_VOPC__V_CMPX_LG_F64,
        &Decoder::decode_OP_VOPC__V_CMPX_GE_F64,
        &Decoder::decode_OP_VOPC__V_CMPX_O_F64,
        &Decoder::decode_OP_VOPC__V_CMPX_U_F64,
        &Decoder::decode_OP_VOPC__V_CMPX_NGE_F64,
        &Decoder::decode_OP_VOPC__V_CMPX_NLG_F64,
        &Decoder::decode_OP_VOPC__V_CMPX_NGT_F64,
        &Decoder::decode_OP_VOPC__V_CMPX_NLE_F64,
        &Decoder::decode_OP_VOPC__V_CMPX_NEQ_F64,
        &Decoder::decode_OP_VOPC__V_CMPX_NLT_F64,
        &Decoder::decode_OP_VOPC__V_CMPX_TRU_F64,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_OP_VOPC__V_CMP_F_I16,
        &Decoder::decode_OP_VOPC__V_CMP_LT_I16,
        &Decoder::decode_OP_VOPC__V_CMP_EQ_I16,
        &Decoder::decode_OP_VOPC__V_CMP_LE_I16,
        &Decoder::decode_OP_VOPC__V_CMP_GT_I16,
        &Decoder::decode_OP_VOPC__V_CMP_NE_I16,
        &Decoder::decode_OP_VOPC__V_CMP_GE_I16,
        &Decoder::decode_OP_VOPC__V_CMP_T_I16,
        &Decoder::decode_OP_VOPC__V_CMP_F_U16,
        &Decoder::decode_OP_VOPC__V_CMP_LT_U16,
        &Decoder::decode_OP_VOPC__V_CMP_EQ_U16,
        &Decoder::decode_OP_VOPC__V_CMP_LE_U16,
        &Decoder::decode_OP_VOPC__V_CMP_GT_U16,
        &Decoder::decode_OP_VOPC__V_CMP_NE_U16,
        &Decoder::decode_OP_VOPC__V_CMP_GE_U16,
        &Decoder::decode_OP_VOPC__V_CMP_T_U16,
        &Decoder::decode_OP_VOPC__V_CMPX_F_I16,
        &Decoder::decode_OP_VOPC__V_CMPX_LT_I16,
        &Decoder::decode_OP_VOPC__V_CMPX_EQ_I16,
        &Decoder::decode_OP_VOPC__V_CMPX_LE_I16,
        &Decoder::decode_OP_VOPC__V_CMPX_GT_I16,
        &Decoder::decode_OP_VOPC__V_CMPX_NE_I16,
        &Decoder::decode_OP_VOPC__V_CMPX_GE_I16,
        &Decoder::decode_OP_VOPC__V_CMPX_T_I16,
        &Decoder::decode_OP_VOPC__V_CMPX_F_U16,
        &Decoder::decode_OP_VOPC__V_CMPX_LT_U16,
        &Decoder::decode_OP_VOPC__V_CMPX_EQ_U16,
        &Decoder::decode_OP_VOPC__V_CMPX_LE_U16,
        &Decoder::decode_OP_VOPC__V_CMPX_GT_U16,
        &Decoder::decode_OP_VOPC__V_CMPX_NE_U16,
        &Decoder::decode_OP_VOPC__V_CMPX_GE_U16,
        &Decoder::decode_OP_VOPC__V_CMPX_T_U16,
        &Decoder::decode_OP_VOPC__V_CMP_F_I32,
        &Decoder::decode_OP_VOPC__V_CMP_LT_I32,
        &Decoder::decode_OP_VOPC__V_CMP_EQ_I32,
        &Decoder::decode_OP_VOPC__V_CMP_LE_I32,
        &Decoder::decode_OP_VOPC__V_CMP_GT_I32,
        &Decoder::decode_OP_VOPC__V_CMP_NE_I32,
        &Decoder::decode_OP_VOPC__V_CMP_GE_I32,
        &Decoder::decode_OP_VOPC__V_CMP_T_I32,
        &Decoder::decode_OP_VOPC__V_CMP_F_U32,
        &Decoder::decode_OP_VOPC__V_CMP_LT_U32,
        &Decoder::decode_OP_VOPC__V_CMP_EQ_U32,
        &Decoder::decode_OP_VOPC__V_CMP_LE_U32,
        &Decoder::decode_OP_VOPC__V_CMP_GT_U32,
        &Decoder::decode_OP_VOPC__V_CMP_NE_U32,
        &Decoder::decode_OP_VOPC__V_CMP_GE_U32,
        &Decoder::decode_OP_VOPC__V_CMP_T_U32,
        &Decoder::decode_OP_VOPC__V_CMPX_F_I32,
        &Decoder::decode_OP_VOPC__V_CMPX_LT_I32,
        &Decoder::decode_OP_VOPC__V_CMPX_EQ_I32,
        &Decoder::decode_OP_VOPC__V_CMPX_LE_I32,
        &Decoder::decode_OP_VOPC__V_CMPX_GT_I32,
        &Decoder::decode_OP_VOPC__V_CMPX_NE_I32,
        &Decoder::decode_OP_VOPC__V_CMPX_GE_I32,
        &Decoder::decode_OP_VOPC__V_CMPX_T_I32,
        &Decoder::decode_OP_VOPC__V_CMPX_F_U32,
        &Decoder::decode_OP_VOPC__V_CMPX_LT_U32,
        &Decoder::decode_OP_VOPC__V_CMPX_EQ_U32,
        &Decoder::decode_OP_VOPC__V_CMPX_LE_U32,
        &Decoder::decode_OP_VOPC__V_CMPX_GT_U32,
        &Decoder::decode_OP_VOPC__V_CMPX_NE_U32,
        &Decoder::decode_OP_VOPC__V_CMPX_GE_U32,
        &Decoder::decode_OP_VOPC__V_CMPX_T_U32,
        &Decoder::decode_OP_VOPC__V_CMP_F_I64,
        &Decoder::decode_OP_VOPC__V_CMP_LT_I64,
        &Decoder::decode_OP_VOPC__V_CMP_EQ_I64,
        &Decoder::decode_OP_VOPC__V_CMP_LE_I64,
        &Decoder::decode_OP_VOPC__V_CMP_GT_I64,
        &Decoder::decode_OP_VOPC__V_CMP_NE_I64,
        &Decoder::decode_OP_VOPC__V_CMP_GE_I64,
        &Decoder::decode_OP_VOPC__V_CMP_T_I64,
        &Decoder::decode_OP_VOPC__V_CMP_F_U64,
        &Decoder::decode_OP_VOPC__V_CMP_LT_U64,
        &Decoder::decode_OP_VOPC__V_CMP_EQ_U64,
        &Decoder::decode_OP_VOPC__V_CMP_LE_U64,
        &Decoder::decode_OP_VOPC__V_CMP_GT_U64,
        &Decoder::decode_OP_VOPC__V_CMP_NE_U64,
        &Decoder::decode_OP_VOPC__V_CMP_GE_U64,
        &Decoder::decode_OP_VOPC__V_CMP_T_U64,
        &Decoder::decode_OP_VOPC__V_CMPX_F_I64,
        &Decoder::decode_OP_VOPC__V_CMPX_LT_I64,
        &Decoder::decode_OP_VOPC__V_CMPX_EQ_I64,
        &Decoder::decode_OP_VOPC__V_CMPX_LE_I64,
        &Decoder::decode_OP_VOPC__V_CMPX_GT_I64,
        &Decoder::decode_OP_VOPC__V_CMPX_NE_I64,
        &Decoder::decode_OP_VOPC__V_CMPX_GE_I64,
        &Decoder::decode_OP_VOPC__V_CMPX_T_I64,
        &Decoder::decode_OP_VOPC__V_CMPX_F_U64,
        &Decoder::decode_OP_VOPC__V_CMPX_LT_U64,
        &Decoder::decode_OP_VOPC__V_CMPX_EQ_U64,
        &Decoder::decode_OP_VOPC__V_CMPX_LE_U64,
        &Decoder::decode_OP_VOPC__V_CMPX_GT_U64,
        &Decoder::decode_OP_VOPC__V_CMPX_NE_U64,
        &Decoder::decode_OP_VOPC__V_CMPX_GE_U64,
        &Decoder::decode_OP_VOPC__V_CMPX_T_U64,
    };

    IsaDecodeMethod Decoder::tableSubDecode_OP_VOP3P[] = {
        &Decoder::decode_OP_VOP3P__V_PK_MAD_I16,
        &Decoder::decode_OP_VOP3P__V_PK_MUL_LO_U16,
        &Decoder::decode_OP_VOP3P__V_PK_ADD_I16,
        &Decoder::decode_OP_VOP3P__V_PK_SUB_I16,
        &Decoder::decode_OP_VOP3P__V_PK_LSHLREV_B16,
        &Decoder::decode_OP_VOP3P__V_PK_LSHRREV_B16,
        &Decoder::decode_OP_VOP3P__V_PK_ASHRREV_I16,
        &Decoder::decode_OP_VOP3P__V_PK_MAX_I16,
        &Decoder::decode_OP_VOP3P__V_PK_MIN_I16,
        &Decoder::decode_OP_VOP3P__V_PK_MAD_U16,
        &Decoder::decode_OP_VOP3P__V_PK_ADD_U16,
        &Decoder::decode_OP_VOP3P__V_PK_SUB_U16,
        &Decoder::decode_OP_VOP3P__V_PK_MAX_U16,
        &Decoder::decode_OP_VOP3P__V_PK_MIN_U16,
        &Decoder::decode_OP_VOP3P__V_PK_FMA_F16,
        &Decoder::decode_OP_VOP3P__V_PK_ADD_F16,
        &Decoder::decode_OP_VOP3P__V_PK_MUL_F16,
        &Decoder::decode_OP_VOP3P__V_PK_MIN_F16,
        &Decoder::decode_OP_VOP3P__V_PK_MAX_F16,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_OP_VOP3P__V_MAD_MIX_F32,
        &Decoder::decode_OP_VOP3P__V_MAD_MIXLO_F16,
        &Decoder::decode_OP_VOP3P__V_MAD_MIXHI_F16,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
    };

    GPUStaticInst*
    Decoder::decode(MachInst mach_inst)
    {
        InFmt_SOP1 *enc = &mach_inst->iFmt_SOP1;
        IsaDecodeMethod method = tableDecodePrimary[enc->ENCODING];
        return (this->*method)(mach_inst);
    } // decode

    GPUStaticInst*
    Decoder::subDecode_OP_VOPC(MachInst iFmt)
    {
        InFmt_VOPC *enc = &iFmt->iFmt_VOPC;
        IsaDecodeMethod method = tableSubDecode_OP_VOPC[enc->OP];
        return (this->*method)(iFmt);
    } // subDecode_OP_VOPC

    GPUStaticInst*
    Decoder::subDecode_OP_VOP3P(MachInst iFmt)
    {
        InFmt_VOP3P *enc = &iFmt->iFmt_VOP3P;
        IsaDecodeMethod method = tableSubDecode_OP_VOP3P[enc->OP];
        return (this->*method)(iFmt);
    } // subDecode_OP_VOP3P

    GPUStaticInst*
    Decoder::subDecode_OP_VOP1(MachInst iFmt)
    {
        InFmt_VOP1 *enc = &iFmt->iFmt_VOP1;
        IsaDecodeMethod method = tableSubDecode_OP_VOP1[enc->OP];
        return (this->*method)(iFmt);
    } // subDecode_OP_VOP1

    GPUStaticInst*
    Decoder::subDecode_OP_SOP1(MachInst iFmt)
    {
        InFmt_SOP1 *enc = &iFmt->iFmt_SOP1;
        IsaDecodeMethod method = tableSubDecode_OP_SOP1[enc->OP];
        return (this->*method)(iFmt);
    } // subDecode_OP_SOP1

    GPUStaticInst*
    Decoder::subDecode_OP_SOPC(MachInst iFmt)
    {
        InFmt_SOPC *enc = &iFmt->iFmt_SOPC;
        IsaDecodeMethod method = tableSubDecode_OP_SOPC[enc->OP];
        return (this->*method)(iFmt);
    } // subDecode_OP_SOPC

    GPUStaticInst*
    Decoder::subDecode_OP_SOPP(MachInst iFmt)
    {
        InFmt_SOPP *enc = &iFmt->iFmt_SOPP;
        IsaDecodeMethod method = tableSubDecode_OP_SOPP[enc->OP];
        return (this->*method)(iFmt);
    } // subDecode_OP_SOPP

    GPUStaticInst*
    Decoder::subDecode_OP_SMEM(MachInst iFmt)
    {
        InFmt_SMEM *enc = &iFmt->iFmt_SMEM;
        IsaDecodeMethod method = tableSubDecode_OP_SMEM[enc->OP];
        return (this->*method)(iFmt);
    } // subDecode_OP_SMEM

    GPUStaticInst*
    Decoder::subDecode_OPU_VOP3(MachInst iFmt)
    {
        InFmt_VOP3A *enc = &iFmt->iFmt_VOP3A;
        IsaDecodeMethod method = tableSubDecode_OPU_VOP3[enc->OP];
        return (this->*method)(iFmt);
    } // subDecode_OPU_VOP3

    GPUStaticInst*
    Decoder::subDecode_OP_VINTRP(MachInst iFmt)
    {
        InFmt_VINTRP *enc = &iFmt->iFmt_VINTRP;
        IsaDecodeMethod method = tableSubDecode_OP_VINTRP[enc->OP];
        return (this->*method)(iFmt);
    } // subDecode_OP_VINTRP

    GPUStaticInst*
    Decoder::subDecode_OP_DS(MachInst iFmt)
    {
        InFmt_DS *enc = &iFmt->iFmt_DS;
        IsaDecodeMethod method = tableSubDecode_OP_DS[enc->OP];
        return (this->*method)(iFmt);
    } // subDecode_OP_DS

    GPUStaticInst*
    Decoder::subDecode_OP_FLAT(MachInst iFmt)
    {
        InFmt_FLAT *enc = &iFmt->iFmt_FLAT;
        IsaDecodeMethod method;
        switch (enc->SEG) {
            case 0:
                method = tableSubDecode_OP_FLAT[enc->OP];
                break;
            case 1:
                method = tableSubDecode_OP_SCRATCH[enc->OP];
                break;
            case 2:
                method = tableSubDecode_OP_GLOBAL[enc->OP];
                break;
            default:
                fatal("Invalid SEG for FLAT encoding: %d\n", enc->SEG);
        }
        return (this->*method)(iFmt);
    } // subDecode_OP_FLAT

    GPUStaticInst*
    Decoder::subDecode_OP_MUBUF(MachInst iFmt)
    {
        InFmt_MUBUF *enc = &iFmt->iFmt_MUBUF;
        IsaDecodeMethod method = tableSubDecode_OP_MUBUF[enc->OP];
        return (this->*method)(iFmt);
    } // subDecode_OP_MUBUF

    GPUStaticInst*
    Decoder::subDecode_OP_MTBUF(MachInst iFmt)
    {
        InFmt_MTBUF *enc = &iFmt->iFmt_MTBUF;
        IsaDecodeMethod method = tableSubDecode_OP_MTBUF[enc->OP];
        return (this->*method)(iFmt);
    } // subDecode_OP_MTBUF

    GPUStaticInst*
    Decoder::subDecode_OP_MIMG(MachInst iFmt)
    {
        InFmt_MIMG *enc = &iFmt->iFmt_MIMG;
        IsaDecodeMethod method = tableSubDecode_OP_MIMG[enc->OP];
        return (this->*method)(iFmt);
    } // subDecode_OP_MIMG

    GPUStaticInst*
    Decoder::decode_OP_VOP2__V_CNDMASK_B32(MachInst iFmt)
    {
        return new Inst_VOP2__V_CNDMASK_B32(&iFmt->iFmt_VOP2);
    } // decode_OP_VOP2__V_CNDMASK_B32

    GPUStaticInst*
    Decoder::decode_OP_VOP2__V_ADD_F32(MachInst iFmt)
    {
        return new Inst_VOP2__V_ADD_F32(&iFmt->iFmt_VOP2);
    } // decode_OP_VOP2__V_ADD_F32

    GPUStaticInst*
    Decoder::decode_OP_VOP2__V_SUB_F32(MachInst iFmt)
    {
        return new Inst_VOP2__V_SUB_F32(&iFmt->iFmt_VOP2);
    } // decode_OP_VOP2__V_SUB_F32

    GPUStaticInst*
    Decoder::decode_OP_VOP2__V_SUBREV_F32(MachInst iFmt)
    {
        return new Inst_VOP2__V_SUBREV_F32(&iFmt->iFmt_VOP2);
    } // decode_OP_VOP2__V_SUBREV_F32

    GPUStaticInst*
    Decoder::decode_OP_VOP2__V_MUL_LEGACY_F32(MachInst iFmt)
    {
        return new Inst_VOP2__V_MUL_LEGACY_F32(&iFmt->iFmt_VOP2);
    } // decode_OP_VOP2__V_MUL_LEGACY_F32

    GPUStaticInst*
    Decoder::decode_OP_VOP2__V_MUL_F32(MachInst iFmt)
    {
        return new Inst_VOP2__V_MUL_F32(&iFmt->iFmt_VOP2);
    } // decode_OP_VOP2__V_MUL_F32

    GPUStaticInst*
    Decoder::decode_OP_VOP2__V_MUL_I32_I24(MachInst iFmt)
    {
        return new Inst_VOP2__V_MUL_I32_I24(&iFmt->iFmt_VOP2);
    } // decode_OP_VOP2__V_MUL_I32_I24

    GPUStaticInst*
    Decoder::decode_OP_VOP2__V_MUL_HI_I32_I24(MachInst iFmt)
    {
        return new Inst_VOP2__V_MUL_HI_I32_I24(&iFmt->iFmt_VOP2);
    } // decode_OP_VOP2__V_MUL_HI_I32_I24

    GPUStaticInst*
    Decoder::decode_OP_VOP2__V_MUL_U32_U24(MachInst iFmt)
    {
        return new Inst_VOP2__V_MUL_U32_U24(&iFmt->iFmt_VOP2);
    } // decode_OP_VOP2__V_MUL_U32_U24

    GPUStaticInst*
    Decoder::decode_OP_VOP2__V_MUL_HI_U32_U24(MachInst iFmt)
    {
        return new Inst_VOP2__V_MUL_HI_U32_U24(&iFmt->iFmt_VOP2);
    } // decode_OP_VOP2__V_MUL_HI_U32_U24

    GPUStaticInst*
    Decoder::decode_OP_VOP2__V_MIN_F32(MachInst iFmt)
    {
        return new Inst_VOP2__V_MIN_F32(&iFmt->iFmt_VOP2);
    } // decode_OP_VOP2__V_MIN_F32

    GPUStaticInst*
    Decoder::decode_OP_VOP2__V_MAX_F32(MachInst iFmt)
    {
        return new Inst_VOP2__V_MAX_F32(&iFmt->iFmt_VOP2);
    } // decode_OP_VOP2__V_MAX_F32

    GPUStaticInst*
    Decoder::decode_OP_VOP2__V_MIN_I32(MachInst iFmt)
    {
        return new Inst_VOP2__V_MIN_I32(&iFmt->iFmt_VOP2);
    } // decode_OP_VOP2__V_MIN_I32

    GPUStaticInst*
    Decoder::decode_OP_VOP2__V_MAX_I32(MachInst iFmt)
    {
        return new Inst_VOP2__V_MAX_I32(&iFmt->iFmt_VOP2);
    } // decode_OP_VOP2__V_MAX_I32

    GPUStaticInst*
    Decoder::decode_OP_VOP2__V_MIN_U32(MachInst iFmt)
    {
        return new Inst_VOP2__V_MIN_U32(&iFmt->iFmt_VOP2);
    } // decode_OP_VOP2__V_MIN_U32

    GPUStaticInst*
    Decoder::decode_OP_VOP2__V_MAX_U32(MachInst iFmt)
    {
        return new Inst_VOP2__V_MAX_U32(&iFmt->iFmt_VOP2);
    } // decode_OP_VOP2__V_MAX_U32

    GPUStaticInst*
    Decoder::decode_OP_VOP2__V_LSHRREV_B32(MachInst iFmt)
    {
        return new Inst_VOP2__V_LSHRREV_B32(&iFmt->iFmt_VOP2);
    } // decode_OP_VOP2__V_LSHRREV_B32

    GPUStaticInst*
    Decoder::decode_OP_VOP2__V_ASHRREV_I32(MachInst iFmt)
    {
        return new Inst_VOP2__V_ASHRREV_I32(&iFmt->iFmt_VOP2);
    } // decode_OP_VOP2__V_ASHRREV_I32

    GPUStaticInst*
    Decoder::decode_OP_VOP2__V_LSHLREV_B32(MachInst iFmt)
    {
        return new Inst_VOP2__V_LSHLREV_B32(&iFmt->iFmt_VOP2);
    } // decode_OP_VOP2__V_LSHLREV_B32

    GPUStaticInst*
    Decoder::decode_OP_VOP2__V_AND_B32(MachInst iFmt)
    {
        return new Inst_VOP2__V_AND_B32(&iFmt->iFmt_VOP2);
    } // decode_OP_VOP2__V_AND_B32

    GPUStaticInst*
    Decoder::decode_OP_VOP2__V_OR_B32(MachInst iFmt)
    {
        return new Inst_VOP2__V_OR_B32(&iFmt->iFmt_VOP2);
    } // decode_OP_VOP2__V_OR_B32

    GPUStaticInst*
    Decoder::decode_OP_VOP2__V_XOR_B32(MachInst iFmt)
    {
        return new Inst_VOP2__V_XOR_B32(&iFmt->iFmt_VOP2);
    } // decode_OP_VOP2__V_XOR_B32

    GPUStaticInst*
    Decoder::decode_OP_VOP2__V_MAC_F32(MachInst iFmt)
    {
        return new Inst_VOP2__V_MAC_F32(&iFmt->iFmt_VOP2);
    } // decode_OP_VOP2__V_MAC_F32

    GPUStaticInst*
    Decoder::decode_OP_VOP2__V_MADMK_F32(MachInst iFmt)
    {
        return new Inst_VOP2__V_MADMK_F32(&iFmt->iFmt_VOP2);
    } // decode_OP_VOP2__V_MADMK_F32

    GPUStaticInst*
    Decoder::decode_OP_VOP2__V_MADAK_F32(MachInst iFmt)
    {
        return new Inst_VOP2__V_MADAK_F32(&iFmt->iFmt_VOP2);
    } // decode_OP_VOP2__V_MADAK_F32

    GPUStaticInst*
    Decoder::decode_OP_VOP2__V_ADD_CO_U32(MachInst iFmt)
    {
        return new Inst_VOP2__V_ADD_CO_U32(&iFmt->iFmt_VOP2);
    } // decode_OP_VOP2__V_ADD_CO_U32

    GPUStaticInst*
    Decoder::decode_OP_VOP2__V_SUB_CO_U32(MachInst iFmt)
    {
        return new Inst_VOP2__V_SUB_CO_U32(&iFmt->iFmt_VOP2);
    } // decode_OP_VOP2__V_SUB_CO_U32

    GPUStaticInst*
    Decoder::decode_OP_VOP2__V_SUBREV_CO_U32(MachInst iFmt)
    {
        return new Inst_VOP2__V_SUBREV_CO_U32(&iFmt->iFmt_VOP2);
    } // decode_OP_VOP2__V_SUBREV_CO_U32

    GPUStaticInst*
    Decoder::decode_OP_VOP2__V_ADDC_CO_U32(MachInst iFmt)
    {
        return new Inst_VOP2__V_ADDC_CO_U32(&iFmt->iFmt_VOP2);
    } // decode_OP_VOP2__V_ADDC_CO_U32

    GPUStaticInst*
    Decoder::decode_OP_VOP2__V_SUBB_CO_U32(MachInst iFmt)
    {
        return new Inst_VOP2__V_SUBB_CO_U32(&iFmt->iFmt_VOP2);
    } // decode_OP_VOP2__V_SUBB_CO_U32

    GPUStaticInst*
    Decoder::decode_OP_VOP2__V_SUBBREV_CO_U32(MachInst iFmt)
    {
        return new Inst_VOP2__V_SUBBREV_CO_U32(&iFmt->iFmt_VOP2);
    } // decode_OP_VOP2__V_SUBBREV_CO_U32

    GPUStaticInst*
    Decoder::decode_OP_VOP2__V_ADD_F16(MachInst iFmt)
    {
        return new Inst_VOP2__V_ADD_F16(&iFmt->iFmt_VOP2);
    } // decode_OP_VOP2__V_ADD_F16

    GPUStaticInst*
    Decoder::decode_OP_VOP2__V_SUB_F16(MachInst iFmt)
    {
        return new Inst_VOP2__V_SUB_F16(&iFmt->iFmt_VOP2);
    } // decode_OP_VOP2__V_SUB_F16

    GPUStaticInst*
    Decoder::decode_OP_VOP2__V_SUBREV_F16(MachInst iFmt)
    {
        return new Inst_VOP2__V_SUBREV_F16(&iFmt->iFmt_VOP2);
    } // decode_OP_VOP2__V_SUBREV_F16

    GPUStaticInst*
    Decoder::decode_OP_VOP2__V_MUL_F16(MachInst iFmt)
    {
        return new Inst_VOP2__V_MUL_F16(&iFmt->iFmt_VOP2);
    } // decode_OP_VOP2__V_MUL_F16

    GPUStaticInst*
    Decoder::decode_OP_VOP2__V_MAC_F16(MachInst iFmt)
    {
        return new Inst_VOP2__V_MAC_F16(&iFmt->iFmt_VOP2);
    } // decode_OP_VOP2__V_MAC_F16

    GPUStaticInst*
    Decoder::decode_OP_VOP2__V_MADMK_F16(MachInst iFmt)
    {
        return new Inst_VOP2__V_MADMK_F16(&iFmt->iFmt_VOP2);
    } // decode_OP_VOP2__V_MADMK_F16

    GPUStaticInst*
    Decoder::decode_OP_VOP2__V_MADAK_F16(MachInst iFmt)
    {
        return new Inst_VOP2__V_MADAK_F16(&iFmt->iFmt_VOP2);
    } // decode_OP_VOP2__V_MADAK_F16

    GPUStaticInst*
    Decoder::decode_OP_VOP2__V_ADD_U16(MachInst iFmt)
    {
        return new Inst_VOP2__V_ADD_U16(&iFmt->iFmt_VOP2);
    } // decode_OP_VOP2__V_ADD_U16

    GPUStaticInst*
    Decoder::decode_OP_VOP2__V_SUB_U16(MachInst iFmt)
    {
        return new Inst_VOP2__V_SUB_U16(&iFmt->iFmt_VOP2);
    } // decode_OP_VOP2__V_SUB_U16

    GPUStaticInst*
    Decoder::decode_OP_VOP2__V_SUBREV_U16(MachInst iFmt)
    {
        return new Inst_VOP2__V_SUBREV_U16(&iFmt->iFmt_VOP2);
    } // decode_OP_VOP2__V_SUBREV_U16

    GPUStaticInst*
    Decoder::decode_OP_VOP2__V_MUL_LO_U16(MachInst iFmt)
    {
        return new Inst_VOP2__V_MUL_LO_U16(&iFmt->iFmt_VOP2);
    } // decode_OP_VOP2__V_MUL_LO_U16

    GPUStaticInst*
    Decoder::decode_OP_VOP2__V_LSHLREV_B16(MachInst iFmt)
    {
        return new Inst_VOP2__V_LSHLREV_B16(&iFmt->iFmt_VOP2);
    } // decode_OP_VOP2__V_LSHLREV_B16

    GPUStaticInst*
    Decoder::decode_OP_VOP2__V_LSHRREV_B16(MachInst iFmt)
    {
        return new Inst_VOP2__V_LSHRREV_B16(&iFmt->iFmt_VOP2);
    } // decode_OP_VOP2__V_LSHRREV_B16

    GPUStaticInst*
    Decoder::decode_OP_VOP2__V_ASHRREV_I16(MachInst iFmt)
    {
        return new Inst_VOP2__V_ASHRREV_I16(&iFmt->iFmt_VOP2);
    } // decode_OP_VOP2__V_ASHRREV_I16

    GPUStaticInst*
    Decoder::decode_OP_VOP2__V_MAX_F16(MachInst iFmt)
    {
        return new Inst_VOP2__V_MAX_F16(&iFmt->iFmt_VOP2);
    } // decode_OP_VOP2__V_MAX_F16

    GPUStaticInst*
    Decoder::decode_OP_VOP2__V_MIN_F16(MachInst iFmt)
    {
        return new Inst_VOP2__V_MIN_F16(&iFmt->iFmt_VOP2);
    } // decode_OP_VOP2__V_MIN_F16

    GPUStaticInst*
    Decoder::decode_OP_VOP2__V_MAX_U16(MachInst iFmt)
    {
        return new Inst_VOP2__V_MAX_U16(&iFmt->iFmt_VOP2);
    } // decode_OP_VOP2__V_MAX_U16

    GPUStaticInst*
    Decoder::decode_OP_VOP2__V_MAX_I16(MachInst iFmt)
    {
        return new Inst_VOP2__V_MAX_I16(&iFmt->iFmt_VOP2);
    } // decode_OP_VOP2__V_MAX_I16

    GPUStaticInst*
    Decoder::decode_OP_VOP2__V_MIN_U16(MachInst iFmt)
    {
        return new Inst_VOP2__V_MIN_U16(&iFmt->iFmt_VOP2);
    } // decode_OP_VOP2__V_MIN_U16

    GPUStaticInst*
    Decoder::decode_OP_VOP2__V_MIN_I16(MachInst iFmt)
    {
        return new Inst_VOP2__V_MIN_I16(&iFmt->iFmt_VOP2);
    } // decode_OP_VOP2__V_MIN_I16

    GPUStaticInst*
    Decoder::decode_OP_VOP2__V_LDEXP_F16(MachInst iFmt)
    {
        return new Inst_VOP2__V_LDEXP_F16(&iFmt->iFmt_VOP2);
    } // decode_OP_VOP2__V_LDEXP_F16

    GPUStaticInst*
    Decoder::decode_OP_VOP2__V_ADD_U32(MachInst iFmt)
    {
        return new Inst_VOP2__V_ADD_U32(&iFmt->iFmt_VOP2);
    }

    GPUStaticInst*
    Decoder::decode_OP_VOP2__V_SUB_U32(MachInst iFmt)
    {
        return new Inst_VOP2__V_SUB_U32(&iFmt->iFmt_VOP2);
    }

    GPUStaticInst*
    Decoder::decode_OP_VOP2__V_SUBREV_U32(MachInst iFmt)
    {
        return new Inst_VOP2__V_SUBREV_U32(&iFmt->iFmt_VOP2);
    }

    GPUStaticInst*
    Decoder::decode_OP_SOP2__S_ADD_U32(MachInst iFmt)
    {
        return new Inst_SOP2__S_ADD_U32(&iFmt->iFmt_SOP2);
    } // decode_OP_SOP2__S_ADD_U32

    GPUStaticInst*
    Decoder::decode_OP_SOP2__S_SUB_U32(MachInst iFmt)
    {
        return new Inst_SOP2__S_SUB_U32(&iFmt->iFmt_SOP2);
    } // decode_OP_SOP2__S_SUB_U32

    GPUStaticInst*
    Decoder::decode_OP_SOP2__S_ADD_I32(MachInst iFmt)
    {
        return new Inst_SOP2__S_ADD_I32(&iFmt->iFmt_SOP2);
    } // decode_OP_SOP2__S_ADD_I32

    GPUStaticInst*
    Decoder::decode_OP_SOP2__S_SUB_I32(MachInst iFmt)
    {
        return new Inst_SOP2__S_SUB_I32(&iFmt->iFmt_SOP2);
    } // decode_OP_SOP2__S_SUB_I32

    GPUStaticInst*
    Decoder::decode_OP_SOP2__S_ADDC_U32(MachInst iFmt)
    {
        return new Inst_SOP2__S_ADDC_U32(&iFmt->iFmt_SOP2);
    } // decode_OP_SOP2__S_ADDC_U32

    GPUStaticInst*
    Decoder::decode_OP_SOP2__S_SUBB_U32(MachInst iFmt)
    {
        return new Inst_SOP2__S_SUBB_U32(&iFmt->iFmt_SOP2);
    } // decode_OP_SOP2__S_SUBB_U32

    GPUStaticInst*
    Decoder::decode_OP_SOP2__S_MIN_I32(MachInst iFmt)
    {
        return new Inst_SOP2__S_MIN_I32(&iFmt->iFmt_SOP2);
    } // decode_OP_SOP2__S_MIN_I32

    GPUStaticInst*
    Decoder::decode_OP_SOP2__S_MIN_U32(MachInst iFmt)
    {
        return new Inst_SOP2__S_MIN_U32(&iFmt->iFmt_SOP2);
    } // decode_OP_SOP2__S_MIN_U32

    GPUStaticInst*
    Decoder::decode_OP_SOP2__S_MAX_I32(MachInst iFmt)
    {
        return new Inst_SOP2__S_MAX_I32(&iFmt->iFmt_SOP2);
    } // decode_OP_SOP2__S_MAX_I32

    GPUStaticInst*
    Decoder::decode_OP_SOP2__S_MAX_U32(MachInst iFmt)
    {
        return new Inst_SOP2__S_MAX_U32(&iFmt->iFmt_SOP2);
    } // decode_OP_SOP2__S_MAX_U32

    GPUStaticInst*
    Decoder::decode_OP_SOP2__S_CSELECT_B32(MachInst iFmt)
    {
        return new Inst_SOP2__S_CSELECT_B32(&iFmt->iFmt_SOP2);
    } // decode_OP_SOP2__S_CSELECT_B32

    GPUStaticInst*
    Decoder::decode_OP_SOP2__S_CSELECT_B64(MachInst iFmt)
    {
        return new Inst_SOP2__S_CSELECT_B64(&iFmt->iFmt_SOP2);
    } // decode_OP_SOP2__S_CSELECT_B64

    GPUStaticInst*
    Decoder::decode_OP_SOP2__S_AND_B32(MachInst iFmt)
    {
        return new Inst_SOP2__S_AND_B32(&iFmt->iFmt_SOP2);
    } // decode_OP_SOP2__S_AND_B32

    GPUStaticInst*
    Decoder::decode_OP_SOP2__S_AND_B64(MachInst iFmt)
    {
        return new Inst_SOP2__S_AND_B64(&iFmt->iFmt_SOP2);
    } // decode_OP_SOP2__S_AND_B64

    GPUStaticInst*
    Decoder::decode_OP_SOP2__S_OR_B32(MachInst iFmt)
    {
        return new Inst_SOP2__S_OR_B32(&iFmt->iFmt_SOP2);
    } // decode_OP_SOP2__S_OR_B32

    GPUStaticInst*
    Decoder::decode_OP_SOP2__S_OR_B64(MachInst iFmt)
    {
        return new Inst_SOP2__S_OR_B64(&iFmt->iFmt_SOP2);
    } // decode_OP_SOP2__S_OR_B64

    GPUStaticInst*
    Decoder::decode_OP_SOP2__S_XOR_B32(MachInst iFmt)
    {
        return new Inst_SOP2__S_XOR_B32(&iFmt->iFmt_SOP2);
    } // decode_OP_SOP2__S_XOR_B32

    GPUStaticInst*
    Decoder::decode_OP_SOP2__S_XOR_B64(MachInst iFmt)
    {
        return new Inst_SOP2__S_XOR_B64(&iFmt->iFmt_SOP2);
    } // decode_OP_SOP2__S_XOR_B64

    GPUStaticInst*
    Decoder::decode_OP_SOP2__S_ANDN2_B32(MachInst iFmt)
    {
        return new Inst_SOP2__S_ANDN2_B32(&iFmt->iFmt_SOP2);
    } // decode_OP_SOP2__S_ANDN2_B32

    GPUStaticInst*
    Decoder::decode_OP_SOP2__S_ANDN2_B64(MachInst iFmt)
    {
        return new Inst_SOP2__S_ANDN2_B64(&iFmt->iFmt_SOP2);
    } // decode_OP_SOP2__S_ANDN2_B64

    GPUStaticInst*
    Decoder::decode_OP_SOP2__S_ORN2_B32(MachInst iFmt)
    {
        return new Inst_SOP2__S_ORN2_B32(&iFmt->iFmt_SOP2);
    } // decode_OP_SOP2__S_ORN2_B32

    GPUStaticInst*
    Decoder::decode_OP_SOP2__S_ORN2_B64(MachInst iFmt)
    {
        return new Inst_SOP2__S_ORN2_B64(&iFmt->iFmt_SOP2);
    } // decode_OP_SOP2__S_ORN2_B64

    GPUStaticInst*
    Decoder::decode_OP_SOP2__S_NAND_B32(MachInst iFmt)
    {
        return new Inst_SOP2__S_NAND_B32(&iFmt->iFmt_SOP2);
    } // decode_OP_SOP2__S_NAND_B32

    GPUStaticInst*
    Decoder::decode_OP_SOP2__S_NAND_B64(MachInst iFmt)
    {
        return new Inst_SOP2__S_NAND_B64(&iFmt->iFmt_SOP2);
    } // decode_OP_SOP2__S_NAND_B64

    GPUStaticInst*
    Decoder::decode_OP_SOP2__S_NOR_B32(MachInst iFmt)
    {
        return new Inst_SOP2__S_NOR_B32(&iFmt->iFmt_SOP2);
    } // decode_OP_SOP2__S_NOR_B32

    GPUStaticInst*
    Decoder::decode_OP_SOP2__S_NOR_B64(MachInst iFmt)
    {
        return new Inst_SOP2__S_NOR_B64(&iFmt->iFmt_SOP2);
    } // decode_OP_SOP2__S_NOR_B64

    GPUStaticInst*
    Decoder::decode_OP_SOP2__S_XNOR_B32(MachInst iFmt)
    {
        return new Inst_SOP2__S_XNOR_B32(&iFmt->iFmt_SOP2);
    } // decode_OP_SOP2__S_XNOR_B32

    GPUStaticInst*
    Decoder::decode_OP_SOP2__S_XNOR_B64(MachInst iFmt)
    {
        return new Inst_SOP2__S_XNOR_B64(&iFmt->iFmt_SOP2);
    } // decode_OP_SOP2__S_XNOR_B64

    GPUStaticInst*
    Decoder::decode_OP_SOP2__S_LSHL_B32(MachInst iFmt)
    {
        return new Inst_SOP2__S_LSHL_B32(&iFmt->iFmt_SOP2);
    } // decode_OP_SOP2__S_LSHL_B32

    GPUStaticInst*
    Decoder::decode_OP_SOP2__S_LSHL_B64(MachInst iFmt)
    {
        return new Inst_SOP2__S_LSHL_B64(&iFmt->iFmt_SOP2);
    } // decode_OP_SOP2__S_LSHL_B64

    GPUStaticInst*
    Decoder::decode_OP_SOP2__S_LSHR_B32(MachInst iFmt)
    {
        return new Inst_SOP2__S_LSHR_B32(&iFmt->iFmt_SOP2);
    } // decode_OP_SOP2__S_LSHR_B32

    GPUStaticInst*
    Decoder::decode_OP_SOP2__S_LSHR_B64(MachInst iFmt)
    {
        return new Inst_SOP2__S_LSHR_B64(&iFmt->iFmt_SOP2);
    } // decode_OP_SOP2__S_LSHR_B64

    GPUStaticInst*
    Decoder::decode_OP_SOP2__S_ASHR_I32(MachInst iFmt)
    {
        return new Inst_SOP2__S_ASHR_I32(&iFmt->iFmt_SOP2);
    } // decode_OP_SOP2__S_ASHR_I32

    GPUStaticInst*
    Decoder::decode_OP_SOP2__S_ASHR_I64(MachInst iFmt)
    {
        return new Inst_SOP2__S_ASHR_I64(&iFmt->iFmt_SOP2);
    } // decode_OP_SOP2__S_ASHR_I64

    GPUStaticInst*
    Decoder::decode_OP_SOP2__S_BFM_B32(MachInst iFmt)
    {
        return new Inst_SOP2__S_BFM_B32(&iFmt->iFmt_SOP2);
    } // decode_OP_SOP2__S_BFM_B32

    GPUStaticInst*
    Decoder::decode_OP_SOP2__S_BFM_B64(MachInst iFmt)
    {
        return new Inst_SOP2__S_BFM_B64(&iFmt->iFmt_SOP2);
    } // decode_OP_SOP2__S_BFM_B64

    GPUStaticInst*
    Decoder::decode_OP_SOP2__S_MUL_I32(MachInst iFmt)
    {
        return new Inst_SOP2__S_MUL_I32(&iFmt->iFmt_SOP2);
    } // decode_OP_SOP2__S_MUL_I32

    GPUStaticInst*
    Decoder::decode_OP_SOP2__S_BFE_U32(MachInst iFmt)
    {
        return new Inst_SOP2__S_BFE_U32(&iFmt->iFmt_SOP2);
    } // decode_OP_SOP2__S_BFE_U32

    GPUStaticInst*
    Decoder::decode_OP_SOP2__S_BFE_I32(MachInst iFmt)
    {
        return new Inst_SOP2__S_BFE_I32(&iFmt->iFmt_SOP2);
    } // decode_OP_SOP2__S_BFE_I32

    GPUStaticInst*
    Decoder::decode_OP_SOP2__S_BFE_U64(MachInst iFmt)
    {
        return new Inst_SOP2__S_BFE_U64(&iFmt->iFmt_SOP2);
    } // decode_OP_SOP2__S_BFE_U64

    GPUStaticInst*
    Decoder::decode_OP_SOP2__S_BFE_I64(MachInst iFmt)
    {
        return new Inst_SOP2__S_BFE_I64(&iFmt->iFmt_SOP2);
    } // decode_OP_SOP2__S_BFE_I64

    GPUStaticInst*
    Decoder::decode_OP_SOP2__S_CBRANCH_G_FORK(MachInst iFmt)
    {
        return new Inst_SOP2__S_CBRANCH_G_FORK(&iFmt->iFmt_SOP2);
    } // decode_OP_SOP2__S_CBRANCH_G_FORK

    GPUStaticInst*
    Decoder::decode_OP_SOP2__S_ABSDIFF_I32(MachInst iFmt)
    {
        return new Inst_SOP2__S_ABSDIFF_I32(&iFmt->iFmt_SOP2);
    } // decode_OP_SOP2__S_ABSDIFF_I32

    GPUStaticInst*
    Decoder::decode_OP_SOP2__S_RFE_RESTORE_B64(MachInst iFmt)
    {
        return new Inst_SOP2__S_RFE_RESTORE_B64(&iFmt->iFmt_SOP2);
    } // decode_OP_SOP2__S_RFE_RESTORE_B64

    GPUStaticInst*
    Decoder::decode_OP_SOP2__S_MUL_HI_U32(MachInst iFmt)
    {
        return new Inst_SOP2__S_MUL_HI_U32(&iFmt->iFmt_SOP2);
    }

    GPUStaticInst*
    Decoder::decode_OP_SOP2__S_MUL_HI_I32(MachInst iFmt)
    {
        return new Inst_SOP2__S_MUL_HI_I32(&iFmt->iFmt_SOP2);
    }

    GPUStaticInst*
    Decoder::decode_OP_SOP2__S_LSHL1_ADD_U32(MachInst iFmt)
    {
        fatal("Trying to decode instruction without a class\n");
        return nullptr;
    }

    GPUStaticInst*
    Decoder::decode_OP_SOP2__S_LSHL2_ADD_U32(MachInst iFmt)
    {
        fatal("Trying to decode instruction without a class\n");
        return nullptr;
    }

    GPUStaticInst*
    Decoder::decode_OP_SOP2__S_LSHL3_ADD_U32(MachInst iFmt)
    {
        fatal("Trying to decode instruction without a class\n");
        return nullptr;
    }

    GPUStaticInst*
    Decoder::decode_OP_SOP2__S_LSHL4_ADD_U32(MachInst iFmt)
    {
        fatal("Trying to decode instruction without a class\n");
        return nullptr;
    }

    GPUStaticInst*
    Decoder::decode_OP_SOP2__S_PACK_LL_B32_B16(MachInst iFmt)
    {
        fatal("Trying to decode instruction without a class\n");
        return nullptr;
    }

    GPUStaticInst*
    Decoder::decode_OP_SOP2__S_PACK_LH_B32_B16(MachInst iFmt)
    {
        fatal("Trying to decode instruction without a class\n");
        return nullptr;
    }

    GPUStaticInst*
    Decoder::decode_OP_SOP2__S_HH_B32_B16(MachInst iFmt)
    {
        fatal("Trying to decode instruction without a class\n");
        return nullptr;
    }

    GPUStaticInst*
    Decoder::decode_OP_SOPK__S_MOVK_I32(MachInst iFmt)
    {
        return new Inst_SOPK__S_MOVK_I32(&iFmt->iFmt_SOPK);
    } // decode_OP_SOPK__S_MOVK_I32

    GPUStaticInst*
    Decoder::decode_OP_SOPK__S_CMOVK_I32(MachInst iFmt)
    {
        return new Inst_SOPK__S_CMOVK_I32(&iFmt->iFmt_SOPK);
    } // decode_OP_SOPK__S_CMOVK_I32

    GPUStaticInst*
    Decoder::decode_OP_SOPK__S_CMPK_EQ_I32(MachInst iFmt)
    {
        return new Inst_SOPK__S_CMPK_EQ_I32(&iFmt->iFmt_SOPK);
    } // decode_OP_SOPK__S_CMPK_EQ_I32

    GPUStaticInst*
    Decoder::decode_OP_SOPK__S_CMPK_LG_I32(MachInst iFmt)
    {
        return new Inst_SOPK__S_CMPK_LG_I32(&iFmt->iFmt_SOPK);
    } // decode_OP_SOPK__S_CMPK_LG_I32

    GPUStaticInst*
    Decoder::decode_OP_SOPK__S_CMPK_GT_I32(MachInst iFmt)
    {
        return new Inst_SOPK__S_CMPK_GT_I32(&iFmt->iFmt_SOPK);
    } // decode_OP_SOPK__S_CMPK_GT_I32

    GPUStaticInst*
    Decoder::decode_OP_SOPK__S_CMPK_GE_I32(MachInst iFmt)
    {
        return new Inst_SOPK__S_CMPK_GE_I32(&iFmt->iFmt_SOPK);
    } // decode_OP_SOPK__S_CMPK_GE_I32

    GPUStaticInst*
    Decoder::decode_OP_SOPK__S_CMPK_LT_I32(MachInst iFmt)
    {
        return new Inst_SOPK__S_CMPK_LT_I32(&iFmt->iFmt_SOPK);
    } // decode_OP_SOPK__S_CMPK_LT_I32

    GPUStaticInst*
    Decoder::decode_OP_SOPK__S_CMPK_LE_I32(MachInst iFmt)
    {
        return new Inst_SOPK__S_CMPK_LE_I32(&iFmt->iFmt_SOPK);
    } // decode_OP_SOPK__S_CMPK_LE_I32

    GPUStaticInst*
    Decoder::decode_OP_SOPK__S_CMPK_EQ_U32(MachInst iFmt)
    {
        return new Inst_SOPK__S_CMPK_EQ_U32(&iFmt->iFmt_SOPK);
    } // decode_OP_SOPK__S_CMPK_EQ_U32

    GPUStaticInst*
    Decoder::decode_OP_SOPK__S_CMPK_LG_U32(MachInst iFmt)
    {
        return new Inst_SOPK__S_CMPK_LG_U32(&iFmt->iFmt_SOPK);
    } // decode_OP_SOPK__S_CMPK_LG_U32

    GPUStaticInst*
    Decoder::decode_OP_SOPK__S_CMPK_GT_U32(MachInst iFmt)
    {
        return new Inst_SOPK__S_CMPK_GT_U32(&iFmt->iFmt_SOPK);
    } // decode_OP_SOPK__S_CMPK_GT_U32

    GPUStaticInst*
    Decoder::decode_OP_SOPK__S_CMPK_GE_U32(MachInst iFmt)
    {
        return new Inst_SOPK__S_CMPK_GE_U32(&iFmt->iFmt_SOPK);
    } // decode_OP_SOPK__S_CMPK_GE_U32

    GPUStaticInst*
    Decoder::decode_OP_SOPK__S_CMPK_LT_U32(MachInst iFmt)
    {
        return new Inst_SOPK__S_CMPK_LT_U32(&iFmt->iFmt_SOPK);
    } // decode_OP_SOPK__S_CMPK_LT_U32

    GPUStaticInst*
    Decoder::decode_OP_SOPK__S_CMPK_LE_U32(MachInst iFmt)
    {
        return new Inst_SOPK__S_CMPK_LE_U32(&iFmt->iFmt_SOPK);
    } // decode_OP_SOPK__S_CMPK_LE_U32

    GPUStaticInst*
    Decoder::decode_OP_SOPK__S_ADDK_I32(MachInst iFmt)
    {
        return new Inst_SOPK__S_ADDK_I32(&iFmt->iFmt_SOPK);
    } // decode_OP_SOPK__S_ADDK_I32

    GPUStaticInst*
    Decoder::decode_OP_SOPK__S_MULK_I32(MachInst iFmt)
    {
        return new Inst_SOPK__S_MULK_I32(&iFmt->iFmt_SOPK);
    } // decode_OP_SOPK__S_MULK_I32

    GPUStaticInst*
    Decoder::decode_OP_SOPK__S_CBRANCH_I_FORK(MachInst iFmt)
    {
        return new Inst_SOPK__S_CBRANCH_I_FORK(&iFmt->iFmt_SOPK);
    } // decode_OP_SOPK__S_CBRANCH_I_FORK

    GPUStaticInst*
    Decoder::decode_OP_SOPK__S_GETREG_B32(MachInst iFmt)
    {
        return new Inst_SOPK__S_GETREG_B32(&iFmt->iFmt_SOPK);
    } // decode_OP_SOPK__S_GETREG_B32

    GPUStaticInst*
    Decoder::decode_OP_SOPK__S_SETREG_B32(MachInst iFmt)
    {
        return new Inst_SOPK__S_SETREG_B32(&iFmt->iFmt_SOPK);
    } // decode_OP_SOPK__S_SETREG_B32

    GPUStaticInst*
    Decoder::decode_OP_SOPK__S_SETREG_IMM32_B32(MachInst iFmt)
    {
        return new Inst_SOPK__S_SETREG_IMM32_B32(&iFmt->iFmt_SOPK);
    } // decode_OP_SOPK__S_SETREG_IMM32_B32

    GPUStaticInst*
    Decoder::decode_OP_SOPK__S_CALL_B64(MachInst iFmt)
    {
        fatal("Trying to decode instruction without a class\n");
        return nullptr;
    }

    GPUStaticInst*
    Decoder::decode_OP_EXP(MachInst iFmt)
    {
        return new Inst_EXP__EXP(&iFmt->iFmt_EXP);
    } // decode_OP_EXP

    GPUStaticInst*
    Decoder::decode_OPU_VOP3__V_CMP_CLASS_F32(MachInst iFmt)
    {
        return new Inst_VOP3__V_CMP_CLASS_F32(&iFmt->iFmt_VOP3A);
    } // decode_OPU_VOP3__V_CMP_CLASS_F32

    GPUStaticInst*
    Decoder::decode_OPU_VOP3__V_CMPX_CLASS_F32(MachInst iFmt)
    {
        return new Inst_VOP3__V_CMPX_CLASS_F32(&iFmt->iFmt_VOP3A);
    } // decode_OPU_VOP3__V_CMPX_CLASS_F32

    GPUStaticInst*
    Decoder::decode_OPU_VOP3__V_CMP_CLASS_F64(MachInst iFmt)
    {
        return new Inst_VOP3__V_CMP_CLASS_F64(&iFmt->iFmt_VOP3A);
    } // decode_OPU_VOP3__V_CMP_CLASS_F64

    GPUStaticInst*
    Decoder::decode_OPU_VOP3__V_CMPX_CLASS_F64(MachInst iFmt)
    {
        return new Inst_VOP3__V_CMPX_CLASS_F64(&iFmt->iFmt_VOP3A);
    } // decode_OPU_VOP3__V_CMPX_CLASS_F64

    GPUStaticInst*
    Decoder::decode_OPU_VOP3__V_CMP_CLASS_F16(MachInst iFmt)
    {
        return new Inst_VOP3__V_CMP_CLASS_F16(&iFmt->iFmt_VOP3A);
    } // decode_OPU_VOP3__V_CMP_CLASS_F16

    GPUStaticInst*
    Decoder::decode_OPU_VOP3__V_CMPX_CLASS_F16(MachInst iFmt)
    {
        return new Inst_VOP3__V_CMPX_CLASS_F16(&iFmt->iFmt_VOP3A);
    } // decode_OPU_VOP3__V_CMPX_CLASS_F16

    GPUStaticInst*
    Decoder::decode_OPU_VOP3__V_CMP_F_F16(MachInst iFmt)
    {
        return new Inst_VOP3__V_CMP_F_F16(&iFmt->iFmt_VOP3A);
    } // decode_OPU_VOP3__V_CMP_F_F16

    GPUStaticInst*
    Decoder::decode_OPU_VOP3__V_CMP_LT_F16(MachInst iFmt)
    {
        return new Inst_VOP3__V_CMP_LT_F16(&iFmt->iFmt_VOP3A);
    } // decode_OPU_VOP3__V_CMP_LT_F16

    GPUStaticInst*
    Decoder::decode_OPU_VOP3__V_CMP_EQ_F16(MachInst iFmt)
    {
        return new Inst_VOP3__V_CMP_EQ_F16(&iFmt->iFmt_VOP3A);
    } // decode_OPU_VOP3__V_CMP_EQ_F16

    GPUStaticInst*
    Decoder::decode_OPU_VOP3__V_CMP_LE_F16(MachInst iFmt)
    {
        return new Inst_VOP3__V_CMP_LE_F16(&iFmt->iFmt_VOP3A);
    } // decode_OPU_VOP3__V_CMP_LE_F16

    GPUStaticInst*
    Decoder::decode_OPU_VOP3__V_CMP_GT_F16(MachInst iFmt)
    {
        return new Inst_VOP3__V_CMP_GT_F16(&iFmt->iFmt_VOP3A);
    } // decode_OPU_VOP3__V_CMP_GT_F16

    GPUStaticInst*
    Decoder::decode_OPU_VOP3__V_CMP_LG_F16(MachInst iFmt)
    {
        return new Inst_VOP3__V_CMP_LG_F16(&iFmt->iFmt_VOP3A);
    } // decode_OPU_VOP3__V_CMP_LG_F16

    GPUStaticInst*
    Decoder::decode_OPU_VOP3__V_CMP_GE_F16(MachInst iFmt)
    {
        return new Inst_VOP3__V_CMP_GE_F16(&iFmt->iFmt_VOP3A);
    } // decode_OPU_VOP3__V_CMP_GE_F16

    GPUStaticInst*
    Decoder::decode_OPU_VOP3__V_CMP_O_F16(MachInst iFmt)
    {
        return new Inst_VOP3__V_CMP_O_F16(&iFmt->iFmt_VOP3A);
    } // decode_OPU_VOP3__V_CMP_O_F16

    GPUStaticInst*
    Decoder::decode_OPU_VOP3__V_CMP_U_F16(MachInst iFmt)
    {
        return new Inst_VOP3__V_CMP_U_F16(&iFmt->iFmt_VOP3A);
    } // decode_OPU_VOP3__V_CMP_U_F16

    GPUStaticInst*
    Decoder::decode_OPU_VOP3__V_CMP_NGE_F16(MachInst iFmt)
    {
        return new Inst_VOP3__V_CMP_NGE_F16(&iFmt->iFmt_VOP3A);
    } // decode_OPU_VOP3__V_CMP_NGE_F16

    GPUStaticInst*
    Decoder::decode_OPU_VOP3__V_CMP_NLG_F16(MachInst iFmt)
    {
        return new Inst_VOP3__V_CMP_NLG_F16(&iFmt->iFmt_VOP3A);
    } // decode_OPU_VOP3__V_CMP_NLG_F16

    GPUStaticInst*
    Decoder::decode_OPU_VOP3__V_CMP_NGT_F16(MachInst iFmt)
    {
        return new Inst_VOP3__V_CMP_NGT_F16(&iFmt->iFmt_VOP3A);
    } // decode_OPU_VOP3__V_CMP_NGT_F16

    GPUStaticInst*
    Decoder::decode_OPU_VOP3__V_CMP_NLE_F16(MachInst iFmt)
    {
        return new Inst_VOP3__V_CMP_NLE_F16(&iFmt->iFmt_VOP3A);
    } // decode_OPU_VOP3__V_CMP_NLE_F16

    GPUStaticInst*
    Decoder::decode_OPU_VOP3__V_CMP_NEQ_F16(MachInst iFmt)
    {
        return new Inst_VOP3__V_CMP_NEQ_F16(&iFmt->iFmt_VOP3A);
    } // decode_OPU_VOP3__V_CMP_NEQ_F16

    GPUStaticInst*
    Decoder::decode_OPU_VOP3__V_CMP_NLT_F16(MachInst iFmt)
    {
        return new Inst_VOP3__V_CMP_NLT_F16(&iFmt->iFmt_VOP3A);
    } // decode_OPU_VOP3__V_CMP_NLT_F16

    GPUStaticInst*
    Decoder::decode_OPU_VOP3__V_CMP_TRU_F16(MachInst iFmt)
    {
        return new Inst_VOP3__V_CMP_TRU_F16(&iFmt->iFmt_VOP3A);
    } // decode_OPU_VOP3__V_CMP_TRU_F16

    GPUStaticInst*
    Decoder::decode_OPU_VOP3__V_CMPX_F_F16(MachInst iFmt)
    {
        return new Inst_VOP3__V_CMPX_F_F16(&iFmt->iFmt_VOP3A);
    } // decode_OPU_VOP3__V_CMPX_F_F16

    GPUStaticInst*
    Decoder::decode_OPU_VOP3__V_CMPX_LT_F16(MachInst iFmt)
    {
        return new Inst_VOP3__V_CMPX_LT_F16(&iFmt->iFmt_VOP3A);
    } // decode_OPU_VOP3__V_CMPX_LT_F16

    GPUStaticInst*
    Decoder::decode_OPU_VOP3__V_CMPX_EQ_F16(MachInst iFmt)
    {
        return new Inst_VOP3__V_CMPX_EQ_F16(&iFmt->iFmt_VOP3A);
    } // decode_OPU_VOP3__V_CMPX_EQ_F16

    GPUStaticInst*
    Decoder::decode_OPU_VOP3__V_CMPX_LE_F16(MachInst iFmt)
    {
        return new Inst_VOP3__V_CMPX_LE_F16(&iFmt->iFmt_VOP3A);
    } // decode_OPU_VOP3__V_CMPX_LE_F16

    GPUStaticInst*
    Decoder::decode_OPU_VOP3__V_CMPX_GT_F16(MachInst iFmt)
    {
        return new Inst_VOP3__V_CMPX_GT_F16(&iFmt->iFmt_VOP3A);
    } // decode_OPU_VOP3__V_CMPX_GT_F16

    GPUStaticInst*
    Decoder::decode_OPU_VOP3__V_CMPX_LG_F16(MachInst iFmt)
    {
        return new Inst_VOP3__V_CMPX_LG_F16(&iFmt->iFmt_VOP3A);
    } // decode_OPU_VOP3__V_CMPX_LG_F16

    GPUStaticInst*
    Decoder::decode_OPU_VOP3__V_CMPX_GE_F16(MachInst iFmt)
    {
        return new Inst_VOP3__V_CMPX_GE_F16(&iFmt->iFmt_VOP3A);
    } // decode_OPU_VOP3__V_CMPX_GE_F16

    GPUStaticInst*
    Decoder::decode_OPU_VOP3__V_CMPX_O_F16(MachInst iFmt)
    {
        return new Inst_VOP3__V_CMPX_O_F16(&iFmt->iFmt_VOP3A);
    } // decode_OPU_VOP3__V_CMPX_O_F16

    GPUStaticInst*
    Decoder::decode_OPU_VOP3__V_CMPX_U_F16(MachInst iFmt)
    {
        return new Inst_VOP3__V_CMPX_U_F16(&iFmt->iFmt_VOP3A);
    } // decode_OPU_VOP3__V_CMPX_U_F16

    GPUStaticInst*
    Decoder::decode_OPU_VOP3__V_CMPX_NGE_F16(MachInst iFmt)
    {
        return new Inst_VOP3__V_CMPX_NGE_F16(&iFmt->iFmt_VOP3A);
    } // decode_OPU_VOP3__V_CMPX_NGE_F16

    GPUStaticInst*
    Decoder::decode_OPU_VOP3__V_CMPX_NLG_F16(MachInst iFmt)
    {
        return new Inst_VOP3__V_CMPX_NLG_F16(&iFmt->iFmt_VOP3A);
    } // decode_OPU_VOP3__V_CMPX_NLG_F16

    GPUStaticInst*
    Decoder::decode_OPU_VOP3__V_CMPX_NGT_F16(MachInst iFmt)
    {
        return new Inst_VOP3__V_CMPX_NGT_F16(&iFmt->iFmt_VOP3A);
    } // decode_OPU_VOP3__V_CMPX_NGT_F16

    GPUStaticInst*
    Decoder::decode_OPU_VOP3__V_CMPX_NLE_F16(MachInst iFmt)
    {
        return new Inst_VOP3__V_CMPX_NLE_F16(&iFmt->iFmt_VOP3A);
    } // decode_OPU_VOP3__V_CMPX_NLE_F16

    GPUStaticInst*
    Decoder::decode_OPU_VOP3__V_CMPX_NEQ_F16(MachInst iFmt)
    {
        return new Inst_VOP3__V_CMPX_NEQ_F16(&iFmt->iFmt_VOP3A);
    } // decode_OPU_VOP3__V_CMPX_NEQ_F16

    GPUStaticInst*
    Decoder::decode_OPU_VOP3__V_CMPX_NLT_F16(MachInst iFmt)
    {
        return new Inst_VOP3__V_CMPX_NLT_F16(&iFmt->iFmt_VOP3A);
    } // decode_OPU_VOP3__V_CMPX_NLT_F16

    GPUStaticInst*
    Decoder::decode_OPU_VOP3__V_CMPX_TRU_F16(MachInst iFmt)
    {
        return new Inst_VOP3__V_CMPX_TRU_F16(&iFmt->iFmt_VOP3A);
    } // decode_OPU_VOP3__V_CMPX_TRU_F16

    GPUStaticInst*
    Decoder::decode_OPU_VOP3__V_CMP_F_F32(MachInst iFmt)
    {
        return new Inst_VOP3__V_CMP_F_F32(&iFmt->iFmt_VOP3A);
    } // decode_OPU_VOP3__V_CMP_F_F32

    GPUStaticInst*
    Decoder::decode_OPU_VOP3__V_CMP_LT_F32(MachInst iFmt)
    {
        return new Inst_VOP3__V_CMP_LT_F32(&iFmt->iFmt_VOP3A);
    } // decode_OPU_VOP3__V_CMP_LT_F32

    GPUStaticInst*
    Decoder::decode_OPU_VOP3__V_CMP_EQ_F32(MachInst iFmt)
    {
        return new Inst_VOP3__V_CMP_EQ_F32(&iFmt->iFmt_VOP3A);
    } // decode_OPU_VOP3__V_CMP_EQ_F32

    GPUStaticInst*
    Decoder::decode_OPU_VOP3__V_CMP_LE_F32(MachInst iFmt)
    {
        return new Inst_VOP3__V_CMP_LE_F32(&iFmt->iFmt_VOP3A);
    } // decode_OPU_VOP3__V_CMP_LE_F32

    GPUStaticInst*
    Decoder::decode_OPU_VOP3__V_CMP_GT_F32(MachInst iFmt)
    {
        return new Inst_VOP3__V_CMP_GT_F32(&iFmt->iFmt_VOP3A);
    } // decode_OPU_VOP3__V_CMP_GT_F32

    GPUStaticInst*
    Decoder::decode_OPU_VOP3__V_CMP_LG_F32(MachInst iFmt)
    {
        return new Inst_VOP3__V_CMP_LG_F32(&iFmt->iFmt_VOP3A);
    } // decode_OPU_VOP3__V_CMP_LG_F32

    GPUStaticInst*
    Decoder::decode_OPU_VOP3__V_CMP_GE_F32(MachInst iFmt)
    {
        return new Inst_VOP3__V_CMP_GE_F32(&iFmt->iFmt_VOP3A);
    } // decode_OPU_VOP3__V_CMP_GE_F32

    GPUStaticInst*
    Decoder::decode_OPU_VOP3__V_CMP_O_F32(MachInst iFmt)
    {
        return new Inst_VOP3__V_CMP_O_F32(&iFmt->iFmt_VOP3A);
    } // decode_OPU_VOP3__V_CMP_O_F32

    GPUStaticInst*
    Decoder::decode_OPU_VOP3__V_CMP_U_F32(MachInst iFmt)
    {
        return new Inst_VOP3__V_CMP_U_F32(&iFmt->iFmt_VOP3A);
    } // decode_OPU_VOP3__V_CMP_U_F32

    GPUStaticInst*
    Decoder::decode_OPU_VOP3__V_CMP_NGE_F32(MachInst iFmt)
    {
        return new Inst_VOP3__V_CMP_NGE_F32(&iFmt->iFmt_VOP3A);
    } // decode_OPU_VOP3__V_CMP_NGE_F32

    GPUStaticInst*
    Decoder::decode_OPU_VOP3__V_CMP_NLG_F32(MachInst iFmt)
    {
        return new Inst_VOP3__V_CMP_NLG_F32(&iFmt->iFmt_VOP3A);
    } // decode_OPU_VOP3__V_CMP_NLG_F32

    GPUStaticInst*
    Decoder::decode_OPU_VOP3__V_CMP_NGT_F32(MachInst iFmt)
    {
        return new Inst_VOP3__V_CMP_NGT_F32(&iFmt->iFmt_VOP3A);
    } // decode_OPU_VOP3__V_CMP_NGT_F32

    GPUStaticInst*
    Decoder::decode_OPU_VOP3__V_CMP_NLE_F32(MachInst iFmt)
    {
        return new Inst_VOP3__V_CMP_NLE_F32(&iFmt->iFmt_VOP3A);
    } // decode_OPU_VOP3__V_CMP_NLE_F32

    GPUStaticInst*
    Decoder::decode_OPU_VOP3__V_CMP_NEQ_F32(MachInst iFmt)
    {
        return new Inst_VOP3__V_CMP_NEQ_F32(&iFmt->iFmt_VOP3A);
    } // decode_OPU_VOP3__V_CMP_NEQ_F32

    GPUStaticInst*
    Decoder::decode_OPU_VOP3__V_CMP_NLT_F32(MachInst iFmt)
    {
        return new Inst_VOP3__V_CMP_NLT_F32(&iFmt->iFmt_VOP3A);
    } // decode_OPU_VOP3__V_CMP_NLT_F32

    GPUStaticInst*
    Decoder::decode_OPU_VOP3__V_CMP_TRU_F32(MachInst iFmt)
    {
        return new Inst_VOP3__V_CMP_TRU_F32(&iFmt->iFmt_VOP3A);
    } // decode_OPU_VOP3__V_CMP_TRU_F32

    GPUStaticInst*
    Decoder::decode_OPU_VOP3__V_CMPX_F_F32(MachInst iFmt)
    {
        return new Inst_VOP3__V_CMPX_F_F32(&iFmt->iFmt_VOP3A);
    } // decode_OPU_VOP3__V_CMPX_F_F32

    GPUStaticInst*
    Decoder::decode_OPU_VOP3__V_CMPX_LT_F32(MachInst iFmt)
    {
        return new Inst_VOP3__V_CMPX_LT_F32(&iFmt->iFmt_VOP3A);
    } // decode_OPU_VOP3__V_CMPX_LT_F32

    GPUStaticInst*
    Decoder::decode_OPU_VOP3__V_CMPX_EQ_F32(MachInst iFmt)
    {
        return new Inst_VOP3__V_CMPX_EQ_F32(&iFmt->iFmt_VOP3A);
    } // decode_OPU_VOP3__V_CMPX_EQ_F32

    GPUStaticInst*
    Decoder::decode_OPU_VOP3__V_CMPX_LE_F32(MachInst iFmt)
    {
        return new Inst_VOP3__V_CMPX_LE_F32(&iFmt->iFmt_VOP3A);
    } // decode_OPU_VOP3__V_CMPX_LE_F32

    GPUStaticInst*
    Decoder::decode_OPU_VOP3__V_CMPX_GT_F32(MachInst iFmt)
    {
        return new Inst_VOP3__V_CMPX_GT_F32(&iFmt->iFmt_VOP3A);
    } // decode_OPU_VOP3__V_CMPX_GT_F32

    GPUStaticInst*
    Decoder::decode_OPU_VOP3__V_CMPX_LG_F32(MachInst iFmt)
    {
        return new Inst_VOP3__V_CMPX_LG_F32(&iFmt->iFmt_VOP3A);
    } // decode_OPU_VOP3__V_CMPX_LG_F32

    GPUStaticInst*
    Decoder::decode_OPU_VOP3__V_CMPX_GE_F32(MachInst iFmt)
    {
        return new Inst_VOP3__V_CMPX_GE_F32(&iFmt->iFmt_VOP3A);
    } // decode_OPU_VOP3__V_CMPX_GE_F32

    GPUStaticInst*
    Decoder::decode_OPU_VOP3__V_CMPX_O_F32(MachInst iFmt)
    {
        return new Inst_VOP3__V_CMPX_O_F32(&iFmt->iFmt_VOP3A);
    } // decode_OPU_VOP3__V_CMPX_O_F32

    GPUStaticInst*
    Decoder::decode_OPU_VOP3__V_CMPX_U_F32(MachInst iFmt)
    {
        return new Inst_VOP3__V_CMPX_U_F32(&iFmt->iFmt_VOP3A);
    } // decode_OPU_VOP3__V_CMPX_U_F32

    GPUStaticInst*
    Decoder::decode_OPU_VOP3__V_CMPX_NGE_F32(MachInst iFmt)
    {
        return new Inst_VOP3__V_CMPX_NGE_F32(&iFmt->iFmt_VOP3A);
    } // decode_OPU_VOP3__V_CMPX_NGE_F32

    GPUStaticInst*
    Decoder::decode_OPU_VOP3__V_CMPX_NLG_F32(MachInst iFmt)
    {
        return new Inst_VOP3__V_CMPX_NLG_F32(&iFmt->iFmt_VOP3A);
    } // decode_OPU_VOP3__V_CMPX_NLG_F32

    GPUStaticInst*
    Decoder::decode_OPU_VOP3__V_CMPX_NGT_F32(MachInst iFmt)
    {
        return new Inst_VOP3__V_CMPX_NGT_F32(&iFmt->iFmt_VOP3A);
    } // decode_OPU_VOP3__V_CMPX_NGT_F32

    GPUStaticInst*
    Decoder::decode_OPU_VOP3__V_CMPX_NLE_F32(MachInst iFmt)
    {
        return new Inst_VOP3__V_CMPX_NLE_F32(&iFmt->iFmt_VOP3A);
    } // decode_OPU_VOP3__V_CMPX_NLE_F32

    GPUStaticInst*
    Decoder::decode_OPU_VOP3__V_CMPX_NEQ_F32(MachInst iFmt)
    {
        return new Inst_VOP3__V_CMPX_NEQ_F32(&iFmt->iFmt_VOP3A);
    } // decode_OPU_VOP3__V_CMPX_NEQ_F32

    GPUStaticInst*
    Decoder::decode_OPU_VOP3__V_CMPX_NLT_F32(MachInst iFmt)
    {
        return new Inst_VOP3__V_CMPX_NLT_F32(&iFmt->iFmt_VOP3A);
    } // decode_OPU_VOP3__V_CMPX_NLT_F32

    GPUStaticInst*
    Decoder::decode_OPU_VOP3__V_CMPX_TRU_F32(MachInst iFmt)
    {
        return new Inst_VOP3__V_CMPX_TRU_F32(&iFmt->iFmt_VOP3A);
    } // decode_OPU_VOP3__V_CMPX_TRU_F32

    GPUStaticInst*
    Decoder::decode_OPU_VOP3__V_CMP_F_F64(MachInst iFmt)
    {
        return new Inst_VOP3__V_CMP_F_F64(&iFmt->iFmt_VOP3A);
    } // decode_OPU_VOP3__V_CMP_F_F64

    GPUStaticInst*
    Decoder::decode_OPU_VOP3__V_CMP_LT_F64(MachInst iFmt)
    {
        return new Inst_VOP3__V_CMP_LT_F64(&iFmt->iFmt_VOP3A);
    } // decode_OPU_VOP3__V_CMP_LT_F64

    GPUStaticInst*
    Decoder::decode_OPU_VOP3__V_CMP_EQ_F64(MachInst iFmt)
    {
        return new Inst_VOP3__V_CMP_EQ_F64(&iFmt->iFmt_VOP3A);
    } // decode_OPU_VOP3__V_CMP_EQ_F64

    GPUStaticInst*
    Decoder::decode_OPU_VOP3__V_CMP_LE_F64(MachInst iFmt)
    {
        return new Inst_VOP3__V_CMP_LE_F64(&iFmt->iFmt_VOP3A);
    } // decode_OPU_VOP3__V_CMP_LE_F64

    GPUStaticInst*
    Decoder::decode_OPU_VOP3__V_CMP_GT_F64(MachInst iFmt)
    {
        return new Inst_VOP3__V_CMP_GT_F64(&iFmt->iFmt_VOP3A);
    } // decode_OPU_VOP3__V_CMP_GT_F64

    GPUStaticInst*
    Decoder::decode_OPU_VOP3__V_CMP_LG_F64(MachInst iFmt)
    {
        return new Inst_VOP3__V_CMP_LG_F64(&iFmt->iFmt_VOP3A);
    } // decode_OPU_VOP3__V_CMP_LG_F64

    GPUStaticInst*
    Decoder::decode_OPU_VOP3__V_CMP_GE_F64(MachInst iFmt)
    {
        return new Inst_VOP3__V_CMP_GE_F64(&iFmt->iFmt_VOP3A);
    } // decode_OPU_VOP3__V_CMP_GE_F64

    GPUStaticInst*
    Decoder::decode_OPU_VOP3__V_CMP_O_F64(MachInst iFmt)
    {
        return new Inst_VOP3__V_CMP_O_F64(&iFmt->iFmt_VOP3A);
    } // decode_OPU_VOP3__V_CMP_O_F64

    GPUStaticInst*
    Decoder::decode_OPU_VOP3__V_CMP_U_F64(MachInst iFmt)
    {
        return new Inst_VOP3__V_CMP_U_F64(&iFmt->iFmt_VOP3A);
    } // decode_OPU_VOP3__V_CMP_U_F64

    GPUStaticInst*
    Decoder::decode_OPU_VOP3__V_CMP_NGE_F64(MachInst iFmt)
    {
        return new Inst_VOP3__V_CMP_NGE_F64(&iFmt->iFmt_VOP3A);
    } // decode_OPU_VOP3__V_CMP_NGE_F64

    GPUStaticInst*
    Decoder::decode_OPU_VOP3__V_CMP_NLG_F64(MachInst iFmt)
    {
        return new Inst_VOP3__V_CMP_NLG_F64(&iFmt->iFmt_VOP3A);
    } // decode_OPU_VOP3__V_CMP_NLG_F64

    GPUStaticInst*
    Decoder::decode_OPU_VOP3__V_CMP_NGT_F64(MachInst iFmt)
    {
        return new Inst_VOP3__V_CMP_NGT_F64(&iFmt->iFmt_VOP3A);
    } // decode_OPU_VOP3__V_CMP_NGT_F64

    GPUStaticInst*
    Decoder::decode_OPU_VOP3__V_CMP_NLE_F64(MachInst iFmt)
    {
        return new Inst_VOP3__V_CMP_NLE_F64(&iFmt->iFmt_VOP3A);
    } // decode_OPU_VOP3__V_CMP_NLE_F64

    GPUStaticInst*
    Decoder::decode_OPU_VOP3__V_CMP_NEQ_F64(MachInst iFmt)
    {
        return new Inst_VOP3__V_CMP_NEQ_F64(&iFmt->iFmt_VOP3A);
    } // decode_OPU_VOP3__V_CMP_NEQ_F64

    GPUStaticInst*
    Decoder::decode_OPU_VOP3__V_CMP_NLT_F64(MachInst iFmt)
    {
        return new Inst_VOP3__V_CMP_NLT_F64(&iFmt->iFmt_VOP3A);
    } // decode_OPU_VOP3__V_CMP_NLT_F64

    GPUStaticInst*
    Decoder::decode_OPU_VOP3__V_CMP_TRU_F64(MachInst iFmt)
    {
        return new Inst_VOP3__V_CMP_TRU_F64(&iFmt->iFmt_VOP3A);
    } // decode_OPU_VOP3__V_CMP_TRU_F64

    GPUStaticInst*
    Decoder::decode_OPU_VOP3__V_CMPX_F_F64(MachInst iFmt)
    {
        return new Inst_VOP3__V_CMPX_F_F64(&iFmt->iFmt_VOP3A);
    } // decode_OPU_VOP3__V_CMPX_F_F64

    GPUStaticInst*
    Decoder::decode_OPU_VOP3__V_CMPX_LT_F64(MachInst iFmt)
    {
        return new Inst_VOP3__V_CMPX_LT_F64(&iFmt->iFmt_VOP3A);
    } // decode_OPU_VOP3__V_CMPX_LT_F64

    GPUStaticInst*
    Decoder::decode_OPU_VOP3__V_CMPX_EQ_F64(MachInst iFmt)
    {
        return new Inst_VOP3__V_CMPX_EQ_F64(&iFmt->iFmt_VOP3A);
    } // decode_OPU_VOP3__V_CMPX_EQ_F64

    GPUStaticInst*
    Decoder::decode_OPU_VOP3__V_CMPX_LE_F64(MachInst iFmt)
    {
        return new Inst_VOP3__V_CMPX_LE_F64(&iFmt->iFmt_VOP3A);
    } // decode_OPU_VOP3__V_CMPX_LE_F64

    GPUStaticInst*
    Decoder::decode_OPU_VOP3__V_CMPX_GT_F64(MachInst iFmt)
    {
        return new Inst_VOP3__V_CMPX_GT_F64(&iFmt->iFmt_VOP3A);
    } // decode_OPU_VOP3__V_CMPX_GT_F64

    GPUStaticInst*
    Decoder::decode_OPU_VOP3__V_CMPX_LG_F64(MachInst iFmt)
    {
        return new Inst_VOP3__V_CMPX_LG_F64(&iFmt->iFmt_VOP3A);
    } // decode_OPU_VOP3__V_CMPX_LG_F64

    GPUStaticInst*
    Decoder::decode_OPU_VOP3__V_CMPX_GE_F64(MachInst iFmt)
    {
        return new Inst_VOP3__V_CMPX_GE_F64(&iFmt->iFmt_VOP3A);
    } // decode_OPU_VOP3__V_CMPX_GE_F64

    GPUStaticInst*
    Decoder::decode_OPU_VOP3__V_CMPX_O_F64(MachInst iFmt)
    {
        return new Inst_VOP3__V_CMPX_O_F64(&iFmt->iFmt_VOP3A);
    } // decode_OPU_VOP3__V_CMPX_O_F64

    GPUStaticInst*
    Decoder::decode_OPU_VOP3__V_CMPX_U_F64(MachInst iFmt)
    {
        return new Inst_VOP3__V_CMPX_U_F64(&iFmt->iFmt_VOP3A);
    } // decode_OPU_VOP3__V_CMPX_U_F64

    GPUStaticInst*
    Decoder::decode_OPU_VOP3__V_CMPX_NGE_F64(MachInst iFmt)
    {
        return new Inst_VOP3__V_CMPX_NGE_F64(&iFmt->iFmt_VOP3A);
    } // decode_OPU_VOP3__V_CMPX_NGE_F64

    GPUStaticInst*
    Decoder::decode_OPU_VOP3__V_CMPX_NLG_F64(MachInst iFmt)
    {
        return new Inst_VOP3__V_CMPX_NLG_F64(&iFmt->iFmt_VOP3A);
    } // decode_OPU_VOP3__V_CMPX_NLG_F64

    GPUStaticInst*
    Decoder::decode_OPU_VOP3__V_CMPX_NGT_F64(MachInst iFmt)
    {
        return new Inst_VOP3__V_CMPX_NGT_F64(&iFmt->iFmt_VOP3A);
    } // decode_OPU_VOP3__V_CMPX_NGT_F64

    GPUStaticInst*
    Decoder::decode_OPU_VOP3__V_CMPX_NLE_F64(MachInst iFmt)
    {
        return new Inst_VOP3__V_CMPX_NLE_F64(&iFmt->iFmt_VOP3A);
    } // decode_OPU_VOP3__V_CMPX_NLE_F64

    GPUStaticInst*
    Decoder::decode_OPU_VOP3__V_CMPX_NEQ_F64(MachInst iFmt)
    {
        return new Inst_VOP3__V_CMPX_NEQ_F64(&iFmt->iFmt_VOP3A);
    } // decode_OPU_VOP3__V_CMPX_NEQ_F64

    GPUStaticInst*
    Decoder::decode_OPU_VOP3__V_CMPX_NLT_F64(MachInst iFmt)
    {
        return new Inst_VOP3__V_CMPX_NLT_F64(&iFmt->iFmt_VOP3A);
    } // decode_OPU_VOP3__V_CMPX_NLT_F64

    GPUStaticInst*
    Decoder::decode_OPU_VOP3__V_CMPX_TRU_F64(MachInst iFmt)
    {
        return new Inst_VOP3__V_CMPX_TRU_F64(&iFmt->iFmt_VOP3A);
    } // decode_OPU_VOP3__V_CMPX_TRU_F64

    GPUStaticInst*
    Decoder::decode_OPU_VOP3__V_CMP_F_I16(MachInst iFmt)
    {
        return new Inst_VOP3__V_CMP_F_I16(&iFmt->iFmt_VOP3A);
    } // decode_OPU_VOP3__V_CMP_F_I16

    GPUStaticInst*
    Decoder::decode_OPU_VOP3__V_CMP_LT_I16(MachInst iFmt)
    {
        return new Inst_VOP3__V_CMP_LT_I16(&iFmt->iFmt_VOP3A);
    } // decode_OPU_VOP3__V_CMP_LT_I16

    GPUStaticInst*
    Decoder::decode_OPU_VOP3__V_CMP_EQ_I16(MachInst iFmt)
    {
        return new Inst_VOP3__V_CMP_EQ_I16(&iFmt->iFmt_VOP3A);
    } // decode_OPU_VOP3__V_CMP_EQ_I16

    GPUStaticInst*
    Decoder::decode_OPU_VOP3__V_CMP_LE_I16(MachInst iFmt)
    {
        return new Inst_VOP3__V_CMP_LE_I16(&iFmt->iFmt_VOP3A);
    } // decode_OPU_VOP3__V_CMP_LE_I16

    GPUStaticInst*
    Decoder::decode_OPU_VOP3__V_CMP_GT_I16(MachInst iFmt)
    {
        return new Inst_VOP3__V_CMP_GT_I16(&iFmt->iFmt_VOP3A);
    } // decode_OPU_VOP3__V_CMP_GT_I16

    GPUStaticInst*
    Decoder::decode_OPU_VOP3__V_CMP_NE_I16(MachInst iFmt)
    {
        return new Inst_VOP3__V_CMP_NE_I16(&iFmt->iFmt_VOP3A);
    } // decode_OPU_VOP3__V_CMP_NE_I16

    GPUStaticInst*
    Decoder::decode_OPU_VOP3__V_CMP_GE_I16(MachInst iFmt)
    {
        return new Inst_VOP3__V_CMP_GE_I16(&iFmt->iFmt_VOP3A);
    } // decode_OPU_VOP3__V_CMP_GE_I16

    GPUStaticInst*
    Decoder::decode_OPU_VOP3__V_CMP_T_I16(MachInst iFmt)
    {
        return new Inst_VOP3__V_CMP_T_I16(&iFmt->iFmt_VOP3A);
    } // decode_OPU_VOP3__V_CMP_T_I16

    GPUStaticInst*
    Decoder::decode_OPU_VOP3__V_CMP_F_U16(MachInst iFmt)
    {
        return new Inst_VOP3__V_CMP_F_U16(&iFmt->iFmt_VOP3A);
    } // decode_OPU_VOP3__V_CMP_F_U16

    GPUStaticInst*
    Decoder::decode_OPU_VOP3__V_CMP_LT_U16(MachInst iFmt)
    {
        return new Inst_VOP3__V_CMP_LT_U16(&iFmt->iFmt_VOP3A);
    } // decode_OPU_VOP3__V_CMP_LT_U16

    GPUStaticInst*
    Decoder::decode_OPU_VOP3__V_CMP_EQ_U16(MachInst iFmt)
    {
        return new Inst_VOP3__V_CMP_EQ_U16(&iFmt->iFmt_VOP3A);
    } // decode_OPU_VOP3__V_CMP_EQ_U16

    GPUStaticInst*
    Decoder::decode_OPU_VOP3__V_CMP_LE_U16(MachInst iFmt)
    {
        return new Inst_VOP3__V_CMP_LE_U16(&iFmt->iFmt_VOP3A);
    } // decode_OPU_VOP3__V_CMP_LE_U16

    GPUStaticInst*
    Decoder::decode_OPU_VOP3__V_CMP_GT_U16(MachInst iFmt)
    {
        return new Inst_VOP3__V_CMP_GT_U16(&iFmt->iFmt_VOP3A);
    } // decode_OPU_VOP3__V_CMP_GT_U16

    GPUStaticInst*
    Decoder::decode_OPU_VOP3__V_CMP_NE_U16(MachInst iFmt)
    {
        return new Inst_VOP3__V_CMP_NE_U16(&iFmt->iFmt_VOP3A);
    } // decode_OPU_VOP3__V_CMP_NE_U16

    GPUStaticInst*
    Decoder::decode_OPU_VOP3__V_CMP_GE_U16(MachInst iFmt)
    {
        return new Inst_VOP3__V_CMP_GE_U16(&iFmt->iFmt_VOP3A);
    } // decode_OPU_VOP3__V_CMP_GE_U16

    GPUStaticInst*
    Decoder::decode_OPU_VOP3__V_CMP_T_U16(MachInst iFmt)
    {
        return new Inst_VOP3__V_CMP_T_U16(&iFmt->iFmt_VOP3A);
    } // decode_OPU_VOP3__V_CMP_T_U16

    GPUStaticInst*
    Decoder::decode_OPU_VOP3__V_CMPX_F_I16(MachInst iFmt)
    {
        return new Inst_VOP3__V_CMPX_F_I16(&iFmt->iFmt_VOP3A);
    } // decode_OPU_VOP3__V_CMPX_F_I16

    GPUStaticInst*
    Decoder::decode_OPU_VOP3__V_CMPX_LT_I16(MachInst iFmt)
    {
        return new Inst_VOP3__V_CMPX_LT_I16(&iFmt->iFmt_VOP3A);
    } // decode_OPU_VOP3__V_CMPX_LT_I16

    GPUStaticInst*
    Decoder::decode_OPU_VOP3__V_CMPX_EQ_I16(MachInst iFmt)
    {
        return new Inst_VOP3__V_CMPX_EQ_I16(&iFmt->iFmt_VOP3A);
    } // decode_OPU_VOP3__V_CMPX_EQ_I16

    GPUStaticInst*
    Decoder::decode_OPU_VOP3__V_CMPX_LE_I16(MachInst iFmt)
    {
        return new Inst_VOP3__V_CMPX_LE_I16(&iFmt->iFmt_VOP3A);
    } // decode_OPU_VOP3__V_CMPX_LE_I16

    GPUStaticInst*
    Decoder::decode_OPU_VOP3__V_CMPX_GT_I16(MachInst iFmt)
    {
        return new Inst_VOP3__V_CMPX_GT_I16(&iFmt->iFmt_VOP3A);
    } // decode_OPU_VOP3__V_CMPX_GT_I16

    GPUStaticInst*
    Decoder::decode_OPU_VOP3__V_CMPX_NE_I16(MachInst iFmt)
    {
        return new Inst_VOP3__V_CMPX_NE_I16(&iFmt->iFmt_VOP3A);
    } // decode_OPU_VOP3__V_CMPX_NE_I16

    GPUStaticInst*
    Decoder::decode_OPU_VOP3__V_CMPX_GE_I16(MachInst iFmt)
    {
        return new Inst_VOP3__V_CMPX_GE_I16(&iFmt->iFmt_VOP3A);
    } // decode_OPU_VOP3__V_CMPX_GE_I16

    GPUStaticInst*
    Decoder::decode_OPU_VOP3__V_CMPX_T_I16(MachInst iFmt)
    {
        return new Inst_VOP3__V_CMPX_T_I16(&iFmt->iFmt_VOP3A);
    } // decode_OPU_VOP3__V_CMPX_T_I16

    GPUStaticInst*
    Decoder::decode_OPU_VOP3__V_CMPX_F_U16(MachInst iFmt)
    {
        return new Inst_VOP3__V_CMPX_F_U16(&iFmt->iFmt_VOP3A);
    } // decode_OPU_VOP3__V_CMPX_F_U16

    GPUStaticInst*
    Decoder::decode_OPU_VOP3__V_CMPX_LT_U16(MachInst iFmt)
    {
        return new Inst_VOP3__V_CMPX_LT_U16(&iFmt->iFmt_VOP3A);
    } // decode_OPU_VOP3__V_CMPX_LT_U16

    GPUStaticInst*
    Decoder::decode_OPU_VOP3__V_CMPX_EQ_U16(MachInst iFmt)
    {
        return new Inst_VOP3__V_CMPX_EQ_U16(&iFmt->iFmt_VOP3A);
    } // decode_OPU_VOP3__V_CMPX_EQ_U16

    GPUStaticInst*
    Decoder::decode_OPU_VOP3__V_CMPX_LE_U16(MachInst iFmt)
    {
        return new Inst_VOP3__V_CMPX_LE_U16(&iFmt->iFmt_VOP3A);
    } // decode_OPU_VOP3__V_CMPX_LE_U16

    GPUStaticInst*
    Decoder::decode_OPU_VOP3__V_CMPX_GT_U16(MachInst iFmt)
    {
        return new Inst_VOP3__V_CMPX_GT_U16(&iFmt->iFmt_VOP3A);
    } // decode_OPU_VOP3__V_CMPX_GT_U16

    GPUStaticInst*
    Decoder::decode_OPU_VOP3__V_CMPX_NE_U16(MachInst iFmt)
    {
        return new Inst_VOP3__V_CMPX_NE_U16(&iFmt->iFmt_VOP3A);
    } // decode_OPU_VOP3__V_CMPX_NE_U16

    GPUStaticInst*
    Decoder::decode_OPU_VOP3__V_CMPX_GE_U16(MachInst iFmt)
    {
        return new Inst_VOP3__V_CMPX_GE_U16(&iFmt->iFmt_VOP3A);
    } // decode_OPU_VOP3__V_CMPX_GE_U16

    GPUStaticInst*
    Decoder::decode_OPU_VOP3__V_CMPX_T_U16(MachInst iFmt)
    {
        return new Inst_VOP3__V_CMPX_T_U16(&iFmt->iFmt_VOP3A);
    } // decode_OPU_VOP3__V_CMPX_T_U16

    GPUStaticInst*
    Decoder::decode_OPU_VOP3__V_CMP_F_I32(MachInst iFmt)
    {
        return new Inst_VOP3__V_CMP_F_I32(&iFmt->iFmt_VOP3A);
    } // decode_OPU_VOP3__V_CMP_F_I32

    GPUStaticInst*
    Decoder::decode_OPU_VOP3__V_CMP_LT_I32(MachInst iFmt)
    {
        return new Inst_VOP3__V_CMP_LT_I32(&iFmt->iFmt_VOP3A);
    } // decode_OPU_VOP3__V_CMP_LT_I32

    GPUStaticInst*
    Decoder::decode_OPU_VOP3__V_CMP_EQ_I32(MachInst iFmt)
    {
        return new Inst_VOP3__V_CMP_EQ_I32(&iFmt->iFmt_VOP3A);
    } // decode_OPU_VOP3__V_CMP_EQ_I32

    GPUStaticInst*
    Decoder::decode_OPU_VOP3__V_CMP_LE_I32(MachInst iFmt)
    {
        return new Inst_VOP3__V_CMP_LE_I32(&iFmt->iFmt_VOP3A);
    } // decode_OPU_VOP3__V_CMP_LE_I32

    GPUStaticInst*
    Decoder::decode_OPU_VOP3__V_CMP_GT_I32(MachInst iFmt)
    {
        return new Inst_VOP3__V_CMP_GT_I32(&iFmt->iFmt_VOP3A);
    } // decode_OPU_VOP3__V_CMP_GT_I32

    GPUStaticInst*
    Decoder::decode_OPU_VOP3__V_CMP_NE_I32(MachInst iFmt)
    {
        return new Inst_VOP3__V_CMP_NE_I32(&iFmt->iFmt_VOP3A);
    } // decode_OPU_VOP3__V_CMP_NE_I32

    GPUStaticInst*
    Decoder::decode_OPU_VOP3__V_CMP_GE_I32(MachInst iFmt)
    {
        return new Inst_VOP3__V_CMP_GE_I32(&iFmt->iFmt_VOP3A);
    } // decode_OPU_VOP3__V_CMP_GE_I32

    GPUStaticInst*
    Decoder::decode_OPU_VOP3__V_CMP_T_I32(MachInst iFmt)
    {
        return new Inst_VOP3__V_CMP_T_I32(&iFmt->iFmt_VOP3A);
    } // decode_OPU_VOP3__V_CMP_T_I32

    GPUStaticInst*
    Decoder::decode_OPU_VOP3__V_CMP_F_U32(MachInst iFmt)
    {
        return new Inst_VOP3__V_CMP_F_U32(&iFmt->iFmt_VOP3A);
    } // decode_OPU_VOP3__V_CMP_F_U32

    GPUStaticInst*
    Decoder::decode_OPU_VOP3__V_CMP_LT_U32(MachInst iFmt)
    {
        return new Inst_VOP3__V_CMP_LT_U32(&iFmt->iFmt_VOP3A);
    } // decode_OPU_VOP3__V_CMP_LT_U32

    GPUStaticInst*
    Decoder::decode_OPU_VOP3__V_CMP_EQ_U32(MachInst iFmt)
    {
        return new Inst_VOP3__V_CMP_EQ_U32(&iFmt->iFmt_VOP3A);
    } // decode_OPU_VOP3__V_CMP_EQ_U32

    GPUStaticInst*
    Decoder::decode_OPU_VOP3__V_CMP_LE_U32(MachInst iFmt)
    {
        return new Inst_VOP3__V_CMP_LE_U32(&iFmt->iFmt_VOP3A);
    } // decode_OPU_VOP3__V_CMP_LE_U32

    GPUStaticInst*
    Decoder::decode_OPU_VOP3__V_CMP_GT_U32(MachInst iFmt)
    {
        return new Inst_VOP3__V_CMP_GT_U32(&iFmt->iFmt_VOP3A);
    } // decode_OPU_VOP3__V_CMP_GT_U32

    GPUStaticInst*
    Decoder::decode_OPU_VOP3__V_CMP_NE_U32(MachInst iFmt)
    {
        return new Inst_VOP3__V_CMP_NE_U32(&iFmt->iFmt_VOP3A);
    } // decode_OPU_VOP3__V_CMP_NE_U32

    GPUStaticInst*
    Decoder::decode_OPU_VOP3__V_CMP_GE_U32(MachInst iFmt)
    {
        return new Inst_VOP3__V_CMP_GE_U32(&iFmt->iFmt_VOP3A);
    } // decode_OPU_VOP3__V_CMP_GE_U32

    GPUStaticInst*
    Decoder::decode_OPU_VOP3__V_CMP_T_U32(MachInst iFmt)
    {
        return new Inst_VOP3__V_CMP_T_U32(&iFmt->iFmt_VOP3A);
    } // decode_OPU_VOP3__V_CMP_T_U32

    GPUStaticInst*
    Decoder::decode_OPU_VOP3__V_CMPX_F_I32(MachInst iFmt)
    {
        return new Inst_VOP3__V_CMPX_F_I32(&iFmt->iFmt_VOP3A);
    } // decode_OPU_VOP3__V_CMPX_F_I32

    GPUStaticInst*
    Decoder::decode_OPU_VOP3__V_CMPX_LT_I32(MachInst iFmt)
    {
        return new Inst_VOP3__V_CMPX_LT_I32(&iFmt->iFmt_VOP3A);
    } // decode_OPU_VOP3__V_CMPX_LT_I32

    GPUStaticInst*
    Decoder::decode_OPU_VOP3__V_CMPX_EQ_I32(MachInst iFmt)
    {
        return new Inst_VOP3__V_CMPX_EQ_I32(&iFmt->iFmt_VOP3A);
    } // decode_OPU_VOP3__V_CMPX_EQ_I32

    GPUStaticInst*
    Decoder::decode_OPU_VOP3__V_CMPX_LE_I32(MachInst iFmt)
    {
        return new Inst_VOP3__V_CMPX_LE_I32(&iFmt->iFmt_VOP3A);
    } // decode_OPU_VOP3__V_CMPX_LE_I32

    GPUStaticInst*
    Decoder::decode_OPU_VOP3__V_CMPX_GT_I32(MachInst iFmt)
    {
        return new Inst_VOP3__V_CMPX_GT_I32(&iFmt->iFmt_VOP3A);
    } // decode_OPU_VOP3__V_CMPX_GT_I32

    GPUStaticInst*
    Decoder::decode_OPU_VOP3__V_CMPX_NE_I32(MachInst iFmt)
    {
        return new Inst_VOP3__V_CMPX_NE_I32(&iFmt->iFmt_VOP3A);
    } // decode_OPU_VOP3__V_CMPX_NE_I32

    GPUStaticInst*
    Decoder::decode_OPU_VOP3__V_CMPX_GE_I32(MachInst iFmt)
    {
        return new Inst_VOP3__V_CMPX_GE_I32(&iFmt->iFmt_VOP3A);
    } // decode_OPU_VOP3__V_CMPX_GE_I32

    GPUStaticInst*
    Decoder::decode_OPU_VOP3__V_CMPX_T_I32(MachInst iFmt)
    {
        return new Inst_VOP3__V_CMPX_T_I32(&iFmt->iFmt_VOP3A);
    } // decode_OPU_VOP3__V_CMPX_T_I32

    GPUStaticInst*
    Decoder::decode_OPU_VOP3__V_CMPX_F_U32(MachInst iFmt)
    {
        return new Inst_VOP3__V_CMPX_F_U32(&iFmt->iFmt_VOP3A);
    } // decode_OPU_VOP3__V_CMPX_F_U32

    GPUStaticInst*
    Decoder::decode_OPU_VOP3__V_CMPX_LT_U32(MachInst iFmt)
    {
        return new Inst_VOP3__V_CMPX_LT_U32(&iFmt->iFmt_VOP3A);
    } // decode_OPU_VOP3__V_CMPX_LT_U32

    GPUStaticInst*
    Decoder::decode_OPU_VOP3__V_CMPX_EQ_U32(MachInst iFmt)
    {
        return new Inst_VOP3__V_CMPX_EQ_U32(&iFmt->iFmt_VOP3A);
    } // decode_OPU_VOP3__V_CMPX_EQ_U32

    GPUStaticInst*
    Decoder::decode_OPU_VOP3__V_CMPX_LE_U32(MachInst iFmt)
    {
        return new Inst_VOP3__V_CMPX_LE_U32(&iFmt->iFmt_VOP3A);
    } // decode_OPU_VOP3__V_CMPX_LE_U32

    GPUStaticInst*
    Decoder::decode_OPU_VOP3__V_CMPX_GT_U32(MachInst iFmt)
    {
        return new Inst_VOP3__V_CMPX_GT_U32(&iFmt->iFmt_VOP3A);
    } // decode_OPU_VOP3__V_CMPX_GT_U32

    GPUStaticInst*
    Decoder::decode_OPU_VOP3__V_CMPX_NE_U32(MachInst iFmt)
    {
        return new Inst_VOP3__V_CMPX_NE_U32(&iFmt->iFmt_VOP3A);
    } // decode_OPU_VOP3__V_CMPX_NE_U32

    GPUStaticInst*
    Decoder::decode_OPU_VOP3__V_CMPX_GE_U32(MachInst iFmt)
    {
        return new Inst_VOP3__V_CMPX_GE_U32(&iFmt->iFmt_VOP3A);
    } // decode_OPU_VOP3__V_CMPX_GE_U32

    GPUStaticInst*
    Decoder::decode_OPU_VOP3__V_CMPX_T_U32(MachInst iFmt)
    {
        return new Inst_VOP3__V_CMPX_T_U32(&iFmt->iFmt_VOP3A);
    } // decode_OPU_VOP3__V_CMPX_T_U32

    GPUStaticInst*
    Decoder::decode_OPU_VOP3__V_CMP_F_I64(MachInst iFmt)
    {
        return new Inst_VOP3__V_CMP_F_I64(&iFmt->iFmt_VOP3A);
    } // decode_OPU_VOP3__V_CMP_F_I64

    GPUStaticInst*
    Decoder::decode_OPU_VOP3__V_CMP_LT_I64(MachInst iFmt)
    {
        return new Inst_VOP3__V_CMP_LT_I64(&iFmt->iFmt_VOP3A);
    } // decode_OPU_VOP3__V_CMP_LT_I64

    GPUStaticInst*
    Decoder::decode_OPU_VOP3__V_CMP_EQ_I64(MachInst iFmt)
    {
        return new Inst_VOP3__V_CMP_EQ_I64(&iFmt->iFmt_VOP3A);
    } // decode_OPU_VOP3__V_CMP_EQ_I64

    GPUStaticInst*
    Decoder::decode_OPU_VOP3__V_CMP_LE_I64(MachInst iFmt)
    {
        return new Inst_VOP3__V_CMP_LE_I64(&iFmt->iFmt_VOP3A);
    } // decode_OPU_VOP3__V_CMP_LE_I64

    GPUStaticInst*
    Decoder::decode_OPU_VOP3__V_CMP_GT_I64(MachInst iFmt)
    {
        return new Inst_VOP3__V_CMP_GT_I64(&iFmt->iFmt_VOP3A);
    } // decode_OPU_VOP3__V_CMP_GT_I64

    GPUStaticInst*
    Decoder::decode_OPU_VOP3__V_CMP_NE_I64(MachInst iFmt)
    {
        return new Inst_VOP3__V_CMP_NE_I64(&iFmt->iFmt_VOP3A);
    } // decode_OPU_VOP3__V_CMP_NE_I64

    GPUStaticInst*
    Decoder::decode_OPU_VOP3__V_CMP_GE_I64(MachInst iFmt)
    {
        return new Inst_VOP3__V_CMP_GE_I64(&iFmt->iFmt_VOP3A);
    } // decode_OPU_VOP3__V_CMP_GE_I64

    GPUStaticInst*
    Decoder::decode_OPU_VOP3__V_CMP_T_I64(MachInst iFmt)
    {
        return new Inst_VOP3__V_CMP_T_I64(&iFmt->iFmt_VOP3A);
    } // decode_OPU_VOP3__V_CMP_T_I64

    GPUStaticInst*
    Decoder::decode_OPU_VOP3__V_CMP_F_U64(MachInst iFmt)
    {
        return new Inst_VOP3__V_CMP_F_U64(&iFmt->iFmt_VOP3A);
    } // decode_OPU_VOP3__V_CMP_F_U64

    GPUStaticInst*
    Decoder::decode_OPU_VOP3__V_CMP_LT_U64(MachInst iFmt)
    {
        return new Inst_VOP3__V_CMP_LT_U64(&iFmt->iFmt_VOP3A);
    } // decode_OPU_VOP3__V_CMP_LT_U64

    GPUStaticInst*
    Decoder::decode_OPU_VOP3__V_CMP_EQ_U64(MachInst iFmt)
    {
        return new Inst_VOP3__V_CMP_EQ_U64(&iFmt->iFmt_VOP3A);
    } // decode_OPU_VOP3__V_CMP_EQ_U64

    GPUStaticInst*
    Decoder::decode_OPU_VOP3__V_CMP_LE_U64(MachInst iFmt)
    {
        return new Inst_VOP3__V_CMP_LE_U64(&iFmt->iFmt_VOP3A);
    } // decode_OPU_VOP3__V_CMP_LE_U64

    GPUStaticInst*
    Decoder::decode_OPU_VOP3__V_CMP_GT_U64(MachInst iFmt)
    {
        return new Inst_VOP3__V_CMP_GT_U64(&iFmt->iFmt_VOP3A);
    } // decode_OPU_VOP3__V_CMP_GT_U64

    GPUStaticInst*
    Decoder::decode_OPU_VOP3__V_CMP_NE_U64(MachInst iFmt)
    {
        return new Inst_VOP3__V_CMP_NE_U64(&iFmt->iFmt_VOP3A);
    } // decode_OPU_VOP3__V_CMP_NE_U64

    GPUStaticInst*
    Decoder::decode_OPU_VOP3__V_CMP_GE_U64(MachInst iFmt)
    {
        return new Inst_VOP3__V_CMP_GE_U64(&iFmt->iFmt_VOP3A);
    } // decode_OPU_VOP3__V_CMP_GE_U64

    GPUStaticInst*
    Decoder::decode_OPU_VOP3__V_CMP_T_U64(MachInst iFmt)
    {
        return new Inst_VOP3__V_CMP_T_U64(&iFmt->iFmt_VOP3A);
    } // decode_OPU_VOP3__V_CMP_T_U64

    GPUStaticInst*
    Decoder::decode_OPU_VOP3__V_CMPX_F_I64(MachInst iFmt)
    {
        return new Inst_VOP3__V_CMPX_F_I64(&iFmt->iFmt_VOP3A);
    } // decode_OPU_VOP3__V_CMPX_F_I64

    GPUStaticInst*
    Decoder::decode_OPU_VOP3__V_CMPX_LT_I64(MachInst iFmt)
    {
        return new Inst_VOP3__V_CMPX_LT_I64(&iFmt->iFmt_VOP3A);
    } // decode_OPU_VOP3__V_CMPX_LT_I64

    GPUStaticInst*
    Decoder::decode_OPU_VOP3__V_CMPX_EQ_I64(MachInst iFmt)
    {
        return new Inst_VOP3__V_CMPX_EQ_I64(&iFmt->iFmt_VOP3A);
    } // decode_OPU_VOP3__V_CMPX_EQ_I64

    GPUStaticInst*
    Decoder::decode_OPU_VOP3__V_CMPX_LE_I64(MachInst iFmt)
    {
        return new Inst_VOP3__V_CMPX_LE_I64(&iFmt->iFmt_VOP3A);
    } // decode_OPU_VOP3__V_CMPX_LE_I64

    GPUStaticInst*
    Decoder::decode_OPU_VOP3__V_CMPX_GT_I64(MachInst iFmt)
    {
        return new Inst_VOP3__V_CMPX_GT_I64(&iFmt->iFmt_VOP3A);
    } // decode_OPU_VOP3__V_CMPX_GT_I64

    GPUStaticInst*
    Decoder::decode_OPU_VOP3__V_CMPX_NE_I64(MachInst iFmt)
    {
        return new Inst_VOP3__V_CMPX_NE_I64(&iFmt->iFmt_VOP3A);
    } // decode_OPU_VOP3__V_CMPX_NE_I64

    GPUStaticInst*
    Decoder::decode_OPU_VOP3__V_CMPX_GE_I64(MachInst iFmt)
    {
        return new Inst_VOP3__V_CMPX_GE_I64(&iFmt->iFmt_VOP3A);
    } // decode_OPU_VOP3__V_CMPX_GE_I64

    GPUStaticInst*
    Decoder::decode_OPU_VOP3__V_CMPX_T_I64(MachInst iFmt)
    {
        return new Inst_VOP3__V_CMPX_T_I64(&iFmt->iFmt_VOP3A);
    } // decode_OPU_VOP3__V_CMPX_T_I64

    GPUStaticInst*
    Decoder::decode_OPU_VOP3__V_CMPX_F_U64(MachInst iFmt)
    {
        return new Inst_VOP3__V_CMPX_F_U64(&iFmt->iFmt_VOP3A);
    } // decode_OPU_VOP3__V_CMPX_F_U64

    GPUStaticInst*
    Decoder::decode_OPU_VOP3__V_CMPX_LT_U64(MachInst iFmt)
    {
        return new Inst_VOP3__V_CMPX_LT_U64(&iFmt->iFmt_VOP3A);
    } // decode_OPU_VOP3__V_CMPX_LT_U64

    GPUStaticInst*
    Decoder::decode_OPU_VOP3__V_CMPX_EQ_U64(MachInst iFmt)
    {
        return new Inst_VOP3__V_CMPX_EQ_U64(&iFmt->iFmt_VOP3A);
    } // decode_OPU_VOP3__V_CMPX_EQ_U64

    GPUStaticInst*
    Decoder::decode_OPU_VOP3__V_CMPX_LE_U64(MachInst iFmt)
    {
        return new Inst_VOP3__V_CMPX_LE_U64(&iFmt->iFmt_VOP3A);
    } // decode_OPU_VOP3__V_CMPX_LE_U64

    GPUStaticInst*
    Decoder::decode_OPU_VOP3__V_CMPX_GT_U64(MachInst iFmt)
    {
        return new Inst_VOP3__V_CMPX_GT_U64(&iFmt->iFmt_VOP3A);
    } // decode_OPU_VOP3__V_CMPX_GT_U64

    GPUStaticInst*
    Decoder::decode_OPU_VOP3__V_CMPX_NE_U64(MachInst iFmt)
    {
        return new Inst_VOP3__V_CMPX_NE_U64(&iFmt->iFmt_VOP3A);
    } // decode_OPU_VOP3__V_CMPX_NE_U64

    GPUStaticInst*
    Decoder::decode_OPU_VOP3__V_CMPX_GE_U64(MachInst iFmt)
    {
        return new Inst_VOP3__V_CMPX_GE_U64(&iFmt->iFmt_VOP3A);
    } // decode_OPU_VOP3__V_CMPX_GE_U64

    GPUStaticInst*
    Decoder::decode_OPU_VOP3__V_CMPX_T_U64(MachInst iFmt)
    {
        return new Inst_VOP3__V_CMPX_T_U64(&iFmt->iFmt_VOP3A);
    } // decode_OPU_VOP3__V_CMPX_T_U64

    GPUStaticInst*
    Decoder::decode_OPU_VOP3__V_CNDMASK_B32(MachInst iFmt)
    {
        return new Inst_VOP3__V_CNDMASK_B32(&iFmt->iFmt_VOP3A);
    } // decode_OPU_VOP3__V_CNDMASK_B32

    GPUStaticInst*
    Decoder::decode_OPU_VOP3__V_ADD_F32(MachInst iFmt)
    {
        return new Inst_VOP3__V_ADD_F32(&iFmt->iFmt_VOP3A);
    } // decode_OPU_VOP3__V_ADD_F32

    GPUStaticInst*
    Decoder::decode_OPU_VOP3__V_SUB_F32(MachInst iFmt)
    {
        return new Inst_VOP3__V_SUB_F32(&iFmt->iFmt_VOP3A);
    } // decode_OPU_VOP3__V_SUB_F32

    GPUStaticInst*
    Decoder::decode_OPU_VOP3__V_SUBREV_F32(MachInst iFmt)
    {
        return new Inst_VOP3__V_SUBREV_F32(&iFmt->iFmt_VOP3A);
    } // decode_OPU_VOP3__V_SUBREV_F32

    GPUStaticInst*
    Decoder::decode_OPU_VOP3__V_MUL_LEGACY_F32(MachInst iFmt)
    {
        return new Inst_VOP3__V_MUL_LEGACY_F32(&iFmt->iFmt_VOP3A);
    } // decode_OPU_VOP3__V_MUL_LEGACY_F32

    GPUStaticInst*
    Decoder::decode_OPU_VOP3__V_MUL_F32(MachInst iFmt)
    {
        return new Inst_VOP3__V_MUL_F32(&iFmt->iFmt_VOP3A);
    } // decode_OPU_VOP3__V_MUL_F32

    GPUStaticInst*
    Decoder::decode_OPU_VOP3__V_MUL_I32_I24(MachInst iFmt)
    {
        return new Inst_VOP3__V_MUL_I32_I24(&iFmt->iFmt_VOP3A);
    } // decode_OPU_VOP3__V_MUL_I32_I24

    GPUStaticInst*
    Decoder::decode_OPU_VOP3__V_MUL_HI_I32_I24(MachInst iFmt)
    {
        return new Inst_VOP3__V_MUL_HI_I32_I24(&iFmt->iFmt_VOP3A);
    } // decode_OPU_VOP3__V_MUL_HI_I32_I24

    GPUStaticInst*
    Decoder::decode_OPU_VOP3__V_MUL_U32_U24(MachInst iFmt)
    {
        return new Inst_VOP3__V_MUL_U32_U24(&iFmt->iFmt_VOP3A);
    } // decode_OPU_VOP3__V_MUL_U32_U24

    GPUStaticInst*
    Decoder::decode_OPU_VOP3__V_MUL_HI_U32_U24(MachInst iFmt)
    {
        return new Inst_VOP3__V_MUL_HI_U32_U24(&iFmt->iFmt_VOP3A);
    } // decode_OPU_VOP3__V_MUL_HI_U32_U24

    GPUStaticInst*
    Decoder::decode_OPU_VOP3__V_MIN_F32(MachInst iFmt)
    {
        return new Inst_VOP3__V_MIN_F32(&iFmt->iFmt_VOP3A);
    } // decode_OPU_VOP3__V_MIN_F32

    GPUStaticInst*
    Decoder::decode_OPU_VOP3__V_MAX_F32(MachInst iFmt)
    {
        return new Inst_VOP3__V_MAX_F32(&iFmt->iFmt_VOP3A);
    } // decode_OPU_VOP3__V_MAX_F32

    GPUStaticInst*
    Decoder::decode_OPU_VOP3__V_MIN_I32(MachInst iFmt)
    {
        return new Inst_VOP3__V_MIN_I32(&iFmt->iFmt_VOP3A);
    } // decode_OPU_VOP3__V_MIN_I32

    GPUStaticInst*
    Decoder::decode_OPU_VOP3__V_MAX_I32(MachInst iFmt)
    {
        return new Inst_VOP3__V_MAX_I32(&iFmt->iFmt_VOP3A);
    } // decode_OPU_VOP3__V_MAX_I32

    GPUStaticInst*
    Decoder::decode_OPU_VOP3__V_MIN_U32(MachInst iFmt)
    {
        return new Inst_VOP3__V_MIN_U32(&iFmt->iFmt_VOP3A);
    } // decode_OPU_VOP3__V_MIN_U32

    GPUStaticInst*
    Decoder::decode_OPU_VOP3__V_MAX_U32(MachInst iFmt)
    {
        return new Inst_VOP3__V_MAX_U32(&iFmt->iFmt_VOP3A);
    } // decode_OPU_VOP3__V_MAX_U32

    GPUStaticInst*
    Decoder::decode_OPU_VOP3__V_LSHRREV_B32(MachInst iFmt)
    {
        return new Inst_VOP3__V_LSHRREV_B32(&iFmt->iFmt_VOP3A);
    } // decode_OPU_VOP3__V_LSHRREV_B32

    GPUStaticInst*
    Decoder::decode_OPU_VOP3__V_ASHRREV_I32(MachInst iFmt)
    {
        return new Inst_VOP3__V_ASHRREV_I32(&iFmt->iFmt_VOP3A);
    } // decode_OPU_VOP3__V_ASHRREV_I32

    GPUStaticInst*
    Decoder::decode_OPU_VOP3__V_LSHLREV_B32(MachInst iFmt)
    {
        return new Inst_VOP3__V_LSHLREV_B32(&iFmt->iFmt_VOP3A);
    } // decode_OPU_VOP3__V_LSHLREV_B32

    GPUStaticInst*
    Decoder::decode_OPU_VOP3__V_AND_B32(MachInst iFmt)
    {
        return new Inst_VOP3__V_AND_B32(&iFmt->iFmt_VOP3A);
    } // decode_OPU_VOP3__V_AND_B32

    GPUStaticInst*
    Decoder::decode_OPU_VOP3__V_OR_B32(MachInst iFmt)
    {
        return new Inst_VOP3__V_OR_B32(&iFmt->iFmt_VOP3A);
    } // decode_OPU_VOP3__V_OR_B32

    GPUStaticInst*
    Decoder::decode_OPU_VOP3__V_XOR_B32(MachInst iFmt)
    {
        return new Inst_VOP3__V_XOR_B32(&iFmt->iFmt_VOP3A);
    } // decode_OPU_VOP3__V_XOR_B32

    GPUStaticInst*
    Decoder::decode_OPU_VOP3__V_MAC_F32(MachInst iFmt)
    {
        return new Inst_VOP3__V_MAC_F32(&iFmt->iFmt_VOP3A);
    } // decode_OPU_VOP3__V_MAC_F32

    GPUStaticInst*
    Decoder::decode_OPU_VOP3__V_ADD_CO_U32(MachInst iFmt)
    {
        return new Inst_VOP3__V_ADD_CO_U32(&iFmt->iFmt_VOP3B);
    } // decode_OPU_VOP3__V_ADD_CO_U32

    GPUStaticInst*
    Decoder::decode_OPU_VOP3__V_SUB_CO_U32(MachInst iFmt)
    {
        return new Inst_VOP3__V_SUB_CO_U32(&iFmt->iFmt_VOP3B);
    } // decode_OPU_VOP3__V_SUB_CO_U32

    GPUStaticInst*
    Decoder::decode_OPU_VOP3__V_SUBREV_CO_U32(MachInst iFmt)
    {
        return new Inst_VOP3__V_SUBREV_CO_U32(&iFmt->iFmt_VOP3B);
    } // decode_OPU_VOP3__V_SUBREV_CO_U32

    GPUStaticInst*
    Decoder::decode_OPU_VOP3__V_ADDC_CO_U32(MachInst iFmt)
    {
        return new Inst_VOP3__V_ADDC_CO_U32(&iFmt->iFmt_VOP3B);
    } // decode_OPU_VOP3__V_ADDC_CO_U32

    GPUStaticInst*
    Decoder::decode_OPU_VOP3__V_SUBB_CO_U32(MachInst iFmt)
    {
        return new Inst_VOP3__V_SUBB_CO_U32(&iFmt->iFmt_VOP3B);
    } // decode_OPU_VOP3__V_SUBB_CO_U32

    GPUStaticInst*
    Decoder::decode_OPU_VOP3__V_SUBBREV_CO_U32(MachInst iFmt)
    {
        return new Inst_VOP3__V_SUBBREV_CO_U32(&iFmt->iFmt_VOP3B);
    } // decode_OPU_VOP3__V_SUBBREV_CO_U32

    GPUStaticInst*
    Decoder::decode_OPU_VOP3__V_ADD_F16(MachInst iFmt)
    {
        return new Inst_VOP3__V_ADD_F16(&iFmt->iFmt_VOP3A);
    } // decode_OPU_VOP3__V_ADD_F16

    GPUStaticInst*
    Decoder::decode_OPU_VOP3__V_SUB_F16(MachInst iFmt)
    {
        return new Inst_VOP3__V_SUB_F16(&iFmt->iFmt_VOP3A);
    } // decode_OPU_VOP3__V_SUB_F16

    GPUStaticInst*
    Decoder::decode_OPU_VOP3__V_SUBREV_F16(MachInst iFmt)
    {
        return new Inst_VOP3__V_SUBREV_F16(&iFmt->iFmt_VOP3A);
    } // decode_OPU_VOP3__V_SUBREV_F16

    GPUStaticInst*
    Decoder::decode_OPU_VOP3__V_MUL_F16(MachInst iFmt)
    {
        return new Inst_VOP3__V_MUL_F16(&iFmt->iFmt_VOP3A);
    } // decode_OPU_VOP3__V_MUL_F16

    GPUStaticInst*
    Decoder::decode_OPU_VOP3__V_MAC_F16(MachInst iFmt)
    {
        return new Inst_VOP3__V_MAC_F16(&iFmt->iFmt_VOP3A);
    } // decode_OPU_VOP3__V_MAC_F16

    GPUStaticInst*
    Decoder::decode_OPU_VOP3__V_ADD_U16(MachInst iFmt)
    {
        return new Inst_VOP3__V_ADD_U16(&iFmt->iFmt_VOP3A);
    } // decode_OPU_VOP3__V_ADD_U16

    GPUStaticInst*
    Decoder::decode_OPU_VOP3__V_SUB_U16(MachInst iFmt)
    {
        return new Inst_VOP3__V_SUB_U16(&iFmt->iFmt_VOP3A);
    } // decode_OPU_VOP3__V_SUB_U16

    GPUStaticInst*
    Decoder::decode_OPU_VOP3__V_SUBREV_U16(MachInst iFmt)
    {
        return new Inst_VOP3__V_SUBREV_U16(&iFmt->iFmt_VOP3A);
    } // decode_OPU_VOP3__V_SUBREV_U16

    GPUStaticInst*
    Decoder::decode_OPU_VOP3__V_MUL_LO_U16(MachInst iFmt)
    {
        return new Inst_VOP3__V_MUL_LO_U16(&iFmt->iFmt_VOP3A);
    } // decode_OPU_VOP3__V_MUL_LO_U16

    GPUStaticInst*
    Decoder::decode_OPU_VOP3__V_LSHLREV_B16(MachInst iFmt)
    {
        return new Inst_VOP3__V_LSHLREV_B16(&iFmt->iFmt_VOP3A);
    } // decode_OPU_VOP3__V_LSHLREV_B16

    GPUStaticInst*
    Decoder::decode_OPU_VOP3__V_LSHRREV_B16(MachInst iFmt)
    {
        return new Inst_VOP3__V_LSHRREV_B16(&iFmt->iFmt_VOP3A);
    } // decode_OPU_VOP3__V_LSHRREV_B16

    GPUStaticInst*
    Decoder::decode_OPU_VOP3__V_ASHRREV_I16(MachInst iFmt)
    {
        return new Inst_VOP3__V_ASHRREV_I16(&iFmt->iFmt_VOP3A);
    } // decode_OPU_VOP3__V_ASHRREV_I16

    GPUStaticInst*
    Decoder::decode_OPU_VOP3__V_MAX_F16(MachInst iFmt)
    {
        return new Inst_VOP3__V_MAX_F16(&iFmt->iFmt_VOP3A);
    } // decode_OPU_VOP3__V_MAX_F16

    GPUStaticInst*
    Decoder::decode_OPU_VOP3__V_MIN_F16(MachInst iFmt)
    {
        return new Inst_VOP3__V_MIN_F16(&iFmt->iFmt_VOP3A);
    } // decode_OPU_VOP3__V_MIN_F16

    GPUStaticInst*
    Decoder::decode_OPU_VOP3__V_MAX_U16(MachInst iFmt)
    {
        return new Inst_VOP3__V_MAX_U16(&iFmt->iFmt_VOP3A);
    } // decode_OPU_VOP3__V_MAX_U16

    GPUStaticInst*
    Decoder::decode_OPU_VOP3__V_MAX_I16(MachInst iFmt)
    {
        return new Inst_VOP3__V_MAX_I16(&iFmt->iFmt_VOP3A);
    } // decode_OPU_VOP3__V_MAX_I16

    GPUStaticInst*
    Decoder::decode_OPU_VOP3__V_MIN_U16(MachInst iFmt)
    {
        return new Inst_VOP3__V_MIN_U16(&iFmt->iFmt_VOP3A);
    } // decode_OPU_VOP3__V_MIN_U16

    GPUStaticInst*
    Decoder::decode_OPU_VOP3__V_MIN_I16(MachInst iFmt)
    {
        return new Inst_VOP3__V_MIN_I16(&iFmt->iFmt_VOP3A);
    } // decode_OPU_VOP3__V_MIN_I16

    GPUStaticInst*
    Decoder::decode_OPU_VOP3__V_LDEXP_F16(MachInst iFmt)
    {
        return new Inst_VOP3__V_LDEXP_F16(&iFmt->iFmt_VOP3A);
    } // decode_OPU_VOP3__V_LDEXP_F16

    GPUStaticInst*
    Decoder::decode_OPU_VOP3__V_ADD_U32(MachInst iFmt)
    {
        return new Inst_VOP3__V_ADD_U32(&iFmt->iFmt_VOP3A);
    } // decode_OPU_VOP3__V_ADD_U32

    GPUStaticInst*
    Decoder::decode_OPU_VOP3__V_SUB_U32(MachInst iFmt)
    {
        return new Inst_VOP3__V_SUB_U32(&iFmt->iFmt_VOP3A);
    } // decode_OPU_VOP3__V_SUB_U32

    GPUStaticInst*
    Decoder::decode_OPU_VOP3__V_SUBREV_U32(MachInst iFmt)
    {
        return new Inst_VOP3__V_SUBREV_U32(&iFmt->iFmt_VOP3A);
    } // decode_OPU_VOP3__V_SUBREV_U32

    GPUStaticInst*
    Decoder::decode_OPU_VOP3__V_NOP(MachInst iFmt)
    {
        return new Inst_VOP3__V_NOP(&iFmt->iFmt_VOP3A);
    } // decode_OPU_VOP3__V_NOP

    GPUStaticInst*
    Decoder::decode_OPU_VOP3__V_MOV_B32(MachInst iFmt)
    {
        return new Inst_VOP3__V_MOV_B32(&iFmt->iFmt_VOP3A);
    } // decode_OPU_VOP3__V_MOV_B32

    GPUStaticInst*
    Decoder::decode_OPU_VOP3__V_CVT_I32_F64(MachInst iFmt)
    {
        return new Inst_VOP3__V_CVT_I32_F64(&iFmt->iFmt_VOP3A);
    } // decode_OPU_VOP3__V_CVT_I32_F64

    GPUStaticInst*
    Decoder::decode_OPU_VOP3__V_CVT_F64_I32(MachInst iFmt)
    {
        return new Inst_VOP3__V_CVT_F64_I32(&iFmt->iFmt_VOP3A);
    } // decode_OPU_VOP3__V_CVT_F64_I32

    GPUStaticInst*
    Decoder::decode_OPU_VOP3__V_CVT_F32_I32(MachInst iFmt)
    {
        return new Inst_VOP3__V_CVT_F32_I32(&iFmt->iFmt_VOP3A);
    } // decode_OPU_VOP3__V_CVT_F32_I32

    GPUStaticInst*
    Decoder::decode_OPU_VOP3__V_CVT_F32_U32(MachInst iFmt)
    {
        return new Inst_VOP3__V_CVT_F32_U32(&iFmt->iFmt_VOP3A);
    } // decode_OPU_VOP3__V_CVT_F32_U32

    GPUStaticInst*
    Decoder::decode_OPU_VOP3__V_CVT_U32_F32(MachInst iFmt)
    {
        return new Inst_VOP3__V_CVT_U32_F32(&iFmt->iFmt_VOP3A);
    } // decode_OPU_VOP3__V_CVT_U32_F32

    GPUStaticInst*
    Decoder::decode_OPU_VOP3__V_CVT_I32_F32(MachInst iFmt)
    {
        return new Inst_VOP3__V_CVT_I32_F32(&iFmt->iFmt_VOP3A);
    } // decode_OPU_VOP3__V_CVT_I32_F32

    GPUStaticInst*
    Decoder::decode_OPU_VOP3__V_MOV_FED_B32(MachInst iFmt)
    {
        return new Inst_VOP3__V_MOV_FED_B32(&iFmt->iFmt_VOP3A);
    } // decode_OPU_VOP3__V_MOV_FED_B32

    GPUStaticInst*
    Decoder::decode_OPU_VOP3__V_CVT_F16_F32(MachInst iFmt)
    {
        return new Inst_VOP3__V_CVT_F16_F32(&iFmt->iFmt_VOP3A);
    } // decode_OPU_VOP3__V_CVT_F16_F32

    GPUStaticInst*
    Decoder::decode_OPU_VOP3__V_CVT_F32_F16(MachInst iFmt)
    {
        return new Inst_VOP3__V_CVT_F32_F16(&iFmt->iFmt_VOP3A);
    } // decode_OPU_VOP3__V_CVT_F32_F16

    GPUStaticInst*
    Decoder::decode_OPU_VOP3__V_CVT_RPI_I32_F32(MachInst iFmt)
    {
        return new Inst_VOP3__V_CVT_RPI_I32_F32(&iFmt->iFmt_VOP3A);
    } // decode_OPU_VOP3__V_CVT_RPI_I32_F32

    GPUStaticInst*
    Decoder::decode_OPU_VOP3__V_CVT_FLR_I32_F32(MachInst iFmt)
    {
        return new Inst_VOP3__V_CVT_FLR_I32_F32(&iFmt->iFmt_VOP3A);
    } // decode_OPU_VOP3__V_CVT_FLR_I32_F32

    GPUStaticInst*
    Decoder::decode_OPU_VOP3__V_CVT_OFF_F32_I4(MachInst iFmt)
    {
        return new Inst_VOP3__V_CVT_OFF_F32_I4(&iFmt->iFmt_VOP3A);
    } // decode_OPU_VOP3__V_CVT_OFF_F32_I4

    GPUStaticInst*
    Decoder::decode_OPU_VOP3__V_CVT_F32_F64(MachInst iFmt)
    {
        return new Inst_VOP3__V_CVT_F32_F64(&iFmt->iFmt_VOP3A);
    } // decode_OPU_VOP3__V_CVT_F32_F64

    GPUStaticInst*
    Decoder::decode_OPU_VOP3__V_CVT_F64_F32(MachInst iFmt)
    {
        return new Inst_VOP3__V_CVT_F64_F32(&iFmt->iFmt_VOP3A);
    } // decode_OPU_VOP3__V_CVT_F64_F32

    GPUStaticInst*
    Decoder::decode_OPU_VOP3__V_CVT_F32_UBYTE0(MachInst iFmt)
    {
        return new Inst_VOP3__V_CVT_F32_UBYTE0(&iFmt->iFmt_VOP3A);
    } // decode_OPU_VOP3__V_CVT_F32_UBYTE0

    GPUStaticInst*
    Decoder::decode_OPU_VOP3__V_CVT_F32_UBYTE1(MachInst iFmt)
    {
        return new Inst_VOP3__V_CVT_F32_UBYTE1(&iFmt->iFmt_VOP3A);
    } // decode_OPU_VOP3__V_CVT_F32_UBYTE1

    GPUStaticInst*
    Decoder::decode_OPU_VOP3__V_CVT_F32_UBYTE2(MachInst iFmt)
    {
        return new Inst_VOP3__V_CVT_F32_UBYTE2(&iFmt->iFmt_VOP3A);
    } // decode_OPU_VOP3__V_CVT_F32_UBYTE2

    GPUStaticInst*
    Decoder::decode_OPU_VOP3__V_CVT_F32_UBYTE3(MachInst iFmt)
    {
        return new Inst_VOP3__V_CVT_F32_UBYTE3(&iFmt->iFmt_VOP3A);
    } // decode_OPU_VOP3__V_CVT_F32_UBYTE3

    GPUStaticInst*
    Decoder::decode_OPU_VOP3__V_CVT_U32_F64(MachInst iFmt)
    {
        return new Inst_VOP3__V_CVT_U32_F64(&iFmt->iFmt_VOP3A);
    } // decode_OPU_VOP3__V_CVT_U32_F64

    GPUStaticInst*
    Decoder::decode_OPU_VOP3__V_CVT_F64_U32(MachInst iFmt)
    {
        return new Inst_VOP3__V_CVT_F64_U32(&iFmt->iFmt_VOP3A);
    } // decode_OPU_VOP3__V_CVT_F64_U32

    GPUStaticInst*
    Decoder::decode_OPU_VOP3__V_TRUNC_F64(MachInst iFmt)
    {
        return new Inst_VOP3__V_TRUNC_F64(&iFmt->iFmt_VOP3A);
    } // decode_OPU_VOP3__V_TRUNC_F64

    GPUStaticInst*
    Decoder::decode_OPU_VOP3__V_CEIL_F64(MachInst iFmt)
    {
        return new Inst_VOP3__V_CEIL_F64(&iFmt->iFmt_VOP3A);
    } // decode_OPU_VOP3__V_CEIL_F64

    GPUStaticInst*
    Decoder::decode_OPU_VOP3__V_RNDNE_F64(MachInst iFmt)
    {
        return new Inst_VOP3__V_RNDNE_F64(&iFmt->iFmt_VOP3A);
    } // decode_OPU_VOP3__V_RNDNE_F64

    GPUStaticInst*
    Decoder::decode_OPU_VOP3__V_FLOOR_F64(MachInst iFmt)
    {
        return new Inst_VOP3__V_FLOOR_F64(&iFmt->iFmt_VOP3A);
    } // decode_OPU_VOP3__V_FLOOR_F64

    GPUStaticInst*
    Decoder::decode_OPU_VOP3__V_FRACT_F32(MachInst iFmt)
    {
        return new Inst_VOP3__V_FRACT_F32(&iFmt->iFmt_VOP3A);
    } // decode_OPU_VOP3__V_FRACT_F32

    GPUStaticInst*
    Decoder::decode_OPU_VOP3__V_TRUNC_F32(MachInst iFmt)
    {
        return new Inst_VOP3__V_TRUNC_F32(&iFmt->iFmt_VOP3A);
    } // decode_OPU_VOP3__V_TRUNC_F32

    GPUStaticInst*
    Decoder::decode_OPU_VOP3__V_CEIL_F32(MachInst iFmt)
    {
        return new Inst_VOP3__V_CEIL_F32(&iFmt->iFmt_VOP3A);
    } // decode_OPU_VOP3__V_CEIL_F32

    GPUStaticInst*
    Decoder::decode_OPU_VOP3__V_RNDNE_F32(MachInst iFmt)
    {
        return new Inst_VOP3__V_RNDNE_F32(&iFmt->iFmt_VOP3A);
    } // decode_OPU_VOP3__V_RNDNE_F32

    GPUStaticInst*
    Decoder::decode_OPU_VOP3__V_FLOOR_F32(MachInst iFmt)
    {
        return new Inst_VOP3__V_FLOOR_F32(&iFmt->iFmt_VOP3A);
    } // decode_OPU_VOP3__V_FLOOR_F32

    GPUStaticInst*
    Decoder::decode_OPU_VOP3__V_EXP_F32(MachInst iFmt)
    {
        return new Inst_VOP3__V_EXP_F32(&iFmt->iFmt_VOP3A);
    } // decode_OPU_VOP3__V_EXP_F32

    GPUStaticInst*
    Decoder::decode_OPU_VOP3__V_LOG_F32(MachInst iFmt)
    {
        return new Inst_VOP3__V_LOG_F32(&iFmt->iFmt_VOP3A);
    } // decode_OPU_VOP3__V_LOG_F32

    GPUStaticInst*
    Decoder::decode_OPU_VOP3__V_RCP_F32(MachInst iFmt)
    {
        return new Inst_VOP3__V_RCP_F32(&iFmt->iFmt_VOP3A);
    } // decode_OPU_VOP3__V_RCP_F32

    GPUStaticInst*
    Decoder::decode_OPU_VOP3__V_RCP_IFLAG_F32(MachInst iFmt)
    {
        return new Inst_VOP3__V_RCP_IFLAG_F32(&iFmt->iFmt_VOP3A);
    } // decode_OPU_VOP3__V_RCP_IFLAG_F32

    GPUStaticInst*
    Decoder::decode_OPU_VOP3__V_RSQ_F32(MachInst iFmt)
    {
        return new Inst_VOP3__V_RSQ_F32(&iFmt->iFmt_VOP3A);
    } // decode_OPU_VOP3__V_RSQ_F32

    GPUStaticInst*
    Decoder::decode_OPU_VOP3__V_RCP_F64(MachInst iFmt)
    {
        return new Inst_VOP3__V_RCP_F64(&iFmt->iFmt_VOP3A);
    } // decode_OPU_VOP3__V_RCP_F64

    GPUStaticInst*
    Decoder::decode_OPU_VOP3__V_RSQ_F64(MachInst iFmt)
    {
        return new Inst_VOP3__V_RSQ_F64(&iFmt->iFmt_VOP3A);
    } // decode_OPU_VOP3__V_RSQ_F64

    GPUStaticInst*
    Decoder::decode_OPU_VOP3__V_SQRT_F32(MachInst iFmt)
    {
        return new Inst_VOP3__V_SQRT_F32(&iFmt->iFmt_VOP3A);
    } // decode_OPU_VOP3__V_SQRT_F32

    GPUStaticInst*
    Decoder::decode_OPU_VOP3__V_SQRT_F64(MachInst iFmt)
    {
        return new Inst_VOP3__V_SQRT_F64(&iFmt->iFmt_VOP3A);
    } // decode_OPU_VOP3__V_SQRT_F64

    GPUStaticInst*
    Decoder::decode_OPU_VOP3__V_SIN_F32(MachInst iFmt)
    {
        return new Inst_VOP3__V_SIN_F32(&iFmt->iFmt_VOP3A);
    } // decode_OPU_VOP3__V_SIN_F32

    GPUStaticInst*
    Decoder::decode_OPU_VOP3__V_COS_F32(MachInst iFmt)
    {
        return new Inst_VOP3__V_COS_F32(&iFmt->iFmt_VOP3A);
    } // decode_OPU_VOP3__V_COS_F32

    GPUStaticInst*
    Decoder::decode_OPU_VOP3__V_NOT_B32(MachInst iFmt)
    {
        return new Inst_VOP3__V_NOT_B32(&iFmt->iFmt_VOP3A);
    } // decode_OPU_VOP3__V_NOT_B32

    GPUStaticInst*
    Decoder::decode_OPU_VOP3__V_BFREV_B32(MachInst iFmt)
    {
        return new Inst_VOP3__V_BFREV_B32(&iFmt->iFmt_VOP3A);
    } // decode_OPU_VOP3__V_BFREV_B32

    GPUStaticInst*
    Decoder::decode_OPU_VOP3__V_FFBH_U32(MachInst iFmt)
    {
        return new Inst_VOP3__V_FFBH_U32(&iFmt->iFmt_VOP3A);
    } // decode_OPU_VOP3__V_FFBH_U32

    GPUStaticInst*
    Decoder::decode_OPU_VOP3__V_FFBL_B32(MachInst iFmt)
    {
        return new Inst_VOP3__V_FFBL_B32(&iFmt->iFmt_VOP3A);
    } // decode_OPU_VOP3__V_FFBL_B32

    GPUStaticInst*
    Decoder::decode_OPU_VOP3__V_FFBH_I32(MachInst iFmt)
    {
        return new Inst_VOP3__V_FFBH_I32(&iFmt->iFmt_VOP3A);
    } // decode_OPU_VOP3__V_FFBH_I32

    GPUStaticInst*
    Decoder::decode_OPU_VOP3__V_FREXP_EXP_I32_F64(MachInst iFmt)
    {
        return new Inst_VOP3__V_FREXP_EXP_I32_F64(&iFmt->iFmt_VOP3A);
    } // decode_OPU_VOP3__V_FREXP_EXP_I32_F64

    GPUStaticInst*
    Decoder::decode_OPU_VOP3__V_FREXP_MANT_F64(MachInst iFmt)
    {
        return new Inst_VOP3__V_FREXP_MANT_F64(&iFmt->iFmt_VOP3A);
    } // decode_OPU_VOP3__V_FREXP_MANT_F64

    GPUStaticInst*
    Decoder::decode_OPU_VOP3__V_FRACT_F64(MachInst iFmt)
    {
        return new Inst_VOP3__V_FRACT_F64(&iFmt->iFmt_VOP3A);
    } // decode_OPU_VOP3__V_FRACT_F64

    GPUStaticInst*
    Decoder::decode_OPU_VOP3__V_FREXP_EXP_I32_F32(MachInst iFmt)
    {
        return new Inst_VOP3__V_FREXP_EXP_I32_F32(&iFmt->iFmt_VOP3A);
    } // decode_OPU_VOP3__V_FREXP_EXP_I32_F32

    GPUStaticInst*
    Decoder::decode_OPU_VOP3__V_FREXP_MANT_F32(MachInst iFmt)
    {
        return new Inst_VOP3__V_FREXP_MANT_F32(&iFmt->iFmt_VOP3A);
    } // decode_OPU_VOP3__V_FREXP_MANT_F32

    GPUStaticInst*
    Decoder::decode_OPU_VOP3__V_CLREXCP(MachInst iFmt)
    {
        return new Inst_VOP3__V_CLREXCP(&iFmt->iFmt_VOP3A);
    } // decode_OPU_VOP3__V_CLREXCP

    GPUStaticInst*
    Decoder::decode_OPU_VOP3__V_CVT_F16_U16(MachInst iFmt)
    {
        return new Inst_VOP3__V_CVT_F16_U16(&iFmt->iFmt_VOP3A);
    } // decode_OPU_VOP3__V_CVT_F16_U16

    GPUStaticInst*
    Decoder::decode_OPU_VOP3__V_CVT_F16_I16(MachInst iFmt)
    {
        return new Inst_VOP3__V_CVT_F16_I16(&iFmt->iFmt_VOP3A);
    } // decode_OPU_VOP3__V_CVT_F16_I16

    GPUStaticInst*
    Decoder::decode_OPU_VOP3__V_CVT_U16_F16(MachInst iFmt)
    {
        return new Inst_VOP3__V_CVT_U16_F16(&iFmt->iFmt_VOP3A);
    } // decode_OPU_VOP3__V_CVT_U16_F16

    GPUStaticInst*
    Decoder::decode_OPU_VOP3__V_CVT_I16_F16(MachInst iFmt)
    {
        return new Inst_VOP3__V_CVT_I16_F16(&iFmt->iFmt_VOP3A);
    } // decode_OPU_VOP3__V_CVT_I16_F16

    GPUStaticInst*
    Decoder::decode_OPU_VOP3__V_RCP_F16(MachInst iFmt)
    {
        return new Inst_VOP3__V_RCP_F16(&iFmt->iFmt_VOP3A);
    } // decode_OPU_VOP3__V_RCP_F16

    GPUStaticInst*
    Decoder::decode_OPU_VOP3__V_SQRT_F16(MachInst iFmt)
    {
        return new Inst_VOP3__V_SQRT_F16(&iFmt->iFmt_VOP3A);
    } // decode_OPU_VOP3__V_SQRT_F16

    GPUStaticInst*
    Decoder::decode_OPU_VOP3__V_RSQ_F16(MachInst iFmt)
    {
        return new Inst_VOP3__V_RSQ_F16(&iFmt->iFmt_VOP3A);
    } // decode_OPU_VOP3__V_RSQ_F16

    GPUStaticInst*
    Decoder::decode_OPU_VOP3__V_LOG_F16(MachInst iFmt)
    {
        return new Inst_VOP3__V_LOG_F16(&iFmt->iFmt_VOP3A);
    } // decode_OPU_VOP3__V_LOG_F16

    GPUStaticInst*
    Decoder::decode_OPU_VOP3__V_EXP_F16(MachInst iFmt)
    {
        return new Inst_VOP3__V_EXP_F16(&iFmt->iFmt_VOP3A);
    } // decode_OPU_VOP3__V_EXP_F16

    GPUStaticInst*
    Decoder::decode_OPU_VOP3__V_FREXP_MANT_F16(MachInst iFmt)
    {
        return new Inst_VOP3__V_FREXP_MANT_F16(&iFmt->iFmt_VOP3A);
    } // decode_OPU_VOP3__V_FREXP_MANT_F16

    GPUStaticInst*
    Decoder::decode_OPU_VOP3__V_FREXP_EXP_I16_F16(MachInst iFmt)
    {
        return new Inst_VOP3__V_FREXP_EXP_I16_F16(&iFmt->iFmt_VOP3A);
    } // decode_OPU_VOP3__V_FREXP_EXP_I16_F16

    GPUStaticInst*
    Decoder::decode_OPU_VOP3__V_FLOOR_F16(MachInst iFmt)
    {
        return new Inst_VOP3__V_FLOOR_F16(&iFmt->iFmt_VOP3A);
    } // decode_OPU_VOP3__V_FLOOR_F16

    GPUStaticInst*
    Decoder::decode_OPU_VOP3__V_CEIL_F16(MachInst iFmt)
    {
        return new Inst_VOP3__V_CEIL_F16(&iFmt->iFmt_VOP3A);
    } // decode_OPU_VOP3__V_CEIL_F16

    GPUStaticInst*
    Decoder::decode_OPU_VOP3__V_TRUNC_F16(MachInst iFmt)
    {
        return new Inst_VOP3__V_TRUNC_F16(&iFmt->iFmt_VOP3A);
    } // decode_OPU_VOP3__V_TRUNC_F16

    GPUStaticInst*
    Decoder::decode_OPU_VOP3__V_RNDNE_F16(MachInst iFmt)
    {
        return new Inst_VOP3__V_RNDNE_F16(&iFmt->iFmt_VOP3A);
    } // decode_OPU_VOP3__V_RNDNE_F16

    GPUStaticInst*
    Decoder::decode_OPU_VOP3__V_FRACT_F16(MachInst iFmt)
    {
        return new Inst_VOP3__V_FRACT_F16(&iFmt->iFmt_VOP3A);
    } // decode_OPU_VOP3__V_FRACT_F16

    GPUStaticInst*
    Decoder::decode_OPU_VOP3__V_SIN_F16(MachInst iFmt)
    {
        return new Inst_VOP3__V_SIN_F16(&iFmt->iFmt_VOP3A);
    } // decode_OPU_VOP3__V_SIN_F16

    GPUStaticInst*
    Decoder::decode_OPU_VOP3__V_COS_F16(MachInst iFmt)
    {
        return new Inst_VOP3__V_COS_F16(&iFmt->iFmt_VOP3A);
    } // decode_OPU_VOP3__V_COS_F16

    GPUStaticInst*
    Decoder::decode_OPU_VOP3__V_EXP_LEGACY_F32(MachInst iFmt)
    {
        return new Inst_VOP3__V_EXP_LEGACY_F32(&iFmt->iFmt_VOP3A);
    } // decode_OPU_VOP3__V_EXP_LEGACY_F32

    GPUStaticInst*
    Decoder::decode_OPU_VOP3__V_LOG_LEGACY_F32(MachInst iFmt)
    {
        return new Inst_VOP3__V_LOG_LEGACY_F32(&iFmt->iFmt_VOP3A);
    } // decode_OPU_VOP3__V_LOG_LEGACY_F32

    GPUStaticInst*
    Decoder::decode_OPU_VOP3__V_MAD_LEGACY_F32(MachInst iFmt)
    {
        return new Inst_VOP3__V_MAD_LEGACY_F32(&iFmt->iFmt_VOP3A);
    } // decode_OPU_VOP3__V_MAD_LEGACY_F32

    GPUStaticInst*
    Decoder::decode_OPU_VOP3__V_MAD_F32(MachInst iFmt)
    {
        return new Inst_VOP3__V_MAD_F32(&iFmt->iFmt_VOP3A);
    } // decode_OPU_VOP3__V_MAD_F32

    GPUStaticInst*
    Decoder::decode_OPU_VOP3__V_MAD_I32_I24(MachInst iFmt)
    {
        return new Inst_VOP3__V_MAD_I32_I24(&iFmt->iFmt_VOP3A);
    } // decode_OPU_VOP3__V_MAD_I32_I24

    GPUStaticInst*
    Decoder::decode_OPU_VOP3__V_MAD_U32_U24(MachInst iFmt)
    {
        return new Inst_VOP3__V_MAD_U32_U24(&iFmt->iFmt_VOP3A);
    } // decode_OPU_VOP3__V_MAD_U32_U24

    GPUStaticInst*
    Decoder::decode_OPU_VOP3__V_CUBEID_F32(MachInst iFmt)
    {
        return new Inst_VOP3__V_CUBEID_F32(&iFmt->iFmt_VOP3A);
    } // decode_OPU_VOP3__V_CUBEID_F32

    GPUStaticInst*
    Decoder::decode_OPU_VOP3__V_CUBESC_F32(MachInst iFmt)
    {
        return new Inst_VOP3__V_CUBESC_F32(&iFmt->iFmt_VOP3A);
    } // decode_OPU_VOP3__V_CUBESC_F32

    GPUStaticInst*
    Decoder::decode_OPU_VOP3__V_CUBETC_F32(MachInst iFmt)
    {
        return new Inst_VOP3__V_CUBETC_F32(&iFmt->iFmt_VOP3A);
    } // decode_OPU_VOP3__V_CUBETC_F32

    GPUStaticInst*
    Decoder::decode_OPU_VOP3__V_CUBEMA_F32(MachInst iFmt)
    {
        return new Inst_VOP3__V_CUBEMA_F32(&iFmt->iFmt_VOP3A);
    } // decode_OPU_VOP3__V_CUBEMA_F32

    GPUStaticInst*
    Decoder::decode_OPU_VOP3__V_BFE_U32(MachInst iFmt)
    {
        return new Inst_VOP3__V_BFE_U32(&iFmt->iFmt_VOP3A);
    } // decode_OPU_VOP3__V_BFE_U32

    GPUStaticInst*
    Decoder::decode_OPU_VOP3__V_BFE_I32(MachInst iFmt)
    {
        return new Inst_VOP3__V_BFE_I32(&iFmt->iFmt_VOP3A);
    } // decode_OPU_VOP3__V_BFE_I32

    GPUStaticInst*
    Decoder::decode_OPU_VOP3__V_BFI_B32(MachInst iFmt)
    {
        return new Inst_VOP3__V_BFI_B32(&iFmt->iFmt_VOP3A);
    } // decode_OPU_VOP3__V_BFI_B32

    GPUStaticInst*
    Decoder::decode_OPU_VOP3__V_FMA_F32(MachInst iFmt)
    {
        return new Inst_VOP3__V_FMA_F32(&iFmt->iFmt_VOP3A);
    } // decode_OPU_VOP3__V_FMA_F32

    GPUStaticInst*
    Decoder::decode_OPU_VOP3__V_FMA_F64(MachInst iFmt)
    {
        return new Inst_VOP3__V_FMA_F64(&iFmt->iFmt_VOP3A);
    } // decode_OPU_VOP3__V_FMA_F64

    GPUStaticInst*
    Decoder::decode_OPU_VOP3__V_LERP_U8(MachInst iFmt)
    {
        return new Inst_VOP3__V_LERP_U8(&iFmt->iFmt_VOP3A);
    } // decode_OPU_VOP3__V_LERP_U8

    GPUStaticInst*
    Decoder::decode_OPU_VOP3__V_ALIGNBIT_B32(MachInst iFmt)
    {
        return new Inst_VOP3__V_ALIGNBIT_B32(&iFmt->iFmt_VOP3A);
    } // decode_OPU_VOP3__V_ALIGNBIT_B32

    GPUStaticInst*
    Decoder::decode_OPU_VOP3__V_ALIGNBYTE_B32(MachInst iFmt)
    {
        return new Inst_VOP3__V_ALIGNBYTE_B32(&iFmt->iFmt_VOP3A);
    } // decode_OPU_VOP3__V_ALIGNBYTE_B32

    GPUStaticInst*
    Decoder::decode_OPU_VOP3__V_MIN3_F32(MachInst iFmt)
    {
        return new Inst_VOP3__V_MIN3_F32(&iFmt->iFmt_VOP3A);
    } // decode_OPU_VOP3__V_MIN3_F32

    GPUStaticInst*
    Decoder::decode_OPU_VOP3__V_MIN3_I32(MachInst iFmt)
    {
        return new Inst_VOP3__V_MIN3_I32(&iFmt->iFmt_VOP3A);
    } // decode_OPU_VOP3__V_MIN3_I32

    GPUStaticInst*
    Decoder::decode_OPU_VOP3__V_MIN3_U32(MachInst iFmt)
    {
        return new Inst_VOP3__V_MIN3_U32(&iFmt->iFmt_VOP3A);
    } // decode_OPU_VOP3__V_MIN3_U32

    GPUStaticInst*
    Decoder::decode_OPU_VOP3__V_MAX3_F32(MachInst iFmt)
    {
        return new Inst_VOP3__V_MAX3_F32(&iFmt->iFmt_VOP3A);
    } // decode_OPU_VOP3__V_MAX3_F32

    GPUStaticInst*
    Decoder::decode_OPU_VOP3__V_MAX3_I32(MachInst iFmt)
    {
        return new Inst_VOP3__V_MAX3_I32(&iFmt->iFmt_VOP3A);
    } // decode_OPU_VOP3__V_MAX3_I32

    GPUStaticInst*
    Decoder::decode_OPU_VOP3__V_MAX3_U32(MachInst iFmt)
    {
        return new Inst_VOP3__V_MAX3_U32(&iFmt->iFmt_VOP3A);
    } // decode_OPU_VOP3__V_MAX3_U32

    GPUStaticInst*
    Decoder::decode_OPU_VOP3__V_MED3_F32(MachInst iFmt)
    {
        return new Inst_VOP3__V_MED3_F32(&iFmt->iFmt_VOP3A);
    } // decode_OPU_VOP3__V_MED3_F32

    GPUStaticInst*
    Decoder::decode_OPU_VOP3__V_MED3_I32(MachInst iFmt)
    {
        return new Inst_VOP3__V_MED3_I32(&iFmt->iFmt_VOP3A);
    } // decode_OPU_VOP3__V_MED3_I32

    GPUStaticInst*
    Decoder::decode_OPU_VOP3__V_MED3_U32(MachInst iFmt)
    {
        return new Inst_VOP3__V_MED3_U32(&iFmt->iFmt_VOP3A);
    } // decode_OPU_VOP3__V_MED3_U32

    GPUStaticInst*
    Decoder::decode_OPU_VOP3__V_SAD_U8(MachInst iFmt)
    {
        return new Inst_VOP3__V_SAD_U8(&iFmt->iFmt_VOP3A);
    } // decode_OPU_VOP3__V_SAD_U8

    GPUStaticInst*
    Decoder::decode_OPU_VOP3__V_SAD_HI_U8(MachInst iFmt)
    {
        return new Inst_VOP3__V_SAD_HI_U8(&iFmt->iFmt_VOP3A);
    } // decode_OPU_VOP3__V_SAD_HI_U8

    GPUStaticInst*
    Decoder::decode_OPU_VOP3__V_SAD_U16(MachInst iFmt)
    {
        return new Inst_VOP3__V_SAD_U16(&iFmt->iFmt_VOP3A);
    } // decode_OPU_VOP3__V_SAD_U16

    GPUStaticInst*
    Decoder::decode_OPU_VOP3__V_SAD_U32(MachInst iFmt)
    {
        return new Inst_VOP3__V_SAD_U32(&iFmt->iFmt_VOP3A);
    } // decode_OPU_VOP3__V_SAD_U32

    GPUStaticInst*
    Decoder::decode_OPU_VOP3__V_CVT_PK_U8_F32(MachInst iFmt)
    {
        return new Inst_VOP3__V_CVT_PK_U8_F32(&iFmt->iFmt_VOP3A);
    } // decode_OPU_VOP3__V_CVT_PK_U8_F32

    GPUStaticInst*
    Decoder::decode_OPU_VOP3__V_DIV_FIXUP_F32(MachInst iFmt)
    {
        return new Inst_VOP3__V_DIV_FIXUP_F32(&iFmt->iFmt_VOP3A);
    } // decode_OPU_VOP3__V_DIV_FIXUP_F32

    GPUStaticInst*
    Decoder::decode_OPU_VOP3__V_DIV_FIXUP_F64(MachInst iFmt)
    {
        return new Inst_VOP3__V_DIV_FIXUP_F64(&iFmt->iFmt_VOP3A);
    } // decode_OPU_VOP3__V_DIV_FIXUP_F64

    GPUStaticInst*
    Decoder::decode_OPU_VOP3__V_DIV_SCALE_F32(MachInst iFmt)
    {
        return new Inst_VOP3__V_DIV_SCALE_F32(&iFmt->iFmt_VOP3B);
    } // decode_OPU_VOP3__V_DIV_SCALE_F32

    GPUStaticInst*
    Decoder::decode_OPU_VOP3__V_DIV_SCALE_F64(MachInst iFmt)
    {
        return new Inst_VOP3__V_DIV_SCALE_F64(&iFmt->iFmt_VOP3B);
    } // decode_OPU_VOP3__V_DIV_SCALE_F64

    GPUStaticInst*
    Decoder::decode_OPU_VOP3__V_DIV_FMAS_F32(MachInst iFmt)
    {
        return new Inst_VOP3__V_DIV_FMAS_F32(&iFmt->iFmt_VOP3A);
    } // decode_OPU_VOP3__V_DIV_FMAS_F32

    GPUStaticInst*
    Decoder::decode_OPU_VOP3__V_DIV_FMAS_F64(MachInst iFmt)
    {
        return new Inst_VOP3__V_DIV_FMAS_F64(&iFmt->iFmt_VOP3A);
    } // decode_OPU_VOP3__V_DIV_FMAS_F64

    GPUStaticInst*
    Decoder::decode_OPU_VOP3__V_MSAD_U8(MachInst iFmt)
    {
        return new Inst_VOP3__V_MSAD_U8(&iFmt->iFmt_VOP3A);
    } // decode_OPU_VOP3__V_MSAD_U8

    GPUStaticInst*
    Decoder::decode_OPU_VOP3__V_QSAD_PK_U16_U8(MachInst iFmt)
    {
        return new Inst_VOP3__V_QSAD_PK_U16_U8(&iFmt->iFmt_VOP3A);
    } // decode_OPU_VOP3__V_QSAD_PK_U16_U8

    GPUStaticInst*
    Decoder::decode_OPU_VOP3__V_MQSAD_PK_U16_U8(MachInst iFmt)
    {
        return new Inst_VOP3__V_MQSAD_PK_U16_U8(&iFmt->iFmt_VOP3A);
    } // decode_OPU_VOP3__V_MQSAD_PK_U16_U8

    GPUStaticInst*
    Decoder::decode_OPU_VOP3__V_MQSAD_U32_U8(MachInst iFmt)
    {
        return new Inst_VOP3__V_MQSAD_U32_U8(&iFmt->iFmt_VOP3A);
    } // decode_OPU_VOP3__V_MQSAD_U32_U8

    GPUStaticInst*
    Decoder::decode_OPU_VOP3__V_MAD_U64_U32(MachInst iFmt)
    {
        return new Inst_VOP3__V_MAD_U64_U32(&iFmt->iFmt_VOP3B);
    } // decode_OPU_VOP3__V_MAD_U64_U32

    GPUStaticInst*
    Decoder::decode_OPU_VOP3__V_MAD_I64_I32(MachInst iFmt)
    {
        return new Inst_VOP3__V_MAD_I64_I32(&iFmt->iFmt_VOP3B);
    } // decode_OPU_VOP3__V_MAD_I64_I32

    GPUStaticInst*
    Decoder::decode_OPU_VOP3__V_MAD_LEGACY_F16(MachInst iFmt)
    {
        return new Inst_VOP3__V_MAD_F16(&iFmt->iFmt_VOP3A);
    } // decode_OPU_VOP3__V_MAD_LEGACY_F16

    GPUStaticInst*
    Decoder::decode_OPU_VOP3__V_MAD_LEGACY_U16(MachInst iFmt)
    {
        return new Inst_VOP3__V_MAD_U16(&iFmt->iFmt_VOP3A);
    } // decode_OPU_VOP3__V_MAD_LEGACY_U16

    GPUStaticInst*
    Decoder::decode_OPU_VOP3__V_MAD_LEGACY_I16(MachInst iFmt)
    {
        return new Inst_VOP3__V_MAD_I16(&iFmt->iFmt_VOP3A);
    } // decode_OPU_VOP3__V_MAD_LEGACY_I16

    GPUStaticInst*
    Decoder::decode_OPU_VOP3__V_PERM_B32(MachInst iFmt)
    {
        return new Inst_VOP3__V_PERM_B32(&iFmt->iFmt_VOP3A);
    } // decode_OPU_VOP3__V_PERM_B32

    GPUStaticInst*
    Decoder::decode_OPU_VOP3__V_FMA_LEGACY_F16(MachInst iFmt)
    {
        return new Inst_VOP3__V_FMA_F16(&iFmt->iFmt_VOP3A);
    } // decode_OPU_VOP3__V_FMA_LEGACY_F16

    GPUStaticInst*
    Decoder::decode_OPU_VOP3__V_DIV_FIXUP_LEGACY_F16(MachInst iFmt)
    {
        return new Inst_VOP3__V_DIV_FIXUP_F16(&iFmt->iFmt_VOP3A);
    } // decode_OPU_VOP3__V_DIV_FIXUP_LEGACY_F16

    GPUStaticInst*
    Decoder::decode_OPU_VOP3__V_CVT_PKACCUM_U8_F32(MachInst iFmt)
    {
        return new Inst_VOP3__V_CVT_PKACCUM_U8_F32(&iFmt->iFmt_VOP3A);
    } // decode_OPU_VOP3__V_CVT_PKACCUM_U8_F32

    GPUStaticInst*
    Decoder::decode_OPU_VOP3__V_MAD_U32_U16(MachInst iFmt)
    {
        fatal("Trying to decode instruction without a class\n");
        return nullptr;
    }

    GPUStaticInst*
    Decoder::decode_OPU_VOP3__V_MAD_I32_I16(MachInst iFmt)
    {
        fatal("Trying to decode instruction without a class\n");
        return nullptr;
    }

    GPUStaticInst*
    Decoder::decode_OPU_VOP3__V_XAD_U32(MachInst iFmt)
    {
        return new Inst_VOP3__V_XAD_U32(&iFmt->iFmt_VOP3A);
    }

    GPUStaticInst*
    Decoder::decode_OPU_VOP3__V_MIN3_F16(MachInst iFmt)
    {
        fatal("Trying to decode instruction without a class\n");
        return nullptr;
    }

    GPUStaticInst*
    Decoder::decode_OPU_VOP3__V_MIN3_I16(MachInst iFmt)
    {
        fatal("Trying to decode instruction without a class\n");
        return nullptr;
    }

    GPUStaticInst*
    Decoder::decode_OPU_VOP3__V_MIN3_U16(MachInst iFmt)
    {
        fatal("Trying to decode instruction without a class\n");
        return nullptr;
    }

    GPUStaticInst*
    Decoder::decode_OPU_VOP3__V_MAX3_F16(MachInst iFmt)
    {
        fatal("Trying to decode instruction without a class\n");
        return nullptr;
    }

    GPUStaticInst*
    Decoder::decode_OPU_VOP3__V_MAX3_I16(MachInst iFmt)
    {
        fatal("Trying to decode instruction without a class\n");
        return nullptr;
    }

    GPUStaticInst*
    Decoder::decode_OPU_VOP3__V_MAX3_U16(MachInst iFmt)
    {
        fatal("Trying to decode instruction without a class\n");
        return nullptr;
    }

    GPUStaticInst*
    Decoder::decode_OPU_VOP3__V_MED3_F16(MachInst iFmt)
    {
        fatal("Trying to decode instruction without a class\n");
        return nullptr;
    }

    GPUStaticInst*
    Decoder::decode_OPU_VOP3__V_MED3_I16(MachInst iFmt)
    {
        fatal("Trying to decode instruction without a class\n");
        return nullptr;
    }

    GPUStaticInst*
    Decoder::decode_OPU_VOP3__V_MED3_U16(MachInst iFmt)
    {
        fatal("Trying to decode instruction without a class\n");
        return nullptr;
    }

    GPUStaticInst*
    Decoder::decode_OPU_VOP3__V_LSHL_ADD_U32(MachInst iFmt)
    {
        return new Inst_VOP3__V_LSHL_ADD_U32(&iFmt->iFmt_VOP3A);
    }

    GPUStaticInst*
    Decoder::decode_OPU_VOP3__V_ADD_LSHL_U32(MachInst iFmt)
    {
        return new Inst_VOP3__V_ADD_LSHL_U32(&iFmt->iFmt_VOP3A);
    }

    GPUStaticInst*
    Decoder::decode_OPU_VOP3__V_ADD3_U32(MachInst iFmt)
    {
        return new Inst_VOP3__V_ADD3_U32(&iFmt->iFmt_VOP3A);
    }

    GPUStaticInst*
    Decoder::decode_OPU_VOP3__V_LSHL_OR_B32(MachInst iFmt)
    {
        return new Inst_VOP3__V_LSHL_OR_B32(&iFmt->iFmt_VOP3A);
    }

    GPUStaticInst*
    Decoder::decode_OPU_VOP3__V_AND_OR_B32(MachInst iFmt)
    {
        return new Inst_VOP3__V_AND_OR_B32(&iFmt->iFmt_VOP3A);
    }

    GPUStaticInst*
    Decoder::decode_OPU_VOP3__V_OR3_B32(MachInst iFmt)
    {
        return new Inst_VOP3__V_OR_B32(&iFmt->iFmt_VOP3A);
    }

    GPUStaticInst*
    Decoder::decode_OPU_VOP3__V_MAD_F16(MachInst iFmt)
    {
        return new Inst_VOP3__V_MAD_F16(&iFmt->iFmt_VOP3A);
    }

    GPUStaticInst*
    Decoder::decode_OPU_VOP3__V_MAD_U16(MachInst iFmt)
    {
        return new Inst_VOP3__V_MAD_U16(&iFmt->iFmt_VOP3A);
    }

    GPUStaticInst*
    Decoder::decode_OPU_VOP3__V_MAD_I16(MachInst iFmt)
    {
        return new Inst_VOP3__V_MAD_I16(&iFmt->iFmt_VOP3A);
    }

    GPUStaticInst*
    Decoder::decode_OPU_VOP3__V_FMA_F16(MachInst iFmt)
    {
        return new Inst_VOP3__V_FMA_F16(&iFmt->iFmt_VOP3A);
    }

    GPUStaticInst*
    Decoder::decode_OPU_VOP3__V_DIV_FIXUP_F16(MachInst iFmt)
    {
        return new Inst_VOP3__V_DIV_FIXUP_F16(&iFmt->iFmt_VOP3A);
    }

    GPUStaticInst*
    Decoder::decode_OPU_VOP3__V_INTERP_P1_F32(MachInst iFmt)
    {
        return new Inst_VOP3__V_INTERP_P1_F32(&iFmt->iFmt_VOP3A);
    } // decode_OPU_VOP3__V_INTERP_P1_F32

    GPUStaticInst*
    Decoder::decode_OPU_VOP3__V_INTERP_P2_F32(MachInst iFmt)
    {
        return new Inst_VOP3__V_INTERP_P2_F32(&iFmt->iFmt_VOP3A);
    } // decode_OPU_VOP3__V_INTERP_P2_F32

    GPUStaticInst*
    Decoder::decode_OPU_VOP3__V_INTERP_MOV_F32(MachInst iFmt)
    {
        return new Inst_VOP3__V_INTERP_MOV_F32(&iFmt->iFmt_VOP3A);
    } // decode_OPU_VOP3__V_INTERP_MOV_F32

    GPUStaticInst*
    Decoder::decode_OPU_VOP3__V_INTERP_P1LL_F16(MachInst iFmt)
    {
        return new Inst_VOP3__V_INTERP_P1LL_F16(&iFmt->iFmt_VOP3A);
    } // decode_OPU_VOP3__V_INTERP_P1LL_F16

    GPUStaticInst*
    Decoder::decode_OPU_VOP3__V_INTERP_P1LV_F16(MachInst iFmt)
    {
        return new Inst_VOP3__V_INTERP_P1LV_F16(&iFmt->iFmt_VOP3A);
    } // decode_OPU_VOP3__V_INTERP_P1LV_F16

    GPUStaticInst*
    Decoder::decode_OPU_VOP3__V_INTERP_P2_LEGACY_F16(MachInst iFmt)
    {
        fatal("Trying to decode instruction without a class\n");
        return nullptr;
    }

    GPUStaticInst*
    Decoder::decode_OPU_VOP3__V_INTERP_P2_F16(MachInst iFmt)
    {
        return new Inst_VOP3__V_INTERP_P2_F16(&iFmt->iFmt_VOP3A);
    } // decode_OPU_VOP3__V_INTERP_P2_F16

    GPUStaticInst*
    Decoder::decode_OPU_VOP3__V_ADD_F64(MachInst iFmt)
    {
        return new Inst_VOP3__V_ADD_F64(&iFmt->iFmt_VOP3A);
    } // decode_OPU_VOP3__V_ADD_F64

    GPUStaticInst*
    Decoder::decode_OPU_VOP3__V_MUL_F64(MachInst iFmt)
    {
        return new Inst_VOP3__V_MUL_F64(&iFmt->iFmt_VOP3A);
    } // decode_OPU_VOP3__V_MUL_F64

    GPUStaticInst*
    Decoder::decode_OPU_VOP3__V_MIN_F64(MachInst iFmt)
    {
        return new Inst_VOP3__V_MIN_F64(&iFmt->iFmt_VOP3A);
    } // decode_OPU_VOP3__V_MIN_F64

    GPUStaticInst*
    Decoder::decode_OPU_VOP3__V_MAX_F64(MachInst iFmt)
    {
        return new Inst_VOP3__V_MAX_F64(&iFmt->iFmt_VOP3A);
    } // decode_OPU_VOP3__V_MAX_F64

    GPUStaticInst*
    Decoder::decode_OPU_VOP3__V_LDEXP_F64(MachInst iFmt)
    {
        return new Inst_VOP3__V_LDEXP_F64(&iFmt->iFmt_VOP3A);
    } // decode_OPU_VOP3__V_LDEXP_F64

    GPUStaticInst*
    Decoder::decode_OPU_VOP3__V_MUL_LO_U32(MachInst iFmt)
    {
        return new Inst_VOP3__V_MUL_LO_U32(&iFmt->iFmt_VOP3A);
    } // decode_OPU_VOP3__V_MUL_LO_U32

    GPUStaticInst*
    Decoder::decode_OPU_VOP3__V_MUL_HI_U32(MachInst iFmt)
    {
        return new Inst_VOP3__V_MUL_HI_U32(&iFmt->iFmt_VOP3A);
    } // decode_OPU_VOP3__V_MUL_HI_U32

    GPUStaticInst*
    Decoder::decode_OPU_VOP3__V_MUL_HI_I32(MachInst iFmt)
    {
        return new Inst_VOP3__V_MUL_HI_I32(&iFmt->iFmt_VOP3A);
    } // decode_OPU_VOP3__V_MUL_HI_I32

    GPUStaticInst*
    Decoder::decode_OPU_VOP3__V_LDEXP_F32(MachInst iFmt)
    {
        return new Inst_VOP3__V_LDEXP_F32(&iFmt->iFmt_VOP3A);
    } // decode_OPU_VOP3__V_LDEXP_F32

    GPUStaticInst*
    Decoder::decode_OPU_VOP3__V_READLANE_B32(MachInst iFmt)
    {
        return new Inst_VOP3__V_READLANE_B32(&iFmt->iFmt_VOP3A);
    } // decode_OPU_VOP3__V_READLANE_B32

    GPUStaticInst*
    Decoder::decode_OPU_VOP3__V_WRITELANE_B32(MachInst iFmt)
    {
        return new Inst_VOP3__V_WRITELANE_B32(&iFmt->iFmt_VOP3A);
    } // decode_OPU_VOP3__V_WRITELANE_B32

    GPUStaticInst*
    Decoder::decode_OPU_VOP3__V_BCNT_U32_B32(MachInst iFmt)
    {
        return new Inst_VOP3__V_BCNT_U32_B32(&iFmt->iFmt_VOP3A);
    } // decode_OPU_VOP3__V_BCNT_U32_B32

    GPUStaticInst*
    Decoder::decode_OPU_VOP3__V_MBCNT_LO_U32_B32(MachInst iFmt)
    {
        return new Inst_VOP3__V_MBCNT_LO_U32_B32(&iFmt->iFmt_VOP3A);
    } // decode_OPU_VOP3__V_MBCNT_LO_U32_B32

    GPUStaticInst*
    Decoder::decode_OPU_VOP3__V_MBCNT_HI_U32_B32(MachInst iFmt)
    {
        return new Inst_VOP3__V_MBCNT_HI_U32_B32(&iFmt->iFmt_VOP3A);
    } // decode_OPU_VOP3__V_MBCNT_HI_U32_B32

    GPUStaticInst*
    Decoder::decode_OPU_VOP3__V_LSHLREV_B64(MachInst iFmt)
    {
        return new Inst_VOP3__V_LSHLREV_B64(&iFmt->iFmt_VOP3A);
    } // decode_OPU_VOP3__V_LSHLREV_B64

    GPUStaticInst*
    Decoder::decode_OPU_VOP3__V_LSHRREV_B64(MachInst iFmt)
    {
        return new Inst_VOP3__V_LSHRREV_B64(&iFmt->iFmt_VOP3A);
    } // decode_OPU_VOP3__V_LSHRREV_B64

    GPUStaticInst*
    Decoder::decode_OPU_VOP3__V_ASHRREV_I64(MachInst iFmt)
    {
        return new Inst_VOP3__V_ASHRREV_I64(&iFmt->iFmt_VOP3A);
    } // decode_OPU_VOP3__V_ASHRREV_I64

    GPUStaticInst*
    Decoder::decode_OPU_VOP3__V_TRIG_PREOP_F64(MachInst iFmt)
    {
        return new Inst_VOP3__V_TRIG_PREOP_F64(&iFmt->iFmt_VOP3A);
    } // decode_OPU_VOP3__V_TRIG_PREOP_F64

    GPUStaticInst*
    Decoder::decode_OPU_VOP3__V_BFM_B32(MachInst iFmt)
    {
        return new Inst_VOP3__V_BFM_B32(&iFmt->iFmt_VOP3A);
    } // decode_OPU_VOP3__V_BFM_B32

    GPUStaticInst*
    Decoder::decode_OPU_VOP3__V_CVT_PKNORM_I16_F32(MachInst iFmt)
    {
        return new Inst_VOP3__V_CVT_PKNORM_I16_F32(&iFmt->iFmt_VOP3A);
    } // decode_OPU_VOP3__V_CVT_PKNORM_I16_F32

    GPUStaticInst*
    Decoder::decode_OPU_VOP3__V_CVT_PKNORM_U16_F32(MachInst iFmt)
    {
        return new Inst_VOP3__V_CVT_PKNORM_U16_F32(&iFmt->iFmt_VOP3A);
    } // decode_OPU_VOP3__V_CVT_PKNORM_U16_F32

    GPUStaticInst*
    Decoder::decode_OPU_VOP3__V_CVT_PKRTZ_F16_F32(MachInst iFmt)
    {
        return new Inst_VOP3__V_CVT_PKRTZ_F16_F32(&iFmt->iFmt_VOP3A);
    } // decode_OPU_VOP3__V_CVT_PKRTZ_F16_F32

    GPUStaticInst*
    Decoder::decode_OPU_VOP3__V_CVT_PK_U16_U32(MachInst iFmt)
    {
        return new Inst_VOP3__V_CVT_PK_U16_U32(&iFmt->iFmt_VOP3A);
    } // decode_OPU_VOP3__V_CVT_PK_U16_U32

    GPUStaticInst*
    Decoder::decode_OPU_VOP3__V_CVT_PK_I16_I32(MachInst iFmt)
    {
        return new Inst_VOP3__V_CVT_PK_I16_I32(&iFmt->iFmt_VOP3A);
    } // decode_OPU_VOP3__V_CVT_PK_I16_I32

    GPUStaticInst*
    Decoder::decode_OPU_VOP3__V_PKNORM_I16_F16(MachInst iFmt)
    {
        fatal("Trying to decode instruction without a class\n");
        return nullptr;
    }

    GPUStaticInst*
    Decoder::decode_OPU_VOP3__V_PKNORM_U16_F16(MachInst iFmt)
    {
        fatal("Trying to decode instruction without a class\n");
        return nullptr;
    }

    GPUStaticInst*
    Decoder::decode_OPU_VOP3__V_ADD_I32(MachInst iFmt)
    {
        fatal("Trying to decode instruction without a class\n");
        return nullptr;
    }

    GPUStaticInst*
    Decoder::decode_OPU_VOP3__V_SUB_I32(MachInst iFmt)
    {
        fatal("Trying to decode instruction without a class\n");
        return nullptr;
    }

    GPUStaticInst*
    Decoder::decode_OPU_VOP3__V_ADD_I16(MachInst iFmt)
    {
        fatal("Trying to decode instruction without a class\n");
        return nullptr;
    }

    GPUStaticInst*
    Decoder::decode_OPU_VOP3__V_SUB_I16(MachInst iFmt)
    {
        fatal("Trying to decode instruction without a class\n");
        return nullptr;
    }

    GPUStaticInst*
    Decoder::decode_OPU_VOP3__V_PACK_B32_F16(MachInst iFmt)
    {
        fatal("Trying to decode instruction without a class\n");
        return nullptr;
    }

    GPUStaticInst*
    Decoder::decode_OP_DS__DS_ADD_U32(MachInst iFmt)
    {
        return new Inst_DS__DS_ADD_U32(&iFmt->iFmt_DS);
    } // decode_OP_DS__DS_ADD_U32

    GPUStaticInst*
    Decoder::decode_OP_DS__DS_SUB_U32(MachInst iFmt)
    {
        return new Inst_DS__DS_SUB_U32(&iFmt->iFmt_DS);
    } // decode_OP_DS__DS_SUB_U32

    GPUStaticInst*
    Decoder::decode_OP_DS__DS_RSUB_U32(MachInst iFmt)
    {
        return new Inst_DS__DS_RSUB_U32(&iFmt->iFmt_DS);
    } // decode_OP_DS__DS_RSUB_U32

    GPUStaticInst*
    Decoder::decode_OP_DS__DS_INC_U32(MachInst iFmt)
    {
        return new Inst_DS__DS_INC_U32(&iFmt->iFmt_DS);
    } // decode_OP_DS__DS_INC_U32

    GPUStaticInst*
    Decoder::decode_OP_DS__DS_DEC_U32(MachInst iFmt)
    {
        return new Inst_DS__DS_DEC_U32(&iFmt->iFmt_DS);
    } // decode_OP_DS__DS_DEC_U32

    GPUStaticInst*
    Decoder::decode_OP_DS__DS_MIN_I32(MachInst iFmt)
    {
        return new Inst_DS__DS_MIN_I32(&iFmt->iFmt_DS);
    } // decode_OP_DS__DS_MIN_I32

    GPUStaticInst*
    Decoder::decode_OP_DS__DS_MAX_I32(MachInst iFmt)
    {
        return new Inst_DS__DS_MAX_I32(&iFmt->iFmt_DS);
    } // decode_OP_DS__DS_MAX_I32

    GPUStaticInst*
    Decoder::decode_OP_DS__DS_MIN_U32(MachInst iFmt)
    {
        return new Inst_DS__DS_MIN_U32(&iFmt->iFmt_DS);
    } // decode_OP_DS__DS_MIN_U32

    GPUStaticInst*
    Decoder::decode_OP_DS__DS_MAX_U32(MachInst iFmt)
    {
        return new Inst_DS__DS_MAX_U32(&iFmt->iFmt_DS);
    } // decode_OP_DS__DS_MAX_U32

    GPUStaticInst*
    Decoder::decode_OP_DS__DS_AND_B32(MachInst iFmt)
    {
        return new Inst_DS__DS_AND_B32(&iFmt->iFmt_DS);
    } // decode_OP_DS__DS_AND_B32

    GPUStaticInst*
    Decoder::decode_OP_DS__DS_OR_B32(MachInst iFmt)
    {
        return new Inst_DS__DS_OR_B32(&iFmt->iFmt_DS);
    } // decode_OP_DS__DS_OR_B32

    GPUStaticInst*
    Decoder::decode_OP_DS__DS_XOR_B32(MachInst iFmt)
    {
        return new Inst_DS__DS_XOR_B32(&iFmt->iFmt_DS);
    } // decode_OP_DS__DS_XOR_B32

    GPUStaticInst*
    Decoder::decode_OP_DS__DS_MSKOR_B32(MachInst iFmt)
    {
        return new Inst_DS__DS_MSKOR_B32(&iFmt->iFmt_DS);
    } // decode_OP_DS__DS_MSKOR_B32

    GPUStaticInst*
    Decoder::decode_OP_DS__DS_WRITE_B32(MachInst iFmt)
    {
        return new Inst_DS__DS_WRITE_B32(&iFmt->iFmt_DS);
    } // decode_OP_DS__DS_WRITE_B32

    GPUStaticInst*
    Decoder::decode_OP_DS__DS_WRITE2_B32(MachInst iFmt)
    {
        return new Inst_DS__DS_WRITE2_B32(&iFmt->iFmt_DS);
    } // decode_OP_DS__DS_WRITE2_B32

    GPUStaticInst*
    Decoder::decode_OP_DS__DS_WRITE2ST64_B32(MachInst iFmt)
    {
        return new Inst_DS__DS_WRITE2ST64_B32(&iFmt->iFmt_DS);
    } // decode_OP_DS__DS_WRITE2ST64_B32

    GPUStaticInst*
    Decoder::decode_OP_DS__DS_CMPST_B32(MachInst iFmt)
    {
        return new Inst_DS__DS_CMPST_B32(&iFmt->iFmt_DS);
    } // decode_OP_DS__DS_CMPST_B32

    GPUStaticInst*
    Decoder::decode_OP_DS__DS_CMPST_F32(MachInst iFmt)
    {
        return new Inst_DS__DS_CMPST_F32(&iFmt->iFmt_DS);
    } // decode_OP_DS__DS_CMPST_F32

    GPUStaticInst*
    Decoder::decode_OP_DS__DS_MIN_F32(MachInst iFmt)
    {
        return new Inst_DS__DS_MIN_F32(&iFmt->iFmt_DS);
    } // decode_OP_DS__DS_MIN_F32

    GPUStaticInst*
    Decoder::decode_OP_DS__DS_MAX_F32(MachInst iFmt)
    {
        return new Inst_DS__DS_MAX_F32(&iFmt->iFmt_DS);
    } // decode_OP_DS__DS_MAX_F32

    GPUStaticInst*
    Decoder::decode_OP_DS__DS_NOP(MachInst iFmt)
    {
        return new Inst_DS__DS_NOP(&iFmt->iFmt_DS);
    } // decode_OP_DS__DS_NOP

    GPUStaticInst*
    Decoder::decode_OP_DS__DS_ADD_F32(MachInst iFmt)
    {
        return new Inst_DS__DS_ADD_F32(&iFmt->iFmt_DS);
    } // decode_OP_DS__DS_ADD_F32

    GPUStaticInst*
    Decoder::decode_OP_DS__DS_WRITE_ADDTID_B32(MachInst iFmt)
    {
        fatal("Trying to decode instruction without a class\n");
        return nullptr;
    }

    GPUStaticInst*
    Decoder::decode_OP_DS__DS_WRITE_B8(MachInst iFmt)
    {
        return new Inst_DS__DS_WRITE_B8(&iFmt->iFmt_DS);
    } // decode_OP_DS__DS_WRITE_B8

    GPUStaticInst*
    Decoder::decode_OP_DS__DS_WRITE_B16(MachInst iFmt)
    {
        return new Inst_DS__DS_WRITE_B16(&iFmt->iFmt_DS);
    } // decode_OP_DS__DS_WRITE_B16

    GPUStaticInst*
    Decoder::decode_OP_DS__DS_ADD_RTN_U32(MachInst iFmt)
    {
        return new Inst_DS__DS_ADD_RTN_U32(&iFmt->iFmt_DS);
    } // decode_OP_DS__DS_ADD_RTN_U32

    GPUStaticInst*
    Decoder::decode_OP_DS__DS_SUB_RTN_U32(MachInst iFmt)
    {
        return new Inst_DS__DS_SUB_RTN_U32(&iFmt->iFmt_DS);
    } // decode_OP_DS__DS_SUB_RTN_U32

    GPUStaticInst*
    Decoder::decode_OP_DS__DS_RSUB_RTN_U32(MachInst iFmt)
    {
        return new Inst_DS__DS_RSUB_RTN_U32(&iFmt->iFmt_DS);
    } // decode_OP_DS__DS_RSUB_RTN_U32

    GPUStaticInst*
    Decoder::decode_OP_DS__DS_INC_RTN_U32(MachInst iFmt)
    {
        return new Inst_DS__DS_INC_RTN_U32(&iFmt->iFmt_DS);
    } // decode_OP_DS__DS_INC_RTN_U32

    GPUStaticInst*
    Decoder::decode_OP_DS__DS_DEC_RTN_U32(MachInst iFmt)
    {
        return new Inst_DS__DS_DEC_RTN_U32(&iFmt->iFmt_DS);
    } // decode_OP_DS__DS_DEC_RTN_U32

    GPUStaticInst*
    Decoder::decode_OP_DS__DS_MIN_RTN_I32(MachInst iFmt)
    {
        return new Inst_DS__DS_MIN_RTN_I32(&iFmt->iFmt_DS);
    } // decode_OP_DS__DS_MIN_RTN_I32

    GPUStaticInst*
    Decoder::decode_OP_DS__DS_MAX_RTN_I32(MachInst iFmt)
    {
        return new Inst_DS__DS_MAX_RTN_I32(&iFmt->iFmt_DS);
    } // decode_OP_DS__DS_MAX_RTN_I32

    GPUStaticInst*
    Decoder::decode_OP_DS__DS_MIN_RTN_U32(MachInst iFmt)
    {
        return new Inst_DS__DS_MIN_RTN_U32(&iFmt->iFmt_DS);
    } // decode_OP_DS__DS_MIN_RTN_U32

    GPUStaticInst*
    Decoder::decode_OP_DS__DS_MAX_RTN_U32(MachInst iFmt)
    {
        return new Inst_DS__DS_MAX_RTN_U32(&iFmt->iFmt_DS);
    } // decode_OP_DS__DS_MAX_RTN_U32

    GPUStaticInst*
    Decoder::decode_OP_DS__DS_AND_RTN_B32(MachInst iFmt)
    {
        return new Inst_DS__DS_AND_RTN_B32(&iFmt->iFmt_DS);
    } // decode_OP_DS__DS_AND_RTN_B32

    GPUStaticInst*
    Decoder::decode_OP_DS__DS_OR_RTN_B32(MachInst iFmt)
    {
        return new Inst_DS__DS_OR_RTN_B32(&iFmt->iFmt_DS);
    } // decode_OP_DS__DS_OR_RTN_B32

    GPUStaticInst*
    Decoder::decode_OP_DS__DS_XOR_RTN_B32(MachInst iFmt)
    {
        return new Inst_DS__DS_XOR_RTN_B32(&iFmt->iFmt_DS);
    } // decode_OP_DS__DS_XOR_RTN_B32

    GPUStaticInst*
    Decoder::decode_OP_DS__DS_MSKOR_RTN_B32(MachInst iFmt)
    {
        return new Inst_DS__DS_MSKOR_RTN_B32(&iFmt->iFmt_DS);
    } // decode_OP_DS__DS_MSKOR_RTN_B32

    GPUStaticInst*
    Decoder::decode_OP_DS__DS_WRXCHG_RTN_B32(MachInst iFmt)
    {
        return new Inst_DS__DS_WRXCHG_RTN_B32(&iFmt->iFmt_DS);
    } // decode_OP_DS__DS_WRXCHG_RTN_B32

    GPUStaticInst*
    Decoder::decode_OP_DS__DS_WRXCHG2_RTN_B32(MachInst iFmt)
    {
        return new Inst_DS__DS_WRXCHG2_RTN_B32(&iFmt->iFmt_DS);
    } // decode_OP_DS__DS_WRXCHG2_RTN_B32

    GPUStaticInst*
    Decoder::decode_OP_DS__DS_WRXCHG2ST64_RTN_B32(MachInst iFmt)
    {
        return new Inst_DS__DS_WRXCHG2ST64_RTN_B32(&iFmt->iFmt_DS);
    } // decode_OP_DS__DS_WRXCHG2ST64_RTN_B32

    GPUStaticInst*
    Decoder::decode_OP_DS__DS_CMPST_RTN_B32(MachInst iFmt)
    {
        return new Inst_DS__DS_CMPST_RTN_B32(&iFmt->iFmt_DS);
    } // decode_OP_DS__DS_CMPST_RTN_B32

    GPUStaticInst*
    Decoder::decode_OP_DS__DS_CMPST_RTN_F32(MachInst iFmt)
    {
        return new Inst_DS__DS_CMPST_RTN_F32(&iFmt->iFmt_DS);
    } // decode_OP_DS__DS_CMPST_RTN_F32

    GPUStaticInst*
    Decoder::decode_OP_DS__DS_MIN_RTN_F32(MachInst iFmt)
    {
        return new Inst_DS__DS_MIN_RTN_F32(&iFmt->iFmt_DS);
    } // decode_OP_DS__DS_MIN_RTN_F32

    GPUStaticInst*
    Decoder::decode_OP_DS__DS_MAX_RTN_F32(MachInst iFmt)
    {
        return new Inst_DS__DS_MAX_RTN_F32(&iFmt->iFmt_DS);
    } // decode_OP_DS__DS_MAX_RTN_F32

    GPUStaticInst*
    Decoder::decode_OP_DS__DS_WRAP_RTN_B32(MachInst iFmt)
    {
        return new Inst_DS__DS_WRAP_RTN_B32(&iFmt->iFmt_DS);
    } // decode_OP_DS__DS_WRAP_RTN_B32

    GPUStaticInst*
    Decoder::decode_OP_DS__DS_ADD_RTN_F32(MachInst iFmt)
    {
        return new Inst_DS__DS_ADD_RTN_F32(&iFmt->iFmt_DS);
    } // decode_OP_DS__DS_ADD_RTN_F32

    GPUStaticInst*
    Decoder::decode_OP_DS__DS_READ_B32(MachInst iFmt)
    {
        return new Inst_DS__DS_READ_B32(&iFmt->iFmt_DS);
    } // decode_OP_DS__DS_READ_B32

    GPUStaticInst*
    Decoder::decode_OP_DS__DS_READ2_B32(MachInst iFmt)
    {
        return new Inst_DS__DS_READ2_B32(&iFmt->iFmt_DS);
    } // decode_OP_DS__DS_READ2_B32

    GPUStaticInst*
    Decoder::decode_OP_DS__DS_READ2ST64_B32(MachInst iFmt)
    {
        return new Inst_DS__DS_READ2ST64_B32(&iFmt->iFmt_DS);
    } // decode_OP_DS__DS_READ2ST64_B32

    GPUStaticInst*
    Decoder::decode_OP_DS__DS_READ_I8(MachInst iFmt)
    {
        return new Inst_DS__DS_READ_I8(&iFmt->iFmt_DS);
    } // decode_OP_DS__DS_READ_I8

    GPUStaticInst*
    Decoder::decode_OP_DS__DS_READ_U8(MachInst iFmt)
    {
        return new Inst_DS__DS_READ_U8(&iFmt->iFmt_DS);
    } // decode_OP_DS__DS_READ_U8

    GPUStaticInst*
    Decoder::decode_OP_DS__DS_READ_I16(MachInst iFmt)
    {
        return new Inst_DS__DS_READ_I16(&iFmt->iFmt_DS);
    } // decode_OP_DS__DS_READ_I16

    GPUStaticInst*
    Decoder::decode_OP_DS__DS_READ_U16(MachInst iFmt)
    {
        return new Inst_DS__DS_READ_U16(&iFmt->iFmt_DS);
    } // decode_OP_DS__DS_READ_U16

    GPUStaticInst*
    Decoder::decode_OP_DS__DS_SWIZZLE_B32(MachInst iFmt)
    {
        return new Inst_DS__DS_SWIZZLE_B32(&iFmt->iFmt_DS);
    } // decode_OP_DS__DS_SWIZZLE_B32

    GPUStaticInst*
    Decoder::decode_OP_DS__DS_PERMUTE_B32(MachInst iFmt)
    {
        return new Inst_DS__DS_PERMUTE_B32(&iFmt->iFmt_DS);
    } // decode_OP_DS__DS_PERMUTE_B32

    GPUStaticInst*
    Decoder::decode_OP_DS__DS_BPERMUTE_B32(MachInst iFmt)
    {
        return new Inst_DS__DS_BPERMUTE_B32(&iFmt->iFmt_DS);
    } // decode_OP_DS__DS_BPERMUTE_B32

    GPUStaticInst*
    Decoder::decode_OP_DS__DS_ADD_U64(MachInst iFmt)
    {
        return new Inst_DS__DS_ADD_U64(&iFmt->iFmt_DS);
    } // decode_OP_DS__DS_ADD_U64

    GPUStaticInst*
    Decoder::decode_OP_DS__DS_SUB_U64(MachInst iFmt)
    {
        return new Inst_DS__DS_SUB_U64(&iFmt->iFmt_DS);
    } // decode_OP_DS__DS_SUB_U64

    GPUStaticInst*
    Decoder::decode_OP_DS__DS_RSUB_U64(MachInst iFmt)
    {
        return new Inst_DS__DS_RSUB_U64(&iFmt->iFmt_DS);
    } // decode_OP_DS__DS_RSUB_U64

    GPUStaticInst*
    Decoder::decode_OP_DS__DS_INC_U64(MachInst iFmt)
    {
        return new Inst_DS__DS_INC_U64(&iFmt->iFmt_DS);
    } // decode_OP_DS__DS_INC_U64

    GPUStaticInst*
    Decoder::decode_OP_DS__DS_DEC_U64(MachInst iFmt)
    {
        return new Inst_DS__DS_DEC_U64(&iFmt->iFmt_DS);
    } // decode_OP_DS__DS_DEC_U64

    GPUStaticInst*
    Decoder::decode_OP_DS__DS_MIN_I64(MachInst iFmt)
    {
        return new Inst_DS__DS_MIN_I64(&iFmt->iFmt_DS);
    } // decode_OP_DS__DS_MIN_I64

    GPUStaticInst*
    Decoder::decode_OP_DS__DS_MAX_I64(MachInst iFmt)
    {
        return new Inst_DS__DS_MAX_I64(&iFmt->iFmt_DS);
    } // decode_OP_DS__DS_MAX_I64

    GPUStaticInst*
    Decoder::decode_OP_DS__DS_MIN_U64(MachInst iFmt)
    {
        return new Inst_DS__DS_MIN_U64(&iFmt->iFmt_DS);
    } // decode_OP_DS__DS_MIN_U64

    GPUStaticInst*
    Decoder::decode_OP_DS__DS_MAX_U64(MachInst iFmt)
    {
        return new Inst_DS__DS_MAX_U64(&iFmt->iFmt_DS);
    } // decode_OP_DS__DS_MAX_U64

    GPUStaticInst*
    Decoder::decode_OP_DS__DS_AND_B64(MachInst iFmt)
    {
        return new Inst_DS__DS_AND_B64(&iFmt->iFmt_DS);
    } // decode_OP_DS__DS_AND_B64

    GPUStaticInst*
    Decoder::decode_OP_DS__DS_OR_B64(MachInst iFmt)
    {
        return new Inst_DS__DS_OR_B64(&iFmt->iFmt_DS);
    } // decode_OP_DS__DS_OR_B64

    GPUStaticInst*
    Decoder::decode_OP_DS__DS_XOR_B64(MachInst iFmt)
    {
        return new Inst_DS__DS_XOR_B64(&iFmt->iFmt_DS);
    } // decode_OP_DS__DS_XOR_B64

    GPUStaticInst*
    Decoder::decode_OP_DS__DS_MSKOR_B64(MachInst iFmt)
    {
        return new Inst_DS__DS_MSKOR_B64(&iFmt->iFmt_DS);
    } // decode_OP_DS__DS_MSKOR_B64

    GPUStaticInst*
    Decoder::decode_OP_DS__DS_WRITE_B64(MachInst iFmt)
    {
        return new Inst_DS__DS_WRITE_B64(&iFmt->iFmt_DS);
    } // decode_OP_DS__DS_WRITE_B64

    GPUStaticInst*
    Decoder::decode_OP_DS__DS_WRITE2_B64(MachInst iFmt)
    {
        return new Inst_DS__DS_WRITE2_B64(&iFmt->iFmt_DS);
    } // decode_OP_DS__DS_WRITE2_B64

    GPUStaticInst*
    Decoder::decode_OP_DS__DS_WRITE2ST64_B64(MachInst iFmt)
    {
        return new Inst_DS__DS_WRITE2ST64_B64(&iFmt->iFmt_DS);
    } // decode_OP_DS__DS_WRITE2ST64_B64

    GPUStaticInst*
    Decoder::decode_OP_DS__DS_CMPST_B64(MachInst iFmt)
    {
        return new Inst_DS__DS_CMPST_B64(&iFmt->iFmt_DS);
    } // decode_OP_DS__DS_CMPST_B64

    GPUStaticInst*
    Decoder::decode_OP_DS__DS_CMPST_F64(MachInst iFmt)
    {
        return new Inst_DS__DS_CMPST_F64(&iFmt->iFmt_DS);
    } // decode_OP_DS__DS_CMPST_F64

    GPUStaticInst*
    Decoder::decode_OP_DS__DS_MIN_F64(MachInst iFmt)
    {
        return new Inst_DS__DS_MIN_F64(&iFmt->iFmt_DS);
    } // decode_OP_DS__DS_MIN_F64

    GPUStaticInst*
    Decoder::decode_OP_DS__DS_MAX_F64(MachInst iFmt)
    {
        return new Inst_DS__DS_MAX_F64(&iFmt->iFmt_DS);
    } // decode_OP_DS__DS_MAX_F64

    GPUStaticInst*
    Decoder::decode_OP_DS__DS_WRITE_B8_D16_HI(MachInst iFmt)
    {
        fatal("Trying to decode instruction without a class\n");
        return nullptr;
    }

    GPUStaticInst*
    Decoder::decode_OP_DS__DS_WRITE_B16_D16_HI(MachInst iFmt)
    {
        fatal("Trying to decode instruction without a class\n");
        return nullptr;
    }

    GPUStaticInst*
    Decoder::decode_OP_DS__DS_READ_U8_D16(MachInst iFmt)
    {
        fatal("Trying to decode instruction without a class\n");
        return nullptr;
    }

    GPUStaticInst*
    Decoder::decode_OP_DS__DS_READ_U8_D16_HI(MachInst iFmt)
    {
        fatal("Trying to decode instruction without a class\n");
        return nullptr;
    }

    GPUStaticInst*
    Decoder::decode_OP_DS__DS_READ_I8_D16(MachInst iFmt)
    {
        fatal("Trying to decode instruction without a class\n");
        return nullptr;
    }

    GPUStaticInst*
    Decoder::decode_OP_DS__DS_READ_I8_D16_HI(MachInst iFmt)
    {
        fatal("Trying to decode instruction without a class\n");
        return nullptr;
    }

    GPUStaticInst*
    Decoder::decode_OP_DS__DS_READ_U16_D16(MachInst iFmt)
    {
        fatal("Trying to decode instruction without a class\n");
        return nullptr;
    }

    GPUStaticInst*
    Decoder::decode_OP_DS__DS_READ_U16_D16_HI(MachInst iFmt)
    {
        fatal("Trying to decode instruction without a class\n");
        return nullptr;
    }

    GPUStaticInst*
    Decoder::decode_OP_DS__DS_ADD_RTN_U64(MachInst iFmt)
    {
        return new Inst_DS__DS_ADD_RTN_U64(&iFmt->iFmt_DS);
    } // decode_OP_DS__DS_ADD_RTN_U64

    GPUStaticInst*
    Decoder::decode_OP_DS__DS_SUB_RTN_U64(MachInst iFmt)
    {
        return new Inst_DS__DS_SUB_RTN_U64(&iFmt->iFmt_DS);
    } // decode_OP_DS__DS_SUB_RTN_U64

    GPUStaticInst*
    Decoder::decode_OP_DS__DS_RSUB_RTN_U64(MachInst iFmt)
    {
        return new Inst_DS__DS_RSUB_RTN_U64(&iFmt->iFmt_DS);
    } // decode_OP_DS__DS_RSUB_RTN_U64

    GPUStaticInst*
    Decoder::decode_OP_DS__DS_INC_RTN_U64(MachInst iFmt)
    {
        return new Inst_DS__DS_INC_RTN_U64(&iFmt->iFmt_DS);
    } // decode_OP_DS__DS_INC_RTN_U64

    GPUStaticInst*
    Decoder::decode_OP_DS__DS_DEC_RTN_U64(MachInst iFmt)
    {
        return new Inst_DS__DS_DEC_RTN_U64(&iFmt->iFmt_DS);
    } // decode_OP_DS__DS_DEC_RTN_U64

    GPUStaticInst*
    Decoder::decode_OP_DS__DS_MIN_RTN_I64(MachInst iFmt)
    {
        return new Inst_DS__DS_MIN_RTN_I64(&iFmt->iFmt_DS);
    } // decode_OP_DS__DS_MIN_RTN_I64

    GPUStaticInst*
    Decoder::decode_OP_DS__DS_MAX_RTN_I64(MachInst iFmt)
    {
        return new Inst_DS__DS_MAX_RTN_I64(&iFmt->iFmt_DS);
    } // decode_OP_DS__DS_MAX_RTN_I64

    GPUStaticInst*
    Decoder::decode_OP_DS__DS_MIN_RTN_U64(MachInst iFmt)
    {
        return new Inst_DS__DS_MIN_RTN_U64(&iFmt->iFmt_DS);
    } // decode_OP_DS__DS_MIN_RTN_U64

    GPUStaticInst*
    Decoder::decode_OP_DS__DS_MAX_RTN_U64(MachInst iFmt)
    {
        return new Inst_DS__DS_MAX_RTN_U64(&iFmt->iFmt_DS);
    } // decode_OP_DS__DS_MAX_RTN_U64

    GPUStaticInst*
    Decoder::decode_OP_DS__DS_AND_RTN_B64(MachInst iFmt)
    {
        return new Inst_DS__DS_AND_RTN_B64(&iFmt->iFmt_DS);
    } // decode_OP_DS__DS_AND_RTN_B64

    GPUStaticInst*
    Decoder::decode_OP_DS__DS_OR_RTN_B64(MachInst iFmt)
    {
        return new Inst_DS__DS_OR_RTN_B64(&iFmt->iFmt_DS);
    } // decode_OP_DS__DS_OR_RTN_B64

    GPUStaticInst*
    Decoder::decode_OP_DS__DS_XOR_RTN_B64(MachInst iFmt)
    {
        return new Inst_DS__DS_XOR_RTN_B64(&iFmt->iFmt_DS);
    } // decode_OP_DS__DS_XOR_RTN_B64

    GPUStaticInst*
    Decoder::decode_OP_DS__DS_MSKOR_RTN_B64(MachInst iFmt)
    {
        return new Inst_DS__DS_MSKOR_RTN_B64(&iFmt->iFmt_DS);
    } // decode_OP_DS__DS_MSKOR_RTN_B64

    GPUStaticInst*
    Decoder::decode_OP_DS__DS_WRXCHG_RTN_B64(MachInst iFmt)
    {
        return new Inst_DS__DS_WRXCHG_RTN_B64(&iFmt->iFmt_DS);
    } // decode_OP_DS__DS_WRXCHG_RTN_B64

    GPUStaticInst*
    Decoder::decode_OP_DS__DS_WRXCHG2_RTN_B64(MachInst iFmt)
    {
        return new Inst_DS__DS_WRXCHG2_RTN_B64(&iFmt->iFmt_DS);
    } // decode_OP_DS__DS_WRXCHG2_RTN_B64

    GPUStaticInst*
    Decoder::decode_OP_DS__DS_WRXCHG2ST64_RTN_B64(MachInst iFmt)
    {
        return new Inst_DS__DS_WRXCHG2ST64_RTN_B64(&iFmt->iFmt_DS);
    } // decode_OP_DS__DS_WRXCHG2ST64_RTN_B64

    GPUStaticInst*
    Decoder::decode_OP_DS__DS_CMPST_RTN_B64(MachInst iFmt)
    {
        return new Inst_DS__DS_CMPST_RTN_B64(&iFmt->iFmt_DS);
    } // decode_OP_DS__DS_CMPST_RTN_B64

    GPUStaticInst*
    Decoder::decode_OP_DS__DS_CMPST_RTN_F64(MachInst iFmt)
    {
        return new Inst_DS__DS_CMPST_RTN_F64(&iFmt->iFmt_DS);
    } // decode_OP_DS__DS_CMPST_RTN_F64

    GPUStaticInst*
    Decoder::decode_OP_DS__DS_MIN_RTN_F64(MachInst iFmt)
    {
        return new Inst_DS__DS_MIN_RTN_F64(&iFmt->iFmt_DS);
    } // decode_OP_DS__DS_MIN_RTN_F64

    GPUStaticInst*
    Decoder::decode_OP_DS__DS_MAX_RTN_F64(MachInst iFmt)
    {
        return new Inst_DS__DS_MAX_RTN_F64(&iFmt->iFmt_DS);
    } // decode_OP_DS__DS_MAX_RTN_F64

    GPUStaticInst*
    Decoder::decode_OP_DS__DS_READ_B64(MachInst iFmt)
    {
        return new Inst_DS__DS_READ_B64(&iFmt->iFmt_DS);
    } // decode_OP_DS__DS_READ_B64

    GPUStaticInst*
    Decoder::decode_OP_DS__DS_READ2_B64(MachInst iFmt)
    {
        return new Inst_DS__DS_READ2_B64(&iFmt->iFmt_DS);
    } // decode_OP_DS__DS_READ2_B64

    GPUStaticInst*
    Decoder::decode_OP_DS__DS_READ2ST64_B64(MachInst iFmt)
    {
        return new Inst_DS__DS_READ2ST64_B64(&iFmt->iFmt_DS);
    } // decode_OP_DS__DS_READ2ST64_B64

    GPUStaticInst*
    Decoder::decode_OP_DS__DS_CONDXCHG32_RTN_B64(MachInst iFmt)
    {
        return new Inst_DS__DS_CONDXCHG32_RTN_B64(&iFmt->iFmt_DS);
    } // decode_OP_DS__DS_CONDXCHG32_RTN_B64

    GPUStaticInst*
    Decoder::decode_OP_DS__DS_ADD_SRC2_U32(MachInst iFmt)
    {
        return new Inst_DS__DS_ADD_SRC2_U32(&iFmt->iFmt_DS);
    } // decode_OP_DS__DS_ADD_SRC2_U32

    GPUStaticInst*
    Decoder::decode_OP_DS__DS_SUB_SRC2_U32(MachInst iFmt)
    {
        return new Inst_DS__DS_SUB_SRC2_U32(&iFmt->iFmt_DS);
    } // decode_OP_DS__DS_SUB_SRC2_U32

    GPUStaticInst*
    Decoder::decode_OP_DS__DS_RSUB_SRC2_U32(MachInst iFmt)
    {
        return new Inst_DS__DS_RSUB_SRC2_U32(&iFmt->iFmt_DS);
    } // decode_OP_DS__DS_RSUB_SRC2_U32

    GPUStaticInst*
    Decoder::decode_OP_DS__DS_INC_SRC2_U32(MachInst iFmt)
    {
        return new Inst_DS__DS_INC_SRC2_U32(&iFmt->iFmt_DS);
    } // decode_OP_DS__DS_INC_SRC2_U32

    GPUStaticInst*
    Decoder::decode_OP_DS__DS_DEC_SRC2_U32(MachInst iFmt)
    {
        return new Inst_DS__DS_DEC_SRC2_U32(&iFmt->iFmt_DS);
    } // decode_OP_DS__DS_DEC_SRC2_U32

    GPUStaticInst*
    Decoder::decode_OP_DS__DS_MIN_SRC2_I32(MachInst iFmt)
    {
        return new Inst_DS__DS_MIN_SRC2_I32(&iFmt->iFmt_DS);
    } // decode_OP_DS__DS_MIN_SRC2_I32

    GPUStaticInst*
    Decoder::decode_OP_DS__DS_MAX_SRC2_I32(MachInst iFmt)
    {
        return new Inst_DS__DS_MAX_SRC2_I32(&iFmt->iFmt_DS);
    } // decode_OP_DS__DS_MAX_SRC2_I32

    GPUStaticInst*
    Decoder::decode_OP_DS__DS_MIN_SRC2_U32(MachInst iFmt)
    {
        return new Inst_DS__DS_MIN_SRC2_U32(&iFmt->iFmt_DS);
    } // decode_OP_DS__DS_MIN_SRC2_U32

    GPUStaticInst*
    Decoder::decode_OP_DS__DS_MAX_SRC2_U32(MachInst iFmt)
    {
        return new Inst_DS__DS_MAX_SRC2_U32(&iFmt->iFmt_DS);
    } // decode_OP_DS__DS_MAX_SRC2_U32

    GPUStaticInst*
    Decoder::decode_OP_DS__DS_AND_SRC2_B32(MachInst iFmt)
    {
        return new Inst_DS__DS_AND_SRC2_B32(&iFmt->iFmt_DS);
    } // decode_OP_DS__DS_AND_SRC2_B32

    GPUStaticInst*
    Decoder::decode_OP_DS__DS_OR_SRC2_B32(MachInst iFmt)
    {
        return new Inst_DS__DS_OR_SRC2_B32(&iFmt->iFmt_DS);
    } // decode_OP_DS__DS_OR_SRC2_B32

    GPUStaticInst*
    Decoder::decode_OP_DS__DS_XOR_SRC2_B32(MachInst iFmt)
    {
        return new Inst_DS__DS_XOR_SRC2_B32(&iFmt->iFmt_DS);
    } // decode_OP_DS__DS_XOR_SRC2_B32

    GPUStaticInst*
    Decoder::decode_OP_DS__DS_WRITE_SRC2_B32(MachInst iFmt)
    {
        return new Inst_DS__DS_WRITE_SRC2_B32(&iFmt->iFmt_DS);
    } // decode_OP_DS__DS_WRITE_SRC2_B32

    GPUStaticInst*
    Decoder::decode_OP_DS__DS_MIN_SRC2_F32(MachInst iFmt)
    {
        return new Inst_DS__DS_MIN_SRC2_F32(&iFmt->iFmt_DS);
    } // decode_OP_DS__DS_MIN_SRC2_F32

    GPUStaticInst*
    Decoder::decode_OP_DS__DS_MAX_SRC2_F32(MachInst iFmt)
    {
        return new Inst_DS__DS_MAX_SRC2_F32(&iFmt->iFmt_DS);
    } // decode_OP_DS__DS_MAX_SRC2_F32

    GPUStaticInst*
    Decoder::decode_OP_DS__DS_ADD_SRC2_F32(MachInst iFmt)
    {
        return new Inst_DS__DS_ADD_SRC2_F32(&iFmt->iFmt_DS);
    } // decode_OP_DS__DS_ADD_SRC2_F32

    GPUStaticInst*
    Decoder::decode_OP_DS__DS_GWS_SEMA_RELEASE_ALL(MachInst iFmt)
    {
        return new Inst_DS__DS_GWS_SEMA_RELEASE_ALL(&iFmt->iFmt_DS);
    } // decode_OP_DS__DS_GWS_SEMA_RELEASE_ALL

    GPUStaticInst*
    Decoder::decode_OP_DS__DS_GWS_INIT(MachInst iFmt)
    {
        return new Inst_DS__DS_GWS_INIT(&iFmt->iFmt_DS);
    } // decode_OP_DS__DS_GWS_INIT

    GPUStaticInst*
    Decoder::decode_OP_DS__DS_GWS_SEMA_V(MachInst iFmt)
    {
        return new Inst_DS__DS_GWS_SEMA_V(&iFmt->iFmt_DS);
    } // decode_OP_DS__DS_GWS_SEMA_V

    GPUStaticInst*
    Decoder::decode_OP_DS__DS_GWS_SEMA_BR(MachInst iFmt)
    {
        return new Inst_DS__DS_GWS_SEMA_BR(&iFmt->iFmt_DS);
    } // decode_OP_DS__DS_GWS_SEMA_BR

    GPUStaticInst*
    Decoder::decode_OP_DS__DS_GWS_SEMA_P(MachInst iFmt)
    {
        return new Inst_DS__DS_GWS_SEMA_P(&iFmt->iFmt_DS);
    } // decode_OP_DS__DS_GWS_SEMA_P

    GPUStaticInst*
    Decoder::decode_OP_DS__DS_GWS_BARRIER(MachInst iFmt)
    {
        return new Inst_DS__DS_GWS_BARRIER(&iFmt->iFmt_DS);
    } // decode_OP_DS__DS_GWS_BARRIER

    GPUStaticInst*
    Decoder::decode_OP_DS__DS_READ_ADDTID_B32(MachInst iFmt)
    {
        fatal("Trying to decode instruction without a class\n");
        return nullptr;
    }

    GPUStaticInst*
    Decoder::decode_OP_DS__DS_CONSUME(MachInst iFmt)
    {
        return new Inst_DS__DS_CONSUME(&iFmt->iFmt_DS);
    } // decode_OP_DS__DS_CONSUME

    GPUStaticInst*
    Decoder::decode_OP_DS__DS_APPEND(MachInst iFmt)
    {
        return new Inst_DS__DS_APPEND(&iFmt->iFmt_DS);
    } // decode_OP_DS__DS_APPEND

    GPUStaticInst*
    Decoder::decode_OP_DS__DS_ORDERED_COUNT(MachInst iFmt)
    {
        return new Inst_DS__DS_ORDERED_COUNT(&iFmt->iFmt_DS);
    } // decode_OP_DS__DS_ORDERED_COUNT

    GPUStaticInst*
    Decoder::decode_OP_DS__DS_ADD_SRC2_U64(MachInst iFmt)
    {
        return new Inst_DS__DS_ADD_SRC2_U64(&iFmt->iFmt_DS);
    } // decode_OP_DS__DS_ADD_SRC2_U64

    GPUStaticInst*
    Decoder::decode_OP_DS__DS_SUB_SRC2_U64(MachInst iFmt)
    {
        return new Inst_DS__DS_SUB_SRC2_U64(&iFmt->iFmt_DS);
    } // decode_OP_DS__DS_SUB_SRC2_U64

    GPUStaticInst*
    Decoder::decode_OP_DS__DS_RSUB_SRC2_U64(MachInst iFmt)
    {
        return new Inst_DS__DS_RSUB_SRC2_U64(&iFmt->iFmt_DS);
    } // decode_OP_DS__DS_RSUB_SRC2_U64

    GPUStaticInst*
    Decoder::decode_OP_DS__DS_INC_SRC2_U64(MachInst iFmt)
    {
        return new Inst_DS__DS_INC_SRC2_U64(&iFmt->iFmt_DS);
    } // decode_OP_DS__DS_INC_SRC2_U64

    GPUStaticInst*
    Decoder::decode_OP_DS__DS_DEC_SRC2_U64(MachInst iFmt)
    {
        return new Inst_DS__DS_DEC_SRC2_U64(&iFmt->iFmt_DS);
    } // decode_OP_DS__DS_DEC_SRC2_U64

    GPUStaticInst*
    Decoder::decode_OP_DS__DS_MIN_SRC2_I64(MachInst iFmt)
    {
        return new Inst_DS__DS_MIN_SRC2_I64(&iFmt->iFmt_DS);
    } // decode_OP_DS__DS_MIN_SRC2_I64

    GPUStaticInst*
    Decoder::decode_OP_DS__DS_MAX_SRC2_I64(MachInst iFmt)
    {
        return new Inst_DS__DS_MAX_SRC2_I64(&iFmt->iFmt_DS);
    } // decode_OP_DS__DS_MAX_SRC2_I64

    GPUStaticInst*
    Decoder::decode_OP_DS__DS_MIN_SRC2_U64(MachInst iFmt)
    {
        return new Inst_DS__DS_MIN_SRC2_U64(&iFmt->iFmt_DS);
    } // decode_OP_DS__DS_MIN_SRC2_U64

    GPUStaticInst*
    Decoder::decode_OP_DS__DS_MAX_SRC2_U64(MachInst iFmt)
    {
        return new Inst_DS__DS_MAX_SRC2_U64(&iFmt->iFmt_DS);
    } // decode_OP_DS__DS_MAX_SRC2_U64

    GPUStaticInst*
    Decoder::decode_OP_DS__DS_AND_SRC2_B64(MachInst iFmt)
    {
        return new Inst_DS__DS_AND_SRC2_B64(&iFmt->iFmt_DS);
    } // decode_OP_DS__DS_AND_SRC2_B64

    GPUStaticInst*
    Decoder::decode_OP_DS__DS_OR_SRC2_B64(MachInst iFmt)
    {
        return new Inst_DS__DS_OR_SRC2_B64(&iFmt->iFmt_DS);
    } // decode_OP_DS__DS_OR_SRC2_B64

    GPUStaticInst*
    Decoder::decode_OP_DS__DS_XOR_SRC2_B64(MachInst iFmt)
    {
        return new Inst_DS__DS_XOR_SRC2_B64(&iFmt->iFmt_DS);
    } // decode_OP_DS__DS_XOR_SRC2_B64

    GPUStaticInst*
    Decoder::decode_OP_DS__DS_WRITE_SRC2_B64(MachInst iFmt)
    {
        return new Inst_DS__DS_WRITE_SRC2_B64(&iFmt->iFmt_DS);
    } // decode_OP_DS__DS_WRITE_SRC2_B64

    GPUStaticInst*
    Decoder::decode_OP_DS__DS_MIN_SRC2_F64(MachInst iFmt)
    {
        return new Inst_DS__DS_MIN_SRC2_F64(&iFmt->iFmt_DS);
    } // decode_OP_DS__DS_MIN_SRC2_F64

    GPUStaticInst*
    Decoder::decode_OP_DS__DS_MAX_SRC2_F64(MachInst iFmt)
    {
        return new Inst_DS__DS_MAX_SRC2_F64(&iFmt->iFmt_DS);
    } // decode_OP_DS__DS_MAX_SRC2_F64

    GPUStaticInst*
    Decoder::decode_OP_DS__DS_WRITE_B96(MachInst iFmt)
    {
        return new Inst_DS__DS_WRITE_B96(&iFmt->iFmt_DS);
    } // decode_OP_DS__DS_WRITE_B96

    GPUStaticInst*
    Decoder::decode_OP_DS__DS_WRITE_B128(MachInst iFmt)
    {
        return new Inst_DS__DS_WRITE_B128(&iFmt->iFmt_DS);
    } // decode_OP_DS__DS_WRITE_B128

    GPUStaticInst*
    Decoder::decode_OP_DS__DS_READ_B96(MachInst iFmt)
    {
        return new Inst_DS__DS_READ_B96(&iFmt->iFmt_DS);
    } // decode_OP_DS__DS_READ_B96

    GPUStaticInst*
    Decoder::decode_OP_DS__DS_READ_B128(MachInst iFmt)
    {
        return new Inst_DS__DS_READ_B128(&iFmt->iFmt_DS);
    } // decode_OP_DS__DS_READ_B128

    GPUStaticInst*
    Decoder::decode_OP_FLAT__FLAT_LOAD_UBYTE(MachInst iFmt)
    {
        return new Inst_FLAT__FLAT_LOAD_UBYTE(&iFmt->iFmt_FLAT);
    } // decode_OP_FLAT__FLAT_LOAD_UBYTE

    GPUStaticInst*
    Decoder::decode_OP_FLAT__FLAT_LOAD_SBYTE(MachInst iFmt)
    {
        return new Inst_FLAT__FLAT_LOAD_SBYTE(&iFmt->iFmt_FLAT);
    } // decode_OP_FLAT__FLAT_LOAD_SBYTE

    GPUStaticInst*
    Decoder::decode_OP_FLAT__FLAT_LOAD_USHORT(MachInst iFmt)
    {
        return new Inst_FLAT__FLAT_LOAD_USHORT(&iFmt->iFmt_FLAT);
    } // decode_OP_FLAT__FLAT_LOAD_USHORT

    GPUStaticInst*
    Decoder::decode_OP_FLAT__FLAT_LOAD_SSHORT(MachInst iFmt)
    {
        return new Inst_FLAT__FLAT_LOAD_SSHORT(&iFmt->iFmt_FLAT);
    } // decode_OP_FLAT__FLAT_LOAD_SSHORT

    GPUStaticInst*
    Decoder::decode_OP_FLAT__FLAT_LOAD_DWORD(MachInst iFmt)
    {
        return new Inst_FLAT__FLAT_LOAD_DWORD(&iFmt->iFmt_FLAT);
    } // decode_OP_FLAT__FLAT_LOAD_DWORD

    GPUStaticInst*
    Decoder::decode_OP_FLAT__FLAT_LOAD_DWORDX2(MachInst iFmt)
    {
        return new Inst_FLAT__FLAT_LOAD_DWORDX2(&iFmt->iFmt_FLAT);
    } // decode_OP_FLAT__FLAT_LOAD_DWORDX2

    GPUStaticInst*
    Decoder::decode_OP_FLAT__FLAT_LOAD_DWORDX3(MachInst iFmt)
    {
        return new Inst_FLAT__FLAT_LOAD_DWORDX3(&iFmt->iFmt_FLAT);
    } // decode_OP_FLAT__FLAT_LOAD_DWORDX3

    GPUStaticInst*
    Decoder::decode_OP_FLAT__FLAT_LOAD_DWORDX4(MachInst iFmt)
    {
        return new Inst_FLAT__FLAT_LOAD_DWORDX4(&iFmt->iFmt_FLAT);
    } // decode_OP_FLAT__FLAT_LOAD_DWORDX4

    GPUStaticInst*
    Decoder::decode_OP_FLAT__FLAT_STORE_BYTE(MachInst iFmt)
    {
        return new Inst_FLAT__FLAT_STORE_BYTE(&iFmt->iFmt_FLAT);
    } // decode_OP_FLAT__FLAT_STORE_BYTE

    GPUStaticInst*
    Decoder::decode_OP_FLAT__FLAT_STORE_BYTE_D16_HI(MachInst iFmt)
    {
        fatal("Trying to decode instruction without a class\n");
        return nullptr;
    }

    GPUStaticInst*
    Decoder::decode_OP_FLAT__FLAT_STORE_SHORT(MachInst iFmt)
    {
        return new Inst_FLAT__FLAT_STORE_SHORT(&iFmt->iFmt_FLAT);
    } // decode_OP_FLAT__FLAT_STORE_SHORT

    GPUStaticInst*
    Decoder::decode_OP_FLAT__FLAT_STORE_SHORT_D16_HI(MachInst iFmt)
    {
        fatal("Trying to decode instruction without a class\n");
        return nullptr;
    }

    GPUStaticInst*
    Decoder::decode_OP_FLAT__FLAT_STORE_DWORD(MachInst iFmt)
    {
        return new Inst_FLAT__FLAT_STORE_DWORD(&iFmt->iFmt_FLAT);
    } // decode_OP_FLAT__FLAT_STORE_DWORD

    GPUStaticInst*
    Decoder::decode_OP_FLAT__FLAT_STORE_DWORDX2(MachInst iFmt)
    {
        return new Inst_FLAT__FLAT_STORE_DWORDX2(&iFmt->iFmt_FLAT);
    } // decode_OP_FLAT__FLAT_STORE_DWORDX2

    GPUStaticInst*
    Decoder::decode_OP_FLAT__FLAT_STORE_DWORDX3(MachInst iFmt)
    {
        return new Inst_FLAT__FLAT_STORE_DWORDX3(&iFmt->iFmt_FLAT);
    } // decode_OP_FLAT__FLAT_STORE_DWORDX3

    GPUStaticInst*
    Decoder::decode_OP_FLAT__FLAT_STORE_DWORDX4(MachInst iFmt)
    {
        return new Inst_FLAT__FLAT_STORE_DWORDX4(&iFmt->iFmt_FLAT);
    } // decode_OP_FLAT__FLAT_STORE_DWORDX4

    GPUStaticInst*
    Decoder::decode_OP_FLAT__FLAT_LOAD_UBYTE_D16(MachInst iFmt)
    {
        fatal("Trying to decode instruction without a class\n");
        return nullptr;
    }

    GPUStaticInst*
    Decoder::decode_OP_FLAT__FLAT_LOAD_UBYTE_D16_HI(MachInst iFmt)
    {
        fatal("Trying to decode instruction without a class\n");
        return nullptr;
    }

    GPUStaticInst*
    Decoder::decode_OP_FLAT__FLAT_LOAD_SBYTE_D16(MachInst iFmt)
    {
        fatal("Trying to decode instruction without a class\n");
        return nullptr;
    }

    GPUStaticInst*
    Decoder::decode_OP_FLAT__FLAT_LOAD_SBYTE_D16_HI(MachInst iFmt)
    {
        fatal("Trying to decode instruction without a class\n");
        return nullptr;
    }

    GPUStaticInst*
    Decoder::decode_OP_FLAT__FLAT_LOAD_SHORT_D16(MachInst iFmt)
    {
        fatal("Trying to decode instruction without a class\n");
        return nullptr;
    }

    GPUStaticInst*
    Decoder::decode_OP_FLAT__FLAT_LOAD_SHORT_D16_HI(MachInst iFmt)
    {
        fatal("Trying to decode instruction without a class\n");
        return nullptr;
    }

    GPUStaticInst*
    Decoder::decode_OP_FLAT__FLAT_ATOMIC_SWAP(MachInst iFmt)
    {
        return new Inst_FLAT__FLAT_ATOMIC_SWAP(&iFmt->iFmt_FLAT);
    } // decode_OP_FLAT__FLAT_ATOMIC_SWAP

    GPUStaticInst*
    Decoder::decode_OP_FLAT__FLAT_ATOMIC_CMPSWAP(MachInst iFmt)
    {
        return new Inst_FLAT__FLAT_ATOMIC_CMPSWAP(&iFmt->iFmt_FLAT);
    } // decode_OP_FLAT__FLAT_ATOMIC_CMPSWAP

    GPUStaticInst*
    Decoder::decode_OP_FLAT__FLAT_ATOMIC_ADD(MachInst iFmt)
    {
        return new Inst_FLAT__FLAT_ATOMIC_ADD(&iFmt->iFmt_FLAT);
    } // decode_OP_FLAT__FLAT_ATOMIC_ADD

    GPUStaticInst*
    Decoder::decode_OP_FLAT__FLAT_ATOMIC_SUB(MachInst iFmt)
    {
        return new Inst_FLAT__FLAT_ATOMIC_SUB(&iFmt->iFmt_FLAT);
    } // decode_OP_FLAT__FLAT_ATOMIC_SUB

    GPUStaticInst*
    Decoder::decode_OP_FLAT__FLAT_ATOMIC_SMIN(MachInst iFmt)
    {
        return new Inst_FLAT__FLAT_ATOMIC_SMIN(&iFmt->iFmt_FLAT);
    } // decode_OP_FLAT__FLAT_ATOMIC_SMIN

    GPUStaticInst*
    Decoder::decode_OP_FLAT__FLAT_ATOMIC_UMIN(MachInst iFmt)
    {
        return new Inst_FLAT__FLAT_ATOMIC_UMIN(&iFmt->iFmt_FLAT);
    } // decode_OP_FLAT__FLAT_ATOMIC_UMIN

    GPUStaticInst*
    Decoder::decode_OP_FLAT__FLAT_ATOMIC_SMAX(MachInst iFmt)
    {
        return new Inst_FLAT__FLAT_ATOMIC_SMAX(&iFmt->iFmt_FLAT);
    } // decode_OP_FLAT__FLAT_ATOMIC_SMAX

    GPUStaticInst*
    Decoder::decode_OP_FLAT__FLAT_ATOMIC_UMAX(MachInst iFmt)
    {
        return new Inst_FLAT__FLAT_ATOMIC_UMAX(&iFmt->iFmt_FLAT);
    } // decode_OP_FLAT__FLAT_ATOMIC_UMAX

    GPUStaticInst*
    Decoder::decode_OP_FLAT__FLAT_ATOMIC_AND(MachInst iFmt)
    {
        return new Inst_FLAT__FLAT_ATOMIC_AND(&iFmt->iFmt_FLAT);
    } // decode_OP_FLAT__FLAT_ATOMIC_AND

    GPUStaticInst*
    Decoder::decode_OP_FLAT__FLAT_ATOMIC_OR(MachInst iFmt)
    {
        return new Inst_FLAT__FLAT_ATOMIC_OR(&iFmt->iFmt_FLAT);
    } // decode_OP_FLAT__FLAT_ATOMIC_OR

    GPUStaticInst*
    Decoder::decode_OP_FLAT__FLAT_ATOMIC_XOR(MachInst iFmt)
    {
        return new Inst_FLAT__FLAT_ATOMIC_XOR(&iFmt->iFmt_FLAT);
    } // decode_OP_FLAT__FLAT_ATOMIC_XOR

    GPUStaticInst*
    Decoder::decode_OP_FLAT__FLAT_ATOMIC_INC(MachInst iFmt)
    {
        return new Inst_FLAT__FLAT_ATOMIC_INC(&iFmt->iFmt_FLAT);
    } // decode_OP_FLAT__FLAT_ATOMIC_INC

    GPUStaticInst*
    Decoder::decode_OP_FLAT__FLAT_ATOMIC_DEC(MachInst iFmt)
    {
        return new Inst_FLAT__FLAT_ATOMIC_DEC(&iFmt->iFmt_FLAT);
    } // decode_OP_FLAT__FLAT_ATOMIC_DEC

    GPUStaticInst*
    Decoder::decode_OP_FLAT__FLAT_ATOMIC_SWAP_X2(MachInst iFmt)
    {
        return new Inst_FLAT__FLAT_ATOMIC_SWAP_X2(&iFmt->iFmt_FLAT);
    } // decode_OP_FLAT__FLAT_ATOMIC_SWAP_X2

    GPUStaticInst*
    Decoder::decode_OP_FLAT__FLAT_ATOMIC_CMPSWAP_X2(MachInst iFmt)
    {
        return new Inst_FLAT__FLAT_ATOMIC_CMPSWAP_X2(&iFmt->iFmt_FLAT);
    } // decode_OP_FLAT__FLAT_ATOMIC_CMPSWAP_X2

    GPUStaticInst*
    Decoder::decode_OP_FLAT__FLAT_ATOMIC_ADD_X2(MachInst iFmt)
    {
        return new Inst_FLAT__FLAT_ATOMIC_ADD_X2(&iFmt->iFmt_FLAT);
    } // decode_OP_FLAT__FLAT_ATOMIC_ADD_X2

    GPUStaticInst*
    Decoder::decode_OP_FLAT__FLAT_ATOMIC_SUB_X2(MachInst iFmt)
    {
        return new Inst_FLAT__FLAT_ATOMIC_SUB_X2(&iFmt->iFmt_FLAT);
    } // decode_OP_FLAT__FLAT_ATOMIC_SUB_X2

    GPUStaticInst*
    Decoder::decode_OP_FLAT__FLAT_ATOMIC_SMIN_X2(MachInst iFmt)
    {
        return new Inst_FLAT__FLAT_ATOMIC_SMIN_X2(&iFmt->iFmt_FLAT);
    } // decode_OP_FLAT__FLAT_ATOMIC_SMIN_X2

    GPUStaticInst*
    Decoder::decode_OP_FLAT__FLAT_ATOMIC_UMIN_X2(MachInst iFmt)
    {
        return new Inst_FLAT__FLAT_ATOMIC_UMIN_X2(&iFmt->iFmt_FLAT);
    } // decode_OP_FLAT__FLAT_ATOMIC_UMIN_X2

    GPUStaticInst*
    Decoder::decode_OP_FLAT__FLAT_ATOMIC_SMAX_X2(MachInst iFmt)
    {
        return new Inst_FLAT__FLAT_ATOMIC_SMAX_X2(&iFmt->iFmt_FLAT);
    } // decode_OP_FLAT__FLAT_ATOMIC_SMAX_X2

    GPUStaticInst*
    Decoder::decode_OP_FLAT__FLAT_ATOMIC_UMAX_X2(MachInst iFmt)
    {
        return new Inst_FLAT__FLAT_ATOMIC_UMAX_X2(&iFmt->iFmt_FLAT);
    } // decode_OP_FLAT__FLAT_ATOMIC_UMAX_X2

    GPUStaticInst*
    Decoder::decode_OP_FLAT__FLAT_ATOMIC_AND_X2(MachInst iFmt)
    {
        return new Inst_FLAT__FLAT_ATOMIC_AND_X2(&iFmt->iFmt_FLAT);
    } // decode_OP_FLAT__FLAT_ATOMIC_AND_X2

    GPUStaticInst*
    Decoder::decode_OP_FLAT__FLAT_ATOMIC_OR_X2(MachInst iFmt)
    {
        return new Inst_FLAT__FLAT_ATOMIC_OR_X2(&iFmt->iFmt_FLAT);
    } // decode_OP_FLAT__FLAT_ATOMIC_OR_X2

    GPUStaticInst*
    Decoder::decode_OP_FLAT__FLAT_ATOMIC_XOR_X2(MachInst iFmt)
    {
        return new Inst_FLAT__FLAT_ATOMIC_XOR_X2(&iFmt->iFmt_FLAT);
    } // decode_OP_FLAT__FLAT_ATOMIC_XOR_X2

    GPUStaticInst*
    Decoder::decode_OP_FLAT__FLAT_ATOMIC_INC_X2(MachInst iFmt)
    {
        return new Inst_FLAT__FLAT_ATOMIC_INC_X2(&iFmt->iFmt_FLAT);
    } // decode_OP_FLAT__FLAT_ATOMIC_INC_X2

    GPUStaticInst*
    Decoder::decode_OP_FLAT__FLAT_ATOMIC_DEC_X2(MachInst iFmt)
    {
        return new Inst_FLAT__FLAT_ATOMIC_DEC_X2(&iFmt->iFmt_FLAT);
    } // decode_OP_FLAT__FLAT_ATOMIC_DEC_X2

    GPUStaticInst*
    Decoder::decode_OP_GLOBAL__GLOBAL_LOAD_UBYTE(MachInst iFmt)
    {
        return new Inst_FLAT__FLAT_LOAD_UBYTE(&iFmt->iFmt_FLAT);
    }

    GPUStaticInst*
    Decoder::decode_OP_GLOBAL__GLOBAL_LOAD_SBYTE(MachInst iFmt)
    {
        return new Inst_FLAT__FLAT_LOAD_SBYTE(&iFmt->iFmt_FLAT);
    }

    GPUStaticInst*
    Decoder::decode_OP_GLOBAL__GLOBAL_LOAD_USHORT(MachInst iFmt)
    {
        return new Inst_FLAT__FLAT_LOAD_USHORT(&iFmt->iFmt_FLAT);
    }

    GPUStaticInst*
    Decoder::decode_OP_GLOBAL__GLOBAL_LOAD_SSHORT(MachInst iFmt)
    {
        return new Inst_FLAT__FLAT_LOAD_SSHORT(&iFmt->iFmt_FLAT);
    }

    GPUStaticInst*
    Decoder::decode_OP_GLOBAL__GLOBAL_LOAD_DWORD(MachInst iFmt)
    {
        return new Inst_FLAT__FLAT_LOAD_DWORD(&iFmt->iFmt_FLAT);
    }

    GPUStaticInst*
    Decoder::decode_OP_GLOBAL__GLOBAL_LOAD_DWORDX2(MachInst iFmt)
    {
        return new Inst_FLAT__FLAT_LOAD_DWORDX2(&iFmt->iFmt_FLAT);
    }

    GPUStaticInst*
    Decoder::decode_OP_GLOBAL__GLOBAL_LOAD_DWORDX3(MachInst iFmt)
    {
        return new Inst_FLAT__FLAT_LOAD_DWORDX3(&iFmt->iFmt_FLAT);
    }

    GPUStaticInst*
    Decoder::decode_OP_GLOBAL__GLOBAL_LOAD_DWORDX4(MachInst iFmt)
    {
        return new Inst_FLAT__FLAT_LOAD_DWORDX4(&iFmt->iFmt_FLAT);
    }

    GPUStaticInst*
    Decoder::decode_OP_GLOBAL__GLOBAL_STORE_BYTE(MachInst iFmt)
    {
        return new Inst_FLAT__FLAT_STORE_BYTE(&iFmt->iFmt_FLAT);
    }

    GPUStaticInst*
    Decoder::decode_OP_GLOBAL__GLOBAL_STORE_BYTE_D16_HI(MachInst iFmt)
    {
        fatal("Trying to decode instruction without a class\n");
        return nullptr;
    }

    GPUStaticInst*
    Decoder::decode_OP_GLOBAL__GLOBAL_STORE_SHORT(MachInst iFmt)
    {
        return new Inst_FLAT__FLAT_STORE_SHORT(&iFmt->iFmt_FLAT);
    }

    GPUStaticInst*
    Decoder::decode_OP_GLOBAL__GLOBAL_STORE_SHORT_D16_HI(MachInst iFmt)
    {
        fatal("Trying to decode instruction without a class\n");
        return nullptr;
    }

    GPUStaticInst*
    Decoder::decode_OP_GLOBAL__GLOBAL_STORE_DWORD(MachInst iFmt)
    {
        return new Inst_FLAT__FLAT_STORE_DWORD(&iFmt->iFmt_FLAT);
        return nullptr;
    }

    GPUStaticInst*
    Decoder::decode_OP_GLOBAL__GLOBAL_STORE_DWORDX2(MachInst iFmt)
    {
        return new Inst_FLAT__FLAT_STORE_DWORDX2(&iFmt->iFmt_FLAT);
    }

    GPUStaticInst*
    Decoder::decode_OP_GLOBAL__GLOBAL_STORE_DWORDX3(MachInst iFmt)
    {
        return new Inst_FLAT__FLAT_STORE_DWORDX3(&iFmt->iFmt_FLAT);
    }

    GPUStaticInst*
    Decoder::decode_OP_GLOBAL__GLOBAL_STORE_DWORDX4(MachInst iFmt)
    {
        return new Inst_FLAT__FLAT_STORE_DWORDX4(&iFmt->iFmt_FLAT);
    }

    GPUStaticInst*
    Decoder::decode_OP_GLOBAL__GLOBAL_LOAD_UBYTE_D16(MachInst iFmt)
    {
        fatal("Trying to decode instruction without a class\n");
        return nullptr;
    }

    GPUStaticInst*
    Decoder::decode_OP_GLOBAL__GLOBAL_LOAD_UBYTE_D16_HI(MachInst iFmt)
    {
        fatal("Trying to decode instruction without a class\n");
        return nullptr;
    }

    GPUStaticInst*
    Decoder::decode_OP_GLOBAL__GLOBAL_LOAD_SBYTE_D16(MachInst iFmt)
    {
        fatal("Trying to decode instruction without a class\n");
        return nullptr;
    }

    GPUStaticInst*
    Decoder::decode_OP_GLOBAL__GLOBAL_LOAD_SBYTE_D16_HI(MachInst iFmt)
    {
        fatal("Trying to decode instruction without a class\n");
        return nullptr;
    }

    GPUStaticInst*
    Decoder::decode_OP_GLOBAL__GLOBAL_LOAD_SHORT_D16(MachInst iFmt)
    {
        fatal("Trying to decode instruction without a class\n");
        return nullptr;
    }

    GPUStaticInst*
    Decoder::decode_OP_GLOBAL__GLOBAL_LOAD_SHORT_D16_HI(MachInst iFmt)
    {
        fatal("Trying to decode instruction without a class\n");
        return nullptr;
    }

    GPUStaticInst*
    Decoder::decode_OP_GLOBAL__GLOBAL_ATOMIC_SWAP(MachInst iFmt)
    {
        return new Inst_FLAT__FLAT_ATOMIC_SWAP(&iFmt->iFmt_FLAT);
    }

    GPUStaticInst*
    Decoder::decode_OP_GLOBAL__GLOBAL_ATOMIC_CMPSWAP(MachInst iFmt)
    {
        return new Inst_FLAT__FLAT_ATOMIC_CMPSWAP(&iFmt->iFmt_FLAT);
    }

    GPUStaticInst*
    Decoder::decode_OP_GLOBAL__GLOBAL_ATOMIC_ADD(MachInst iFmt)
    {
        return new Inst_FLAT__FLAT_ATOMIC_ADD(&iFmt->iFmt_FLAT);
    }

    GPUStaticInst*
    Decoder::decode_OP_GLOBAL__GLOBAL_ATOMIC_SUB(MachInst iFmt)
    {
        return new Inst_FLAT__FLAT_ATOMIC_SUB(&iFmt->iFmt_FLAT);
    }

    GPUStaticInst*
    Decoder::decode_OP_GLOBAL__GLOBAL_ATOMIC_SMIN(MachInst iFmt)
    {
        return new Inst_FLAT__FLAT_ATOMIC_SMIN(&iFmt->iFmt_FLAT);
    }

    GPUStaticInst*
    Decoder::decode_OP_GLOBAL__GLOBAL_ATOMIC_UMIN(MachInst iFmt)
    {
        return new Inst_FLAT__FLAT_ATOMIC_UMIN(&iFmt->iFmt_FLAT);
    }

    GPUStaticInst*
    Decoder::decode_OP_GLOBAL__GLOBAL_ATOMIC_SMAX(MachInst iFmt)
    {
        return new Inst_FLAT__FLAT_ATOMIC_SMAX(&iFmt->iFmt_FLAT);
    }

    GPUStaticInst*
    Decoder::decode_OP_GLOBAL__GLOBAL_ATOMIC_UMAX(MachInst iFmt)
    {
        return new Inst_FLAT__FLAT_ATOMIC_UMAX(&iFmt->iFmt_FLAT);
    }

    GPUStaticInst*
    Decoder::decode_OP_GLOBAL__GLOBAL_ATOMIC_AND(MachInst iFmt)
    {
        return new Inst_FLAT__FLAT_ATOMIC_AND(&iFmt->iFmt_FLAT);
    }

    GPUStaticInst*
    Decoder::decode_OP_GLOBAL__GLOBAL_ATOMIC_OR(MachInst iFmt)
    {
        return new Inst_FLAT__FLAT_ATOMIC_OR(&iFmt->iFmt_FLAT);
    }

    GPUStaticInst*
    Decoder::decode_OP_GLOBAL__GLOBAL_ATOMIC_XOR(MachInst iFmt)
    {
        return new Inst_FLAT__FLAT_ATOMIC_XOR(&iFmt->iFmt_FLAT);
    }

    GPUStaticInst*
    Decoder::decode_OP_GLOBAL__GLOBAL_ATOMIC_INC(MachInst iFmt)
    {
        return new Inst_FLAT__FLAT_ATOMIC_INC(&iFmt->iFmt_FLAT);
    }

    GPUStaticInst*
    Decoder::decode_OP_GLOBAL__GLOBAL_ATOMIC_DEC(MachInst iFmt)
    {
        return new Inst_FLAT__FLAT_ATOMIC_DEC(&iFmt->iFmt_FLAT);
    }

    GPUStaticInst*
    Decoder::decode_OP_GLOBAL__GLOBAL_ATOMIC_SWAP_X2(MachInst iFmt)
    {
        return new Inst_FLAT__FLAT_ATOMIC_SWAP_X2(&iFmt->iFmt_FLAT);
    }

    GPUStaticInst*
    Decoder::decode_OP_GLOBAL__GLOBAL_ATOMIC_CMPSWAP_X2(MachInst iFmt)
    {
        return new Inst_FLAT__FLAT_ATOMIC_CMPSWAP_X2(&iFmt->iFmt_FLAT);
    }

    GPUStaticInst*
    Decoder::decode_OP_GLOBAL__GLOBAL_ATOMIC_ADD_X2(MachInst iFmt)
    {
        return new Inst_FLAT__FLAT_ATOMIC_ADD_X2(&iFmt->iFmt_FLAT);
    }

    GPUStaticInst*
    Decoder::decode_OP_GLOBAL__GLOBAL_ATOMIC_SUB_X2(MachInst iFmt)
    {
        return new Inst_FLAT__FLAT_ATOMIC_SUB_X2(&iFmt->iFmt_FLAT);
    }

    GPUStaticInst*
    Decoder::decode_OP_GLOBAL__GLOBAL_ATOMIC_SMIN_X2(MachInst iFmt)
    {
        return new Inst_FLAT__FLAT_ATOMIC_SMIN_X2(&iFmt->iFmt_FLAT);
    }

    GPUStaticInst*
    Decoder::decode_OP_GLOBAL__GLOBAL_ATOMIC_UMIN_X2(MachInst iFmt)
    {
        return new Inst_FLAT__FLAT_ATOMIC_UMIN_X2(&iFmt->iFmt_FLAT);
    }

    GPUStaticInst*
    Decoder::decode_OP_GLOBAL__GLOBAL_ATOMIC_SMAX_X2(MachInst iFmt)
    {
        return new Inst_FLAT__FLAT_ATOMIC_SMAX_X2(&iFmt->iFmt_FLAT);
    }

    GPUStaticInst*
    Decoder::decode_OP_GLOBAL__GLOBAL_ATOMIC_UMAX_X2(MachInst iFmt)
    {
        return new Inst_FLAT__FLAT_ATOMIC_UMAX_X2(&iFmt->iFmt_FLAT);
    }

    GPUStaticInst*
    Decoder::decode_OP_GLOBAL__GLOBAL_ATOMIC_AND_X2(MachInst iFmt)
    {
        return new Inst_FLAT__FLAT_ATOMIC_AND_X2(&iFmt->iFmt_FLAT);
    }

    GPUStaticInst*
    Decoder::decode_OP_GLOBAL__GLOBAL_ATOMIC_OR_X2(MachInst iFmt)
    {
        return new Inst_FLAT__FLAT_ATOMIC_OR_X2(&iFmt->iFmt_FLAT);
    }

    GPUStaticInst*
    Decoder::decode_OP_GLOBAL__GLOBAL_ATOMIC_XOR_X2(MachInst iFmt)
    {
        return new Inst_FLAT__FLAT_ATOMIC_XOR_X2(&iFmt->iFmt_FLAT);
    }

    GPUStaticInst*
    Decoder::decode_OP_GLOBAL__GLOBAL_ATOMIC_INC_X2(MachInst iFmt)
    {
        return new Inst_FLAT__FLAT_ATOMIC_INC_X2(&iFmt->iFmt_FLAT);
    }

    GPUStaticInst*
    Decoder::decode_OP_GLOBAL__GLOBAL_ATOMIC_DEC_X2(MachInst iFmt)
    {
        return new Inst_FLAT__FLAT_ATOMIC_DEC_X2(&iFmt->iFmt_FLAT);
    }

    GPUStaticInst*
    Decoder::decode_OP_MIMG__IMAGE_LOAD(MachInst iFmt)
    {
        return new Inst_MIMG__IMAGE_LOAD(&iFmt->iFmt_MIMG);
    } // decode_OP_MIMG__IMAGE_LOAD

    GPUStaticInst*
    Decoder::decode_OP_MIMG__IMAGE_LOAD_MIP(MachInst iFmt)
    {
        return new Inst_MIMG__IMAGE_LOAD_MIP(&iFmt->iFmt_MIMG);
    } // decode_OP_MIMG__IMAGE_LOAD_MIP

    GPUStaticInst*
    Decoder::decode_OP_MIMG__IMAGE_LOAD_PCK(MachInst iFmt)
    {
        return new Inst_MIMG__IMAGE_LOAD_PCK(&iFmt->iFmt_MIMG);
    } // decode_OP_MIMG__IMAGE_LOAD_PCK

    GPUStaticInst*
    Decoder::decode_OP_MIMG__IMAGE_LOAD_PCK_SGN(MachInst iFmt)
    {
        return new Inst_MIMG__IMAGE_LOAD_PCK_SGN(&iFmt->iFmt_MIMG);
    } // decode_OP_MIMG__IMAGE_LOAD_PCK_SGN

    GPUStaticInst*
    Decoder::decode_OP_MIMG__IMAGE_LOAD_MIP_PCK(MachInst iFmt)
    {
        return new Inst_MIMG__IMAGE_LOAD_MIP_PCK(&iFmt->iFmt_MIMG);
    } // decode_OP_MIMG__IMAGE_LOAD_MIP_PCK

    GPUStaticInst*
    Decoder::decode_OP_MIMG__IMAGE_LOAD_MIP_PCK_SGN(MachInst iFmt)
    {
        return new Inst_MIMG__IMAGE_LOAD_MIP_PCK_SGN(&iFmt->iFmt_MIMG);
    } // decode_OP_MIMG__IMAGE_LOAD_MIP_PCK_SGN

    GPUStaticInst*
    Decoder::decode_OP_MIMG__IMAGE_STORE(MachInst iFmt)
    {
        return new Inst_MIMG__IMAGE_STORE(&iFmt->iFmt_MIMG);
    } // decode_OP_MIMG__IMAGE_STORE

    GPUStaticInst*
    Decoder::decode_OP_MIMG__IMAGE_STORE_MIP(MachInst iFmt)
    {
        return new Inst_MIMG__IMAGE_STORE_MIP(&iFmt->iFmt_MIMG);
    } // decode_OP_MIMG__IMAGE_STORE_MIP

    GPUStaticInst*
    Decoder::decode_OP_MIMG__IMAGE_STORE_PCK(MachInst iFmt)
    {
        return new Inst_MIMG__IMAGE_STORE_PCK(&iFmt->iFmt_MIMG);
    } // decode_OP_MIMG__IMAGE_STORE_PCK

    GPUStaticInst*
    Decoder::decode_OP_MIMG__IMAGE_STORE_MIP_PCK(MachInst iFmt)
    {
        return new Inst_MIMG__IMAGE_STORE_MIP_PCK(&iFmt->iFmt_MIMG);
    } // decode_OP_MIMG__IMAGE_STORE_MIP_PCK

    GPUStaticInst*
    Decoder::decode_OP_MIMG__IMAGE_GET_RESINFO(MachInst iFmt)
    {
        return new Inst_MIMG__IMAGE_GET_RESINFO(&iFmt->iFmt_MIMG);
    } // decode_OP_MIMG__IMAGE_GET_RESINFO

    GPUStaticInst*
    Decoder::decode_OP_MIMG__IMAGE_ATOMIC_SWAP(MachInst iFmt)
    {
        return new Inst_MIMG__IMAGE_ATOMIC_SWAP(&iFmt->iFmt_MIMG);
    } // decode_OP_MIMG__IMAGE_ATOMIC_SWAP

    GPUStaticInst*
    Decoder::decode_OP_MIMG__IMAGE_ATOMIC_CMPSWAP(MachInst iFmt)
    {
        return new Inst_MIMG__IMAGE_ATOMIC_CMPSWAP(&iFmt->iFmt_MIMG);
    } // decode_OP_MIMG__IMAGE_ATOMIC_CMPSWAP

    GPUStaticInst*
    Decoder::decode_OP_MIMG__IMAGE_ATOMIC_ADD(MachInst iFmt)
    {
        return new Inst_MIMG__IMAGE_ATOMIC_ADD(&iFmt->iFmt_MIMG);
    } // decode_OP_MIMG__IMAGE_ATOMIC_ADD

    GPUStaticInst*
    Decoder::decode_OP_MIMG__IMAGE_ATOMIC_SUB(MachInst iFmt)
    {
        return new Inst_MIMG__IMAGE_ATOMIC_SUB(&iFmt->iFmt_MIMG);
    } // decode_OP_MIMG__IMAGE_ATOMIC_SUB

    GPUStaticInst*
    Decoder::decode_OP_MIMG__IMAGE_ATOMIC_SMIN(MachInst iFmt)
    {
        return new Inst_MIMG__IMAGE_ATOMIC_SMIN(&iFmt->iFmt_MIMG);
    } // decode_OP_MIMG__IMAGE_ATOMIC_SMIN

    GPUStaticInst*
    Decoder::decode_OP_MIMG__IMAGE_ATOMIC_UMIN(MachInst iFmt)
    {
        return new Inst_MIMG__IMAGE_ATOMIC_UMIN(&iFmt->iFmt_MIMG);
    } // decode_OP_MIMG__IMAGE_ATOMIC_UMIN

    GPUStaticInst*
    Decoder::decode_OP_MIMG__IMAGE_ATOMIC_SMAX(MachInst iFmt)
    {
        return new Inst_MIMG__IMAGE_ATOMIC_SMAX(&iFmt->iFmt_MIMG);
    } // decode_OP_MIMG__IMAGE_ATOMIC_SMAX

    GPUStaticInst*
    Decoder::decode_OP_MIMG__IMAGE_ATOMIC_UMAX(MachInst iFmt)
    {
        return new Inst_MIMG__IMAGE_ATOMIC_UMAX(&iFmt->iFmt_MIMG);
    } // decode_OP_MIMG__IMAGE_ATOMIC_UMAX

    GPUStaticInst*
    Decoder::decode_OP_MIMG__IMAGE_ATOMIC_AND(MachInst iFmt)
    {
        return new Inst_MIMG__IMAGE_ATOMIC_AND(&iFmt->iFmt_MIMG);
    } // decode_OP_MIMG__IMAGE_ATOMIC_AND

    GPUStaticInst*
    Decoder::decode_OP_MIMG__IMAGE_ATOMIC_OR(MachInst iFmt)
    {
        return new Inst_MIMG__IMAGE_ATOMIC_OR(&iFmt->iFmt_MIMG);
    } // decode_OP_MIMG__IMAGE_ATOMIC_OR

    GPUStaticInst*
    Decoder::decode_OP_MIMG__IMAGE_ATOMIC_XOR(MachInst iFmt)
    {
        return new Inst_MIMG__IMAGE_ATOMIC_XOR(&iFmt->iFmt_MIMG);
    } // decode_OP_MIMG__IMAGE_ATOMIC_XOR

    GPUStaticInst*
    Decoder::decode_OP_MIMG__IMAGE_ATOMIC_INC(MachInst iFmt)
    {
        return new Inst_MIMG__IMAGE_ATOMIC_INC(&iFmt->iFmt_MIMG);
    } // decode_OP_MIMG__IMAGE_ATOMIC_INC

    GPUStaticInst*
    Decoder::decode_OP_MIMG__IMAGE_ATOMIC_DEC(MachInst iFmt)
    {
        return new Inst_MIMG__IMAGE_ATOMIC_DEC(&iFmt->iFmt_MIMG);
    } // decode_OP_MIMG__IMAGE_ATOMIC_DEC

    GPUStaticInst*
    Decoder::decode_OP_MIMG__IMAGE_SAMPLE(MachInst iFmt)
    {
        return new Inst_MIMG__IMAGE_SAMPLE(&iFmt->iFmt_MIMG);
    } // decode_OP_MIMG__IMAGE_SAMPLE

    GPUStaticInst*
    Decoder::decode_OP_MIMG__IMAGE_SAMPLE_CL(MachInst iFmt)
    {
        return new Inst_MIMG__IMAGE_SAMPLE_CL(&iFmt->iFmt_MIMG);
    } // decode_OP_MIMG__IMAGE_SAMPLE_CL

    GPUStaticInst*
    Decoder::decode_OP_MIMG__IMAGE_SAMPLE_D(MachInst iFmt)
    {
        return new Inst_MIMG__IMAGE_SAMPLE_D(&iFmt->iFmt_MIMG);
    } // decode_OP_MIMG__IMAGE_SAMPLE_D

    GPUStaticInst*
    Decoder::decode_OP_MIMG__IMAGE_SAMPLE_D_CL(MachInst iFmt)
    {
        return new Inst_MIMG__IMAGE_SAMPLE_D_CL(&iFmt->iFmt_MIMG);
    } // decode_OP_MIMG__IMAGE_SAMPLE_D_CL

    GPUStaticInst*
    Decoder::decode_OP_MIMG__IMAGE_SAMPLE_L(MachInst iFmt)
    {
        return new Inst_MIMG__IMAGE_SAMPLE_L(&iFmt->iFmt_MIMG);
    } // decode_OP_MIMG__IMAGE_SAMPLE_L

    GPUStaticInst*
    Decoder::decode_OP_MIMG__IMAGE_SAMPLE_B(MachInst iFmt)
    {
        return new Inst_MIMG__IMAGE_SAMPLE_B(&iFmt->iFmt_MIMG);
    } // decode_OP_MIMG__IMAGE_SAMPLE_B

    GPUStaticInst*
    Decoder::decode_OP_MIMG__IMAGE_SAMPLE_B_CL(MachInst iFmt)
    {
        return new Inst_MIMG__IMAGE_SAMPLE_B_CL(&iFmt->iFmt_MIMG);
    } // decode_OP_MIMG__IMAGE_SAMPLE_B_CL

    GPUStaticInst*
    Decoder::decode_OP_MIMG__IMAGE_SAMPLE_LZ(MachInst iFmt)
    {
        return new Inst_MIMG__IMAGE_SAMPLE_LZ(&iFmt->iFmt_MIMG);
    } // decode_OP_MIMG__IMAGE_SAMPLE_LZ

    GPUStaticInst*
    Decoder::decode_OP_MIMG__IMAGE_SAMPLE_C(MachInst iFmt)
    {
        return new Inst_MIMG__IMAGE_SAMPLE_C(&iFmt->iFmt_MIMG);
    } // decode_OP_MIMG__IMAGE_SAMPLE_C

    GPUStaticInst*
    Decoder::decode_OP_MIMG__IMAGE_SAMPLE_C_CL(MachInst iFmt)
    {
        return new Inst_MIMG__IMAGE_SAMPLE_C_CL(&iFmt->iFmt_MIMG);
    } // decode_OP_MIMG__IMAGE_SAMPLE_C_CL

    GPUStaticInst*
    Decoder::decode_OP_MIMG__IMAGE_SAMPLE_C_D(MachInst iFmt)
    {
        return new Inst_MIMG__IMAGE_SAMPLE_C_D(&iFmt->iFmt_MIMG);
    } // decode_OP_MIMG__IMAGE_SAMPLE_C_D

    GPUStaticInst*
    Decoder::decode_OP_MIMG__IMAGE_SAMPLE_C_D_CL(MachInst iFmt)
    {
        return new Inst_MIMG__IMAGE_SAMPLE_C_D_CL(&iFmt->iFmt_MIMG);
    } // decode_OP_MIMG__IMAGE_SAMPLE_C_D_CL

    GPUStaticInst*
    Decoder::decode_OP_MIMG__IMAGE_SAMPLE_C_L(MachInst iFmt)
    {
        return new Inst_MIMG__IMAGE_SAMPLE_C_L(&iFmt->iFmt_MIMG);
    } // decode_OP_MIMG__IMAGE_SAMPLE_C_L

    GPUStaticInst*
    Decoder::decode_OP_MIMG__IMAGE_SAMPLE_C_B(MachInst iFmt)
    {
        return new Inst_MIMG__IMAGE_SAMPLE_C_B(&iFmt->iFmt_MIMG);
    } // decode_OP_MIMG__IMAGE_SAMPLE_C_B

    GPUStaticInst*
    Decoder::decode_OP_MIMG__IMAGE_SAMPLE_C_B_CL(MachInst iFmt)
    {
        return new Inst_MIMG__IMAGE_SAMPLE_C_B_CL(&iFmt->iFmt_MIMG);
    } // decode_OP_MIMG__IMAGE_SAMPLE_C_B_CL

    GPUStaticInst*
    Decoder::decode_OP_MIMG__IMAGE_SAMPLE_C_LZ(MachInst iFmt)
    {
        return new Inst_MIMG__IMAGE_SAMPLE_C_LZ(&iFmt->iFmt_MIMG);
    } // decode_OP_MIMG__IMAGE_SAMPLE_C_LZ

    GPUStaticInst*
    Decoder::decode_OP_MIMG__IMAGE_SAMPLE_O(MachInst iFmt)
    {
        return new Inst_MIMG__IMAGE_SAMPLE_O(&iFmt->iFmt_MIMG);
    } // decode_OP_MIMG__IMAGE_SAMPLE_O

    GPUStaticInst*
    Decoder::decode_OP_MIMG__IMAGE_SAMPLE_CL_O(MachInst iFmt)
    {
        return new Inst_MIMG__IMAGE_SAMPLE_CL_O(&iFmt->iFmt_MIMG);
    } // decode_OP_MIMG__IMAGE_SAMPLE_CL_O

    GPUStaticInst*
    Decoder::decode_OP_MIMG__IMAGE_SAMPLE_D_O(MachInst iFmt)
    {
        return new Inst_MIMG__IMAGE_SAMPLE_D_O(&iFmt->iFmt_MIMG);
    } // decode_OP_MIMG__IMAGE_SAMPLE_D_O

    GPUStaticInst*
    Decoder::decode_OP_MIMG__IMAGE_SAMPLE_D_CL_O(MachInst iFmt)
    {
        return new Inst_MIMG__IMAGE_SAMPLE_D_CL_O(&iFmt->iFmt_MIMG);
    } // decode_OP_MIMG__IMAGE_SAMPLE_D_CL_O

    GPUStaticInst*
    Decoder::decode_OP_MIMG__IMAGE_SAMPLE_L_O(MachInst iFmt)
    {
        return new Inst_MIMG__IMAGE_SAMPLE_L_O(&iFmt->iFmt_MIMG);
    } // decode_OP_MIMG__IMAGE_SAMPLE_L_O

    GPUStaticInst*
    Decoder::decode_OP_MIMG__IMAGE_SAMPLE_B_O(MachInst iFmt)
    {
        return new Inst_MIMG__IMAGE_SAMPLE_B_O(&iFmt->iFmt_MIMG);
    } // decode_OP_MIMG__IMAGE_SAMPLE_B_O

    GPUStaticInst*
    Decoder::decode_OP_MIMG__IMAGE_SAMPLE_B_CL_O(MachInst iFmt)
    {
        return new Inst_MIMG__IMAGE_SAMPLE_B_CL_O(&iFmt->iFmt_MIMG);
    } // decode_OP_MIMG__IMAGE_SAMPLE_B_CL_O

    GPUStaticInst*
    Decoder::decode_OP_MIMG__IMAGE_SAMPLE_LZ_O(MachInst iFmt)
    {
        return new Inst_MIMG__IMAGE_SAMPLE_LZ_O(&iFmt->iFmt_MIMG);
    } // decode_OP_MIMG__IMAGE_SAMPLE_LZ_O

    GPUStaticInst*
    Decoder::decode_OP_MIMG__IMAGE_SAMPLE_C_O(MachInst iFmt)
    {
        return new Inst_MIMG__IMAGE_SAMPLE_C_O(&iFmt->iFmt_MIMG);
    } // decode_OP_MIMG__IMAGE_SAMPLE_C_O

    GPUStaticInst*
    Decoder::decode_OP_MIMG__IMAGE_SAMPLE_C_CL_O(MachInst iFmt)
    {
        return new Inst_MIMG__IMAGE_SAMPLE_C_CL_O(&iFmt->iFmt_MIMG);
    } // decode_OP_MIMG__IMAGE_SAMPLE_C_CL_O

    GPUStaticInst*
    Decoder::decode_OP_MIMG__IMAGE_SAMPLE_C_D_O(MachInst iFmt)
    {
        return new Inst_MIMG__IMAGE_SAMPLE_C_D_O(&iFmt->iFmt_MIMG);
    } // decode_OP_MIMG__IMAGE_SAMPLE_C_D_O

    GPUStaticInst*
    Decoder::decode_OP_MIMG__IMAGE_SAMPLE_C_D_CL_O(MachInst iFmt)
    {
        return new Inst_MIMG__IMAGE_SAMPLE_C_D_CL_O(&iFmt->iFmt_MIMG);
    } // decode_OP_MIMG__IMAGE_SAMPLE_C_D_CL_O

    GPUStaticInst*
    Decoder::decode_OP_MIMG__IMAGE_SAMPLE_C_L_O(MachInst iFmt)
    {
        return new Inst_MIMG__IMAGE_SAMPLE_C_L_O(&iFmt->iFmt_MIMG);
    } // decode_OP_MIMG__IMAGE_SAMPLE_C_L_O

    GPUStaticInst*
    Decoder::decode_OP_MIMG__IMAGE_SAMPLE_C_B_O(MachInst iFmt)
    {
        return new Inst_MIMG__IMAGE_SAMPLE_C_B_O(&iFmt->iFmt_MIMG);
    } // decode_OP_MIMG__IMAGE_SAMPLE_C_B_O

    GPUStaticInst*
    Decoder::decode_OP_MIMG__IMAGE_SAMPLE_C_B_CL_O(MachInst iFmt)
    {
        return new Inst_MIMG__IMAGE_SAMPLE_C_B_CL_O(&iFmt->iFmt_MIMG);
    } // decode_OP_MIMG__IMAGE_SAMPLE_C_B_CL_O

    GPUStaticInst*
    Decoder::decode_OP_MIMG__IMAGE_SAMPLE_C_LZ_O(MachInst iFmt)
    {
        return new Inst_MIMG__IMAGE_SAMPLE_C_LZ_O(&iFmt->iFmt_MIMG);
    } // decode_OP_MIMG__IMAGE_SAMPLE_C_LZ_O

    GPUStaticInst*
    Decoder::decode_OP_MIMG__IMAGE_GATHER4(MachInst iFmt)
    {
        return new Inst_MIMG__IMAGE_GATHER4(&iFmt->iFmt_MIMG);
    } // decode_OP_MIMG__IMAGE_GATHER4

    GPUStaticInst*
    Decoder::decode_OP_MIMG__IMAGE_GATHER4_CL(MachInst iFmt)
    {
        return new Inst_MIMG__IMAGE_GATHER4_CL(&iFmt->iFmt_MIMG);
    } // decode_OP_MIMG__IMAGE_GATHER4_CL

    GPUStaticInst*
    Decoder::decode_OP_MIMG__IMAGE_GATHER4H(MachInst iFmt)
    {
        fatal("Trying to decode instruction without a class\n");
        return nullptr;
    }

    GPUStaticInst*
    Decoder::decode_OP_MIMG__IMAGE_GATHER4_L(MachInst iFmt)
    {
        return new Inst_MIMG__IMAGE_GATHER4_L(&iFmt->iFmt_MIMG);
    } // decode_OP_MIMG__IMAGE_GATHER4_L

    GPUStaticInst*
    Decoder::decode_OP_MIMG__IMAGE_GATHER4_B(MachInst iFmt)
    {
        return new Inst_MIMG__IMAGE_GATHER4_B(&iFmt->iFmt_MIMG);
    } // decode_OP_MIMG__IMAGE_GATHER4_B

    GPUStaticInst*
    Decoder::decode_OP_MIMG__IMAGE_GATHER4_B_CL(MachInst iFmt)
    {
        return new Inst_MIMG__IMAGE_GATHER4_B_CL(&iFmt->iFmt_MIMG);
    } // decode_OP_MIMG__IMAGE_GATHER4_B_CL

    GPUStaticInst*
    Decoder::decode_OP_MIMG__IMAGE_GATHER4_LZ(MachInst iFmt)
    {
        return new Inst_MIMG__IMAGE_GATHER4_LZ(&iFmt->iFmt_MIMG);
    } // decode_OP_MIMG__IMAGE_GATHER4_LZ

    GPUStaticInst*
    Decoder::decode_OP_MIMG__IMAGE_GATHER4_C(MachInst iFmt)
    {
        return new Inst_MIMG__IMAGE_GATHER4_C(&iFmt->iFmt_MIMG);
    } // decode_OP_MIMG__IMAGE_GATHER4_C

    GPUStaticInst*
    Decoder::decode_OP_MIMG__IMAGE_GATHER4_C_CL(MachInst iFmt)
    {
        return new Inst_MIMG__IMAGE_GATHER4_C_CL(&iFmt->iFmt_MIMG);
    } // decode_OP_MIMG__IMAGE_GATHER4_C_CL

    GPUStaticInst*
    Decoder::decode_OP_MIMG__IMAGE_GATHER4H_PCK(MachInst iFmt)
    {
        fatal("Trying to decode instruction without a class\n");
        return nullptr;
    }

    GPUStaticInst*
    Decoder::decode_OP_MIMG__IMAGE_GATHER8H_PCK(MachInst iFmt)
    {
        fatal("Trying to decode instruction without a class\n");
        return nullptr;
    }

    GPUStaticInst*
    Decoder::decode_OP_MIMG__IMAGE_GATHER4_C_L(MachInst iFmt)
    {
        return new Inst_MIMG__IMAGE_GATHER4_C_L(&iFmt->iFmt_MIMG);
    } // decode_OP_MIMG__IMAGE_GATHER4_C_L

    GPUStaticInst*
    Decoder::decode_OP_MIMG__IMAGE_GATHER4_C_B(MachInst iFmt)
    {
        return new Inst_MIMG__IMAGE_GATHER4_C_B(&iFmt->iFmt_MIMG);
    } // decode_OP_MIMG__IMAGE_GATHER4_C_B

    GPUStaticInst*
    Decoder::decode_OP_MIMG__IMAGE_GATHER4_C_B_CL(MachInst iFmt)
    {
        return new Inst_MIMG__IMAGE_GATHER4_C_B_CL(&iFmt->iFmt_MIMG);
    } // decode_OP_MIMG__IMAGE_GATHER4_C_B_CL

    GPUStaticInst*
    Decoder::decode_OP_MIMG__IMAGE_GATHER4_C_LZ(MachInst iFmt)
    {
        return new Inst_MIMG__IMAGE_GATHER4_C_LZ(&iFmt->iFmt_MIMG);
    } // decode_OP_MIMG__IMAGE_GATHER4_C_LZ

    GPUStaticInst*
    Decoder::decode_OP_MIMG__IMAGE_GATHER4_O(MachInst iFmt)
    {
        return new Inst_MIMG__IMAGE_GATHER4_O(&iFmt->iFmt_MIMG);
    } // decode_OP_MIMG__IMAGE_GATHER4_O

    GPUStaticInst*
    Decoder::decode_OP_MIMG__IMAGE_GATHER4_CL_O(MachInst iFmt)
    {
        return new Inst_MIMG__IMAGE_GATHER4_CL_O(&iFmt->iFmt_MIMG);
    } // decode_OP_MIMG__IMAGE_GATHER4_CL_O

    GPUStaticInst*
    Decoder::decode_OP_MIMG__IMAGE_GATHER4_L_O(MachInst iFmt)
    {
        return new Inst_MIMG__IMAGE_GATHER4_L_O(&iFmt->iFmt_MIMG);
    } // decode_OP_MIMG__IMAGE_GATHER4_L_O

    GPUStaticInst*
    Decoder::decode_OP_MIMG__IMAGE_GATHER4_B_O(MachInst iFmt)
    {
        return new Inst_MIMG__IMAGE_GATHER4_B_O(&iFmt->iFmt_MIMG);
    } // decode_OP_MIMG__IMAGE_GATHER4_B_O

    GPUStaticInst*
    Decoder::decode_OP_MIMG__IMAGE_GATHER4_B_CL_O(MachInst iFmt)
    {
        return new Inst_MIMG__IMAGE_GATHER4_B_CL_O(&iFmt->iFmt_MIMG);
    } // decode_OP_MIMG__IMAGE_GATHER4_B_CL_O

    GPUStaticInst*
    Decoder::decode_OP_MIMG__IMAGE_GATHER4_LZ_O(MachInst iFmt)
    {
        return new Inst_MIMG__IMAGE_GATHER4_LZ_O(&iFmt->iFmt_MIMG);
    } // decode_OP_MIMG__IMAGE_GATHER4_LZ_O

    GPUStaticInst*
    Decoder::decode_OP_MIMG__IMAGE_GATHER4_C_O(MachInst iFmt)
    {
        return new Inst_MIMG__IMAGE_GATHER4_C_O(&iFmt->iFmt_MIMG);
    } // decode_OP_MIMG__IMAGE_GATHER4_C_O

    GPUStaticInst*
    Decoder::decode_OP_MIMG__IMAGE_GATHER4_C_CL_O(MachInst iFmt)
    {
        return new Inst_MIMG__IMAGE_GATHER4_C_CL_O(&iFmt->iFmt_MIMG);
    } // decode_OP_MIMG__IMAGE_GATHER4_C_CL_O

    GPUStaticInst*
    Decoder::decode_OP_MIMG__IMAGE_GATHER4_C_L_O(MachInst iFmt)
    {
        return new Inst_MIMG__IMAGE_GATHER4_C_L_O(&iFmt->iFmt_MIMG);
    } // decode_OP_MIMG__IMAGE_GATHER4_C_L_O

    GPUStaticInst*
    Decoder::decode_OP_MIMG__IMAGE_GATHER4_C_B_O(MachInst iFmt)
    {
        return new Inst_MIMG__IMAGE_GATHER4_C_B_O(&iFmt->iFmt_MIMG);
    } // decode_OP_MIMG__IMAGE_GATHER4_C_B_O

    GPUStaticInst*
    Decoder::decode_OP_MIMG__IMAGE_GATHER4_C_B_CL_O(MachInst iFmt)
    {
        return new Inst_MIMG__IMAGE_GATHER4_C_B_CL_O(&iFmt->iFmt_MIMG);
    } // decode_OP_MIMG__IMAGE_GATHER4_C_B_CL_O

    GPUStaticInst*
    Decoder::decode_OP_MIMG__IMAGE_GATHER4_C_LZ_O(MachInst iFmt)
    {
        return new Inst_MIMG__IMAGE_GATHER4_C_LZ_O(&iFmt->iFmt_MIMG);
    } // decode_OP_MIMG__IMAGE_GATHER4_C_LZ_O

    GPUStaticInst*
    Decoder::decode_OP_MIMG__IMAGE_GET_LOD(MachInst iFmt)
    {
        return new Inst_MIMG__IMAGE_GET_LOD(&iFmt->iFmt_MIMG);
    } // decode_OP_MIMG__IMAGE_GET_LOD

    GPUStaticInst*
    Decoder::decode_OP_MIMG__IMAGE_SAMPLE_CD(MachInst iFmt)
    {
        return new Inst_MIMG__IMAGE_SAMPLE_CD(&iFmt->iFmt_MIMG);
    } // decode_OP_MIMG__IMAGE_SAMPLE_CD

    GPUStaticInst*
    Decoder::decode_OP_MIMG__IMAGE_SAMPLE_CD_CL(MachInst iFmt)
    {
        return new Inst_MIMG__IMAGE_SAMPLE_CD_CL(&iFmt->iFmt_MIMG);
    } // decode_OP_MIMG__IMAGE_SAMPLE_CD_CL

    GPUStaticInst*
    Decoder::decode_OP_MIMG__IMAGE_SAMPLE_C_CD(MachInst iFmt)
    {
        return new Inst_MIMG__IMAGE_SAMPLE_C_CD(&iFmt->iFmt_MIMG);
    } // decode_OP_MIMG__IMAGE_SAMPLE_C_CD

    GPUStaticInst*
    Decoder::decode_OP_MIMG__IMAGE_SAMPLE_C_CD_CL(MachInst iFmt)
    {
        return new Inst_MIMG__IMAGE_SAMPLE_C_CD_CL(&iFmt->iFmt_MIMG);
    } // decode_OP_MIMG__IMAGE_SAMPLE_C_CD_CL

    GPUStaticInst*
    Decoder::decode_OP_MIMG__IMAGE_SAMPLE_CD_O(MachInst iFmt)
    {
        return new Inst_MIMG__IMAGE_SAMPLE_CD_O(&iFmt->iFmt_MIMG);
    } // decode_OP_MIMG__IMAGE_SAMPLE_CD_O

    GPUStaticInst*
    Decoder::decode_OP_MIMG__IMAGE_SAMPLE_CD_CL_O(MachInst iFmt)
    {
        return new Inst_MIMG__IMAGE_SAMPLE_CD_CL_O(&iFmt->iFmt_MIMG);
    } // decode_OP_MIMG__IMAGE_SAMPLE_CD_CL_O

    GPUStaticInst*
    Decoder::decode_OP_MIMG__IMAGE_SAMPLE_C_CD_O(MachInst iFmt)
    {
        return new Inst_MIMG__IMAGE_SAMPLE_C_CD_O(&iFmt->iFmt_MIMG);
    } // decode_OP_MIMG__IMAGE_SAMPLE_C_CD_O

    GPUStaticInst*
    Decoder::decode_OP_MIMG__IMAGE_SAMPLE_C_CD_CL_O(MachInst iFmt)
    {
        return new Inst_MIMG__IMAGE_SAMPLE_C_CD_CL_O(&iFmt->iFmt_MIMG);
    } // decode_OP_MIMG__IMAGE_SAMPLE_C_CD_CL_O

    GPUStaticInst*
    Decoder::decode_OP_MTBUF__TBUFFER_LOAD_FORMAT_X(MachInst iFmt)
    {
        return new Inst_MTBUF__TBUFFER_LOAD_FORMAT_X(&iFmt->iFmt_MTBUF);
    } // decode_OP_MTBUF__TBUFFER_LOAD_FORMAT_X

    GPUStaticInst*
    Decoder::decode_OP_MTBUF__TBUFFER_LOAD_FORMAT_XY(MachInst iFmt)
    {
        return new Inst_MTBUF__TBUFFER_LOAD_FORMAT_XY(&iFmt->iFmt_MTBUF);
    } // decode_OP_MTBUF__TBUFFER_LOAD_FORMAT_XY

    GPUStaticInst*
    Decoder::decode_OP_MTBUF__TBUFFER_LOAD_FORMAT_XYZ(MachInst iFmt)
    {
        return new Inst_MTBUF__TBUFFER_LOAD_FORMAT_XYZ(&iFmt->iFmt_MTBUF);
    } // decode_OP_MTBUF__TBUFFER_LOAD_FORMAT_XYZ

    GPUStaticInst*
    Decoder::decode_OP_MTBUF__TBUFFER_LOAD_FORMAT_XYZW(MachInst iFmt)
    {
        return new Inst_MTBUF__TBUFFER_LOAD_FORMAT_XYZW(&iFmt->iFmt_MTBUF);
    } // decode_OP_MTBUF__TBUFFER_LOAD_FORMAT_XYZW

    GPUStaticInst*
    Decoder::decode_OP_MTBUF__TBUFFER_STORE_FORMAT_X(MachInst iFmt)
    {
        return new Inst_MTBUF__TBUFFER_STORE_FORMAT_X(&iFmt->iFmt_MTBUF);
    } // decode_OP_MTBUF__TBUFFER_STORE_FORMAT_X

    GPUStaticInst*
    Decoder::decode_OP_MTBUF__TBUFFER_STORE_FORMAT_XY(MachInst iFmt)
    {
        return new Inst_MTBUF__TBUFFER_STORE_FORMAT_XY(&iFmt->iFmt_MTBUF);
    } // decode_OP_MTBUF__TBUFFER_STORE_FORMAT_XY

    GPUStaticInst*
    Decoder::decode_OP_MTBUF__TBUFFER_STORE_FORMAT_XYZ(MachInst iFmt)
    {
        return new Inst_MTBUF__TBUFFER_STORE_FORMAT_XYZ(&iFmt->iFmt_MTBUF);
    } // decode_OP_MTBUF__TBUFFER_STORE_FORMAT_XYZ

    GPUStaticInst*
    Decoder::decode_OP_MTBUF__TBUFFER_STORE_FORMAT_XYZW(MachInst iFmt)
    {
        return new Inst_MTBUF__TBUFFER_STORE_FORMAT_XYZW(&iFmt->iFmt_MTBUF);
    } // decode_OP_MTBUF__TBUFFER_STORE_FORMAT_XYZW

    GPUStaticInst*
    Decoder::decode_OP_MTBUF__TBUFFER_LOAD_FORMAT_D16_X(MachInst iFmt)
    {
        return new Inst_MTBUF__TBUFFER_LOAD_FORMAT_D16_X(&iFmt->iFmt_MTBUF);
    } // decode_OP_MTBUF__TBUFFER_LOAD_FORMAT_D16_X

    GPUStaticInst*
    Decoder::decode_OP_MTBUF__TBUFFER_LOAD_FORMAT_D16_XY(MachInst iFmt)
    {
        return new Inst_MTBUF__TBUFFER_LOAD_FORMAT_D16_XY(&iFmt->iFmt_MTBUF);
    } // decode_OP_MTBUF__TBUFFER_LOAD_FORMAT_D16_XY

    GPUStaticInst*
    Decoder::decode_OP_MTBUF__TBUFFER_LOAD_FORMAT_D16_XYZ(MachInst iFmt)
    {
        return new Inst_MTBUF__TBUFFER_LOAD_FORMAT_D16_XYZ(&iFmt->iFmt_MTBUF);
    } // decode_OP_MTBUF__TBUFFER_LOAD_FORMAT_D16_XYZ

    GPUStaticInst*
    Decoder::decode_OP_MTBUF__TBUFFER_LOAD_FORMAT_D16_XYZW(MachInst iFmt)
    {
        return new Inst_MTBUF__TBUFFER_LOAD_FORMAT_D16_XYZW(&iFmt->iFmt_MTBUF);
    } // decode_OP_MTBUF__TBUFFER_LOAD_FORMAT_D16_XYZW

    GPUStaticInst*
    Decoder::decode_OP_MTBUF__TBUFFER_STORE_FORMAT_D16_X(MachInst iFmt)
    {
        return new Inst_MTBUF__TBUFFER_STORE_FORMAT_D16_X(&iFmt->iFmt_MTBUF);
    } // decode_OP_MTBUF__TBUFFER_STORE_FORMAT_D16_X

    GPUStaticInst*
    Decoder::decode_OP_MTBUF__TBUFFER_STORE_FORMAT_D16_XY(MachInst iFmt)
    {
        return new Inst_MTBUF__TBUFFER_STORE_FORMAT_D16_XY(&iFmt->iFmt_MTBUF);
    } // decode_OP_MTBUF__TBUFFER_STORE_FORMAT_D16_XY

    GPUStaticInst*
    Decoder::decode_OP_MTBUF__TBUFFER_STORE_FORMAT_D16_XYZ(MachInst iFmt)
    {
        return new Inst_MTBUF__TBUFFER_STORE_FORMAT_D16_XYZ(&iFmt->iFmt_MTBUF);
    } // decode_OP_MTBUF__TBUFFER_STORE_FORMAT_D16_XYZ

    GPUStaticInst*
    Decoder::decode_OP_MTBUF__TBUFFER_STORE_FORMAT_D16_XYZW(MachInst iFmt)
    {
        return new
            Inst_MTBUF__TBUFFER_STORE_FORMAT_D16_XYZW(&iFmt->iFmt_MTBUF);
    } // decode_OP_MTBUF__TBUFFER_STORE_FORMAT_D16_XYZW

    GPUStaticInst*
    Decoder::decode_OP_MUBUF__BUFFER_LOAD_FORMAT_X(MachInst iFmt)
    {
        return new Inst_MUBUF__BUFFER_LOAD_FORMAT_X(&iFmt->iFmt_MUBUF);
    } // decode_OP_MUBUF__BUFFER_LOAD_FORMAT_X

    GPUStaticInst*
    Decoder::decode_OP_MUBUF__BUFFER_LOAD_FORMAT_XY(MachInst iFmt)
    {
        return new Inst_MUBUF__BUFFER_LOAD_FORMAT_XY(&iFmt->iFmt_MUBUF);
    } // decode_OP_MUBUF__BUFFER_LOAD_FORMAT_XY

    GPUStaticInst*
    Decoder::decode_OP_MUBUF__BUFFER_LOAD_FORMAT_XYZ(MachInst iFmt)
    {
        return new Inst_MUBUF__BUFFER_LOAD_FORMAT_XYZ(&iFmt->iFmt_MUBUF);
    } // decode_OP_MUBUF__BUFFER_LOAD_FORMAT_XYZ

    GPUStaticInst*
    Decoder::decode_OP_MUBUF__BUFFER_LOAD_FORMAT_XYZW(MachInst iFmt)
    {
        return new Inst_MUBUF__BUFFER_LOAD_FORMAT_XYZW(&iFmt->iFmt_MUBUF);
    } // decode_OP_MUBUF__BUFFER_LOAD_FORMAT_XYZW

    GPUStaticInst*
    Decoder::decode_OP_MUBUF__BUFFER_STORE_FORMAT_X(MachInst iFmt)
    {
        return new Inst_MUBUF__BUFFER_STORE_FORMAT_X(&iFmt->iFmt_MUBUF);
    } // decode_OP_MUBUF__BUFFER_STORE_FORMAT_X

    GPUStaticInst*
    Decoder::decode_OP_MUBUF__BUFFER_STORE_FORMAT_XY(MachInst iFmt)
    {
        return new Inst_MUBUF__BUFFER_STORE_FORMAT_XY(&iFmt->iFmt_MUBUF);
    } // decode_OP_MUBUF__BUFFER_STORE_FORMAT_XY

    GPUStaticInst*
    Decoder::decode_OP_MUBUF__BUFFER_STORE_FORMAT_XYZ(MachInst iFmt)
    {
        return new Inst_MUBUF__BUFFER_STORE_FORMAT_XYZ(&iFmt->iFmt_MUBUF);
    } // decode_OP_MUBUF__BUFFER_STORE_FORMAT_XYZ

    GPUStaticInst*
    Decoder::decode_OP_MUBUF__BUFFER_STORE_FORMAT_XYZW(MachInst iFmt)
    {
        return new Inst_MUBUF__BUFFER_STORE_FORMAT_XYZW(&iFmt->iFmt_MUBUF);
    } // decode_OP_MUBUF__BUFFER_STORE_FORMAT_XYZW

    GPUStaticInst*
    Decoder::decode_OP_MUBUF__BUFFER_LOAD_FORMAT_D16_X(MachInst iFmt)
    {
        return new Inst_MUBUF__BUFFER_LOAD_FORMAT_D16_X(&iFmt->iFmt_MUBUF);
    } // decode_OP_MUBUF__BUFFER_LOAD_FORMAT_D16_X

    GPUStaticInst*
    Decoder::decode_OP_MUBUF__BUFFER_LOAD_FORMAT_D16_XY(MachInst iFmt)
    {
        return new Inst_MUBUF__BUFFER_LOAD_FORMAT_D16_XY(&iFmt->iFmt_MUBUF);
    } // decode_OP_MUBUF__BUFFER_LOAD_FORMAT_D16_XY

    GPUStaticInst*
    Decoder::decode_OP_MUBUF__BUFFER_LOAD_FORMAT_D16_XYZ(MachInst iFmt)
    {
        return new Inst_MUBUF__BUFFER_LOAD_FORMAT_D16_XYZ(&iFmt->iFmt_MUBUF);
    } // decode_OP_MUBUF__BUFFER_LOAD_FORMAT_D16_XYZ

    GPUStaticInst*
    Decoder::decode_OP_MUBUF__BUFFER_LOAD_FORMAT_D16_XYZW(MachInst iFmt)
    {
        return new Inst_MUBUF__BUFFER_LOAD_FORMAT_D16_XYZW(&iFmt->iFmt_MUBUF);
    } // decode_OP_MUBUF__BUFFER_LOAD_FORMAT_D16_XYZW

    GPUStaticInst*
    Decoder::decode_OP_MUBUF__BUFFER_STORE_FORMAT_D16_X(MachInst iFmt)
    {
        return new Inst_MUBUF__BUFFER_STORE_FORMAT_D16_X(&iFmt->iFmt_MUBUF);
    } // decode_OP_MUBUF__BUFFER_STORE_FORMAT_D16_X

    GPUStaticInst*
    Decoder::decode_OP_MUBUF__BUFFER_STORE_FORMAT_D16_XY(MachInst iFmt)
    {
        return new Inst_MUBUF__BUFFER_STORE_FORMAT_D16_XY(&iFmt->iFmt_MUBUF);
    } // decode_OP_MUBUF__BUFFER_STORE_FORMAT_D16_XY

    GPUStaticInst*
    Decoder::decode_OP_MUBUF__BUFFER_STORE_FORMAT_D16_XYZ(MachInst iFmt)
    {
        return new Inst_MUBUF__BUFFER_STORE_FORMAT_D16_XYZ(&iFmt->iFmt_MUBUF);
    } // decode_OP_MUBUF__BUFFER_STORE_FORMAT_D16_XYZ

    GPUStaticInst*
    Decoder::decode_OP_MUBUF__BUFFER_STORE_FORMAT_D16_XYZW(MachInst iFmt)
    {
        return new Inst_MUBUF__BUFFER_STORE_FORMAT_D16_XYZW(&iFmt->iFmt_MUBUF);
    } // decode_OP_MUBUF__BUFFER_STORE_FORMAT_D16_XYZW

    GPUStaticInst*
    Decoder::decode_OP_MUBUF__BUFFER_LOAD_UBYTE(MachInst iFmt)
    {
        return new Inst_MUBUF__BUFFER_LOAD_UBYTE(&iFmt->iFmt_MUBUF);
    } // decode_OP_MUBUF__BUFFER_LOAD_UBYTE

    GPUStaticInst*
    Decoder::decode_OP_MUBUF__BUFFER_LOAD_SBYTE(MachInst iFmt)
    {
        return new Inst_MUBUF__BUFFER_LOAD_SBYTE(&iFmt->iFmt_MUBUF);
    } // decode_OP_MUBUF__BUFFER_LOAD_SBYTE

    GPUStaticInst*
    Decoder::decode_OP_MUBUF__BUFFER_LOAD_USHORT(MachInst iFmt)
    {
        return new Inst_MUBUF__BUFFER_LOAD_USHORT(&iFmt->iFmt_MUBUF);
    } // decode_OP_MUBUF__BUFFER_LOAD_USHORT

    GPUStaticInst*
    Decoder::decode_OP_MUBUF__BUFFER_LOAD_SSHORT(MachInst iFmt)
    {
        return new Inst_MUBUF__BUFFER_LOAD_SSHORT(&iFmt->iFmt_MUBUF);
    } // decode_OP_MUBUF__BUFFER_LOAD_SSHORT

    GPUStaticInst*
    Decoder::decode_OP_MUBUF__BUFFER_LOAD_DWORD(MachInst iFmt)
    {
        return new Inst_MUBUF__BUFFER_LOAD_DWORD(&iFmt->iFmt_MUBUF);
    } // decode_OP_MUBUF__BUFFER_LOAD_DWORD

    GPUStaticInst*
    Decoder::decode_OP_MUBUF__BUFFER_LOAD_DWORDX2(MachInst iFmt)
    {
        return new Inst_MUBUF__BUFFER_LOAD_DWORDX2(&iFmt->iFmt_MUBUF);
    } // decode_OP_MUBUF__BUFFER_LOAD_DWORDX2

    GPUStaticInst*
    Decoder::decode_OP_MUBUF__BUFFER_LOAD_DWORDX3(MachInst iFmt)
    {
        return new Inst_MUBUF__BUFFER_LOAD_DWORDX3(&iFmt->iFmt_MUBUF);
    } // decode_OP_MUBUF__BUFFER_LOAD_DWORDX3

    GPUStaticInst*
    Decoder::decode_OP_MUBUF__BUFFER_LOAD_DWORDX4(MachInst iFmt)
    {
        return new Inst_MUBUF__BUFFER_LOAD_DWORDX4(&iFmt->iFmt_MUBUF);
    } // decode_OP_MUBUF__BUFFER_LOAD_DWORDX4

    GPUStaticInst*
    Decoder::decode_OP_MUBUF__BUFFER_STORE_BYTE(MachInst iFmt)
    {
        return new Inst_MUBUF__BUFFER_STORE_BYTE(&iFmt->iFmt_MUBUF);
    } // decode_OP_MUBUF__BUFFER_STORE_BYTE

    GPUStaticInst*
    Decoder::decode_OP_MUBUF__BUFFER_STORE_BYTE_D16_HI(MachInst iFmt)
    {
        fatal("Trying to decode instruction without a class\n");
        return nullptr;
    }

    GPUStaticInst*
    Decoder::decode_OP_MUBUF__BUFFER_STORE_SHORT(MachInst iFmt)
    {
        return new Inst_MUBUF__BUFFER_STORE_SHORT(&iFmt->iFmt_MUBUF);
    } // decode_OP_MUBUF__BUFFER_STORE_SHORT

    GPUStaticInst*
    Decoder::decode_OP_MUBUF__BUFFER_STORE_SHORT_D16_HI(MachInst iFmt)
    {
        fatal("Trying to decode instruction without a class\n");
        return nullptr;
    }

    GPUStaticInst*
    Decoder::decode_OP_MUBUF__BUFFER_STORE_DWORD(MachInst iFmt)
    {
        return new Inst_MUBUF__BUFFER_STORE_DWORD(&iFmt->iFmt_MUBUF);
    } // decode_OP_MUBUF__BUFFER_STORE_DWORD

    GPUStaticInst*
    Decoder::decode_OP_MUBUF__BUFFER_STORE_DWORDX2(MachInst iFmt)
    {
        return new Inst_MUBUF__BUFFER_STORE_DWORDX2(&iFmt->iFmt_MUBUF);
    } // decode_OP_MUBUF__BUFFER_STORE_DWORDX2

    GPUStaticInst*
    Decoder::decode_OP_MUBUF__BUFFER_STORE_DWORDX3(MachInst iFmt)
    {
        return new Inst_MUBUF__BUFFER_STORE_DWORDX3(&iFmt->iFmt_MUBUF);
    } // decode_OP_MUBUF__BUFFER_STORE_DWORDX3

    GPUStaticInst*
    Decoder::decode_OP_MUBUF__BUFFER_STORE_DWORDX4(MachInst iFmt)
    {
        return new Inst_MUBUF__BUFFER_STORE_DWORDX4(&iFmt->iFmt_MUBUF);
    } // decode_OP_MUBUF__BUFFER_STORE_DWORDX4

    GPUStaticInst*
    Decoder::decode_OP_MUBUF__BUFFER_STORE_LDS_DWORD(MachInst iFmt)
    {
        return new Inst_MUBUF__BUFFER_STORE_LDS_DWORD(&iFmt->iFmt_MUBUF);
    } // decode_OP_MUBUF__BUFFER_STORE_LDS_DWORD

    GPUStaticInst*
    Decoder::decode_OP_MUBUF__BUFFER_WBINVL1(MachInst iFmt)
    {
        return new Inst_MUBUF__BUFFER_WBINVL1(&iFmt->iFmt_MUBUF);
    } // decode_OP_MUBUF__BUFFER_WBINVL1

    GPUStaticInst*
    Decoder::decode_OP_MUBUF__BUFFER_WBINVL1_VOL(MachInst iFmt)
    {
        return new Inst_MUBUF__BUFFER_WBINVL1_VOL(&iFmt->iFmt_MUBUF);
    } // decode_OP_MUBUF__BUFFER_WBINVL1_VOL

    GPUStaticInst*
    Decoder::decode_OP_MUBUF__BUFFER_ATOMIC_SWAP(MachInst iFmt)
    {
        return new Inst_MUBUF__BUFFER_ATOMIC_SWAP(&iFmt->iFmt_MUBUF);
    } // decode_OP_MUBUF__BUFFER_ATOMIC_SWAP

    GPUStaticInst*
    Decoder::decode_OP_MUBUF__BUFFER_ATOMIC_CMPSWAP(MachInst iFmt)
    {
        return new Inst_MUBUF__BUFFER_ATOMIC_CMPSWAP(&iFmt->iFmt_MUBUF);
    } // decode_OP_MUBUF__BUFFER_ATOMIC_CMPSWAP

    GPUStaticInst*
    Decoder::decode_OP_MUBUF__BUFFER_ATOMIC_ADD(MachInst iFmt)
    {
        return new Inst_MUBUF__BUFFER_ATOMIC_ADD(&iFmt->iFmt_MUBUF);
    } // decode_OP_MUBUF__BUFFER_ATOMIC_ADD

    GPUStaticInst*
    Decoder::decode_OP_MUBUF__BUFFER_ATOMIC_SUB(MachInst iFmt)
    {
        return new Inst_MUBUF__BUFFER_ATOMIC_SUB(&iFmt->iFmt_MUBUF);
    } // decode_OP_MUBUF__BUFFER_ATOMIC_SUB

    GPUStaticInst*
    Decoder::decode_OP_MUBUF__BUFFER_ATOMIC_SMIN(MachInst iFmt)
    {
        return new Inst_MUBUF__BUFFER_ATOMIC_SMIN(&iFmt->iFmt_MUBUF);
    } // decode_OP_MUBUF__BUFFER_ATOMIC_SMIN

    GPUStaticInst*
    Decoder::decode_OP_MUBUF__BUFFER_ATOMIC_UMIN(MachInst iFmt)
    {
        return new Inst_MUBUF__BUFFER_ATOMIC_UMIN(&iFmt->iFmt_MUBUF);
    } // decode_OP_MUBUF__BUFFER_ATOMIC_UMIN

    GPUStaticInst*
    Decoder::decode_OP_MUBUF__BUFFER_ATOMIC_SMAX(MachInst iFmt)
    {
        return new Inst_MUBUF__BUFFER_ATOMIC_SMAX(&iFmt->iFmt_MUBUF);
    } // decode_OP_MUBUF__BUFFER_ATOMIC_SMAX

    GPUStaticInst*
    Decoder::decode_OP_MUBUF__BUFFER_ATOMIC_UMAX(MachInst iFmt)
    {
        return new Inst_MUBUF__BUFFER_ATOMIC_UMAX(&iFmt->iFmt_MUBUF);
    } // decode_OP_MUBUF__BUFFER_ATOMIC_UMAX

    GPUStaticInst*
    Decoder::decode_OP_MUBUF__BUFFER_ATOMIC_AND(MachInst iFmt)
    {
        return new Inst_MUBUF__BUFFER_ATOMIC_AND(&iFmt->iFmt_MUBUF);
    } // decode_OP_MUBUF__BUFFER_ATOMIC_AND

    GPUStaticInst*
    Decoder::decode_OP_MUBUF__BUFFER_ATOMIC_OR(MachInst iFmt)
    {
        return new Inst_MUBUF__BUFFER_ATOMIC_OR(&iFmt->iFmt_MUBUF);
    } // decode_OP_MUBUF__BUFFER_ATOMIC_OR

    GPUStaticInst*
    Decoder::decode_OP_MUBUF__BUFFER_ATOMIC_XOR(MachInst iFmt)
    {
        return new Inst_MUBUF__BUFFER_ATOMIC_XOR(&iFmt->iFmt_MUBUF);
    } // decode_OP_MUBUF__BUFFER_ATOMIC_XOR

    GPUStaticInst*
    Decoder::decode_OP_MUBUF__BUFFER_ATOMIC_INC(MachInst iFmt)
    {
        return new Inst_MUBUF__BUFFER_ATOMIC_INC(&iFmt->iFmt_MUBUF);
    } // decode_OP_MUBUF__BUFFER_ATOMIC_INC

    GPUStaticInst*
    Decoder::decode_OP_MUBUF__BUFFER_ATOMIC_DEC(MachInst iFmt)
    {
        return new Inst_MUBUF__BUFFER_ATOMIC_DEC(&iFmt->iFmt_MUBUF);
    } // decode_OP_MUBUF__BUFFER_ATOMIC_DEC

    GPUStaticInst*
    Decoder::decode_OP_MUBUF__BUFFER_ATOMIC_SWAP_X2(MachInst iFmt)
    {
        return new Inst_MUBUF__BUFFER_ATOMIC_SWAP_X2(&iFmt->iFmt_MUBUF);
    } // decode_OP_MUBUF__BUFFER_ATOMIC_SWAP_X2

    GPUStaticInst*
    Decoder::decode_OP_MUBUF__BUFFER_ATOMIC_CMPSWAP_X2(MachInst iFmt)
    {
        return new Inst_MUBUF__BUFFER_ATOMIC_CMPSWAP_X2(&iFmt->iFmt_MUBUF);
    } // decode_OP_MUBUF__BUFFER_ATOMIC_CMPSWAP_X2

    GPUStaticInst*
    Decoder::decode_OP_MUBUF__BUFFER_ATOMIC_ADD_X2(MachInst iFmt)
    {
        return new Inst_MUBUF__BUFFER_ATOMIC_ADD_X2(&iFmt->iFmt_MUBUF);
    } // decode_OP_MUBUF__BUFFER_ATOMIC_ADD_X2

    GPUStaticInst*
    Decoder::decode_OP_MUBUF__BUFFER_ATOMIC_SUB_X2(MachInst iFmt)
    {
        return new Inst_MUBUF__BUFFER_ATOMIC_SUB_X2(&iFmt->iFmt_MUBUF);
    } // decode_OP_MUBUF__BUFFER_ATOMIC_SUB_X2

    GPUStaticInst*
    Decoder::decode_OP_MUBUF__BUFFER_ATOMIC_SMIN_X2(MachInst iFmt)
    {
        return new Inst_MUBUF__BUFFER_ATOMIC_SMIN_X2(&iFmt->iFmt_MUBUF);
    } // decode_OP_MUBUF__BUFFER_ATOMIC_SMIN_X2

    GPUStaticInst*
    Decoder::decode_OP_MUBUF__BUFFER_ATOMIC_UMIN_X2(MachInst iFmt)
    {
        return new Inst_MUBUF__BUFFER_ATOMIC_UMIN_X2(&iFmt->iFmt_MUBUF);
    } // decode_OP_MUBUF__BUFFER_ATOMIC_UMIN_X2

    GPUStaticInst*
    Decoder::decode_OP_MUBUF__BUFFER_ATOMIC_SMAX_X2(MachInst iFmt)
    {
        return new Inst_MUBUF__BUFFER_ATOMIC_SMAX_X2(&iFmt->iFmt_MUBUF);
    } // decode_OP_MUBUF__BUFFER_ATOMIC_SMAX_X2

    GPUStaticInst*
    Decoder::decode_OP_MUBUF__BUFFER_ATOMIC_UMAX_X2(MachInst iFmt)
    {
        return new Inst_MUBUF__BUFFER_ATOMIC_UMAX_X2(&iFmt->iFmt_MUBUF);
    } // decode_OP_MUBUF__BUFFER_ATOMIC_UMAX_X2

    GPUStaticInst*
    Decoder::decode_OP_MUBUF__BUFFER_ATOMIC_AND_X2(MachInst iFmt)
    {
        return new Inst_MUBUF__BUFFER_ATOMIC_AND_X2(&iFmt->iFmt_MUBUF);
    } // decode_OP_MUBUF__BUFFER_ATOMIC_AND_X2

    GPUStaticInst*
    Decoder::decode_OP_MUBUF__BUFFER_ATOMIC_OR_X2(MachInst iFmt)
    {
        return new Inst_MUBUF__BUFFER_ATOMIC_OR_X2(&iFmt->iFmt_MUBUF);
    } // decode_OP_MUBUF__BUFFER_ATOMIC_OR_X2

    GPUStaticInst*
    Decoder::decode_OP_MUBUF__BUFFER_ATOMIC_XOR_X2(MachInst iFmt)
    {
        return new Inst_MUBUF__BUFFER_ATOMIC_XOR_X2(&iFmt->iFmt_MUBUF);
    } // decode_OP_MUBUF__BUFFER_ATOMIC_XOR_X2

    GPUStaticInst*
    Decoder::decode_OP_MUBUF__BUFFER_ATOMIC_INC_X2(MachInst iFmt)
    {
        return new Inst_MUBUF__BUFFER_ATOMIC_INC_X2(&iFmt->iFmt_MUBUF);
    } // decode_OP_MUBUF__BUFFER_ATOMIC_INC_X2

    GPUStaticInst*
    Decoder::decode_OP_MUBUF__BUFFER_ATOMIC_DEC_X2(MachInst iFmt)
    {
        return new Inst_MUBUF__BUFFER_ATOMIC_DEC_X2(&iFmt->iFmt_MUBUF);
    } // decode_OP_MUBUF__BUFFER_ATOMIC_DEC_X2

    GPUStaticInst*
    Decoder::decode_OP_SCRATCH__SCRATCH_LOAD_UBYTE(MachInst iFmt)
    {
        fatal("Trying to decode instruction without a class\n");
        return nullptr;
    }

    GPUStaticInst*
    Decoder::decode_OP_SCRATCH__SCRATCH_LOAD_SBYTE(MachInst iFmt)
    {
        fatal("Trying to decode instruction without a class\n");
        return nullptr;
    }

    GPUStaticInst*
    Decoder::decode_OP_SCRATCH__SCRATCH_LOAD_USHORT(MachInst iFmt)
    {
        fatal("Trying to decode instruction without a class\n");
        return nullptr;
    }

    GPUStaticInst*
    Decoder::decode_OP_SCRATCH__SCRATCH_LOAD_SSHORT(MachInst iFmt)
    {
        fatal("Trying to decode instruction without a class\n");
        return nullptr;
    }

    GPUStaticInst*
    Decoder::decode_OP_SCRATCH__SCRATCH_LOAD_DWORD(MachInst iFmt)
    {
        fatal("Trying to decode instruction without a class\n");
        return nullptr;
    }

    GPUStaticInst*
    Decoder::decode_OP_SCRATCH__SCRATCH_LOAD_DWORDX2(MachInst iFmt)
    {
        fatal("Trying to decode instruction without a class\n");
        return nullptr;
    }

    GPUStaticInst*
    Decoder::decode_OP_SCRATCH__SCRATCH_LOAD_DWORDX3(MachInst iFmt)
    {
        fatal("Trying to decode instruction without a class\n");
        return nullptr;
    }

    GPUStaticInst*
    Decoder::decode_OP_SCRATCH__SCRATCH_LOAD_DWORDX4(MachInst iFmt)
    {
        fatal("Trying to decode instruction without a class\n");
        return nullptr;
    }

    GPUStaticInst*
    Decoder::decode_OP_SCRATCH__SCRATCH_STORE_BYTE(MachInst iFmt)
    {
        fatal("Trying to decode instruction without a class\n");
        return nullptr;
    }

    GPUStaticInst*
    Decoder::decode_OP_SCRATCH__SCRATCH_STORE_BYTE_D16_HI(MachInst iFmt)
    {
        fatal("Trying to decode instruction without a class\n");
        return nullptr;
    }

    GPUStaticInst*
    Decoder::decode_OP_SCRATCH__SCRATCH_STORE_SHORT(MachInst iFmt)
    {
        fatal("Trying to decode instruction without a class\n");
        return nullptr;
    }

    GPUStaticInst*
    Decoder::decode_OP_SCRATCH__SCRATCH_STORE_SHORT_D16_HI(MachInst iFmt)
    {
        fatal("Trying to decode instruction without a class\n");
        return nullptr;
    }

    GPUStaticInst*
    Decoder::decode_OP_SCRATCH__SCRATCH_STORE_DWORD(MachInst iFmt)
    {
        fatal("Trying to decode instruction without a class\n");
        return nullptr;
    }

    GPUStaticInst*
    Decoder::decode_OP_SCRATCH__SCRATCH_STORE_DWORDX2(MachInst iFmt)
    {
        fatal("Trying to decode instruction without a class\n");
        return nullptr;
    }

    GPUStaticInst*
    Decoder::decode_OP_SCRATCH__SCRATCH_STORE_DWORDX3(MachInst iFmt)
    {
        fatal("Trying to decode instruction without a class\n");
        return nullptr;
    }

    GPUStaticInst*
    Decoder::decode_OP_SCRATCH__SCRATCH_STORE_DWORDX4(MachInst iFmt)
    {
        fatal("Trying to decode instruction without a class\n");
        return nullptr;
    }

    GPUStaticInst*
    Decoder::decode_OP_SCRATCH__SCRATCH_LOAD_UBYTE_D16(MachInst iFmt)
    {
        fatal("Trying to decode instruction without a class\n");
        return nullptr;
    }

    GPUStaticInst*
    Decoder::decode_OP_SCRATCH__SCRATCH_LOAD_UBYTE_D16_HI(MachInst iFmt)
    {
        fatal("Trying to decode instruction without a class\n");
        return nullptr;
    }

    GPUStaticInst*
    Decoder::decode_OP_SCRATCH__SCRATCH_LOAD_SBYTE_D16(MachInst iFmt)
    {
        fatal("Trying to decode instruction without a class\n");
        return nullptr;
    }

    GPUStaticInst*
    Decoder::decode_OP_SCRATCH__SCRATCH_LOAD_SBYTE_D16_HI(MachInst iFmt)
    {
        fatal("Trying to decode instruction without a class\n");
        return nullptr;
    }

    GPUStaticInst*
    Decoder::decode_OP_SCRATCH__SCRATCH_LOAD_SHORT_D16(MachInst iFmt)
    {
        fatal("Trying to decode instruction without a class\n");
        return nullptr;
    }

    GPUStaticInst*
    Decoder::decode_OP_SCRATCH__SCRATCH_LOAD_SHORT_D16_HI(MachInst iFmt)
    {
        fatal("Trying to decode instruction without a class\n");
        return nullptr;
    }

    GPUStaticInst*
    Decoder::decode_OP_SMEM__S_LOAD_DWORD(MachInst iFmt)
    {
        return new Inst_SMEM__S_LOAD_DWORD(&iFmt->iFmt_SMEM);
    } // decode_OP_SMEM__S_LOAD_DWORD

    GPUStaticInst*
    Decoder::decode_OP_SMEM__S_LOAD_DWORDX2(MachInst iFmt)
    {
        return new Inst_SMEM__S_LOAD_DWORDX2(&iFmt->iFmt_SMEM);
    } // decode_OP_SMEM__S_LOAD_DWORDX2

    GPUStaticInst*
    Decoder::decode_OP_SMEM__S_LOAD_DWORDX4(MachInst iFmt)
    {
        return new Inst_SMEM__S_LOAD_DWORDX4(&iFmt->iFmt_SMEM);
    } // decode_OP_SMEM__S_LOAD_DWORDX4

    GPUStaticInst*
    Decoder::decode_OP_SMEM__S_LOAD_DWORDX8(MachInst iFmt)
    {
        return new Inst_SMEM__S_LOAD_DWORDX8(&iFmt->iFmt_SMEM);
    } // decode_OP_SMEM__S_LOAD_DWORDX8

    GPUStaticInst*
    Decoder::decode_OP_SMEM__S_LOAD_DWORDX16(MachInst iFmt)
    {
        return new Inst_SMEM__S_LOAD_DWORDX16(&iFmt->iFmt_SMEM);
    } // decode_OP_SMEM__S_LOAD_DWORDX16

    GPUStaticInst*
    Decoder::decode_OP_SMEM__S_SCRATCH_LOAD_DWORD(MachInst iFmt)
    {
        fatal("Trying to decode instruction without a class\n");
        return nullptr;
    }

    GPUStaticInst*
    Decoder::decode_OP_SMEM__S_SCRATCH_LOAD_DWORDX2(MachInst iFmt)
    {
        fatal("Trying to decode instruction without a class\n");
        return nullptr;
    }

    GPUStaticInst*
    Decoder::decode_OP_SMEM__S_SCRATCH_LOAD_DWORDX4(MachInst iFmt)
    {
        fatal("Trying to decode instruction without a class\n");
        return nullptr;
    }

    GPUStaticInst*
    Decoder::decode_OP_SMEM__S_BUFFER_LOAD_DWORD(MachInst iFmt)
    {
        return new Inst_SMEM__S_BUFFER_LOAD_DWORD(&iFmt->iFmt_SMEM);
    } // decode_OP_SMEM__S_BUFFER_LOAD_DWORD

    GPUStaticInst*
    Decoder::decode_OP_SMEM__S_BUFFER_LOAD_DWORDX2(MachInst iFmt)
    {
        return new Inst_SMEM__S_BUFFER_LOAD_DWORDX2(&iFmt->iFmt_SMEM);
    } // decode_OP_SMEM__S_BUFFER_LOAD_DWORDX2

    GPUStaticInst*
    Decoder::decode_OP_SMEM__S_BUFFER_LOAD_DWORDX4(MachInst iFmt)
    {
        return new Inst_SMEM__S_BUFFER_LOAD_DWORDX4(&iFmt->iFmt_SMEM);
    } // decode_OP_SMEM__S_BUFFER_LOAD_DWORDX4

    GPUStaticInst*
    Decoder::decode_OP_SMEM__S_BUFFER_LOAD_DWORDX8(MachInst iFmt)
    {
        return new Inst_SMEM__S_BUFFER_LOAD_DWORDX8(&iFmt->iFmt_SMEM);
    } // decode_OP_SMEM__S_BUFFER_LOAD_DWORDX8

    GPUStaticInst*
    Decoder::decode_OP_SMEM__S_BUFFER_LOAD_DWORDX16(MachInst iFmt)
    {
        return new Inst_SMEM__S_BUFFER_LOAD_DWORDX16(&iFmt->iFmt_SMEM);
    } // decode_OP_SMEM__S_BUFFER_LOAD_DWORDX16

    GPUStaticInst*
    Decoder::decode_OP_SMEM__S_STORE_DWORD(MachInst iFmt)
    {
        return new Inst_SMEM__S_STORE_DWORD(&iFmt->iFmt_SMEM);
    } // decode_OP_SMEM__S_STORE_DWORD

    GPUStaticInst*
    Decoder::decode_OP_SMEM__S_STORE_DWORDX2(MachInst iFmt)
    {
        return new Inst_SMEM__S_STORE_DWORDX2(&iFmt->iFmt_SMEM);
    } // decode_OP_SMEM__S_STORE_DWORDX2

    GPUStaticInst*
    Decoder::decode_OP_SMEM__S_STORE_DWORDX4(MachInst iFmt)
    {
        return new Inst_SMEM__S_STORE_DWORDX4(&iFmt->iFmt_SMEM);
    } // decode_OP_SMEM__S_STORE_DWORDX4

    GPUStaticInst*
    Decoder::decode_OP_SMEM__S_SCRATCH_STORE_DWORD(MachInst iFmt)
    {
        fatal("Trying to decode instruction without a class\n");
        return nullptr;
    }

    GPUStaticInst*
    Decoder::decode_OP_SMEM__S_SCRATCH_STORE_DWORDX2(MachInst iFmt)
    {
        fatal("Trying to decode instruction without a class\n");
        return nullptr;
    }

    GPUStaticInst*
    Decoder::decode_OP_SMEM__S_SCRATCH_STORE_DWORDX4(MachInst iFmt)
    {
        fatal("Trying to decode instruction without a class\n");
        return nullptr;
    }

    GPUStaticInst*
    Decoder::decode_OP_SMEM__S_BUFFER_STORE_DWORD(MachInst iFmt)
    {
        return new Inst_SMEM__S_BUFFER_STORE_DWORD(&iFmt->iFmt_SMEM);
    } // decode_OP_SMEM__S_BUFFER_STORE_DWORD

    GPUStaticInst*
    Decoder::decode_OP_SMEM__S_BUFFER_STORE_DWORDX2(MachInst iFmt)
    {
        return new Inst_SMEM__S_BUFFER_STORE_DWORDX2(&iFmt->iFmt_SMEM);
    } // decode_OP_SMEM__S_BUFFER_STORE_DWORDX2

    GPUStaticInst*
    Decoder::decode_OP_SMEM__S_BUFFER_STORE_DWORDX4(MachInst iFmt)
    {
        return new Inst_SMEM__S_BUFFER_STORE_DWORDX4(&iFmt->iFmt_SMEM);
    } // decode_OP_SMEM__S_BUFFER_STORE_DWORDX4

    GPUStaticInst*
    Decoder::decode_OP_MUBUF__BUFFER_LOAD_UBYTE_D16(MachInst iFmt)
    {
        fatal("Trying to decode instruction without a class\n");
        return nullptr;
    }
    GPUStaticInst*
    Decoder::decode_OP_MUBUF__BUFFER_LOAD_UBYTE_D16_HI(MachInst iFmt)
    {
        fatal("Trying to decode instruction without a class\n");
        return nullptr;
    }
    GPUStaticInst*
    Decoder::decode_OP_MUBUF__BUFFER_LOAD_SBYTE_D16(MachInst iFmt)
    {
        fatal("Trying to decode instruction without a class\n");
        return nullptr;
    }
    GPUStaticInst*
    Decoder::decode_OP_MUBUF__BUFFER_LOAD_SBYTE_D16_HI(MachInst iFmt)
    {
        fatal("Trying to decode instruction without a class\n");
        return nullptr;
    }
    GPUStaticInst*
    Decoder::decode_OP_MUBUF__BUFFER_LOAD_SHORT_D16(MachInst iFmt)
    {
        fatal("Trying to decode instruction without a class\n");
        return nullptr;
    }
    GPUStaticInst*
    Decoder::decode_OP_MUBUF__BUFFER_LOAD_SHORT_D16_HI(MachInst iFmt)
    {
        fatal("Trying to decode instruction without a class\n");
        return nullptr;
    }
    GPUStaticInst*
    Decoder::decode_OP_MUBUF__BUFFER_LOAD_FORMAT_D16_HI_X(MachInst iFmt)
    {
        fatal("Trying to decode instruction without a class\n");
        return nullptr;
    }
    GPUStaticInst*
    Decoder::decode_OP_MUBUF__BUFFER_STORE_FORMAT_D16_HI_X(MachInst iFmt)
    {
        fatal("Trying to decode instruction without a class\n");
        return nullptr;
    }

    GPUStaticInst*
    Decoder::decode_OP_SMEM__S_DCACHE_INV(MachInst iFmt)
    {
        return new Inst_SMEM__S_DCACHE_INV(&iFmt->iFmt_SMEM);
    } // decode_OP_SMEM__S_DCACHE_INV

    GPUStaticInst*
    Decoder::decode_OP_SMEM__S_DCACHE_WB(MachInst iFmt)
    {
        return new Inst_SMEM__S_DCACHE_WB(&iFmt->iFmt_SMEM);
    } // decode_OP_SMEM__S_DCACHE_WB

    GPUStaticInst*
    Decoder::decode_OP_SMEM__S_DCACHE_INV_VOL(MachInst iFmt)
    {
        return new Inst_SMEM__S_DCACHE_INV_VOL(&iFmt->iFmt_SMEM);
    } // decode_OP_SMEM__S_DCACHE_INV_VOL

    GPUStaticInst*
    Decoder::decode_OP_SMEM__S_DCACHE_WB_VOL(MachInst iFmt)
    {
        return new Inst_SMEM__S_DCACHE_WB_VOL(&iFmt->iFmt_SMEM);
    } // decode_OP_SMEM__S_DCACHE_WB_VOL

    GPUStaticInst*
    Decoder::decode_OP_SMEM__S_MEMTIME(MachInst iFmt)
    {
        return new Inst_SMEM__S_MEMTIME(&iFmt->iFmt_SMEM);
    } // decode_OP_SMEM__S_MEMTIME

    GPUStaticInst*
    Decoder::decode_OP_SMEM__S_MEMREALTIME(MachInst iFmt)
    {
        return new Inst_SMEM__S_MEMREALTIME(&iFmt->iFmt_SMEM);
    } // decode_OP_SMEM__S_MEMREALTIME

    GPUStaticInst*
    Decoder::decode_OP_SMEM__S_ATC_PROBE(MachInst iFmt)
    {
        return new Inst_SMEM__S_ATC_PROBE(&iFmt->iFmt_SMEM);
    } // decode_OP_SMEM__S_ATC_PROBE

    GPUStaticInst*
    Decoder::decode_OP_SMEM__S_ATC_PROBE_BUFFER(MachInst iFmt)
    {
        return new Inst_SMEM__S_ATC_PROBE_BUFFER(&iFmt->iFmt_SMEM);
    } // decode_OP_SMEM__S_ATC_PROBE_BUFFER

    GPUStaticInst*
    Decoder::decode_OP_SMEM__S_DCACHE_DISCARD(MachInst iFmt)
    {
        fatal("Trying to decode instruction without a class\n");
        return nullptr;
    }

    GPUStaticInst*
    Decoder::decode_OP_SMEM__S_DCACHE_DISCARD_X2(MachInst iFmt)
    {
        fatal("Trying to decode instruction without a class\n");
        return nullptr;
    }

    GPUStaticInst*
    Decoder::decode_OP_SMEM__S_BUFFER_ATOMIC_SWAP(MachInst iFmt)
    {
        fatal("Trying to decode instruction without a class\n");
        return nullptr;
    }

    GPUStaticInst*
    Decoder::decode_OP_SMEM__S_BUFFER_ATOMIC_CMPSWAP(MachInst iFmt)
    {
        fatal("Trying to decode instruction without a class\n");
        return nullptr;
    }

    GPUStaticInst*
    Decoder::decode_OP_SMEM__S_BUFFER_ATOMIC_ADD(MachInst iFmt)
    {
        fatal("Trying to decode instruction without a class\n");
        return nullptr;
    }

    GPUStaticInst*
    Decoder::decode_OP_SMEM__S_BUFFER_ATOMIC_SUB(MachInst iFmt)
    {
        fatal("Trying to decode instruction without a class\n");
        return nullptr;
    }

    GPUStaticInst*
    Decoder::decode_OP_SMEM__S_BUFFER_ATOMIC_SMIN(MachInst iFmt)
    {
        fatal("Trying to decode instruction without a class\n");
        return nullptr;
    }

    GPUStaticInst*
    Decoder::decode_OP_SMEM__S_BUFFER_ATOMIC_UMIN(MachInst iFmt)
    {
        fatal("Trying to decode instruction without a class\n");
        return nullptr;
    }

    GPUStaticInst*
    Decoder::decode_OP_SMEM__S_BUFFER_ATOMIC_SMAX(MachInst iFmt)
    {
        fatal("Trying to decode instruction without a class\n");
        return nullptr;
    }

    GPUStaticInst*
    Decoder::decode_OP_SMEM__S_BUFFER_ATOMIC_UMAX(MachInst iFmt)
    {
        fatal("Trying to decode instruction without a class\n");
        return nullptr;
    }

    GPUStaticInst*
    Decoder::decode_OP_SMEM__S_BUFFER_ATOMIC_AND(MachInst iFmt)
    {
        fatal("Trying to decode instruction without a class\n");
        return nullptr;
    }

    GPUStaticInst*
    Decoder::decode_OP_SMEM__S_BUFFER_ATOMIC_OR(MachInst iFmt)
    {
        fatal("Trying to decode instruction without a class\n");
        return nullptr;
    }

    GPUStaticInst*
    Decoder::decode_OP_SMEM__S_BUFFER_ATOMIC_XOR(MachInst iFmt)
    {
        fatal("Trying to decode instruction without a class\n");
        return nullptr;
    }

    GPUStaticInst*
    Decoder::decode_OP_SMEM__S_BUFFER_ATOMIC_INC(MachInst iFmt)
    {
        fatal("Trying to decode instruction without a class\n");
        return nullptr;
    }

    GPUStaticInst*
    Decoder::decode_OP_SMEM__S_BUFFER_ATOMIC_DEC(MachInst iFmt)
    {
        fatal("Trying to decode instruction without a class\n");
        return nullptr;
    }

    GPUStaticInst*
    Decoder::decode_OP_SMEM__S_BUFFER_ATOMIC_SWAP_X2(MachInst iFmt)
    {
        fatal("Trying to decode instruction without a class\n");
        return nullptr;
    }

    GPUStaticInst*
    Decoder::decode_OP_SMEM__S_BUFFER_ATOMIC_CMPSWAP_X2(MachInst iFmt)
    {
        fatal("Trying to decode instruction without a class\n");
        return nullptr;
    }

    GPUStaticInst*
    Decoder::decode_OP_SMEM__S_BUFFER_ATOMIC_ADD_X2(MachInst iFmt)
    {
        fatal("Trying to decode instruction without a class\n");
        return nullptr;
    }

    GPUStaticInst*
    Decoder::decode_OP_SMEM__S_BUFFER_ATOMIC_SUB_X2(MachInst iFmt)
    {
        fatal("Trying to decode instruction without a class\n");
        return nullptr;
    }

    GPUStaticInst*
    Decoder::decode_OP_SMEM__S_BUFFER_ATOMIC_SMIN_X2(MachInst iFmt)
    {
        fatal("Trying to decode instruction without a class\n");
        return nullptr;
    }

    GPUStaticInst*
    Decoder::decode_OP_SMEM__S_BUFFER_ATOMIC_UMIN_X2(MachInst iFmt)
    {
        fatal("Trying to decode instruction without a class\n");
        return nullptr;
    }

    GPUStaticInst*
    Decoder::decode_OP_SMEM__S_BUFFER_ATOMIC_SMAX_X2(MachInst iFmt)
    {
        fatal("Trying to decode instruction without a class\n");
        return nullptr;
    }

    GPUStaticInst*
    Decoder::decode_OP_SMEM__S_BUFFER_ATOMIC_UMAX_X2(MachInst iFmt)
    {
        fatal("Trying to decode instruction without a class\n");
        return nullptr;
    }

    GPUStaticInst*
    Decoder::decode_OP_SMEM__S_BUFFER_ATOMIC_AND_X2(MachInst iFmt)
    {
        fatal("Trying to decode instruction without a class\n");
        return nullptr;
    }

    GPUStaticInst*
    Decoder::decode_OP_SMEM__S_BUFFER_ATOMIC_OR_X2(MachInst iFmt)
    {
        fatal("Trying to decode instruction without a class\n");
        return nullptr;
    }

    GPUStaticInst*
    Decoder::decode_OP_SMEM__S_BUFFER_ATOMIC_XOR_X2(MachInst iFmt)
    {
        fatal("Trying to decode instruction without a class\n");
        return nullptr;
    }

    GPUStaticInst*
    Decoder::decode_OP_SMEM__S_BUFFER_ATOMIC_INC_X2(MachInst iFmt)
    {
        fatal("Trying to decode instruction without a class\n");
        return nullptr;
    }

    GPUStaticInst*
    Decoder::decode_OP_SMEM__S_BUFFER_ATOMIC_DEC_X2(MachInst iFmt)
    {
        fatal("Trying to decode instruction without a class\n");
        return nullptr;
    }

    GPUStaticInst*
    Decoder::decode_OP_SMEM__S_ATOMIC_SWAP(MachInst iFmt)
    {
        fatal("Trying to decode instruction without a class\n");
        return nullptr;
    }

    GPUStaticInst*
    Decoder::decode_OP_SMEM__S_ATOMIC_CMPSWAP(MachInst iFmt)
    {
        fatal("Trying to decode instruction without a class\n");
        return nullptr;
    }

    GPUStaticInst*
    Decoder::decode_OP_SMEM__S_ATOMIC_ADD(MachInst iFmt)
    {
        fatal("Trying to decode instruction without a class\n");
        return nullptr;
    }

    GPUStaticInst*
    Decoder::decode_OP_SMEM__S_ATOMIC_SUB(MachInst iFmt)
    {
        fatal("Trying to decode instruction without a class\n");
        return nullptr;
    }

    GPUStaticInst*
    Decoder::decode_OP_SMEM__S_ATOMIC_SMIN(MachInst iFmt)
    {
        fatal("Trying to decode instruction without a class\n");
        return nullptr;
    }

    GPUStaticInst*
    Decoder::decode_OP_SMEM__S_ATOMIC_UMIN(MachInst iFmt)
    {
        fatal("Trying to decode instruction without a class\n");
        return nullptr;
    }

    GPUStaticInst*
    Decoder::decode_OP_SMEM__S_ATOMIC_SMAX(MachInst iFmt)
    {
        fatal("Trying to decode instruction without a class\n");
        return nullptr;
    }

    GPUStaticInst*
    Decoder::decode_OP_SMEM__S_ATOMIC_UMAX(MachInst iFmt)
    {
        fatal("Trying to decode instruction without a class\n");
        return nullptr;
    }

    GPUStaticInst*
    Decoder::decode_OP_SMEM__S_ATOMIC_AND(MachInst iFmt)
    {
        fatal("Trying to decode instruction without a class\n");
        return nullptr;
    }

    GPUStaticInst*
    Decoder::decode_OP_SMEM__S_ATOMIC_OR(MachInst iFmt)
    {
        fatal("Trying to decode instruction without a class\n");
        return nullptr;
    }

    GPUStaticInst*
    Decoder::decode_OP_SMEM__S_ATOMIC_XOR(MachInst iFmt)
    {
        fatal("Trying to decode instruction without a class\n");
        return nullptr;
    }

    GPUStaticInst*
    Decoder::decode_OP_SMEM__S_ATOMIC_INC(MachInst iFmt)
    {
        fatal("Trying to decode instruction without a class\n");
        return nullptr;
    }

    GPUStaticInst*
    Decoder::decode_OP_SMEM__S_ATOMIC_DEC(MachInst iFmt)
    {
        fatal("Trying to decode instruction without a class\n");
        return nullptr;
    }

    GPUStaticInst*
    Decoder::decode_OP_SMEM__S_ATOMIC_SWAP_X2(MachInst iFmt)
    {
        fatal("Trying to decode instruction without a class\n");
        return nullptr;
    }

    GPUStaticInst*
    Decoder::decode_OP_SMEM__S_ATOMIC_CMPSWAP_X2(MachInst iFmt)
    {
        fatal("Trying to decode instruction without a class\n");
        return nullptr;
    }

    GPUStaticInst*
    Decoder::decode_OP_SMEM__S_ATOMIC_ADD_X2(MachInst iFmt)
    {
        fatal("Trying to decode instruction without a class\n");
        return nullptr;
    }

    GPUStaticInst*
    Decoder::decode_OP_SMEM__S_ATOMIC_SUB_X2(MachInst iFmt)
    {
        fatal("Trying to decode instruction without a class\n");
        return nullptr;
    }

    GPUStaticInst*
    Decoder::decode_OP_SMEM__S_ATOMIC_SMIN_X2(MachInst iFmt)
    {
        fatal("Trying to decode instruction without a class\n");
        return nullptr;
    }

    GPUStaticInst*
    Decoder::decode_OP_SMEM__S_ATOMIC_UMIN_X2(MachInst iFmt)
    {
        fatal("Trying to decode instruction without a class\n");
        return nullptr;
    }

    GPUStaticInst*
    Decoder::decode_OP_SMEM__S_ATOMIC_SMAX_X2(MachInst iFmt)
    {
        fatal("Trying to decode instruction without a class\n");
        return nullptr;
    }

    GPUStaticInst*
    Decoder::decode_OP_SMEM__S_ATOMIC_UMAX_X2(MachInst iFmt)
    {
        fatal("Trying to decode instruction without a class\n");
        return nullptr;
    }

    GPUStaticInst*
    Decoder::decode_OP_SMEM__S_ATOMIC_AND_X2(MachInst iFmt)
    {
        fatal("Trying to decode instruction without a class\n");
        return nullptr;
    }

    GPUStaticInst*
    Decoder::decode_OP_SMEM__S_ATOMIC_OR_X2(MachInst iFmt)
    {
        fatal("Trying to decode instruction without a class\n");
        return nullptr;
    }

    GPUStaticInst*
    Decoder::decode_OP_SMEM__S_ATOMIC_XOR_X2(MachInst iFmt)
    {
        fatal("Trying to decode instruction without a class\n");
        return nullptr;
    }

    GPUStaticInst*
    Decoder::decode_OP_SMEM__S_ATOMIC_INC_X2(MachInst iFmt)
    {
        fatal("Trying to decode instruction without a class\n");
        return nullptr;
    }

    GPUStaticInst*
    Decoder::decode_OP_SMEM__S_ATOMIC_DEC_X2(MachInst iFmt)
    {
        fatal("Trying to decode instruction without a class\n");
        return nullptr;
    }

    GPUStaticInst*
    Decoder::decode_OP_SOP1__S_MOV_B32(MachInst iFmt)
    {
        return new Inst_SOP1__S_MOV_B32(&iFmt->iFmt_SOP1);
    } // decode_OP_SOP1__S_MOV_B32

    GPUStaticInst*
    Decoder::decode_OP_SOP1__S_MOV_B64(MachInst iFmt)
    {
        return new Inst_SOP1__S_MOV_B64(&iFmt->iFmt_SOP1);
    } // decode_OP_SOP1__S_MOV_B64

    GPUStaticInst*
    Decoder::decode_OP_SOP1__S_CMOV_B32(MachInst iFmt)
    {
        return new Inst_SOP1__S_CMOV_B32(&iFmt->iFmt_SOP1);
    } // decode_OP_SOP1__S_CMOV_B32

    GPUStaticInst*
    Decoder::decode_OP_SOP1__S_CMOV_B64(MachInst iFmt)
    {
        return new Inst_SOP1__S_CMOV_B64(&iFmt->iFmt_SOP1);
    } // decode_OP_SOP1__S_CMOV_B64

    GPUStaticInst*
    Decoder::decode_OP_SOP1__S_NOT_B32(MachInst iFmt)
    {
        return new Inst_SOP1__S_NOT_B32(&iFmt->iFmt_SOP1);
    } // decode_OP_SOP1__S_NOT_B32

    GPUStaticInst*
    Decoder::decode_OP_SOP1__S_NOT_B64(MachInst iFmt)
    {
        return new Inst_SOP1__S_NOT_B64(&iFmt->iFmt_SOP1);
    } // decode_OP_SOP1__S_NOT_B64

    GPUStaticInst*
    Decoder::decode_OP_SOP1__S_WQM_B32(MachInst iFmt)
    {
        return new Inst_SOP1__S_WQM_B32(&iFmt->iFmt_SOP1);
    } // decode_OP_SOP1__S_WQM_B32

    GPUStaticInst*
    Decoder::decode_OP_SOP1__S_WQM_B64(MachInst iFmt)
    {
        return new Inst_SOP1__S_WQM_B64(&iFmt->iFmt_SOP1);
    } // decode_OP_SOP1__S_WQM_B64

    GPUStaticInst*
    Decoder::decode_OP_SOP1__S_BREV_B32(MachInst iFmt)
    {
        return new Inst_SOP1__S_BREV_B32(&iFmt->iFmt_SOP1);
    } // decode_OP_SOP1__S_BREV_B32

    GPUStaticInst*
    Decoder::decode_OP_SOP1__S_BREV_B64(MachInst iFmt)
    {
        return new Inst_SOP1__S_BREV_B64(&iFmt->iFmt_SOP1);
    } // decode_OP_SOP1__S_BREV_B64

    GPUStaticInst*
    Decoder::decode_OP_SOP1__S_BCNT0_I32_B32(MachInst iFmt)
    {
        return new Inst_SOP1__S_BCNT0_I32_B32(&iFmt->iFmt_SOP1);
    } // decode_OP_SOP1__S_BCNT0_I32_B32

    GPUStaticInst*
    Decoder::decode_OP_SOP1__S_BCNT0_I32_B64(MachInst iFmt)
    {
        return new Inst_SOP1__S_BCNT0_I32_B64(&iFmt->iFmt_SOP1);
    } // decode_OP_SOP1__S_BCNT0_I32_B64

    GPUStaticInst*
    Decoder::decode_OP_SOP1__S_BCNT1_I32_B32(MachInst iFmt)
    {
        return new Inst_SOP1__S_BCNT1_I32_B32(&iFmt->iFmt_SOP1);
    } // decode_OP_SOP1__S_BCNT1_I32_B32

    GPUStaticInst*
    Decoder::decode_OP_SOP1__S_BCNT1_I32_B64(MachInst iFmt)
    {
        return new Inst_SOP1__S_BCNT1_I32_B64(&iFmt->iFmt_SOP1);
    } // decode_OP_SOP1__S_BCNT1_I32_B64

    GPUStaticInst*
    Decoder::decode_OP_SOP1__S_FF0_I32_B32(MachInst iFmt)
    {
        return new Inst_SOP1__S_FF0_I32_B32(&iFmt->iFmt_SOP1);
    } // decode_OP_SOP1__S_FF0_I32_B32

    GPUStaticInst*
    Decoder::decode_OP_SOP1__S_FF0_I32_B64(MachInst iFmt)
    {
        return new Inst_SOP1__S_FF0_I32_B64(&iFmt->iFmt_SOP1);
    } // decode_OP_SOP1__S_FF0_I32_B64

    GPUStaticInst*
    Decoder::decode_OP_SOP1__S_FF1_I32_B32(MachInst iFmt)
    {
        return new Inst_SOP1__S_FF1_I32_B32(&iFmt->iFmt_SOP1);
    } // decode_OP_SOP1__S_FF1_I32_B32

    GPUStaticInst*
    Decoder::decode_OP_SOP1__S_FF1_I32_B64(MachInst iFmt)
    {
        return new Inst_SOP1__S_FF1_I32_B64(&iFmt->iFmt_SOP1);
    } // decode_OP_SOP1__S_FF1_I32_B64

    GPUStaticInst*
    Decoder::decode_OP_SOP1__S_FLBIT_I32_B32(MachInst iFmt)
    {
        return new Inst_SOP1__S_FLBIT_I32_B32(&iFmt->iFmt_SOP1);
    } // decode_OP_SOP1__S_FLBIT_I32_B32

    GPUStaticInst*
    Decoder::decode_OP_SOP1__S_FLBIT_I32_B64(MachInst iFmt)
    {
        return new Inst_SOP1__S_FLBIT_I32_B64(&iFmt->iFmt_SOP1);
    } // decode_OP_SOP1__S_FLBIT_I32_B64

    GPUStaticInst*
    Decoder::decode_OP_SOP1__S_FLBIT_I32(MachInst iFmt)
    {
        return new Inst_SOP1__S_FLBIT_I32(&iFmt->iFmt_SOP1);
    } // decode_OP_SOP1__S_FLBIT_I32

    GPUStaticInst*
    Decoder::decode_OP_SOP1__S_FLBIT_I32_I64(MachInst iFmt)
    {
        return new Inst_SOP1__S_FLBIT_I32_I64(&iFmt->iFmt_SOP1);
    } // decode_OP_SOP1__S_FLBIT_I32_I64

    GPUStaticInst*
    Decoder::decode_OP_SOP1__S_SEXT_I32_I8(MachInst iFmt)
    {
        return new Inst_SOP1__S_SEXT_I32_I8(&iFmt->iFmt_SOP1);
    } // decode_OP_SOP1__S_SEXT_I32_I8

    GPUStaticInst*
    Decoder::decode_OP_SOP1__S_SEXT_I32_I16(MachInst iFmt)
    {
        return new Inst_SOP1__S_SEXT_I32_I16(&iFmt->iFmt_SOP1);
    } // decode_OP_SOP1__S_SEXT_I32_I16

    GPUStaticInst*
    Decoder::decode_OP_SOP1__S_BITSET0_B32(MachInst iFmt)
    {
        return new Inst_SOP1__S_BITSET0_B32(&iFmt->iFmt_SOP1);
    } // decode_OP_SOP1__S_BITSET0_B32

    GPUStaticInst*
    Decoder::decode_OP_SOP1__S_BITSET0_B64(MachInst iFmt)
    {
        return new Inst_SOP1__S_BITSET0_B64(&iFmt->iFmt_SOP1);
    } // decode_OP_SOP1__S_BITSET0_B64

    GPUStaticInst*
    Decoder::decode_OP_SOP1__S_BITSET1_B32(MachInst iFmt)
    {
        return new Inst_SOP1__S_BITSET1_B32(&iFmt->iFmt_SOP1);
    } // decode_OP_SOP1__S_BITSET1_B32

    GPUStaticInst*
    Decoder::decode_OP_SOP1__S_BITSET1_B64(MachInst iFmt)
    {
        return new Inst_SOP1__S_BITSET1_B64(&iFmt->iFmt_SOP1);
    } // decode_OP_SOP1__S_BITSET1_B64

    GPUStaticInst*
    Decoder::decode_OP_SOP1__S_GETPC_B64(MachInst iFmt)
    {
        return new Inst_SOP1__S_GETPC_B64(&iFmt->iFmt_SOP1);
    } // decode_OP_SOP1__S_GETPC_B64

    GPUStaticInst*
    Decoder::decode_OP_SOP1__S_SETPC_B64(MachInst iFmt)
    {
        return new Inst_SOP1__S_SETPC_B64(&iFmt->iFmt_SOP1);
    } // decode_OP_SOP1__S_SETPC_B64

    GPUStaticInst*
    Decoder::decode_OP_SOP1__S_SWAPPC_B64(MachInst iFmt)
    {
        return new Inst_SOP1__S_SWAPPC_B64(&iFmt->iFmt_SOP1);
    } // decode_OP_SOP1__S_SWAPPC_B64

    GPUStaticInst*
    Decoder::decode_OP_SOP1__S_RFE_B64(MachInst iFmt)
    {
        return new Inst_SOP1__S_RFE_B64(&iFmt->iFmt_SOP1);
    } // decode_OP_SOP1__S_RFE_B64

    GPUStaticInst*
    Decoder::decode_OP_SOP1__S_AND_SAVEEXEC_B64(MachInst iFmt)
    {
        return new Inst_SOP1__S_AND_SAVEEXEC_B64(&iFmt->iFmt_SOP1);
    } // decode_OP_SOP1__S_AND_SAVEEXEC_B64

    GPUStaticInst*
    Decoder::decode_OP_SOP1__S_OR_SAVEEXEC_B64(MachInst iFmt)
    {
        return new Inst_SOP1__S_OR_SAVEEXEC_B64(&iFmt->iFmt_SOP1);
    } // decode_OP_SOP1__S_OR_SAVEEXEC_B64

    GPUStaticInst*
    Decoder::decode_OP_SOP1__S_XOR_SAVEEXEC_B64(MachInst iFmt)
    {
        return new Inst_SOP1__S_XOR_SAVEEXEC_B64(&iFmt->iFmt_SOP1);
    } // decode_OP_SOP1__S_XOR_SAVEEXEC_B64

    GPUStaticInst*
    Decoder::decode_OP_SOP1__S_ANDN2_SAVEEXEC_B64(MachInst iFmt)
    {
        return new Inst_SOP1__S_ANDN2_SAVEEXEC_B64(&iFmt->iFmt_SOP1);
    } // decode_OP_SOP1__S_ANDN2_SAVEEXEC_B64

    GPUStaticInst*
    Decoder::decode_OP_SOP1__S_ORN2_SAVEEXEC_B64(MachInst iFmt)
    {
        return new Inst_SOP1__S_ORN2_SAVEEXEC_B64(&iFmt->iFmt_SOP1);
    } // decode_OP_SOP1__S_ORN2_SAVEEXEC_B64

    GPUStaticInst*
    Decoder::decode_OP_SOP1__S_NAND_SAVEEXEC_B64(MachInst iFmt)
    {
        return new Inst_SOP1__S_NAND_SAVEEXEC_B64(&iFmt->iFmt_SOP1);
    } // decode_OP_SOP1__S_NAND_SAVEEXEC_B64

    GPUStaticInst*
    Decoder::decode_OP_SOP1__S_NOR_SAVEEXEC_B64(MachInst iFmt)
    {
        return new Inst_SOP1__S_NOR_SAVEEXEC_B64(&iFmt->iFmt_SOP1);
    } // decode_OP_SOP1__S_NOR_SAVEEXEC_B64

    GPUStaticInst*
    Decoder::decode_OP_SOP1__S_XNOR_SAVEEXEC_B64(MachInst iFmt)
    {
        return new Inst_SOP1__S_XNOR_SAVEEXEC_B64(&iFmt->iFmt_SOP1);
    } // decode_OP_SOP1__S_XNOR_SAVEEXEC_B64

    GPUStaticInst*
    Decoder::decode_OP_SOP1__S_QUADMASK_B32(MachInst iFmt)
    {
        return new Inst_SOP1__S_QUADMASK_B32(&iFmt->iFmt_SOP1);
    } // decode_OP_SOP1__S_QUADMASK_B32

    GPUStaticInst*
    Decoder::decode_OP_SOP1__S_QUADMASK_B64(MachInst iFmt)
    {
        return new Inst_SOP1__S_QUADMASK_B64(&iFmt->iFmt_SOP1);
    } // decode_OP_SOP1__S_QUADMASK_B64

    GPUStaticInst*
    Decoder::decode_OP_SOP1__S_MOVRELS_B32(MachInst iFmt)
    {
        return new Inst_SOP1__S_MOVRELS_B32(&iFmt->iFmt_SOP1);
    } // decode_OP_SOP1__S_MOVRELS_B32

    GPUStaticInst*
    Decoder::decode_OP_SOP1__S_MOVRELS_B64(MachInst iFmt)
    {
        return new Inst_SOP1__S_MOVRELS_B64(&iFmt->iFmt_SOP1);
    } // decode_OP_SOP1__S_MOVRELS_B64

    GPUStaticInst*
    Decoder::decode_OP_SOP1__S_MOVRELD_B32(MachInst iFmt)
    {
        return new Inst_SOP1__S_MOVRELD_B32(&iFmt->iFmt_SOP1);
    } // decode_OP_SOP1__S_MOVRELD_B32

    GPUStaticInst*
    Decoder::decode_OP_SOP1__S_MOVRELD_B64(MachInst iFmt)
    {
        return new Inst_SOP1__S_MOVRELD_B64(&iFmt->iFmt_SOP1);
    } // decode_OP_SOP1__S_MOVRELD_B64

    GPUStaticInst*
    Decoder::decode_OP_SOP1__S_CBRANCH_JOIN(MachInst iFmt)
    {
        return new Inst_SOP1__S_CBRANCH_JOIN(&iFmt->iFmt_SOP1);
    } // decode_OP_SOP1__S_CBRANCH_JOIN

    GPUStaticInst*
    Decoder::decode_OP_SOP1__S_ABS_I32(MachInst iFmt)
    {
        return new Inst_SOP1__S_ABS_I32(&iFmt->iFmt_SOP1);
    } // decode_OP_SOP1__S_ABS_I32

    GPUStaticInst*
    Decoder::decode_OP_SOP1__S_SET_GPR_IDX_IDX(MachInst iFmt)
    {
        return new Inst_SOP1__S_SET_GPR_IDX_IDX(&iFmt->iFmt_SOP1);
    } // decode_OP_SOP1__S_SET_GPR_IDX_IDX

    GPUStaticInst*
    Decoder::decode_OP_SOP1__S_ANDN1_SAVEEXEC_B64(MachInst iFmt)
    {
        fatal("Trying to decode instruction without a class\n");
        return nullptr;
    }

    GPUStaticInst*
    Decoder::decode_OP_SOP1__S_ORN1_SAVEEXEC_B64(MachInst iFmt)
    {
        fatal("Trying to decode instruction without a class\n");
        return nullptr;
    }

    GPUStaticInst*
    Decoder::decode_OP_SOP1__S_ANDN1_WREXEC_B64(MachInst iFmt)
    {
        fatal("Trying to decode instruction without a class\n");
        return nullptr;
    }

    GPUStaticInst*
    Decoder::decode_OP_SOP1__S_ANDN2_WREXEC_B64(MachInst iFmt)
    {
        fatal("Trying to decode instruction without a class\n");
        return nullptr;
    }

    GPUStaticInst*
    Decoder::decode_OP_SOP1__S_BITREPLICATE_B64_B32(MachInst iFmt)
    {
        fatal("Trying to decode instruction without a class\n");
        return nullptr;
    }

    GPUStaticInst*
    Decoder::decode_OP_SOPC__S_CMP_EQ_I32(MachInst iFmt)
    {
        return new Inst_SOPC__S_CMP_EQ_I32(&iFmt->iFmt_SOPC);
    } // decode_OP_SOPC__S_CMP_EQ_I32

    GPUStaticInst*
    Decoder::decode_OP_SOPC__S_CMP_LG_I32(MachInst iFmt)
    {
        return new Inst_SOPC__S_CMP_LG_I32(&iFmt->iFmt_SOPC);
    } // decode_OP_SOPC__S_CMP_LG_I32

    GPUStaticInst*
    Decoder::decode_OP_SOPC__S_CMP_GT_I32(MachInst iFmt)
    {
        return new Inst_SOPC__S_CMP_GT_I32(&iFmt->iFmt_SOPC);
    } // decode_OP_SOPC__S_CMP_GT_I32

    GPUStaticInst*
    Decoder::decode_OP_SOPC__S_CMP_GE_I32(MachInst iFmt)
    {
        return new Inst_SOPC__S_CMP_GE_I32(&iFmt->iFmt_SOPC);
    } // decode_OP_SOPC__S_CMP_GE_I32

    GPUStaticInst*
    Decoder::decode_OP_SOPC__S_CMP_LT_I32(MachInst iFmt)
    {
        return new Inst_SOPC__S_CMP_LT_I32(&iFmt->iFmt_SOPC);
    } // decode_OP_SOPC__S_CMP_LT_I32

    GPUStaticInst*
    Decoder::decode_OP_SOPC__S_CMP_LE_I32(MachInst iFmt)
    {
        return new Inst_SOPC__S_CMP_LE_I32(&iFmt->iFmt_SOPC);
    } // decode_OP_SOPC__S_CMP_LE_I32

    GPUStaticInst*
    Decoder::decode_OP_SOPC__S_CMP_EQ_U32(MachInst iFmt)
    {
        return new Inst_SOPC__S_CMP_EQ_U32(&iFmt->iFmt_SOPC);
    } // decode_OP_SOPC__S_CMP_EQ_U32

    GPUStaticInst*
    Decoder::decode_OP_SOPC__S_CMP_LG_U32(MachInst iFmt)
    {
        return new Inst_SOPC__S_CMP_LG_U32(&iFmt->iFmt_SOPC);
    } // decode_OP_SOPC__S_CMP_LG_U32

    GPUStaticInst*
    Decoder::decode_OP_SOPC__S_CMP_GT_U32(MachInst iFmt)
    {
        return new Inst_SOPC__S_CMP_GT_U32(&iFmt->iFmt_SOPC);
    } // decode_OP_SOPC__S_CMP_GT_U32

    GPUStaticInst*
    Decoder::decode_OP_SOPC__S_CMP_GE_U32(MachInst iFmt)
    {
        return new Inst_SOPC__S_CMP_GE_U32(&iFmt->iFmt_SOPC);
    } // decode_OP_SOPC__S_CMP_GE_U32

    GPUStaticInst*
    Decoder::decode_OP_SOPC__S_CMP_LT_U32(MachInst iFmt)
    {
        return new Inst_SOPC__S_CMP_LT_U32(&iFmt->iFmt_SOPC);
    } // decode_OP_SOPC__S_CMP_LT_U32

    GPUStaticInst*
    Decoder::decode_OP_SOPC__S_CMP_LE_U32(MachInst iFmt)
    {
        return new Inst_SOPC__S_CMP_LE_U32(&iFmt->iFmt_SOPC);
    } // decode_OP_SOPC__S_CMP_LE_U32

    GPUStaticInst*
    Decoder::decode_OP_SOPC__S_BITCMP0_B32(MachInst iFmt)
    {
        return new Inst_SOPC__S_BITCMP0_B32(&iFmt->iFmt_SOPC);
    } // decode_OP_SOPC__S_BITCMP0_B32

    GPUStaticInst*
    Decoder::decode_OP_SOPC__S_BITCMP1_B32(MachInst iFmt)
    {
        return new Inst_SOPC__S_BITCMP1_B32(&iFmt->iFmt_SOPC);
    } // decode_OP_SOPC__S_BITCMP1_B32

    GPUStaticInst*
    Decoder::decode_OP_SOPC__S_BITCMP0_B64(MachInst iFmt)
    {
        return new Inst_SOPC__S_BITCMP0_B64(&iFmt->iFmt_SOPC);
    } // decode_OP_SOPC__S_BITCMP0_B64

    GPUStaticInst*
    Decoder::decode_OP_SOPC__S_BITCMP1_B64(MachInst iFmt)
    {
        return new Inst_SOPC__S_BITCMP1_B64(&iFmt->iFmt_SOPC);
    } // decode_OP_SOPC__S_BITCMP1_B64

    GPUStaticInst*
    Decoder::decode_OP_SOPC__S_SETVSKIP(MachInst iFmt)
    {
        return new Inst_SOPC__S_SETVSKIP(&iFmt->iFmt_SOPC);
    } // decode_OP_SOPC__S_SETVSKIP

    GPUStaticInst*
    Decoder::decode_OP_SOPC__S_SET_GPR_IDX_ON(MachInst iFmt)
    {
        return new Inst_SOPC__S_SET_GPR_IDX_ON(&iFmt->iFmt_SOPC);
    } // decode_OP_SOPC__S_SET_GPR_IDX_ON

    GPUStaticInst*
    Decoder::decode_OP_SOPC__S_CMP_EQ_U64(MachInst iFmt)
    {
        return new Inst_SOPC__S_CMP_EQ_U64(&iFmt->iFmt_SOPC);
    } // decode_OP_SOPC__S_CMP_EQ_U64

    GPUStaticInst*
    Decoder::decode_OP_SOPC__S_CMP_LG_U64(MachInst iFmt)
    {
        return new Inst_SOPC__S_CMP_LG_U64(&iFmt->iFmt_SOPC);
    } // decode_OP_SOPC__S_CMP_LG_U64

    GPUStaticInst*
    Decoder::decode_OP_SOPP__S_NOP(MachInst iFmt)
    {
        return new Inst_SOPP__S_NOP(&iFmt->iFmt_SOPP);
    } // decode_OP_SOPP__S_NOP

    GPUStaticInst*
    Decoder::decode_OP_SOPP__S_ENDPGM(MachInst iFmt)
    {
        return new Inst_SOPP__S_ENDPGM(&iFmt->iFmt_SOPP);
    } // decode_OP_SOPP__S_ENDPGM

    GPUStaticInst*
    Decoder::decode_OP_SOPP__S_BRANCH(MachInst iFmt)
    {
        return new Inst_SOPP__S_BRANCH(&iFmt->iFmt_SOPP);
    } // decode_OP_SOPP__S_BRANCH

    GPUStaticInst*
    Decoder::decode_OP_SOPP__S_WAKEUP(MachInst iFmt)
    {
        return new Inst_SOPP__S_WAKEUP(&iFmt->iFmt_SOPP);
    } // decode_OP_SOPP__S_WAKEUP

    GPUStaticInst*
    Decoder::decode_OP_SOPP__S_CBRANCH_SCC0(MachInst iFmt)
    {
        return new Inst_SOPP__S_CBRANCH_SCC0(&iFmt->iFmt_SOPP);
    } // decode_OP_SOPP__S_CBRANCH_SCC0

    GPUStaticInst*
    Decoder::decode_OP_SOPP__S_CBRANCH_SCC1(MachInst iFmt)
    {
        return new Inst_SOPP__S_CBRANCH_SCC1(&iFmt->iFmt_SOPP);
    } // decode_OP_SOPP__S_CBRANCH_SCC1

    GPUStaticInst*
    Decoder::decode_OP_SOPP__S_CBRANCH_VCCZ(MachInst iFmt)
    {
        return new Inst_SOPP__S_CBRANCH_VCCZ(&iFmt->iFmt_SOPP);
    } // decode_OP_SOPP__S_CBRANCH_VCCZ

    GPUStaticInst*
    Decoder::decode_OP_SOPP__S_CBRANCH_VCCNZ(MachInst iFmt)
    {
        return new Inst_SOPP__S_CBRANCH_VCCNZ(&iFmt->iFmt_SOPP);
    } // decode_OP_SOPP__S_CBRANCH_VCCNZ

    GPUStaticInst*
    Decoder::decode_OP_SOPP__S_CBRANCH_EXECZ(MachInst iFmt)
    {
        return new Inst_SOPP__S_CBRANCH_EXECZ(&iFmt->iFmt_SOPP);
    } // decode_OP_SOPP__S_CBRANCH_EXECZ

    GPUStaticInst*
    Decoder::decode_OP_SOPP__S_CBRANCH_EXECNZ(MachInst iFmt)
    {
        return new Inst_SOPP__S_CBRANCH_EXECNZ(&iFmt->iFmt_SOPP);
    } // decode_OP_SOPP__S_CBRANCH_EXECNZ

    GPUStaticInst*
    Decoder::decode_OP_SOPP__S_BARRIER(MachInst iFmt)
    {
        return new Inst_SOPP__S_BARRIER(&iFmt->iFmt_SOPP);
    } // decode_OP_SOPP__S_BARRIER

    GPUStaticInst*
    Decoder::decode_OP_SOPP__S_SETKILL(MachInst iFmt)
    {
        return new Inst_SOPP__S_SETKILL(&iFmt->iFmt_SOPP);
    } // decode_OP_SOPP__S_SETKILL

    GPUStaticInst*
    Decoder::decode_OP_SOPP__S_WAITCNT(MachInst iFmt)
    {
        return new Inst_SOPP__S_WAITCNT(&iFmt->iFmt_SOPP);
    } // decode_OP_SOPP__S_WAITCNT

    GPUStaticInst*
    Decoder::decode_OP_SOPP__S_SETHALT(MachInst iFmt)
    {
        return new Inst_SOPP__S_SETHALT(&iFmt->iFmt_SOPP);
    } // decode_OP_SOPP__S_SETHALT

    GPUStaticInst*
    Decoder::decode_OP_SOPP__S_SLEEP(MachInst iFmt)
    {
        return new Inst_SOPP__S_SLEEP(&iFmt->iFmt_SOPP);
    } // decode_OP_SOPP__S_SLEEP

    GPUStaticInst*
    Decoder::decode_OP_SOPP__S_SETPRIO(MachInst iFmt)
    {
        return new Inst_SOPP__S_SETPRIO(&iFmt->iFmt_SOPP);
    } // decode_OP_SOPP__S_SETPRIO

    GPUStaticInst*
    Decoder::decode_OP_SOPP__S_SENDMSG(MachInst iFmt)
    {
        return new Inst_SOPP__S_SENDMSG(&iFmt->iFmt_SOPP);
    } // decode_OP_SOPP__S_SENDMSG

    GPUStaticInst*
    Decoder::decode_OP_SOPP__S_SENDMSGHALT(MachInst iFmt)
    {
        return new Inst_SOPP__S_SENDMSGHALT(&iFmt->iFmt_SOPP);
    } // decode_OP_SOPP__S_SENDMSGHALT

    GPUStaticInst*
    Decoder::decode_OP_SOPP__S_TRAP(MachInst iFmt)
    {
        return new Inst_SOPP__S_TRAP(&iFmt->iFmt_SOPP);
    } // decode_OP_SOPP__S_TRAP

    GPUStaticInst*
    Decoder::decode_OP_SOPP__S_ICACHE_INV(MachInst iFmt)
    {
        return new Inst_SOPP__S_ICACHE_INV(&iFmt->iFmt_SOPP);
    } // decode_OP_SOPP__S_ICACHE_INV

    GPUStaticInst*
    Decoder::decode_OP_SOPP__S_INCPERFLEVEL(MachInst iFmt)
    {
        return new Inst_SOPP__S_INCPERFLEVEL(&iFmt->iFmt_SOPP);
    } // decode_OP_SOPP__S_INCPERFLEVEL

    GPUStaticInst*
    Decoder::decode_OP_SOPP__S_DECPERFLEVEL(MachInst iFmt)
    {
        return new Inst_SOPP__S_DECPERFLEVEL(&iFmt->iFmt_SOPP);
    } // decode_OP_SOPP__S_DECPERFLEVEL

    GPUStaticInst*
    Decoder::decode_OP_SOPP__S_TTRACEDATA(MachInst iFmt)
    {
        return new Inst_SOPP__S_TTRACEDATA(&iFmt->iFmt_SOPP);
    } // decode_OP_SOPP__S_TTRACEDATA

    GPUStaticInst*
    Decoder::decode_OP_SOPP__S_CBRANCH_CDBGSYS(MachInst iFmt)
    {
        return new Inst_SOPP__S_CBRANCH_CDBGSYS(&iFmt->iFmt_SOPP);
    } // decode_OP_SOPP__S_CBRANCH_CDBGSYS

    GPUStaticInst*
    Decoder::decode_OP_SOPP__S_CBRANCH_CDBGUSER(MachInst iFmt)
    {
        return new Inst_SOPP__S_CBRANCH_CDBGUSER(&iFmt->iFmt_SOPP);
    } // decode_OP_SOPP__S_CBRANCH_CDBGUSER

    GPUStaticInst*
    Decoder::decode_OP_SOPP__S_CBRANCH_CDBGSYS_OR_USER(MachInst iFmt)
    {
        return new Inst_SOPP__S_CBRANCH_CDBGSYS_OR_USER(&iFmt->iFmt_SOPP);
    } // decode_OP_SOPP__S_CBRANCH_CDBGSYS_OR_USER

    GPUStaticInst*
    Decoder::decode_OP_SOPP__S_CBRANCH_CDBGSYS_AND_USER(MachInst iFmt)
    {
        return new Inst_SOPP__S_CBRANCH_CDBGSYS_AND_USER(&iFmt->iFmt_SOPP);
    } // decode_OP_SOPP__S_CBRANCH_CDBGSYS_AND_USER

    GPUStaticInst*
    Decoder::decode_OP_SOPP__S_ENDPGM_SAVED(MachInst iFmt)
    {
        return new Inst_SOPP__S_ENDPGM_SAVED(&iFmt->iFmt_SOPP);
    } // decode_OP_SOPP__S_ENDPGM_SAVED

    GPUStaticInst*
    Decoder::decode_OP_SOPP__S_SET_GPR_IDX_OFF(MachInst iFmt)
    {
        return new Inst_SOPP__S_SET_GPR_IDX_OFF(&iFmt->iFmt_SOPP);
    } // decode_OP_SOPP__S_SET_GPR_IDX_OFF

    GPUStaticInst*
    Decoder::decode_OP_SOPP__S_SET_GPR_IDX_MODE(MachInst iFmt)
    {
        return new Inst_SOPP__S_SET_GPR_IDX_MODE(&iFmt->iFmt_SOPP);
    } // decode_OP_SOPP__S_SET_GPR_IDX_MODE

    GPUStaticInst*
    Decoder::decode_OP_SOPP__S_ENDPGM_ORDERED_PS_DONE(MachInst iFmt)
    {
        fatal("Trying to decode instruction without a class\n");
        return nullptr;
    }

    GPUStaticInst*
    Decoder::decode_OP_VINTRP__V_INTERP_P1_F32(MachInst iFmt)
    {
        return new Inst_VINTRP__V_INTERP_P1_F32(&iFmt->iFmt_VINTRP);
    } // decode_OP_VINTRP__V_INTERP_P1_F32

    GPUStaticInst*
    Decoder::decode_OP_VINTRP__V_INTERP_P2_F32(MachInst iFmt)
    {
        return new Inst_VINTRP__V_INTERP_P2_F32(&iFmt->iFmt_VINTRP);
    } // decode_OP_VINTRP__V_INTERP_P2_F32

    GPUStaticInst*
    Decoder::decode_OP_VINTRP__V_INTERP_MOV_F32(MachInst iFmt)
    {
        return new Inst_VINTRP__V_INTERP_MOV_F32(&iFmt->iFmt_VINTRP);
    } // decode_OP_VINTRP__V_INTERP_MOV_F32

    GPUStaticInst*
    Decoder::decode_OP_VOP1__V_NOP(MachInst iFmt)
    {
        return new Inst_VOP1__V_NOP(&iFmt->iFmt_VOP1);
    } // decode_OP_VOP1__V_NOP

    GPUStaticInst*
    Decoder::decode_OP_VOP1__V_MOV_B32(MachInst iFmt)
    {
        return new Inst_VOP1__V_MOV_B32(&iFmt->iFmt_VOP1);
    } // decode_OP_VOP1__V_MOV_B32

    GPUStaticInst*
    Decoder::decode_OP_VOP1__V_READFIRSTLANE_B32(MachInst iFmt)
    {
        return new Inst_VOP1__V_READFIRSTLANE_B32(&iFmt->iFmt_VOP1);
    } // decode_OP_VOP1__V_READFIRSTLANE_B32

    GPUStaticInst*
    Decoder::decode_OP_VOP1__V_CVT_I32_F64(MachInst iFmt)
    {
        return new Inst_VOP1__V_CVT_I32_F64(&iFmt->iFmt_VOP1);
    } // decode_OP_VOP1__V_CVT_I32_F64

    GPUStaticInst*
    Decoder::decode_OP_VOP1__V_CVT_F64_I32(MachInst iFmt)
    {
        return new Inst_VOP1__V_CVT_F64_I32(&iFmt->iFmt_VOP1);
    } // decode_OP_VOP1__V_CVT_F64_I32

    GPUStaticInst*
    Decoder::decode_OP_VOP1__V_CVT_F32_I32(MachInst iFmt)
    {
        return new Inst_VOP1__V_CVT_F32_I32(&iFmt->iFmt_VOP1);
    } // decode_OP_VOP1__V_CVT_F32_I32

    GPUStaticInst*
    Decoder::decode_OP_VOP1__V_CVT_F32_U32(MachInst iFmt)
    {
        return new Inst_VOP1__V_CVT_F32_U32(&iFmt->iFmt_VOP1);
    } // decode_OP_VOP1__V_CVT_F32_U32

    GPUStaticInst*
    Decoder::decode_OP_VOP1__V_CVT_U32_F32(MachInst iFmt)
    {
        return new Inst_VOP1__V_CVT_U32_F32(&iFmt->iFmt_VOP1);
    } // decode_OP_VOP1__V_CVT_U32_F32

    GPUStaticInst*
    Decoder::decode_OP_VOP1__V_CVT_I32_F32(MachInst iFmt)
    {
        return new Inst_VOP1__V_CVT_I32_F32(&iFmt->iFmt_VOP1);
    } // decode_OP_VOP1__V_CVT_I32_F32

    GPUStaticInst*
    Decoder::decode_OP_VOP1__V_CVT_F16_F32(MachInst iFmt)
    {
        return new Inst_VOP1__V_CVT_F16_F32(&iFmt->iFmt_VOP1);
    } // decode_OP_VOP1__V_CVT_F16_F32

    GPUStaticInst*
    Decoder::decode_OP_VOP1__V_CVT_F32_F16(MachInst iFmt)
    {
        return new Inst_VOP1__V_CVT_F32_F16(&iFmt->iFmt_VOP1);
    } // decode_OP_VOP1__V_CVT_F32_F16

    GPUStaticInst*
    Decoder::decode_OP_VOP1__V_CVT_RPI_I32_F32(MachInst iFmt)
    {
        return new Inst_VOP1__V_CVT_RPI_I32_F32(&iFmt->iFmt_VOP1);
    } // decode_OP_VOP1__V_CVT_RPI_I32_F32

    GPUStaticInst*
    Decoder::decode_OP_VOP1__V_CVT_FLR_I32_F32(MachInst iFmt)
    {
        return new Inst_VOP1__V_CVT_FLR_I32_F32(&iFmt->iFmt_VOP1);
    } // decode_OP_VOP1__V_CVT_FLR_I32_F32

    GPUStaticInst*
    Decoder::decode_OP_VOP1__V_CVT_OFF_F32_I4(MachInst iFmt)
    {
        return new Inst_VOP1__V_CVT_OFF_F32_I4(&iFmt->iFmt_VOP1);
    } // decode_OP_VOP1__V_CVT_OFF_F32_I4

    GPUStaticInst*
    Decoder::decode_OP_VOP1__V_CVT_F32_F64(MachInst iFmt)
    {
        return new Inst_VOP1__V_CVT_F32_F64(&iFmt->iFmt_VOP1);
    } // decode_OP_VOP1__V_CVT_F32_F64

    GPUStaticInst*
    Decoder::decode_OP_VOP1__V_CVT_F64_F32(MachInst iFmt)
    {
        return new Inst_VOP1__V_CVT_F64_F32(&iFmt->iFmt_VOP1);
    } // decode_OP_VOP1__V_CVT_F64_F32

    GPUStaticInst*
    Decoder::decode_OP_VOP1__V_CVT_F32_UBYTE0(MachInst iFmt)
    {
        return new Inst_VOP1__V_CVT_F32_UBYTE0(&iFmt->iFmt_VOP1);
    } // decode_OP_VOP1__V_CVT_F32_UBYTE0

    GPUStaticInst*
    Decoder::decode_OP_VOP1__V_CVT_F32_UBYTE1(MachInst iFmt)
    {
        return new Inst_VOP1__V_CVT_F32_UBYTE1(&iFmt->iFmt_VOP1);
    } // decode_OP_VOP1__V_CVT_F32_UBYTE1

    GPUStaticInst*
    Decoder::decode_OP_VOP1__V_CVT_F32_UBYTE2(MachInst iFmt)
    {
        return new Inst_VOP1__V_CVT_F32_UBYTE2(&iFmt->iFmt_VOP1);
    } // decode_OP_VOP1__V_CVT_F32_UBYTE2

    GPUStaticInst*
    Decoder::decode_OP_VOP1__V_CVT_F32_UBYTE3(MachInst iFmt)
    {
        return new Inst_VOP1__V_CVT_F32_UBYTE3(&iFmt->iFmt_VOP1);
    } // decode_OP_VOP1__V_CVT_F32_UBYTE3

    GPUStaticInst*
    Decoder::decode_OP_VOP1__V_CVT_U32_F64(MachInst iFmt)
    {
        return new Inst_VOP1__V_CVT_U32_F64(&iFmt->iFmt_VOP1);
    } // decode_OP_VOP1__V_CVT_U32_F64

    GPUStaticInst*
    Decoder::decode_OP_VOP1__V_CVT_F64_U32(MachInst iFmt)
    {
        return new Inst_VOP1__V_CVT_F64_U32(&iFmt->iFmt_VOP1);
    } // decode_OP_VOP1__V_CVT_F64_U32

    GPUStaticInst*
    Decoder::decode_OP_VOP1__V_TRUNC_F64(MachInst iFmt)
    {
        return new Inst_VOP1__V_TRUNC_F64(&iFmt->iFmt_VOP1);
    } // decode_OP_VOP1__V_TRUNC_F64

    GPUStaticInst*
    Decoder::decode_OP_VOP1__V_CEIL_F64(MachInst iFmt)
    {
        return new Inst_VOP1__V_CEIL_F64(&iFmt->iFmt_VOP1);
    } // decode_OP_VOP1__V_CEIL_F64

    GPUStaticInst*
    Decoder::decode_OP_VOP1__V_RNDNE_F64(MachInst iFmt)
    {
        return new Inst_VOP1__V_RNDNE_F64(&iFmt->iFmt_VOP1);
    } // decode_OP_VOP1__V_RNDNE_F64

    GPUStaticInst*
    Decoder::decode_OP_VOP1__V_FLOOR_F64(MachInst iFmt)
    {
        return new Inst_VOP1__V_FLOOR_F64(&iFmt->iFmt_VOP1);
    } // decode_OP_VOP1__V_FLOOR_F64

    GPUStaticInst*
    Decoder::decode_OP_VOP1__V_FRACT_F32(MachInst iFmt)
    {
        return new Inst_VOP1__V_FRACT_F32(&iFmt->iFmt_VOP1);
    } // decode_OP_VOP1__V_FRACT_F32

    GPUStaticInst*
    Decoder::decode_OP_VOP1__V_TRUNC_F32(MachInst iFmt)
    {
        return new Inst_VOP1__V_TRUNC_F32(&iFmt->iFmt_VOP1);
    } // decode_OP_VOP1__V_TRUNC_F32

    GPUStaticInst*
    Decoder::decode_OP_VOP1__V_CEIL_F32(MachInst iFmt)
    {
        return new Inst_VOP1__V_CEIL_F32(&iFmt->iFmt_VOP1);
    } // decode_OP_VOP1__V_CEIL_F32

    GPUStaticInst*
    Decoder::decode_OP_VOP1__V_RNDNE_F32(MachInst iFmt)
    {
        return new Inst_VOP1__V_RNDNE_F32(&iFmt->iFmt_VOP1);
    } // decode_OP_VOP1__V_RNDNE_F32

    GPUStaticInst*
    Decoder::decode_OP_VOP1__V_FLOOR_F32(MachInst iFmt)
    {
        return new Inst_VOP1__V_FLOOR_F32(&iFmt->iFmt_VOP1);
    } // decode_OP_VOP1__V_FLOOR_F32

    GPUStaticInst*
    Decoder::decode_OP_VOP1__V_EXP_F32(MachInst iFmt)
    {
        return new Inst_VOP1__V_EXP_F32(&iFmt->iFmt_VOP1);
    } // decode_OP_VOP1__V_EXP_F32

    GPUStaticInst*
    Decoder::decode_OP_VOP1__V_LOG_F32(MachInst iFmt)
    {
        return new Inst_VOP1__V_LOG_F32(&iFmt->iFmt_VOP1);
    } // decode_OP_VOP1__V_LOG_F32

    GPUStaticInst*
    Decoder::decode_OP_VOP1__V_RCP_F32(MachInst iFmt)
    {
        return new Inst_VOP1__V_RCP_F32(&iFmt->iFmt_VOP1);
    } // decode_OP_VOP1__V_RCP_F32

    GPUStaticInst*
    Decoder::decode_OP_VOP1__V_RCP_IFLAG_F32(MachInst iFmt)
    {
        return new Inst_VOP1__V_RCP_IFLAG_F32(&iFmt->iFmt_VOP1);
    } // decode_OP_VOP1__V_RCP_IFLAG_F32

    GPUStaticInst*
    Decoder::decode_OP_VOP1__V_RSQ_F32(MachInst iFmt)
    {
        return new Inst_VOP1__V_RSQ_F32(&iFmt->iFmt_VOP1);
    } // decode_OP_VOP1__V_RSQ_F32

    GPUStaticInst*
    Decoder::decode_OP_VOP1__V_RCP_F64(MachInst iFmt)
    {
        return new Inst_VOP1__V_RCP_F64(&iFmt->iFmt_VOP1);
    } // decode_OP_VOP1__V_RCP_F64

    GPUStaticInst*
    Decoder::decode_OP_VOP1__V_RSQ_F64(MachInst iFmt)
    {
        return new Inst_VOP1__V_RSQ_F64(&iFmt->iFmt_VOP1);
    } // decode_OP_VOP1__V_RSQ_F64

    GPUStaticInst*
    Decoder::decode_OP_VOP1__V_SQRT_F32(MachInst iFmt)
    {
        return new Inst_VOP1__V_SQRT_F32(&iFmt->iFmt_VOP1);
    } // decode_OP_VOP1__V_SQRT_F32

    GPUStaticInst*
    Decoder::decode_OP_VOP1__V_SQRT_F64(MachInst iFmt)
    {
        return new Inst_VOP1__V_SQRT_F64(&iFmt->iFmt_VOP1);
    } // decode_OP_VOP1__V_SQRT_F64

    GPUStaticInst*
    Decoder::decode_OP_VOP1__V_SIN_F32(MachInst iFmt)
    {
        return new Inst_VOP1__V_SIN_F32(&iFmt->iFmt_VOP1);
    } // decode_OP_VOP1__V_SIN_F32

    GPUStaticInst*
    Decoder::decode_OP_VOP1__V_COS_F32(MachInst iFmt)
    {
        return new Inst_VOP1__V_COS_F32(&iFmt->iFmt_VOP1);
    } // decode_OP_VOP1__V_COS_F32

    GPUStaticInst*
    Decoder::decode_OP_VOP1__V_NOT_B32(MachInst iFmt)
    {
        return new Inst_VOP1__V_NOT_B32(&iFmt->iFmt_VOP1);
    } // decode_OP_VOP1__V_NOT_B32

    GPUStaticInst*
    Decoder::decode_OP_VOP1__V_BFREV_B32(MachInst iFmt)
    {
        return new Inst_VOP1__V_BFREV_B32(&iFmt->iFmt_VOP1);
    } // decode_OP_VOP1__V_BFREV_B32

    GPUStaticInst*
    Decoder::decode_OP_VOP1__V_FFBH_U32(MachInst iFmt)
    {
        return new Inst_VOP1__V_FFBH_U32(&iFmt->iFmt_VOP1);
    } // decode_OP_VOP1__V_FFBH_U32

    GPUStaticInst*
    Decoder::decode_OP_VOP1__V_FFBL_B32(MachInst iFmt)
    {
        return new Inst_VOP1__V_FFBL_B32(&iFmt->iFmt_VOP1);
    } // decode_OP_VOP1__V_FFBL_B32

    GPUStaticInst*
    Decoder::decode_OP_VOP1__V_FFBH_I32(MachInst iFmt)
    {
        return new Inst_VOP1__V_FFBH_I32(&iFmt->iFmt_VOP1);
    } // decode_OP_VOP1__V_FFBH_I32

    GPUStaticInst*
    Decoder::decode_OP_VOP1__V_FREXP_EXP_I32_F64(MachInst iFmt)
    {
        return new Inst_VOP1__V_FREXP_EXP_I32_F64(&iFmt->iFmt_VOP1);
    } // decode_OP_VOP1__V_FREXP_EXP_I32_F64

    GPUStaticInst*
    Decoder::decode_OP_VOP1__V_FREXP_MANT_F64(MachInst iFmt)
    {
        return new Inst_VOP1__V_FREXP_MANT_F64(&iFmt->iFmt_VOP1);
    } // decode_OP_VOP1__V_FREXP_MANT_F64

    GPUStaticInst*
    Decoder::decode_OP_VOP1__V_FRACT_F64(MachInst iFmt)
    {
        return new Inst_VOP1__V_FRACT_F64(&iFmt->iFmt_VOP1);
    } // decode_OP_VOP1__V_FRACT_F64

    GPUStaticInst*
    Decoder::decode_OP_VOP1__V_FREXP_EXP_I32_F32(MachInst iFmt)
    {
        return new Inst_VOP1__V_FREXP_EXP_I32_F32(&iFmt->iFmt_VOP1);
    } // decode_OP_VOP1__V_FREXP_EXP_I32_F32

    GPUStaticInst*
    Decoder::decode_OP_VOP1__V_FREXP_MANT_F32(MachInst iFmt)
    {
        return new Inst_VOP1__V_FREXP_MANT_F32(&iFmt->iFmt_VOP1);
    } // decode_OP_VOP1__V_FREXP_MANT_F32

    GPUStaticInst*
    Decoder::decode_OP_VOP1__V_CLREXCP(MachInst iFmt)
    {
        return new Inst_VOP1__V_CLREXCP(&iFmt->iFmt_VOP1);
    } // decode_OP_VOP1__V_CLREXCP

    GPUStaticInst*
    Decoder::decode_OP_VOP1__V_SCREEN_PARTITION_4SE_B32(MachInst iFmt)
    {
        fatal("Trying to decode instruction without a class\n");
        return nullptr;
    }

    GPUStaticInst*
    Decoder::decode_OP_VOP1__V_CVT_F16_U16(MachInst iFmt)
    {
        return new Inst_VOP1__V_CVT_F16_U16(&iFmt->iFmt_VOP1);
    } // decode_OP_VOP1__V_CVT_F16_U16

    GPUStaticInst*
    Decoder::decode_OP_VOP1__V_CVT_F16_I16(MachInst iFmt)
    {
        return new Inst_VOP1__V_CVT_F16_I16(&iFmt->iFmt_VOP1);
    } // decode_OP_VOP1__V_CVT_F16_I16

    GPUStaticInst*
    Decoder::decode_OP_VOP1__V_CVT_U16_F16(MachInst iFmt)
    {
        return new Inst_VOP1__V_CVT_U16_F16(&iFmt->iFmt_VOP1);
    } // decode_OP_VOP1__V_CVT_U16_F16

    GPUStaticInst*
    Decoder::decode_OP_VOP1__V_CVT_I16_F16(MachInst iFmt)
    {
        return new Inst_VOP1__V_CVT_I16_F16(&iFmt->iFmt_VOP1);
    } // decode_OP_VOP1__V_CVT_I16_F16

    GPUStaticInst*
    Decoder::decode_OP_VOP1__V_RCP_F16(MachInst iFmt)
    {
        return new Inst_VOP1__V_RCP_F16(&iFmt->iFmt_VOP1);
    } // decode_OP_VOP1__V_RCP_F16

    GPUStaticInst*
    Decoder::decode_OP_VOP1__V_SQRT_F16(MachInst iFmt)
    {
        return new Inst_VOP1__V_SQRT_F16(&iFmt->iFmt_VOP1);
    } // decode_OP_VOP1__V_SQRT_F16

    GPUStaticInst*
    Decoder::decode_OP_VOP1__V_RSQ_F16(MachInst iFmt)
    {
        return new Inst_VOP1__V_RSQ_F16(&iFmt->iFmt_VOP1);
    } // decode_OP_VOP1__V_RSQ_F16

    GPUStaticInst*
    Decoder::decode_OP_VOP1__V_LOG_F16(MachInst iFmt)
    {
        return new Inst_VOP1__V_LOG_F16(&iFmt->iFmt_VOP1);
    } // decode_OP_VOP1__V_LOG_F16

    GPUStaticInst*
    Decoder::decode_OP_VOP1__V_EXP_F16(MachInst iFmt)
    {
        return new Inst_VOP1__V_EXP_F16(&iFmt->iFmt_VOP1);
    } // decode_OP_VOP1__V_EXP_F16

    GPUStaticInst*
    Decoder::decode_OP_VOP1__V_FREXP_MANT_F16(MachInst iFmt)
    {
        return new Inst_VOP1__V_FREXP_MANT_F16(&iFmt->iFmt_VOP1);
    } // decode_OP_VOP1__V_FREXP_MANT_F16

    GPUStaticInst*
    Decoder::decode_OP_VOP1__V_FREXP_EXP_I16_F16(MachInst iFmt)
    {
        return new Inst_VOP1__V_FREXP_EXP_I16_F16(&iFmt->iFmt_VOP1);
    } // decode_OP_VOP1__V_FREXP_EXP_I16_F16

    GPUStaticInst*
    Decoder::decode_OP_VOP1__V_FLOOR_F16(MachInst iFmt)
    {
        return new Inst_VOP1__V_FLOOR_F16(&iFmt->iFmt_VOP1);
    } // decode_OP_VOP1__V_FLOOR_F16

    GPUStaticInst*
    Decoder::decode_OP_VOP1__V_CEIL_F16(MachInst iFmt)
    {
        return new Inst_VOP1__V_CEIL_F16(&iFmt->iFmt_VOP1);
    } // decode_OP_VOP1__V_CEIL_F16

    GPUStaticInst*
    Decoder::decode_OP_VOP1__V_TRUNC_F16(MachInst iFmt)
    {
        return new Inst_VOP1__V_TRUNC_F16(&iFmt->iFmt_VOP1);
    } // decode_OP_VOP1__V_TRUNC_F16

    GPUStaticInst*
    Decoder::decode_OP_VOP1__V_RNDNE_F16(MachInst iFmt)
    {
        return new Inst_VOP1__V_RNDNE_F16(&iFmt->iFmt_VOP1);
    } // decode_OP_VOP1__V_RNDNE_F16

    GPUStaticInst*
    Decoder::decode_OP_VOP1__V_FRACT_F16(MachInst iFmt)
    {
        return new Inst_VOP1__V_FRACT_F16(&iFmt->iFmt_VOP1);
    } // decode_OP_VOP1__V_FRACT_F16

    GPUStaticInst*
    Decoder::decode_OP_VOP1__V_SIN_F16(MachInst iFmt)
    {
        return new Inst_VOP1__V_SIN_F16(&iFmt->iFmt_VOP1);
    } // decode_OP_VOP1__V_SIN_F16

    GPUStaticInst*
    Decoder::decode_OP_VOP1__V_COS_F16(MachInst iFmt)
    {
        return new Inst_VOP1__V_COS_F16(&iFmt->iFmt_VOP1);
    } // decode_OP_VOP1__V_COS_F16

    GPUStaticInst*
    Decoder::decode_OP_VOP1__V_EXP_LEGACY_F32(MachInst iFmt)
    {
        return new Inst_VOP1__V_EXP_LEGACY_F32(&iFmt->iFmt_VOP1);
    } // decode_OP_VOP1__V_EXP_LEGACY_F32

    GPUStaticInst*
    Decoder::decode_OP_VOP1__V_LOG_LEGACY_F32(MachInst iFmt)
    {
        return new Inst_VOP1__V_LOG_LEGACY_F32(&iFmt->iFmt_VOP1);
    } // decode_OP_VOP1__V_LOG_LEGACY_F32

    GPUStaticInst*
    Decoder::decode_OP_VOP1__V_CVT_NORM_I16_F16(MachInst iFmt)
    {
        fatal("Trying to decode instruction without a class\n");
        return nullptr;
    }

    GPUStaticInst*
    Decoder::decode_OP_VOP1__V_CVT_NORM_U16_F16(MachInst iFmt)
    {
        fatal("Trying to decode instruction without a class\n");
        return nullptr;
    }

    GPUStaticInst*
    Decoder::decode_OP_VOP1__V_SAT_PK_U8_I16(MachInst iFmt)
    {
        fatal("Trying to decode instruction without a class\n");
        return nullptr;
    }

    GPUStaticInst*
    Decoder::decode_OP_VOP1__V_SWAP_B32(MachInst iFmt)
    {
        fatal("Trying to decode instruction without a class\n");
        return nullptr;
    }

    GPUStaticInst*
    Decoder::decode_OP_VOPC__V_CMP_CLASS_F32(MachInst iFmt)
    {
        return new Inst_VOPC__V_CMP_CLASS_F32(&iFmt->iFmt_VOPC);
    } // decode_OP_VOPC__V_CMP_CLASS_F32

    GPUStaticInst*
    Decoder::decode_OP_VOPC__V_CMPX_CLASS_F32(MachInst iFmt)
    {
        return new Inst_VOPC__V_CMPX_CLASS_F32(&iFmt->iFmt_VOPC);
    } // decode_OP_VOPC__V_CMPX_CLASS_F32

    GPUStaticInst*
    Decoder::decode_OP_VOPC__V_CMP_CLASS_F64(MachInst iFmt)
    {
        return new Inst_VOPC__V_CMP_CLASS_F64(&iFmt->iFmt_VOPC);
    } // decode_OP_VOPC__V_CMP_CLASS_F64

    GPUStaticInst*
    Decoder::decode_OP_VOPC__V_CMPX_CLASS_F64(MachInst iFmt)
    {
        return new Inst_VOPC__V_CMPX_CLASS_F64(&iFmt->iFmt_VOPC);
    } // decode_OP_VOPC__V_CMPX_CLASS_F64

    GPUStaticInst*
    Decoder::decode_OP_VOPC__V_CMP_CLASS_F16(MachInst iFmt)
    {
        return new Inst_VOPC__V_CMP_CLASS_F16(&iFmt->iFmt_VOPC);
    } // decode_OP_VOPC__V_CMP_CLASS_F16

    GPUStaticInst*
    Decoder::decode_OP_VOPC__V_CMPX_CLASS_F16(MachInst iFmt)
    {
        return new Inst_VOPC__V_CMPX_CLASS_F16(&iFmt->iFmt_VOPC);
    } // decode_OP_VOPC__V_CMPX_CLASS_F16

    GPUStaticInst*
    Decoder::decode_OP_VOPC__V_CMP_F_F16(MachInst iFmt)
    {
        return new Inst_VOPC__V_CMP_F_F16(&iFmt->iFmt_VOPC);
    } // decode_OP_VOPC__V_CMP_F_F16

    GPUStaticInst*
    Decoder::decode_OP_VOPC__V_CMP_LT_F16(MachInst iFmt)
    {
        return new Inst_VOPC__V_CMP_LT_F16(&iFmt->iFmt_VOPC);
    } // decode_OP_VOPC__V_CMP_LT_F16

    GPUStaticInst*
    Decoder::decode_OP_VOPC__V_CMP_EQ_F16(MachInst iFmt)
    {
        return new Inst_VOPC__V_CMP_EQ_F16(&iFmt->iFmt_VOPC);
    } // decode_OP_VOPC__V_CMP_EQ_F16

    GPUStaticInst*
    Decoder::decode_OP_VOPC__V_CMP_LE_F16(MachInst iFmt)
    {
        return new Inst_VOPC__V_CMP_LE_F16(&iFmt->iFmt_VOPC);
    } // decode_OP_VOPC__V_CMP_LE_F16

    GPUStaticInst*
    Decoder::decode_OP_VOPC__V_CMP_GT_F16(MachInst iFmt)
    {
        return new Inst_VOPC__V_CMP_GT_F16(&iFmt->iFmt_VOPC);
    } // decode_OP_VOPC__V_CMP_GT_F16

    GPUStaticInst*
    Decoder::decode_OP_VOPC__V_CMP_LG_F16(MachInst iFmt)
    {
        return new Inst_VOPC__V_CMP_LG_F16(&iFmt->iFmt_VOPC);
    } // decode_OP_VOPC__V_CMP_LG_F16

    GPUStaticInst*
    Decoder::decode_OP_VOPC__V_CMP_GE_F16(MachInst iFmt)
    {
        return new Inst_VOPC__V_CMP_GE_F16(&iFmt->iFmt_VOPC);
    } // decode_OP_VOPC__V_CMP_GE_F16

    GPUStaticInst*
    Decoder::decode_OP_VOPC__V_CMP_O_F16(MachInst iFmt)
    {
        return new Inst_VOPC__V_CMP_O_F16(&iFmt->iFmt_VOPC);
    } // decode_OP_VOPC__V_CMP_O_F16

    GPUStaticInst*
    Decoder::decode_OP_VOPC__V_CMP_U_F16(MachInst iFmt)
    {
        return new Inst_VOPC__V_CMP_U_F16(&iFmt->iFmt_VOPC);
    } // decode_OP_VOPC__V_CMP_U_F16

    GPUStaticInst*
    Decoder::decode_OP_VOPC__V_CMP_NGE_F16(MachInst iFmt)
    {
        return new Inst_VOPC__V_CMP_NGE_F16(&iFmt->iFmt_VOPC);
    } // decode_OP_VOPC__V_CMP_NGE_F16

    GPUStaticInst*
    Decoder::decode_OP_VOPC__V_CMP_NLG_F16(MachInst iFmt)
    {
        return new Inst_VOPC__V_CMP_NLG_F16(&iFmt->iFmt_VOPC);
    } // decode_OP_VOPC__V_CMP_NLG_F16

    GPUStaticInst*
    Decoder::decode_OP_VOPC__V_CMP_NGT_F16(MachInst iFmt)
    {
        return new Inst_VOPC__V_CMP_NGT_F16(&iFmt->iFmt_VOPC);
    } // decode_OP_VOPC__V_CMP_NGT_F16

    GPUStaticInst*
    Decoder::decode_OP_VOPC__V_CMP_NLE_F16(MachInst iFmt)
    {
        return new Inst_VOPC__V_CMP_NLE_F16(&iFmt->iFmt_VOPC);
    } // decode_OP_VOPC__V_CMP_NLE_F16

    GPUStaticInst*
    Decoder::decode_OP_VOPC__V_CMP_NEQ_F16(MachInst iFmt)
    {
        return new Inst_VOPC__V_CMP_NEQ_F16(&iFmt->iFmt_VOPC);
    } // decode_OP_VOPC__V_CMP_NEQ_F16

    GPUStaticInst*
    Decoder::decode_OP_VOPC__V_CMP_NLT_F16(MachInst iFmt)
    {
        return new Inst_VOPC__V_CMP_NLT_F16(&iFmt->iFmt_VOPC);
    } // decode_OP_VOPC__V_CMP_NLT_F16

    GPUStaticInst*
    Decoder::decode_OP_VOPC__V_CMP_TRU_F16(MachInst iFmt)
    {
        return new Inst_VOPC__V_CMP_TRU_F16(&iFmt->iFmt_VOPC);
    } // decode_OP_VOPC__V_CMP_TRU_F16

    GPUStaticInst*
    Decoder::decode_OP_VOPC__V_CMPX_F_F16(MachInst iFmt)
    {
        return new Inst_VOPC__V_CMPX_F_F16(&iFmt->iFmt_VOPC);
    } // decode_OP_VOPC__V_CMPX_F_F16

    GPUStaticInst*
    Decoder::decode_OP_VOPC__V_CMPX_LT_F16(MachInst iFmt)
    {
        return new Inst_VOPC__V_CMPX_LT_F16(&iFmt->iFmt_VOPC);
    } // decode_OP_VOPC__V_CMPX_LT_F16

    GPUStaticInst*
    Decoder::decode_OP_VOPC__V_CMPX_EQ_F16(MachInst iFmt)
    {
        return new Inst_VOPC__V_CMPX_EQ_F16(&iFmt->iFmt_VOPC);
    } // decode_OP_VOPC__V_CMPX_EQ_F16

    GPUStaticInst*
    Decoder::decode_OP_VOPC__V_CMPX_LE_F16(MachInst iFmt)
    {
        return new Inst_VOPC__V_CMPX_LE_F16(&iFmt->iFmt_VOPC);
    } // decode_OP_VOPC__V_CMPX_LE_F16

    GPUStaticInst*
    Decoder::decode_OP_VOPC__V_CMPX_GT_F16(MachInst iFmt)
    {
        return new Inst_VOPC__V_CMPX_GT_F16(&iFmt->iFmt_VOPC);
    } // decode_OP_VOPC__V_CMPX_GT_F16

    GPUStaticInst*
    Decoder::decode_OP_VOPC__V_CMPX_LG_F16(MachInst iFmt)
    {
        return new Inst_VOPC__V_CMPX_LG_F16(&iFmt->iFmt_VOPC);
    } // decode_OP_VOPC__V_CMPX_LG_F16

    GPUStaticInst*
    Decoder::decode_OP_VOPC__V_CMPX_GE_F16(MachInst iFmt)
    {
        return new Inst_VOPC__V_CMPX_GE_F16(&iFmt->iFmt_VOPC);
    } // decode_OP_VOPC__V_CMPX_GE_F16

    GPUStaticInst*
    Decoder::decode_OP_VOPC__V_CMPX_O_F16(MachInst iFmt)
    {
        return new Inst_VOPC__V_CMPX_O_F16(&iFmt->iFmt_VOPC);
    } // decode_OP_VOPC__V_CMPX_O_F16

    GPUStaticInst*
    Decoder::decode_OP_VOPC__V_CMPX_U_F16(MachInst iFmt)
    {
        return new Inst_VOPC__V_CMPX_U_F16(&iFmt->iFmt_VOPC);
    } // decode_OP_VOPC__V_CMPX_U_F16

    GPUStaticInst*
    Decoder::decode_OP_VOPC__V_CMPX_NGE_F16(MachInst iFmt)
    {
        return new Inst_VOPC__V_CMPX_NGE_F16(&iFmt->iFmt_VOPC);
    } // decode_OP_VOPC__V_CMPX_NGE_F16

    GPUStaticInst*
    Decoder::decode_OP_VOPC__V_CMPX_NLG_F16(MachInst iFmt)
    {
        return new Inst_VOPC__V_CMPX_NLG_F16(&iFmt->iFmt_VOPC);
    } // decode_OP_VOPC__V_CMPX_NLG_F16

    GPUStaticInst*
    Decoder::decode_OP_VOPC__V_CMPX_NGT_F16(MachInst iFmt)
    {
        return new Inst_VOPC__V_CMPX_NGT_F16(&iFmt->iFmt_VOPC);
    } // decode_OP_VOPC__V_CMPX_NGT_F16

    GPUStaticInst*
    Decoder::decode_OP_VOPC__V_CMPX_NLE_F16(MachInst iFmt)
    {
        return new Inst_VOPC__V_CMPX_NLE_F16(&iFmt->iFmt_VOPC);
    } // decode_OP_VOPC__V_CMPX_NLE_F16

    GPUStaticInst*
    Decoder::decode_OP_VOPC__V_CMPX_NEQ_F16(MachInst iFmt)
    {
        return new Inst_VOPC__V_CMPX_NEQ_F16(&iFmt->iFmt_VOPC);
    } // decode_OP_VOPC__V_CMPX_NEQ_F16

    GPUStaticInst*
    Decoder::decode_OP_VOPC__V_CMPX_NLT_F16(MachInst iFmt)
    {
        return new Inst_VOPC__V_CMPX_NLT_F16(&iFmt->iFmt_VOPC);
    } // decode_OP_VOPC__V_CMPX_NLT_F16

    GPUStaticInst*
    Decoder::decode_OP_VOPC__V_CMPX_TRU_F16(MachInst iFmt)
    {
        return new Inst_VOPC__V_CMPX_TRU_F16(&iFmt->iFmt_VOPC);
    } // decode_OP_VOPC__V_CMPX_TRU_F16

    GPUStaticInst*
    Decoder::decode_OP_VOPC__V_CMP_F_F32(MachInst iFmt)
    {
        return new Inst_VOPC__V_CMP_F_F32(&iFmt->iFmt_VOPC);
    } // decode_OP_VOPC__V_CMP_F_F32

    GPUStaticInst*
    Decoder::decode_OP_VOPC__V_CMP_LT_F32(MachInst iFmt)
    {
        return new Inst_VOPC__V_CMP_LT_F32(&iFmt->iFmt_VOPC);
    } // decode_OP_VOPC__V_CMP_LT_F32

    GPUStaticInst*
    Decoder::decode_OP_VOPC__V_CMP_EQ_F32(MachInst iFmt)
    {
        return new Inst_VOPC__V_CMP_EQ_F32(&iFmt->iFmt_VOPC);
    } // decode_OP_VOPC__V_CMP_EQ_F32

    GPUStaticInst*
    Decoder::decode_OP_VOPC__V_CMP_LE_F32(MachInst iFmt)
    {
        return new Inst_VOPC__V_CMP_LE_F32(&iFmt->iFmt_VOPC);
    } // decode_OP_VOPC__V_CMP_LE_F32

    GPUStaticInst*
    Decoder::decode_OP_VOPC__V_CMP_GT_F32(MachInst iFmt)
    {
        return new Inst_VOPC__V_CMP_GT_F32(&iFmt->iFmt_VOPC);
    } // decode_OP_VOPC__V_CMP_GT_F32

    GPUStaticInst*
    Decoder::decode_OP_VOPC__V_CMP_LG_F32(MachInst iFmt)
    {
        return new Inst_VOPC__V_CMP_LG_F32(&iFmt->iFmt_VOPC);
    } // decode_OP_VOPC__V_CMP_LG_F32

    GPUStaticInst*
    Decoder::decode_OP_VOPC__V_CMP_GE_F32(MachInst iFmt)
    {
        return new Inst_VOPC__V_CMP_GE_F32(&iFmt->iFmt_VOPC);
    } // decode_OP_VOPC__V_CMP_GE_F32

    GPUStaticInst*
    Decoder::decode_OP_VOPC__V_CMP_O_F32(MachInst iFmt)
    {
        return new Inst_VOPC__V_CMP_O_F32(&iFmt->iFmt_VOPC);
    } // decode_OP_VOPC__V_CMP_O_F32

    GPUStaticInst*
    Decoder::decode_OP_VOPC__V_CMP_U_F32(MachInst iFmt)
    {
        return new Inst_VOPC__V_CMP_U_F32(&iFmt->iFmt_VOPC);
    } // decode_OP_VOPC__V_CMP_U_F32

    GPUStaticInst*
    Decoder::decode_OP_VOPC__V_CMP_NGE_F32(MachInst iFmt)
    {
        return new Inst_VOPC__V_CMP_NGE_F32(&iFmt->iFmt_VOPC);
    } // decode_OP_VOPC__V_CMP_NGE_F32

    GPUStaticInst*
    Decoder::decode_OP_VOPC__V_CMP_NLG_F32(MachInst iFmt)
    {
        return new Inst_VOPC__V_CMP_NLG_F32(&iFmt->iFmt_VOPC);
    } // decode_OP_VOPC__V_CMP_NLG_F32

    GPUStaticInst*
    Decoder::decode_OP_VOPC__V_CMP_NGT_F32(MachInst iFmt)
    {
        return new Inst_VOPC__V_CMP_NGT_F32(&iFmt->iFmt_VOPC);
    } // decode_OP_VOPC__V_CMP_NGT_F32

    GPUStaticInst*
    Decoder::decode_OP_VOPC__V_CMP_NLE_F32(MachInst iFmt)
    {
        return new Inst_VOPC__V_CMP_NLE_F32(&iFmt->iFmt_VOPC);
    } // decode_OP_VOPC__V_CMP_NLE_F32

    GPUStaticInst*
    Decoder::decode_OP_VOPC__V_CMP_NEQ_F32(MachInst iFmt)
    {
        return new Inst_VOPC__V_CMP_NEQ_F32(&iFmt->iFmt_VOPC);
    } // decode_OP_VOPC__V_CMP_NEQ_F32

    GPUStaticInst*
    Decoder::decode_OP_VOPC__V_CMP_NLT_F32(MachInst iFmt)
    {
        return new Inst_VOPC__V_CMP_NLT_F32(&iFmt->iFmt_VOPC);
    } // decode_OP_VOPC__V_CMP_NLT_F32

    GPUStaticInst*
    Decoder::decode_OP_VOPC__V_CMP_TRU_F32(MachInst iFmt)
    {
        return new Inst_VOPC__V_CMP_TRU_F32(&iFmt->iFmt_VOPC);
    } // decode_OP_VOPC__V_CMP_TRU_F32

    GPUStaticInst*
    Decoder::decode_OP_VOPC__V_CMPX_F_F32(MachInst iFmt)
    {
        return new Inst_VOPC__V_CMPX_F_F32(&iFmt->iFmt_VOPC);
    } // decode_OP_VOPC__V_CMPX_F_F32

    GPUStaticInst*
    Decoder::decode_OP_VOPC__V_CMPX_LT_F32(MachInst iFmt)
    {
        return new Inst_VOPC__V_CMPX_LT_F32(&iFmt->iFmt_VOPC);
    } // decode_OP_VOPC__V_CMPX_LT_F32

    GPUStaticInst*
    Decoder::decode_OP_VOPC__V_CMPX_EQ_F32(MachInst iFmt)
    {
        return new Inst_VOPC__V_CMPX_EQ_F32(&iFmt->iFmt_VOPC);
    } // decode_OP_VOPC__V_CMPX_EQ_F32

    GPUStaticInst*
    Decoder::decode_OP_VOPC__V_CMPX_LE_F32(MachInst iFmt)
    {
        return new Inst_VOPC__V_CMPX_LE_F32(&iFmt->iFmt_VOPC);
    } // decode_OP_VOPC__V_CMPX_LE_F32

    GPUStaticInst*
    Decoder::decode_OP_VOPC__V_CMPX_GT_F32(MachInst iFmt)
    {
        return new Inst_VOPC__V_CMPX_GT_F32(&iFmt->iFmt_VOPC);
    } // decode_OP_VOPC__V_CMPX_GT_F32

    GPUStaticInst*
    Decoder::decode_OP_VOPC__V_CMPX_LG_F32(MachInst iFmt)
    {
        return new Inst_VOPC__V_CMPX_LG_F32(&iFmt->iFmt_VOPC);
    } // decode_OP_VOPC__V_CMPX_LG_F32

    GPUStaticInst*
    Decoder::decode_OP_VOPC__V_CMPX_GE_F32(MachInst iFmt)
    {
        return new Inst_VOPC__V_CMPX_GE_F32(&iFmt->iFmt_VOPC);
    } // decode_OP_VOPC__V_CMPX_GE_F32

    GPUStaticInst*
    Decoder::decode_OP_VOPC__V_CMPX_O_F32(MachInst iFmt)
    {
        return new Inst_VOPC__V_CMPX_O_F32(&iFmt->iFmt_VOPC);
    } // decode_OP_VOPC__V_CMPX_O_F32

    GPUStaticInst*
    Decoder::decode_OP_VOPC__V_CMPX_U_F32(MachInst iFmt)
    {
        return new Inst_VOPC__V_CMPX_U_F32(&iFmt->iFmt_VOPC);
    } // decode_OP_VOPC__V_CMPX_U_F32

    GPUStaticInst*
    Decoder::decode_OP_VOPC__V_CMPX_NGE_F32(MachInst iFmt)
    {
        return new Inst_VOPC__V_CMPX_NGE_F32(&iFmt->iFmt_VOPC);
    } // decode_OP_VOPC__V_CMPX_NGE_F32

    GPUStaticInst*
    Decoder::decode_OP_VOPC__V_CMPX_NLG_F32(MachInst iFmt)
    {
        return new Inst_VOPC__V_CMPX_NLG_F32(&iFmt->iFmt_VOPC);
    } // decode_OP_VOPC__V_CMPX_NLG_F32

    GPUStaticInst*
    Decoder::decode_OP_VOPC__V_CMPX_NGT_F32(MachInst iFmt)
    {
        return new Inst_VOPC__V_CMPX_NGT_F32(&iFmt->iFmt_VOPC);
    } // decode_OP_VOPC__V_CMPX_NGT_F32

    GPUStaticInst*
    Decoder::decode_OP_VOPC__V_CMPX_NLE_F32(MachInst iFmt)
    {
        return new Inst_VOPC__V_CMPX_NLE_F32(&iFmt->iFmt_VOPC);
    } // decode_OP_VOPC__V_CMPX_NLE_F32

    GPUStaticInst*
    Decoder::decode_OP_VOPC__V_CMPX_NEQ_F32(MachInst iFmt)
    {
        return new Inst_VOPC__V_CMPX_NEQ_F32(&iFmt->iFmt_VOPC);
    } // decode_OP_VOPC__V_CMPX_NEQ_F32

    GPUStaticInst*
    Decoder::decode_OP_VOPC__V_CMPX_NLT_F32(MachInst iFmt)
    {
        return new Inst_VOPC__V_CMPX_NLT_F32(&iFmt->iFmt_VOPC);
    } // decode_OP_VOPC__V_CMPX_NLT_F32

    GPUStaticInst*
    Decoder::decode_OP_VOPC__V_CMPX_TRU_F32(MachInst iFmt)
    {
        return new Inst_VOPC__V_CMPX_TRU_F32(&iFmt->iFmt_VOPC);
    } // decode_OP_VOPC__V_CMPX_TRU_F32

    GPUStaticInst*
    Decoder::decode_OP_VOPC__V_CMP_F_F64(MachInst iFmt)
    {
        return new Inst_VOPC__V_CMP_F_F64(&iFmt->iFmt_VOPC);
    } // decode_OP_VOPC__V_CMP_F_F64

    GPUStaticInst*
    Decoder::decode_OP_VOPC__V_CMP_LT_F64(MachInst iFmt)
    {
        return new Inst_VOPC__V_CMP_LT_F64(&iFmt->iFmt_VOPC);
    } // decode_OP_VOPC__V_CMP_LT_F64

    GPUStaticInst*
    Decoder::decode_OP_VOPC__V_CMP_EQ_F64(MachInst iFmt)
    {
        return new Inst_VOPC__V_CMP_EQ_F64(&iFmt->iFmt_VOPC);
    } // decode_OP_VOPC__V_CMP_EQ_F64

    GPUStaticInst*
    Decoder::decode_OP_VOPC__V_CMP_LE_F64(MachInst iFmt)
    {
        return new Inst_VOPC__V_CMP_LE_F64(&iFmt->iFmt_VOPC);
    } // decode_OP_VOPC__V_CMP_LE_F64

    GPUStaticInst*
    Decoder::decode_OP_VOPC__V_CMP_GT_F64(MachInst iFmt)
    {
        return new Inst_VOPC__V_CMP_GT_F64(&iFmt->iFmt_VOPC);
    } // decode_OP_VOPC__V_CMP_GT_F64

    GPUStaticInst*
    Decoder::decode_OP_VOPC__V_CMP_LG_F64(MachInst iFmt)
    {
        return new Inst_VOPC__V_CMP_LG_F64(&iFmt->iFmt_VOPC);
    } // decode_OP_VOPC__V_CMP_LG_F64

    GPUStaticInst*
    Decoder::decode_OP_VOPC__V_CMP_GE_F64(MachInst iFmt)
    {
        return new Inst_VOPC__V_CMP_GE_F64(&iFmt->iFmt_VOPC);
    } // decode_OP_VOPC__V_CMP_GE_F64

    GPUStaticInst*
    Decoder::decode_OP_VOPC__V_CMP_O_F64(MachInst iFmt)
    {
        return new Inst_VOPC__V_CMP_O_F64(&iFmt->iFmt_VOPC);
    } // decode_OP_VOPC__V_CMP_O_F64

    GPUStaticInst*
    Decoder::decode_OP_VOPC__V_CMP_U_F64(MachInst iFmt)
    {
        return new Inst_VOPC__V_CMP_U_F64(&iFmt->iFmt_VOPC);
    } // decode_OP_VOPC__V_CMP_U_F64

    GPUStaticInst*
    Decoder::decode_OP_VOPC__V_CMP_NGE_F64(MachInst iFmt)
    {
        return new Inst_VOPC__V_CMP_NGE_F64(&iFmt->iFmt_VOPC);
    } // decode_OP_VOPC__V_CMP_NGE_F64

    GPUStaticInst*
    Decoder::decode_OP_VOPC__V_CMP_NLG_F64(MachInst iFmt)
    {
        return new Inst_VOPC__V_CMP_NLG_F64(&iFmt->iFmt_VOPC);
    } // decode_OP_VOPC__V_CMP_NLG_F64

    GPUStaticInst*
    Decoder::decode_OP_VOPC__V_CMP_NGT_F64(MachInst iFmt)
    {
        return new Inst_VOPC__V_CMP_NGT_F64(&iFmt->iFmt_VOPC);
    } // decode_OP_VOPC__V_CMP_NGT_F64

    GPUStaticInst*
    Decoder::decode_OP_VOPC__V_CMP_NLE_F64(MachInst iFmt)
    {
        return new Inst_VOPC__V_CMP_NLE_F64(&iFmt->iFmt_VOPC);
    } // decode_OP_VOPC__V_CMP_NLE_F64

    GPUStaticInst*
    Decoder::decode_OP_VOPC__V_CMP_NEQ_F64(MachInst iFmt)
    {
        return new Inst_VOPC__V_CMP_NEQ_F64(&iFmt->iFmt_VOPC);
    } // decode_OP_VOPC__V_CMP_NEQ_F64

    GPUStaticInst*
    Decoder::decode_OP_VOPC__V_CMP_NLT_F64(MachInst iFmt)
    {
        return new Inst_VOPC__V_CMP_NLT_F64(&iFmt->iFmt_VOPC);
    } // decode_OP_VOPC__V_CMP_NLT_F64

    GPUStaticInst*
    Decoder::decode_OP_VOPC__V_CMP_TRU_F64(MachInst iFmt)
    {
        return new Inst_VOPC__V_CMP_TRU_F64(&iFmt->iFmt_VOPC);
    } // decode_OP_VOPC__V_CMP_TRU_F64

    GPUStaticInst*
    Decoder::decode_OP_VOPC__V_CMPX_F_F64(MachInst iFmt)
    {
        return new Inst_VOPC__V_CMPX_F_F64(&iFmt->iFmt_VOPC);
    } // decode_OP_VOPC__V_CMPX_F_F64

    GPUStaticInst*
    Decoder::decode_OP_VOPC__V_CMPX_LT_F64(MachInst iFmt)
    {
        return new Inst_VOPC__V_CMPX_LT_F64(&iFmt->iFmt_VOPC);
    } // decode_OP_VOPC__V_CMPX_LT_F64

    GPUStaticInst*
    Decoder::decode_OP_VOPC__V_CMPX_EQ_F64(MachInst iFmt)
    {
        return new Inst_VOPC__V_CMPX_EQ_F64(&iFmt->iFmt_VOPC);
    } // decode_OP_VOPC__V_CMPX_EQ_F64

    GPUStaticInst*
    Decoder::decode_OP_VOPC__V_CMPX_LE_F64(MachInst iFmt)
    {
        return new Inst_VOPC__V_CMPX_LE_F64(&iFmt->iFmt_VOPC);
    } // decode_OP_VOPC__V_CMPX_LE_F64

    GPUStaticInst*
    Decoder::decode_OP_VOPC__V_CMPX_GT_F64(MachInst iFmt)
    {
        return new Inst_VOPC__V_CMPX_GT_F64(&iFmt->iFmt_VOPC);
    } // decode_OP_VOPC__V_CMPX_GT_F64

    GPUStaticInst*
    Decoder::decode_OP_VOPC__V_CMPX_LG_F64(MachInst iFmt)
    {
        return new Inst_VOPC__V_CMPX_LG_F64(&iFmt->iFmt_VOPC);
    } // decode_OP_VOPC__V_CMPX_LG_F64

    GPUStaticInst*
    Decoder::decode_OP_VOPC__V_CMPX_GE_F64(MachInst iFmt)
    {
        return new Inst_VOPC__V_CMPX_GE_F64(&iFmt->iFmt_VOPC);
    } // decode_OP_VOPC__V_CMPX_GE_F64

    GPUStaticInst*
    Decoder::decode_OP_VOPC__V_CMPX_O_F64(MachInst iFmt)
    {
        return new Inst_VOPC__V_CMPX_O_F64(&iFmt->iFmt_VOPC);
    } // decode_OP_VOPC__V_CMPX_O_F64

    GPUStaticInst*
    Decoder::decode_OP_VOPC__V_CMPX_U_F64(MachInst iFmt)
    {
        return new Inst_VOPC__V_CMPX_U_F64(&iFmt->iFmt_VOPC);
    } // decode_OP_VOPC__V_CMPX_U_F64

    GPUStaticInst*
    Decoder::decode_OP_VOPC__V_CMPX_NGE_F64(MachInst iFmt)
    {
        return new Inst_VOPC__V_CMPX_NGE_F64(&iFmt->iFmt_VOPC);
    } // decode_OP_VOPC__V_CMPX_NGE_F64

    GPUStaticInst*
    Decoder::decode_OP_VOPC__V_CMPX_NLG_F64(MachInst iFmt)
    {
        return new Inst_VOPC__V_CMPX_NLG_F64(&iFmt->iFmt_VOPC);
    } // decode_OP_VOPC__V_CMPX_NLG_F64

    GPUStaticInst*
    Decoder::decode_OP_VOPC__V_CMPX_NGT_F64(MachInst iFmt)
    {
        return new Inst_VOPC__V_CMPX_NGT_F64(&iFmt->iFmt_VOPC);
    } // decode_OP_VOPC__V_CMPX_NGT_F64

    GPUStaticInst*
    Decoder::decode_OP_VOPC__V_CMPX_NLE_F64(MachInst iFmt)
    {
        return new Inst_VOPC__V_CMPX_NLE_F64(&iFmt->iFmt_VOPC);
    } // decode_OP_VOPC__V_CMPX_NLE_F64

    GPUStaticInst*
    Decoder::decode_OP_VOPC__V_CMPX_NEQ_F64(MachInst iFmt)
    {
        return new Inst_VOPC__V_CMPX_NEQ_F64(&iFmt->iFmt_VOPC);
    } // decode_OP_VOPC__V_CMPX_NEQ_F64

    GPUStaticInst*
    Decoder::decode_OP_VOPC__V_CMPX_NLT_F64(MachInst iFmt)
    {
        return new Inst_VOPC__V_CMPX_NLT_F64(&iFmt->iFmt_VOPC);
    } // decode_OP_VOPC__V_CMPX_NLT_F64

    GPUStaticInst*
    Decoder::decode_OP_VOPC__V_CMPX_TRU_F64(MachInst iFmt)
    {
        return new Inst_VOPC__V_CMPX_TRU_F64(&iFmt->iFmt_VOPC);
    } // decode_OP_VOPC__V_CMPX_TRU_F64

    GPUStaticInst*
    Decoder::decode_OP_VOPC__V_CMP_F_I16(MachInst iFmt)
    {
        return new Inst_VOPC__V_CMP_F_I16(&iFmt->iFmt_VOPC);
    } // decode_OP_VOPC__V_CMP_F_I16

    GPUStaticInst*
    Decoder::decode_OP_VOPC__V_CMP_LT_I16(MachInst iFmt)
    {
        return new Inst_VOPC__V_CMP_LT_I16(&iFmt->iFmt_VOPC);
    } // decode_OP_VOPC__V_CMP_LT_I16

    GPUStaticInst*
    Decoder::decode_OP_VOPC__V_CMP_EQ_I16(MachInst iFmt)
    {
        return new Inst_VOPC__V_CMP_EQ_I16(&iFmt->iFmt_VOPC);
    } // decode_OP_VOPC__V_CMP_EQ_I16

    GPUStaticInst*
    Decoder::decode_OP_VOPC__V_CMP_LE_I16(MachInst iFmt)
    {
        return new Inst_VOPC__V_CMP_LE_I16(&iFmt->iFmt_VOPC);
    } // decode_OP_VOPC__V_CMP_LE_I16

    GPUStaticInst*
    Decoder::decode_OP_VOPC__V_CMP_GT_I16(MachInst iFmt)
    {
        return new Inst_VOPC__V_CMP_GT_I16(&iFmt->iFmt_VOPC);
    } // decode_OP_VOPC__V_CMP_GT_I16

    GPUStaticInst*
    Decoder::decode_OP_VOPC__V_CMP_NE_I16(MachInst iFmt)
    {
        return new Inst_VOPC__V_CMP_NE_I16(&iFmt->iFmt_VOPC);
    } // decode_OP_VOPC__V_CMP_NE_I16

    GPUStaticInst*
    Decoder::decode_OP_VOPC__V_CMP_GE_I16(MachInst iFmt)
    {
        return new Inst_VOPC__V_CMP_GE_I16(&iFmt->iFmt_VOPC);
    } // decode_OP_VOPC__V_CMP_GE_I16

    GPUStaticInst*
    Decoder::decode_OP_VOPC__V_CMP_T_I16(MachInst iFmt)
    {
        return new Inst_VOPC__V_CMP_T_I16(&iFmt->iFmt_VOPC);
    } // decode_OP_VOPC__V_CMP_T_I16

    GPUStaticInst*
    Decoder::decode_OP_VOPC__V_CMP_F_U16(MachInst iFmt)
    {
        return new Inst_VOPC__V_CMP_F_U16(&iFmt->iFmt_VOPC);
    } // decode_OP_VOPC__V_CMP_F_U16

    GPUStaticInst*
    Decoder::decode_OP_VOPC__V_CMP_LT_U16(MachInst iFmt)
    {
        return new Inst_VOPC__V_CMP_LT_U16(&iFmt->iFmt_VOPC);
    } // decode_OP_VOPC__V_CMP_LT_U16

    GPUStaticInst*
    Decoder::decode_OP_VOPC__V_CMP_EQ_U16(MachInst iFmt)
    {
        return new Inst_VOPC__V_CMP_EQ_U16(&iFmt->iFmt_VOPC);
    } // decode_OP_VOPC__V_CMP_EQ_U16

    GPUStaticInst*
    Decoder::decode_OP_VOPC__V_CMP_LE_U16(MachInst iFmt)
    {
        return new Inst_VOPC__V_CMP_LE_U16(&iFmt->iFmt_VOPC);
    } // decode_OP_VOPC__V_CMP_LE_U16

    GPUStaticInst*
    Decoder::decode_OP_VOPC__V_CMP_GT_U16(MachInst iFmt)
    {
        return new Inst_VOPC__V_CMP_GT_U16(&iFmt->iFmt_VOPC);
    } // decode_OP_VOPC__V_CMP_GT_U16

    GPUStaticInst*
    Decoder::decode_OP_VOPC__V_CMP_NE_U16(MachInst iFmt)
    {
        return new Inst_VOPC__V_CMP_NE_U16(&iFmt->iFmt_VOPC);
    } // decode_OP_VOPC__V_CMP_NE_U16

    GPUStaticInst*
    Decoder::decode_OP_VOPC__V_CMP_GE_U16(MachInst iFmt)
    {
        return new Inst_VOPC__V_CMP_GE_U16(&iFmt->iFmt_VOPC);
    } // decode_OP_VOPC__V_CMP_GE_U16

    GPUStaticInst*
    Decoder::decode_OP_VOPC__V_CMP_T_U16(MachInst iFmt)
    {
        return new Inst_VOPC__V_CMP_T_U16(&iFmt->iFmt_VOPC);
    } // decode_OP_VOPC__V_CMP_T_U16

    GPUStaticInst*
    Decoder::decode_OP_VOPC__V_CMPX_F_I16(MachInst iFmt)
    {
        return new Inst_VOPC__V_CMPX_F_I16(&iFmt->iFmt_VOPC);
    } // decode_OP_VOPC__V_CMPX_F_I16

    GPUStaticInst*
    Decoder::decode_OP_VOPC__V_CMPX_LT_I16(MachInst iFmt)
    {
        return new Inst_VOPC__V_CMPX_LT_I16(&iFmt->iFmt_VOPC);
    } // decode_OP_VOPC__V_CMPX_LT_I16

    GPUStaticInst*
    Decoder::decode_OP_VOPC__V_CMPX_EQ_I16(MachInst iFmt)
    {
        return new Inst_VOPC__V_CMPX_EQ_I16(&iFmt->iFmt_VOPC);
    } // decode_OP_VOPC__V_CMPX_EQ_I16

    GPUStaticInst*
    Decoder::decode_OP_VOPC__V_CMPX_LE_I16(MachInst iFmt)
    {
        return new Inst_VOPC__V_CMPX_LE_I16(&iFmt->iFmt_VOPC);
    } // decode_OP_VOPC__V_CMPX_LE_I16

    GPUStaticInst*
    Decoder::decode_OP_VOPC__V_CMPX_GT_I16(MachInst iFmt)
    {
        return new Inst_VOPC__V_CMPX_GT_I16(&iFmt->iFmt_VOPC);
    } // decode_OP_VOPC__V_CMPX_GT_I16

    GPUStaticInst*
    Decoder::decode_OP_VOPC__V_CMPX_NE_I16(MachInst iFmt)
    {
        return new Inst_VOPC__V_CMPX_NE_I16(&iFmt->iFmt_VOPC);
    } // decode_OP_VOPC__V_CMPX_NE_I16

    GPUStaticInst*
    Decoder::decode_OP_VOPC__V_CMPX_GE_I16(MachInst iFmt)
    {
        return new Inst_VOPC__V_CMPX_GE_I16(&iFmt->iFmt_VOPC);
    } // decode_OP_VOPC__V_CMPX_GE_I16

    GPUStaticInst*
    Decoder::decode_OP_VOPC__V_CMPX_T_I16(MachInst iFmt)
    {
        return new Inst_VOPC__V_CMPX_T_I16(&iFmt->iFmt_VOPC);
    } // decode_OP_VOPC__V_CMPX_T_I16

    GPUStaticInst*
    Decoder::decode_OP_VOPC__V_CMPX_F_U16(MachInst iFmt)
    {
        return new Inst_VOPC__V_CMPX_F_U16(&iFmt->iFmt_VOPC);
    } // decode_OP_VOPC__V_CMPX_F_U16

    GPUStaticInst*
    Decoder::decode_OP_VOPC__V_CMPX_LT_U16(MachInst iFmt)
    {
        return new Inst_VOPC__V_CMPX_LT_U16(&iFmt->iFmt_VOPC);
    } // decode_OP_VOPC__V_CMPX_LT_U16

    GPUStaticInst*
    Decoder::decode_OP_VOPC__V_CMPX_EQ_U16(MachInst iFmt)
    {
        return new Inst_VOPC__V_CMPX_EQ_U16(&iFmt->iFmt_VOPC);
    } // decode_OP_VOPC__V_CMPX_EQ_U16

    GPUStaticInst*
    Decoder::decode_OP_VOPC__V_CMPX_LE_U16(MachInst iFmt)
    {
        return new Inst_VOPC__V_CMPX_LE_U16(&iFmt->iFmt_VOPC);
    } // decode_OP_VOPC__V_CMPX_LE_U16

    GPUStaticInst*
    Decoder::decode_OP_VOPC__V_CMPX_GT_U16(MachInst iFmt)
    {
        return new Inst_VOPC__V_CMPX_GT_U16(&iFmt->iFmt_VOPC);
    } // decode_OP_VOPC__V_CMPX_GT_U16

    GPUStaticInst*
    Decoder::decode_OP_VOPC__V_CMPX_NE_U16(MachInst iFmt)
    {
        return new Inst_VOPC__V_CMPX_NE_U16(&iFmt->iFmt_VOPC);
    } // decode_OP_VOPC__V_CMPX_NE_U16

    GPUStaticInst*
    Decoder::decode_OP_VOPC__V_CMPX_GE_U16(MachInst iFmt)
    {
        return new Inst_VOPC__V_CMPX_GE_U16(&iFmt->iFmt_VOPC);
    } // decode_OP_VOPC__V_CMPX_GE_U16

    GPUStaticInst*
    Decoder::decode_OP_VOPC__V_CMPX_T_U16(MachInst iFmt)
    {
        return new Inst_VOPC__V_CMPX_T_U16(&iFmt->iFmt_VOPC);
    } // decode_OP_VOPC__V_CMPX_T_U16

    GPUStaticInst*
    Decoder::decode_OP_VOPC__V_CMP_F_I32(MachInst iFmt)
    {
        return new Inst_VOPC__V_CMP_F_I32(&iFmt->iFmt_VOPC);
    } // decode_OP_VOPC__V_CMP_F_I32

    GPUStaticInst*
    Decoder::decode_OP_VOPC__V_CMP_LT_I32(MachInst iFmt)
    {
        return new Inst_VOPC__V_CMP_LT_I32(&iFmt->iFmt_VOPC);
    } // decode_OP_VOPC__V_CMP_LT_I32

    GPUStaticInst*
    Decoder::decode_OP_VOPC__V_CMP_EQ_I32(MachInst iFmt)
    {
        return new Inst_VOPC__V_CMP_EQ_I32(&iFmt->iFmt_VOPC);
    } // decode_OP_VOPC__V_CMP_EQ_I32

    GPUStaticInst*
    Decoder::decode_OP_VOPC__V_CMP_LE_I32(MachInst iFmt)
    {
        return new Inst_VOPC__V_CMP_LE_I32(&iFmt->iFmt_VOPC);
    } // decode_OP_VOPC__V_CMP_LE_I32

    GPUStaticInst*
    Decoder::decode_OP_VOPC__V_CMP_GT_I32(MachInst iFmt)
    {
        return new Inst_VOPC__V_CMP_GT_I32(&iFmt->iFmt_VOPC);
    } // decode_OP_VOPC__V_CMP_GT_I32

    GPUStaticInst*
    Decoder::decode_OP_VOPC__V_CMP_NE_I32(MachInst iFmt)
    {
        return new Inst_VOPC__V_CMP_NE_I32(&iFmt->iFmt_VOPC);
    } // decode_OP_VOPC__V_CMP_NE_I32

    GPUStaticInst*
    Decoder::decode_OP_VOPC__V_CMP_GE_I32(MachInst iFmt)
    {
        return new Inst_VOPC__V_CMP_GE_I32(&iFmt->iFmt_VOPC);
    } // decode_OP_VOPC__V_CMP_GE_I32

    GPUStaticInst*
    Decoder::decode_OP_VOPC__V_CMP_T_I32(MachInst iFmt)
    {
        return new Inst_VOPC__V_CMP_T_I32(&iFmt->iFmt_VOPC);
    } // decode_OP_VOPC__V_CMP_T_I32

    GPUStaticInst*
    Decoder::decode_OP_VOPC__V_CMP_F_U32(MachInst iFmt)
    {
        return new Inst_VOPC__V_CMP_F_U32(&iFmt->iFmt_VOPC);
    } // decode_OP_VOPC__V_CMP_F_U32

    GPUStaticInst*
    Decoder::decode_OP_VOPC__V_CMP_LT_U32(MachInst iFmt)
    {
        return new Inst_VOPC__V_CMP_LT_U32(&iFmt->iFmt_VOPC);
    } // decode_OP_VOPC__V_CMP_LT_U32

    GPUStaticInst*
    Decoder::decode_OP_VOPC__V_CMP_EQ_U32(MachInst iFmt)
    {
        return new Inst_VOPC__V_CMP_EQ_U32(&iFmt->iFmt_VOPC);
    } // decode_OP_VOPC__V_CMP_EQ_U32

    GPUStaticInst*
    Decoder::decode_OP_VOPC__V_CMP_LE_U32(MachInst iFmt)
    {
        return new Inst_VOPC__V_CMP_LE_U32(&iFmt->iFmt_VOPC);
    } // decode_OP_VOPC__V_CMP_LE_U32

    GPUStaticInst*
    Decoder::decode_OP_VOPC__V_CMP_GT_U32(MachInst iFmt)
    {
        return new Inst_VOPC__V_CMP_GT_U32(&iFmt->iFmt_VOPC);
    } // decode_OP_VOPC__V_CMP_GT_U32

    GPUStaticInst*
    Decoder::decode_OP_VOPC__V_CMP_NE_U32(MachInst iFmt)
    {
        return new Inst_VOPC__V_CMP_NE_U32(&iFmt->iFmt_VOPC);
    } // decode_OP_VOPC__V_CMP_NE_U32

    GPUStaticInst*
    Decoder::decode_OP_VOPC__V_CMP_GE_U32(MachInst iFmt)
    {
        return new Inst_VOPC__V_CMP_GE_U32(&iFmt->iFmt_VOPC);
    } // decode_OP_VOPC__V_CMP_GE_U32

    GPUStaticInst*
    Decoder::decode_OP_VOPC__V_CMP_T_U32(MachInst iFmt)
    {
        return new Inst_VOPC__V_CMP_T_U32(&iFmt->iFmt_VOPC);
    } // decode_OP_VOPC__V_CMP_T_U32

    GPUStaticInst*
    Decoder::decode_OP_VOPC__V_CMPX_F_I32(MachInst iFmt)
    {
        return new Inst_VOPC__V_CMPX_F_I32(&iFmt->iFmt_VOPC);
    } // decode_OP_VOPC__V_CMPX_F_I32

    GPUStaticInst*
    Decoder::decode_OP_VOPC__V_CMPX_LT_I32(MachInst iFmt)
    {
        return new Inst_VOPC__V_CMPX_LT_I32(&iFmt->iFmt_VOPC);
    } // decode_OP_VOPC__V_CMPX_LT_I32

    GPUStaticInst*
    Decoder::decode_OP_VOPC__V_CMPX_EQ_I32(MachInst iFmt)
    {
        return new Inst_VOPC__V_CMPX_EQ_I32(&iFmt->iFmt_VOPC);
    } // decode_OP_VOPC__V_CMPX_EQ_I32

    GPUStaticInst*
    Decoder::decode_OP_VOPC__V_CMPX_LE_I32(MachInst iFmt)
    {
        return new Inst_VOPC__V_CMPX_LE_I32(&iFmt->iFmt_VOPC);
    } // decode_OP_VOPC__V_CMPX_LE_I32

    GPUStaticInst*
    Decoder::decode_OP_VOPC__V_CMPX_GT_I32(MachInst iFmt)
    {
        return new Inst_VOPC__V_CMPX_GT_I32(&iFmt->iFmt_VOPC);
    } // decode_OP_VOPC__V_CMPX_GT_I32

    GPUStaticInst*
    Decoder::decode_OP_VOPC__V_CMPX_NE_I32(MachInst iFmt)
    {
        return new Inst_VOPC__V_CMPX_NE_I32(&iFmt->iFmt_VOPC);
    } // decode_OP_VOPC__V_CMPX_NE_I32

    GPUStaticInst*
    Decoder::decode_OP_VOPC__V_CMPX_GE_I32(MachInst iFmt)
    {
        return new Inst_VOPC__V_CMPX_GE_I32(&iFmt->iFmt_VOPC);
    } // decode_OP_VOPC__V_CMPX_GE_I32

    GPUStaticInst*
    Decoder::decode_OP_VOPC__V_CMPX_T_I32(MachInst iFmt)
    {
        return new Inst_VOPC__V_CMPX_T_I32(&iFmt->iFmt_VOPC);
    } // decode_OP_VOPC__V_CMPX_T_I32

    GPUStaticInst*
    Decoder::decode_OP_VOPC__V_CMPX_F_U32(MachInst iFmt)
    {
        return new Inst_VOPC__V_CMPX_F_U32(&iFmt->iFmt_VOPC);
    } // decode_OP_VOPC__V_CMPX_F_U32

    GPUStaticInst*
    Decoder::decode_OP_VOPC__V_CMPX_LT_U32(MachInst iFmt)
    {
        return new Inst_VOPC__V_CMPX_LT_U32(&iFmt->iFmt_VOPC);
    } // decode_OP_VOPC__V_CMPX_LT_U32

    GPUStaticInst*
    Decoder::decode_OP_VOPC__V_CMPX_EQ_U32(MachInst iFmt)
    {
        return new Inst_VOPC__V_CMPX_EQ_U32(&iFmt->iFmt_VOPC);
    } // decode_OP_VOPC__V_CMPX_EQ_U32

    GPUStaticInst*
    Decoder::decode_OP_VOPC__V_CMPX_LE_U32(MachInst iFmt)
    {
        return new Inst_VOPC__V_CMPX_LE_U32(&iFmt->iFmt_VOPC);
    } // decode_OP_VOPC__V_CMPX_LE_U32

    GPUStaticInst*
    Decoder::decode_OP_VOPC__V_CMPX_GT_U32(MachInst iFmt)
    {
        return new Inst_VOPC__V_CMPX_GT_U32(&iFmt->iFmt_VOPC);
    } // decode_OP_VOPC__V_CMPX_GT_U32

    GPUStaticInst*
    Decoder::decode_OP_VOPC__V_CMPX_NE_U32(MachInst iFmt)
    {
        return new Inst_VOPC__V_CMPX_NE_U32(&iFmt->iFmt_VOPC);
    } // decode_OP_VOPC__V_CMPX_NE_U32

    GPUStaticInst*
    Decoder::decode_OP_VOPC__V_CMPX_GE_U32(MachInst iFmt)
    {
        return new Inst_VOPC__V_CMPX_GE_U32(&iFmt->iFmt_VOPC);
    } // decode_OP_VOPC__V_CMPX_GE_U32

    GPUStaticInst*
    Decoder::decode_OP_VOPC__V_CMPX_T_U32(MachInst iFmt)
    {
        return new Inst_VOPC__V_CMPX_T_U32(&iFmt->iFmt_VOPC);
    } // decode_OP_VOPC__V_CMPX_T_U32

    GPUStaticInst*
    Decoder::decode_OP_VOPC__V_CMP_F_I64(MachInst iFmt)
    {
        return new Inst_VOPC__V_CMP_F_I64(&iFmt->iFmt_VOPC);
    } // decode_OP_VOPC__V_CMP_F_I64

    GPUStaticInst*
    Decoder::decode_OP_VOPC__V_CMP_LT_I64(MachInst iFmt)
    {
        return new Inst_VOPC__V_CMP_LT_I64(&iFmt->iFmt_VOPC);
    } // decode_OP_VOPC__V_CMP_LT_I64

    GPUStaticInst*
    Decoder::decode_OP_VOPC__V_CMP_EQ_I64(MachInst iFmt)
    {
        return new Inst_VOPC__V_CMP_EQ_I64(&iFmt->iFmt_VOPC);
    } // decode_OP_VOPC__V_CMP_EQ_I64

    GPUStaticInst*
    Decoder::decode_OP_VOPC__V_CMP_LE_I64(MachInst iFmt)
    {
        return new Inst_VOPC__V_CMP_LE_I64(&iFmt->iFmt_VOPC);
    } // decode_OP_VOPC__V_CMP_LE_I64

    GPUStaticInst*
    Decoder::decode_OP_VOPC__V_CMP_GT_I64(MachInst iFmt)
    {
        return new Inst_VOPC__V_CMP_GT_I64(&iFmt->iFmt_VOPC);
    } // decode_OP_VOPC__V_CMP_GT_I64

    GPUStaticInst*
    Decoder::decode_OP_VOPC__V_CMP_NE_I64(MachInst iFmt)
    {
        return new Inst_VOPC__V_CMP_NE_I64(&iFmt->iFmt_VOPC);
    } // decode_OP_VOPC__V_CMP_NE_I64

    GPUStaticInst*
    Decoder::decode_OP_VOPC__V_CMP_GE_I64(MachInst iFmt)
    {
        return new Inst_VOPC__V_CMP_GE_I64(&iFmt->iFmt_VOPC);
    } // decode_OP_VOPC__V_CMP_GE_I64

    GPUStaticInst*
    Decoder::decode_OP_VOPC__V_CMP_T_I64(MachInst iFmt)
    {
        return new Inst_VOPC__V_CMP_T_I64(&iFmt->iFmt_VOPC);
    } // decode_OP_VOPC__V_CMP_T_I64

    GPUStaticInst*
    Decoder::decode_OP_VOPC__V_CMP_F_U64(MachInst iFmt)
    {
        return new Inst_VOPC__V_CMP_F_U64(&iFmt->iFmt_VOPC);
    } // decode_OP_VOPC__V_CMP_F_U64

    GPUStaticInst*
    Decoder::decode_OP_VOPC__V_CMP_LT_U64(MachInst iFmt)
    {
        return new Inst_VOPC__V_CMP_LT_U64(&iFmt->iFmt_VOPC);
    } // decode_OP_VOPC__V_CMP_LT_U64

    GPUStaticInst*
    Decoder::decode_OP_VOPC__V_CMP_EQ_U64(MachInst iFmt)
    {
        return new Inst_VOPC__V_CMP_EQ_U64(&iFmt->iFmt_VOPC);
    } // decode_OP_VOPC__V_CMP_EQ_U64

    GPUStaticInst*
    Decoder::decode_OP_VOPC__V_CMP_LE_U64(MachInst iFmt)
    {
        return new Inst_VOPC__V_CMP_LE_U64(&iFmt->iFmt_VOPC);
    } // decode_OP_VOPC__V_CMP_LE_U64

    GPUStaticInst*
    Decoder::decode_OP_VOPC__V_CMP_GT_U64(MachInst iFmt)
    {
        return new Inst_VOPC__V_CMP_GT_U64(&iFmt->iFmt_VOPC);
    } // decode_OP_VOPC__V_CMP_GT_U64

    GPUStaticInst*
    Decoder::decode_OP_VOPC__V_CMP_NE_U64(MachInst iFmt)
    {
        return new Inst_VOPC__V_CMP_NE_U64(&iFmt->iFmt_VOPC);
    } // decode_OP_VOPC__V_CMP_NE_U64

    GPUStaticInst*
    Decoder::decode_OP_VOPC__V_CMP_GE_U64(MachInst iFmt)
    {
        return new Inst_VOPC__V_CMP_GE_U64(&iFmt->iFmt_VOPC);
    } // decode_OP_VOPC__V_CMP_GE_U64

    GPUStaticInst*
    Decoder::decode_OP_VOPC__V_CMP_T_U64(MachInst iFmt)
    {
        return new Inst_VOPC__V_CMP_T_U64(&iFmt->iFmt_VOPC);
    } // decode_OP_VOPC__V_CMP_T_U64

    GPUStaticInst*
    Decoder::decode_OP_VOPC__V_CMPX_F_I64(MachInst iFmt)
    {
        return new Inst_VOPC__V_CMPX_F_I64(&iFmt->iFmt_VOPC);
    } // decode_OP_VOPC__V_CMPX_F_I64

    GPUStaticInst*
    Decoder::decode_OP_VOPC__V_CMPX_LT_I64(MachInst iFmt)
    {
        return new Inst_VOPC__V_CMPX_LT_I64(&iFmt->iFmt_VOPC);
    } // decode_OP_VOPC__V_CMPX_LT_I64

    GPUStaticInst*
    Decoder::decode_OP_VOPC__V_CMPX_EQ_I64(MachInst iFmt)
    {
        return new Inst_VOPC__V_CMPX_EQ_I64(&iFmt->iFmt_VOPC);
    } // decode_OP_VOPC__V_CMPX_EQ_I64

    GPUStaticInst*
    Decoder::decode_OP_VOPC__V_CMPX_LE_I64(MachInst iFmt)
    {
        return new Inst_VOPC__V_CMPX_LE_I64(&iFmt->iFmt_VOPC);
    } // decode_OP_VOPC__V_CMPX_LE_I64

    GPUStaticInst*
    Decoder::decode_OP_VOPC__V_CMPX_GT_I64(MachInst iFmt)
    {
        return new Inst_VOPC__V_CMPX_GT_I64(&iFmt->iFmt_VOPC);
    } // decode_OP_VOPC__V_CMPX_GT_I64

    GPUStaticInst*
    Decoder::decode_OP_VOPC__V_CMPX_NE_I64(MachInst iFmt)
    {
        return new Inst_VOPC__V_CMPX_NE_I64(&iFmt->iFmt_VOPC);
    } // decode_OP_VOPC__V_CMPX_NE_I64

    GPUStaticInst*
    Decoder::decode_OP_VOPC__V_CMPX_GE_I64(MachInst iFmt)
    {
        return new Inst_VOPC__V_CMPX_GE_I64(&iFmt->iFmt_VOPC);
    } // decode_OP_VOPC__V_CMPX_GE_I64

    GPUStaticInst*
    Decoder::decode_OP_VOPC__V_CMPX_T_I64(MachInst iFmt)
    {
        return new Inst_VOPC__V_CMPX_T_I64(&iFmt->iFmt_VOPC);
    } // decode_OP_VOPC__V_CMPX_T_I64

    GPUStaticInst*
    Decoder::decode_OP_VOPC__V_CMPX_F_U64(MachInst iFmt)
    {
        return new Inst_VOPC__V_CMPX_F_U64(&iFmt->iFmt_VOPC);
    } // decode_OP_VOPC__V_CMPX_F_U64

    GPUStaticInst*
    Decoder::decode_OP_VOPC__V_CMPX_LT_U64(MachInst iFmt)
    {
        return new Inst_VOPC__V_CMPX_LT_U64(&iFmt->iFmt_VOPC);
    } // decode_OP_VOPC__V_CMPX_LT_U64

    GPUStaticInst*
    Decoder::decode_OP_VOPC__V_CMPX_EQ_U64(MachInst iFmt)
    {
        return new Inst_VOPC__V_CMPX_EQ_U64(&iFmt->iFmt_VOPC);
    } // decode_OP_VOPC__V_CMPX_EQ_U64

    GPUStaticInst*
    Decoder::decode_OP_VOPC__V_CMPX_LE_U64(MachInst iFmt)
    {
        return new Inst_VOPC__V_CMPX_LE_U64(&iFmt->iFmt_VOPC);
    } // decode_OP_VOPC__V_CMPX_LE_U64

    GPUStaticInst*
    Decoder::decode_OP_VOPC__V_CMPX_GT_U64(MachInst iFmt)
    {
        return new Inst_VOPC__V_CMPX_GT_U64(&iFmt->iFmt_VOPC);
    } // decode_OP_VOPC__V_CMPX_GT_U64

    GPUStaticInst*
    Decoder::decode_OP_VOPC__V_CMPX_NE_U64(MachInst iFmt)
    {
        return new Inst_VOPC__V_CMPX_NE_U64(&iFmt->iFmt_VOPC);
    } // decode_OP_VOPC__V_CMPX_NE_U64

    GPUStaticInst*
    Decoder::decode_OP_VOPC__V_CMPX_GE_U64(MachInst iFmt)
    {
        return new Inst_VOPC__V_CMPX_GE_U64(&iFmt->iFmt_VOPC);
    } // decode_OP_VOPC__V_CMPX_GE_U64

    GPUStaticInst*
    Decoder::decode_OP_VOPC__V_CMPX_T_U64(MachInst iFmt)
    {
        return new Inst_VOPC__V_CMPX_T_U64(&iFmt->iFmt_VOPC);
    } // decode_OP_VOPC__V_CMPX_T_U64

    GPUStaticInst*
    Decoder::decode_OP_VOP3P__V_PK_MAD_I16(MachInst iFmt)
    {
        fatal("Trying to decode instruction without a class\n");
        return nullptr;
    }

    GPUStaticInst*
    Decoder::decode_OP_VOP3P__V_PK_MUL_LO_U16(MachInst iFmt)
    {
        fatal("Trying to decode instruction without a class\n");
        return nullptr;
    }

    GPUStaticInst*
    Decoder::decode_OP_VOP3P__V_PK_ADD_I16(MachInst iFmt)
    {
        fatal("Trying to decode instruction without a class\n");
        return nullptr;
    }

    GPUStaticInst*
    Decoder::decode_OP_VOP3P__V_PK_SUB_I16(MachInst iFmt)
    {
        fatal("Trying to decode instruction without a class\n");
        return nullptr;
    }

    GPUStaticInst*
    Decoder::decode_OP_VOP3P__V_PK_LSHLREV_B16(MachInst iFmt)
    {
        fatal("Trying to decode instruction without a class\n");
        return nullptr;
    }

    GPUStaticInst*
    Decoder::decode_OP_VOP3P__V_PK_LSHRREV_B16(MachInst iFmt)
    {
        fatal("Trying to decode instruction without a class\n");
        return nullptr;
    }

    GPUStaticInst*
    Decoder::decode_OP_VOP3P__V_PK_ASHRREV_I16(MachInst iFmt)
    {
        fatal("Trying to decode instruction without a class\n");
        return nullptr;
    }

    GPUStaticInst*
    Decoder::decode_OP_VOP3P__V_PK_MAX_I16(MachInst iFmt)
    {
        fatal("Trying to decode instruction without a class\n");
        return nullptr;
    }

    GPUStaticInst*
    Decoder::decode_OP_VOP3P__V_PK_MIN_I16(MachInst iFmt)
    {
        fatal("Trying to decode instruction without a class\n");
        return nullptr;
    }

    GPUStaticInst*
    Decoder::decode_OP_VOP3P__V_PK_MAD_U16(MachInst iFmt)
    {
        fatal("Trying to decode instruction without a class\n");
        return nullptr;
    }

    GPUStaticInst*
    Decoder::decode_OP_VOP3P__V_PK_ADD_U16(MachInst iFmt)
    {
        fatal("Trying to decode instruction without a class\n");
        return nullptr;
    }

    GPUStaticInst*
    Decoder::decode_OP_VOP3P__V_PK_SUB_U16(MachInst iFmt)
    {
        fatal("Trying to decode instruction without a class\n");
        return nullptr;
    }

    GPUStaticInst*
    Decoder::decode_OP_VOP3P__V_PK_MAX_U16(MachInst iFmt)
    {
        fatal("Trying to decode instruction without a class\n");
        return nullptr;
    }

    GPUStaticInst*
    Decoder::decode_OP_VOP3P__V_PK_MIN_U16(MachInst iFmt)
    {
        fatal("Trying to decode instruction without a class\n");
        return nullptr;
    }

    GPUStaticInst*
    Decoder::decode_OP_VOP3P__V_PK_FMA_F16(MachInst iFmt)
    {
        fatal("Trying to decode instruction without a class\n");
        return nullptr;
    }

    GPUStaticInst*
    Decoder::decode_OP_VOP3P__V_PK_ADD_F16(MachInst iFmt)
    {
        fatal("Trying to decode instruction without a class\n");
        return nullptr;
    }

    GPUStaticInst*
    Decoder::decode_OP_VOP3P__V_PK_MUL_F16(MachInst iFmt)
    {
        fatal("Trying to decode instruction without a class\n");
        return nullptr;
    }

    GPUStaticInst*
    Decoder::decode_OP_VOP3P__V_PK_MIN_F16(MachInst iFmt)
    {
        fatal("Trying to decode instruction without a class\n");
        return nullptr;
    }

    GPUStaticInst*
    Decoder::decode_OP_VOP3P__V_PK_MAX_F16(MachInst iFmt)
    {
        fatal("Trying to decode instruction without a class\n");
        return nullptr;
    }

    GPUStaticInst*
    Decoder::decode_OP_VOP3P__V_MAD_MIX_F32(MachInst iFmt)
    {
        fatal("Trying to decode instruction without a class\n");
        return nullptr;
    }

    GPUStaticInst*
    Decoder::decode_OP_VOP3P__V_MAD_MIXLO_F16(MachInst iFmt)
    {
        fatal("Trying to decode instruction without a class\n");
        return nullptr;
    }

    GPUStaticInst*
    Decoder::decode_OP_VOP3P__V_MAD_MIXHI_F16(MachInst iFmt)
    {
        fatal("Trying to decode instruction without a class\n");
        return nullptr;
    }

    GPUStaticInst*
    Decoder::decode_invalid(MachInst iFmt)
    {
        fatal("Invalid opcode encountered: %#x\n", iFmt->imm_u32);

        return nullptr;
    }
} // namespace VegaISA
} // namespace gem5
