/*
 * Copyright (c) 2015-2021 Advanced Micro Devices, Inc.
 * All rights reserved.
 *
 * For use for simulation and test purposes only
 *
 * 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_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_invalid,
        &Decoder::decode_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)
    {
        fatal("Trying to decode instruction without a class\n");
        return nullptr;
    }

    GPUStaticInst*
    Decoder::decode_OP_SOP2__S_MUL_HI_I32(MachInst iFmt)
    {
        return new Inst_SOP2__S_MUL_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_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)
    {
        fatal("Trying to decode instruction without a class\n");
        return nullptr;
    }

    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)
    {
        fatal("Trying to decode instruction without a class\n");
        return nullptr;
    }

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

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

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

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

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

    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
