blob: e9361c3cc4b9c6278ee635f38471db7b39f8b595 [file] [log] [blame]
/*
* Copyright (c) 2015-2021 Advanced Micro Devices, Inc.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions are met:
*
* 1. Redistributions of source code must retain the above copyright notice,
* this list of conditions and the following disclaimer.
*
* 2. Redistributions in binary form must reproduce the above copyright notice,
* this list of conditions and the following disclaimer in the documentation
* and/or other materials provided with the distribution.
*
* 3. Neither the name of the copyright holder nor the names of its
* contributors may be used to endorse or promote products derived from this
* software without specific prior written permission.
*
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
* AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
* ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
* LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
* SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
* INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
* CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
* ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
* POSSIBILITY OF SUCH DAMAGE.
*/
#ifndef __ARCH_VEGA_INSTS_INSTRUCTIONS_HH__
#define __ARCH_VEGA_INSTS_INSTRUCTIONS_HH__
#include "arch/amdgpu/vega/gpu_decoder.hh"
#include "arch/amdgpu/vega/insts/gpu_static_inst.hh"
#include "arch/amdgpu/vega/insts/op_encodings.hh"
#include "debug/VEGA.hh"
namespace gem5
{
namespace VegaISA
{
class Inst_SOP2__S_ADD_U32 : public Inst_SOP2
{
public:
Inst_SOP2__S_ADD_U32(InFmt_SOP2*);
~Inst_SOP2__S_ADD_U32();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 2; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //ssrc_0
return 4;
case 1: //ssrc_1
return 4;
case 2: //sdst
return 4;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_SOP2__S_ADD_U32
class Inst_SOP2__S_SUB_U32 : public Inst_SOP2
{
public:
Inst_SOP2__S_SUB_U32(InFmt_SOP2*);
~Inst_SOP2__S_SUB_U32();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 2; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //ssrc_0
return 4;
case 1: //ssrc_1
return 4;
case 2: //sdst
return 4;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_SOP2__S_SUB_U32
class Inst_SOP2__S_ADD_I32 : public Inst_SOP2
{
public:
Inst_SOP2__S_ADD_I32(InFmt_SOP2*);
~Inst_SOP2__S_ADD_I32();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 2; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //ssrc_0
return 4;
case 1: //ssrc_1
return 4;
case 2: //sdst
return 4;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_SOP2__S_ADD_I32
class Inst_SOP2__S_SUB_I32 : public Inst_SOP2
{
public:
Inst_SOP2__S_SUB_I32(InFmt_SOP2*);
~Inst_SOP2__S_SUB_I32();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 2; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //ssrc_0
return 4;
case 1: //ssrc_1
return 4;
case 2: //sdst
return 4;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_SOP2__S_SUB_I32
class Inst_SOP2__S_ADDC_U32 : public Inst_SOP2
{
public:
Inst_SOP2__S_ADDC_U32(InFmt_SOP2*);
~Inst_SOP2__S_ADDC_U32();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 2; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //ssrc_0
return 4;
case 1: //ssrc_1
return 4;
case 2: //sdst
return 4;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_SOP2__S_ADDC_U32
class Inst_SOP2__S_SUBB_U32 : public Inst_SOP2
{
public:
Inst_SOP2__S_SUBB_U32(InFmt_SOP2*);
~Inst_SOP2__S_SUBB_U32();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 2; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //ssrc_0
return 4;
case 1: //ssrc_1
return 4;
case 2: //sdst
return 4;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_SOP2__S_SUBB_U32
class Inst_SOP2__S_MIN_I32 : public Inst_SOP2
{
public:
Inst_SOP2__S_MIN_I32(InFmt_SOP2*);
~Inst_SOP2__S_MIN_I32();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 2; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //ssrc_0
return 4;
case 1: //ssrc_1
return 4;
case 2: //sdst
return 4;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_SOP2__S_MIN_I32
class Inst_SOP2__S_MIN_U32 : public Inst_SOP2
{
public:
Inst_SOP2__S_MIN_U32(InFmt_SOP2*);
~Inst_SOP2__S_MIN_U32();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 2; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //ssrc_0
return 4;
case 1: //ssrc_1
return 4;
case 2: //sdst
return 4;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_SOP2__S_MIN_U32
class Inst_SOP2__S_MAX_I32 : public Inst_SOP2
{
public:
Inst_SOP2__S_MAX_I32(InFmt_SOP2*);
~Inst_SOP2__S_MAX_I32();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 2; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //ssrc_0
return 4;
case 1: //ssrc_1
return 4;
case 2: //sdst
return 4;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_SOP2__S_MAX_I32
class Inst_SOP2__S_MAX_U32 : public Inst_SOP2
{
public:
Inst_SOP2__S_MAX_U32(InFmt_SOP2*);
~Inst_SOP2__S_MAX_U32();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 2; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //ssrc_0
return 4;
case 1: //ssrc_1
return 4;
case 2: //sdst
return 4;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_SOP2__S_MAX_U32
class Inst_SOP2__S_CSELECT_B32 : public Inst_SOP2
{
public:
Inst_SOP2__S_CSELECT_B32(InFmt_SOP2*);
~Inst_SOP2__S_CSELECT_B32();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 2; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //ssrc_0
return 4;
case 1: //ssrc_1
return 4;
case 2: //sdst
return 4;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_SOP2__S_CSELECT_B32
class Inst_SOP2__S_CSELECT_B64 : public Inst_SOP2
{
public:
Inst_SOP2__S_CSELECT_B64(InFmt_SOP2*);
~Inst_SOP2__S_CSELECT_B64();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 2; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //ssrc_0
return 8;
case 1: //ssrc_1
return 8;
case 2: //sdst
return 8;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_SOP2__S_CSELECT_B64
class Inst_SOP2__S_AND_B32 : public Inst_SOP2
{
public:
Inst_SOP2__S_AND_B32(InFmt_SOP2*);
~Inst_SOP2__S_AND_B32();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 2; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //ssrc_0
return 4;
case 1: //ssrc_1
return 4;
case 2: //sdst
return 4;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_SOP2__S_AND_B32
class Inst_SOP2__S_AND_B64 : public Inst_SOP2
{
public:
Inst_SOP2__S_AND_B64(InFmt_SOP2*);
~Inst_SOP2__S_AND_B64();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 2; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //ssrc_0
return 8;
case 1: //ssrc_1
return 8;
case 2: //sdst
return 8;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_SOP2__S_AND_B64
class Inst_SOP2__S_OR_B32 : public Inst_SOP2
{
public:
Inst_SOP2__S_OR_B32(InFmt_SOP2*);
~Inst_SOP2__S_OR_B32();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 2; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //ssrc_0
return 4;
case 1: //ssrc_1
return 4;
case 2: //sdst
return 4;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_SOP2__S_OR_B32
class Inst_SOP2__S_OR_B64 : public Inst_SOP2
{
public:
Inst_SOP2__S_OR_B64(InFmt_SOP2*);
~Inst_SOP2__S_OR_B64();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 2; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //ssrc_0
return 8;
case 1: //ssrc_1
return 8;
case 2: //sdst
return 8;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_SOP2__S_OR_B64
class Inst_SOP2__S_XOR_B32 : public Inst_SOP2
{
public:
Inst_SOP2__S_XOR_B32(InFmt_SOP2*);
~Inst_SOP2__S_XOR_B32();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 2; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //ssrc_0
return 4;
case 1: //ssrc_1
return 4;
case 2: //sdst
return 4;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_SOP2__S_XOR_B32
class Inst_SOP2__S_XOR_B64 : public Inst_SOP2
{
public:
Inst_SOP2__S_XOR_B64(InFmt_SOP2*);
~Inst_SOP2__S_XOR_B64();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 2; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //ssrc_0
return 8;
case 1: //ssrc_1
return 8;
case 2: //sdst
return 8;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_SOP2__S_XOR_B64
class Inst_SOP2__S_ANDN2_B32 : public Inst_SOP2
{
public:
Inst_SOP2__S_ANDN2_B32(InFmt_SOP2*);
~Inst_SOP2__S_ANDN2_B32();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 2; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //ssrc_0
return 4;
case 1: //ssrc_1
return 4;
case 2: //sdst
return 4;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_SOP2__S_ANDN2_B32
class Inst_SOP2__S_ANDN2_B64 : public Inst_SOP2
{
public:
Inst_SOP2__S_ANDN2_B64(InFmt_SOP2*);
~Inst_SOP2__S_ANDN2_B64();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 2; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //ssrc_0
return 8;
case 1: //ssrc_1
return 8;
case 2: //sdst
return 8;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_SOP2__S_ANDN2_B64
class Inst_SOP2__S_ORN2_B32 : public Inst_SOP2
{
public:
Inst_SOP2__S_ORN2_B32(InFmt_SOP2*);
~Inst_SOP2__S_ORN2_B32();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 2; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //ssrc_0
return 4;
case 1: //ssrc_1
return 4;
case 2: //sdst
return 4;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_SOP2__S_ORN2_B32
class Inst_SOP2__S_ORN2_B64 : public Inst_SOP2
{
public:
Inst_SOP2__S_ORN2_B64(InFmt_SOP2*);
~Inst_SOP2__S_ORN2_B64();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 2; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //ssrc_0
return 8;
case 1: //ssrc_1
return 8;
case 2: //sdst
return 8;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_SOP2__S_ORN2_B64
class Inst_SOP2__S_NAND_B32 : public Inst_SOP2
{
public:
Inst_SOP2__S_NAND_B32(InFmt_SOP2*);
~Inst_SOP2__S_NAND_B32();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 2; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //ssrc_0
return 4;
case 1: //ssrc_1
return 4;
case 2: //sdst
return 4;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_SOP2__S_NAND_B32
class Inst_SOP2__S_NAND_B64 : public Inst_SOP2
{
public:
Inst_SOP2__S_NAND_B64(InFmt_SOP2*);
~Inst_SOP2__S_NAND_B64();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 2; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //ssrc_0
return 8;
case 1: //ssrc_1
return 8;
case 2: //sdst
return 8;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_SOP2__S_NAND_B64
class Inst_SOP2__S_NOR_B32 : public Inst_SOP2
{
public:
Inst_SOP2__S_NOR_B32(InFmt_SOP2*);
~Inst_SOP2__S_NOR_B32();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 2; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //ssrc_0
return 4;
case 1: //ssrc_1
return 4;
case 2: //sdst
return 4;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_SOP2__S_NOR_B32
class Inst_SOP2__S_NOR_B64 : public Inst_SOP2
{
public:
Inst_SOP2__S_NOR_B64(InFmt_SOP2*);
~Inst_SOP2__S_NOR_B64();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 2; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //ssrc_0
return 8;
case 1: //ssrc_1
return 8;
case 2: //sdst
return 8;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_SOP2__S_NOR_B64
class Inst_SOP2__S_XNOR_B32 : public Inst_SOP2
{
public:
Inst_SOP2__S_XNOR_B32(InFmt_SOP2*);
~Inst_SOP2__S_XNOR_B32();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 2; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //ssrc_0
return 4;
case 1: //ssrc_1
return 4;
case 2: //sdst
return 4;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_SOP2__S_XNOR_B32
class Inst_SOP2__S_XNOR_B64 : public Inst_SOP2
{
public:
Inst_SOP2__S_XNOR_B64(InFmt_SOP2*);
~Inst_SOP2__S_XNOR_B64();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 2; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //ssrc_0
return 8;
case 1: //ssrc_1
return 8;
case 2: //sdst
return 8;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_SOP2__S_XNOR_B64
class Inst_SOP2__S_LSHL_B32 : public Inst_SOP2
{
public:
Inst_SOP2__S_LSHL_B32(InFmt_SOP2*);
~Inst_SOP2__S_LSHL_B32();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 2; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //ssrc_0
return 4;
case 1: //ssrc_1
return 4;
case 2: //sdst
return 4;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_SOP2__S_LSHL_B32
class Inst_SOP2__S_LSHL_B64 : public Inst_SOP2
{
public:
Inst_SOP2__S_LSHL_B64(InFmt_SOP2*);
~Inst_SOP2__S_LSHL_B64();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 2; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //ssrc_0
return 8;
case 1: //ssrc_1
return 4;
case 2: //sdst
return 8;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_SOP2__S_LSHL_B64
class Inst_SOP2__S_LSHR_B32 : public Inst_SOP2
{
public:
Inst_SOP2__S_LSHR_B32(InFmt_SOP2*);
~Inst_SOP2__S_LSHR_B32();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 2; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //ssrc_0
return 4;
case 1: //ssrc_1
return 4;
case 2: //sdst
return 4;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_SOP2__S_LSHR_B32
class Inst_SOP2__S_LSHR_B64 : public Inst_SOP2
{
public:
Inst_SOP2__S_LSHR_B64(InFmt_SOP2*);
~Inst_SOP2__S_LSHR_B64();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 2; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //ssrc_0
return 8;
case 1: //ssrc_1
return 4;
case 2: //sdst
return 8;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_SOP2__S_LSHR_B64
class Inst_SOP2__S_ASHR_I32 : public Inst_SOP2
{
public:
Inst_SOP2__S_ASHR_I32(InFmt_SOP2*);
~Inst_SOP2__S_ASHR_I32();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 2; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //ssrc_0
return 4;
case 1: //ssrc_1
return 4;
case 2: //sdst
return 4;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_SOP2__S_ASHR_I32
class Inst_SOP2__S_ASHR_I64 : public Inst_SOP2
{
public:
Inst_SOP2__S_ASHR_I64(InFmt_SOP2*);
~Inst_SOP2__S_ASHR_I64();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 2; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //ssrc_0
return 8;
case 1: //ssrc_1
return 4;
case 2: //sdst
return 8;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_SOP2__S_ASHR_I64
class Inst_SOP2__S_BFM_B32 : public Inst_SOP2
{
public:
Inst_SOP2__S_BFM_B32(InFmt_SOP2*);
~Inst_SOP2__S_BFM_B32();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 2; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //ssrc_0
return 4;
case 1: //ssrc_1
return 4;
case 2: //sdst
return 4;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_SOP2__S_BFM_B32
class Inst_SOP2__S_BFM_B64 : public Inst_SOP2
{
public:
Inst_SOP2__S_BFM_B64(InFmt_SOP2*);
~Inst_SOP2__S_BFM_B64();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 2; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //ssrc_0
return 4;
case 1: //ssrc_1
return 4;
case 2: //sdst
return 8;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_SOP2__S_BFM_B64
class Inst_SOP2__S_MUL_I32 : public Inst_SOP2
{
public:
Inst_SOP2__S_MUL_I32(InFmt_SOP2*);
~Inst_SOP2__S_MUL_I32();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 2; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //ssrc_0
return 4;
case 1: //ssrc_1
return 4;
case 2: //sdst
return 4;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_SOP2__S_MUL_I32
class Inst_SOP2__S_BFE_U32 : public Inst_SOP2
{
public:
Inst_SOP2__S_BFE_U32(InFmt_SOP2*);
~Inst_SOP2__S_BFE_U32();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 2; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //ssrc_0
return 4;
case 1: //ssrc_1
return 4;
case 2: //sdst
return 4;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_SOP2__S_BFE_U32
class Inst_SOP2__S_BFE_I32 : public Inst_SOP2
{
public:
Inst_SOP2__S_BFE_I32(InFmt_SOP2*);
~Inst_SOP2__S_BFE_I32();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 2; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //ssrc_0
return 4;
case 1: //ssrc_1
return 4;
case 2: //sdst
return 4;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_SOP2__S_BFE_I32
class Inst_SOP2__S_BFE_U64 : public Inst_SOP2
{
public:
Inst_SOP2__S_BFE_U64(InFmt_SOP2*);
~Inst_SOP2__S_BFE_U64();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 2; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //ssrc_0
return 8;
case 1: //ssrc_1
return 4;
case 2: //sdst
return 8;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_SOP2__S_BFE_U64
class Inst_SOP2__S_BFE_I64 : public Inst_SOP2
{
public:
Inst_SOP2__S_BFE_I64(InFmt_SOP2*);
~Inst_SOP2__S_BFE_I64();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 2; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //ssrc_0
return 8;
case 1: //ssrc_1
return 4;
case 2: //sdst
return 8;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_SOP2__S_BFE_I64
class Inst_SOP2__S_CBRANCH_G_FORK : public Inst_SOP2
{
public:
Inst_SOP2__S_CBRANCH_G_FORK(InFmt_SOP2*);
~Inst_SOP2__S_CBRANCH_G_FORK();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 0; }
int numSrcRegOperands() override { return 2; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //ssrc_0
return 8;
case 1: //ssrc_1
return 8;
case 2: //sdst
return 4;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_SOP2__S_CBRANCH_G_FORK
class Inst_SOP2__S_ABSDIFF_I32 : public Inst_SOP2
{
public:
Inst_SOP2__S_ABSDIFF_I32(InFmt_SOP2*);
~Inst_SOP2__S_ABSDIFF_I32();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 2; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //ssrc_0
return 4;
case 1: //ssrc_1
return 4;
case 2: //sdst
return 4;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_SOP2__S_ABSDIFF_I32
class Inst_SOP2__S_RFE_RESTORE_B64 : public Inst_SOP2
{
public:
Inst_SOP2__S_RFE_RESTORE_B64(InFmt_SOP2*);
~Inst_SOP2__S_RFE_RESTORE_B64();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 0; }
int numSrcRegOperands() override { return 2; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //ssrc_0
return 8;
case 1: //ssrc_1
return 4;
case 2: //sdst
return 4;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_SOP2__S_RFE_RESTORE_B64
class Inst_SOP2__S_MUL_HI_U32 : public Inst_SOP2
{
public:
Inst_SOP2__S_MUL_HI_U32(InFmt_SOP2*);
~Inst_SOP2__S_MUL_HI_U32();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 2; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //ssrc_0
return 4;
case 1: //ssrc_1
return 4;
case 2: //sdst
return 4;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_SOP2__S_MUL_HI_U32
class Inst_SOP2__S_MUL_HI_I32 : public Inst_SOP2
{
public:
Inst_SOP2__S_MUL_HI_I32(InFmt_SOP2*);
~Inst_SOP2__S_MUL_HI_I32();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 2; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //ssrc_0
return 4;
case 1: //ssrc_1
return 4;
case 2: //sdst
return 4;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_SOP2__S_MUL_HI_I32
class Inst_SOPK__S_MOVK_I32 : public Inst_SOPK
{
public:
Inst_SOPK__S_MOVK_I32(InFmt_SOPK*);
~Inst_SOPK__S_MOVK_I32();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 1; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //simm16
return 2;
case 1: //sdst
return 4;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_SOPK__S_MOVK_I32
class Inst_SOPK__S_CMOVK_I32 : public Inst_SOPK
{
public:
Inst_SOPK__S_CMOVK_I32(InFmt_SOPK*);
~Inst_SOPK__S_CMOVK_I32();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 1; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //simm16
return 2;
case 1: //sdst
return 4;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_SOPK__S_CMOVK_I32
class Inst_SOPK__S_CMPK_EQ_I32 : public Inst_SOPK
{
public:
Inst_SOPK__S_CMPK_EQ_I32(InFmt_SOPK*);
~Inst_SOPK__S_CMPK_EQ_I32();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 0; }
int numSrcRegOperands() override { return 2; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //ssrc
return 4;
case 1: //simm16
return 2;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_SOPK__S_CMPK_EQ_I32
class Inst_SOPK__S_CMPK_LG_I32 : public Inst_SOPK
{
public:
Inst_SOPK__S_CMPK_LG_I32(InFmt_SOPK*);
~Inst_SOPK__S_CMPK_LG_I32();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 0; }
int numSrcRegOperands() override { return 2; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //ssrc
return 4;
case 1: //simm16
return 2;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_SOPK__S_CMPK_LG_I32
class Inst_SOPK__S_CMPK_GT_I32 : public Inst_SOPK
{
public:
Inst_SOPK__S_CMPK_GT_I32(InFmt_SOPK*);
~Inst_SOPK__S_CMPK_GT_I32();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 0; }
int numSrcRegOperands() override { return 2; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //ssrc
return 4;
case 1: //simm16
return 2;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_SOPK__S_CMPK_GT_I32
class Inst_SOPK__S_CMPK_GE_I32 : public Inst_SOPK
{
public:
Inst_SOPK__S_CMPK_GE_I32(InFmt_SOPK*);
~Inst_SOPK__S_CMPK_GE_I32();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 0; }
int numSrcRegOperands() override { return 2; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //ssrc
return 4;
case 1: //simm16
return 2;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_SOPK__S_CMPK_GE_I32
class Inst_SOPK__S_CMPK_LT_I32 : public Inst_SOPK
{
public:
Inst_SOPK__S_CMPK_LT_I32(InFmt_SOPK*);
~Inst_SOPK__S_CMPK_LT_I32();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 0; }
int numSrcRegOperands() override { return 2; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //ssrc
return 4;
case 1: //simm16
return 2;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_SOPK__S_CMPK_LT_I32
class Inst_SOPK__S_CMPK_LE_I32 : public Inst_SOPK
{
public:
Inst_SOPK__S_CMPK_LE_I32(InFmt_SOPK*);
~Inst_SOPK__S_CMPK_LE_I32();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 0; }
int numSrcRegOperands() override { return 2; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //ssrc
return 4;
case 1: //simm16
return 2;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_SOPK__S_CMPK_LE_I32
class Inst_SOPK__S_CMPK_EQ_U32 : public Inst_SOPK
{
public:
Inst_SOPK__S_CMPK_EQ_U32(InFmt_SOPK*);
~Inst_SOPK__S_CMPK_EQ_U32();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 0; }
int numSrcRegOperands() override { return 2; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //ssrc
return 4;
case 1: //simm16
return 2;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_SOPK__S_CMPK_EQ_U32
class Inst_SOPK__S_CMPK_LG_U32 : public Inst_SOPK
{
public:
Inst_SOPK__S_CMPK_LG_U32(InFmt_SOPK*);
~Inst_SOPK__S_CMPK_LG_U32();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 0; }
int numSrcRegOperands() override { return 2; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //ssrc
return 4;
case 1: //simm16
return 2;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_SOPK__S_CMPK_LG_U32
class Inst_SOPK__S_CMPK_GT_U32 : public Inst_SOPK
{
public:
Inst_SOPK__S_CMPK_GT_U32(InFmt_SOPK*);
~Inst_SOPK__S_CMPK_GT_U32();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 0; }
int numSrcRegOperands() override { return 2; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //ssrc
return 4;
case 1: //simm16
return 2;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_SOPK__S_CMPK_GT_U32
class Inst_SOPK__S_CMPK_GE_U32 : public Inst_SOPK
{
public:
Inst_SOPK__S_CMPK_GE_U32(InFmt_SOPK*);
~Inst_SOPK__S_CMPK_GE_U32();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 0; }
int numSrcRegOperands() override { return 2; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //ssrc
return 4;
case 1: //simm16
return 2;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_SOPK__S_CMPK_GE_U32
class Inst_SOPK__S_CMPK_LT_U32 : public Inst_SOPK
{
public:
Inst_SOPK__S_CMPK_LT_U32(InFmt_SOPK*);
~Inst_SOPK__S_CMPK_LT_U32();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 0; }
int numSrcRegOperands() override { return 2; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //ssrc
return 4;
case 1: //simm16
return 2;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_SOPK__S_CMPK_LT_U32
class Inst_SOPK__S_CMPK_LE_U32 : public Inst_SOPK
{
public:
Inst_SOPK__S_CMPK_LE_U32(InFmt_SOPK*);
~Inst_SOPK__S_CMPK_LE_U32();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 0; }
int numSrcRegOperands() override { return 2; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //ssrc
return 4;
case 1: //simm16
return 2;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_SOPK__S_CMPK_LE_U32
class Inst_SOPK__S_ADDK_I32 : public Inst_SOPK
{
public:
Inst_SOPK__S_ADDK_I32(InFmt_SOPK*);
~Inst_SOPK__S_ADDK_I32();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 1; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //simm16
return 2;
case 1: //sdst
return 4;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_SOPK__S_ADDK_I32
class Inst_SOPK__S_MULK_I32 : public Inst_SOPK
{
public:
Inst_SOPK__S_MULK_I32(InFmt_SOPK*);
~Inst_SOPK__S_MULK_I32();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 1; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //simm16
return 2;
case 1: //sdst
return 4;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_SOPK__S_MULK_I32
class Inst_SOPK__S_CBRANCH_I_FORK : public Inst_SOPK
{
public:
Inst_SOPK__S_CBRANCH_I_FORK(InFmt_SOPK*);
~Inst_SOPK__S_CBRANCH_I_FORK();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 0; }
int numSrcRegOperands() override { return 2; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //sdst
return 8;
case 1: //
return 16;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_SOPK__S_CBRANCH_I_FORK
class Inst_SOPK__S_GETREG_B32 : public Inst_SOPK
{
public:
Inst_SOPK__S_GETREG_B32(InFmt_SOPK*);
~Inst_SOPK__S_GETREG_B32();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 1; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //simm16
return 2;
case 1: //sdst
return 4;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_SOPK__S_GETREG_B32
class Inst_SOPK__S_SETREG_B32 : public Inst_SOPK
{
public:
Inst_SOPK__S_SETREG_B32(InFmt_SOPK*);
~Inst_SOPK__S_SETREG_B32();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 1; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //ssrc
return 4;
case 1: //simm16
return 2;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_SOPK__S_SETREG_B32
class Inst_SOPK__S_SETREG_IMM32_B32 : public Inst_SOPK
{
public:
Inst_SOPK__S_SETREG_IMM32_B32(InFmt_SOPK*);
~Inst_SOPK__S_SETREG_IMM32_B32();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 1; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //simm32
return 4;
case 1: //simm16
return 2;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_SOPK__S_SETREG_IMM32_B32
class Inst_SOP1__S_MOV_B32 : public Inst_SOP1
{
public:
Inst_SOP1__S_MOV_B32(InFmt_SOP1*);
~Inst_SOP1__S_MOV_B32();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 1; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //ssrc
return 4;
case 1: //sdst
return 4;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_SOP1__S_MOV_B32
class Inst_SOP1__S_MOV_B64 : public Inst_SOP1
{
public:
Inst_SOP1__S_MOV_B64(InFmt_SOP1*);
~Inst_SOP1__S_MOV_B64();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 1; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //ssrc
return 8;
case 1: //sdst
return 8;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_SOP1__S_MOV_B64
class Inst_SOP1__S_CMOV_B32 : public Inst_SOP1
{
public:
Inst_SOP1__S_CMOV_B32(InFmt_SOP1*);
~Inst_SOP1__S_CMOV_B32();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 1; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //ssrc
return 4;
case 1: //sdst
return 4;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_SOP1__S_CMOV_B32
class Inst_SOP1__S_CMOV_B64 : public Inst_SOP1
{
public:
Inst_SOP1__S_CMOV_B64(InFmt_SOP1*);
~Inst_SOP1__S_CMOV_B64();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 1; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //ssrc
return 8;
case 1: //sdst
return 8;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_SOP1__S_CMOV_B64
class Inst_SOP1__S_NOT_B32 : public Inst_SOP1
{
public:
Inst_SOP1__S_NOT_B32(InFmt_SOP1*);
~Inst_SOP1__S_NOT_B32();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 1; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //ssrc
return 4;
case 1: //sdst
return 4;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_SOP1__S_NOT_B32
class Inst_SOP1__S_NOT_B64 : public Inst_SOP1
{
public:
Inst_SOP1__S_NOT_B64(InFmt_SOP1*);
~Inst_SOP1__S_NOT_B64();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 1; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //ssrc
return 8;
case 1: //sdst
return 8;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_SOP1__S_NOT_B64
class Inst_SOP1__S_WQM_B32 : public Inst_SOP1
{
public:
Inst_SOP1__S_WQM_B32(InFmt_SOP1*);
~Inst_SOP1__S_WQM_B32();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 1; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //ssrc
return 4;
case 1: //sdst
return 4;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_SOP1__S_WQM_B32
class Inst_SOP1__S_WQM_B64 : public Inst_SOP1
{
public:
Inst_SOP1__S_WQM_B64(InFmt_SOP1*);
~Inst_SOP1__S_WQM_B64();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 1; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //ssrc
return 8;
case 1: //sdst
return 8;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_SOP1__S_WQM_B64
class Inst_SOP1__S_BREV_B32 : public Inst_SOP1
{
public:
Inst_SOP1__S_BREV_B32(InFmt_SOP1*);
~Inst_SOP1__S_BREV_B32();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 1; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //ssrc
return 4;
case 1: //sdst
return 4;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_SOP1__S_BREV_B32
class Inst_SOP1__S_BREV_B64 : public Inst_SOP1
{
public:
Inst_SOP1__S_BREV_B64(InFmt_SOP1*);
~Inst_SOP1__S_BREV_B64();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 1; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //ssrc
return 8;
case 1: //sdst
return 8;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_SOP1__S_BREV_B64
class Inst_SOP1__S_BCNT0_I32_B32 : public Inst_SOP1
{
public:
Inst_SOP1__S_BCNT0_I32_B32(InFmt_SOP1*);
~Inst_SOP1__S_BCNT0_I32_B32();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 1; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //ssrc
return 4;
case 1: //sdst
return 4;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_SOP1__S_BCNT0_I32_B32
class Inst_SOP1__S_BCNT0_I32_B64 : public Inst_SOP1
{
public:
Inst_SOP1__S_BCNT0_I32_B64(InFmt_SOP1*);
~Inst_SOP1__S_BCNT0_I32_B64();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 1; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //ssrc
return 8;
case 1: //sdst
return 4;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_SOP1__S_BCNT0_I32_B64
class Inst_SOP1__S_BCNT1_I32_B32 : public Inst_SOP1
{
public:
Inst_SOP1__S_BCNT1_I32_B32(InFmt_SOP1*);
~Inst_SOP1__S_BCNT1_I32_B32();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 1; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //ssrc
return 4;
case 1: //sdst
return 4;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_SOP1__S_BCNT1_I32_B32
class Inst_SOP1__S_BCNT1_I32_B64 : public Inst_SOP1
{
public:
Inst_SOP1__S_BCNT1_I32_B64(InFmt_SOP1*);
~Inst_SOP1__S_BCNT1_I32_B64();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 1; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //ssrc
return 8;
case 1: //sdst
return 4;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_SOP1__S_BCNT1_I32_B64
class Inst_SOP1__S_FF0_I32_B32 : public Inst_SOP1
{
public:
Inst_SOP1__S_FF0_I32_B32(InFmt_SOP1*);
~Inst_SOP1__S_FF0_I32_B32();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 1; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //ssrc
return 4;
case 1: //sdst
return 4;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_SOP1__S_FF0_I32_B32
class Inst_SOP1__S_FF0_I32_B64 : public Inst_SOP1
{
public:
Inst_SOP1__S_FF0_I32_B64(InFmt_SOP1*);
~Inst_SOP1__S_FF0_I32_B64();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 1; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //ssrc
return 8;
case 1: //sdst
return 4;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_SOP1__S_FF0_I32_B64
class Inst_SOP1__S_FF1_I32_B32 : public Inst_SOP1
{
public:
Inst_SOP1__S_FF1_I32_B32(InFmt_SOP1*);
~Inst_SOP1__S_FF1_I32_B32();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 1; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //ssrc
return 4;
case 1: //sdst
return 4;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_SOP1__S_FF1_I32_B32
class Inst_SOP1__S_FF1_I32_B64 : public Inst_SOP1
{
public:
Inst_SOP1__S_FF1_I32_B64(InFmt_SOP1*);
~Inst_SOP1__S_FF1_I32_B64();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 1; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //ssrc
return 8;
case 1: //sdst
return 4;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_SOP1__S_FF1_I32_B64
class Inst_SOP1__S_FLBIT_I32_B32 : public Inst_SOP1
{
public:
Inst_SOP1__S_FLBIT_I32_B32(InFmt_SOP1*);
~Inst_SOP1__S_FLBIT_I32_B32();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 1; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //ssrc
return 4;
case 1: //sdst
return 4;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_SOP1__S_FLBIT_I32_B32
class Inst_SOP1__S_FLBIT_I32_B64 : public Inst_SOP1
{
public:
Inst_SOP1__S_FLBIT_I32_B64(InFmt_SOP1*);
~Inst_SOP1__S_FLBIT_I32_B64();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 1; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //ssrc
return 8;
case 1: //sdst
return 4;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_SOP1__S_FLBIT_I32_B64
class Inst_SOP1__S_FLBIT_I32 : public Inst_SOP1
{
public:
Inst_SOP1__S_FLBIT_I32(InFmt_SOP1*);
~Inst_SOP1__S_FLBIT_I32();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 1; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //ssrc
return 4;
case 1: //sdst
return 4;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_SOP1__S_FLBIT_I32
class Inst_SOP1__S_FLBIT_I32_I64 : public Inst_SOP1
{
public:
Inst_SOP1__S_FLBIT_I32_I64(InFmt_SOP1*);
~Inst_SOP1__S_FLBIT_I32_I64();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 1; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //ssrc
return 8;
case 1: //sdst
return 4;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_SOP1__S_FLBIT_I32_I64
class Inst_SOP1__S_SEXT_I32_I8 : public Inst_SOP1
{
public:
Inst_SOP1__S_SEXT_I32_I8(InFmt_SOP1*);
~Inst_SOP1__S_SEXT_I32_I8();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 1; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //ssrc
return 4;
case 1: //sdst
return 4;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_SOP1__S_SEXT_I32_I8
class Inst_SOP1__S_SEXT_I32_I16 : public Inst_SOP1
{
public:
Inst_SOP1__S_SEXT_I32_I16(InFmt_SOP1*);
~Inst_SOP1__S_SEXT_I32_I16();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 1; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //ssrc
return 4;
case 1: //sdst
return 4;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_SOP1__S_SEXT_I32_I16
class Inst_SOP1__S_BITSET0_B32 : public Inst_SOP1
{
public:
Inst_SOP1__S_BITSET0_B32(InFmt_SOP1*);
~Inst_SOP1__S_BITSET0_B32();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 1; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //ssrc
return 4;
case 1: //sdst
return 4;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_SOP1__S_BITSET0_B32
class Inst_SOP1__S_BITSET0_B64 : public Inst_SOP1
{
public:
Inst_SOP1__S_BITSET0_B64(InFmt_SOP1*);
~Inst_SOP1__S_BITSET0_B64();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 1; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //ssrc
return 4;
case 1: //sdst
return 8;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_SOP1__S_BITSET0_B64
class Inst_SOP1__S_BITSET1_B32 : public Inst_SOP1
{
public:
Inst_SOP1__S_BITSET1_B32(InFmt_SOP1*);
~Inst_SOP1__S_BITSET1_B32();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 1; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //ssrc
return 4;
case 1: //sdst
return 4;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_SOP1__S_BITSET1_B32
class Inst_SOP1__S_BITSET1_B64 : public Inst_SOP1
{
public:
Inst_SOP1__S_BITSET1_B64(InFmt_SOP1*);
~Inst_SOP1__S_BITSET1_B64();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 1; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //ssrc
return 4;
case 1: //sdst
return 8;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_SOP1__S_BITSET1_B64
class Inst_SOP1__S_GETPC_B64 : public Inst_SOP1
{
public:
Inst_SOP1__S_GETPC_B64(InFmt_SOP1*);
~Inst_SOP1__S_GETPC_B64();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 0; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //sdst
return 8;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_SOP1__S_GETPC_B64
class Inst_SOP1__S_SETPC_B64 : public Inst_SOP1
{
public:
Inst_SOP1__S_SETPC_B64(InFmt_SOP1*);
~Inst_SOP1__S_SETPC_B64();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 0; }
int numSrcRegOperands() override { return 1; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //ssrc
return 8;
case 1: //sdst
return 8;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_SOP1__S_SETPC_B64
class Inst_SOP1__S_SWAPPC_B64 : public Inst_SOP1
{
public:
Inst_SOP1__S_SWAPPC_B64(InFmt_SOP1*);
~Inst_SOP1__S_SWAPPC_B64();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 1; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //ssrc
return 8;
case 1: //sdst
return 8;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_SOP1__S_SWAPPC_B64
class Inst_SOP1__S_RFE_B64 : public Inst_SOP1
{
public:
Inst_SOP1__S_RFE_B64(InFmt_SOP1*);
~Inst_SOP1__S_RFE_B64();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 0; }
int numSrcRegOperands() override { return 1; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //ssrc
return 8;
case 1: //sdst
return 8;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_SOP1__S_RFE_B64
class Inst_SOP1__S_AND_SAVEEXEC_B64 : public Inst_SOP1
{
public:
Inst_SOP1__S_AND_SAVEEXEC_B64(InFmt_SOP1*);
~Inst_SOP1__S_AND_SAVEEXEC_B64();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 1; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //ssrc
return 8;
case 1: //sdst
return 8;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_SOP1__S_AND_SAVEEXEC_B64
class Inst_SOP1__S_OR_SAVEEXEC_B64 : public Inst_SOP1
{
public:
Inst_SOP1__S_OR_SAVEEXEC_B64(InFmt_SOP1*);
~Inst_SOP1__S_OR_SAVEEXEC_B64();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 1; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //ssrc
return 8;
case 1: //sdst
return 8;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_SOP1__S_OR_SAVEEXEC_B64
class Inst_SOP1__S_XOR_SAVEEXEC_B64 : public Inst_SOP1
{
public:
Inst_SOP1__S_XOR_SAVEEXEC_B64(InFmt_SOP1*);
~Inst_SOP1__S_XOR_SAVEEXEC_B64();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 1; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //ssrc
return 8;
case 1: //sdst
return 8;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_SOP1__S_XOR_SAVEEXEC_B64
class Inst_SOP1__S_ANDN2_SAVEEXEC_B64 : public Inst_SOP1
{
public:
Inst_SOP1__S_ANDN2_SAVEEXEC_B64(InFmt_SOP1*);
~Inst_SOP1__S_ANDN2_SAVEEXEC_B64();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 1; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //ssrc
return 8;
case 1: //sdst
return 8;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_SOP1__S_ANDN2_SAVEEXEC_B64
class Inst_SOP1__S_ORN2_SAVEEXEC_B64 : public Inst_SOP1
{
public:
Inst_SOP1__S_ORN2_SAVEEXEC_B64(InFmt_SOP1*);
~Inst_SOP1__S_ORN2_SAVEEXEC_B64();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 1; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //ssrc
return 8;
case 1: //sdst
return 8;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_SOP1__S_ORN2_SAVEEXEC_B64
class Inst_SOP1__S_NAND_SAVEEXEC_B64 : public Inst_SOP1
{
public:
Inst_SOP1__S_NAND_SAVEEXEC_B64(InFmt_SOP1*);
~Inst_SOP1__S_NAND_SAVEEXEC_B64();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 1; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //ssrc
return 8;
case 1: //sdst
return 8;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_SOP1__S_NAND_SAVEEXEC_B64
class Inst_SOP1__S_NOR_SAVEEXEC_B64 : public Inst_SOP1
{
public:
Inst_SOP1__S_NOR_SAVEEXEC_B64(InFmt_SOP1*);
~Inst_SOP1__S_NOR_SAVEEXEC_B64();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 1; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //ssrc
return 8;
case 1: //sdst
return 8;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_SOP1__S_NOR_SAVEEXEC_B64
class Inst_SOP1__S_XNOR_SAVEEXEC_B64 : public Inst_SOP1
{
public:
Inst_SOP1__S_XNOR_SAVEEXEC_B64(InFmt_SOP1*);
~Inst_SOP1__S_XNOR_SAVEEXEC_B64();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 1; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //ssrc
return 8;
case 1: //sdst
return 8;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_SOP1__S_XNOR_SAVEEXEC_B64
class Inst_SOP1__S_QUADMASK_B32 : public Inst_SOP1
{
public:
Inst_SOP1__S_QUADMASK_B32(InFmt_SOP1*);
~Inst_SOP1__S_QUADMASK_B32();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 1; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //ssrc
return 4;
case 1: //sdst
return 4;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_SOP1__S_QUADMASK_B32
class Inst_SOP1__S_QUADMASK_B64 : public Inst_SOP1
{
public:
Inst_SOP1__S_QUADMASK_B64(InFmt_SOP1*);
~Inst_SOP1__S_QUADMASK_B64();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 1; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //ssrc
return 8;
case 1: //sdst
return 8;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_SOP1__S_QUADMASK_B64
class Inst_SOP1__S_MOVRELS_B32 : public Inst_SOP1
{
public:
Inst_SOP1__S_MOVRELS_B32(InFmt_SOP1*);
~Inst_SOP1__S_MOVRELS_B32();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 1; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //ssrc
return 4;
case 1: //sdst
return 4;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_SOP1__S_MOVRELS_B32
class Inst_SOP1__S_MOVRELS_B64 : public Inst_SOP1
{
public:
Inst_SOP1__S_MOVRELS_B64(InFmt_SOP1*);
~Inst_SOP1__S_MOVRELS_B64();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 1; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //sdst
return 8;
case 1: //sdst
return 8;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_SOP1__S_MOVRELS_B64
class Inst_SOP1__S_MOVRELD_B32 : public Inst_SOP1
{
public:
Inst_SOP1__S_MOVRELD_B32(InFmt_SOP1*);
~Inst_SOP1__S_MOVRELD_B32();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 1; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //ssrc
return 4;
case 1: //sdst
return 4;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_SOP1__S_MOVRELD_B32
class Inst_SOP1__S_MOVRELD_B64 : public Inst_SOP1
{
public:
Inst_SOP1__S_MOVRELD_B64(InFmt_SOP1*);
~Inst_SOP1__S_MOVRELD_B64();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 1; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //ssrc
return 8;
case 1: //sdst
return 8;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_SOP1__S_MOVRELD_B64
class Inst_SOP1__S_CBRANCH_JOIN : public Inst_SOP1
{
public:
Inst_SOP1__S_CBRANCH_JOIN(InFmt_SOP1*);
~Inst_SOP1__S_CBRANCH_JOIN();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 0; }
int numSrcRegOperands() override { return 1; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //ssrc
return 4;
case 1: //sdst
return 4;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_SOP1__S_CBRANCH_JOIN
class Inst_SOP1__S_ABS_I32 : public Inst_SOP1
{
public:
Inst_SOP1__S_ABS_I32(InFmt_SOP1*);
~Inst_SOP1__S_ABS_I32();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 1; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //ssrc
return 4;
case 1: //sdst
return 4;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_SOP1__S_ABS_I32
class Inst_SOP1__S_MOV_FED_B32 : public Inst_SOP1
{
public:
Inst_SOP1__S_MOV_FED_B32(InFmt_SOP1*);
~Inst_SOP1__S_MOV_FED_B32();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 1; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //ssrc
return 4;
case 1: //sdst
return 4;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_SOP1__S_MOV_FED_B32
class Inst_SOP1__S_SET_GPR_IDX_IDX : public Inst_SOP1
{
public:
Inst_SOP1__S_SET_GPR_IDX_IDX(InFmt_SOP1*);
~Inst_SOP1__S_SET_GPR_IDX_IDX();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 0; }
int numSrcRegOperands() override { return 1; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //ssrc
return 4;
case 1: //sdst
return 4;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_SOP1__S_SET_GPR_IDX_IDX
class Inst_SOPC__S_CMP_EQ_I32 : public Inst_SOPC
{
public:
Inst_SOPC__S_CMP_EQ_I32(InFmt_SOPC*);
~Inst_SOPC__S_CMP_EQ_I32();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 0; }
int numSrcRegOperands() override { return 2; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //ssrc_0
return 4;
case 1: //ssrc_1
return 4;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_SOPC__S_CMP_EQ_I32
class Inst_SOPC__S_CMP_LG_I32 : public Inst_SOPC
{
public:
Inst_SOPC__S_CMP_LG_I32(InFmt_SOPC*);
~Inst_SOPC__S_CMP_LG_I32();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 0; }
int numSrcRegOperands() override { return 2; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //ssrc_0
return 4;
case 1: //ssrc_1
return 4;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_SOPC__S_CMP_LG_I32
class Inst_SOPC__S_CMP_GT_I32 : public Inst_SOPC
{
public:
Inst_SOPC__S_CMP_GT_I32(InFmt_SOPC*);
~Inst_SOPC__S_CMP_GT_I32();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 0; }
int numSrcRegOperands() override { return 2; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //ssrc_0
return 4;
case 1: //ssrc_1
return 4;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_SOPC__S_CMP_GT_I32
class Inst_SOPC__S_CMP_GE_I32 : public Inst_SOPC
{
public:
Inst_SOPC__S_CMP_GE_I32(InFmt_SOPC*);
~Inst_SOPC__S_CMP_GE_I32();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 0; }
int numSrcRegOperands() override { return 2; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //ssrc_0
return 4;
case 1: //ssrc_1
return 4;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_SOPC__S_CMP_GE_I32
class Inst_SOPC__S_CMP_LT_I32 : public Inst_SOPC
{
public:
Inst_SOPC__S_CMP_LT_I32(InFmt_SOPC*);
~Inst_SOPC__S_CMP_LT_I32();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 0; }
int numSrcRegOperands() override { return 2; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //ssrc_0
return 4;
case 1: //ssrc_1
return 4;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_SOPC__S_CMP_LT_I32
class Inst_SOPC__S_CMP_LE_I32 : public Inst_SOPC
{
public:
Inst_SOPC__S_CMP_LE_I32(InFmt_SOPC*);
~Inst_SOPC__S_CMP_LE_I32();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 0; }
int numSrcRegOperands() override { return 2; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //ssrc_0
return 4;
case 1: //ssrc_1
return 4;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_SOPC__S_CMP_LE_I32
class Inst_SOPC__S_CMP_EQ_U32 : public Inst_SOPC
{
public:
Inst_SOPC__S_CMP_EQ_U32(InFmt_SOPC*);
~Inst_SOPC__S_CMP_EQ_U32();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 0; }
int numSrcRegOperands() override { return 2; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //ssrc_0
return 4;
case 1: //ssrc_1
return 4;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_SOPC__S_CMP_EQ_U32
class Inst_SOPC__S_CMP_LG_U32 : public Inst_SOPC
{
public:
Inst_SOPC__S_CMP_LG_U32(InFmt_SOPC*);
~Inst_SOPC__S_CMP_LG_U32();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 0; }
int numSrcRegOperands() override { return 2; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //ssrc_0
return 4;
case 1: //ssrc_1
return 4;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_SOPC__S_CMP_LG_U32
class Inst_SOPC__S_CMP_GT_U32 : public Inst_SOPC
{
public:
Inst_SOPC__S_CMP_GT_U32(InFmt_SOPC*);
~Inst_SOPC__S_CMP_GT_U32();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 0; }
int numSrcRegOperands() override { return 2; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //ssrc_0
return 4;
case 1: //ssrc_1
return 4;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_SOPC__S_CMP_GT_U32
class Inst_SOPC__S_CMP_GE_U32 : public Inst_SOPC
{
public:
Inst_SOPC__S_CMP_GE_U32(InFmt_SOPC*);
~Inst_SOPC__S_CMP_GE_U32();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 0; }
int numSrcRegOperands() override { return 2; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //ssrc_0
return 4;
case 1: //ssrc_1
return 4;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_SOPC__S_CMP_GE_U32
class Inst_SOPC__S_CMP_LT_U32 : public Inst_SOPC
{
public:
Inst_SOPC__S_CMP_LT_U32(InFmt_SOPC*);
~Inst_SOPC__S_CMP_LT_U32();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 0; }
int numSrcRegOperands() override { return 2; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //ssrc_0
return 4;
case 1: //ssrc_1
return 4;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_SOPC__S_CMP_LT_U32
class Inst_SOPC__S_CMP_LE_U32 : public Inst_SOPC
{
public:
Inst_SOPC__S_CMP_LE_U32(InFmt_SOPC*);
~Inst_SOPC__S_CMP_LE_U32();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 0; }
int numSrcRegOperands() override { return 2; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //ssrc_0
return 4;
case 1: //ssrc_1
return 4;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_SOPC__S_CMP_LE_U32
class Inst_SOPC__S_BITCMP0_B32 : public Inst_SOPC
{
public:
Inst_SOPC__S_BITCMP0_B32(InFmt_SOPC*);
~Inst_SOPC__S_BITCMP0_B32();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 0; }
int numSrcRegOperands() override { return 2; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //ssrc_0
return 4;
case 1: //ssrc_1
return 4;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_SOPC__S_BITCMP0_B32
class Inst_SOPC__S_BITCMP1_B32 : public Inst_SOPC
{
public:
Inst_SOPC__S_BITCMP1_B32(InFmt_SOPC*);
~Inst_SOPC__S_BITCMP1_B32();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 0; }
int numSrcRegOperands() override { return 2; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //ssrc_0
return 4;
case 1: //ssrc_1
return 4;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_SOPC__S_BITCMP1_B32
class Inst_SOPC__S_BITCMP0_B64 : public Inst_SOPC
{
public:
Inst_SOPC__S_BITCMP0_B64(InFmt_SOPC*);
~Inst_SOPC__S_BITCMP0_B64();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 0; }
int numSrcRegOperands() override { return 2; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //ssrc_0
return 8;
case 1: //ssrc_1
return 4;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_SOPC__S_BITCMP0_B64
class Inst_SOPC__S_BITCMP1_B64 : public Inst_SOPC
{
public:
Inst_SOPC__S_BITCMP1_B64(InFmt_SOPC*);
~Inst_SOPC__S_BITCMP1_B64();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 0; }
int numSrcRegOperands() override { return 2; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //ssrc_0
return 8;
case 1: //ssrc_1
return 4;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_SOPC__S_BITCMP1_B64
class Inst_SOPC__S_SETVSKIP : public Inst_SOPC
{
public:
Inst_SOPC__S_SETVSKIP(InFmt_SOPC*);
~Inst_SOPC__S_SETVSKIP();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 0; }
int numSrcRegOperands() override { return 2; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //ssrc_0
return 4;
case 1: //ssrc_1
return 4;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_SOPC__S_SETVSKIP
class Inst_SOPC__S_SET_GPR_IDX_ON : public Inst_SOPC
{
public:
Inst_SOPC__S_SET_GPR_IDX_ON(InFmt_SOPC*);
~Inst_SOPC__S_SET_GPR_IDX_ON();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 0; }
int numSrcRegOperands() override { return 2; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //ssrc_0
return 4;
case 1: //simm4
return 4;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_SOPC__S_SET_GPR_IDX_ON
class Inst_SOPC__S_CMP_EQ_U64 : public Inst_SOPC
{
public:
Inst_SOPC__S_CMP_EQ_U64(InFmt_SOPC*);
~Inst_SOPC__S_CMP_EQ_U64();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 0; }
int numSrcRegOperands() override { return 2; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //ssrc_0
return 8;
case 1: //ssrc_1
return 8;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_SOPC__S_CMP_EQ_U64
class Inst_SOPC__S_CMP_LG_U64 : public Inst_SOPC
{
public:
Inst_SOPC__S_CMP_LG_U64(InFmt_SOPC*);
~Inst_SOPC__S_CMP_LG_U64();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 0; }
int numSrcRegOperands() override { return 2; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //ssrc_0
return 8;
case 1: //ssrc_1
return 8;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_SOPC__S_CMP_LG_U64
class Inst_SOPP__S_NOP : public Inst_SOPP
{
public:
Inst_SOPP__S_NOP(InFmt_SOPP*);
~Inst_SOPP__S_NOP();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 0; }
int numSrcRegOperands() override { return 1; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //simm16
return 2;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_SOPP__S_NOP
class Inst_SOPP__S_ENDPGM : public Inst_SOPP
{
public:
Inst_SOPP__S_ENDPGM(InFmt_SOPP*);
~Inst_SOPP__S_ENDPGM();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 0; }
int numSrcRegOperands() override { return 0; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //simm16
return 2;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_SOPP__S_ENDPGM
class Inst_SOPP__S_BRANCH : public Inst_SOPP
{
public:
Inst_SOPP__S_BRANCH(InFmt_SOPP*);
~Inst_SOPP__S_BRANCH();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 0; }
int numSrcRegOperands() override { return 1; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //label
return 2;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_SOPP__S_BRANCH
class Inst_SOPP__S_WAKEUP : public Inst_SOPP
{
public:
Inst_SOPP__S_WAKEUP(InFmt_SOPP*);
~Inst_SOPP__S_WAKEUP();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 0; }
int numSrcRegOperands() override { return 0; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //simm16
return 2;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_SOPP__S_WAKEUP
class Inst_SOPP__S_CBRANCH_SCC0 : public Inst_SOPP
{
public:
Inst_SOPP__S_CBRANCH_SCC0(InFmt_SOPP*);
~Inst_SOPP__S_CBRANCH_SCC0();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 0; }
int numSrcRegOperands() override { return 1; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //label
return 2;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_SOPP__S_CBRANCH_SCC0
class Inst_SOPP__S_CBRANCH_SCC1 : public Inst_SOPP
{
public:
Inst_SOPP__S_CBRANCH_SCC1(InFmt_SOPP*);
~Inst_SOPP__S_CBRANCH_SCC1();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 0; }
int numSrcRegOperands() override { return 1; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //label
return 2;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_SOPP__S_CBRANCH_SCC1
class Inst_SOPP__S_CBRANCH_VCCZ : public Inst_SOPP
{
public:
Inst_SOPP__S_CBRANCH_VCCZ(InFmt_SOPP*);
~Inst_SOPP__S_CBRANCH_VCCZ();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 0; }
int numSrcRegOperands() override { return 2; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //label
return 2;
case 1:
return 8;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_SOPP__S_CBRANCH_VCCZ
class Inst_SOPP__S_CBRANCH_VCCNZ : public Inst_SOPP
{
public:
Inst_SOPP__S_CBRANCH_VCCNZ(InFmt_SOPP*);
~Inst_SOPP__S_CBRANCH_VCCNZ();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 0; }
int numSrcRegOperands() override { return 2; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //label
return 2;
case 1:
return 8;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_SOPP__S_CBRANCH_VCCNZ
class Inst_SOPP__S_CBRANCH_EXECZ : public Inst_SOPP
{
public:
Inst_SOPP__S_CBRANCH_EXECZ(InFmt_SOPP*);
~Inst_SOPP__S_CBRANCH_EXECZ();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 0; }
int numSrcRegOperands() override { return 1; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //label
return 2;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_SOPP__S_CBRANCH_EXECZ
class Inst_SOPP__S_CBRANCH_EXECNZ : public Inst_SOPP
{
public:
Inst_SOPP__S_CBRANCH_EXECNZ(InFmt_SOPP*);
~Inst_SOPP__S_CBRANCH_EXECNZ();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 0; }
int numSrcRegOperands() override { return 1; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //label
return 2;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_SOPP__S_CBRANCH_EXECNZ
class Inst_SOPP__S_BARRIER : public Inst_SOPP
{
public:
Inst_SOPP__S_BARRIER(InFmt_SOPP*);
~Inst_SOPP__S_BARRIER();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 0; }
int numSrcRegOperands() override { return 0; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //simm16
return 2;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_SOPP__S_BARRIER
class Inst_SOPP__S_SETKILL : public Inst_SOPP
{
public:
Inst_SOPP__S_SETKILL(InFmt_SOPP*);
~Inst_SOPP__S_SETKILL();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 0; }
int numSrcRegOperands() override { return 1; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //simm16
return 2;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_SOPP__S_SETKILL
class Inst_SOPP__S_WAITCNT : public Inst_SOPP
{
public:
Inst_SOPP__S_WAITCNT(InFmt_SOPP*);
~Inst_SOPP__S_WAITCNT();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 0; }
int numSrcRegOperands() override { return 1; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //simm16
return 2;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_SOPP__S_WAITCNT
class Inst_SOPP__S_SETHALT : public Inst_SOPP
{
public:
Inst_SOPP__S_SETHALT(InFmt_SOPP*);
~Inst_SOPP__S_SETHALT();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 0; }
int numSrcRegOperands() override { return 1; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //simm16
return 2;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_SOPP__S_SETHALT
class Inst_SOPP__S_SLEEP : public Inst_SOPP
{
public:
Inst_SOPP__S_SLEEP(InFmt_SOPP*);
~Inst_SOPP__S_SLEEP();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 0; }
int numSrcRegOperands() override { return 1; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //simm16
return 2;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_SOPP__S_SLEEP
class Inst_SOPP__S_SETPRIO : public Inst_SOPP
{
public:
Inst_SOPP__S_SETPRIO(InFmt_SOPP*);
~Inst_SOPP__S_SETPRIO();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 0; }
int numSrcRegOperands() override { return 1; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //simm16
return 2;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_SOPP__S_SETPRIO
class Inst_SOPP__S_SENDMSG : public Inst_SOPP
{
public:
Inst_SOPP__S_SENDMSG(InFmt_SOPP*);
~Inst_SOPP__S_SENDMSG();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 0; }
int numSrcRegOperands() override { return 1; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //simm16
return 2;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_SOPP__S_SENDMSG
class Inst_SOPP__S_SENDMSGHALT : public Inst_SOPP
{
public:
Inst_SOPP__S_SENDMSGHALT(InFmt_SOPP*);
~Inst_SOPP__S_SENDMSGHALT();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 0; }
int numSrcRegOperands() override { return 1; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //simm16
return 2;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_SOPP__S_SENDMSGHALT
class Inst_SOPP__S_TRAP : public Inst_SOPP
{
public:
Inst_SOPP__S_TRAP(InFmt_SOPP*);
~Inst_SOPP__S_TRAP();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 0; }
int numSrcRegOperands() override { return 1; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //simm16
return 2;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_SOPP__S_TRAP
class Inst_SOPP__S_ICACHE_INV : public Inst_SOPP
{
public:
Inst_SOPP__S_ICACHE_INV(InFmt_SOPP*);
~Inst_SOPP__S_ICACHE_INV();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 0; }
int numSrcRegOperands() override { return 0; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //simm16
return 2;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_SOPP__S_ICACHE_INV
class Inst_SOPP__S_INCPERFLEVEL : public Inst_SOPP
{
public:
Inst_SOPP__S_INCPERFLEVEL(InFmt_SOPP*);
~Inst_SOPP__S_INCPERFLEVEL();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 0; }
int numSrcRegOperands() override { return 1; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //simm16
return 2;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_SOPP__S_INCPERFLEVEL
class Inst_SOPP__S_DECPERFLEVEL : public Inst_SOPP
{
public:
Inst_SOPP__S_DECPERFLEVEL(InFmt_SOPP*);
~Inst_SOPP__S_DECPERFLEVEL();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 0; }
int numSrcRegOperands() override { return 1; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //simm16
return 2;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_SOPP__S_DECPERFLEVEL
class Inst_SOPP__S_TTRACEDATA : public Inst_SOPP
{
public:
Inst_SOPP__S_TTRACEDATA(InFmt_SOPP*);
~Inst_SOPP__S_TTRACEDATA();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 0; }
int numSrcRegOperands() override { return 0; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //simm16
return 2;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_SOPP__S_TTRACEDATA
class Inst_SOPP__S_CBRANCH_CDBGSYS : public Inst_SOPP
{
public:
Inst_SOPP__S_CBRANCH_CDBGSYS(InFmt_SOPP*);
~Inst_SOPP__S_CBRANCH_CDBGSYS();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 0; }
int numSrcRegOperands() override { return 1; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //label
return 2;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_SOPP__S_CBRANCH_CDBGSYS
class Inst_SOPP__S_CBRANCH_CDBGUSER : public Inst_SOPP
{
public:
Inst_SOPP__S_CBRANCH_CDBGUSER(InFmt_SOPP*);
~Inst_SOPP__S_CBRANCH_CDBGUSER();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 0; }
int numSrcRegOperands() override { return 1; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //label
return 2;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_SOPP__S_CBRANCH_CDBGUSER
class Inst_SOPP__S_CBRANCH_CDBGSYS_OR_USER : public Inst_SOPP
{
public:
Inst_SOPP__S_CBRANCH_CDBGSYS_OR_USER(InFmt_SOPP*);
~Inst_SOPP__S_CBRANCH_CDBGSYS_OR_USER();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 0; }
int numSrcRegOperands() override { return 1; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //label
return 2;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_SOPP__S_CBRANCH_CDBGSYS_OR_USER
class Inst_SOPP__S_CBRANCH_CDBGSYS_AND_USER : public Inst_SOPP
{
public:
Inst_SOPP__S_CBRANCH_CDBGSYS_AND_USER(InFmt_SOPP*);
~Inst_SOPP__S_CBRANCH_CDBGSYS_AND_USER();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 0; }
int numSrcRegOperands() override { return 1; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //label
return 2;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_SOPP__S_CBRANCH_CDBGSYS_AND_USER
class Inst_SOPP__S_ENDPGM_SAVED : public Inst_SOPP
{
public:
Inst_SOPP__S_ENDPGM_SAVED(InFmt_SOPP*);
~Inst_SOPP__S_ENDPGM_SAVED();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 0; }
int numSrcRegOperands() override { return 0; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //simm16
return 2;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_SOPP__S_ENDPGM_SAVED
class Inst_SOPP__S_SET_GPR_IDX_OFF : public Inst_SOPP
{
public:
Inst_SOPP__S_SET_GPR_IDX_OFF(InFmt_SOPP*);
~Inst_SOPP__S_SET_GPR_IDX_OFF();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 0; }
int numSrcRegOperands() override { return 0; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //simm16
return 2;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_SOPP__S_SET_GPR_IDX_OFF
class Inst_SOPP__S_SET_GPR_IDX_MODE : public Inst_SOPP
{
public:
Inst_SOPP__S_SET_GPR_IDX_MODE(InFmt_SOPP*);
~Inst_SOPP__S_SET_GPR_IDX_MODE();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 0; }
int numSrcRegOperands() override { return 1; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //simm16
return 2;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_SOPP__S_SET_GPR_IDX_MODE
class Inst_SMEM__S_LOAD_DWORD : public Inst_SMEM
{
public:
Inst_SMEM__S_LOAD_DWORD(InFmt_SMEM*);
~Inst_SMEM__S_LOAD_DWORD();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 2; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //sgpr_base
return 8;
case 1: //offset
return 4;
case 2: //sgpr_dst
return 4;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
void initiateAcc(GPUDynInstPtr) override;
void completeAcc(GPUDynInstPtr) override;
}; // Inst_SMEM__S_LOAD_DWORD
class Inst_SMEM__S_LOAD_DWORDX2 : public Inst_SMEM
{
public:
Inst_SMEM__S_LOAD_DWORDX2(InFmt_SMEM*);
~Inst_SMEM__S_LOAD_DWORDX2();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 2; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //sgpr_base
return 8;
case 1: //offset
return 4;
case 2: //sgpr_dst
return 8;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
void initiateAcc(GPUDynInstPtr) override;
void completeAcc(GPUDynInstPtr) override;
}; // Inst_SMEM__S_LOAD_DWORDX2
class Inst_SMEM__S_LOAD_DWORDX4 : public Inst_SMEM
{
public:
Inst_SMEM__S_LOAD_DWORDX4(InFmt_SMEM*);
~Inst_SMEM__S_LOAD_DWORDX4();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 2; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //sgpr_base
return 8;
case 1: //offset
return 4;
case 2: //sgpr_dst
return 16;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
void initiateAcc(GPUDynInstPtr) override;
void completeAcc(GPUDynInstPtr) override;
}; // Inst_SMEM__S_LOAD_DWORDX4
class Inst_SMEM__S_LOAD_DWORDX8 : public Inst_SMEM
{
public:
Inst_SMEM__S_LOAD_DWORDX8(InFmt_SMEM*);
~Inst_SMEM__S_LOAD_DWORDX8();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 2; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //sgpr_base
return 8;
case 1: //offset
return 4;
case 2: //sgpr_dst
return 32;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
void initiateAcc(GPUDynInstPtr) override;
void completeAcc(GPUDynInstPtr) override;
}; // Inst_SMEM__S_LOAD_DWORDX8
class Inst_SMEM__S_LOAD_DWORDX16 : public Inst_SMEM
{
public:
Inst_SMEM__S_LOAD_DWORDX16(InFmt_SMEM*);
~Inst_SMEM__S_LOAD_DWORDX16();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 2; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //sgpr_base
return 8;
case 1: //offset
return 4;
case 2: //sgpr_dst
return 64;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
void initiateAcc(GPUDynInstPtr) override;
void completeAcc(GPUDynInstPtr) override;
}; // Inst_SMEM__S_LOAD_DWORDX16
class Inst_SMEM__S_BUFFER_LOAD_DWORD : public Inst_SMEM
{
public:
Inst_SMEM__S_BUFFER_LOAD_DWORD(InFmt_SMEM*);
~Inst_SMEM__S_BUFFER_LOAD_DWORD();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 2; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //sgpr_base
return 16;
case 1: //offset
return 4;
case 2: //sgpr_dst
return 4;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
void initiateAcc(GPUDynInstPtr) override;
void completeAcc(GPUDynInstPtr) override;
}; // Inst_SMEM__S_BUFFER_LOAD_DWORD
class Inst_SMEM__S_BUFFER_LOAD_DWORDX2 : public Inst_SMEM
{
public:
Inst_SMEM__S_BUFFER_LOAD_DWORDX2(InFmt_SMEM*);
~Inst_SMEM__S_BUFFER_LOAD_DWORDX2();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 2; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //sgpr_base
return 16;
case 1: //offset
return 4;
case 2: //sgpr_dst
return 8;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
void initiateAcc(GPUDynInstPtr) override;
void completeAcc(GPUDynInstPtr) override;
}; // Inst_SMEM__S_BUFFER_LOAD_DWORDX2
class Inst_SMEM__S_BUFFER_LOAD_DWORDX4 : public Inst_SMEM
{
public:
Inst_SMEM__S_BUFFER_LOAD_DWORDX4(InFmt_SMEM*);
~Inst_SMEM__S_BUFFER_LOAD_DWORDX4();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 2; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //sgpr_base
return 16;
case 1: //offset
return 4;
case 2: //sgpr_dst
return 16;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
void initiateAcc(GPUDynInstPtr) override;
void completeAcc(GPUDynInstPtr) override;
}; // Inst_SMEM__S_BUFFER_LOAD_DWORDX4
class Inst_SMEM__S_BUFFER_LOAD_DWORDX8 : public Inst_SMEM
{
public:
Inst_SMEM__S_BUFFER_LOAD_DWORDX8(InFmt_SMEM*);
~Inst_SMEM__S_BUFFER_LOAD_DWORDX8();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 2; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //sgpr_base
return 16;
case 1: //offset
return 4;
case 2: //sgpr_dst
return 32;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
void initiateAcc(GPUDynInstPtr) override;
void completeAcc(GPUDynInstPtr) override;
}; // Inst_SMEM__S_BUFFER_LOAD_DWORDX8
class Inst_SMEM__S_BUFFER_LOAD_DWORDX16 : public Inst_SMEM
{
public:
Inst_SMEM__S_BUFFER_LOAD_DWORDX16(InFmt_SMEM*);
~Inst_SMEM__S_BUFFER_LOAD_DWORDX16();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 2; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //sgpr_base
return 16;
case 1: //offset
return 4;
case 2: //sgpr_dst
return 64;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
void initiateAcc(GPUDynInstPtr) override;
void completeAcc(GPUDynInstPtr) override;
}; // Inst_SMEM__S_BUFFER_LOAD_DWORDX16
class Inst_SMEM__S_STORE_DWORD : public Inst_SMEM
{
public:
Inst_SMEM__S_STORE_DWORD(InFmt_SMEM*);
~Inst_SMEM__S_STORE_DWORD();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 0; }
int numSrcRegOperands() override { return 3; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //sgpr_data
return 4;
case 1: //sgpr_base
return 8;
case 2: //offset
return 4;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
void initiateAcc(GPUDynInstPtr) override;
void completeAcc(GPUDynInstPtr) override;
}; // Inst_SMEM__S_STORE_DWORD
class Inst_SMEM__S_STORE_DWORDX2 : public Inst_SMEM
{
public:
Inst_SMEM__S_STORE_DWORDX2(InFmt_SMEM*);
~Inst_SMEM__S_STORE_DWORDX2();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 0; }
int numSrcRegOperands() override { return 3; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //sgpr_data
return 8;
case 1: //sgpr_base
return 8;
case 2: //offset
return 4;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
void initiateAcc(GPUDynInstPtr) override;
void completeAcc(GPUDynInstPtr) override;
}; // Inst_SMEM__S_STORE_DWORDX2
class Inst_SMEM__S_STORE_DWORDX4 : public Inst_SMEM
{
public:
Inst_SMEM__S_STORE_DWORDX4(InFmt_SMEM*);
~Inst_SMEM__S_STORE_DWORDX4();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 0; }
int numSrcRegOperands() override { return 3; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //sgpr_data
return 16;
case 1: //sgpr_base
return 8;
case 2: //offset
return 4;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
void initiateAcc(GPUDynInstPtr) override;
void completeAcc(GPUDynInstPtr) override;
}; // Inst_SMEM__S_STORE_DWORDX4
class Inst_SMEM__S_BUFFER_STORE_DWORD : public Inst_SMEM
{
public:
Inst_SMEM__S_BUFFER_STORE_DWORD(InFmt_SMEM*);
~Inst_SMEM__S_BUFFER_STORE_DWORD();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 0; }
int numSrcRegOperands() override { return 3; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //sgpr_data
return 4;
case 1: //sgpr_base
return 16;
case 2: //offset
return 4;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
void initiateAcc(GPUDynInstPtr) override;
void completeAcc(GPUDynInstPtr) override;
}; // Inst_SMEM__S_BUFFER_STORE_DWORD
class Inst_SMEM__S_BUFFER_STORE_DWORDX2 : public Inst_SMEM
{
public:
Inst_SMEM__S_BUFFER_STORE_DWORDX2(InFmt_SMEM*);
~Inst_SMEM__S_BUFFER_STORE_DWORDX2();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 0; }
int numSrcRegOperands() override { return 3; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //sgpr_data
return 8;
case 1: //sgpr_base
return 16;
case 2: //offset
return 4;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
void initiateAcc(GPUDynInstPtr) override;
void completeAcc(GPUDynInstPtr) override;
}; // Inst_SMEM__S_BUFFER_STORE_DWORDX2
class Inst_SMEM__S_BUFFER_STORE_DWORDX4 : public Inst_SMEM
{
public:
Inst_SMEM__S_BUFFER_STORE_DWORDX4(InFmt_SMEM*);
~Inst_SMEM__S_BUFFER_STORE_DWORDX4();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 0; }
int numSrcRegOperands() override { return 3; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //sgpr_data
return 16;
case 1: //sgpr_base
return 16;
case 2: //offset
return 4;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
void initiateAcc(GPUDynInstPtr) override;
void completeAcc(GPUDynInstPtr) override;
}; // Inst_SMEM__S_BUFFER_STORE_DWORDX4
class Inst_SMEM__S_DCACHE_INV : public Inst_SMEM
{
public:
Inst_SMEM__S_DCACHE_INV(InFmt_SMEM*);
~Inst_SMEM__S_DCACHE_INV();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 0; }
int numSrcRegOperands() override { return 0; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_SMEM__S_DCACHE_INV
class Inst_SMEM__S_DCACHE_WB : public Inst_SMEM
{
public:
Inst_SMEM__S_DCACHE_WB(InFmt_SMEM*);
~Inst_SMEM__S_DCACHE_WB();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 0; }
int numSrcRegOperands() override { return 0; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_SMEM__S_DCACHE_WB
class Inst_SMEM__S_DCACHE_INV_VOL : public Inst_SMEM
{
public:
Inst_SMEM__S_DCACHE_INV_VOL(InFmt_SMEM*);
~Inst_SMEM__S_DCACHE_INV_VOL();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 0; }
int numSrcRegOperands() override { return 0; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_SMEM__S_DCACHE_INV_VOL
class Inst_SMEM__S_DCACHE_WB_VOL : public Inst_SMEM
{
public:
Inst_SMEM__S_DCACHE_WB_VOL(InFmt_SMEM*);
~Inst_SMEM__S_DCACHE_WB_VOL();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 0; }
int numSrcRegOperands() override { return 0; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_SMEM__S_DCACHE_WB_VOL
class Inst_SMEM__S_MEMTIME : public Inst_SMEM
{
public:
Inst_SMEM__S_MEMTIME(InFmt_SMEM*);
~Inst_SMEM__S_MEMTIME();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 0; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //sgpr_dst
return 8;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_SMEM__S_MEMTIME
class Inst_SMEM__S_MEMREALTIME : public Inst_SMEM
{
public:
Inst_SMEM__S_MEMREALTIME(InFmt_SMEM*);
~Inst_SMEM__S_MEMREALTIME();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 0; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //sgpr_dst
return 8;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_SMEM__S_MEMREALTIME
class Inst_SMEM__S_ATC_PROBE : public Inst_SMEM
{
public:
Inst_SMEM__S_ATC_PROBE(InFmt_SMEM*);
~Inst_SMEM__S_ATC_PROBE();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 0; }
int numSrcRegOperands() override { return 3; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //perm_rwx
return 32;
case 1: //sgpr_base
return 8;
case 2: //offset
return 4;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_SMEM__S_ATC_PROBE
class Inst_SMEM__S_ATC_PROBE_BUFFER : public Inst_SMEM
{
public:
Inst_SMEM__S_ATC_PROBE_BUFFER(InFmt_SMEM*);
~Inst_SMEM__S_ATC_PROBE_BUFFER();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 0; }
int numSrcRegOperands() override { return 3; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //perm_rwx
return 32;
case 1: //sgpr_base
return 16;
case 2: //offset
return 4;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_SMEM__S_ATC_PROBE_BUFFER
class Inst_VOP2__V_CNDMASK_B32 : public Inst_VOP2
{
public:
Inst_VOP2__V_CNDMASK_B32(InFmt_VOP2*);
~Inst_VOP2__V_CNDMASK_B32();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 3; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //src_0
return 4;
case 1: //src_1
return 4;
case 2: //vcc
return 8;
case 3: //vdst
return 4;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_VOP2__V_CNDMASK_B32
class Inst_VOP2__V_ADD_F32 : public Inst_VOP2
{
public:
Inst_VOP2__V_ADD_F32(InFmt_VOP2*);
~Inst_VOP2__V_ADD_F32();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 2; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //src_0
return 4;
case 1: //src_1
return 4;
case 2: //vdst
return 4;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_VOP2__V_ADD_F32
class Inst_VOP2__V_SUB_F32 : public Inst_VOP2
{
public:
Inst_VOP2__V_SUB_F32(InFmt_VOP2*);
~Inst_VOP2__V_SUB_F32();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 2; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //src_0
return 4;
case 1: //src_1
return 4;
case 2: //vdst
return 4;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_VOP2__V_SUB_F32
class Inst_VOP2__V_SUBREV_F32 : public Inst_VOP2
{
public:
Inst_VOP2__V_SUBREV_F32(InFmt_VOP2*);
~Inst_VOP2__V_SUBREV_F32();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 2; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //src_0
return 4;
case 1: //src_1
return 4;
case 2: //vdst
return 4;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_VOP2__V_SUBREV_F32
class Inst_VOP2__V_MUL_LEGACY_F32 : public Inst_VOP2
{
public:
Inst_VOP2__V_MUL_LEGACY_F32(InFmt_VOP2*);
~Inst_VOP2__V_MUL_LEGACY_F32();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 2; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //src_0
return 4;
case 1: //src_1
return 4;
case 2: //vdst
return 4;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_VOP2__V_MUL_LEGACY_F32
class Inst_VOP2__V_MUL_F32 : public Inst_VOP2
{
public:
Inst_VOP2__V_MUL_F32(InFmt_VOP2*);
~Inst_VOP2__V_MUL_F32();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 2; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //src_0
return 4;
case 1: //src_1
return 4;
case 2: //vdst
return 4;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_VOP2__V_MUL_F32
class Inst_VOP2__V_MUL_I32_I24 : public Inst_VOP2
{
public:
Inst_VOP2__V_MUL_I32_I24(InFmt_VOP2*);
~Inst_VOP2__V_MUL_I32_I24();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 2; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //src_0
return 4;
case 1: //src_1
return 4;
case 2: //vdst
return 4;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_VOP2__V_MUL_I32_I24
class Inst_VOP2__V_MUL_HI_I32_I24 : public Inst_VOP2
{
public:
Inst_VOP2__V_MUL_HI_I32_I24(InFmt_VOP2*);
~Inst_VOP2__V_MUL_HI_I32_I24();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 2; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //src_0
return 4;
case 1: //src_1
return 4;
case 2: //vdst
return 4;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_VOP2__V_MUL_HI_I32_I24
class Inst_VOP2__V_MUL_U32_U24 : public Inst_VOP2
{
public:
Inst_VOP2__V_MUL_U32_U24(InFmt_VOP2*);
~Inst_VOP2__V_MUL_U32_U24();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 2; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //src_0
return 4;
case 1: //src_1
return 4;
case 2: //vdst
return 4;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_VOP2__V_MUL_U32_U24
class Inst_VOP2__V_MUL_HI_U32_U24 : public Inst_VOP2
{
public:
Inst_VOP2__V_MUL_HI_U32_U24(InFmt_VOP2*);
~Inst_VOP2__V_MUL_HI_U32_U24();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 2; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //src_0
return 4;
case 1: //src_1
return 4;
case 2: //vdst
return 4;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_VOP2__V_MUL_HI_U32_U24
class Inst_VOP2__V_MIN_F32 : public Inst_VOP2
{
public:
Inst_VOP2__V_MIN_F32(InFmt_VOP2*);
~Inst_VOP2__V_MIN_F32();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 2; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //src_0
return 4;
case 1: //src_1
return 4;
case 2: //vdst
return 4;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_VOP2__V_MIN_F32
class Inst_VOP2__V_MAX_F32 : public Inst_VOP2
{
public:
Inst_VOP2__V_MAX_F32(InFmt_VOP2*);
~Inst_VOP2__V_MAX_F32();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 2; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //src_0
return 4;
case 1: //src_1
return 4;
case 2: //vdst
return 4;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_VOP2__V_MAX_F32
class Inst_VOP2__V_MIN_I32 : public Inst_VOP2
{
public:
Inst_VOP2__V_MIN_I32(InFmt_VOP2*);
~Inst_VOP2__V_MIN_I32();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 2; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //src_0
return 4;
case 1: //src_1
return 4;
case 2: //vdst
return 4;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_VOP2__V_MIN_I32
class Inst_VOP2__V_MAX_I32 : public Inst_VOP2
{
public:
Inst_VOP2__V_MAX_I32(InFmt_VOP2*);
~Inst_VOP2__V_MAX_I32();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 2; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //src_0
return 4;
case 1: //src_1
return 4;
case 2: //vdst
return 4;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_VOP2__V_MAX_I32
class Inst_VOP2__V_MIN_U32 : public Inst_VOP2
{
public:
Inst_VOP2__V_MIN_U32(InFmt_VOP2*);
~Inst_VOP2__V_MIN_U32();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 2; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //src_0
return 4;
case 1: //src_1
return 4;
case 2: //vdst
return 4;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_VOP2__V_MIN_U32
class Inst_VOP2__V_MAX_U32 : public Inst_VOP2
{
public:
Inst_VOP2__V_MAX_U32(InFmt_VOP2*);
~Inst_VOP2__V_MAX_U32();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 2; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //src_0
return 4;
case 1: //src_1
return 4;
case 2: //vdst
return 4;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_VOP2__V_MAX_U32
class Inst_VOP2__V_LSHRREV_B32 : public Inst_VOP2
{
public:
Inst_VOP2__V_LSHRREV_B32(InFmt_VOP2*);
~Inst_VOP2__V_LSHRREV_B32();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 2; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //src_0
return 4;
case 1: //src_1
return 4;
case 2: //vdst
return 4;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_VOP2__V_LSHRREV_B32
class Inst_VOP2__V_ASHRREV_I32 : public Inst_VOP2
{
public:
Inst_VOP2__V_ASHRREV_I32(InFmt_VOP2*);
~Inst_VOP2__V_ASHRREV_I32();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 2; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //src_0
return 4;
case 1: //src_1
return 4;
case 2: //vdst
return 4;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_VOP2__V_ASHRREV_I32
class Inst_VOP2__V_LSHLREV_B32 : public Inst_VOP2
{
public:
Inst_VOP2__V_LSHLREV_B32(InFmt_VOP2*);
~Inst_VOP2__V_LSHLREV_B32();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 2; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //src_0
return 4;
case 1: //src_1
return 4;
case 2: //vdst
return 4;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_VOP2__V_LSHLREV_B32
class Inst_VOP2__V_AND_B32 : public Inst_VOP2
{
public:
Inst_VOP2__V_AND_B32(InFmt_VOP2*);
~Inst_VOP2__V_AND_B32();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 2; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //src_0
return 4;
case 1: //src_1
return 4;
case 2: //vdst
return 4;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_VOP2__V_AND_B32
class Inst_VOP2__V_OR_B32 : public Inst_VOP2
{
public:
Inst_VOP2__V_OR_B32(InFmt_VOP2*);
~Inst_VOP2__V_OR_B32();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 2; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //src_0
return 4;
case 1: //src_1
return 4;
case 2: //vdst
return 4;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_VOP2__V_OR_B32
class Inst_VOP2__V_XOR_B32 : public Inst_VOP2
{
public:
Inst_VOP2__V_XOR_B32(InFmt_VOP2*);
~Inst_VOP2__V_XOR_B32();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 2; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //src_0
return 4;
case 1: //src_1
return 4;
case 2: //vdst
return 4;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_VOP2__V_XOR_B32
class Inst_VOP2__V_MAC_F32 : public Inst_VOP2
{
public:
Inst_VOP2__V_MAC_F32(InFmt_VOP2*);
~Inst_VOP2__V_MAC_F32();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 2; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //src_0
return 4;
case 1: //src_1
return 4;
case 2: //vdst
return 4;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_VOP2__V_MAC_F32
class Inst_VOP2__V_MADMK_F32 : public Inst_VOP2
{
public:
Inst_VOP2__V_MADMK_F32(InFmt_VOP2*);
~Inst_VOP2__V_MADMK_F32();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 2; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //src_0
return 4;
case 1: //src_1
return 4;
case 2: //vdst
return 4;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_VOP2__V_MADMK_F32
class Inst_VOP2__V_MADAK_F32 : public Inst_VOP2
{
public:
Inst_VOP2__V_MADAK_F32(InFmt_VOP2*);
~Inst_VOP2__V_MADAK_F32();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 2; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //src_0
return 4;
case 1: //src_1
return 4;
case 2: //vdst
return 4;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_VOP2__V_MADAK_F32
class Inst_VOP2__V_ADD_CO_U32 : public Inst_VOP2
{
public:
Inst_VOP2__V_ADD_CO_U32(InFmt_VOP2*);
~Inst_VOP2__V_ADD_CO_U32();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 2; }
int numSrcRegOperands() override { return 2; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //src_0
return 4;
case 1: //src_1
return 4;
case 2: //vdst
return 4;
case 3: //vcc
return 8;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_VOP2__V_ADD_CO_U32
class Inst_VOP2__V_SUB_CO_U32 : public Inst_VOP2
{
public:
Inst_VOP2__V_SUB_CO_U32(InFmt_VOP2*);
~Inst_VOP2__V_SUB_CO_U32();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 2; }
int numSrcRegOperands() override { return 2; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //src_0
return 4;
case 1: //src_1
return 4;
case 2: //vdst
return 4;
case 3: //vcc
return 8;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_VOP2__V_SUB_CO_U32
class Inst_VOP2__V_SUBREV_CO_U32 : public Inst_VOP2
{
public:
Inst_VOP2__V_SUBREV_CO_U32(InFmt_VOP2*);
~Inst_VOP2__V_SUBREV_CO_U32();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 2; }
int numSrcRegOperands() override { return 2; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //src_0
return 4;
case 1: //src_1
return 4;
case 2: //vdst
return 4;
case 3: //vcc
return 8;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_VOP2__V_SUBREV_CO_U32
class Inst_VOP2__V_ADDC_CO_U32 : public Inst_VOP2
{
public:
Inst_VOP2__V_ADDC_CO_U32(InFmt_VOP2*);
~Inst_VOP2__V_ADDC_CO_U32();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 2; }
int numSrcRegOperands() override { return 3; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //src_0
return 4;
case 1: //src_1
return 4;
case 2: //vcc
return 8;
case 3: //vdst
return 4;
case 4: //vcc
return 8;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_VOP2__V_ADDC_CO_U32
class Inst_VOP2__V_SUBB_CO_U32 : public Inst_VOP2
{
public:
Inst_VOP2__V_SUBB_CO_U32(InFmt_VOP2*);
~Inst_VOP2__V_SUBB_CO_U32();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 2; }
int numSrcRegOperands() override { return 3; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //src_0
return 4;
case 1: //src_1
return 4;
case 2: //vcc
return 8;
case 3: //vdst
return 4;
case 4: //vcc
return 8;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_VOP2__V_SUBB_CO_U32
class Inst_VOP2__V_SUBBREV_CO_U32 : public Inst_VOP2
{
public:
Inst_VOP2__V_SUBBREV_CO_U32(InFmt_VOP2*);
~Inst_VOP2__V_SUBBREV_CO_U32();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 2; }
int numSrcRegOperands() override { return 3; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //src_0
return 4;
case 1: //src_1
return 4;
case 2: //vcc
return 8;
case 3: //vdst
return 4;
case 4: //vcc
return 8;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_VOP2__V_SUBBREV_CO_U32
class Inst_VOP2__V_ADD_F16 : public Inst_VOP2
{
public:
Inst_VOP2__V_ADD_F16(InFmt_VOP2*);
~Inst_VOP2__V_ADD_F16();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 2; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //src_0
return 2;
case 1: //src_1
return 2;
case 2: //vdst
return 2;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_VOP2__V_ADD_F16
class Inst_VOP2__V_SUB_F16 : public Inst_VOP2
{
public:
Inst_VOP2__V_SUB_F16(InFmt_VOP2*);
~Inst_VOP2__V_SUB_F16();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 2; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //src_0
return 2;
case 1: //src_1
return 2;
case 2: //vdst
return 2;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_VOP2__V_SUB_F16
class Inst_VOP2__V_SUBREV_F16 : public Inst_VOP2
{
public:
Inst_VOP2__V_SUBREV_F16(InFmt_VOP2*);
~Inst_VOP2__V_SUBREV_F16();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 2; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //src_0
return 2;
case 1: //src_1
return 2;
case 2: //vdst
return 2;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_VOP2__V_SUBREV_F16
class Inst_VOP2__V_MUL_F16 : public Inst_VOP2
{
public:
Inst_VOP2__V_MUL_F16(InFmt_VOP2*);
~Inst_VOP2__V_MUL_F16();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 2; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //src_0
return 2;
case 1: //src_1
return 2;
case 2: //vdst
return 2;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_VOP2__V_MUL_F16
class Inst_VOP2__V_MAC_F16 : public Inst_VOP2
{
public:
Inst_VOP2__V_MAC_F16(InFmt_VOP2*);
~Inst_VOP2__V_MAC_F16();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 2; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //src_0
return 2;
case 1: //src_1
return 2;
case 2: //vdst
return 2;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_VOP2__V_MAC_F16
class Inst_VOP2__V_MADMK_F16 : public Inst_VOP2
{
public:
Inst_VOP2__V_MADMK_F16(InFmt_VOP2*);
~Inst_VOP2__V_MADMK_F16();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 3; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //src_0
return 2;
case 1: //src_1
return 2;
case 2: //src_2
return 2;
case 3: //vdst
return 2;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_VOP2__V_MADMK_F16
class Inst_VOP2__V_MADAK_F16 : public Inst_VOP2
{
public:
Inst_VOP2__V_MADAK_F16(InFmt_VOP2*);
~Inst_VOP2__V_MADAK_F16();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 3; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //src_0
return 2;
case 1: //src_1
return 2;
case 2: //src_2
return 2;
case 3: //vdst
return 2;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_VOP2__V_MADAK_F16
class Inst_VOP2__V_ADD_U16 : public Inst_VOP2
{
public:
Inst_VOP2__V_ADD_U16(InFmt_VOP2*);
~Inst_VOP2__V_ADD_U16();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 2; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //src_0
return 2;
case 1: //src_1
return 2;
case 2: //vdst
return 2;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_VOP2__V_ADD_U16
class Inst_VOP2__V_SUB_U16 : public Inst_VOP2
{
public:
Inst_VOP2__V_SUB_U16(InFmt_VOP2*);
~Inst_VOP2__V_SUB_U16();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 2; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //src_0
return 2;
case 1: //src_1
return 2;
case 2: //vdst
return 2;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_VOP2__V_SUB_U16
class Inst_VOP2__V_SUBREV_U16 : public Inst_VOP2
{
public:
Inst_VOP2__V_SUBREV_U16(InFmt_VOP2*);
~Inst_VOP2__V_SUBREV_U16();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 2; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //src_0
return 2;
case 1: //src_1
return 2;
case 2: //vdst
return 2;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_VOP2__V_SUBREV_U16
class Inst_VOP2__V_MUL_LO_U16 : public Inst_VOP2
{
public:
Inst_VOP2__V_MUL_LO_U16(InFmt_VOP2*);
~Inst_VOP2__V_MUL_LO_U16();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 2; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //src_0
return 2;
case 1: //src_1
return 2;
case 2: //vdst
return 2;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_VOP2__V_MUL_LO_U16
class Inst_VOP2__V_LSHLREV_B16 : public Inst_VOP2
{
public:
Inst_VOP2__V_LSHLREV_B16(InFmt_VOP2*);
~Inst_VOP2__V_LSHLREV_B16();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 2; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //src_0
return 2;
case 1: //src_1
return 2;
case 2: //vdst
return 2;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_VOP2__V_LSHLREV_B16
class Inst_VOP2__V_LSHRREV_B16 : public Inst_VOP2
{
public:
Inst_VOP2__V_LSHRREV_B16(InFmt_VOP2*);
~Inst_VOP2__V_LSHRREV_B16();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 2; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //src_0
return 2;
case 1: //src_1
return 2;
case 2: //vdst
return 2;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_VOP2__V_LSHRREV_B16
class Inst_VOP2__V_ASHRREV_I16 : public Inst_VOP2
{
public:
Inst_VOP2__V_ASHRREV_I16(InFmt_VOP2*);
~Inst_VOP2__V_ASHRREV_I16();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 2; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //src_0
return 2;
case 1: //src_1
return 2;
case 2: //vdst
return 2;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_VOP2__V_ASHRREV_I16
class Inst_VOP2__V_MAX_F16 : public Inst_VOP2
{
public:
Inst_VOP2__V_MAX_F16(InFmt_VOP2*);
~Inst_VOP2__V_MAX_F16();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 2; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //src_0
return 2;
case 1: //src_1
return 2;
case 2: //vdst
return 2;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_VOP2__V_MAX_F16
class Inst_VOP2__V_MIN_F16 : public Inst_VOP2
{
public:
Inst_VOP2__V_MIN_F16(InFmt_VOP2*);
~Inst_VOP2__V_MIN_F16();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 2; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //src_0
return 2;
case 1: //src_1
return 2;
case 2: //vdst
return 2;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_VOP2__V_MIN_F16
class Inst_VOP2__V_MAX_U16 : public Inst_VOP2
{
public:
Inst_VOP2__V_MAX_U16(InFmt_VOP2*);
~Inst_VOP2__V_MAX_U16();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 2; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //src_0
return 2;
case 1: //src_1
return 2;
case 2: //vdst
return 2;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_VOP2__V_MAX_U16
class Inst_VOP2__V_MAX_I16 : public Inst_VOP2
{
public:
Inst_VOP2__V_MAX_I16(InFmt_VOP2*);
~Inst_VOP2__V_MAX_I16();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 2; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //src_0
return 2;
case 1: //src_1
return 2;
case 2: //vdst
return 2;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_VOP2__V_MAX_I16
class Inst_VOP2__V_MIN_U16 : public Inst_VOP2
{
public:
Inst_VOP2__V_MIN_U16(InFmt_VOP2*);
~Inst_VOP2__V_MIN_U16();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 2; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //src_0
return 2;
case 1: //src_1
return 2;
case 2: //vdst
return 2;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_VOP2__V_MIN_U16
class Inst_VOP2__V_MIN_I16 : public Inst_VOP2
{
public:
Inst_VOP2__V_MIN_I16(InFmt_VOP2*);
~Inst_VOP2__V_MIN_I16();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 2; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //src_0
return 2;
case 1: //src_1
return 2;
case 2: //vdst
return 2;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_VOP2__V_MIN_I16
class Inst_VOP2__V_LDEXP_F16 : public Inst_VOP2
{
public:
Inst_VOP2__V_LDEXP_F16(InFmt_VOP2*);
~Inst_VOP2__V_LDEXP_F16();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 2; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //src_0
return 2;
case 1: //src_1
return 2;
case 2: //vdst
return 2;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_VOP2__V_LDEXP_F16
class Inst_VOP2__V_ADD_U32 : public Inst_VOP2
{
public:
Inst_VOP2__V_ADD_U32(InFmt_VOP2*);
~Inst_VOP2__V_ADD_U32();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 2; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //src_0
return 4;
case 1: //src_1
return 4;
case 2: //vdst
return 4;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_VOP2__V_ADD_U32
class Inst_VOP2__V_SUB_U32 : public Inst_VOP2
{
public:
Inst_VOP2__V_SUB_U32(InFmt_VOP2*);
~Inst_VOP2__V_SUB_U32();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 2; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //src_0
return 4;
case 1: //src_1
return 4;
case 2: //vdst
return 4;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_VOP2__V_SUB_U32
class Inst_VOP2__V_SUBREV_U32 : public Inst_VOP2
{
public:
Inst_VOP2__V_SUBREV_U32(InFmt_VOP2*);
~Inst_VOP2__V_SUBREV_U32();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 2; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //src_0
return 4;
case 1: //src_1
return 4;
case 2: //vdst
return 4;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_VOP2__V_SUBREV_U32
class Inst_VOP1__V_NOP : public Inst_VOP1
{
public:
Inst_VOP1__V_NOP(InFmt_VOP1*);
~Inst_VOP1__V_NOP();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 0; }
int numSrcRegOperands() override { return 0; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_VOP1__V_NOP
class Inst_VOP1__V_MOV_B32 : public Inst_VOP1
{
public:
Inst_VOP1__V_MOV_B32(InFmt_VOP1*);
~Inst_VOP1__V_MOV_B32();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 1; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //src
return 4;
case 1: //vdst
return 4;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_VOP1__V_MOV_B32
class Inst_VOP1__V_READFIRSTLANE_B32 : public Inst_VOP1
{
public:
Inst_VOP1__V_READFIRSTLANE_B32(InFmt_VOP1*);
~Inst_VOP1__V_READFIRSTLANE_B32();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 1; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //vsrc
return 4;
case 1: //sdst
return 4;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_VOP1__V_READFIRSTLANE_B32
class Inst_VOP1__V_CVT_I32_F64 : public Inst_VOP1
{
public:
Inst_VOP1__V_CVT_I32_F64(InFmt_VOP1*);
~Inst_VOP1__V_CVT_I32_F64();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 1; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //src
return 8;
case 1: //vdst
return 4;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_VOP1__V_CVT_I32_F64
class Inst_VOP1__V_CVT_F64_I32 : public Inst_VOP1
{
public:
Inst_VOP1__V_CVT_F64_I32(InFmt_VOP1*);
~Inst_VOP1__V_CVT_F64_I32();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 1; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //src
return 4;
case 1: //vdst
return 8;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_VOP1__V_CVT_F64_I32
class Inst_VOP1__V_CVT_F32_I32 : public Inst_VOP1
{
public:
Inst_VOP1__V_CVT_F32_I32(InFmt_VOP1*);
~Inst_VOP1__V_CVT_F32_I32();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 1; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //src
return 4;
case 1: //vdst
return 4;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_VOP1__V_CVT_F32_I32
class Inst_VOP1__V_CVT_F32_U32 : public Inst_VOP1
{
public:
Inst_VOP1__V_CVT_F32_U32(InFmt_VOP1*);
~Inst_VOP1__V_CVT_F32_U32();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 1; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //src
return 4;
case 1: //vdst
return 4;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_VOP1__V_CVT_F32_U32
class Inst_VOP1__V_CVT_U32_F32 : public Inst_VOP1
{
public:
Inst_VOP1__V_CVT_U32_F32(InFmt_VOP1*);
~Inst_VOP1__V_CVT_U32_F32();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 1; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //src
return 4;
case 1: //vdst
return 4;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_VOP1__V_CVT_U32_F32
class Inst_VOP1__V_CVT_I32_F32 : public Inst_VOP1
{
public:
Inst_VOP1__V_CVT_I32_F32(InFmt_VOP1*);
~Inst_VOP1__V_CVT_I32_F32();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 1; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //src
return 4;
case 1: //vdst
return 4;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_VOP1__V_CVT_I32_F32
class Inst_VOP1__V_MOV_FED_B32 : public Inst_VOP1
{
public:
Inst_VOP1__V_MOV_FED_B32(InFmt_VOP1*);
~Inst_VOP1__V_MOV_FED_B32();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 1; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //src
return 4;
case 1: //vdst
return 4;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_VOP1__V_MOV_FED_B32
class Inst_VOP1__V_CVT_F16_F32 : public Inst_VOP1
{
public:
Inst_VOP1__V_CVT_F16_F32(InFmt_VOP1*);
~Inst_VOP1__V_CVT_F16_F32();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 1; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //src
return 4;
case 1: //vdst
return 2;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_VOP1__V_CVT_F16_F32
class Inst_VOP1__V_CVT_F32_F16 : public Inst_VOP1
{
public:
Inst_VOP1__V_CVT_F32_F16(InFmt_VOP1*);
~Inst_VOP1__V_CVT_F32_F16();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 1; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //src
return 2;
case 1: //vdst
return 4;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_VOP1__V_CVT_F32_F16
class Inst_VOP1__V_CVT_RPI_I32_F32 : public Inst_VOP1
{
public:
Inst_VOP1__V_CVT_RPI_I32_F32(InFmt_VOP1*);
~Inst_VOP1__V_CVT_RPI_I32_F32();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 1; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //src
return 4;
case 1: //vdst
return 4;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_VOP1__V_CVT_RPI_I32_F32
class Inst_VOP1__V_CVT_FLR_I32_F32 : public Inst_VOP1
{
public:
Inst_VOP1__V_CVT_FLR_I32_F32(InFmt_VOP1*);
~Inst_VOP1__V_CVT_FLR_I32_F32();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 1; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //src
return 4;
case 1: //vdst
return 4;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_VOP1__V_CVT_FLR_I32_F32
class Inst_VOP1__V_CVT_OFF_F32_I4 : public Inst_VOP1
{
public:
Inst_VOP1__V_CVT_OFF_F32_I4(InFmt_VOP1*);
~Inst_VOP1__V_CVT_OFF_F32_I4();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 1; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //src
return 4;
case 1: //vdst
return 4;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_VOP1__V_CVT_OFF_F32_I4
class Inst_VOP1__V_CVT_F32_F64 : public Inst_VOP1
{
public:
Inst_VOP1__V_CVT_F32_F64(InFmt_VOP1*);
~Inst_VOP1__V_CVT_F32_F64();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 1; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //src
return 8;
case 1: //vdst
return 4;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_VOP1__V_CVT_F32_F64
class Inst_VOP1__V_CVT_F64_F32 : public Inst_VOP1
{
public:
Inst_VOP1__V_CVT_F64_F32(InFmt_VOP1*);
~Inst_VOP1__V_CVT_F64_F32();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 1; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //src
return 4;
case 1: //vdst
return 8;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_VOP1__V_CVT_F64_F32
class Inst_VOP1__V_CVT_F32_UBYTE0 : public Inst_VOP1
{
public:
Inst_VOP1__V_CVT_F32_UBYTE0(InFmt_VOP1*);
~Inst_VOP1__V_CVT_F32_UBYTE0();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 1; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //src
return 4;
case 1: //vdst
return 4;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_VOP1__V_CVT_F32_UBYTE0
class Inst_VOP1__V_CVT_F32_UBYTE1 : public Inst_VOP1
{
public:
Inst_VOP1__V_CVT_F32_UBYTE1(InFmt_VOP1*);
~Inst_VOP1__V_CVT_F32_UBYTE1();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 1; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //src
return 4;
case 1: //vdst
return 4;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_VOP1__V_CVT_F32_UBYTE1
class Inst_VOP1__V_CVT_F32_UBYTE2 : public Inst_VOP1
{
public:
Inst_VOP1__V_CVT_F32_UBYTE2(InFmt_VOP1*);
~Inst_VOP1__V_CVT_F32_UBYTE2();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 1; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //src
return 4;
case 1: //vdst
return 4;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_VOP1__V_CVT_F32_UBYTE2
class Inst_VOP1__V_CVT_F32_UBYTE3 : public Inst_VOP1
{
public:
Inst_VOP1__V_CVT_F32_UBYTE3(InFmt_VOP1*);
~Inst_VOP1__V_CVT_F32_UBYTE3();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 1; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //src
return 4;
case 1: //vdst
return 4;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_VOP1__V_CVT_F32_UBYTE3
class Inst_VOP1__V_CVT_U32_F64 : public Inst_VOP1
{
public:
Inst_VOP1__V_CVT_U32_F64(InFmt_VOP1*);
~Inst_VOP1__V_CVT_U32_F64();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 1; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //src
return 8;
case 1: //vdst
return 4;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_VOP1__V_CVT_U32_F64
class Inst_VOP1__V_CVT_F64_U32 : public Inst_VOP1
{
public:
Inst_VOP1__V_CVT_F64_U32(InFmt_VOP1*);
~Inst_VOP1__V_CVT_F64_U32();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 1; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //src
return 4;
case 1: //vdst
return 8;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_VOP1__V_CVT_F64_U32
class Inst_VOP1__V_TRUNC_F64 : public Inst_VOP1
{
public:
Inst_VOP1__V_TRUNC_F64(InFmt_VOP1*);
~Inst_VOP1__V_TRUNC_F64();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 1; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //src
return 8;
case 1: //vdst
return 8;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_VOP1__V_TRUNC_F64
class Inst_VOP1__V_CEIL_F64 : public Inst_VOP1
{
public:
Inst_VOP1__V_CEIL_F64(InFmt_VOP1*);
~Inst_VOP1__V_CEIL_F64();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 1; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //src
return 8;
case 1: //vdst
return 8;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_VOP1__V_CEIL_F64
class Inst_VOP1__V_RNDNE_F64 : public Inst_VOP1
{
public:
Inst_VOP1__V_RNDNE_F64(InFmt_VOP1*);
~Inst_VOP1__V_RNDNE_F64();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 1; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //src
return 8;
case 1: //vdst
return 8;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_VOP1__V_RNDNE_F64
class Inst_VOP1__V_FLOOR_F64 : public Inst_VOP1
{
public:
Inst_VOP1__V_FLOOR_F64(InFmt_VOP1*);
~Inst_VOP1__V_FLOOR_F64();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 1; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //src
return 8;
case 1: //vdst
return 8;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_VOP1__V_FLOOR_F64
class Inst_VOP1__V_FRACT_F32 : public Inst_VOP1
{
public:
Inst_VOP1__V_FRACT_F32(InFmt_VOP1*);
~Inst_VOP1__V_FRACT_F32();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 1; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //src
return 4;
case 1: //vdst
return 4;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_VOP1__V_FRACT_F32
class Inst_VOP1__V_TRUNC_F32 : public Inst_VOP1
{
public:
Inst_VOP1__V_TRUNC_F32(InFmt_VOP1*);
~Inst_VOP1__V_TRUNC_F32();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 1; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //src
return 4;
case 1: //vdst
return 4;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_VOP1__V_TRUNC_F32
class Inst_VOP1__V_CEIL_F32 : public Inst_VOP1
{
public:
Inst_VOP1__V_CEIL_F32(InFmt_VOP1*);
~Inst_VOP1__V_CEIL_F32();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 1; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //src
return 4;
case 1: //vdst
return 4;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_VOP1__V_CEIL_F32
class Inst_VOP1__V_RNDNE_F32 : public Inst_VOP1
{
public:
Inst_VOP1__V_RNDNE_F32(InFmt_VOP1*);
~Inst_VOP1__V_RNDNE_F32();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 1; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //src
return 4;
case 1: //vdst
return 4;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_VOP1__V_RNDNE_F32
class Inst_VOP1__V_FLOOR_F32 : public Inst_VOP1
{
public:
Inst_VOP1__V_FLOOR_F32(InFmt_VOP1*);
~Inst_VOP1__V_FLOOR_F32();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 1; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //src
return 4;
case 1: //vdst
return 4;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_VOP1__V_FLOOR_F32
class Inst_VOP1__V_EXP_F32 : public Inst_VOP1
{
public:
Inst_VOP1__V_EXP_F32(InFmt_VOP1*);
~Inst_VOP1__V_EXP_F32();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 1; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //src
return 4;
case 1: //vdst
return 4;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_VOP1__V_EXP_F32
class Inst_VOP1__V_LOG_F32 : public Inst_VOP1
{
public:
Inst_VOP1__V_LOG_F32(InFmt_VOP1*);
~Inst_VOP1__V_LOG_F32();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 1; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //src
return 4;
case 1: //vdst
return 4;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_VOP1__V_LOG_F32
class Inst_VOP1__V_RCP_F32 : public Inst_VOP1
{
public:
Inst_VOP1__V_RCP_F32(InFmt_VOP1*);
~Inst_VOP1__V_RCP_F32();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 1; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //src
return 4;
case 1: //vdst
return 4;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_VOP1__V_RCP_F32
class Inst_VOP1__V_RCP_IFLAG_F32 : public Inst_VOP1
{
public:
Inst_VOP1__V_RCP_IFLAG_F32(InFmt_VOP1*);
~Inst_VOP1__V_RCP_IFLAG_F32();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 1; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //src
return 4;
case 1: //vdst
return 4;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_VOP1__V_RCP_IFLAG_F32
class Inst_VOP1__V_RSQ_F32 : public Inst_VOP1
{
public:
Inst_VOP1__V_RSQ_F32(InFmt_VOP1*);
~Inst_VOP1__V_RSQ_F32();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 1; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //src
return 4;
case 1: //vdst
return 4;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_VOP1__V_RSQ_F32
class Inst_VOP1__V_RCP_F64 : public Inst_VOP1
{
public:
Inst_VOP1__V_RCP_F64(InFmt_VOP1*);
~Inst_VOP1__V_RCP_F64();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 1; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //src
return 8;
case 1: //vdst
return 8;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_VOP1__V_RCP_F64
class Inst_VOP1__V_RSQ_F64 : public Inst_VOP1
{
public:
Inst_VOP1__V_RSQ_F64(InFmt_VOP1*);
~Inst_VOP1__V_RSQ_F64();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 1; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //src
return 8;
case 1: //vdst
return 8;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_VOP1__V_RSQ_F64
class Inst_VOP1__V_SQRT_F32 : public Inst_VOP1
{
public:
Inst_VOP1__V_SQRT_F32(InFmt_VOP1*);
~Inst_VOP1__V_SQRT_F32();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 1; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //src
return 4;
case 1: //vdst
return 4;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_VOP1__V_SQRT_F32
class Inst_VOP1__V_SQRT_F64 : public Inst_VOP1
{
public:
Inst_VOP1__V_SQRT_F64(InFmt_VOP1*);
~Inst_VOP1__V_SQRT_F64();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 1; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //src
return 8;
case 1: //vdst
return 8;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_VOP1__V_SQRT_F64
class Inst_VOP1__V_SIN_F32 : public Inst_VOP1
{
public:
Inst_VOP1__V_SIN_F32(InFmt_VOP1*);
~Inst_VOP1__V_SIN_F32();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 1; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //src
return 4;
case 1: //vdst
return 4;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_VOP1__V_SIN_F32
class Inst_VOP1__V_COS_F32 : public Inst_VOP1
{
public:
Inst_VOP1__V_COS_F32(InFmt_VOP1*);
~Inst_VOP1__V_COS_F32();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 1; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //src
return 4;
case 1: //vdst
return 4;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_VOP1__V_COS_F32
class Inst_VOP1__V_NOT_B32 : public Inst_VOP1
{
public:
Inst_VOP1__V_NOT_B32(InFmt_VOP1*);
~Inst_VOP1__V_NOT_B32();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 1; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //src
return 4;
case 1: //vdst
return 4;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_VOP1__V_NOT_B32
class Inst_VOP1__V_BFREV_B32 : public Inst_VOP1
{
public:
Inst_VOP1__V_BFREV_B32(InFmt_VOP1*);
~Inst_VOP1__V_BFREV_B32();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 1; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //src
return 4;
case 1: //vdst
return 4;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_VOP1__V_BFREV_B32
class Inst_VOP1__V_FFBH_U32 : public Inst_VOP1
{
public:
Inst_VOP1__V_FFBH_U32(InFmt_VOP1*);
~Inst_VOP1__V_FFBH_U32();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 1; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //src
return 4;
case 1: //vdst
return 4;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_VOP1__V_FFBH_U32
class Inst_VOP1__V_FFBL_B32 : public Inst_VOP1
{
public:
Inst_VOP1__V_FFBL_B32(InFmt_VOP1*);
~Inst_VOP1__V_FFBL_B32();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 1; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //src
return 4;
case 1: //vdst
return 4;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_VOP1__V_FFBL_B32
class Inst_VOP1__V_FFBH_I32 : public Inst_VOP1
{
public:
Inst_VOP1__V_FFBH_I32(InFmt_VOP1*);
~Inst_VOP1__V_FFBH_I32();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 1; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //src
return 4;
case 1: //vdst
return 4;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_VOP1__V_FFBH_I32
class Inst_VOP1__V_FREXP_EXP_I32_F64 : public Inst_VOP1
{
public:
Inst_VOP1__V_FREXP_EXP_I32_F64(InFmt_VOP1*);
~Inst_VOP1__V_FREXP_EXP_I32_F64();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 1; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //src
return 8;
case 1: //vdst
return 4;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_VOP1__V_FREXP_EXP_I32_F64
class Inst_VOP1__V_FREXP_MANT_F64 : public Inst_VOP1
{
public:
Inst_VOP1__V_FREXP_MANT_F64(InFmt_VOP1*);
~Inst_VOP1__V_FREXP_MANT_F64();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 1; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //src
return 8;
case 1: //vdst
return 8;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_VOP1__V_FREXP_MANT_F64
class Inst_VOP1__V_FRACT_F64 : public Inst_VOP1
{
public:
Inst_VOP1__V_FRACT_F64(InFmt_VOP1*);
~Inst_VOP1__V_FRACT_F64();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 1; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //src
return 8;
case 1: //vdst
return 8;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_VOP1__V_FRACT_F64
class Inst_VOP1__V_FREXP_EXP_I32_F32 : public Inst_VOP1
{
public:
Inst_VOP1__V_FREXP_EXP_I32_F32(InFmt_VOP1*);
~Inst_VOP1__V_FREXP_EXP_I32_F32();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 1; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //src
return 4;
case 1: //vdst
return 4;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_VOP1__V_FREXP_EXP_I32_F32
class Inst_VOP1__V_FREXP_MANT_F32 : public Inst_VOP1
{
public:
Inst_VOP1__V_FREXP_MANT_F32(InFmt_VOP1*);
~Inst_VOP1__V_FREXP_MANT_F32();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 1; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //src
return 4;
case 1: //vdst
return 4;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_VOP1__V_FREXP_MANT_F32
class Inst_VOP1__V_CLREXCP : public Inst_VOP1
{
public:
Inst_VOP1__V_CLREXCP(InFmt_VOP1*);
~Inst_VOP1__V_CLREXCP();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 0; }
int numSrcRegOperands() override { return 0; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_VOP1__V_CLREXCP
class Inst_VOP1__V_CVT_F16_U16 : public Inst_VOP1
{
public:
Inst_VOP1__V_CVT_F16_U16(InFmt_VOP1*);
~Inst_VOP1__V_CVT_F16_U16();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 1; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //src
return 2;
case 1: //vdst
return 2;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_VOP1__V_CVT_F16_U16
class Inst_VOP1__V_CVT_F16_I16 : public Inst_VOP1
{
public:
Inst_VOP1__V_CVT_F16_I16(InFmt_VOP1*);
~Inst_VOP1__V_CVT_F16_I16();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 1; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //src
return 2;
case 1: //vdst
return 2;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_VOP1__V_CVT_F16_I16
class Inst_VOP1__V_CVT_U16_F16 : public Inst_VOP1
{
public:
Inst_VOP1__V_CVT_U16_F16(InFmt_VOP1*);
~Inst_VOP1__V_CVT_U16_F16();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 1; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //src
return 2;
case 1: //vdst
return 2;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_VOP1__V_CVT_U16_F16
class Inst_VOP1__V_CVT_I16_F16 : public Inst_VOP1
{
public:
Inst_VOP1__V_CVT_I16_F16(InFmt_VOP1*);
~Inst_VOP1__V_CVT_I16_F16();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 1; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //src
return 2;
case 1: //vdst
return 2;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_VOP1__V_CVT_I16_F16
class Inst_VOP1__V_RCP_F16 : public Inst_VOP1
{
public:
Inst_VOP1__V_RCP_F16(InFmt_VOP1*);
~Inst_VOP1__V_RCP_F16();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 1; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //src
return 2;
case 1: //vdst
return 2;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_VOP1__V_RCP_F16
class Inst_VOP1__V_SQRT_F16 : public Inst_VOP1
{
public:
Inst_VOP1__V_SQRT_F16(InFmt_VOP1*);
~Inst_VOP1__V_SQRT_F16();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 1; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //src
return 2;
case 1: //vdst
return 2;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_VOP1__V_SQRT_F16
class Inst_VOP1__V_RSQ_F16 : public Inst_VOP1
{
public:
Inst_VOP1__V_RSQ_F16(InFmt_VOP1*);
~Inst_VOP1__V_RSQ_F16();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 1; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //src
return 2;
case 1: //vdst
return 2;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_VOP1__V_RSQ_F16
class Inst_VOP1__V_LOG_F16 : public Inst_VOP1
{
public:
Inst_VOP1__V_LOG_F16(InFmt_VOP1*);
~Inst_VOP1__V_LOG_F16();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 1; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //src
return 2;
case 1: //vdst
return 2;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_VOP1__V_LOG_F16
class Inst_VOP1__V_EXP_F16 : public Inst_VOP1
{
public:
Inst_VOP1__V_EXP_F16(InFmt_VOP1*);
~Inst_VOP1__V_EXP_F16();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 1; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //src
return 2;
case 1: //vdst
return 2;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_VOP1__V_EXP_F16
class Inst_VOP1__V_FREXP_MANT_F16 : public Inst_VOP1
{
public:
Inst_VOP1__V_FREXP_MANT_F16(InFmt_VOP1*);
~Inst_VOP1__V_FREXP_MANT_F16();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 1; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //src
return 2;
case 1: //vdst
return 2;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_VOP1__V_FREXP_MANT_F16
class Inst_VOP1__V_FREXP_EXP_I16_F16 : public Inst_VOP1
{
public:
Inst_VOP1__V_FREXP_EXP_I16_F16(InFmt_VOP1*);
~Inst_VOP1__V_FREXP_EXP_I16_F16();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 1; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //src
return 2;
case 1: //vdst
return 2;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_VOP1__V_FREXP_EXP_I16_F16
class Inst_VOP1__V_FLOOR_F16 : public Inst_VOP1
{
public:
Inst_VOP1__V_FLOOR_F16(InFmt_VOP1*);
~Inst_VOP1__V_FLOOR_F16();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 1; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //src
return 2;
case 1: //vdst
return 2;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_VOP1__V_FLOOR_F16
class Inst_VOP1__V_CEIL_F16 : public Inst_VOP1
{
public:
Inst_VOP1__V_CEIL_F16(InFmt_VOP1*);
~Inst_VOP1__V_CEIL_F16();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 1; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //src
return 2;
case 1: //vdst
return 2;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_VOP1__V_CEIL_F16
class Inst_VOP1__V_TRUNC_F16 : public Inst_VOP1
{
public:
Inst_VOP1__V_TRUNC_F16(InFmt_VOP1*);
~Inst_VOP1__V_TRUNC_F16();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 1; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //src
return 2;
case 1: //vdst
return 2;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_VOP1__V_TRUNC_F16
class Inst_VOP1__V_RNDNE_F16 : public Inst_VOP1
{
public:
Inst_VOP1__V_RNDNE_F16(InFmt_VOP1*);
~Inst_VOP1__V_RNDNE_F16();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 1; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //src
return 2;
case 1: //vdst
return 2;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_VOP1__V_RNDNE_F16
class Inst_VOP1__V_FRACT_F16 : public Inst_VOP1
{
public:
Inst_VOP1__V_FRACT_F16(InFmt_VOP1*);
~Inst_VOP1__V_FRACT_F16();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 1; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //src
return 2;
case 1: //vdst
return 2;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_VOP1__V_FRACT_F16
class Inst_VOP1__V_SIN_F16 : public Inst_VOP1
{
public:
Inst_VOP1__V_SIN_F16(InFmt_VOP1*);
~Inst_VOP1__V_SIN_F16();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 1; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //src
return 2;
case 1: //vdst
return 2;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_VOP1__V_SIN_F16
class Inst_VOP1__V_COS_F16 : public Inst_VOP1
{
public:
Inst_VOP1__V_COS_F16(InFmt_VOP1*);
~Inst_VOP1__V_COS_F16();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 1; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //src
return 2;
case 1: //vdst
return 2;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_VOP1__V_COS_F16
class Inst_VOP1__V_EXP_LEGACY_F32 : public Inst_VOP1
{
public:
Inst_VOP1__V_EXP_LEGACY_F32(InFmt_VOP1*);
~Inst_VOP1__V_EXP_LEGACY_F32();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 1; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //src
return 4;
case 1: //vdst
return 4;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_VOP1__V_EXP_LEGACY_F32
class Inst_VOP1__V_LOG_LEGACY_F32 : public Inst_VOP1
{
public:
Inst_VOP1__V_LOG_LEGACY_F32(InFmt_VOP1*);
~Inst_VOP1__V_LOG_LEGACY_F32();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 1; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //src
return 4;
case 1: //vdst
return 4;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_VOP1__V_LOG_LEGACY_F32
class Inst_VOPC__V_CMP_CLASS_F32 : public Inst_VOPC
{
public:
Inst_VOPC__V_CMP_CLASS_F32(InFmt_VOPC*);
~Inst_VOPC__V_CMP_CLASS_F32();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 2; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //src_0
return 4;
case 1: //src_1
return 4;
case 2: //vcc
return 8;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_VOPC__V_CMP_CLASS_F32
class Inst_VOPC__V_CMPX_CLASS_F32 : public Inst_VOPC
{
public:
Inst_VOPC__V_CMPX_CLASS_F32(InFmt_VOPC*);
~Inst_VOPC__V_CMPX_CLASS_F32();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 2; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //src_0
return 4;
case 1: //src_1
return 4;
case 2: //vcc
return 8;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_VOPC__V_CMPX_CLASS_F32
class Inst_VOPC__V_CMP_CLASS_F64 : public Inst_VOPC
{
public:
Inst_VOPC__V_CMP_CLASS_F64(InFmt_VOPC*);
~Inst_VOPC__V_CMP_CLASS_F64();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 2; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //src_0
return 8;
case 1: //src_1
return 4;
case 2: //vcc
return 8;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_VOPC__V_CMP_CLASS_F64
class Inst_VOPC__V_CMPX_CLASS_F64 : public Inst_VOPC
{
public:
Inst_VOPC__V_CMPX_CLASS_F64(InFmt_VOPC*);
~Inst_VOPC__V_CMPX_CLASS_F64();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 2; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //src_0
return 8;
case 1: //src_1
return 4;
case 2: //vcc
return 8;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_VOPC__V_CMPX_CLASS_F64
class Inst_VOPC__V_CMP_CLASS_F16 : public Inst_VOPC
{
public:
Inst_VOPC__V_CMP_CLASS_F16(InFmt_VOPC*);
~Inst_VOPC__V_CMP_CLASS_F16();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 2; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //src_0
return 2;
case 1: //src_1
return 2;
case 2: //vcc
return 8;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_VOPC__V_CMP_CLASS_F16
class Inst_VOPC__V_CMPX_CLASS_F16 : public Inst_VOPC
{
public:
Inst_VOPC__V_CMPX_CLASS_F16(InFmt_VOPC*);
~Inst_VOPC__V_CMPX_CLASS_F16();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 2; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //src_0
return 2;
case 1: //src_1
return 2;
case 2: //vcc
return 8;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_VOPC__V_CMPX_CLASS_F16
class Inst_VOPC__V_CMP_F_F16 : public Inst_VOPC
{
public:
Inst_VOPC__V_CMP_F_F16(InFmt_VOPC*);
~Inst_VOPC__V_CMP_F_F16();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 2; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //src_0
return 2;
case 1: //src_1
return 2;
case 2: //vcc
return 8;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_VOPC__V_CMP_F_F16
class Inst_VOPC__V_CMP_LT_F16 : public Inst_VOPC
{
public:
Inst_VOPC__V_CMP_LT_F16(InFmt_VOPC*);
~Inst_VOPC__V_CMP_LT_F16();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 2; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //src_0
return 2;
case 1: //src_1
return 2;
case 2: //vcc
return 8;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_VOPC__V_CMP_LT_F16
class Inst_VOPC__V_CMP_EQ_F16 : public Inst_VOPC
{
public:
Inst_VOPC__V_CMP_EQ_F16(InFmt_VOPC*);
~Inst_VOPC__V_CMP_EQ_F16();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 2; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //src_0
return 2;
case 1: //src_1
return 2;
case 2: //vcc
return 8;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_VOPC__V_CMP_EQ_F16
class Inst_VOPC__V_CMP_LE_F16 : public Inst_VOPC
{
public:
Inst_VOPC__V_CMP_LE_F16(InFmt_VOPC*);
~Inst_VOPC__V_CMP_LE_F16();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 2; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //src_0
return 2;
case 1: //src_1
return 2;
case 2: //vcc
return 8;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_VOPC__V_CMP_LE_F16
class Inst_VOPC__V_CMP_GT_F16 : public Inst_VOPC
{
public:
Inst_VOPC__V_CMP_GT_F16(InFmt_VOPC*);
~Inst_VOPC__V_CMP_GT_F16();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 2; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //src_0
return 2;
case 1: //src_1
return 2;
case 2: //vcc
return 8;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_VOPC__V_CMP_GT_F16
class Inst_VOPC__V_CMP_LG_F16 : public Inst_VOPC
{
public:
Inst_VOPC__V_CMP_LG_F16(InFmt_VOPC*);
~Inst_VOPC__V_CMP_LG_F16();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 2; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //src_0
return 2;
case 1: //src_1
return 2;
case 2: //vcc
return 8;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_VOPC__V_CMP_LG_F16
class Inst_VOPC__V_CMP_GE_F16 : public Inst_VOPC
{
public:
Inst_VOPC__V_CMP_GE_F16(InFmt_VOPC*);
~Inst_VOPC__V_CMP_GE_F16();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 2; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //src_0
return 2;
case 1: //src_1
return 2;
case 2: //vcc
return 8;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_VOPC__V_CMP_GE_F16
class Inst_VOPC__V_CMP_O_F16 : public Inst_VOPC
{
public:
Inst_VOPC__V_CMP_O_F16(InFmt_VOPC*);
~Inst_VOPC__V_CMP_O_F16();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 2; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //src_0
return 2;
case 1: //src_1
return 2;
case 2: //vcc
return 8;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_VOPC__V_CMP_O_F16
class Inst_VOPC__V_CMP_U_F16 : public Inst_VOPC
{
public:
Inst_VOPC__V_CMP_U_F16(InFmt_VOPC*);
~Inst_VOPC__V_CMP_U_F16();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 2; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //src_0
return 2;
case 1: //src_1
return 2;
case 2: //vcc
return 8;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_VOPC__V_CMP_U_F16
class Inst_VOPC__V_CMP_NGE_F16 : public Inst_VOPC
{
public:
Inst_VOPC__V_CMP_NGE_F16(InFmt_VOPC*);
~Inst_VOPC__V_CMP_NGE_F16();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 2; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //src_0
return 2;
case 1: //src_1
return 2;
case 2: //vcc
return 8;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_VOPC__V_CMP_NGE_F16
class Inst_VOPC__V_CMP_NLG_F16 : public Inst_VOPC
{
public:
Inst_VOPC__V_CMP_NLG_F16(InFmt_VOPC*);
~Inst_VOPC__V_CMP_NLG_F16();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 2; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //src_0
return 2;
case 1: //src_1
return 2;
case 2: //vcc
return 8;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_VOPC__V_CMP_NLG_F16
class Inst_VOPC__V_CMP_NGT_F16 : public Inst_VOPC
{
public:
Inst_VOPC__V_CMP_NGT_F16(InFmt_VOPC*);
~Inst_VOPC__V_CMP_NGT_F16();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 2; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //src_0
return 2;
case 1: //src_1
return 2;
case 2: //vcc
return 8;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_VOPC__V_CMP_NGT_F16
class Inst_VOPC__V_CMP_NLE_F16 : public Inst_VOPC
{
public:
Inst_VOPC__V_CMP_NLE_F16(InFmt_VOPC*);
~Inst_VOPC__V_CMP_NLE_F16();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 2; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //src_0
return 2;
case 1: //src_1
return 2;
case 2: //vcc
return 8;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_VOPC__V_CMP_NLE_F16
class Inst_VOPC__V_CMP_NEQ_F16 : public Inst_VOPC
{
public:
Inst_VOPC__V_CMP_NEQ_F16(InFmt_VOPC*);
~Inst_VOPC__V_CMP_NEQ_F16();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 2; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //src_0
return 2;
case 1: //src_1
return 2;
case 2: //vcc
return 8;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_VOPC__V_CMP_NEQ_F16
class Inst_VOPC__V_CMP_NLT_F16 : public Inst_VOPC
{
public:
Inst_VOPC__V_CMP_NLT_F16(InFmt_VOPC*);
~Inst_VOPC__V_CMP_NLT_F16();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 2; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //src_0
return 2;
case 1: //src_1
return 2;
case 2: //vcc
return 8;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_VOPC__V_CMP_NLT_F16
class Inst_VOPC__V_CMP_TRU_F16 : public Inst_VOPC
{
public:
Inst_VOPC__V_CMP_TRU_F16(InFmt_VOPC*);
~Inst_VOPC__V_CMP_TRU_F16();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 2; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //src_0
return 2;
case 1: //src_1
return 2;
case 2: //vcc
return 8;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_VOPC__V_CMP_TRU_F16
class Inst_VOPC__V_CMPX_F_F16 : public Inst_VOPC
{
public:
Inst_VOPC__V_CMPX_F_F16(InFmt_VOPC*);
~Inst_VOPC__V_CMPX_F_F16();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 2; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //src_0
return 2;
case 1: //src_1
return 2;
case 2: //vcc
return 8;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_VOPC__V_CMPX_F_F16
class Inst_VOPC__V_CMPX_LT_F16 : public Inst_VOPC
{
public:
Inst_VOPC__V_CMPX_LT_F16(InFmt_VOPC*);
~Inst_VOPC__V_CMPX_LT_F16();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 2; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //src_0
return 2;
case 1: //src_1
return 2;
case 2: //vcc
return 8;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_VOPC__V_CMPX_LT_F16
class Inst_VOPC__V_CMPX_EQ_F16 : public Inst_VOPC
{
public:
Inst_VOPC__V_CMPX_EQ_F16(InFmt_VOPC*);
~Inst_VOPC__V_CMPX_EQ_F16();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 2; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //src_0
return 2;
case 1: //src_1
return 2;
case 2: //vcc
return 8;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_VOPC__V_CMPX_EQ_F16
class Inst_VOPC__V_CMPX_LE_F16 : public Inst_VOPC
{
public:
Inst_VOPC__V_CMPX_LE_F16(InFmt_VOPC*);
~Inst_VOPC__V_CMPX_LE_F16();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 2; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //src_0
return 2;
case 1: //src_1
return 2;
case 2: //vcc
return 8;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_VOPC__V_CMPX_LE_F16
class Inst_VOPC__V_CMPX_GT_F16 : public Inst_VOPC
{
public:
Inst_VOPC__V_CMPX_GT_F16(InFmt_VOPC*);
~Inst_VOPC__V_CMPX_GT_F16();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 2; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //src_0
return 2;
case 1: //src_1
return 2;
case 2: //vcc
return 8;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_VOPC__V_CMPX_GT_F16
class Inst_VOPC__V_CMPX_LG_F16 : public Inst_VOPC
{
public:
Inst_VOPC__V_CMPX_LG_F16(InFmt_VOPC*);
~Inst_VOPC__V_CMPX_LG_F16();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 2; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //src_0
return 2;
case 1: //src_1
return 2;
case 2: //vcc
return 8;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_VOPC__V_CMPX_LG_F16
class Inst_VOPC__V_CMPX_GE_F16 : public Inst_VOPC
{
public:
Inst_VOPC__V_CMPX_GE_F16(InFmt_VOPC*);
~Inst_VOPC__V_CMPX_GE_F16();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 2; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //src_0
return 2;
case 1: //src_1
return 2;
case 2: //vcc
return 8;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_VOPC__V_CMPX_GE_F16
class Inst_VOPC__V_CMPX_O_F16 : public Inst_VOPC
{
public:
Inst_VOPC__V_CMPX_O_F16(InFmt_VOPC*);
~Inst_VOPC__V_CMPX_O_F16();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 2; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //src_0
return 2;
case 1: //src_1
return 2;
case 2: //vcc
return 8;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_VOPC__V_CMPX_O_F16
class Inst_VOPC__V_CMPX_U_F16 : public Inst_VOPC
{
public:
Inst_VOPC__V_CMPX_U_F16(InFmt_VOPC*);
~Inst_VOPC__V_CMPX_U_F16();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 2; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //src_0
return 2;
case 1: //src_1
return 2;
case 2: //vcc
return 8;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_VOPC__V_CMPX_U_F16
class Inst_VOPC__V_CMPX_NGE_F16 : public Inst_VOPC
{
public:
Inst_VOPC__V_CMPX_NGE_F16(InFmt_VOPC*);
~Inst_VOPC__V_CMPX_NGE_F16();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 2; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //src_0
return 2;
case 1: //src_1
return 2;
case 2: //vcc
return 8;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_VOPC__V_CMPX_NGE_F16
class Inst_VOPC__V_CMPX_NLG_F16 : public Inst_VOPC
{
public:
Inst_VOPC__V_CMPX_NLG_F16(InFmt_VOPC*);
~Inst_VOPC__V_CMPX_NLG_F16();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 2; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //src_0
return 2;
case 1: //src_1
return 2;
case 2: //vcc
return 8;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_VOPC__V_CMPX_NLG_F16
class Inst_VOPC__V_CMPX_NGT_F16 : public Inst_VOPC
{
public:
Inst_VOPC__V_CMPX_NGT_F16(InFmt_VOPC*);
~Inst_VOPC__V_CMPX_NGT_F16();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 2; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //src_0
return 2;
case 1: //src_1
return 2;
case 2: //vcc
return 8;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_VOPC__V_CMPX_NGT_F16
class Inst_VOPC__V_CMPX_NLE_F16 : public Inst_VOPC
{
public:
Inst_VOPC__V_CMPX_NLE_F16(InFmt_VOPC*);
~Inst_VOPC__V_CMPX_NLE_F16();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 2; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //src_0
return 2;
case 1: //src_1
return 2;
case 2: //vcc
return 8;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_VOPC__V_CMPX_NLE_F16
class Inst_VOPC__V_CMPX_NEQ_F16 : public Inst_VOPC
{
public:
Inst_VOPC__V_CMPX_NEQ_F16(InFmt_VOPC*);
~Inst_VOPC__V_CMPX_NEQ_F16();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 2; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //src_0
return 2;
case 1: //src_1
return 2;
case 2: //vcc
return 8;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_VOPC__V_CMPX_NEQ_F16
class Inst_VOPC__V_CMPX_NLT_F16 : public Inst_VOPC
{
public:
Inst_VOPC__V_CMPX_NLT_F16(InFmt_VOPC*);
~Inst_VOPC__V_CMPX_NLT_F16();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 2; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //src_0
return 2;
case 1: //src_1
return 2;
case 2: //vcc
return 8;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_VOPC__V_CMPX_NLT_F16
class Inst_VOPC__V_CMPX_TRU_F16 : public Inst_VOPC
{
public:
Inst_VOPC__V_CMPX_TRU_F16(InFmt_VOPC*);
~Inst_VOPC__V_CMPX_TRU_F16();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 2; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //src_0
return 2;
case 1: //src_1
return 2;
case 2: //vcc
return 8;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_VOPC__V_CMPX_TRU_F16
class Inst_VOPC__V_CMP_F_F32 : public Inst_VOPC
{
public:
Inst_VOPC__V_CMP_F_F32(InFmt_VOPC*);
~Inst_VOPC__V_CMP_F_F32();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 2; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //src_0
return 4;
case 1: //src_1
return 4;
case 2: //vcc
return 8;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_VOPC__V_CMP_F_F32
class Inst_VOPC__V_CMP_LT_F32 : public Inst_VOPC
{
public:
Inst_VOPC__V_CMP_LT_F32(InFmt_VOPC*);
~Inst_VOPC__V_CMP_LT_F32();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 2; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //src_0
return 4;
case 1: //src_1
return 4;
case 2: //vcc
return 8;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_VOPC__V_CMP_LT_F32
class Inst_VOPC__V_CMP_EQ_F32 : public Inst_VOPC
{
public:
Inst_VOPC__V_CMP_EQ_F32(InFmt_VOPC*);
~Inst_VOPC__V_CMP_EQ_F32();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 2; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //src_0
return 4;
case 1: //src_1
return 4;
case 2: //vcc
return 8;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_VOPC__V_CMP_EQ_F32
class Inst_VOPC__V_CMP_LE_F32 : public Inst_VOPC
{
public:
Inst_VOPC__V_CMP_LE_F32(InFmt_VOPC*);
~Inst_VOPC__V_CMP_LE_F32();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 2; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //src_0
return 4;
case 1: //src_1
return 4;
case 2: //vcc
return 8;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_VOPC__V_CMP_LE_F32
class Inst_VOPC__V_CMP_GT_F32 : public Inst_VOPC
{
public:
Inst_VOPC__V_CMP_GT_F32(InFmt_VOPC*);
~Inst_VOPC__V_CMP_GT_F32();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 2; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //src_0
return 4;
case 1: //src_1
return 4;
case 2: //vcc
return 8;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_VOPC__V_CMP_GT_F32
class Inst_VOPC__V_CMP_LG_F32 : public Inst_VOPC
{
public:
Inst_VOPC__V_CMP_LG_F32(InFmt_VOPC*);
~Inst_VOPC__V_CMP_LG_F32();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 2; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //src_0
return 4;
case 1: //src_1
return 4;
case 2: //vcc
return 8;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_VOPC__V_CMP_LG_F32
class Inst_VOPC__V_CMP_GE_F32 : public Inst_VOPC
{
public:
Inst_VOPC__V_CMP_GE_F32(InFmt_VOPC*);
~Inst_VOPC__V_CMP_GE_F32();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 2; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //src_0
return 4;
case 1: //src_1
return 4;
case 2: //vcc
return 8;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_VOPC__V_CMP_GE_F32
class Inst_VOPC__V_CMP_O_F32 : public Inst_VOPC
{
public:
Inst_VOPC__V_CMP_O_F32(InFmt_VOPC*);
~Inst_VOPC__V_CMP_O_F32();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 2; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //src_0
return 4;
case 1: //src_1
return 4;
case 2: //vcc
return 8;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_VOPC__V_CMP_O_F32
class Inst_VOPC__V_CMP_U_F32 : public Inst_VOPC
{
public:
Inst_VOPC__V_CMP_U_F32(InFmt_VOPC*);
~Inst_VOPC__V_CMP_U_F32();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 2; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //src_0
return 4;
case 1: //src_1
return 4;
case 2: //vcc
return 8;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_VOPC__V_CMP_U_F32
class Inst_VOPC__V_CMP_NGE_F32 : public Inst_VOPC
{
public:
Inst_VOPC__V_CMP_NGE_F32(InFmt_VOPC*);
~Inst_VOPC__V_CMP_NGE_F32();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 2; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //src_0
return 4;
case 1: //src_1
return 4;
case 2: //vcc
return 8;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_VOPC__V_CMP_NGE_F32
class Inst_VOPC__V_CMP_NLG_F32 : public Inst_VOPC
{
public:
Inst_VOPC__V_CMP_NLG_F32(InFmt_VOPC*);
~Inst_VOPC__V_CMP_NLG_F32();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 2; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //src_0
return 4;
case 1: //src_1
return 4;
case 2: //vcc
return 8;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_VOPC__V_CMP_NLG_F32
class Inst_VOPC__V_CMP_NGT_F32 : public Inst_VOPC
{
public:
Inst_VOPC__V_CMP_NGT_F32(InFmt_VOPC*);
~Inst_VOPC__V_CMP_NGT_F32();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 2; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //src_0
return 4;
case 1: //src_1
return 4;
case 2: //vcc
return 8;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_VOPC__V_CMP_NGT_F32
class Inst_VOPC__V_CMP_NLE_F32 : public Inst_VOPC
{
public:
Inst_VOPC__V_CMP_NLE_F32(InFmt_VOPC*);
~Inst_VOPC__V_CMP_NLE_F32();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 2; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //src_0
return 4;
case 1: //src_1
return 4;
case 2: //vcc
return 8;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_VOPC__V_CMP_NLE_F32
class Inst_VOPC__V_CMP_NEQ_F32 : public Inst_VOPC
{
public:
Inst_VOPC__V_CMP_NEQ_F32(InFmt_VOPC*);
~Inst_VOPC__V_CMP_NEQ_F32();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 2; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //src_0
return 4;
case 1: //src_1
return 4;
case 2: //vcc
return 8;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_VOPC__V_CMP_NEQ_F32
class Inst_VOPC__V_CMP_NLT_F32 : public Inst_VOPC
{
public:
Inst_VOPC__V_CMP_NLT_F32(InFmt_VOPC*);
~Inst_VOPC__V_CMP_NLT_F32();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 2; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //src_0
return 4;
case 1: //src_1
return 4;
case 2: //vcc
return 8;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_VOPC__V_CMP_NLT_F32
class Inst_VOPC__V_CMP_TRU_F32 : public Inst_VOPC
{
public:
Inst_VOPC__V_CMP_TRU_F32(InFmt_VOPC*);
~Inst_VOPC__V_CMP_TRU_F32();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 2; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //src_0
return 4;
case 1: //src_1
return 4;
case 2: //vcc
return 8;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_VOPC__V_CMP_TRU_F32
class Inst_VOPC__V_CMPX_F_F32 : public Inst_VOPC
{
public:
Inst_VOPC__V_CMPX_F_F32(InFmt_VOPC*);
~Inst_VOPC__V_CMPX_F_F32();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 2; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //src_0
return 4;
case 1: //src_1
return 4;
case 2: //vcc
return 8;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_VOPC__V_CMPX_F_F32
class Inst_VOPC__V_CMPX_LT_F32 : public Inst_VOPC
{
public:
Inst_VOPC__V_CMPX_LT_F32(InFmt_VOPC*);
~Inst_VOPC__V_CMPX_LT_F32();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 2; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //src_0
return 4;
case 1: //src_1
return 4;
case 2: //vcc
return 8;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_VOPC__V_CMPX_LT_F32
class Inst_VOPC__V_CMPX_EQ_F32 : public Inst_VOPC
{
public:
Inst_VOPC__V_CMPX_EQ_F32(InFmt_VOPC*);
~Inst_VOPC__V_CMPX_EQ_F32();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 2; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //src_0
return 4;
case 1: //src_1
return 4;
case 2: //vcc
return 8;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_VOPC__V_CMPX_EQ_F32
class Inst_VOPC__V_CMPX_LE_F32 : public Inst_VOPC
{
public:
Inst_VOPC__V_CMPX_LE_F32(InFmt_VOPC*);
~Inst_VOPC__V_CMPX_LE_F32();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 2; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //src_0
return 4;
case 1: //src_1
return 4;
case 2: //vcc
return 8;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_VOPC__V_CMPX_LE_F32
class Inst_VOPC__V_CMPX_GT_F32 : public Inst_VOPC
{
public:
Inst_VOPC__V_CMPX_GT_F32(InFmt_VOPC*);
~Inst_VOPC__V_CMPX_GT_F32();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 2; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //src_0
return 4;
case 1: //src_1
return 4;
case 2: //vcc
return 8;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_VOPC__V_CMPX_GT_F32
class Inst_VOPC__V_CMPX_LG_F32 : public Inst_VOPC
{
public:
Inst_VOPC__V_CMPX_LG_F32(InFmt_VOPC*);
~Inst_VOPC__V_CMPX_LG_F32();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 2; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //src_0
return 4;
case 1: //src_1
return 4;
case 2: //vcc
return 8;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_VOPC__V_CMPX_LG_F32
class Inst_VOPC__V_CMPX_GE_F32 : public Inst_VOPC
{
public:
Inst_VOPC__V_CMPX_GE_F32(InFmt_VOPC*);
~Inst_VOPC__V_CMPX_GE_F32();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 2; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //src_0
return 4;
case 1: //src_1
return 4;
case 2: //vcc
return 8;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_VOPC__V_CMPX_GE_F32
class Inst_VOPC__V_CMPX_O_F32 : public Inst_VOPC
{
public:
Inst_VOPC__V_CMPX_O_F32(InFmt_VOPC*);
~Inst_VOPC__V_CMPX_O_F32();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 2; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //src_0
return 4;
case 1: //src_1
return 4;
case 2: //vcc
return 8;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_VOPC__V_CMPX_O_F32
class Inst_VOPC__V_CMPX_U_F32 : public Inst_VOPC
{
public:
Inst_VOPC__V_CMPX_U_F32(InFmt_VOPC*);
~Inst_VOPC__V_CMPX_U_F32();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 2; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //src_0
return 4;
case 1: //src_1
return 4;
case 2: //vcc
return 8;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_VOPC__V_CMPX_U_F32
class Inst_VOPC__V_CMPX_NGE_F32 : public Inst_VOPC
{
public:
Inst_VOPC__V_CMPX_NGE_F32(InFmt_VOPC*);
~Inst_VOPC__V_CMPX_NGE_F32();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 2; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //src_0
return 4;
case 1: //src_1
return 4;
case 2: //vcc
return 8;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_VOPC__V_CMPX_NGE_F32
class Inst_VOPC__V_CMPX_NLG_F32 : public Inst_VOPC
{
public:
Inst_VOPC__V_CMPX_NLG_F32(InFmt_VOPC*);
~Inst_VOPC__V_CMPX_NLG_F32();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 2; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //src_0
return 4;
case 1: //src_1
return 4;
case 2: //vcc
return 8;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_VOPC__V_CMPX_NLG_F32
class Inst_VOPC__V_CMPX_NGT_F32 : public Inst_VOPC
{
public:
Inst_VOPC__V_CMPX_NGT_F32(InFmt_VOPC*);
~Inst_VOPC__V_CMPX_NGT_F32();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 2; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //src_0
return 4;
case 1: //src_1
return 4;
case 2: //vcc
return 8;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_VOPC__V_CMPX_NGT_F32
class Inst_VOPC__V_CMPX_NLE_F32 : public Inst_VOPC
{
public:
Inst_VOPC__V_CMPX_NLE_F32(InFmt_VOPC*);
~Inst_VOPC__V_CMPX_NLE_F32();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 2; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //src_0
return 4;
case 1: //src_1
return 4;
case 2: //vcc
return 8;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_VOPC__V_CMPX_NLE_F32
class Inst_VOPC__V_CMPX_NEQ_F32 : public Inst_VOPC
{
public:
Inst_VOPC__V_CMPX_NEQ_F32(InFmt_VOPC*);
~Inst_VOPC__V_CMPX_NEQ_F32();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 2; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //src_0
return 4;
case 1: //src_1
return 4;
case 2: //vcc
return 8;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_VOPC__V_CMPX_NEQ_F32
class Inst_VOPC__V_CMPX_NLT_F32 : public Inst_VOPC
{
public:
Inst_VOPC__V_CMPX_NLT_F32(InFmt_VOPC*);
~Inst_VOPC__V_CMPX_NLT_F32();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 2; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //src_0
return 4;
case 1: //src_1
return 4;
case 2: //vcc
return 8;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_VOPC__V_CMPX_NLT_F32
class Inst_VOPC__V_CMPX_TRU_F32 : public Inst_VOPC
{
public:
Inst_VOPC__V_CMPX_TRU_F32(InFmt_VOPC*);
~Inst_VOPC__V_CMPX_TRU_F32();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 2; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //src_0
return 4;
case 1: //src_1
return 4;
case 2: //vcc
return 8;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_VOPC__V_CMPX_TRU_F32
class Inst_VOPC__V_CMP_F_F64 : public Inst_VOPC
{
public:
Inst_VOPC__V_CMP_F_F64(InFmt_VOPC*);
~Inst_VOPC__V_CMP_F_F64();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 2; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //src_0
return 8;
case 1: //src_1
return 8;
case 2: //vcc
return 8;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_VOPC__V_CMP_F_F64
class Inst_VOPC__V_CMP_LT_F64 : public Inst_VOPC
{
public:
Inst_VOPC__V_CMP_LT_F64(InFmt_VOPC*);
~Inst_VOPC__V_CMP_LT_F64();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 2; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //src_0
return 8;
case 1: //src_1
return 8;
case 2: //vcc
return 8;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_VOPC__V_CMP_LT_F64
class Inst_VOPC__V_CMP_EQ_F64 : public Inst_VOPC
{
public:
Inst_VOPC__V_CMP_EQ_F64(InFmt_VOPC*);
~Inst_VOPC__V_CMP_EQ_F64();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 2; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //src_0
return 8;
case 1: //src_1
return 8;
case 2: //vcc
return 8;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_VOPC__V_CMP_EQ_F64
class Inst_VOPC__V_CMP_LE_F64 : public Inst_VOPC
{
public:
Inst_VOPC__V_CMP_LE_F64(InFmt_VOPC*);
~Inst_VOPC__V_CMP_LE_F64();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 2; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //src_0
return 8;
case 1: //src_1
return 8;
case 2: //vcc
return 8;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_VOPC__V_CMP_LE_F64
class Inst_VOPC__V_CMP_GT_F64 : public Inst_VOPC
{
public:
Inst_VOPC__V_CMP_GT_F64(InFmt_VOPC*);
~Inst_VOPC__V_CMP_GT_F64();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 2; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //src_0
return 8;
case 1: //src_1
return 8;
case 2: //vcc
return 8;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_VOPC__V_CMP_GT_F64
class Inst_VOPC__V_CMP_LG_F64 : public Inst_VOPC
{
public:
Inst_VOPC__V_CMP_LG_F64(InFmt_VOPC*);
~Inst_VOPC__V_CMP_LG_F64();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 2; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //src_0
return 8;
case 1: //src_1
return 8;
case 2: //vcc
return 8;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_VOPC__V_CMP_LG_F64
class Inst_VOPC__V_CMP_GE_F64 : public Inst_VOPC
{
public:
Inst_VOPC__V_CMP_GE_F64(InFmt_VOPC*);
~Inst_VOPC__V_CMP_GE_F64();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 2; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //src_0
return 8;
case 1: //src_1
return 8;
case 2: //vcc
return 8;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_VOPC__V_CMP_GE_F64
class Inst_VOPC__V_CMP_O_F64 : public Inst_VOPC
{
public:
Inst_VOPC__V_CMP_O_F64(InFmt_VOPC*);
~Inst_VOPC__V_CMP_O_F64();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 2; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //src_0
return 8;
case 1: //src_1
return 8;
case 2: //vcc
return 8;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_VOPC__V_CMP_O_F64
class Inst_VOPC__V_CMP_U_F64 : public Inst_VOPC
{
public:
Inst_VOPC__V_CMP_U_F64(InFmt_VOPC*);
~Inst_VOPC__V_CMP_U_F64();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 2; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //src_0
return 8;
case 1: //src_1
return 8;
case 2: //vcc
return 8;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_VOPC__V_CMP_U_F64
class Inst_VOPC__V_CMP_NGE_F64 : public Inst_VOPC
{
public:
Inst_VOPC__V_CMP_NGE_F64(InFmt_VOPC*);
~Inst_VOPC__V_CMP_NGE_F64();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 2; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //src_0
return 8;
case 1: //src_1
return 8;
case 2: //vcc
return 8;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_VOPC__V_CMP_NGE_F64
class Inst_VOPC__V_CMP_NLG_F64 : public Inst_VOPC
{
public:
Inst_VOPC__V_CMP_NLG_F64(InFmt_VOPC*);
~Inst_VOPC__V_CMP_NLG_F64();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 2; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //src_0
return 8;
case 1: //src_1
return 8;
case 2: //vcc
return 8;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_VOPC__V_CMP_NLG_F64
class Inst_VOPC__V_CMP_NGT_F64 : public Inst_VOPC
{
public:
Inst_VOPC__V_CMP_NGT_F64(InFmt_VOPC*);
~Inst_VOPC__V_CMP_NGT_F64();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 2; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //src_0
return 8;
case 1: //src_1
return 8;
case 2: //vcc
return 8;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_VOPC__V_CMP_NGT_F64
class Inst_VOPC__V_CMP_NLE_F64 : public Inst_VOPC
{
public:
Inst_VOPC__V_CMP_NLE_F64(InFmt_VOPC*);
~Inst_VOPC__V_CMP_NLE_F64();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 2; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //src_0
return 8;
case 1: //src_1
return 8;
case 2: //vcc
return 8;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_VOPC__V_CMP_NLE_F64
class Inst_VOPC__V_CMP_NEQ_F64 : public Inst_VOPC
{
public:
Inst_VOPC__V_CMP_NEQ_F64(InFmt_VOPC*);
~Inst_VOPC__V_CMP_NEQ_F64();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 2; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //src_0
return 8;
case 1: //src_1
return 8;
case 2: //vcc
return 8;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_VOPC__V_CMP_NEQ_F64
class Inst_VOPC__V_CMP_NLT_F64 : public Inst_VOPC
{
public:
Inst_VOPC__V_CMP_NLT_F64(InFmt_VOPC*);
~Inst_VOPC__V_CMP_NLT_F64();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 2; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //src_0
return 8;
case 1: //src_1
return 8;
case 2: //vcc
return 8;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_VOPC__V_CMP_NLT_F64
class Inst_VOPC__V_CMP_TRU_F64 : public Inst_VOPC
{
public:
Inst_VOPC__V_CMP_TRU_F64(InFmt_VOPC*);
~Inst_VOPC__V_CMP_TRU_F64();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 2; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //src_0
return 8;
case 1: //src_1
return 8;
case 2: //vcc
return 8;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_VOPC__V_CMP_TRU_F64
class Inst_VOPC__V_CMPX_F_F64 : public Inst_VOPC
{
public:
Inst_VOPC__V_CMPX_F_F64(InFmt_VOPC*);
~Inst_VOPC__V_CMPX_F_F64();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 2; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //src_0
return 8;
case 1: //src_1
return 8;
case 2: //vcc
return 8;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_VOPC__V_CMPX_F_F64
class Inst_VOPC__V_CMPX_LT_F64 : public Inst_VOPC
{
public:
Inst_VOPC__V_CMPX_LT_F64(InFmt_VOPC*);
~Inst_VOPC__V_CMPX_LT_F64();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 2; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //src_0
return 8;
case 1: //src_1
return 8;
case 2: //vcc
return 8;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_VOPC__V_CMPX_LT_F64
class Inst_VOPC__V_CMPX_EQ_F64 : public Inst_VOPC
{
public:
Inst_VOPC__V_CMPX_EQ_F64(InFmt_VOPC*);
~Inst_VOPC__V_CMPX_EQ_F64();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 2; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //src_0
return 8;
case 1: //src_1
return 8;
case 2: //vcc
return 8;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_VOPC__V_CMPX_EQ_F64
class Inst_VOPC__V_CMPX_LE_F64 : public Inst_VOPC
{
public:
Inst_VOPC__V_CMPX_LE_F64(InFmt_VOPC*);
~Inst_VOPC__V_CMPX_LE_F64();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 2; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //src_0
return 8;
case 1: //src_1
return 8;
case 2: //vcc
return 8;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_VOPC__V_CMPX_LE_F64
class Inst_VOPC__V_CMPX_GT_F64 : public Inst_VOPC
{
public:
Inst_VOPC__V_CMPX_GT_F64(InFmt_VOPC*);
~Inst_VOPC__V_CMPX_GT_F64();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 2; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //src_0
return 8;
case 1: //src_1
return 8;
case 2: //vcc
return 8;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_VOPC__V_CMPX_GT_F64
class Inst_VOPC__V_CMPX_LG_F64 : public Inst_VOPC
{
public:
Inst_VOPC__V_CMPX_LG_F64(InFmt_VOPC*);
~Inst_VOPC__V_CMPX_LG_F64();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 2; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //src_0
return 8;
case 1: //src_1
return 8;
case 2: //vcc
return 8;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_VOPC__V_CMPX_LG_F64
class Inst_VOPC__V_CMPX_GE_F64 : public Inst_VOPC
{
public:
Inst_VOPC__V_CMPX_GE_F64(InFmt_VOPC*);
~Inst_VOPC__V_CMPX_GE_F64();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 2; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //src_0
return 8;
case 1: //src_1
return 8;
case 2: //vcc
return 8;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_VOPC__V_CMPX_GE_F64
class Inst_VOPC__V_CMPX_O_F64 : public Inst_VOPC
{
public:
Inst_VOPC__V_CMPX_O_F64(InFmt_VOPC*);
~Inst_VOPC__V_CMPX_O_F64();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 2; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //src_0
return 8;
case 1: //src_1
return 8;
case 2: //vcc
return 8;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_VOPC__V_CMPX_O_F64
class Inst_VOPC__V_CMPX_U_F64 : public Inst_VOPC
{
public:
Inst_VOPC__V_CMPX_U_F64(InFmt_VOPC*);
~Inst_VOPC__V_CMPX_U_F64();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 2; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //src_0
return 8;
case 1: //src_1
return 8;
case 2: //vcc
return 8;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_VOPC__V_CMPX_U_F64
class Inst_VOPC__V_CMPX_NGE_F64 : public Inst_VOPC
{
public:
Inst_VOPC__V_CMPX_NGE_F64(InFmt_VOPC*);
~Inst_VOPC__V_CMPX_NGE_F64();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 2; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //src_0
return 8;
case 1: //src_1
return 8;
case 2: //vcc
return 8;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_VOPC__V_CMPX_NGE_F64
class Inst_VOPC__V_CMPX_NLG_F64 : public Inst_VOPC
{
public:
Inst_VOPC__V_CMPX_NLG_F64(InFmt_VOPC*);
~Inst_VOPC__V_CMPX_NLG_F64();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 2; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //src_0
return 8;
case 1: //src_1
return 8;
case 2: //vcc
return 8;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_VOPC__V_CMPX_NLG_F64
class Inst_VOPC__V_CMPX_NGT_F64 : public Inst_VOPC
{
public:
Inst_VOPC__V_CMPX_NGT_F64(InFmt_VOPC*);
~Inst_VOPC__V_CMPX_NGT_F64();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 2; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //src_0
return 8;
case 1: //src_1
return 8;
case 2: //vcc
return 8;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_VOPC__V_CMPX_NGT_F64
class Inst_VOPC__V_CMPX_NLE_F64 : public Inst_VOPC
{
public:
Inst_VOPC__V_CMPX_NLE_F64(InFmt_VOPC*);
~Inst_VOPC__V_CMPX_NLE_F64();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 2; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //src_0
return 8;
case 1: //src_1
return 8;
case 2: //vcc
return 8;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_VOPC__V_CMPX_NLE_F64
class Inst_VOPC__V_CMPX_NEQ_F64 : public Inst_VOPC
{
public:
Inst_VOPC__V_CMPX_NEQ_F64(InFmt_VOPC*);
~Inst_VOPC__V_CMPX_NEQ_F64();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 2; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //src_0
return 8;
case 1: //src_1
return 8;
case 2: //vcc
return 8;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_VOPC__V_CMPX_NEQ_F64
class Inst_VOPC__V_CMPX_NLT_F64 : public Inst_VOPC
{
public:
Inst_VOPC__V_CMPX_NLT_F64(InFmt_VOPC*);
~Inst_VOPC__V_CMPX_NLT_F64();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 2; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //src_0
return 8;
case 1: //src_1
return 8;
case 2: //vcc
return 8;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_VOPC__V_CMPX_NLT_F64
class Inst_VOPC__V_CMPX_TRU_F64 : public Inst_VOPC
{
public:
Inst_VOPC__V_CMPX_TRU_F64(InFmt_VOPC*);
~Inst_VOPC__V_CMPX_TRU_F64();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 2; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //src_0
return 8;
case 1: //src_1
return 8;
case 2: //vcc
return 8;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_VOPC__V_CMPX_TRU_F64
class Inst_VOPC__V_CMP_F_I16 : public Inst_VOPC
{
public:
Inst_VOPC__V_CMP_F_I16(InFmt_VOPC*);
~Inst_VOPC__V_CMP_F_I16();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 2; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //src_0
return 2;
case 1: //src_1
return 2;
case 2: //vcc
return 8;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_VOPC__V_CMP_F_I16
class Inst_VOPC__V_CMP_LT_I16 : public Inst_VOPC
{
public:
Inst_VOPC__V_CMP_LT_I16(InFmt_VOPC*);
~Inst_VOPC__V_CMP_LT_I16();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 2; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //src_0
return 2;
case 1: //src_1
return 2;
case 2: //vcc
return 8;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_VOPC__V_CMP_LT_I16
class Inst_VOPC__V_CMP_EQ_I16 : public Inst_VOPC
{
public:
Inst_VOPC__V_CMP_EQ_I16(InFmt_VOPC*);
~Inst_VOPC__V_CMP_EQ_I16();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 2; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //src_0
return 2;
case 1: //src_1
return 2;
case 2: //vcc
return 8;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_VOPC__V_CMP_EQ_I16
class Inst_VOPC__V_CMP_LE_I16 : public Inst_VOPC
{
public:
Inst_VOPC__V_CMP_LE_I16(InFmt_VOPC*);
~Inst_VOPC__V_CMP_LE_I16();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 2; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //src_0
return 2;
case 1: //src_1
return 2;
case 2: //vcc
return 8;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_VOPC__V_CMP_LE_I16
class Inst_VOPC__V_CMP_GT_I16 : public Inst_VOPC
{
public:
Inst_VOPC__V_CMP_GT_I16(InFmt_VOPC*);
~Inst_VOPC__V_CMP_GT_I16();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 2; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //src_0
return 2;
case 1: //src_1
return 2;
case 2: //vcc
return 8;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_VOPC__V_CMP_GT_I16
class Inst_VOPC__V_CMP_NE_I16 : public Inst_VOPC
{
public:
Inst_VOPC__V_CMP_NE_I16(InFmt_VOPC*);
~Inst_VOPC__V_CMP_NE_I16();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 2; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //src_0
return 2;
case 1: //src_1
return 2;
case 2: //vcc
return 8;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_VOPC__V_CMP_NE_I16
class Inst_VOPC__V_CMP_GE_I16 : public Inst_VOPC
{
public:
Inst_VOPC__V_CMP_GE_I16(InFmt_VOPC*);
~Inst_VOPC__V_CMP_GE_I16();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 2; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //src_0
return 2;
case 1: //src_1
return 2;
case 2: //vcc
return 8;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_VOPC__V_CMP_GE_I16
class Inst_VOPC__V_CMP_T_I16 : public Inst_VOPC
{
public:
Inst_VOPC__V_CMP_T_I16(InFmt_VOPC*);
~Inst_VOPC__V_CMP_T_I16();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 2; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //src_0
return 2;
case 1: //src_1
return 2;
case 2: //vcc
return 8;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_VOPC__V_CMP_T_I16
class Inst_VOPC__V_CMP_F_U16 : public Inst_VOPC
{
public:
Inst_VOPC__V_CMP_F_U16(InFmt_VOPC*);
~Inst_VOPC__V_CMP_F_U16();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 2; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //src_0
return 2;
case 1: //src_1
return 2;
case 2: //vcc
return 8;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_VOPC__V_CMP_F_U16
class Inst_VOPC__V_CMP_LT_U16 : public Inst_VOPC
{
public:
Inst_VOPC__V_CMP_LT_U16(InFmt_VOPC*);
~Inst_VOPC__V_CMP_LT_U16();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 2; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //src_0
return 2;
case 1: //src_1
return 2;
case 2: //vcc
return 8;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_VOPC__V_CMP_LT_U16
class Inst_VOPC__V_CMP_EQ_U16 : public Inst_VOPC
{
public:
Inst_VOPC__V_CMP_EQ_U16(InFmt_VOPC*);
~Inst_VOPC__V_CMP_EQ_U16();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 2; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //src_0
return 2;
case 1: //src_1
return 2;
case 2: //vcc
return 8;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_VOPC__V_CMP_EQ_U16
class Inst_VOPC__V_CMP_LE_U16 : public Inst_VOPC
{
public:
Inst_VOPC__V_CMP_LE_U16(InFmt_VOPC*);
~Inst_VOPC__V_CMP_LE_U16();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 2; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //src_0
return 2;
case 1: //src_1
return 2;
case 2: //vcc
return 8;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_VOPC__V_CMP_LE_U16
class Inst_VOPC__V_CMP_GT_U16 : public Inst_VOPC
{
public:
Inst_VOPC__V_CMP_GT_U16(InFmt_VOPC*);
~Inst_VOPC__V_CMP_GT_U16();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 2; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //src_0
return 2;
case 1: //src_1
return 2;
case 2: //vcc
return 8;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_VOPC__V_CMP_GT_U16
class Inst_VOPC__V_CMP_NE_U16 : public Inst_VOPC
{
public:
Inst_VOPC__V_CMP_NE_U16(InFmt_VOPC*);
~Inst_VOPC__V_CMP_NE_U16();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 2; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //src_0
return 2;
case 1: //src_1
return 2;
case 2: //vcc
return 8;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_VOPC__V_CMP_NE_U16
class Inst_VOPC__V_CMP_GE_U16 : public Inst_VOPC
{
public:
Inst_VOPC__V_CMP_GE_U16(InFmt_VOPC*);
~Inst_VOPC__V_CMP_GE_U16();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 2; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //src_0
return 2;
case 1: //src_1
return 2;
case 2: //vcc
return 8;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_VOPC__V_CMP_GE_U16
class Inst_VOPC__V_CMP_T_U16 : public Inst_VOPC
{
public:
Inst_VOPC__V_CMP_T_U16(InFmt_VOPC*);
~Inst_VOPC__V_CMP_T_U16();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 2; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //src_0
return 2;
case 1: //src_1
return 2;
case 2: //vcc
return 8;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_VOPC__V_CMP_T_U16
class Inst_VOPC__V_CMPX_F_I16 : public Inst_VOPC
{
public:
Inst_VOPC__V_CMPX_F_I16(InFmt_VOPC*);
~Inst_VOPC__V_CMPX_F_I16();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 2; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //src_0
return 2;
case 1: //src_1
return 2;
case 2: //vcc
return 8;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_VOPC__V_CMPX_F_I16
class Inst_VOPC__V_CMPX_LT_I16 : public Inst_VOPC
{
public:
Inst_VOPC__V_CMPX_LT_I16(InFmt_VOPC*);
~Inst_VOPC__V_CMPX_LT_I16();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 2; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //src_0
return 2;
case 1: //src_1
return 2;
case 2: //vcc
return 8;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_VOPC__V_CMPX_LT_I16
class Inst_VOPC__V_CMPX_EQ_I16 : public Inst_VOPC
{
public:
Inst_VOPC__V_CMPX_EQ_I16(InFmt_VOPC*);
~Inst_VOPC__V_CMPX_EQ_I16();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 2; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //src_0
return 2;
case 1: //src_1
return 2;
case 2: //vcc
return 8;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_VOPC__V_CMPX_EQ_I16
class Inst_VOPC__V_CMPX_LE_I16 : public Inst_VOPC
{
public:
Inst_VOPC__V_CMPX_LE_I16(InFmt_VOPC*);
~Inst_VOPC__V_CMPX_LE_I16();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 2; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //src_0
return 2;
case 1: //src_1
return 2;
case 2: //vcc
return 8;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_VOPC__V_CMPX_LE_I16
class Inst_VOPC__V_CMPX_GT_I16 : public Inst_VOPC
{
public:
Inst_VOPC__V_CMPX_GT_I16(InFmt_VOPC*);
~Inst_VOPC__V_CMPX_GT_I16();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 2; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //src_0
return 2;
case 1: //src_1
return 2;
case 2: //vcc
return 8;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_VOPC__V_CMPX_GT_I16
class Inst_VOPC__V_CMPX_NE_I16 : public Inst_VOPC
{
public:
Inst_VOPC__V_CMPX_NE_I16(InFmt_VOPC*);
~Inst_VOPC__V_CMPX_NE_I16();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 2; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //src_0
return 2;
case 1: //src_1
return 2;
case 2: //vcc
return 8;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_VOPC__V_CMPX_NE_I16
class Inst_VOPC__V_CMPX_GE_I16 : public Inst_VOPC
{
public:
Inst_VOPC__V_CMPX_GE_I16(InFmt_VOPC*);
~Inst_VOPC__V_CMPX_GE_I16();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 2; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //src_0
return 2;
case 1: //src_1
return 2;
case 2: //vcc
return 8;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_VOPC__V_CMPX_GE_I16
class Inst_VOPC__V_CMPX_T_I16 : public Inst_VOPC
{
public:
Inst_VOPC__V_CMPX_T_I16(InFmt_VOPC*);
~Inst_VOPC__V_CMPX_T_I16();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 2; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //src_0
return 2;
case 1: //src_1
return 2;
case 2: //vcc
return 8;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_VOPC__V_CMPX_T_I16
class Inst_VOPC__V_CMPX_F_U16 : public Inst_VOPC
{
public:
Inst_VOPC__V_CMPX_F_U16(InFmt_VOPC*);
~Inst_VOPC__V_CMPX_F_U16();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 2; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //src_0
return 2;
case 1: //src_1
return 2;
case 2: //vcc
return 8;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_VOPC__V_CMPX_F_U16
class Inst_VOPC__V_CMPX_LT_U16 : public Inst_VOPC
{
public:
Inst_VOPC__V_CMPX_LT_U16(InFmt_VOPC*);
~Inst_VOPC__V_CMPX_LT_U16();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 2; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //src_0
return 2;
case 1: //src_1
return 2;
case 2: //vcc
return 8;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_VOPC__V_CMPX_LT_U16
class Inst_VOPC__V_CMPX_EQ_U16 : public Inst_VOPC
{
public:
Inst_VOPC__V_CMPX_EQ_U16(InFmt_VOPC*);
~Inst_VOPC__V_CMPX_EQ_U16();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 2; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //src_0
return 2;
case 1: //src_1
return 2;
case 2: //vcc
return 8;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_VOPC__V_CMPX_EQ_U16
class Inst_VOPC__V_CMPX_LE_U16 : public Inst_VOPC
{
public:
Inst_VOPC__V_CMPX_LE_U16(InFmt_VOPC*);
~Inst_VOPC__V_CMPX_LE_U16();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 2; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //src_0
return 2;
case 1: //src_1
return 2;
case 2: //vcc
return 8;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_VOPC__V_CMPX_LE_U16
class Inst_VOPC__V_CMPX_GT_U16 : public Inst_VOPC
{
public:
Inst_VOPC__V_CMPX_GT_U16(InFmt_VOPC*);
~Inst_VOPC__V_CMPX_GT_U16();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 2; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //src_0
return 2;
case 1: //src_1
return 2;
case 2: //vcc
return 8;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_VOPC__V_CMPX_GT_U16
class Inst_VOPC__V_CMPX_NE_U16 : public Inst_VOPC
{
public:
Inst_VOPC__V_CMPX_NE_U16(InFmt_VOPC*);
~Inst_VOPC__V_CMPX_NE_U16();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 2; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //src_0
return 2;
case 1: //src_1
return 2;
case 2: //vcc
return 8;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_VOPC__V_CMPX_NE_U16
class Inst_VOPC__V_CMPX_GE_U16 : public Inst_VOPC
{
public:
Inst_VOPC__V_CMPX_GE_U16(InFmt_VOPC*);
~Inst_VOPC__V_CMPX_GE_U16();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 2; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //src_0
return 2;
case 1: //src_1
return 2;
case 2: //vcc
return 8;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_VOPC__V_CMPX_GE_U16
class Inst_VOPC__V_CMPX_T_U16 : public Inst_VOPC
{
public:
Inst_VOPC__V_CMPX_T_U16(InFmt_VOPC*);
~Inst_VOPC__V_CMPX_T_U16();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 2; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //src_0
return 2;
case 1: //src_1
return 2;
case 2: //vcc
return 8;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_VOPC__V_CMPX_T_U16
class Inst_VOPC__V_CMP_F_I32 : public Inst_VOPC
{
public:
Inst_VOPC__V_CMP_F_I32(InFmt_VOPC*);
~Inst_VOPC__V_CMP_F_I32();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 2; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //src_0
return 4;
case 1: //src_1
return 4;
case 2: //vcc
return 8;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_VOPC__V_CMP_F_I32
class Inst_VOPC__V_CMP_LT_I32 : public Inst_VOPC
{
public:
Inst_VOPC__V_CMP_LT_I32(InFmt_VOPC*);
~Inst_VOPC__V_CMP_LT_I32();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 2; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //src_0
return 4;
case 1: //src_1
return 4;
case 2: //vcc
return 8;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_VOPC__V_CMP_LT_I32
class Inst_VOPC__V_CMP_EQ_I32 : public Inst_VOPC
{
public:
Inst_VOPC__V_CMP_EQ_I32(InFmt_VOPC*);
~Inst_VOPC__V_CMP_EQ_I32();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 2; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //src_0
return 4;
case 1: //src_1
return 4;
case 2: //vcc
return 8;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_VOPC__V_CMP_EQ_I32
class Inst_VOPC__V_CMP_LE_I32 : public Inst_VOPC
{
public:
Inst_VOPC__V_CMP_LE_I32(InFmt_VOPC*);
~Inst_VOPC__V_CMP_LE_I32();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 2; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //src_0
return 4;
case 1: //src_1
return 4;
case 2: //vcc
return 8;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_VOPC__V_CMP_LE_I32
class Inst_VOPC__V_CMP_GT_I32 : public Inst_VOPC
{
public:
Inst_VOPC__V_CMP_GT_I32(InFmt_VOPC*);
~Inst_VOPC__V_CMP_GT_I32();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 2; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //src_0
return 4;
case 1: //src_1
return 4;
case 2: //vcc
return 8;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_VOPC__V_CMP_GT_I32
class Inst_VOPC__V_CMP_NE_I32 : public Inst_VOPC
{
public:
Inst_VOPC__V_CMP_NE_I32(InFmt_VOPC*);
~Inst_VOPC__V_CMP_NE_I32();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 2; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //src_0
return 4;
case 1: //src_1
return 4;
case 2: //vcc
return 8;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_VOPC__V_CMP_NE_I32
class Inst_VOPC__V_CMP_GE_I32 : public Inst_VOPC
{
public:
Inst_VOPC__V_CMP_GE_I32(InFmt_VOPC*);
~Inst_VOPC__V_CMP_GE_I32();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 2; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //src_0
return 4;
case 1: //src_1
return 4;
case 2: //vcc
return 8;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_VOPC__V_CMP_GE_I32
class Inst_VOPC__V_CMP_T_I32 : public Inst_VOPC
{
public:
Inst_VOPC__V_CMP_T_I32(InFmt_VOPC*);
~Inst_VOPC__V_CMP_T_I32();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 2; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //src_0
return 4;
case 1: //src_1
return 4;
case 2: //vcc
return 8;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_VOPC__V_CMP_T_I32
class Inst_VOPC__V_CMP_F_U32 : public Inst_VOPC
{
public:
Inst_VOPC__V_CMP_F_U32(InFmt_VOPC*);
~Inst_VOPC__V_CMP_F_U32();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 2; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //src_0
return 4;
case 1: //src_1
return 4;
case 2: //vcc
return 8;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_VOPC__V_CMP_F_U32
class Inst_VOPC__V_CMP_LT_U32 : public Inst_VOPC
{
public:
Inst_VOPC__V_CMP_LT_U32(InFmt_VOPC*);
~Inst_VOPC__V_CMP_LT_U32();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 2; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //src_0
return 4;
case 1: //src_1
return 4;
case 2: //vcc
return 8;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_VOPC__V_CMP_LT_U32
class Inst_VOPC__V_CMP_EQ_U32 : public Inst_VOPC
{
public:
Inst_VOPC__V_CMP_EQ_U32(InFmt_VOPC*);
~Inst_VOPC__V_CMP_EQ_U32();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 2; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //src_0
return 4;
case 1: //src_1
return 4;
case 2: //vcc
return 8;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_VOPC__V_CMP_EQ_U32
class Inst_VOPC__V_CMP_LE_U32 : public Inst_VOPC
{
public:
Inst_VOPC__V_CMP_LE_U32(InFmt_VOPC*);
~Inst_VOPC__V_CMP_LE_U32();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 2; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //src_0
return 4;
case 1: //src_1
return 4;
case 2: //vcc
return 8;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_VOPC__V_CMP_LE_U32
class Inst_VOPC__V_CMP_GT_U32 : public Inst_VOPC
{
public:
Inst_VOPC__V_CMP_GT_U32(InFmt_VOPC*);
~Inst_VOPC__V_CMP_GT_U32();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 2; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //src_0
return 4;
case 1: //src_1
return 4;
case 2: //vcc
return 8;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_VOPC__V_CMP_GT_U32
class Inst_VOPC__V_CMP_NE_U32 : public Inst_VOPC
{
public:
Inst_VOPC__V_CMP_NE_U32(InFmt_VOPC*);
~Inst_VOPC__V_CMP_NE_U32();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 2; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //src_0
return 4;
case 1: //src_1
return 4;
case 2: //vcc
return 8;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_VOPC__V_CMP_NE_U32
class Inst_VOPC__V_CMP_GE_U32 : public Inst_VOPC
{
public:
Inst_VOPC__V_CMP_GE_U32(InFmt_VOPC*);
~Inst_VOPC__V_CMP_GE_U32();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 2; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //src_0
return 4;
case 1: //src_1
return 4;
case 2: //vcc
return 8;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_VOPC__V_CMP_GE_U32
class Inst_VOPC__V_CMP_T_U32 : public Inst_VOPC
{
public:
Inst_VOPC__V_CMP_T_U32(InFmt_VOPC*);
~Inst_VOPC__V_CMP_T_U32();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 2; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //src_0
return 4;
case 1: //src_1
return 4;
case 2: //vcc
return 8;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_VOPC__V_CMP_T_U32
class Inst_VOPC__V_CMPX_F_I32 : public Inst_VOPC
{
public:
Inst_VOPC__V_CMPX_F_I32(InFmt_VOPC*);
~Inst_VOPC__V_CMPX_F_I32();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 2; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //src_0
return 4;
case 1: //src_1
return 4;
case 2: //vcc
return 8;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_VOPC__V_CMPX_F_I32
class Inst_VOPC__V_CMPX_LT_I32 : public Inst_VOPC
{
public:
Inst_VOPC__V_CMPX_LT_I32(InFmt_VOPC*);
~Inst_VOPC__V_CMPX_LT_I32();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 2; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //src_0
return 4;
case 1: //src_1
return 4;
case 2: //vcc
return 8;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_VOPC__V_CMPX_LT_I32
class Inst_VOPC__V_CMPX_EQ_I32 : public Inst_VOPC
{
public:
Inst_VOPC__V_CMPX_EQ_I32(InFmt_VOPC*);
~Inst_VOPC__V_CMPX_EQ_I32();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 2; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //src_0
return 4;
case 1: //src_1
return 4;
case 2: //vcc
return 8;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_VOPC__V_CMPX_EQ_I32
class Inst_VOPC__V_CMPX_LE_I32 : public Inst_VOPC
{
public:
Inst_VOPC__V_CMPX_LE_I32(InFmt_VOPC*);
~Inst_VOPC__V_CMPX_LE_I32();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 2; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //src_0
return 4;
case 1: //src_1
return 4;
case 2: //vcc
return 8;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_VOPC__V_CMPX_LE_I32
class Inst_VOPC__V_CMPX_GT_I32 : public Inst_VOPC
{
public:
Inst_VOPC__V_CMPX_GT_I32(InFmt_VOPC*);
~Inst_VOPC__V_CMPX_GT_I32();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 2; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //src_0
return 4;
case 1: //src_1
return 4;
case 2: //vcc
return 8;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_VOPC__V_CMPX_GT_I32
class Inst_VOPC__V_CMPX_NE_I32 : public Inst_VOPC
{
public:
Inst_VOPC__V_CMPX_NE_I32(InFmt_VOPC*);
~Inst_VOPC__V_CMPX_NE_I32();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 2; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //src_0
return 4;
case 1: //src_1
return 4;
case 2: //vcc
return 8;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_VOPC__V_CMPX_NE_I32
class Inst_VOPC__V_CMPX_GE_I32 : public Inst_VOPC
{
public:
Inst_VOPC__V_CMPX_GE_I32(InFmt_VOPC*);
~Inst_VOPC__V_CMPX_GE_I32();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 2; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //src_0
return 4;
case 1: //src_1
return 4;
case 2: //vcc
return 8;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_VOPC__V_CMPX_GE_I32
class Inst_VOPC__V_CMPX_T_I32 : public Inst_VOPC
{
public:
Inst_VOPC__V_CMPX_T_I32(InFmt_VOPC*);
~Inst_VOPC__V_CMPX_T_I32();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 2; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //src_0
return 4;
case 1: //src_1
return 4;
case 2: //vcc
return 8;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_VOPC__V_CMPX_T_I32
class Inst_VOPC__V_CMPX_F_U32 : public Inst_VOPC
{
public:
Inst_VOPC__V_CMPX_F_U32(InFmt_VOPC*);
~Inst_VOPC__V_CMPX_F_U32();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 2; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //src_0
return 4;
case 1: //src_1
return 4;
case 2: //vcc
return 8;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_VOPC__V_CMPX_F_U32
class Inst_VOPC__V_CMPX_LT_U32 : public Inst_VOPC
{
public:
Inst_VOPC__V_CMPX_LT_U32(InFmt_VOPC*);
~Inst_VOPC__V_CMPX_LT_U32();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 2; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //src_0
return 4;
case 1: //src_1
return 4;
case 2: //vcc
return 8;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_VOPC__V_CMPX_LT_U32
class Inst_VOPC__V_CMPX_EQ_U32 : public Inst_VOPC
{
public:
Inst_VOPC__V_CMPX_EQ_U32(InFmt_VOPC*);
~Inst_VOPC__V_CMPX_EQ_U32();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 2; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //src_0
return 4;
case 1: //src_1
return 4;
case 2: //vcc
return 8;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_VOPC__V_CMPX_EQ_U32
class Inst_VOPC__V_CMPX_LE_U32 : public Inst_VOPC
{
public:
Inst_VOPC__V_CMPX_LE_U32(InFmt_VOPC*);
~Inst_VOPC__V_CMPX_LE_U32();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 2; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //src_0
return 4;
case 1: //src_1
return 4;
case 2: //vcc
return 8;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_VOPC__V_CMPX_LE_U32
class Inst_VOPC__V_CMPX_GT_U32 : public Inst_VOPC
{
public:
Inst_VOPC__V_CMPX_GT_U32(InFmt_VOPC*);
~Inst_VOPC__V_CMPX_GT_U32();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 2; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //src_0
return 4;
case 1: //src_1
return 4;
case 2: //vcc
return 8;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_VOPC__V_CMPX_GT_U32
class Inst_VOPC__V_CMPX_NE_U32 : public Inst_VOPC
{
public:
Inst_VOPC__V_CMPX_NE_U32(InFmt_VOPC*);
~Inst_VOPC__V_CMPX_NE_U32();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 2; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //src_0
return 4;
case 1: //src_1
return 4;
case 2: //vcc
return 8;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_VOPC__V_CMPX_NE_U32
class Inst_VOPC__V_CMPX_GE_U32 : public Inst_VOPC
{
public:
Inst_VOPC__V_CMPX_GE_U32(InFmt_VOPC*);
~Inst_VOPC__V_CMPX_GE_U32();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 2; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //src_0
return 4;
case 1: //src_1
return 4;
case 2: //vcc
return 8;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_VOPC__V_CMPX_GE_U32
class Inst_VOPC__V_CMPX_T_U32 : public Inst_VOPC
{
public:
Inst_VOPC__V_CMPX_T_U32(InFmt_VOPC*);
~Inst_VOPC__V_CMPX_T_U32();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 2; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //src_0
return 4;
case 1: //src_1
return 4;
case 2: //vcc
return 8;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_VOPC__V_CMPX_T_U32
class Inst_VOPC__V_CMP_F_I64 : public Inst_VOPC
{
public:
Inst_VOPC__V_CMP_F_I64(InFmt_VOPC*);
~Inst_VOPC__V_CMP_F_I64();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 2; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //src_0
return 8;
case 1: //src_1
return 8;
case 2: //vcc
return 8;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_VOPC__V_CMP_F_I64
class Inst_VOPC__V_CMP_LT_I64 : public Inst_VOPC
{
public:
Inst_VOPC__V_CMP_LT_I64(InFmt_VOPC*);
~Inst_VOPC__V_CMP_LT_I64();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 2; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //src_0
return 8;
case 1: //src_1
return 8;
case 2: //vcc
return 8;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_VOPC__V_CMP_LT_I64
class Inst_VOPC__V_CMP_EQ_I64 : public Inst_VOPC
{
public:
Inst_VOPC__V_CMP_EQ_I64(InFmt_VOPC*);
~Inst_VOPC__V_CMP_EQ_I64();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 2; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //src_0
return 8;
case 1: //src_1
return 8;
case 2: //vcc
return 8;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_VOPC__V_CMP_EQ_I64
class Inst_VOPC__V_CMP_LE_I64 : public Inst_VOPC
{
public:
Inst_VOPC__V_CMP_LE_I64(InFmt_VOPC*);
~Inst_VOPC__V_CMP_LE_I64();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 2; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //src_0
return 8;
case 1: //src_1
return 8;
case 2: //vcc
return 8;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_VOPC__V_CMP_LE_I64
class Inst_VOPC__V_CMP_GT_I64 : public Inst_VOPC
{
public:
Inst_VOPC__V_CMP_GT_I64(InFmt_VOPC*);
~Inst_VOPC__V_CMP_GT_I64();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 2; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //src_0
return 8;
case 1: //src_1
return 8;
case 2: //vcc
return 8;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_VOPC__V_CMP_GT_I64
class Inst_VOPC__V_CMP_NE_I64 : public Inst_VOPC
{
public:
Inst_VOPC__V_CMP_NE_I64(InFmt_VOPC*);
~Inst_VOPC__V_CMP_NE_I64();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 2; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //src_0
return 8;
case 1: //src_1
return 8;
case 2: //vcc
return 8;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_VOPC__V_CMP_NE_I64
class Inst_VOPC__V_CMP_GE_I64 : public Inst_VOPC
{
public:
Inst_VOPC__V_CMP_GE_I64(InFmt_VOPC*);
~Inst_VOPC__V_CMP_GE_I64();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 2; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //src_0
return 8;
case 1: //src_1
return 8;
case 2: //vcc
return 8;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_VOPC__V_CMP_GE_I64
class Inst_VOPC__V_CMP_T_I64 : public Inst_VOPC
{
public:
Inst_VOPC__V_CMP_T_I64(InFmt_VOPC*);
~Inst_VOPC__V_CMP_T_I64();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 2; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //src_0
return 8;
case 1: //src_1
return 8;
case 2: //vcc
return 8;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_VOPC__V_CMP_T_I64
class Inst_VOPC__V_CMP_F_U64 : public Inst_VOPC
{
public:
Inst_VOPC__V_CMP_F_U64(InFmt_VOPC*);
~Inst_VOPC__V_CMP_F_U64();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 2; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //src_0
return 8;
case 1: //src_1
return 8;
case 2: //vcc
return 8;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_VOPC__V_CMP_F_U64
class Inst_VOPC__V_CMP_LT_U64 : public Inst_VOPC
{
public:
Inst_VOPC__V_CMP_LT_U64(InFmt_VOPC*);
~Inst_VOPC__V_CMP_LT_U64();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 2; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //src_0
return 8;
case 1: //src_1
return 8;
case 2: //vcc
return 8;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_VOPC__V_CMP_LT_U64
class Inst_VOPC__V_CMP_EQ_U64 : public Inst_VOPC
{
public:
Inst_VOPC__V_CMP_EQ_U64(InFmt_VOPC*);
~Inst_VOPC__V_CMP_EQ_U64();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 2; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //src_0
return 8;
case 1: //src_1
return 8;
case 2: //vcc
return 8;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_VOPC__V_CMP_EQ_U64
class Inst_VOPC__V_CMP_LE_U64 : public Inst_VOPC
{
public:
Inst_VOPC__V_CMP_LE_U64(InFmt_VOPC*);
~Inst_VOPC__V_CMP_LE_U64();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 2; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //src_0
return 8;
case 1: //src_1
return 8;
case 2: //vcc
return 8;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_VOPC__V_CMP_LE_U64
class Inst_VOPC__V_CMP_GT_U64 : public Inst_VOPC
{
public:
Inst_VOPC__V_CMP_GT_U64(InFmt_VOPC*);
~Inst_VOPC__V_CMP_GT_U64();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 2; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //src_0
return 8;
case 1: //src_1
return 8;
case 2: //vcc
return 8;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_VOPC__V_CMP_GT_U64
class Inst_VOPC__V_CMP_NE_U64 : public Inst_VOPC
{
public:
Inst_VOPC__V_CMP_NE_U64(InFmt_VOPC*);
~Inst_VOPC__V_CMP_NE_U64();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 2; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //src_0
return 8;
case 1: //src_1
return 8;
case 2: //vcc
return 8;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_VOPC__V_CMP_NE_U64
class Inst_VOPC__V_CMP_GE_U64 : public Inst_VOPC
{
public:
Inst_VOPC__V_CMP_GE_U64(InFmt_VOPC*);
~Inst_VOPC__V_CMP_GE_U64();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 2; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //src_0
return 8;
case 1: //src_1
return 8;
case 2: //vcc
return 8;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_VOPC__V_CMP_GE_U64
class Inst_VOPC__V_CMP_T_U64 : public Inst_VOPC
{
public:
Inst_VOPC__V_CMP_T_U64(InFmt_VOPC*);
~Inst_VOPC__V_CMP_T_U64();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 2; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //src_0
return 8;
case 1: //src_1
return 8;
case 2: //vcc
return 8;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_VOPC__V_CMP_T_U64
class Inst_VOPC__V_CMPX_F_I64 : public Inst_VOPC
{
public:
Inst_VOPC__V_CMPX_F_I64(InFmt_VOPC*);
~Inst_VOPC__V_CMPX_F_I64();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 2; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //src_0
return 8;
case 1: //src_1
return 8;
case 2: //vcc
return 8;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_VOPC__V_CMPX_F_I64
class Inst_VOPC__V_CMPX_LT_I64 : public Inst_VOPC
{
public:
Inst_VOPC__V_CMPX_LT_I64(InFmt_VOPC*);
~Inst_VOPC__V_CMPX_LT_I64();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 2; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //src_0
return 8;
case 1: //src_1
return 8;
case 2: //vcc
return 8;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_VOPC__V_CMPX_LT_I64
class Inst_VOPC__V_CMPX_EQ_I64 : public Inst_VOPC
{
public:
Inst_VOPC__V_CMPX_EQ_I64(InFmt_VOPC*);
~Inst_VOPC__V_CMPX_EQ_I64();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 2; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //src_0
return 8;
case 1: //src_1
return 8;
case 2: //vcc
return 8;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_VOPC__V_CMPX_EQ_I64
class Inst_VOPC__V_CMPX_LE_I64 : public Inst_VOPC
{
public:
Inst_VOPC__V_CMPX_LE_I64(InFmt_VOPC*);
~Inst_VOPC__V_CMPX_LE_I64();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 2; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //src_0
return 8;
case 1: //src_1
return 8;
case 2: //vcc
return 8;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_VOPC__V_CMPX_LE_I64
class Inst_VOPC__V_CMPX_GT_I64 : public Inst_VOPC
{
public:
Inst_VOPC__V_CMPX_GT_I64(InFmt_VOPC*);
~Inst_VOPC__V_CMPX_GT_I64();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 2; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //src_0
return 8;
case 1: //src_1
return 8;
case 2: //vcc
return 8;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_VOPC__V_CMPX_GT_I64
class Inst_VOPC__V_CMPX_NE_I64 : public Inst_VOPC
{
public:
Inst_VOPC__V_CMPX_NE_I64(InFmt_VOPC*);
~Inst_VOPC__V_CMPX_NE_I64();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 2; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //src_0
return 8;
case 1: //src_1
return 8;
case 2: //vcc
return 8;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_VOPC__V_CMPX_NE_I64
class Inst_VOPC__V_CMPX_GE_I64 : public Inst_VOPC
{
public:
Inst_VOPC__V_CMPX_GE_I64(InFmt_VOPC*);
~Inst_VOPC__V_CMPX_GE_I64();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 2; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //src_0
return 8;
case 1: //src_1
return 8;
case 2: //vcc
return 8;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_VOPC__V_CMPX_GE_I64
class Inst_VOPC__V_CMPX_T_I64 : public Inst_VOPC
{
public:
Inst_VOPC__V_CMPX_T_I64(InFmt_VOPC*);
~Inst_VOPC__V_CMPX_T_I64();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 2; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //src_0
return 8;
case 1: //src_1
return 8;
case 2: //vcc
return 8;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_VOPC__V_CMPX_T_I64
class Inst_VOPC__V_CMPX_F_U64 : public Inst_VOPC
{
public:
Inst_VOPC__V_CMPX_F_U64(InFmt_VOPC*);
~Inst_VOPC__V_CMPX_F_U64();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 2; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //src_0
return 8;
case 1: //src_1
return 8;
case 2: //vcc
return 8;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_VOPC__V_CMPX_F_U64
class Inst_VOPC__V_CMPX_LT_U64 : public Inst_VOPC
{
public:
Inst_VOPC__V_CMPX_LT_U64(InFmt_VOPC*);
~Inst_VOPC__V_CMPX_LT_U64();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 2; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //src_0
return 8;
case 1: //src_1
return 8;
case 2: //vcc
return 8;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_VOPC__V_CMPX_LT_U64
class Inst_VOPC__V_CMPX_EQ_U64 : public Inst_VOPC
{
public:
Inst_VOPC__V_CMPX_EQ_U64(InFmt_VOPC*);
~Inst_VOPC__V_CMPX_EQ_U64();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 2; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //src_0
return 8;
case 1: //src_1
return 8;
case 2: //vcc
return 8;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_VOPC__V_CMPX_EQ_U64
class Inst_VOPC__V_CMPX_LE_U64 : public Inst_VOPC
{
public:
Inst_VOPC__V_CMPX_LE_U64(InFmt_VOPC*);
~Inst_VOPC__V_CMPX_LE_U64();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 2; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //src_0
return 8;
case 1: //src_1
return 8;
case 2: //vcc
return 8;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_VOPC__V_CMPX_LE_U64
class Inst_VOPC__V_CMPX_GT_U64 : public Inst_VOPC
{
public:
Inst_VOPC__V_CMPX_GT_U64(InFmt_VOPC*);
~Inst_VOPC__V_CMPX_GT_U64();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 2; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //src_0
return 8;
case 1: //src_1
return 8;
case 2: //vcc
return 8;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_VOPC__V_CMPX_GT_U64
class Inst_VOPC__V_CMPX_NE_U64 : public Inst_VOPC
{
public:
Inst_VOPC__V_CMPX_NE_U64(InFmt_VOPC*);
~Inst_VOPC__V_CMPX_NE_U64();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 2; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //src_0
return 8;
case 1: //src_1
return 8;
case 2: //vcc
return 8;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_VOPC__V_CMPX_NE_U64
class Inst_VOPC__V_CMPX_GE_U64 : public Inst_VOPC
{
public:
Inst_VOPC__V_CMPX_GE_U64(InFmt_VOPC*);
~Inst_VOPC__V_CMPX_GE_U64();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 2; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //src_0
return 8;
case 1: //src_1
return 8;
case 2: //vcc
return 8;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_VOPC__V_CMPX_GE_U64
class Inst_VOPC__V_CMPX_T_U64 : public Inst_VOPC
{
public:
Inst_VOPC__V_CMPX_T_U64(InFmt_VOPC*);
~Inst_VOPC__V_CMPX_T_U64();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 2; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //src_0
return 8;
case 1: //src_1
return 8;
case 2: //vcc
return 8;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_VOPC__V_CMPX_T_U64
class Inst_VINTRP__V_INTERP_P1_F32 : public Inst_VINTRP
{
public:
Inst_VINTRP__V_INTERP_P1_F32(InFmt_VINTRP*);
~Inst_VINTRP__V_INTERP_P1_F32();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 2; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //vgpr_ij
return 4;
case 1: //attr
return 16;
case 2: //vgpr_dst
return 4;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_VINTRP__V_INTERP_P1_F32
class Inst_VINTRP__V_INTERP_P2_F32 : public Inst_VINTRP
{
public:
Inst_VINTRP__V_INTERP_P2_F32(InFmt_VINTRP*);
~Inst_VINTRP__V_INTERP_P2_F32();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 2; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //vgpr_ij
return 4;
case 1: //attr
return 16;
case 2: //vgpr_dst
return 4;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_VINTRP__V_INTERP_P2_F32
class Inst_VINTRP__V_INTERP_MOV_F32 : public Inst_VINTRP
{
public:
Inst_VINTRP__V_INTERP_MOV_F32(InFmt_VINTRP*);
~Inst_VINTRP__V_INTERP_MOV_F32();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 2; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //param
return 4;
case 1: //attr
return 16;
case 2: //vgpr_dst
return 4;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_VINTRP__V_INTERP_MOV_F32
class Inst_VOP3__V_CMP_CLASS_F32 : public Inst_VOP3A
{
public:
Inst_VOP3__V_CMP_CLASS_F32(InFmt_VOP3A*);
~Inst_VOP3__V_CMP_CLASS_F32();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 2; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //src_0
return 4;
case 1: //src_1
return 4;
case 2: //sdst
return 8;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_VOP3__V_CMP_CLASS_F32
class Inst_VOP3__V_CMPX_CLASS_F32 : public Inst_VOP3A
{
public:
Inst_VOP3__V_CMPX_CLASS_F32(InFmt_VOP3A*);
~Inst_VOP3__V_CMPX_CLASS_F32();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 2; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //src_0
return 4;
case 1: //src_1
return 4;
case 2: //sdst
return 8;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_VOP3__V_CMPX_CLASS_F32
class Inst_VOP3__V_CMP_CLASS_F64 : public Inst_VOP3A
{
public:
Inst_VOP3__V_CMP_CLASS_F64(InFmt_VOP3A*);
~Inst_VOP3__V_CMP_CLASS_F64();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 2; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //src_0
return 8;
case 1: //src_1
return 4;
case 2: //sdst
return 8;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_VOP3__V_CMP_CLASS_F64
class Inst_VOP3__V_CMPX_CLASS_F64 : public Inst_VOP3A
{
public:
Inst_VOP3__V_CMPX_CLASS_F64(InFmt_VOP3A*);
~Inst_VOP3__V_CMPX_CLASS_F64();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 2; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //src_0
return 8;
case 1: //src_1
return 4;
case 2: //sdst
return 8;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_VOP3__V_CMPX_CLASS_F64
class Inst_VOP3__V_CMP_CLASS_F16 : public Inst_VOP3A
{
public:
Inst_VOP3__V_CMP_CLASS_F16(InFmt_VOP3A*);
~Inst_VOP3__V_CMP_CLASS_F16();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 2; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //src_0
return 2;
case 1: //src_1
return 2;
case 2: //sdst
return 8;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_VOP3__V_CMP_CLASS_F16
class Inst_VOP3__V_CMPX_CLASS_F16 : public Inst_VOP3A
{
public:
Inst_VOP3__V_CMPX_CLASS_F16(InFmt_VOP3A*);
~Inst_VOP3__V_CMPX_CLASS_F16();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 2; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //src_0
return 2;
case 1: //src_1
return 2;
case 2: //sdst
return 8;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_VOP3__V_CMPX_CLASS_F16
class Inst_VOP3__V_CMP_F_F16 : public Inst_VOP3A
{
public:
Inst_VOP3__V_CMP_F_F16(InFmt_VOP3A*);
~Inst_VOP3__V_CMP_F_F16();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 2; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //src_0
return 2;
case 1: //src_1
return 2;
case 2: //sdst
return 8;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_VOP3__V_CMP_F_F16
class Inst_VOP3__V_CMP_LT_F16 : public Inst_VOP3A
{
public:
Inst_VOP3__V_CMP_LT_F16(InFmt_VOP3A*);
~Inst_VOP3__V_CMP_LT_F16();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 2; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //src_0
return 2;
case 1: //src_1
return 2;
case 2: //sdst
return 8;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_VOP3__V_CMP_LT_F16
class Inst_VOP3__V_CMP_EQ_F16 : public Inst_VOP3A
{
public:
Inst_VOP3__V_CMP_EQ_F16(InFmt_VOP3A*);
~Inst_VOP3__V_CMP_EQ_F16();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 2; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //src_0
return 2;
case 1: //src_1
return 2;
case 2: //sdst
return 8;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_VOP3__V_CMP_EQ_F16
class Inst_VOP3__V_CMP_LE_F16 : public Inst_VOP3A
{
public:
Inst_VOP3__V_CMP_LE_F16(InFmt_VOP3A*);
~Inst_VOP3__V_CMP_LE_F16();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 2; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //src_0
return 2;
case 1: //src_1
return 2;
case 2: //sdst
return 8;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_VOP3__V_CMP_LE_F16
class Inst_VOP3__V_CMP_GT_F16 : public Inst_VOP3A
{
public:
Inst_VOP3__V_CMP_GT_F16(InFmt_VOP3A*);
~Inst_VOP3__V_CMP_GT_F16();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 2; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //src_0
return 2;
case 1: //src_1
return 2;
case 2: //sdst
return 8;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_VOP3__V_CMP_GT_F16
class Inst_VOP3__V_CMP_LG_F16 : public Inst_VOP3A
{
public:
Inst_VOP3__V_CMP_LG_F16(InFmt_VOP3A*);
~Inst_VOP3__V_CMP_LG_F16();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 2; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //src_0
return 2;
case 1: //src_1
return 2;
case 2: //sdst
return 8;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_VOP3__V_CMP_LG_F16
class Inst_VOP3__V_CMP_GE_F16 : public Inst_VOP3A
{
public:
Inst_VOP3__V_CMP_GE_F16(InFmt_VOP3A*);
~Inst_VOP3__V_CMP_GE_F16();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 2; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //src_0
return 2;
case 1: //src_1
return 2;
case 2: //sdst
return 8;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_VOP3__V_CMP_GE_F16
class Inst_VOP3__V_CMP_O_F16 : public Inst_VOP3A
{
public:
Inst_VOP3__V_CMP_O_F16(InFmt_VOP3A*);
~Inst_VOP3__V_CMP_O_F16();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 2; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //src_0
return 2;
case 1: //src_1
return 2;
case 2: //sdst
return 8;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_VOP3__V_CMP_O_F16
class Inst_VOP3__V_CMP_U_F16 : public Inst_VOP3A
{
public:
Inst_VOP3__V_CMP_U_F16(InFmt_VOP3A*);
~Inst_VOP3__V_CMP_U_F16();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 2; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //src_0
return 2;
case 1: //src_1
return 2;
case 2: //sdst
return 8;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_VOP3__V_CMP_U_F16
class Inst_VOP3__V_CMP_NGE_F16 : public Inst_VOP3A
{
public:
Inst_VOP3__V_CMP_NGE_F16(InFmt_VOP3A*);
~Inst_VOP3__V_CMP_NGE_F16();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 2; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //src_0
return 2;
case 1: //src_1
return 2;
case 2: //sdst
return 8;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_VOP3__V_CMP_NGE_F16
class Inst_VOP3__V_CMP_NLG_F16 : public Inst_VOP3A
{
public:
Inst_VOP3__V_CMP_NLG_F16(InFmt_VOP3A*);
~Inst_VOP3__V_CMP_NLG_F16();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 2; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //src_0
return 2;
case 1: //src_1
return 2;
case 2: //sdst
return 8;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_VOP3__V_CMP_NLG_F16
class Inst_VOP3__V_CMP_NGT_F16 : public Inst_VOP3A
{
public:
Inst_VOP3__V_CMP_NGT_F16(InFmt_VOP3A*);
~Inst_VOP3__V_CMP_NGT_F16();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 2; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //src_0
return 2;
case 1: //src_1
return 2;
case 2: //sdst
return 8;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_VOP3__V_CMP_NGT_F16
class Inst_VOP3__V_CMP_NLE_F16 : public Inst_VOP3A
{
public:
Inst_VOP3__V_CMP_NLE_F16(InFmt_VOP3A*);
~Inst_VOP3__V_CMP_NLE_F16();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 2; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //src_0
return 2;
case 1: //src_1
return 2;
case 2: //sdst
return 8;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_VOP3__V_CMP_NLE_F16
class Inst_VOP3__V_CMP_NEQ_F16 : public Inst_VOP3A
{
public:
Inst_VOP3__V_CMP_NEQ_F16(InFmt_VOP3A*);
~Inst_VOP3__V_CMP_NEQ_F16();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 2; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //src_0
return 2;
case 1: //src_1
return 2;
case 2: //sdst
return 8;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_VOP3__V_CMP_NEQ_F16
class Inst_VOP3__V_CMP_NLT_F16 : public Inst_VOP3A
{
public:
Inst_VOP3__V_CMP_NLT_F16(InFmt_VOP3A*);
~Inst_VOP3__V_CMP_NLT_F16();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 2; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //src_0
return 2;
case 1: //src_1
return 2;
case 2: //sdst
return 8;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_VOP3__V_CMP_NLT_F16
class Inst_VOP3__V_CMP_TRU_F16 : public Inst_VOP3A
{
public:
Inst_VOP3__V_CMP_TRU_F16(InFmt_VOP3A*);
~Inst_VOP3__V_CMP_TRU_F16();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 2; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //src_0
return 2;
case 1: //src_1
return 2;
case 2: //sdst
return 8;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_VOP3__V_CMP_TRU_F16
class Inst_VOP3__V_CMPX_F_F16 : public Inst_VOP3A
{
public:
Inst_VOP3__V_CMPX_F_F16(InFmt_VOP3A*);
~Inst_VOP3__V_CMPX_F_F16();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 2; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //src_0
return 2;
case 1: //src_1
return 2;
case 2: //sdst
return 8;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_VOP3__V_CMPX_F_F16
class Inst_VOP3__V_CMPX_LT_F16 : public Inst_VOP3A
{
public:
Inst_VOP3__V_CMPX_LT_F16(InFmt_VOP3A*);
~Inst_VOP3__V_CMPX_LT_F16();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 2; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //src_0
return 2;
case 1: //src_1
return 2;
case 2: //sdst
return 8;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_VOP3__V_CMPX_LT_F16
class Inst_VOP3__V_CMPX_EQ_F16 : public Inst_VOP3A
{
public:
Inst_VOP3__V_CMPX_EQ_F16(InFmt_VOP3A*);
~Inst_VOP3__V_CMPX_EQ_F16();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 2; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //src_0
return 2;
case 1: //src_1
return 2;
case 2: //sdst
return 8;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_VOP3__V_CMPX_EQ_F16
class Inst_VOP3__V_CMPX_LE_F16 : public Inst_VOP3A
{
public:
Inst_VOP3__V_CMPX_LE_F16(InFmt_VOP3A*);
~Inst_VOP3__V_CMPX_LE_F16();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 2; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //src_0
return 2;
case 1: //src_1
return 2;
case 2: //sdst
return 8;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_VOP3__V_CMPX_LE_F16
class Inst_VOP3__V_CMPX_GT_F16 : public Inst_VOP3A
{
public:
Inst_VOP3__V_CMPX_GT_F16(InFmt_VOP3A*);
~Inst_VOP3__V_CMPX_GT_F16();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 2; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //src_0
return 2;
case 1: //src_1
return 2;
case 2: //sdst
return 8;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_VOP3__V_CMPX_GT_F16
class Inst_VOP3__V_CMPX_LG_F16 : public Inst_VOP3A
{
public:
Inst_VOP3__V_CMPX_LG_F16(InFmt_VOP3A*);
~Inst_VOP3__V_CMPX_LG_F16();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 2; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //src_0
return 2;
case 1: //src_1
return 2;
case 2: //sdst
return 8;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_VOP3__V_CMPX_LG_F16
class Inst_VOP3__V_CMPX_GE_F16 : public Inst_VOP3A
{
public:
Inst_VOP3__V_CMPX_GE_F16(InFmt_VOP3A*);
~Inst_VOP3__V_CMPX_GE_F16();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 2; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //src_0
return 2;
case 1: //src_1
return 2;
case 2: //sdst
return 8;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_VOP3__V_CMPX_GE_F16
class Inst_VOP3__V_CMPX_O_F16 : public Inst_VOP3A
{
public:
Inst_VOP3__V_CMPX_O_F16(InFmt_VOP3A*);
~Inst_VOP3__V_CMPX_O_F16();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 2; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //src_0
return 2;
case 1: //src_1
return 2;
case 2: //sdst
return 8;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_VOP3__V_CMPX_O_F16
class Inst_VOP3__V_CMPX_U_F16 : public Inst_VOP3A
{
public:
Inst_VOP3__V_CMPX_U_F16(InFmt_VOP3A*);
~Inst_VOP3__V_CMPX_U_F16();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 2; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //src_0
return 2;
case 1: //src_1
return 2;
case 2: //sdst
return 8;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_VOP3__V_CMPX_U_F16
class Inst_VOP3__V_CMPX_NGE_F16 : public Inst_VOP3A
{
public:
Inst_VOP3__V_CMPX_NGE_F16(InFmt_VOP3A*);
~Inst_VOP3__V_CMPX_NGE_F16();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 2; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //src_0
return 2;
case 1: //src_1
return 2;
case 2: //sdst
return 8;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_VOP3__V_CMPX_NGE_F16
class Inst_VOP3__V_CMPX_NLG_F16 : public Inst_VOP3A
{
public:
Inst_VOP3__V_CMPX_NLG_F16(InFmt_VOP3A*);
~Inst_VOP3__V_CMPX_NLG_F16();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 2; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //src_0
return 2;
case 1: //src_1
return 2;
case 2: //sdst
return 8;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_VOP3__V_CMPX_NLG_F16
class Inst_VOP3__V_CMPX_NGT_F16 : public Inst_VOP3A
{
public:
Inst_VOP3__V_CMPX_NGT_F16(InFmt_VOP3A*);
~Inst_VOP3__V_CMPX_NGT_F16();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 2; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //src_0
return 2;
case 1: //src_1
return 2;
case 2: //sdst
return 8;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_VOP3__V_CMPX_NGT_F16
class Inst_VOP3__V_CMPX_NLE_F16 : public Inst_VOP3A
{
public:
Inst_VOP3__V_CMPX_NLE_F16(InFmt_VOP3A*);
~Inst_VOP3__V_CMPX_NLE_F16();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 2; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //src_0
return 2;
case 1: //src_1
return 2;
case 2: //sdst
return 8;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_VOP3__V_CMPX_NLE_F16
class Inst_VOP3__V_CMPX_NEQ_F16 : public Inst_VOP3A
{
public:
Inst_VOP3__V_CMPX_NEQ_F16(InFmt_VOP3A*);
~Inst_VOP3__V_CMPX_NEQ_F16();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 2; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //src_0
return 2;
case 1: //src_1
return 2;
case 2: //sdst
return 8;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_VOP3__V_CMPX_NEQ_F16
class Inst_VOP3__V_CMPX_NLT_F16 : public Inst_VOP3A
{
public:
Inst_VOP3__V_CMPX_NLT_F16(InFmt_VOP3A*);
~Inst_VOP3__V_CMPX_NLT_F16();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 2; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //src_0
return 2;
case 1: //src_1
return 2;
case 2: //sdst
return 8;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_VOP3__V_CMPX_NLT_F16
class Inst_VOP3__V_CMPX_TRU_F16 : public Inst_VOP3A
{
public:
Inst_VOP3__V_CMPX_TRU_F16(InFmt_VOP3A*);
~Inst_VOP3__V_CMPX_TRU_F16();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 2; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //src_0
return 2;
case 1: //src_1
return 2;
case 2: //sdst
return 8;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_VOP3__V_CMPX_TRU_F16
class Inst_VOP3__V_CMP_F_F32 : public Inst_VOP3A
{
public:
Inst_VOP3__V_CMP_F_F32(InFmt_VOP3A*);
~Inst_VOP3__V_CMP_F_F32();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 2; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //src_0
return 4;
case 1: //src_1
return 4;
case 2: //sdst
return 8;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_VOP3__V_CMP_F_F32
class Inst_VOP3__V_CMP_LT_F32 : public Inst_VOP3A
{
public:
Inst_VOP3__V_CMP_LT_F32(InFmt_VOP3A*);
~Inst_VOP3__V_CMP_LT_F32();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 2; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //src_0
return 4;
case 1: //src_1
return 4;
case 2: //sdst
return 8;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_VOP3__V_CMP_LT_F32
class Inst_VOP3__V_CMP_EQ_F32 : public Inst_VOP3A
{
public:
Inst_VOP3__V_CMP_EQ_F32(InFmt_VOP3A*);
~Inst_VOP3__V_CMP_EQ_F32();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 2; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //src_0
return 4;
case 1: //src_1
return 4;
case 2: //sdst
return 8;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_VOP3__V_CMP_EQ_F32
class Inst_VOP3__V_CMP_LE_F32 : public Inst_VOP3A
{
public:
Inst_VOP3__V_CMP_LE_F32(InFmt_VOP3A*);
~Inst_VOP3__V_CMP_LE_F32();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 2; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //src_0
return 4;
case 1: //src_1
return 4;
case 2: //sdst
return 8;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_VOP3__V_CMP_LE_F32
class Inst_VOP3__V_CMP_GT_F32 : public Inst_VOP3A
{
public:
Inst_VOP3__V_CMP_GT_F32(InFmt_VOP3A*);
~Inst_VOP3__V_CMP_GT_F32();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 2; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //src_0
return 4;
case 1: //src_1
return 4;
case 2: //sdst
return 8;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_VOP3__V_CMP_GT_F32
class Inst_VOP3__V_CMP_LG_F32 : public Inst_VOP3A
{
public:
Inst_VOP3__V_CMP_LG_F32(InFmt_VOP3A*);
~Inst_VOP3__V_CMP_LG_F32();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 2; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //src_0
return 4;
case 1: //src_1
return 4;
case 2: //sdst
return 8;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_VOP3__V_CMP_LG_F32
class Inst_VOP3__V_CMP_GE_F32 : public Inst_VOP3A
{
public:
Inst_VOP3__V_CMP_GE_F32(InFmt_VOP3A*);
~Inst_VOP3__V_CMP_GE_F32();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 2; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //src_0
return 4;
case 1: //src_1
return 4;
case 2: //sdst
return 8;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_VOP3__V_CMP_GE_F32
class Inst_VOP3__V_CMP_O_F32 : public Inst_VOP3A
{
public:
Inst_VOP3__V_CMP_O_F32(InFmt_VOP3A*);
~Inst_VOP3__V_CMP_O_F32();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 2; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //src_0
return 4;
case 1: //src_1
return 4;
case 2: //sdst
return 8;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_VOP3__V_CMP_O_F32
class Inst_VOP3__V_CMP_U_F32 : public Inst_VOP3A
{
public:
Inst_VOP3__V_CMP_U_F32(InFmt_VOP3A*);
~Inst_VOP3__V_CMP_U_F32();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 2; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //src_0
return 4;
case 1: //src_1
return 4;
case 2: //sdst
return 8;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_VOP3__V_CMP_U_F32
class Inst_VOP3__V_CMP_NGE_F32 : public Inst_VOP3A
{
public:
Inst_VOP3__V_CMP_NGE_F32(InFmt_VOP3A*);
~Inst_VOP3__V_CMP_NGE_F32();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 2; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //src_0
return 4;
case 1: //src_1
return 4;
case 2: //sdst
return 8;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_VOP3__V_CMP_NGE_F32
class Inst_VOP3__V_CMP_NLG_F32 : public Inst_VOP3A
{
public:
Inst_VOP3__V_CMP_NLG_F32(InFmt_VOP3A*);
~Inst_VOP3__V_CMP_NLG_F32();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 2; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //src_0
return 4;
case 1: //src_1
return 4;
case 2: //sdst
return 8;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_VOP3__V_CMP_NLG_F32
class Inst_VOP3__V_CMP_NGT_F32 : public Inst_VOP3A
{
public:
Inst_VOP3__V_CMP_NGT_F32(InFmt_VOP3A*);
~Inst_VOP3__V_CMP_NGT_F32();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 2; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //src_0
return 4;
case 1: //src_1
return 4;
case 2: //sdst
return 8;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_VOP3__V_CMP_NGT_F32
class Inst_VOP3__V_CMP_NLE_F32 : public Inst_VOP3A
{
public:
Inst_VOP3__V_CMP_NLE_F32(InFmt_VOP3A*);
~Inst_VOP3__V_CMP_NLE_F32();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 2; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //src_0
return 4;
case 1: //src_1
return 4;
case 2: //sdst
return 8;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_VOP3__V_CMP_NLE_F32
class Inst_VOP3__V_CMP_NEQ_F32 : public Inst_VOP3A
{
public:
Inst_VOP3__V_CMP_NEQ_F32(InFmt_VOP3A*);
~Inst_VOP3__V_CMP_NEQ_F32();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 2; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //src_0
return 4;
case 1: //src_1
return 4;
case 2: //sdst
return 8;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_VOP3__V_CMP_NEQ_F32
class Inst_VOP3__V_CMP_NLT_F32 : public Inst_VOP3A
{
public:
Inst_VOP3__V_CMP_NLT_F32(InFmt_VOP3A*);
~Inst_VOP3__V_CMP_NLT_F32();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 2; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //src_0
return 4;
case 1: //src_1
return 4;
case 2: //sdst
return 8;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_VOP3__V_CMP_NLT_F32
class Inst_VOP3__V_CMP_TRU_F32 : public Inst_VOP3A
{
public:
Inst_VOP3__V_CMP_TRU_F32(InFmt_VOP3A*);
~Inst_VOP3__V_CMP_TRU_F32();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 2; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //src_0
return 4;
case 1: //src_1
return 4;
case 2: //sdst
return 8;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_VOP3__V_CMP_TRU_F32
class Inst_VOP3__V_CMPX_F_F32 : public Inst_VOP3A
{
public:
Inst_VOP3__V_CMPX_F_F32(InFmt_VOP3A*);
~Inst_VOP3__V_CMPX_F_F32();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 2; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //src_0
return 4;
case 1: //src_1
return 4;
case 2: //sdst
return 8;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_VOP3__V_CMPX_F_F32
class Inst_VOP3__V_CMPX_LT_F32 : public Inst_VOP3A
{
public:
Inst_VOP3__V_CMPX_LT_F32(InFmt_VOP3A*);
~Inst_VOP3__V_CMPX_LT_F32();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 2; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //src_0
return 4;
case 1: //src_1
return 4;
case 2: //sdst
return 8;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_VOP3__V_CMPX_LT_F32
class Inst_VOP3__V_CMPX_EQ_F32 : public Inst_VOP3A
{
public:
Inst_VOP3__V_CMPX_EQ_F32(InFmt_VOP3A*);
~Inst_VOP3__V_CMPX_EQ_F32();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 2; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //src_0
return 4;
case 1: //src_1
return 4;
case 2: //sdst
return 8;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_VOP3__V_CMPX_EQ_F32
class Inst_VOP3__V_CMPX_LE_F32 : public Inst_VOP3A
{
public:
Inst_VOP3__V_CMPX_LE_F32(InFmt_VOP3A*);
~Inst_VOP3__V_CMPX_LE_F32();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 2; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //src_0
return 4;
case 1: //src_1
return 4;
case 2: //sdst
return 8;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_VOP3__V_CMPX_LE_F32
class Inst_VOP3__V_CMPX_GT_F32 : public Inst_VOP3A
{
public:
Inst_VOP3__V_CMPX_GT_F32(InFmt_VOP3A*);
~Inst_VOP3__V_CMPX_GT_F32();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 2; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //src_0
return 4;
case 1: //src_1
return 4;
case 2: //sdst
return 8;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_VOP3__V_CMPX_GT_F32
class Inst_VOP3__V_CMPX_LG_F32 : public Inst_VOP3A
{
public:
Inst_VOP3__V_CMPX_LG_F32(InFmt_VOP3A*);
~Inst_VOP3__V_CMPX_LG_F32();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 2; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //src_0
return 4;
case 1: //src_1
return 4;
case 2: //sdst
return 8;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_VOP3__V_CMPX_LG_F32
class Inst_VOP3__V_CMPX_GE_F32 : public Inst_VOP3A
{
public:
Inst_VOP3__V_CMPX_GE_F32(InFmt_VOP3A*);
~Inst_VOP3__V_CMPX_GE_F32();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 2; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //src_0
return 4;
case 1: //src_1
return 4;
case 2: //sdst
return 8;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_VOP3__V_CMPX_GE_F32
class Inst_VOP3__V_CMPX_O_F32 : public Inst_VOP3A
{
public:
Inst_VOP3__V_CMPX_O_F32(InFmt_VOP3A*);
~Inst_VOP3__V_CMPX_O_F32();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 2; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //src_0
return 4;
case 1: //src_1
return 4;
case 2: //sdst
return 8;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_VOP3__V_CMPX_O_F32
class Inst_VOP3__V_CMPX_U_F32 : public Inst_VOP3A
{
public:
Inst_VOP3__V_CMPX_U_F32(InFmt_VOP3A*);
~Inst_VOP3__V_CMPX_U_F32();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 2; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //src_0
return 4;
case 1: //src_1
return 4;
case 2: //sdst
return 8;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_VOP3__V_CMPX_U_F32
class Inst_VOP3__V_CMPX_NGE_F32 : public Inst_VOP3A
{
public:
Inst_VOP3__V_CMPX_NGE_F32(InFmt_VOP3A*);
~Inst_VOP3__V_CMPX_NGE_F32();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 2; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //src_0
return 4;
case 1: //src_1
return 4;
case 2: //sdst
return 8;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_VOP3__V_CMPX_NGE_F32
class Inst_VOP3__V_CMPX_NLG_F32 : public Inst_VOP3A
{
public:
Inst_VOP3__V_CMPX_NLG_F32(InFmt_VOP3A*);
~Inst_VOP3__V_CMPX_NLG_F32();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 2; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //src_0
return 4;
case 1: //src_1
return 4;
case 2: //sdst
return 8;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_VOP3__V_CMPX_NLG_F32
class Inst_VOP3__V_CMPX_NGT_F32 : public Inst_VOP3A
{
public:
Inst_VOP3__V_CMPX_NGT_F32(InFmt_VOP3A*);
~Inst_VOP3__V_CMPX_NGT_F32();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 2; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //src_0
return 4;
case 1: //src_1
return 4;
case 2: //sdst
return 8;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_VOP3__V_CMPX_NGT_F32
class Inst_VOP3__V_CMPX_NLE_F32 : public Inst_VOP3A
{
public:
Inst_VOP3__V_CMPX_NLE_F32(InFmt_VOP3A*);
~Inst_VOP3__V_CMPX_NLE_F32();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 2; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //src_0
return 4;
case 1: //src_1
return 4;
case 2: //sdst
return 8;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_VOP3__V_CMPX_NLE_F32
class Inst_VOP3__V_CMPX_NEQ_F32 : public Inst_VOP3A
{
public:
Inst_VOP3__V_CMPX_NEQ_F32(InFmt_VOP3A*);
~Inst_VOP3__V_CMPX_NEQ_F32();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 2; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //src_0
return 4;
case 1: //src_1
return 4;
case 2: //sdst
return 8;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_VOP3__V_CMPX_NEQ_F32
class Inst_VOP3__V_CMPX_NLT_F32 : public Inst_VOP3A
{
public:
Inst_VOP3__V_CMPX_NLT_F32(InFmt_VOP3A*);
~Inst_VOP3__V_CMPX_NLT_F32();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 2; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //src_0
return 4;
case 1: //src_1
return 4;
case 2: //sdst
return 8;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_VOP3__V_CMPX_NLT_F32
class Inst_VOP3__V_CMPX_TRU_F32 : public Inst_VOP3A
{
public:
Inst_VOP3__V_CMPX_TRU_F32(InFmt_VOP3A*);
~Inst_VOP3__V_CMPX_TRU_F32();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 2; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //src_0
return 4;
case 1: //src_1
return 4;
case 2: //sdst
return 8;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_VOP3__V_CMPX_TRU_F32
class Inst_VOP3__V_CMP_F_F64 : public Inst_VOP3A
{
public:
Inst_VOP3__V_CMP_F_F64(InFmt_VOP3A*);
~Inst_VOP3__V_CMP_F_F64();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 2; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //src_0
return 8;
case 1: //src_1
return 8;
case 2: //sdst
return 8;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_VOP3__V_CMP_F_F64
class Inst_VOP3__V_CMP_LT_F64 : public Inst_VOP3A
{
public:
Inst_VOP3__V_CMP_LT_F64(InFmt_VOP3A*);
~Inst_VOP3__V_CMP_LT_F64();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 2; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //src_0
return 8;
case 1: //src_1
return 8;
case 2: //sdst
return 8;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_VOP3__V_CMP_LT_F64
class Inst_VOP3__V_CMP_EQ_F64 : public Inst_VOP3A
{
public:
Inst_VOP3__V_CMP_EQ_F64(InFmt_VOP3A*);
~Inst_VOP3__V_CMP_EQ_F64();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 2; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //src_0
return 8;
case 1: //src_1
return 8;
case 2: //sdst
return 8;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_VOP3__V_CMP_EQ_F64
class Inst_VOP3__V_CMP_LE_F64 : public Inst_VOP3A
{
public:
Inst_VOP3__V_CMP_LE_F64(InFmt_VOP3A*);
~Inst_VOP3__V_CMP_LE_F64();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 2; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //src_0
return 8;
case 1: //src_1
return 8;
case 2: //sdst
return 8;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_VOP3__V_CMP_LE_F64
class Inst_VOP3__V_CMP_GT_F64 : public Inst_VOP3A
{
public:
Inst_VOP3__V_CMP_GT_F64(InFmt_VOP3A*);
~Inst_VOP3__V_CMP_GT_F64();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 2; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //src_0
return 8;
case 1: //src_1
return 8;
case 2: //sdst
return 8;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_VOP3__V_CMP_GT_F64
class Inst_VOP3__V_CMP_LG_F64 : public Inst_VOP3A
{
public:
Inst_VOP3__V_CMP_LG_F64(InFmt_VOP3A*);
~Inst_VOP3__V_CMP_LG_F64();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 2; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //src_0
return 8;
case 1: //src_1
return 8;
case 2: //sdst
return 8;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_VOP3__V_CMP_LG_F64
class Inst_VOP3__V_CMP_GE_F64 : public Inst_VOP3A
{
public:
Inst_VOP3__V_CMP_GE_F64(InFmt_VOP3A*);
~Inst_VOP3__V_CMP_GE_F64();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 2; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //src_0
return 8;
case 1: //src_1
return 8;
case 2: //sdst
return 8;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_VOP3__V_CMP_GE_F64
class Inst_VOP3__V_CMP_O_F64 : public Inst_VOP3A
{
public:
Inst_VOP3__V_CMP_O_F64(InFmt_VOP3A*);
~Inst_VOP3__V_CMP_O_F64();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 2; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //src_0
return 8;
case 1: //src_1
return 8;
case 2: //sdst
return 8;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_VOP3__V_CMP_O_F64
class Inst_VOP3__V_CMP_U_F64 : public Inst_VOP3A
{
public:
Inst_VOP3__V_CMP_U_F64(InFmt_VOP3A*);
~Inst_VOP3__V_CMP_U_F64();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 2; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //src_0
return 8;
case 1: //src_1
return 8;
case 2: //sdst
return 8;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_VOP3__V_CMP_U_F64
class Inst_VOP3__V_CMP_NGE_F64 : public Inst_VOP3A
{
public:
Inst_VOP3__V_CMP_NGE_F64(InFmt_VOP3A*);
~Inst_VOP3__V_CMP_NGE_F64();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 2; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //src_0
return 8;
case 1: //src_1
return 8;
case 2: //sdst
return 8;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_VOP3__V_CMP_NGE_F64
class Inst_VOP3__V_CMP_NLG_F64 : public Inst_VOP3A
{
public:
Inst_VOP3__V_CMP_NLG_F64(InFmt_VOP3A*);
~Inst_VOP3__V_CMP_NLG_F64();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 2; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //src_0
return 8;
case 1: //src_1
return 8;
case 2: //sdst
return 8;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_VOP3__V_CMP_NLG_F64
class Inst_VOP3__V_CMP_NGT_F64 : public Inst_VOP3A
{
public:
Inst_VOP3__V_CMP_NGT_F64(InFmt_VOP3A*);
~Inst_VOP3__V_CMP_NGT_F64();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 2; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //src_0
return 8;
case 1: //src_1
return 8;
case 2: //sdst
return 8;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_VOP3__V_CMP_NGT_F64
class Inst_VOP3__V_CMP_NLE_F64 : public Inst_VOP3A
{
public:
Inst_VOP3__V_CMP_NLE_F64(InFmt_VOP3A*);
~Inst_VOP3__V_CMP_NLE_F64();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 2; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //src_0
return 8;
case 1: //src_1
return 8;
case 2: //sdst
return 8;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_VOP3__V_CMP_NLE_F64
class Inst_VOP3__V_CMP_NEQ_F64 : public Inst_VOP3A
{
public:
Inst_VOP3__V_CMP_NEQ_F64(InFmt_VOP3A*);
~Inst_VOP3__V_CMP_NEQ_F64();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 2; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //src_0
return 8;
case 1: //src_1
return 8;
case 2: //sdst
return 8;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_VOP3__V_CMP_NEQ_F64
class Inst_VOP3__V_CMP_NLT_F64 : public Inst_VOP3A
{
public:
Inst_VOP3__V_CMP_NLT_F64(InFmt_VOP3A*);
~Inst_VOP3__V_CMP_NLT_F64();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 2; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //src_0
return 8;
case 1: //src_1
return 8;
case 2: //sdst
return 8;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_VOP3__V_CMP_NLT_F64
class Inst_VOP3__V_CMP_TRU_F64 : public Inst_VOP3A
{
public:
Inst_VOP3__V_CMP_TRU_F64(InFmt_VOP3A*);
~Inst_VOP3__V_CMP_TRU_F64();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 2; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //src_0
return 8;
case 1: //src_1
return 8;
case 2: //sdst
return 8;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_VOP3__V_CMP_TRU_F64
class Inst_VOP3__V_CMPX_F_F64 : public Inst_VOP3A
{
public:
Inst_VOP3__V_CMPX_F_F64(InFmt_VOP3A*);
~Inst_VOP3__V_CMPX_F_F64();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 2; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //src_0
return 8;
case 1: //src_1
return 8;
case 2: //sdst
return 8;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_VOP3__V_CMPX_F_F64
class Inst_VOP3__V_CMPX_LT_F64 : public Inst_VOP3A
{
public:
Inst_VOP3__V_CMPX_LT_F64(InFmt_VOP3A*);
~Inst_VOP3__V_CMPX_LT_F64();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 2; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //src_0
return 8;
case 1: //src_1
return 8;
case 2: //sdst
return 8;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_VOP3__V_CMPX_LT_F64
class Inst_VOP3__V_CMPX_EQ_F64 : public Inst_VOP3A
{
public:
Inst_VOP3__V_CMPX_EQ_F64(InFmt_VOP3A*);
~Inst_VOP3__V_CMPX_EQ_F64();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 2; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //src_0
return 8;
case 1: //src_1
return 8;
case 2: //sdst
return 8;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_VOP3__V_CMPX_EQ_F64
class Inst_VOP3__V_CMPX_LE_F64 : public Inst_VOP3A
{
public:
Inst_VOP3__V_CMPX_LE_F64(InFmt_VOP3A*);
~Inst_VOP3__V_CMPX_LE_F64();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 2; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //src_0
return 8;
case 1: //src_1
return 8;
case 2: //sdst
return 8;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_VOP3__V_CMPX_LE_F64
class Inst_VOP3__V_CMPX_GT_F64 : public Inst_VOP3A
{
public:
Inst_VOP3__V_CMPX_GT_F64(InFmt_VOP3A*);
~Inst_VOP3__V_CMPX_GT_F64();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 2; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //src_0
return 8;
case 1: //src_1
return 8;
case 2: //sdst
return 8;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_VOP3__V_CMPX_GT_F64
class Inst_VOP3__V_CMPX_LG_F64 : public Inst_VOP3A
{
public:
Inst_VOP3__V_CMPX_LG_F64(InFmt_VOP3A*);
~Inst_VOP3__V_CMPX_LG_F64();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 2; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //src_0
return 8;
case 1: //src_1
return 8;
case 2: //sdst
return 8;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_VOP3__V_CMPX_LG_F64
class Inst_VOP3__V_CMPX_GE_F64 : public Inst_VOP3A
{
public:
Inst_VOP3__V_CMPX_GE_F64(InFmt_VOP3A*);
~Inst_VOP3__V_CMPX_GE_F64();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 2; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //src_0
return 8;
case 1: //src_1
return 8;
case 2: //sdst
return 8;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_VOP3__V_CMPX_GE_F64
class Inst_VOP3__V_CMPX_O_F64 : public Inst_VOP3A
{
public:
Inst_VOP3__V_CMPX_O_F64(InFmt_VOP3A*);
~Inst_VOP3__V_CMPX_O_F64();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 2; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //src_0
return 8;
case 1: //src_1
return 8;
case 2: //sdst
return 8;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_VOP3__V_CMPX_O_F64
class Inst_VOP3__V_CMPX_U_F64 : public Inst_VOP3A
{
public:
Inst_VOP3__V_CMPX_U_F64(InFmt_VOP3A*);
~Inst_VOP3__V_CMPX_U_F64();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 2; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //src_0
return 8;
case 1: //src_1
return 8;
case 2: //sdst
return 8;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_VOP3__V_CMPX_U_F64
class Inst_VOP3__V_CMPX_NGE_F64 : public Inst_VOP3A
{
public:
Inst_VOP3__V_CMPX_NGE_F64(InFmt_VOP3A*);
~Inst_VOP3__V_CMPX_NGE_F64();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 2; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //src_0
return 8;
case 1: //src_1
return 8;
case 2: //sdst
return 8;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_VOP3__V_CMPX_NGE_F64
class Inst_VOP3__V_CMPX_NLG_F64 : public Inst_VOP3A
{
public:
Inst_VOP3__V_CMPX_NLG_F64(InFmt_VOP3A*);
~Inst_VOP3__V_CMPX_NLG_F64();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 2; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //src_0
return 8;
case 1: //src_1
return 8;
case 2: //sdst
return 8;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_VOP3__V_CMPX_NLG_F64
class Inst_VOP3__V_CMPX_NGT_F64 : public Inst_VOP3A
{
public:
Inst_VOP3__V_CMPX_NGT_F64(InFmt_VOP3A*);
~Inst_VOP3__V_CMPX_NGT_F64();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 2; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //src_0
return 8;
case 1: //src_1
return 8;
case 2: //sdst
return 8;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_VOP3__V_CMPX_NGT_F64
class Inst_VOP3__V_CMPX_NLE_F64 : public Inst_VOP3A
{
public:
Inst_VOP3__V_CMPX_NLE_F64(InFmt_VOP3A*);
~Inst_VOP3__V_CMPX_NLE_F64();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 2; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //src_0
return 8;
case 1: //src_1
return 8;
case 2: //sdst
return 8;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_VOP3__V_CMPX_NLE_F64
class Inst_VOP3__V_CMPX_NEQ_F64 : public Inst_VOP3A
{
public:
Inst_VOP3__V_CMPX_NEQ_F64(InFmt_VOP3A*);
~Inst_VOP3__V_CMPX_NEQ_F64();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 2; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //src_0
return 8;
case 1: //src_1
return 8;
case 2: //sdst
return 8;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_VOP3__V_CMPX_NEQ_F64
class Inst_VOP3__V_CMPX_NLT_F64 : public Inst_VOP3A
{
public:
Inst_VOP3__V_CMPX_NLT_F64(InFmt_VOP3A*);
~Inst_VOP3__V_CMPX_NLT_F64();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 2; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //src_0
return 8;
case 1: //src_1
return 8;
case 2: //sdst
return 8;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_VOP3__V_CMPX_NLT_F64
class Inst_VOP3__V_CMPX_TRU_F64 : public Inst_VOP3A
{
public:
Inst_VOP3__V_CMPX_TRU_F64(InFmt_VOP3A*);
~Inst_VOP3__V_CMPX_TRU_F64();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 2; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //src_0
return 8;
case 1: //src_1
return 8;
case 2: //sdst
return 8;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_VOP3__V_CMPX_TRU_F64
class Inst_VOP3__V_CMP_F_I16 : public Inst_VOP3A
{
public:
Inst_VOP3__V_CMP_F_I16(InFmt_VOP3A*);
~Inst_VOP3__V_CMP_F_I16();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 2; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //src_0
return 2;
case 1: //src_1
return 2;
case 2: //sdst
return 8;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_VOP3__V_CMP_F_I16
class Inst_VOP3__V_CMP_LT_I16 : public Inst_VOP3A
{
public:
Inst_VOP3__V_CMP_LT_I16(InFmt_VOP3A*);
~Inst_VOP3__V_CMP_LT_I16();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 2; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //src_0
return 2;
case 1: //src_1
return 2;
case 2: //sdst
return 8;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_VOP3__V_CMP_LT_I16
class Inst_VOP3__V_CMP_EQ_I16 : public Inst_VOP3A
{
public:
Inst_VOP3__V_CMP_EQ_I16(InFmt_VOP3A*);
~Inst_VOP3__V_CMP_EQ_I16();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 2; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //src_0
return 2;
case 1: //src_1
return 2;
case 2: //sdst
return 8;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_VOP3__V_CMP_EQ_I16
class Inst_VOP3__V_CMP_LE_I16 : public Inst_VOP3A
{
public:
Inst_VOP3__V_CMP_LE_I16(InFmt_VOP3A*);
~Inst_VOP3__V_CMP_LE_I16();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 2; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //src_0
return 2;
case 1: //src_1
return 2;
case 2: //sdst
return 8;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_VOP3__V_CMP_LE_I16
class Inst_VOP3__V_CMP_GT_I16 : public Inst_VOP3A
{
public:
Inst_VOP3__V_CMP_GT_I16(InFmt_VOP3A*);
~Inst_VOP3__V_CMP_GT_I16();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 2; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //src_0
return 2;
case 1: //src_1
return 2;
case 2: //sdst
return 8;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_VOP3__V_CMP_GT_I16
class Inst_VOP3__V_CMP_NE_I16 : public Inst_VOP3A
{
public:
Inst_VOP3__V_CMP_NE_I16(InFmt_VOP3A*);
~Inst_VOP3__V_CMP_NE_I16();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 2; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //src_0
return 2;
case 1: //src_1
return 2;
case 2: //sdst
return 8;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_VOP3__V_CMP_NE_I16
class Inst_VOP3__V_CMP_GE_I16 : public Inst_VOP3A
{
public:
Inst_VOP3__V_CMP_GE_I16(InFmt_VOP3A*);
~Inst_VOP3__V_CMP_GE_I16();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 2; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //src_0
return 2;
case 1: //src_1
return 2;
case 2: //sdst
return 8;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_VOP3__V_CMP_GE_I16
class Inst_VOP3__V_CMP_T_I16 : public Inst_VOP3A
{
public:
Inst_VOP3__V_CMP_T_I16(InFmt_VOP3A*);
~Inst_VOP3__V_CMP_T_I16();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 2; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //src_0
return 2;
case 1: //src_1
return 2;
case 2: //sdst
return 8;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_VOP3__V_CMP_T_I16
class Inst_VOP3__V_CMP_F_U16 : public Inst_VOP3A
{
public:
Inst_VOP3__V_CMP_F_U16(InFmt_VOP3A*);
~Inst_VOP3__V_CMP_F_U16();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 2; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //src_0
return 2;
case 1: //src_1
return 2;
case 2: //sdst
return 8;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_VOP3__V_CMP_F_U16
class Inst_VOP3__V_CMP_LT_U16 : public Inst_VOP3A
{
public:
Inst_VOP3__V_CMP_LT_U16(InFmt_VOP3A*);
~Inst_VOP3__V_CMP_LT_U16();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 2; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //src_0
return 2;
case 1: //src_1
return 2;
case 2: //sdst
return 8;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_VOP3__V_CMP_LT_U16
class Inst_VOP3__V_CMP_EQ_U16 : public Inst_VOP3A
{
public:
Inst_VOP3__V_CMP_EQ_U16(InFmt_VOP3A*);
~Inst_VOP3__V_CMP_EQ_U16();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 2; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //src_0
return 2;
case 1: //src_1
return 2;
case 2: //sdst
return 8;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_VOP3__V_CMP_EQ_U16
class Inst_VOP3__V_CMP_LE_U16 : public Inst_VOP3A
{
public:
Inst_VOP3__V_CMP_LE_U16(InFmt_VOP3A*);
~Inst_VOP3__V_CMP_LE_U16();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 2; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //src_0
return 2;
case 1: //src_1
return 2;
case 2: //sdst
return 8;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_VOP3__V_CMP_LE_U16
class Inst_VOP3__V_CMP_GT_U16 : public Inst_VOP3A
{
public:
Inst_VOP3__V_CMP_GT_U16(InFmt_VOP3A*);
~Inst_VOP3__V_CMP_GT_U16();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 2; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //src_0
return 2;
case 1: //src_1
return 2;
case 2: //sdst
return 8;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_VOP3__V_CMP_GT_U16
class Inst_VOP3__V_CMP_NE_U16 : public Inst_VOP3A
{
public:
Inst_VOP3__V_CMP_NE_U16(InFmt_VOP3A*);
~Inst_VOP3__V_CMP_NE_U16();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 2; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //src_0
return 2;
case 1: //src_1
return 2;
case 2: //sdst
return 8;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_VOP3__V_CMP_NE_U16
class Inst_VOP3__V_CMP_GE_U16 : public Inst_VOP3A
{
public:
Inst_VOP3__V_CMP_GE_U16(InFmt_VOP3A*);
~Inst_VOP3__V_CMP_GE_U16();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 2; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //src_0
return 2;
case 1: //src_1
return 2;
case 2: //sdst
return 8;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_VOP3__V_CMP_GE_U16
class Inst_VOP3__V_CMP_T_U16 : public Inst_VOP3A
{
public:
Inst_VOP3__V_CMP_T_U16(InFmt_VOP3A*);
~Inst_VOP3__V_CMP_T_U16();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 2; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //src_0
return 2;
case 1: //src_1
return 2;
case 2: //sdst
return 8;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_VOP3__V_CMP_T_U16
class Inst_VOP3__V_CMPX_F_I16 : public Inst_VOP3A
{
public:
Inst_VOP3__V_CMPX_F_I16(InFmt_VOP3A*);
~Inst_VOP3__V_CMPX_F_I16();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 2; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //src_0
return 2;
case 1: //src_1
return 2;
case 2: //sdst
return 8;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_VOP3__V_CMPX_F_I16
class Inst_VOP3__V_CMPX_LT_I16 : public Inst_VOP3A
{
public:
Inst_VOP3__V_CMPX_LT_I16(InFmt_VOP3A*);
~Inst_VOP3__V_CMPX_LT_I16();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 2; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //src_0
return 2;
case 1: //src_1
return 2;
case 2: //sdst
return 8;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_VOP3__V_CMPX_LT_I16
class Inst_VOP3__V_CMPX_EQ_I16 : public Inst_VOP3A
{
public:
Inst_VOP3__V_CMPX_EQ_I16(InFmt_VOP3A*);
~Inst_VOP3__V_CMPX_EQ_I16();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 2; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //src_0
return 2;
case 1: //src_1
return 2;
case 2: //sdst
return 8;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_VOP3__V_CMPX_EQ_I16
class Inst_VOP3__V_CMPX_LE_I16 : public Inst_VOP3A
{
public:
Inst_VOP3__V_CMPX_LE_I16(InFmt_VOP3A*);
~Inst_VOP3__V_CMPX_LE_I16();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 2; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //src_0
return 2;
case 1: //src_1
return 2;
case 2: //sdst
return 8;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_VOP3__V_CMPX_LE_I16
class Inst_VOP3__V_CMPX_GT_I16 : public Inst_VOP3A
{
public:
Inst_VOP3__V_CMPX_GT_I16(InFmt_VOP3A*);
~Inst_VOP3__V_CMPX_GT_I16();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 2; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //src_0
return 2;
case 1: //src_1
return 2;
case 2: //sdst
return 8;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_VOP3__V_CMPX_GT_I16
class Inst_VOP3__V_CMPX_NE_I16 : public Inst_VOP3A
{
public:
Inst_VOP3__V_CMPX_NE_I16(InFmt_VOP3A*);
~Inst_VOP3__V_CMPX_NE_I16();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 2; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //src_0
return 2;
case 1: //src_1
return 2;
case 2: //sdst
return 8;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_VOP3__V_CMPX_NE_I16
class Inst_VOP3__V_CMPX_GE_I16 : public Inst_VOP3A
{
public:
Inst_VOP3__V_CMPX_GE_I16(InFmt_VOP3A*);
~Inst_VOP3__V_CMPX_GE_I16();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 2; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //src_0
return 2;
case 1: //src_1
return 2;
case 2: //sdst
return 8;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_VOP3__V_CMPX_GE_I16
class Inst_VOP3__V_CMPX_T_I16 : public Inst_VOP3A
{
public:
Inst_VOP3__V_CMPX_T_I16(InFmt_VOP3A*);
~Inst_VOP3__V_CMPX_T_I16();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 2; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //src_0
return 2;
case 1: //src_1
return 2;
case 2: //sdst
return 8;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_VOP3__V_CMPX_T_I16
class Inst_VOP3__V_CMPX_F_U16 : public Inst_VOP3A
{
public:
Inst_VOP3__V_CMPX_F_U16(InFmt_VOP3A*);
~Inst_VOP3__V_CMPX_F_U16();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 2; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //src_0
return 2;
case 1: //src_1
return 2;
case 2: //sdst
return 8;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_VOP3__V_CMPX_F_U16
class Inst_VOP3__V_CMPX_LT_U16 : public Inst_VOP3A
{
public:
Inst_VOP3__V_CMPX_LT_U16(InFmt_VOP3A*);
~Inst_VOP3__V_CMPX_LT_U16();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 2; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //src_0
return 2;
case 1: //src_1
return 2;
case 2: //sdst
return 8;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_VOP3__V_CMPX_LT_U16
class Inst_VOP3__V_CMPX_EQ_U16 : public Inst_VOP3A
{
public:
Inst_VOP3__V_CMPX_EQ_U16(InFmt_VOP3A*);
~Inst_VOP3__V_CMPX_EQ_U16();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 2; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //src_0
return 2;
case 1: //src_1
return 2;
case 2: //sdst
return 8;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_VOP3__V_CMPX_EQ_U16
class Inst_VOP3__V_CMPX_LE_U16 : public Inst_VOP3A
{
public:
Inst_VOP3__V_CMPX_LE_U16(InFmt_VOP3A*);
~Inst_VOP3__V_CMPX_LE_U16();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 2; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //src_0
return 2;
case 1: //src_1
return 2;
case 2: //sdst
return 8;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_VOP3__V_CMPX_LE_U16
class Inst_VOP3__V_CMPX_GT_U16 : public Inst_VOP3A
{
public:
Inst_VOP3__V_CMPX_GT_U16(InFmt_VOP3A*);
~Inst_VOP3__V_CMPX_GT_U16();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 2; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //src_0
return 2;
case 1: //src_1
return 2;
case 2: //sdst
return 8;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_VOP3__V_CMPX_GT_U16
class Inst_VOP3__V_CMPX_NE_U16 : public Inst_VOP3A
{
public:
Inst_VOP3__V_CMPX_NE_U16(InFmt_VOP3A*);
~Inst_VOP3__V_CMPX_NE_U16();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 2; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //src_0
return 2;
case 1: //src_1
return 2;
case 2: //sdst
return 8;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_VOP3__V_CMPX_NE_U16
class Inst_VOP3__V_CMPX_GE_U16 : public Inst_VOP3A
{
public:
Inst_VOP3__V_CMPX_GE_U16(InFmt_VOP3A*);
~Inst_VOP3__V_CMPX_GE_U16();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 2; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //src_0
return 2;
case 1: //src_1
return 2;
case 2: //sdst
return 8;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_VOP3__V_CMPX_GE_U16
class Inst_VOP3__V_CMPX_T_U16 : public Inst_VOP3A
{
public:
Inst_VOP3__V_CMPX_T_U16(InFmt_VOP3A*);
~Inst_VOP3__V_CMPX_T_U16();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 2; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //src_0
return 2;
case 1: //src_1
return 2;
case 2: //sdst
return 8;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_VOP3__V_CMPX_T_U16
class Inst_VOP3__V_CMP_F_I32 : public Inst_VOP3A
{
public:
Inst_VOP3__V_CMP_F_I32(InFmt_VOP3A*);
~Inst_VOP3__V_CMP_F_I32();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 2; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //src_0
return 4;
case 1: //src_1
return 4;
case 2: //sdst
return 8;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_VOP3__V_CMP_F_I32
class Inst_VOP3__V_CMP_LT_I32 : public Inst_VOP3A
{
public:
Inst_VOP3__V_CMP_LT_I32(InFmt_VOP3A*);
~Inst_VOP3__V_CMP_LT_I32();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 2; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //src_0
return 4;
case 1: //src_1
return 4;
case 2: //sdst
return 8;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_VOP3__V_CMP_LT_I32
class Inst_VOP3__V_CMP_EQ_I32 : public Inst_VOP3A
{
public:
Inst_VOP3__V_CMP_EQ_I32(InFmt_VOP3A*);
~Inst_VOP3__V_CMP_EQ_I32();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 2; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //src_0
return 4;
case 1: //src_1
return 4;
case 2: //sdst
return 8;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_VOP3__V_CMP_EQ_I32
class Inst_VOP3__V_CMP_LE_I32 : public Inst_VOP3A
{
public:
Inst_VOP3__V_CMP_LE_I32(InFmt_VOP3A*);
~Inst_VOP3__V_CMP_LE_I32();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 2; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //src_0
return 4;
case 1: //src_1
return 4;
case 2: //sdst
return 8;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_VOP3__V_CMP_LE_I32
class Inst_VOP3__V_CMP_GT_I32 : public Inst_VOP3A
{
public:
Inst_VOP3__V_CMP_GT_I32(InFmt_VOP3A*);
~Inst_VOP3__V_CMP_GT_I32();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 2; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //src_0
return 4;
case 1: //src_1
return 4;
case 2: //sdst
return 8;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_VOP3__V_CMP_GT_I32
class Inst_VOP3__V_CMP_NE_I32 : public Inst_VOP3A
{
public:
Inst_VOP3__V_CMP_NE_I32(InFmt_VOP3A*);
~Inst_VOP3__V_CMP_NE_I32();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 2; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //src_0
return 4;
case 1: //src_1
return 4;
case 2: //sdst
return 8;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_VOP3__V_CMP_NE_I32
class Inst_VOP3__V_CMP_GE_I32 : public Inst_VOP3A
{
public:
Inst_VOP3__V_CMP_GE_I32(InFmt_VOP3A*);
~Inst_VOP3__V_CMP_GE_I32();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 2; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //src_0
return 4;
case 1: //src_1
return 4;
case 2: //sdst
return 8;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_VOP3__V_CMP_GE_I32
class Inst_VOP3__V_CMP_T_I32 : public Inst_VOP3A
{
public:
Inst_VOP3__V_CMP_T_I32(InFmt_VOP3A*);
~Inst_VOP3__V_CMP_T_I32();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 2; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //src_0
return 4;
case 1: //src_1
return 4;
case 2: //sdst
return 8;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_VOP3__V_CMP_T_I32
class Inst_VOP3__V_CMP_F_U32 : public Inst_VOP3A
{
public:
Inst_VOP3__V_CMP_F_U32(InFmt_VOP3A*);
~Inst_VOP3__V_CMP_F_U32();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 2; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //src_0
return 4;
case 1: //src_1
return 4;
case 2: //sdst
return 8;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_VOP3__V_CMP_F_U32
class Inst_VOP3__V_CMP_LT_U32 : public Inst_VOP3A
{
public:
Inst_VOP3__V_CMP_LT_U32(InFmt_VOP3A*);
~Inst_VOP3__V_CMP_LT_U32();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 2; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //src_0
return 4;
case 1: //src_1
return 4;
case 2: //sdst
return 8;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_VOP3__V_CMP_LT_U32
class Inst_VOP3__V_CMP_EQ_U32 : public Inst_VOP3A
{
public:
Inst_VOP3__V_CMP_EQ_U32(InFmt_VOP3A*);
~Inst_VOP3__V_CMP_EQ_U32();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 2; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //src_0
return 4;
case 1: //src_1
return 4;
case 2: //sdst
return 8;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_VOP3__V_CMP_EQ_U32
class Inst_VOP3__V_CMP_LE_U32 : public Inst_VOP3A
{
public:
Inst_VOP3__V_CMP_LE_U32(InFmt_VOP3A*);
~Inst_VOP3__V_CMP_LE_U32();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 2; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //src_0
return 4;
case 1: //src_1
return 4;
case 2: //sdst
return 8;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_VOP3__V_CMP_LE_U32
class Inst_VOP3__V_CMP_GT_U32 : public Inst_VOP3A
{
public:
Inst_VOP3__V_CMP_GT_U32(InFmt_VOP3A*);
~Inst_VOP3__V_CMP_GT_U32();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 2; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //src_0
return 4;
case 1: //src_1
return 4;
case 2: //sdst
return 8;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_VOP3__V_CMP_GT_U32
class Inst_VOP3__V_CMP_NE_U32 : public Inst_VOP3A
{
public:
Inst_VOP3__V_CMP_NE_U32(InFmt_VOP3A*);
~Inst_VOP3__V_CMP_NE_U32();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 2; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //src_0
return 4;
case 1: //src_1
return 4;
case 2: //sdst
return 8;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_VOP3__V_CMP_NE_U32
class Inst_VOP3__V_CMP_GE_U32 : public Inst_VOP3A
{
public:
Inst_VOP3__V_CMP_GE_U32(InFmt_VOP3A*);
~Inst_VOP3__V_CMP_GE_U32();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 2; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //src_0
return 4;
case 1: //src_1
return 4;
case 2: //sdst
return 8;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_VOP3__V_CMP_GE_U32
class Inst_VOP3__V_CMP_T_U32 : public Inst_VOP3A
{
public:
Inst_VOP3__V_CMP_T_U32(InFmt_VOP3A*);
~Inst_VOP3__V_CMP_T_U32();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 2; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //src_0
return 4;
case 1: //src_1
return 4;
case 2: //sdst
return 8;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_VOP3__V_CMP_T_U32
class Inst_VOP3__V_CMPX_F_I32 : public Inst_VOP3A
{
public:
Inst_VOP3__V_CMPX_F_I32(InFmt_VOP3A*);
~Inst_VOP3__V_CMPX_F_I32();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 2; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //src_0
return 4;
case 1: //src_1
return 4;
case 2: //sdst
return 8;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_VOP3__V_CMPX_F_I32
class Inst_VOP3__V_CMPX_LT_I32 : public Inst_VOP3A
{
public:
Inst_VOP3__V_CMPX_LT_I32(InFmt_VOP3A*);
~Inst_VOP3__V_CMPX_LT_I32();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 2; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //src_0
return 4;
case 1: //src_1
return 4;
case 2: //sdst
return 8;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_VOP3__V_CMPX_LT_I32
class Inst_VOP3__V_CMPX_EQ_I32 : public Inst_VOP3A
{
public:
Inst_VOP3__V_CMPX_EQ_I32(InFmt_VOP3A*);
~Inst_VOP3__V_CMPX_EQ_I32();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 2; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //src_0
return 4;
case 1: //src_1
return 4;
case 2: //sdst
return 8;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_VOP3__V_CMPX_EQ_I32
class Inst_VOP3__V_CMPX_LE_I32 : public Inst_VOP3A
{
public:
Inst_VOP3__V_CMPX_LE_I32(InFmt_VOP3A*);
~Inst_VOP3__V_CMPX_LE_I32();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 2; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //src_0
return 4;
case 1: //src_1
return 4;
case 2: //sdst
return 8;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_VOP3__V_CMPX_LE_I32
class Inst_VOP3__V_CMPX_GT_I32 : public Inst_VOP3A
{
public:
Inst_VOP3__V_CMPX_GT_I32(InFmt_VOP3A*);
~Inst_VOP3__V_CMPX_GT_I32();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 2; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //src_0
return 4;
case 1: //src_1
return 4;
case 2: //sdst
return 8;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_VOP3__V_CMPX_GT_I32
class Inst_VOP3__V_CMPX_NE_I32 : public Inst_VOP3A
{
public:
Inst_VOP3__V_CMPX_NE_I32(InFmt_VOP3A*);
~Inst_VOP3__V_CMPX_NE_I32();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 2; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //src_0
return 4;
case 1: //src_1
return 4;
case 2: //sdst
return 8;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_VOP3__V_CMPX_NE_I32
class Inst_VOP3__V_CMPX_GE_I32 : public Inst_VOP3A
{
public:
Inst_VOP3__V_CMPX_GE_I32(InFmt_VOP3A*);
~Inst_VOP3__V_CMPX_GE_I32();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 2; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //src_0
return 4;
case 1: //src_1
return 4;
case 2: //sdst
return 8;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_VOP3__V_CMPX_GE_I32
class Inst_VOP3__V_CMPX_T_I32 : public Inst_VOP3A
{
public:
Inst_VOP3__V_CMPX_T_I32(InFmt_VOP3A*);
~Inst_VOP3__V_CMPX_T_I32();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 2; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //src_0
return 4;
case 1: //src_1
return 4;
case 2: //sdst
return 8;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_VOP3__V_CMPX_T_I32
class Inst_VOP3__V_CMPX_F_U32 : public Inst_VOP3A
{
public:
Inst_VOP3__V_CMPX_F_U32(InFmt_VOP3A*);
~Inst_VOP3__V_CMPX_F_U32();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 2; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //src_0
return 4;
case 1: //src_1
return 4;
case 2: //sdst
return 8;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_VOP3__V_CMPX_F_U32
class Inst_VOP3__V_CMPX_LT_U32 : public Inst_VOP3A
{
public:
Inst_VOP3__V_CMPX_LT_U32(InFmt_VOP3A*);
~Inst_VOP3__V_CMPX_LT_U32();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 2; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //src_0
return 4;
case 1: //src_1
return 4;
case 2: //sdst
return 8;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_VOP3__V_CMPX_LT_U32
class Inst_VOP3__V_CMPX_EQ_U32 : public Inst_VOP3A
{
public:
Inst_VOP3__V_CMPX_EQ_U32(InFmt_VOP3A*);
~Inst_VOP3__V_CMPX_EQ_U32();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 2; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //src_0
return 4;
case 1: //src_1
return 4;
case 2: //sdst
return 8;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_VOP3__V_CMPX_EQ_U32
class Inst_VOP3__V_CMPX_LE_U32 : public Inst_VOP3A
{
public:
Inst_VOP3__V_CMPX_LE_U32(InFmt_VOP3A*);
~Inst_VOP3__V_CMPX_LE_U32();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 2; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //src_0
return 4;
case 1: //src_1
return 4;
case 2: //sdst
return 8;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_VOP3__V_CMPX_LE_U32
class Inst_VOP3__V_CMPX_GT_U32 : public Inst_VOP3A
{
public:
Inst_VOP3__V_CMPX_GT_U32(InFmt_VOP3A*);
~Inst_VOP3__V_CMPX_GT_U32();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 2; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //src_0
return 4;
case 1: //src_1
return 4;
case 2: //sdst
return 8;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_VOP3__V_CMPX_GT_U32
class Inst_VOP3__V_CMPX_NE_U32 : public Inst_VOP3A
{
public:
Inst_VOP3__V_CMPX_NE_U32(InFmt_VOP3A*);
~Inst_VOP3__V_CMPX_NE_U32();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 2; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //src_0
return 4;
case 1: //src_1
return 4;
case 2: //sdst
return 8;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_VOP3__V_CMPX_NE_U32
class Inst_VOP3__V_CMPX_GE_U32 : public Inst_VOP3A
{
public:
Inst_VOP3__V_CMPX_GE_U32(InFmt_VOP3A*);
~Inst_VOP3__V_CMPX_GE_U32();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 2; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //src_0
return 4;
case 1: //src_1
return 4;
case 2: //sdst
return 8;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_VOP3__V_CMPX_GE_U32
class Inst_VOP3__V_CMPX_T_U32 : public Inst_VOP3A
{
public:
Inst_VOP3__V_CMPX_T_U32(InFmt_VOP3A*);
~Inst_VOP3__V_CMPX_T_U32();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 2; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //src_0
return 4;
case 1: //src_1
return 4;
case 2: //sdst
return 8;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_VOP3__V_CMPX_T_U32
class Inst_VOP3__V_CMP_F_I64 : public Inst_VOP3A
{
public:
Inst_VOP3__V_CMP_F_I64(InFmt_VOP3A*);
~Inst_VOP3__V_CMP_F_I64();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 2; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //src_0
return 8;
case 1: //src_1
return 8;
case 2: //sdst
return 8;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_VOP3__V_CMP_F_I64
class Inst_VOP3__V_CMP_LT_I64 : public Inst_VOP3A
{
public:
Inst_VOP3__V_CMP_LT_I64(InFmt_VOP3A*);
~Inst_VOP3__V_CMP_LT_I64();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 2; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //src_0
return 8;
case 1: //src_1
return 8;
case 2: //sdst
return 8;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_VOP3__V_CMP_LT_I64
class Inst_VOP3__V_CMP_EQ_I64 : public Inst_VOP3A
{
public:
Inst_VOP3__V_CMP_EQ_I64(InFmt_VOP3A*);
~Inst_VOP3__V_CMP_EQ_I64();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 2; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //src_0
return 8;
case 1: //src_1
return 8;
case 2: //sdst
return 8;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_VOP3__V_CMP_EQ_I64
class Inst_VOP3__V_CMP_LE_I64 : public Inst_VOP3A
{
public:
Inst_VOP3__V_CMP_LE_I64(InFmt_VOP3A*);
~Inst_VOP3__V_CMP_LE_I64();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 2; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //src_0
return 8;
case 1: //src_1
return 8;
case 2: //sdst
return 8;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_VOP3__V_CMP_LE_I64
class Inst_VOP3__V_CMP_GT_I64 : public Inst_VOP3A
{
public:
Inst_VOP3__V_CMP_GT_I64(InFmt_VOP3A*);
~Inst_VOP3__V_CMP_GT_I64();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 2; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //src_0
return 8;
case 1: //src_1
return 8;
case 2: //sdst
return 8;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_VOP3__V_CMP_GT_I64
class Inst_VOP3__V_CMP_NE_I64 : public Inst_VOP3A
{
public:
Inst_VOP3__V_CMP_NE_I64(InFmt_VOP3A*);
~Inst_VOP3__V_CMP_NE_I64();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 2; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //src_0
return 8;
case 1: //src_1
return 8;
case 2: //sdst
return 8;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_VOP3__V_CMP_NE_I64
class Inst_VOP3__V_CMP_GE_I64 : public Inst_VOP3A
{
public:
Inst_VOP3__V_CMP_GE_I64(InFmt_VOP3A*);
~Inst_VOP3__V_CMP_GE_I64();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 2; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //src_0
return 8;
case 1: //src_1
return 8;
case 2: //sdst
return 8;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_VOP3__V_CMP_GE_I64
class Inst_VOP3__V_CMP_T_I64 : public Inst_VOP3A
{
public:
Inst_VOP3__V_CMP_T_I64(InFmt_VOP3A*);
~Inst_VOP3__V_CMP_T_I64();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 2; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //src_0
return 8;
case 1: //src_1
return 8;
case 2: //sdst
return 8;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_VOP3__V_CMP_T_I64
class Inst_VOP3__V_CMP_F_U64 : public Inst_VOP3A
{
public:
Inst_VOP3__V_CMP_F_U64(InFmt_VOP3A*);
~Inst_VOP3__V_CMP_F_U64();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 2; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //src_0
return 8;
case 1: //src_1
return 8;
case 2: //sdst
return 8;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_VOP3__V_CMP_F_U64
class Inst_VOP3__V_CMP_LT_U64 : public Inst_VOP3A
{
public:
Inst_VOP3__V_CMP_LT_U64(InFmt_VOP3A*);
~Inst_VOP3__V_CMP_LT_U64();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 2; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //src_0
return 8;
case 1: //src_1
return 8;
case 2: //sdst
return 8;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_VOP3__V_CMP_LT_U64
class Inst_VOP3__V_CMP_EQ_U64 : public Inst_VOP3A
{
public:
Inst_VOP3__V_CMP_EQ_U64(InFmt_VOP3A*);
~Inst_VOP3__V_CMP_EQ_U64();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 2; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //src_0
return 8;
case 1: //src_1
return 8;
case 2: //sdst
return 8;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_VOP3__V_CMP_EQ_U64
class Inst_VOP3__V_CMP_LE_U64 : public Inst_VOP3A
{
public:
Inst_VOP3__V_CMP_LE_U64(InFmt_VOP3A*);
~Inst_VOP3__V_CMP_LE_U64();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 2; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //src_0
return 8;
case 1: //src_1
return 8;
case 2: //sdst
return 8;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_VOP3__V_CMP_LE_U64
class Inst_VOP3__V_CMP_GT_U64 : public Inst_VOP3A
{
public:
Inst_VOP3__V_CMP_GT_U64(InFmt_VOP3A*);
~Inst_VOP3__V_CMP_GT_U64();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 2; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //src_0
return 8;
case 1: //src_1
return 8;
case 2: //sdst
return 8;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_VOP3__V_CMP_GT_U64
class Inst_VOP3__V_CMP_NE_U64 : public Inst_VOP3A
{
public:
Inst_VOP3__V_CMP_NE_U64(InFmt_VOP3A*);
~Inst_VOP3__V_CMP_NE_U64();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 2; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //src_0
return 8;
case 1: //src_1
return 8;
case 2: //sdst
return 8;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_VOP3__V_CMP_NE_U64
class Inst_VOP3__V_CMP_GE_U64 : public Inst_VOP3A
{
public:
Inst_VOP3__V_CMP_GE_U64(InFmt_VOP3A*);
~Inst_VOP3__V_CMP_GE_U64();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 2; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //src_0
return 8;
case 1: //src_1
return 8;
case 2: //sdst
return 8;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_VOP3__V_CMP_GE_U64
class Inst_VOP3__V_CMP_T_U64 : public Inst_VOP3A
{
public:
Inst_VOP3__V_CMP_T_U64(InFmt_VOP3A*);
~Inst_VOP3__V_CMP_T_U64();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 2; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //src_0
return 8;
case 1: //src_1
return 8;
case 2: //sdst
return 8;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_VOP3__V_CMP_T_U64
class Inst_VOP3__V_CMPX_F_I64 : public Inst_VOP3A
{
public:
Inst_VOP3__V_CMPX_F_I64(InFmt_VOP3A*);
~Inst_VOP3__V_CMPX_F_I64();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 2; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //src_0
return 8;
case 1: //src_1
return 8;
case 2: //sdst
return 8;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_VOP3__V_CMPX_F_I64
class Inst_VOP3__V_CMPX_LT_I64 : public Inst_VOP3A
{
public:
Inst_VOP3__V_CMPX_LT_I64(InFmt_VOP3A*);
~Inst_VOP3__V_CMPX_LT_I64();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 2; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //src_0
return 8;
case 1: //src_1
return 8;
case 2: //sdst
return 8;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_VOP3__V_CMPX_LT_I64
class Inst_VOP3__V_CMPX_EQ_I64 : public Inst_VOP3A
{
public:
Inst_VOP3__V_CMPX_EQ_I64(InFmt_VOP3A*);
~Inst_VOP3__V_CMPX_EQ_I64();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 2; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //src_0
return 8;
case 1: //src_1
return 8;
case 2: //sdst
return 8;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_VOP3__V_CMPX_EQ_I64
class Inst_VOP3__V_CMPX_LE_I64 : public Inst_VOP3A
{
public:
Inst_VOP3__V_CMPX_LE_I64(InFmt_VOP3A*);
~Inst_VOP3__V_CMPX_LE_I64();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 2; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //src_0
return 8;
case 1: //src_1
return 8;
case 2: //sdst
return 8;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_VOP3__V_CMPX_LE_I64
class Inst_VOP3__V_CMPX_GT_I64 : public Inst_VOP3A
{
public:
Inst_VOP3__V_CMPX_GT_I64(InFmt_VOP3A*);
~Inst_VOP3__V_CMPX_GT_I64();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 2; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //src_0
return 8;
case 1: //src_1
return 8;
case 2: //sdst
return 8;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_VOP3__V_CMPX_GT_I64
class Inst_VOP3__V_CMPX_NE_I64 : public Inst_VOP3A
{
public:
Inst_VOP3__V_CMPX_NE_I64(InFmt_VOP3A*);
~Inst_VOP3__V_CMPX_NE_I64();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 2; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //src_0
return 8;
case 1: //src_1
return 8;
case 2: //sdst
return 8;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_VOP3__V_CMPX_NE_I64
class Inst_VOP3__V_CMPX_GE_I64 : public Inst_VOP3A
{
public:
Inst_VOP3__V_CMPX_GE_I64(InFmt_VOP3A*);
~Inst_VOP3__V_CMPX_GE_I64();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 2; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //src_0
return 8;
case 1: //src_1
return 8;
case 2: //sdst
return 8;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_VOP3__V_CMPX_GE_I64
class Inst_VOP3__V_CMPX_T_I64 : public Inst_VOP3A
{
public:
Inst_VOP3__V_CMPX_T_I64(InFmt_VOP3A*);
~Inst_VOP3__V_CMPX_T_I64();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 2; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //src_0
return 8;
case 1: //src_1
return 8;
case 2: //sdst
return 8;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_VOP3__V_CMPX_T_I64
class Inst_VOP3__V_CMPX_F_U64 : public Inst_VOP3A
{
public:
Inst_VOP3__V_CMPX_F_U64(InFmt_VOP3A*);
~Inst_VOP3__V_CMPX_F_U64();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 2; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //src_0
return 8;
case 1: //src_1
return 8;
case 2: //sdst
return 8;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_VOP3__V_CMPX_F_U64
class Inst_VOP3__V_CMPX_LT_U64 : public Inst_VOP3A
{
public:
Inst_VOP3__V_CMPX_LT_U64(InFmt_VOP3A*);
~Inst_VOP3__V_CMPX_LT_U64();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 2; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //src_0
return 8;
case 1: //src_1
return 8;
case 2: //sdst
return 8;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_VOP3__V_CMPX_LT_U64
class Inst_VOP3__V_CMPX_EQ_U64 : public Inst_VOP3A
{
public:
Inst_VOP3__V_CMPX_EQ_U64(InFmt_VOP3A*);
~Inst_VOP3__V_CMPX_EQ_U64();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 2; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //src_0
return 8;
case 1: //src_1
return 8;
case 2: //sdst
return 8;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_VOP3__V_CMPX_EQ_U64
class Inst_VOP3__V_CMPX_LE_U64 : public Inst_VOP3A
{
public:
Inst_VOP3__V_CMPX_LE_U64(InFmt_VOP3A*);
~Inst_VOP3__V_CMPX_LE_U64();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 2; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //src_0
return 8;
case 1: //src_1
return 8;
case 2: //sdst
return 8;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_VOP3__V_CMPX_LE_U64
class Inst_VOP3__V_CMPX_GT_U64 : public Inst_VOP3A
{
public:
Inst_VOP3__V_CMPX_GT_U64(InFmt_VOP3A*);
~Inst_VOP3__V_CMPX_GT_U64();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 2; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //src_0
return 8;
case 1: //src_1
return 8;
case 2: //sdst
return 8;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_VOP3__V_CMPX_GT_U64
class Inst_VOP3__V_CMPX_NE_U64 : public Inst_VOP3A
{
public:
Inst_VOP3__V_CMPX_NE_U64(InFmt_VOP3A*);
~Inst_VOP3__V_CMPX_NE_U64();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 2; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //src_0
return 8;
case 1: //src_1
return 8;
case 2: //sdst
return 8;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_VOP3__V_CMPX_NE_U64
class Inst_VOP3__V_CMPX_GE_U64 : public Inst_VOP3A
{
public:
Inst_VOP3__V_CMPX_GE_U64(InFmt_VOP3A*);
~Inst_VOP3__V_CMPX_GE_U64();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 2; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //src_0
return 8;
case 1: //src_1
return 8;
case 2: //sdst
return 8;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_VOP3__V_CMPX_GE_U64
class Inst_VOP3__V_CMPX_T_U64 : public Inst_VOP3A
{
public:
Inst_VOP3__V_CMPX_T_U64(InFmt_VOP3A*);
~Inst_VOP3__V_CMPX_T_U64();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 2; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //src_0
return 8;
case 1: //src_1
return 8;
case 2: //sdst
return 8;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_VOP3__V_CMPX_T_U64
class Inst_VOP3__V_CNDMASK_B32 : public Inst_VOP3A
{
public:
Inst_VOP3__V_CNDMASK_B32(InFmt_VOP3A*);
~Inst_VOP3__V_CNDMASK_B32();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 3; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //src_0
return 4;
case 1: //src_1
return 4;
case 2: //carryin
return 8;
case 3: //vdst
return 4;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_VOP3__V_CNDMASK_B32
class Inst_VOP3__V_ADD_F32 : public Inst_VOP3A
{
public:
Inst_VOP3__V_ADD_F32(InFmt_VOP3A*);
~Inst_VOP3__V_ADD_F32();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 2; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //src_0
return 4;
case 1: //src_1
return 4;
case 2: //vdst
return 4;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_VOP3__V_ADD_F32
class Inst_VOP3__V_SUB_F32 : public Inst_VOP3A
{
public:
Inst_VOP3__V_SUB_F32(InFmt_VOP3A*);
~Inst_VOP3__V_SUB_F32();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 2; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //src_0
return 4;
case 1: //src_1
return 4;
case 2: //vdst
return 4;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_VOP3__V_SUB_F32
class Inst_VOP3__V_SUBREV_F32 : public Inst_VOP3A
{
public:
Inst_VOP3__V_SUBREV_F32(InFmt_VOP3A*);
~Inst_VOP3__V_SUBREV_F32();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 2; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //src_0
return 4;
case 1: //src_1
return 4;
case 2: //vdst
return 4;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_VOP3__V_SUBREV_F32
class Inst_VOP3__V_MUL_LEGACY_F32 : public Inst_VOP3A
{
public:
Inst_VOP3__V_MUL_LEGACY_F32(InFmt_VOP3A*);
~Inst_VOP3__V_MUL_LEGACY_F32();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 2; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //src_0
return 4;
case 1: //src_1
return 4;
case 2: //vdst
return 4;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_VOP3__V_MUL_LEGACY_F32
class Inst_VOP3__V_MUL_F32 : public Inst_VOP3A
{
public:
Inst_VOP3__V_MUL_F32(InFmt_VOP3A*);
~Inst_VOP3__V_MUL_F32();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 2; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //src_0
return 4;
case 1: //src_1
return 4;
case 2: //vdst
return 4;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_VOP3__V_MUL_F32
class Inst_VOP3__V_MUL_I32_I24 : public Inst_VOP3A
{
public:
Inst_VOP3__V_MUL_I32_I24(InFmt_VOP3A*);
~Inst_VOP3__V_MUL_I32_I24();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 2; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //src_0
return 4;
case 1: //src_1
return 4;
case 2: //vdst
return 4;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_VOP3__V_MUL_I32_I24
class Inst_VOP3__V_MUL_HI_I32_I24 : public Inst_VOP3A
{
public:
Inst_VOP3__V_MUL_HI_I32_I24(InFmt_VOP3A*);
~Inst_VOP3__V_MUL_HI_I32_I24();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 2; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //src_0
return 4;
case 1: //src_1
return 4;
case 2: //vdst
return 4;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_VOP3__V_MUL_HI_I32_I24
class Inst_VOP3__V_MUL_U32_U24 : public Inst_VOP3A
{
public:
Inst_VOP3__V_MUL_U32_U24(InFmt_VOP3A*);
~Inst_VOP3__V_MUL_U32_U24();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 2; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //src_0
return 4;
case 1: //src_1
return 4;
case 2: //vdst
return 4;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_VOP3__V_MUL_U32_U24
class Inst_VOP3__V_MUL_HI_U32_U24 : public Inst_VOP3A
{
public:
Inst_VOP3__V_MUL_HI_U32_U24(InFmt_VOP3A*);
~Inst_VOP3__V_MUL_HI_U32_U24();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 2; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //src_0
return 4;
case 1: //src_1
return 4;
case 2: //vdst
return 4;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_VOP3__V_MUL_HI_U32_U24
class Inst_VOP3__V_MIN_F32 : public Inst_VOP3A
{
public:
Inst_VOP3__V_MIN_F32(InFmt_VOP3A*);
~Inst_VOP3__V_MIN_F32();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 2; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //src_0
return 4;
case 1: //src_1
return 4;
case 2: //vdst
return 4;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_VOP3__V_MIN_F32
class Inst_VOP3__V_MAX_F32 : public Inst_VOP3A
{
public:
Inst_VOP3__V_MAX_F32(InFmt_VOP3A*);
~Inst_VOP3__V_MAX_F32();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 2; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //src_0
return 4;
case 1: //src_1
return 4;
case 2: //vdst
return 4;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_VOP3__V_MAX_F32
class Inst_VOP3__V_MIN_I32 : public Inst_VOP3A
{
public:
Inst_VOP3__V_MIN_I32(InFmt_VOP3A*);
~Inst_VOP3__V_MIN_I32();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 2; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //src_0
return 4;
case 1: //src_1
return 4;
case 2: //vdst
return 4;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_VOP3__V_MIN_I32
class Inst_VOP3__V_MAX_I32 : public Inst_VOP3A
{
public:
Inst_VOP3__V_MAX_I32(InFmt_VOP3A*);
~Inst_VOP3__V_MAX_I32();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 2; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //src_0
return 4;
case 1: //src_1
return 4;
case 2: //vdst
return 4;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_VOP3__V_MAX_I32
class Inst_VOP3__V_MIN_U32 : public Inst_VOP3A
{
public:
Inst_VOP3__V_MIN_U32(InFmt_VOP3A*);
~Inst_VOP3__V_MIN_U32();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 2; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //src_0
return 4;
case 1: //src_1
return 4;
case 2: //vdst
return 4;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_VOP3__V_MIN_U32
class Inst_VOP3__V_MAX_U32 : public Inst_VOP3A
{
public:
Inst_VOP3__V_MAX_U32(InFmt_VOP3A*);
~Inst_VOP3__V_MAX_U32();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 2; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //src_0
return 4;
case 1: //src_1
return 4;
case 2: //vdst
return 4;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_VOP3__V_MAX_U32
class Inst_VOP3__V_LSHRREV_B32 : public Inst_VOP3A
{
public:
Inst_VOP3__V_LSHRREV_B32(InFmt_VOP3A*);
~Inst_VOP3__V_LSHRREV_B32();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 2; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //src_0
return 4;
case 1: //src_1
return 4;
case 2: //vdst
return 4;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_VOP3__V_LSHRREV_B32
class Inst_VOP3__V_ASHRREV_I32 : public Inst_VOP3A
{
public:
Inst_VOP3__V_ASHRREV_I32(InFmt_VOP3A*);
~Inst_VOP3__V_ASHRREV_I32();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 2; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //src_0
return 4;
case 1: //src_1
return 4;
case 2: //vdst
return 4;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_VOP3__V_ASHRREV_I32
class Inst_VOP3__V_LSHLREV_B32 : public Inst_VOP3A
{
public:
Inst_VOP3__V_LSHLREV_B32(InFmt_VOP3A*);
~Inst_VOP3__V_LSHLREV_B32();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 2; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //src_0
return 4;
case 1: //src_1
return 4;
case 2: //vdst
return 4;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_VOP3__V_LSHLREV_B32
class Inst_VOP3__V_AND_B32 : public Inst_VOP3A
{
public:
Inst_VOP3__V_AND_B32(InFmt_VOP3A*);
~Inst_VOP3__V_AND_B32();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 2; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //src_0
return 4;
case 1: //src_1
return 4;
case 2: //vdst
return 4;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_VOP3__V_AND_B32
class Inst_VOP3__V_OR_B32 : public Inst_VOP3A
{
public:
Inst_VOP3__V_OR_B32(InFmt_VOP3A*);
~Inst_VOP3__V_OR_B32();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 2; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //src_0
return 4;
case 1: //src_1
return 4;
case 2: //vdst
return 4;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_VOP3__V_OR_B32
class Inst_VOP3__V_OR3_B32 : public Inst_VOP3A
{
public:
Inst_VOP3__V_OR3_B32(InFmt_VOP3A*);
~Inst_VOP3__V_OR3_B32();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 3; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //src_0
return 4;
case 1: //src_1
return 4;
case 2: //src_2
return 4;
case 3: //vdst
return 4;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_VOP3__V_OR_B32
class Inst_VOP3__V_XOR_B32 : public Inst_VOP3A
{
public:
Inst_VOP3__V_XOR_B32(InFmt_VOP3A*);
~Inst_VOP3__V_XOR_B32();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 2; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //src_0
return 4;
case 1: //src_1
return 4;
case 2: //vdst
return 4;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_VOP3__V_XOR_B32
class Inst_VOP3__V_MAC_F32 : public Inst_VOP3A
{
public:
Inst_VOP3__V_MAC_F32(InFmt_VOP3A*);
~Inst_VOP3__V_MAC_F32();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 2; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //src_0
return 4;
case 1: //src_1
return 4;
case 2: //vdst
return 4;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_VOP3__V_MAC_F32
class Inst_VOP3__V_ADD_CO_U32 : public Inst_VOP3B
{
public:
Inst_VOP3__V_ADD_CO_U32(InFmt_VOP3B*);
~Inst_VOP3__V_ADD_CO_U32();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 2; }
int numSrcRegOperands() override { return 2; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //src_0
return 4;
case 1: //src_1
return 4;
case 2: //vdst
return 4;
case 3: //carryout
return 8;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_VOP3__V_ADD_CO_U32
class Inst_VOP3__V_SUB_CO_U32 : public Inst_VOP3B
{
public:
Inst_VOP3__V_SUB_CO_U32(InFmt_VOP3B*);
~Inst_VOP3__V_SUB_CO_U32();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 2; }
int numSrcRegOperands() override { return 2; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //src_0
return 4;
case 1: //src_1
return 4;
case 2: //vdst
return 4;
case 3: //carryout
return 8;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_VOP3__V_SUB_CO_U32
class Inst_VOP3__V_SUBREV_CO_U32 : public Inst_VOP3B
{
public:
Inst_VOP3__V_SUBREV_CO_U32(InFmt_VOP3B*);
~Inst_VOP3__V_SUBREV_CO_U32();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 2; }
int numSrcRegOperands() override { return 2; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //src_0
return 4;
case 1: //src_1
return 4;
case 2: //vdst
return 4;
case 3: //carryout
return 8;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_VOP3__V_SUBREV_CO_U32
class Inst_VOP3__V_ADDC_CO_U32 : public Inst_VOP3B
{
public:
Inst_VOP3__V_ADDC_CO_U32(InFmt_VOP3B*);
~Inst_VOP3__V_ADDC_CO_U32();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 2; }
int numSrcRegOperands() override { return 3; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //src_0
return 4;
case 1: //src_1
return 4;
case 2: //carryin
return 8;
case 3: //vdst
return 4;
case 4: //carryout
return 8;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_VOP3__V_ADDC_CO_U32
class Inst_VOP3__V_SUBB_CO_U32 : public Inst_VOP3B
{
public:
Inst_VOP3__V_SUBB_CO_U32(InFmt_VOP3B*);
~Inst_VOP3__V_SUBB_CO_U32();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 2; }
int numSrcRegOperands() override { return 3; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //src_0
return 4;
case 1: //src_1
return 4;
case 2: //carryin
return 8;
case 3: //vdst
return 4;
case 4: //carryout
return 8;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_VOP3__V_SUBB_CO_U32
class Inst_VOP3__V_SUBBREV_CO_U32 : public Inst_VOP3B
{
public:
Inst_VOP3__V_SUBBREV_CO_U32(InFmt_VOP3B*);
~Inst_VOP3__V_SUBBREV_CO_U32();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 2; }
int numSrcRegOperands() override { return 3; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //src_0
return 4;
case 1: //src_1
return 4;
case 2: //carryin
return 8;
case 3: //vdst
return 4;
case 4: //carryout
return 8;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_VOP3__V_SUBBREV_CO_U32
class Inst_VOP3__V_ADD_F16 : public Inst_VOP3A
{
public:
Inst_VOP3__V_ADD_F16(InFmt_VOP3A*);
~Inst_VOP3__V_ADD_F16();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 2; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //src_0
return 2;
case 1: //src_1
return 2;
case 2: //vdst
return 2;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_VOP3__V_ADD_F16
class Inst_VOP3__V_SUB_F16 : public Inst_VOP3A
{
public:
Inst_VOP3__V_SUB_F16(InFmt_VOP3A*);
~Inst_VOP3__V_SUB_F16();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 2; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //src_0
return 2;
case 1: //src_1
return 2;
case 2: //vdst
return 2;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_VOP3__V_SUB_F16
class Inst_VOP3__V_SUBREV_F16 : public Inst_VOP3A
{
public:
Inst_VOP3__V_SUBREV_F16(InFmt_VOP3A*);
~Inst_VOP3__V_SUBREV_F16();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 2; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //src_0
return 2;
case 1: //src_1
return 2;
case 2: //vdst
return 2;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_VOP3__V_SUBREV_F16
class Inst_VOP3__V_MUL_F16 : public Inst_VOP3A
{
public:
Inst_VOP3__V_MUL_F16(InFmt_VOP3A*);
~Inst_VOP3__V_MUL_F16();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 2; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //src_0
return 2;
case 1: //src_1
return 2;
case 2: //vdst
return 2;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_VOP3__V_MUL_F16
class Inst_VOP3__V_MAC_F16 : public Inst_VOP3A
{
public:
Inst_VOP3__V_MAC_F16(InFmt_VOP3A*);
~Inst_VOP3__V_MAC_F16();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 2; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //src_0
return 2;
case 1: //src_1
return 2;
case 2: //vdst
return 2;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_VOP3__V_MAC_F16
class Inst_VOP3__V_ADD_U16 : public Inst_VOP3A
{
public:
Inst_VOP3__V_ADD_U16(InFmt_VOP3A*);
~Inst_VOP3__V_ADD_U16();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 2; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //src_0
return 2;
case 1: //src_1
return 2;
case 2: //vdst
return 2;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_VOP3__V_ADD_U16
class Inst_VOP3__V_SUB_U16 : public Inst_VOP3A
{
public:
Inst_VOP3__V_SUB_U16(InFmt_VOP3A*);
~Inst_VOP3__V_SUB_U16();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 2; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //src_0
return 2;
case 1: //src_1
return 2;
case 2: //vdst
return 2;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_VOP3__V_SUB_U16
class Inst_VOP3__V_SUBREV_U16 : public Inst_VOP3A
{
public:
Inst_VOP3__V_SUBREV_U16(InFmt_VOP3A*);
~Inst_VOP3__V_SUBREV_U16();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 2; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //src_0
return 2;
case 1: //src_1
return 2;
case 2: //vdst
return 2;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_VOP3__V_SUBREV_U16
class Inst_VOP3__V_MUL_LO_U16 : public Inst_VOP3A
{
public:
Inst_VOP3__V_MUL_LO_U16(InFmt_VOP3A*);
~Inst_VOP3__V_MUL_LO_U16();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 2; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //src_0
return 2;
case 1: //src_1
return 2;
case 2: //vdst
return 2;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_VOP3__V_MUL_LO_U16
class Inst_VOP3__V_LSHLREV_B16 : public Inst_VOP3A
{
public:
Inst_VOP3__V_LSHLREV_B16(InFmt_VOP3A*);
~Inst_VOP3__V_LSHLREV_B16();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 2; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //src_0
return 2;
case 1: //src_1
return 2;
case 2: //vdst
return 2;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_VOP3__V_LSHLREV_B16
class Inst_VOP3__V_LSHRREV_B16 : public Inst_VOP3A
{
public:
Inst_VOP3__V_LSHRREV_B16(InFmt_VOP3A*);
~Inst_VOP3__V_LSHRREV_B16();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 2; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //src_0
return 2;
case 1: //src_1
return 2;
case 2: //vdst
return 2;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_VOP3__V_LSHRREV_B16
class Inst_VOP3__V_ASHRREV_I16 : public Inst_VOP3A
{
public:
Inst_VOP3__V_ASHRREV_I16(InFmt_VOP3A*);
~Inst_VOP3__V_ASHRREV_I16();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 2; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //src_0
return 2;
case 1: //src_1
return 2;
case 2: //vdst
return 2;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_VOP3__V_ASHRREV_I16
class Inst_VOP3__V_MAX_F16 : public Inst_VOP3A
{
public:
Inst_VOP3__V_MAX_F16(InFmt_VOP3A*);
~Inst_VOP3__V_MAX_F16();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 2; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //src_0
return 2;
case 1: //src_1
return 2;
case 2: //vdst
return 2;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_VOP3__V_MAX_F16
class Inst_VOP3__V_MIN_F16 : public Inst_VOP3A
{
public:
Inst_VOP3__V_MIN_F16(InFmt_VOP3A*);
~Inst_VOP3__V_MIN_F16();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 2; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //src_0
return 2;
case 1: //src_1
return 2;
case 2: //vdst
return 2;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_VOP3__V_MIN_F16
class Inst_VOP3__V_MAX_U16 : public Inst_VOP3A
{
public:
Inst_VOP3__V_MAX_U16(InFmt_VOP3A*);
~Inst_VOP3__V_MAX_U16();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 2; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //src_0
return 2;
case 1: //src_1
return 2;
case 2: //vdst
return 2;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_VOP3__V_MAX_U16
class Inst_VOP3__V_MAX_I16 : public Inst_VOP3A
{
public:
Inst_VOP3__V_MAX_I16(InFmt_VOP3A*);
~Inst_VOP3__V_MAX_I16();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 2; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //src_0
return 2;
case 1: //src_1
return 2;
case 2: //vdst
return 2;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_VOP3__V_MAX_I16
class Inst_VOP3__V_MIN_U16 : public Inst_VOP3A
{
public:
Inst_VOP3__V_MIN_U16(InFmt_VOP3A*);
~Inst_VOP3__V_MIN_U16();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 2; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //src_0
return 2;
case 1: //src_1
return 2;
case 2: //vdst
return 2;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_VOP3__V_MIN_U16
class Inst_VOP3__V_MIN_I16 : public Inst_VOP3A
{
public:
Inst_VOP3__V_MIN_I16(InFmt_VOP3A*);
~Inst_VOP3__V_MIN_I16();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 2; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //src_0
return 2;
case 1: //src_1
return 2;
case 2: //vdst
return 2;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_VOP3__V_MIN_I16
class Inst_VOP3__V_LDEXP_F16 : public Inst_VOP3A
{
public:
Inst_VOP3__V_LDEXP_F16(InFmt_VOP3A*);
~Inst_VOP3__V_LDEXP_F16();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 2; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //src_0
return 2;
case 1: //src_1
return 2;
case 2: //vdst
return 2;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_VOP3__V_LDEXP_F16
class Inst_VOP3__V_NOP : public Inst_VOP3A
{
public:
Inst_VOP3__V_NOP(InFmt_VOP3A*);
~Inst_VOP3__V_NOP();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 0; }
int numSrcRegOperands() override { return 0; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_VOP3__V_NOP
class Inst_VOP3__V_MOV_B32 : public Inst_VOP3A
{
public:
Inst_VOP3__V_MOV_B32(InFmt_VOP3A*);
~Inst_VOP3__V_MOV_B32();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 1; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //src
return 4;
case 1: //vdst
return 4;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_VOP3__V_MOV_B32
class Inst_VOP3__V_CVT_I32_F64 : public Inst_VOP3A
{
public:
Inst_VOP3__V_CVT_I32_F64(InFmt_VOP3A*);
~Inst_VOP3__V_CVT_I32_F64();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 1; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //src
return 8;
case 1: //vdst
return 4;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_VOP3__V_CVT_I32_F64
class Inst_VOP3__V_CVT_F64_I32 : public Inst_VOP3A
{
public:
Inst_VOP3__V_CVT_F64_I32(InFmt_VOP3A*);
~Inst_VOP3__V_CVT_F64_I32();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 1; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //src
return 4;
case 1: //vdst
return 8;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_VOP3__V_CVT_F64_I32
class Inst_VOP3__V_CVT_F32_I32 : public Inst_VOP3A
{
public:
Inst_VOP3__V_CVT_F32_I32(InFmt_VOP3A*);
~Inst_VOP3__V_CVT_F32_I32();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 1; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //src
return 4;
case 1: //vdst
return 4;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_VOP3__V_CVT_F32_I32
class Inst_VOP3__V_CVT_F32_U32 : public Inst_VOP3A
{
public:
Inst_VOP3__V_CVT_F32_U32(InFmt_VOP3A*);
~Inst_VOP3__V_CVT_F32_U32();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 1; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //src
return 4;
case 1: //vdst
return 4;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_VOP3__V_CVT_F32_U32
class Inst_VOP3__V_CVT_U32_F32 : public Inst_VOP3A
{
public:
Inst_VOP3__V_CVT_U32_F32(InFmt_VOP3A*);
~Inst_VOP3__V_CVT_U32_F32();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 1; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //src
return 4;
case 1: //vdst
return 4;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_VOP3__V_CVT_U32_F32
class Inst_VOP3__V_CVT_I32_F32 : public Inst_VOP3A
{
public:
Inst_VOP3__V_CVT_I32_F32(InFmt_VOP3A*);
~Inst_VOP3__V_CVT_I32_F32();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 1; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //src
return 4;
case 1: //vdst
return 4;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_VOP3__V_CVT_I32_F32
class Inst_VOP3__V_MOV_FED_B32 : public Inst_VOP3A
{
public:
Inst_VOP3__V_MOV_FED_B32(InFmt_VOP3A*);
~Inst_VOP3__V_MOV_FED_B32();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 1; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //src
return 4;
case 1: //vdst
return 4;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_VOP3__V_MOV_FED_B32
class Inst_VOP3__V_CVT_F16_F32 : public Inst_VOP3A
{
public:
Inst_VOP3__V_CVT_F16_F32(InFmt_VOP3A*);
~Inst_VOP3__V_CVT_F16_F32();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 1; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //src
return 4;
case 1: //vdst
return 2;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_VOP3__V_CVT_F16_F32
class Inst_VOP3__V_CVT_F32_F16 : public Inst_VOP3A
{
public:
Inst_VOP3__V_CVT_F32_F16(InFmt_VOP3A*);
~Inst_VOP3__V_CVT_F32_F16();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 1; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //src
return 2;
case 1: //vdst
return 4;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_VOP3__V_CVT_F32_F16
class Inst_VOP3__V_CVT_RPI_I32_F32 : public Inst_VOP3A
{
public:
Inst_VOP3__V_CVT_RPI_I32_F32(InFmt_VOP3A*);
~Inst_VOP3__V_CVT_RPI_I32_F32();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 1; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //src
return 4;
case 1: //vdst
return 4;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_VOP3__V_CVT_RPI_I32_F32
class Inst_VOP3__V_CVT_FLR_I32_F32 : public Inst_VOP3A
{
public:
Inst_VOP3__V_CVT_FLR_I32_F32(InFmt_VOP3A*);
~Inst_VOP3__V_CVT_FLR_I32_F32();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 1; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //src
return 4;
case 1: //vdst
return 4;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_VOP3__V_CVT_FLR_I32_F32
class Inst_VOP3__V_CVT_OFF_F32_I4 : public Inst_VOP3A
{
public:
Inst_VOP3__V_CVT_OFF_F32_I4(InFmt_VOP3A*);
~Inst_VOP3__V_CVT_OFF_F32_I4();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 1; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //src
return 4;
case 1: //vdst
return 4;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_VOP3__V_CVT_OFF_F32_I4
class Inst_VOP3__V_CVT_F32_F64 : public Inst_VOP3A
{
public:
Inst_VOP3__V_CVT_F32_F64(InFmt_VOP3A*);
~Inst_VOP3__V_CVT_F32_F64();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 1; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //src
return 8;
case 1: //vdst
return 4;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_VOP3__V_CVT_F32_F64
class Inst_VOP3__V_CVT_F64_F32 : public Inst_VOP3A
{
public:
Inst_VOP3__V_CVT_F64_F32(InFmt_VOP3A*);
~Inst_VOP3__V_CVT_F64_F32();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 1; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //src
return 4;
case 1: //vdst
return 8;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_VOP3__V_CVT_F64_F32
class Inst_VOP3__V_CVT_F32_UBYTE0 : public Inst_VOP3A
{
public:
Inst_VOP3__V_CVT_F32_UBYTE0(InFmt_VOP3A*);
~Inst_VOP3__V_CVT_F32_UBYTE0();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 1; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //src
return 4;
case 1: //vdst
return 4;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_VOP3__V_CVT_F32_UBYTE0
class Inst_VOP3__V_CVT_F32_UBYTE1 : public Inst_VOP3A
{
public:
Inst_VOP3__V_CVT_F32_UBYTE1(InFmt_VOP3A*);
~Inst_VOP3__V_CVT_F32_UBYTE1();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 1; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //src
return 4;
case 1: //vdst
return 4;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_VOP3__V_CVT_F32_UBYTE1
class Inst_VOP3__V_CVT_F32_UBYTE2 : public Inst_VOP3A
{
public:
Inst_VOP3__V_CVT_F32_UBYTE2(InFmt_VOP3A*);
~Inst_VOP3__V_CVT_F32_UBYTE2();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 1; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //src
return 4;
case 1: //vdst
return 4;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_VOP3__V_CVT_F32_UBYTE2
class Inst_VOP3__V_CVT_F32_UBYTE3 : public Inst_VOP3A
{
public:
Inst_VOP3__V_CVT_F32_UBYTE3(InFmt_VOP3A*);
~Inst_VOP3__V_CVT_F32_UBYTE3();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 1; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //src
return 4;
case 1: //vdst
return 4;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_VOP3__V_CVT_F32_UBYTE3
class Inst_VOP3__V_CVT_U32_F64 : public Inst_VOP3A
{
public:
Inst_VOP3__V_CVT_U32_F64(InFmt_VOP3A*);
~Inst_VOP3__V_CVT_U32_F64();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 1; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //src
return 8;
case 1: //vdst
return 4;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_VOP3__V_CVT_U32_F64
class Inst_VOP3__V_CVT_F64_U32 : public Inst_VOP3A
{
public:
Inst_VOP3__V_CVT_F64_U32(InFmt_VOP3A*);
~Inst_VOP3__V_CVT_F64_U32();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 1; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //src
return 4;
case 1: //vdst
return 8;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_VOP3__V_CVT_F64_U32
class Inst_VOP3__V_TRUNC_F64 : public Inst_VOP3A
{
public:
Inst_VOP3__V_TRUNC_F64(InFmt_VOP3A*);
~Inst_VOP3__V_TRUNC_F64();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 1; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //src
return 8;
case 1: //vdst
return 8;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_VOP3__V_TRUNC_F64
class Inst_VOP3__V_CEIL_F64 : public Inst_VOP3A
{
public:
Inst_VOP3__V_CEIL_F64(InFmt_VOP3A*);
~Inst_VOP3__V_CEIL_F64();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 1; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //src
return 8;
case 1: //vdst
return 8;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_VOP3__V_CEIL_F64
class Inst_VOP3__V_RNDNE_F64 : public Inst_VOP3A
{
public:
Inst_VOP3__V_RNDNE_F64(InFmt_VOP3A*);
~Inst_VOP3__V_RNDNE_F64();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 1; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //src
return 8;
case 1: //vdst
return 8;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_VOP3__V_RNDNE_F64
class Inst_VOP3__V_FLOOR_F64 : public Inst_VOP3A
{
public:
Inst_VOP3__V_FLOOR_F64(InFmt_VOP3A*);
~Inst_VOP3__V_FLOOR_F64();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 1; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //src
return 8;
case 1: //vdst
return 8;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_VOP3__V_FLOOR_F64
class Inst_VOP3__V_FRACT_F32 : public Inst_VOP3A
{
public:
Inst_VOP3__V_FRACT_F32(InFmt_VOP3A*);
~Inst_VOP3__V_FRACT_F32();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 1; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //src
return 4;
case 1: //vdst
return 4;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_VOP3__V_FRACT_F32
class Inst_VOP3__V_TRUNC_F32 : public Inst_VOP3A
{
public:
Inst_VOP3__V_TRUNC_F32(InFmt_VOP3A*);
~Inst_VOP3__V_TRUNC_F32();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 1; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //src
return 4;
case 1: //vdst
return 4;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_VOP3__V_TRUNC_F32
class Inst_VOP3__V_CEIL_F32 : public Inst_VOP3A
{
public:
Inst_VOP3__V_CEIL_F32(InFmt_VOP3A*);
~Inst_VOP3__V_CEIL_F32();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 1; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //src
return 4;
case 1: //vdst
return 4;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_VOP3__V_CEIL_F32
class Inst_VOP3__V_RNDNE_F32 : public Inst_VOP3A
{
public:
Inst_VOP3__V_RNDNE_F32(InFmt_VOP3A*);
~Inst_VOP3__V_RNDNE_F32();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 1; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //src
return 4;
case 1: //vdst
return 4;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_VOP3__V_RNDNE_F32
class Inst_VOP3__V_FLOOR_F32 : public Inst_VOP3A
{
public:
Inst_VOP3__V_FLOOR_F32(InFmt_VOP3A*);
~Inst_VOP3__V_FLOOR_F32();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 1; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //src
return 4;
case 1: //vdst
return 4;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_VOP3__V_FLOOR_F32
class Inst_VOP3__V_EXP_F32 : public Inst_VOP3A
{
public:
Inst_VOP3__V_EXP_F32(InFmt_VOP3A*);
~Inst_VOP3__V_EXP_F32();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 1; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //src
return 4;
case 1: //vdst
return 4;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_VOP3__V_EXP_F32
class Inst_VOP3__V_LOG_F32 : public Inst_VOP3A
{
public:
Inst_VOP3__V_LOG_F32(InFmt_VOP3A*);
~Inst_VOP3__V_LOG_F32();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 1; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //src
return 4;
case 1: //vdst
return 4;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_VOP3__V_LOG_F32
class Inst_VOP3__V_RCP_F32 : public Inst_VOP3A
{
public:
Inst_VOP3__V_RCP_F32(InFmt_VOP3A*);
~Inst_VOP3__V_RCP_F32();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 1; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //src
return 4;
case 1: //vdst
return 4;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_VOP3__V_RCP_F32
class Inst_VOP3__V_RCP_IFLAG_F32 : public Inst_VOP3A
{
public:
Inst_VOP3__V_RCP_IFLAG_F32(InFmt_VOP3A*);
~Inst_VOP3__V_RCP_IFLAG_F32();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 1; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //src
return 4;
case 1: //vdst
return 4;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_VOP3__V_RCP_IFLAG_F32
class Inst_VOP3__V_RSQ_F32 : public Inst_VOP3A
{
public:
Inst_VOP3__V_RSQ_F32(InFmt_VOP3A*);
~Inst_VOP3__V_RSQ_F32();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 1; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //src
return 4;
case 1: //vdst
return 4;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_VOP3__V_RSQ_F32
class Inst_VOP3__V_RCP_F64 : public Inst_VOP3A
{
public:
Inst_VOP3__V_RCP_F64(InFmt_VOP3A*);
~Inst_VOP3__V_RCP_F64();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 1; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //src
return 8;
case 1: //vdst
return 8;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_VOP3__V_RCP_F64
class Inst_VOP3__V_RSQ_F64 : public Inst_VOP3A
{
public:
Inst_VOP3__V_RSQ_F64(InFmt_VOP3A*);
~Inst_VOP3__V_RSQ_F64();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 1; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //src
return 8;
case 1: //vdst
return 8;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_VOP3__V_RSQ_F64
class Inst_VOP3__V_SQRT_F32 : public Inst_VOP3A
{
public:
Inst_VOP3__V_SQRT_F32(InFmt_VOP3A*);
~Inst_VOP3__V_SQRT_F32();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 1; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //src
return 4;
case 1: //vdst
return 4;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_VOP3__V_SQRT_F32
class Inst_VOP3__V_SQRT_F64 : public Inst_VOP3A
{
public:
Inst_VOP3__V_SQRT_F64(InFmt_VOP3A*);
~Inst_VOP3__V_SQRT_F64();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 1; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //src
return 8;
case 1: //vdst
return 8;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_VOP3__V_SQRT_F64
class Inst_VOP3__V_SIN_F32 : public Inst_VOP3A
{
public:
Inst_VOP3__V_SIN_F32(InFmt_VOP3A*);
~Inst_VOP3__V_SIN_F32();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 1; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //src
return 4;
case 1: //vdst
return 4;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_VOP3__V_SIN_F32
class Inst_VOP3__V_COS_F32 : public Inst_VOP3A
{
public:
Inst_VOP3__V_COS_F32(InFmt_VOP3A*);
~Inst_VOP3__V_COS_F32();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 1; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //src
return 4;
case 1: //vdst
return 4;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_VOP3__V_COS_F32
class Inst_VOP3__V_NOT_B32 : public Inst_VOP3A
{
public:
Inst_VOP3__V_NOT_B32(InFmt_VOP3A*);
~Inst_VOP3__V_NOT_B32();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 1; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //src
return 4;
case 1: //vdst
return 4;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_VOP3__V_NOT_B32
class Inst_VOP3__V_BFREV_B32 : public Inst_VOP3A
{
public:
Inst_VOP3__V_BFREV_B32(InFmt_VOP3A*);
~Inst_VOP3__V_BFREV_B32();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 1; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //src
return 4;
case 1: //vdst
return 4;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_VOP3__V_BFREV_B32
class Inst_VOP3__V_FFBH_U32 : public Inst_VOP3A
{
public:
Inst_VOP3__V_FFBH_U32(InFmt_VOP3A*);
~Inst_VOP3__V_FFBH_U32();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 1; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //src
return 4;
case 1: //vdst
return 4;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_VOP3__V_FFBH_U32
class Inst_VOP3__V_FFBL_B32 : public Inst_VOP3A
{
public:
Inst_VOP3__V_FFBL_B32(InFmt_VOP3A*);
~Inst_VOP3__V_FFBL_B32();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 1; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //src
return 4;
case 1: //vdst
return 4;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_VOP3__V_FFBL_B32
class Inst_VOP3__V_FFBH_I32 : public Inst_VOP3A
{
public:
Inst_VOP3__V_FFBH_I32(InFmt_VOP3A*);
~Inst_VOP3__V_FFBH_I32();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 1; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //src
return 4;
case 1: //vdst
return 4;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_VOP3__V_FFBH_I32
class Inst_VOP3__V_FREXP_EXP_I32_F64 : public Inst_VOP3A
{
public:
Inst_VOP3__V_FREXP_EXP_I32_F64(InFmt_VOP3A*);
~Inst_VOP3__V_FREXP_EXP_I32_F64();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 1; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //src
return 8;
case 1: //vdst
return 4;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_VOP3__V_FREXP_EXP_I32_F64
class Inst_VOP3__V_FREXP_MANT_F64 : public Inst_VOP3A
{
public:
Inst_VOP3__V_FREXP_MANT_F64(InFmt_VOP3A*);
~Inst_VOP3__V_FREXP_MANT_F64();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 1; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //src
return 8;
case 1: //vdst
return 8;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_VOP3__V_FREXP_MANT_F64
class Inst_VOP3__V_FRACT_F64 : public Inst_VOP3A
{
public:
Inst_VOP3__V_FRACT_F64(InFmt_VOP3A*);
~Inst_VOP3__V_FRACT_F64();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 1; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //src
return 8;
case 1: //vdst
return 8;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_VOP3__V_FRACT_F64
class Inst_VOP3__V_FREXP_EXP_I32_F32 : public Inst_VOP3A
{
public:
Inst_VOP3__V_FREXP_EXP_I32_F32(InFmt_VOP3A*);
~Inst_VOP3__V_FREXP_EXP_I32_F32();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 1; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //src
return 4;
case 1: //vdst
return 4;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_VOP3__V_FREXP_EXP_I32_F32
class Inst_VOP3__V_FREXP_MANT_F32 : public Inst_VOP3A
{
public:
Inst_VOP3__V_FREXP_MANT_F32(InFmt_VOP3A*);
~Inst_VOP3__V_FREXP_MANT_F32();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 1; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //src
return 4;
case 1: //vdst
return 4;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_VOP3__V_FREXP_MANT_F32
class Inst_VOP3__V_CLREXCP : public Inst_VOP3A
{
public:
Inst_VOP3__V_CLREXCP(InFmt_VOP3A*);
~Inst_VOP3__V_CLREXCP();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 0; }
int numSrcRegOperands() override { return 0; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_VOP3__V_CLREXCP
class Inst_VOP3__V_CVT_F16_U16 : public Inst_VOP3A
{
public:
Inst_VOP3__V_CVT_F16_U16(InFmt_VOP3A*);
~Inst_VOP3__V_CVT_F16_U16();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 1; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //src
return 2;
case 1: //vdst
return 2;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_VOP3__V_CVT_F16_U16
class Inst_VOP3__V_CVT_F16_I16 : public Inst_VOP3A
{
public:
Inst_VOP3__V_CVT_F16_I16(InFmt_VOP3A*);
~Inst_VOP3__V_CVT_F16_I16();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 1; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //src
return 2;
case 1: //vdst
return 2;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_VOP3__V_CVT_F16_I16
class Inst_VOP3__V_CVT_U16_F16 : public Inst_VOP3A
{
public:
Inst_VOP3__V_CVT_U16_F16(InFmt_VOP3A*);
~Inst_VOP3__V_CVT_U16_F16();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 1; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //src
return 2;
case 1: //vdst
return 2;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_VOP3__V_CVT_U16_F16
class Inst_VOP3__V_CVT_I16_F16 : public Inst_VOP3A
{
public:
Inst_VOP3__V_CVT_I16_F16(InFmt_VOP3A*);
~Inst_VOP3__V_CVT_I16_F16();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 1; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //src
return 2;
case 1: //vdst
return 2;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_VOP3__V_CVT_I16_F16
class Inst_VOP3__V_RCP_F16 : public Inst_VOP3A
{
public:
Inst_VOP3__V_RCP_F16(InFmt_VOP3A*);
~Inst_VOP3__V_RCP_F16();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 1; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //src
return 2;
case 1: //vdst
return 2;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_VOP3__V_RCP_F16
class Inst_VOP3__V_SQRT_F16 : public Inst_VOP3A
{
public:
Inst_VOP3__V_SQRT_F16(InFmt_VOP3A*);
~Inst_VOP3__V_SQRT_F16();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 1; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //src
return 2;
case 1: //vdst
return 2;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_VOP3__V_SQRT_F16
class Inst_VOP3__V_RSQ_F16 : public Inst_VOP3A
{
public:
Inst_VOP3__V_RSQ_F16(InFmt_VOP3A*);
~Inst_VOP3__V_RSQ_F16();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 1; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //src
return 2;
case 1: //vdst
return 2;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_VOP3__V_RSQ_F16
class Inst_VOP3__V_LOG_F16 : public Inst_VOP3A
{
public:
Inst_VOP3__V_LOG_F16(InFmt_VOP3A*);
~Inst_VOP3__V_LOG_F16();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 1; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //src
return 2;
case 1: //vdst
return 2;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_VOP3__V_LOG_F16
class Inst_VOP3__V_EXP_F16 : public Inst_VOP3A
{
public:
Inst_VOP3__V_EXP_F16(InFmt_VOP3A*);
~Inst_VOP3__V_EXP_F16();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 1; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //src
return 2;
case 1: //vdst
return 2;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_VOP3__V_EXP_F16
class Inst_VOP3__V_FREXP_MANT_F16 : public Inst_VOP3A
{
public:
Inst_VOP3__V_FREXP_MANT_F16(InFmt_VOP3A*);
~Inst_VOP3__V_FREXP_MANT_F16();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 1; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //src
return 2;
case 1: //vdst
return 2;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_VOP3__V_FREXP_MANT_F16
class Inst_VOP3__V_FREXP_EXP_I16_F16 : public Inst_VOP3A
{
public:
Inst_VOP3__V_FREXP_EXP_I16_F16(InFmt_VOP3A*);
~Inst_VOP3__V_FREXP_EXP_I16_F16();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 1; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //src
return 2;
case 1: //vdst
return 2;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_VOP3__V_FREXP_EXP_I16_F16
class Inst_VOP3__V_FLOOR_F16 : public Inst_VOP3A
{
public:
Inst_VOP3__V_FLOOR_F16(InFmt_VOP3A*);
~Inst_VOP3__V_FLOOR_F16();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 1; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //src
return 2;
case 1: //vdst
return 2;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_VOP3__V_FLOOR_F16
class Inst_VOP3__V_CEIL_F16 : public Inst_VOP3A
{
public:
Inst_VOP3__V_CEIL_F16(InFmt_VOP3A*);
~Inst_VOP3__V_CEIL_F16();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 1; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //src
return 2;
case 1: //vdst
return 2;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_VOP3__V_CEIL_F16
class Inst_VOP3__V_TRUNC_F16 : public Inst_VOP3A
{
public:
Inst_VOP3__V_TRUNC_F16(InFmt_VOP3A*);
~Inst_VOP3__V_TRUNC_F16();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 1; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //src
return 2;
case 1: //vdst
return 2;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_VOP3__V_TRUNC_F16
class Inst_VOP3__V_RNDNE_F16 : public Inst_VOP3A
{
public:
Inst_VOP3__V_RNDNE_F16(InFmt_VOP3A*);
~Inst_VOP3__V_RNDNE_F16();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 1; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //src
return 2;
case 1: //vdst
return 2;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_VOP3__V_RNDNE_F16
class Inst_VOP3__V_FRACT_F16 : public Inst_VOP3A
{
public:
Inst_VOP3__V_FRACT_F16(InFmt_VOP3A*);
~Inst_VOP3__V_FRACT_F16();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 1; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //src
return 2;
case 1: //vdst
return 2;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_VOP3__V_FRACT_F16
class Inst_VOP3__V_SIN_F16 : public Inst_VOP3A
{
public:
Inst_VOP3__V_SIN_F16(InFmt_VOP3A*);
~Inst_VOP3__V_SIN_F16();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 1; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //src
return 2;
case 1: //vdst
return 2;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_VOP3__V_SIN_F16
class Inst_VOP3__V_COS_F16 : public Inst_VOP3A
{
public:
Inst_VOP3__V_COS_F16(InFmt_VOP3A*);
~Inst_VOP3__V_COS_F16();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 1; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //src
return 2;
case 1: //vdst
return 2;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_VOP3__V_COS_F16
class Inst_VOP3__V_EXP_LEGACY_F32 : public Inst_VOP3A
{
public:
Inst_VOP3__V_EXP_LEGACY_F32(InFmt_VOP3A*);
~Inst_VOP3__V_EXP_LEGACY_F32();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 1; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //src
return 4;
case 1: //vdst
return 4;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_VOP3__V_EXP_LEGACY_F32
class Inst_VOP3__V_LOG_LEGACY_F32 : public Inst_VOP3A
{
public:
Inst_VOP3__V_LOG_LEGACY_F32(InFmt_VOP3A*);
~Inst_VOP3__V_LOG_LEGACY_F32();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 1; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //src
return 4;
case 1: //vdst
return 4;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_VOP3__V_LOG_LEGACY_F32
class Inst_VOP3__V_MAD_LEGACY_F32 : public Inst_VOP3A
{
public:
Inst_VOP3__V_MAD_LEGACY_F32(InFmt_VOP3A*);
~Inst_VOP3__V_MAD_LEGACY_F32();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 3; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //src_0
return 4;
case 1: //src_1
return 4;
case 2: //src_2
return 4;
case 3: //vdst
return 4;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_VOP3__V_MAD_LEGACY_F32
class Inst_VOP3__V_MAD_F32 : public Inst_VOP3A
{
public:
Inst_VOP3__V_MAD_F32(InFmt_VOP3A*);
~Inst_VOP3__V_MAD_F32();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 3; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //src_0
return 4;
case 1: //src_1
return 4;
case 2: //src_2
return 4;
case 3: //vdst
return 4;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_VOP3__V_MAD_F32
class Inst_VOP3__V_MAD_I32_I24 : public Inst_VOP3A
{
public:
Inst_VOP3__V_MAD_I32_I24(InFmt_VOP3A*);
~Inst_VOP3__V_MAD_I32_I24();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 3; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //src_0
return 4;
case 1: //src_1
return 4;
case 2: //src_2
return 4;
case 3: //vdst
return 4;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_VOP3__V_MAD_I32_I24
class Inst_VOP3__V_MAD_U32_U24 : public Inst_VOP3A
{
public:
Inst_VOP3__V_MAD_U32_U24(InFmt_VOP3A*);
~Inst_VOP3__V_MAD_U32_U24();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 3; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //src_0
return 4;
case 1: //src_1
return 4;
case 2: //src_2
return 4;
case 3: //vdst
return 4;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_VOP3__V_MAD_U32_U24
class Inst_VOP3__V_CUBEID_F32 : public Inst_VOP3A
{
public:
Inst_VOP3__V_CUBEID_F32(InFmt_VOP3A*);
~Inst_VOP3__V_CUBEID_F32();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 3; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //src_0
return 4;
case 1: //src_1
return 4;
case 2: //src_2
return 4;
case 3: //vdst
return 4;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_VOP3__V_CUBEID_F32
class Inst_VOP3__V_CUBESC_F32 : public Inst_VOP3A
{
public:
Inst_VOP3__V_CUBESC_F32(InFmt_VOP3A*);
~Inst_VOP3__V_CUBESC_F32();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 3; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //src_0
return 4;
case 1: //src_1
return 4;
case 2: //src_2
return 4;
case 3: //vdst
return 4;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_VOP3__V_CUBESC_F32
class Inst_VOP3__V_CUBETC_F32 : public Inst_VOP3A
{
public:
Inst_VOP3__V_CUBETC_F32(InFmt_VOP3A*);
~Inst_VOP3__V_CUBETC_F32();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 3; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //src_0
return 4;
case 1: //src_1
return 4;
case 2: //src_2
return 4;
case 3: //vdst
return 4;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_VOP3__V_CUBETC_F32
class Inst_VOP3__V_CUBEMA_F32 : public Inst_VOP3A
{
public:
Inst_VOP3__V_CUBEMA_F32(InFmt_VOP3A*);
~Inst_VOP3__V_CUBEMA_F32();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 3; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //src_0
return 4;
case 1: //src_1
return 4;
case 2: //src_2
return 4;
case 3: //vdst
return 4;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_VOP3__V_CUBEMA_F32
class Inst_VOP3__V_BFE_U32 : public Inst_VOP3A
{
public:
Inst_VOP3__V_BFE_U32(InFmt_VOP3A*);
~Inst_VOP3__V_BFE_U32();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 3; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //src_0
return 4;
case 1: //src_1
return 4;
case 2: //src_2
return 4;
case 3: //vdst
return 4;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_VOP3__V_BFE_U32
class Inst_VOP3__V_BFE_I32 : public Inst_VOP3A
{
public:
Inst_VOP3__V_BFE_I32(InFmt_VOP3A*);
~Inst_VOP3__V_BFE_I32();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 3; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //src_0
return 4;
case 1: //src_1
return 4;
case 2: //src_2
return 4;
case 3: //vdst
return 4;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_VOP3__V_BFE_I32
class Inst_VOP3__V_BFI_B32 : public Inst_VOP3A
{
public:
Inst_VOP3__V_BFI_B32(InFmt_VOP3A*);
~Inst_VOP3__V_BFI_B32();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 3; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //src_0
return 4;
case 1: //src_1
return 4;
case 2: //src_2
return 4;
case 3: //vdst
return 4;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_VOP3__V_BFI_B32
class Inst_VOP3__V_FMA_F32 : public Inst_VOP3A
{
public:
Inst_VOP3__V_FMA_F32(InFmt_VOP3A*);
~Inst_VOP3__V_FMA_F32();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 3; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //src_0
return 4;
case 1: //src_1
return 4;
case 2: //src_2
return 4;
case 3: //vdst
return 4;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_VOP3__V_FMA_F32
class Inst_VOP3__V_FMA_F64 : public Inst_VOP3A
{
public:
Inst_VOP3__V_FMA_F64(InFmt_VOP3A*);
~Inst_VOP3__V_FMA_F64();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 3; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //src_0
return 8;
case 1: //src_1
return 8;
case 2: //src_2
return 8;
case 3: //vdst
return 8;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_VOP3__V_FMA_F64
class Inst_VOP3__V_LERP_U8 : public Inst_VOP3A
{
public:
Inst_VOP3__V_LERP_U8(InFmt_VOP3A*);
~Inst_VOP3__V_LERP_U8();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 3; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //src_0
return 4;
case 1: //src_1
return 4;
case 2: //src_2
return 4;
case 3: //vdst
return 4;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_VOP3__V_LERP_U8
class Inst_VOP3__V_ALIGNBIT_B32 : public Inst_VOP3A
{
public:
Inst_VOP3__V_ALIGNBIT_B32(InFmt_VOP3A*);
~Inst_VOP3__V_ALIGNBIT_B32();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 3; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //src_0
return 4;
case 1: //src_1
return 4;
case 2: //src_2
return 4;
case 3: //vdst
return 4;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_VOP3__V_ALIGNBIT_B32
class Inst_VOP3__V_ALIGNBYTE_B32 : public Inst_VOP3A
{
public:
Inst_VOP3__V_ALIGNBYTE_B32(InFmt_VOP3A*);
~Inst_VOP3__V_ALIGNBYTE_B32();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 3; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //src_0
return 4;
case 1: //src_1
return 4;
case 2: //src_2
return 4;
case 3: //vdst
return 4;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_VOP3__V_ALIGNBYTE_B32
class Inst_VOP3__V_MIN3_F32 : public Inst_VOP3A
{
public:
Inst_VOP3__V_MIN3_F32(InFmt_VOP3A*);
~Inst_VOP3__V_MIN3_F32();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 3; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //src_0
return 4;
case 1: //src_1
return 4;
case 2: //src_2
return 4;
case 3: //vdst
return 4;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_VOP3__V_MIN3_F32
class Inst_VOP3__V_MIN3_I32 : public Inst_VOP3A
{
public:
Inst_VOP3__V_MIN3_I32(InFmt_VOP3A*);
~Inst_VOP3__V_MIN3_I32();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 3; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //src_0
return 4;
case 1: //src_1
return 4;
case 2: //src_2
return 4;
case 3: //vdst
return 4;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_VOP3__V_MIN3_I32
class Inst_VOP3__V_MIN3_U32 : public Inst_VOP3A
{
public:
Inst_VOP3__V_MIN3_U32(InFmt_VOP3A*);
~Inst_VOP3__V_MIN3_U32();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 3; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //src_0
return 4;
case 1: //src_1
return 4;
case 2: //src_2
return 4;
case 3: //vdst
return 4;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_VOP3__V_MIN3_U32
class Inst_VOP3__V_MAX3_F32 : public Inst_VOP3A
{
public:
Inst_VOP3__V_MAX3_F32(InFmt_VOP3A*);
~Inst_VOP3__V_MAX3_F32();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 3; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //src_0
return 4;
case 1: //src_1
return 4;
case 2: //src_2
return 4;
case 3: //vdst
return 4;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_VOP3__V_MAX3_F32
class Inst_VOP3__V_MAX3_I32 : public Inst_VOP3A
{
public:
Inst_VOP3__V_MAX3_I32(InFmt_VOP3A*);
~Inst_VOP3__V_MAX3_I32();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 3; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //src_0
return 4;
case 1: //src_1
return 4;
case 2: //src_2
return 4;
case 3: //vdst
return 4;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_VOP3__V_MAX3_I32
class Inst_VOP3__V_MAX3_U32 : public Inst_VOP3A
{
public:
Inst_VOP3__V_MAX3_U32(InFmt_VOP3A*);
~Inst_VOP3__V_MAX3_U32();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 3; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //src_0
return 4;
case 1: //src_1
return 4;
case 2: //src_2
return 4;
case 3: //vdst
return 4;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_VOP3__V_MAX3_U32
class Inst_VOP3__V_MED3_F32 : public Inst_VOP3A
{
public:
Inst_VOP3__V_MED3_F32(InFmt_VOP3A*);
~Inst_VOP3__V_MED3_F32();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 3; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //src_0
return 4;
case 1: //src_1
return 4;
case 2: //src_2
return 4;
case 3: //vdst
return 4;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_VOP3__V_MED3_F32
class Inst_VOP3__V_MED3_I32 : public Inst_VOP3A
{
public:
Inst_VOP3__V_MED3_I32(InFmt_VOP3A*);
~Inst_VOP3__V_MED3_I32();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 3; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //src_0
return 4;
case 1: //src_1
return 4;
case 2: //src_2
return 4;
case 3: //vdst
return 4;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_VOP3__V_MED3_I32
class Inst_VOP3__V_MED3_U32 : public Inst_VOP3A
{
public:
Inst_VOP3__V_MED3_U32(InFmt_VOP3A*);
~Inst_VOP3__V_MED3_U32();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 3; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //src_0
return 4;
case 1: //src_1
return 4;
case 2: //src_2
return 4;
case 3: //vdst
return 4;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_VOP3__V_MED3_U32
class Inst_VOP3__V_SAD_U8 : public Inst_VOP3A
{
public:
Inst_VOP3__V_SAD_U8(InFmt_VOP3A*);
~Inst_VOP3__V_SAD_U8();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 3; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //src_0
return 4;
case 1: //src_1
return 4;
case 2: //src_2
return 4;
case 3: //vdst
return 4;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_VOP3__V_SAD_U8
class Inst_VOP3__V_SAD_HI_U8 : public Inst_VOP3A
{
public:
Inst_VOP3__V_SAD_HI_U8(InFmt_VOP3A*);
~Inst_VOP3__V_SAD_HI_U8();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 3; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //src_0
return 4;
case 1: //src_1
return 4;
case 2: //src_2
return 4;
case 3: //vdst
return 4;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_VOP3__V_SAD_HI_U8
class Inst_VOP3__V_SAD_U16 : public Inst_VOP3A
{
public:
Inst_VOP3__V_SAD_U16(InFmt_VOP3A*);
~Inst_VOP3__V_SAD_U16();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 3; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //src_0
return 4;
case 1: //src_1
return 4;
case 2: //src_2
return 4;
case 3: //vdst
return 4;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_VOP3__V_SAD_U16
class Inst_VOP3__V_SAD_U32 : public Inst_VOP3A
{
public:
Inst_VOP3__V_SAD_U32(InFmt_VOP3A*);
~Inst_VOP3__V_SAD_U32();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 3; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //src_0
return 4;
case 1: //src_1
return 4;
case 2: //src_2
return 4;
case 3: //vdst
return 4;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_VOP3__V_SAD_U32
class Inst_VOP3__V_CVT_PK_U8_F32 : public Inst_VOP3A
{
public:
Inst_VOP3__V_CVT_PK_U8_F32(InFmt_VOP3A*);
~Inst_VOP3__V_CVT_PK_U8_F32();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 3; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //src_0
return 4;
case 1: //src_1
return 4;
case 2: //src_2
return 4;
case 3: //vdst
return 4;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_VOP3__V_CVT_PK_U8_F32
class Inst_VOP3__V_DIV_FIXUP_F32 : public Inst_VOP3A
{
public:
Inst_VOP3__V_DIV_FIXUP_F32(InFmt_VOP3A*);
~Inst_VOP3__V_DIV_FIXUP_F32();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 3; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //src_0
return 4;
case 1: //src_1
return 4;
case 2: //src_2
return 4;
case 3: //vdst
return 4;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_VOP3__V_DIV_FIXUP_F32
class Inst_VOP3__V_DIV_FIXUP_F64 : public Inst_VOP3A
{
public:
Inst_VOP3__V_DIV_FIXUP_F64(InFmt_VOP3A*);
~Inst_VOP3__V_DIV_FIXUP_F64();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 3; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //src_0
return 8;
case 1: //src_1
return 8;
case 2: //src_2
return 8;
case 3: //vdst
return 8;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_VOP3__V_DIV_FIXUP_F64
class Inst_VOP3__V_DIV_SCALE_F32 : public Inst_VOP3B
{
public:
Inst_VOP3__V_DIV_SCALE_F32(InFmt_VOP3B*);
~Inst_VOP3__V_DIV_SCALE_F32();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 2; }
int numSrcRegOperands() override { return 3; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //src_0
return 4;
case 1: //src_1
return 4;
case 2: //src_2
return 4;
case 3: //vdst
return 4;
case 4: //vcc
return 8;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_VOP3__V_DIV_SCALE_F32
class Inst_VOP3__V_DIV_SCALE_F64 : public Inst_VOP3B
{
public:
Inst_VOP3__V_DIV_SCALE_F64(InFmt_VOP3B*);
~Inst_VOP3__V_DIV_SCALE_F64();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 2; }
int numSrcRegOperands() override { return 3; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //src_0
return 8;
case 1: //src_1
return 8;
case 2: //src_2
return 8;
case 3: //vdst
return 8;
case 4: //vcc
return 8;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_VOP3__V_DIV_SCALE_F64
class Inst_VOP3__V_DIV_FMAS_F32 : public Inst_VOP3A
{
public:
Inst_VOP3__V_DIV_FMAS_F32(InFmt_VOP3A*);
~Inst_VOP3__V_DIV_FMAS_F32();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 4; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //src_0
return 4;
case 1: //src_1
return 4;
case 2: //src_2
return 4;
case 3:
return 8;
case 4: //vdst
return 4;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_VOP3__V_DIV_FMAS_F32
class Inst_VOP3__V_DIV_FMAS_F64 : public Inst_VOP3A
{
public:
Inst_VOP3__V_DIV_FMAS_F64(InFmt_VOP3A*);
~Inst_VOP3__V_DIV_FMAS_F64();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 3; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //src_0
return 8;
case 1: //src_1
return 8;
case 2: //src_2
return 8;
case 3: //vdst
return 8;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_VOP3__V_DIV_FMAS_F64
class Inst_VOP3__V_MSAD_U8 : public Inst_VOP3A
{
public:
Inst_VOP3__V_MSAD_U8(InFmt_VOP3A*);
~Inst_VOP3__V_MSAD_U8();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 3; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //src_0
return 4;
case 1: //src_1
return 4;
case 2: //src_2
return 4;
case 3: //vdst
return 4;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_VOP3__V_MSAD_U8
class Inst_VOP3__V_QSAD_PK_U16_U8 : public Inst_VOP3A
{
public:
Inst_VOP3__V_QSAD_PK_U16_U8(InFmt_VOP3A*);
~Inst_VOP3__V_QSAD_PK_U16_U8();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 3; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //src_0
return 8;
case 1: //src_1
return 4;
case 2: //src_2
return 8;
case 3: //vdst
return 8;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_VOP3__V_QSAD_PK_U16_U8
class Inst_VOP3__V_MQSAD_PK_U16_U8 : public Inst_VOP3A
{
public:
Inst_VOP3__V_MQSAD_PK_U16_U8(InFmt_VOP3A*);
~Inst_VOP3__V_MQSAD_PK_U16_U8();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 3; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //src_0
return 8;
case 1: //src_1
return 4;
case 2: //src_2
return 8;
case 3: //vdst
return 8;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_VOP3__V_MQSAD_PK_U16_U8
class Inst_VOP3__V_MQSAD_U32_U8 : public Inst_VOP3A
{
public:
Inst_VOP3__V_MQSAD_U32_U8(InFmt_VOP3A*);
~Inst_VOP3__V_MQSAD_U32_U8();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 3; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //src_0
return 8;
case 1: //src_1
return 4;
case 2: //src_2
return 16;
case 3: //vdst
return 16;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_VOP3__V_MQSAD_U32_U8
class Inst_VOP3__V_MAD_U64_U32 : public Inst_VOP3B
{
public:
Inst_VOP3__V_MAD_U64_U32(InFmt_VOP3B*);
~Inst_VOP3__V_MAD_U64_U32();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 2; }
int numSrcRegOperands() override { return 3; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //src_0
return 4;
case 1: //src_1
return 4;
case 2: //src_2
return 4;
case 3: //vdst
return 4;
case 4: //carryout
return 8;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_VOP3__V_MAD_U64_U32
class Inst_VOP3__V_MAD_I64_I32 : public Inst_VOP3B
{
public:
Inst_VOP3__V_MAD_I64_I32(InFmt_VOP3B*);
~Inst_VOP3__V_MAD_I64_I32();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 2; }
int numSrcRegOperands() override { return 3; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //src_0
return 4;
case 1: //src_1
return 4;
case 2: //src_2
return 4;
case 3: //vdst
return 4;
case 4: //carryout
return 8;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_VOP3__V_MAD_I64_I32
class Inst_VOP3__V_LSHL_ADD_U32 : public Inst_VOP3A
{
public:
Inst_VOP3__V_LSHL_ADD_U32(InFmt_VOP3A*);
~Inst_VOP3__V_LSHL_ADD_U32();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 3; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //src_0
return 4;
case 1: //src_1
return 4;
case 2: //src_2
return 4;
case 3: //vdst
return 4;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_VOP3__V_LSHL_ADD_U32
class Inst_VOP3__V_ADD_LSHL_U32 : public Inst_VOP3A
{
public:
Inst_VOP3__V_ADD_LSHL_U32(InFmt_VOP3A*);
~Inst_VOP3__V_ADD_LSHL_U32();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 3; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //src_0
return 4;
case 1: //src_1
return 4;
case 2: //src_2
return 4;
case 3: //vdst
return 4;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_VOP3__V_ADD_LSHL_U32
class Inst_VOP3__V_ADD3_U32 : public Inst_VOP3A
{
public:
Inst_VOP3__V_ADD3_U32(InFmt_VOP3A*);
~Inst_VOP3__V_ADD3_U32();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 3; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //src_0
return 4;
case 1: //src_1
return 4;
case 2: //src_2
return 4;
case 3: //vdst
return 4;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_VOP3__V_ADD3_U32
class Inst_VOP3__V_LSHL_OR_B32 : public Inst_VOP3A
{
public:
Inst_VOP3__V_LSHL_OR_B32(InFmt_VOP3A*);
~Inst_VOP3__V_LSHL_OR_B32();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 3; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //src_0
return 4;
case 1: //src_1
return 4;
case 2: //src_2
return 4;
case 3: //vdst
return 4;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_VOP3__V_LSHL_OR_B32
class Inst_VOP3__V_AND_OR_B32 : public Inst_VOP3A
{
public:
Inst_VOP3__V_AND_OR_B32(InFmt_VOP3A*);
~Inst_VOP3__V_AND_OR_B32();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 3; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //src_0
return 4;
case 1: //src_1
return 4;
case 2: //src_2
return 4;
case 3: //vdst
return 4;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_VOP3__V_AND_OR_B32
class Inst_VOP3__V_MAD_F16 : public Inst_VOP3A
{
public:
Inst_VOP3__V_MAD_F16(InFmt_VOP3A*);
~Inst_VOP3__V_MAD_F16();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 3; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //src_0
return 2;
case 1: //src_1
return 2;
case 2: //src_2
return 2;
case 3: //vdst
return 2;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_VOP3__V_MAD_F16
class Inst_VOP3__V_MAD_U16 : public Inst_VOP3A
{
public:
Inst_VOP3__V_MAD_U16(InFmt_VOP3A*);
~Inst_VOP3__V_MAD_U16();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 3; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //src_0
return 2;
case 1: //src_1
return 2;
case 2: //src_2
return 2;
case 3: //vdst
return 2;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_VOP3__V_MAD_U16
class Inst_VOP3__V_MAD_I16 : public Inst_VOP3A
{
public:
Inst_VOP3__V_MAD_I16(InFmt_VOP3A*);
~Inst_VOP3__V_MAD_I16();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 3; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //src_0
return 2;
case 1: //src_1
return 2;
case 2: //src_2
return 2;
case 3: //vdst
return 2;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_VOP3__V_MAD_I16
class Inst_VOP3__V_PERM_B32 : public Inst_VOP3A
{
public:
Inst_VOP3__V_PERM_B32(InFmt_VOP3A*);
~Inst_VOP3__V_PERM_B32();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 3; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //src_0
return 4;
case 1: //src_1
return 4;
case 2: //src_2
return 4;
case 3: //vdst
return 4;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
// From the VEGA ISA SPEC:
// byte permute(byte in[8], byte sel) {
// if (sel>=13) then return 0xff;
// elsif (sel==12) then return 0x00;
// elsif (sel==11) then return in[7][7] * 0xff;
// elsif (sel==10) then return in[5][7] * 0xff;
// elsif (sel==9) then return in[3][7] * 0xff;
// elsif (sel==8) then return in[1][7] * 0xff;
// else return in[sel];
// }
// NOTE: I interpret the in[x][7] notation to mean "the high order
// bit of byte x".
uint8_t
permute(uint64_t in_dword2x, uint32_t sel)
{
assert (sel < 256);
uint8_t *in = reinterpret_cast<uint8_t*>(&in_dword2x);
DPRINTF(VEGA, "in_dword2x = 0x%08x\n", in_dword2x);
DPRINTF(VEGA, "Selecting %x using index %d\n", in[sel], sel);
if (sel >= 13) return 0xFF;
else if (sel == 12) return 0;
else if (sel == 11) return (in[7] & 0x80) ? 0xFF : 0;
else if (sel == 10) return (in[5] & 0x80) ? 0xFF : 0;
else if (sel == 9) return (in[3] & 0x80) ? 0xFF : 0;
else if (sel == 8) return (in[1] & 0x80) ? 0xFF : 0;
else return in[sel];
}
void execute(GPUDynInstPtr) override;
}; // Inst_VOP3__V_PERM_B32
class Inst_VOP3__V_FMA_F16 : public Inst_VOP3A
{
public:
Inst_VOP3__V_FMA_F16(InFmt_VOP3A*);
~Inst_VOP3__V_FMA_F16();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 3; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //src_0
return 2;
case 1: //src_1
return 2;
case 2: //src_2
return 2;
case 3: //vdst
return 2;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_VOP3__V_FMA_F16
class Inst_VOP3__V_DIV_FIXUP_F16 : public Inst_VOP3A
{
public:
Inst_VOP3__V_DIV_FIXUP_F16(InFmt_VOP3A*);
~Inst_VOP3__V_DIV_FIXUP_F16();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 3; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //src_0
return 2;
case 1: //src_1
return 2;
case 2: //src_2
return 2;
case 3: //vdst
return 2;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_VOP3__V_DIV_FIXUP_F16
class Inst_VOP3__V_CVT_PKACCUM_U8_F32 : public Inst_VOP3A
{
public:
Inst_VOP3__V_CVT_PKACCUM_U8_F32(InFmt_VOP3A*);
~Inst_VOP3__V_CVT_PKACCUM_U8_F32();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 2; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //src_0
return 4;
case 1: //src_1
return 4;
case 2: //vdst
return 4;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_VOP3__V_CVT_PKACCUM_U8_F32
class Inst_VOP3__V_INTERP_P1_F32 : public Inst_VOP3A
{
public:
Inst_VOP3__V_INTERP_P1_F32(InFmt_VOP3A*);
~Inst_VOP3__V_INTERP_P1_F32();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 2; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //vgpr_ij
return 4;
case 1: //attr
return 32;
case 2: //vgpr_dst
return 4;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_VOP3__V_INTERP_P1_F32
class Inst_VOP3__V_INTERP_P2_F32 : public Inst_VOP3A
{
public:
Inst_VOP3__V_INTERP_P2_F32(InFmt_VOP3A*);
~Inst_VOP3__V_INTERP_P2_F32();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 2; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //vgpr_ij
return 4;
case 1: //attr
return 32;
case 2: //vgpr_dst
return 4;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_VOP3__V_INTERP_P2_F32
class Inst_VOP3__V_INTERP_MOV_F32 : public Inst_VOP3A
{
public:
Inst_VOP3__V_INTERP_MOV_F32(InFmt_VOP3A*);
~Inst_VOP3__V_INTERP_MOV_F32();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 2; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //param
return 4;
case 1: //attr
return 32;
case 2: //vgpr_dst
return 4;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_VOP3__V_INTERP_MOV_F32
class Inst_VOP3__V_INTERP_P1LL_F16 : public Inst_VOP3A
{
public:
Inst_VOP3__V_INTERP_P1LL_F16(InFmt_VOP3A*);
~Inst_VOP3__V_INTERP_P1LL_F16();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 2; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //vgpr_ij
return 4;
case 1: //attr
return 2;
case 2: //vgpr_dst
return 4;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_VOP3__V_INTERP_P1LL_F16
class Inst_VOP3__V_INTERP_P1LV_F16 : public Inst_VOP3A
{
public:
Inst_VOP3__V_INTERP_P1LV_F16(InFmt_VOP3A*);
~Inst_VOP3__V_INTERP_P1LV_F16();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 3; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //vgpr_ij
return 4;
case 1: //attr
return 2;
case 2: //vgpr_add
return 2;
case 3: //vgpr_dst
return 4;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_VOP3__V_INTERP_P1LV_F16
class Inst_VOP3__V_INTERP_P2_F16 : public Inst_VOP3A
{
public:
Inst_VOP3__V_INTERP_P2_F16(InFmt_VOP3A*);
~Inst_VOP3__V_INTERP_P2_F16();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 3; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //vgpr_ij
return 4;
case 1: //attr
return 2;
case 2: //vgpr_add
return 4;
case 3: //vgpr_dst
return 2;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_VOP3__V_INTERP_P2_F16
class Inst_VOP3__V_ADD_F64 : public Inst_VOP3A
{
public:
Inst_VOP3__V_ADD_F64(InFmt_VOP3A*);
~Inst_VOP3__V_ADD_F64();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 2; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //src_0
return 8;
case 1: //src_1
return 8;
case 2: //vdst
return 8;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_VOP3__V_ADD_F64
class Inst_VOP3__V_MUL_F64 : public Inst_VOP3A
{
public:
Inst_VOP3__V_MUL_F64(InFmt_VOP3A*);
~Inst_VOP3__V_MUL_F64();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 2; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //src_0
return 8;
case 1: //src_1
return 8;
case 2: //vdst
return 8;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_VOP3__V_MUL_F64
class Inst_VOP3__V_MIN_F64 : public Inst_VOP3A
{
public:
Inst_VOP3__V_MIN_F64(InFmt_VOP3A*);
~Inst_VOP3__V_MIN_F64();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 2; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //src_0
return 8;
case 1: //src_1
return 8;
case 2: //vdst
return 8;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_VOP3__V_MIN_F64
class Inst_VOP3__V_MAX_F64 : public Inst_VOP3A
{
public:
Inst_VOP3__V_MAX_F64(InFmt_VOP3A*);
~Inst_VOP3__V_MAX_F64();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 2; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //src_0
return 8;
case 1: //src_1
return 8;
case 2: //vdst
return 8;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_VOP3__V_MAX_F64
class Inst_VOP3__V_LDEXP_F64 : public Inst_VOP3A
{
public:
Inst_VOP3__V_LDEXP_F64(InFmt_VOP3A*);
~Inst_VOP3__V_LDEXP_F64();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 2; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //src_0
return 8;
case 1: //src_1
return 4;
case 2: //vdst
return 8;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_VOP3__V_LDEXP_F64
class Inst_VOP3__V_MUL_LO_U32 : public Inst_VOP3A
{
public:
Inst_VOP3__V_MUL_LO_U32(InFmt_VOP3A*);
~Inst_VOP3__V_MUL_LO_U32();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 2; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //src_0
return 4;
case 1: //src_1
return 4;
case 2: //vdst
return 4;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_VOP3__V_MUL_LO_U32
class Inst_VOP3__V_MUL_HI_U32 : public Inst_VOP3A
{
public:
Inst_VOP3__V_MUL_HI_U32(InFmt_VOP3A*);
~Inst_VOP3__V_MUL_HI_U32();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 2; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //src_0
return 4;
case 1: //src_1
return 4;
case 2: //vdst
return 4;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_VOP3__V_MUL_HI_U32
class Inst_VOP3__V_MUL_HI_I32 : public Inst_VOP3A
{
public:
Inst_VOP3__V_MUL_HI_I32(InFmt_VOP3A*);
~Inst_VOP3__V_MUL_HI_I32();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 2; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //src_0
return 4;
case 1: //src_1
return 4;
case 2: //vdst
return 4;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_VOP3__V_MUL_HI_I32
class Inst_VOP3__V_LDEXP_F32 : public Inst_VOP3A
{
public:
Inst_VOP3__V_LDEXP_F32(InFmt_VOP3A*);
~Inst_VOP3__V_LDEXP_F32();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 2; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //src_0
return 4;
case 1: //src_1
return 4;
case 2: //vdst
return 4;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_VOP3__V_LDEXP_F32
class Inst_VOP3__V_READLANE_B32 : public Inst_VOP3A
{
public:
Inst_VOP3__V_READLANE_B32(InFmt_VOP3A*);
~Inst_VOP3__V_READLANE_B32();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 2; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //vsrc_0
return 4;
case 1: //ssrc_1
return 4;
case 2: //sdst
return 4;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_VOP3__V_READLANE_B32
class Inst_VOP3__V_WRITELANE_B32 : public Inst_VOP3A
{
public:
Inst_VOP3__V_WRITELANE_B32(InFmt_VOP3A*);
~Inst_VOP3__V_WRITELANE_B32();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 2; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //ssrc_0
return 4;
case 1: //ssrc_1
return 4;
case 2: //vdst
return 4;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_VOP3__V_WRITELANE_B32
class Inst_VOP3__V_BCNT_U32_B32 : public Inst_VOP3A
{
public:
Inst_VOP3__V_BCNT_U32_B32(InFmt_VOP3A*);
~Inst_VOP3__V_BCNT_U32_B32();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 2; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //src_0
return 4;
case 1: //src_1
return 4;
case 2: //vdst
return 4;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_VOP3__V_BCNT_U32_B32
class Inst_VOP3__V_MBCNT_LO_U32_B32 : public Inst_VOP3A
{
public:
Inst_VOP3__V_MBCNT_LO_U32_B32(InFmt_VOP3A*);
~Inst_VOP3__V_MBCNT_LO_U32_B32();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 2; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //src_0
return 4;
case 1: //src_1
return 4;
case 2: //vdst
return 4;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_VOP3__V_MBCNT_LO_U32_B32
class Inst_VOP3__V_MBCNT_HI_U32_B32 : public Inst_VOP3A
{
public:
Inst_VOP3__V_MBCNT_HI_U32_B32(InFmt_VOP3A*);
~Inst_VOP3__V_MBCNT_HI_U32_B32();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 2; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //src_0
return 4;
case 1: //src_1
return 4;
case 2: //vdst
return 4;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_VOP3__V_MBCNT_HI_U32_B32
class Inst_VOP3__V_LSHLREV_B64 : public Inst_VOP3A
{
public:
Inst_VOP3__V_LSHLREV_B64(InFmt_VOP3A*);
~Inst_VOP3__V_LSHLREV_B64();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 2; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //src_0
return 4;
case 1: //src_1
return 8;
case 2: //vdst
return 8;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_VOP3__V_LSHLREV_B64
class Inst_VOP3__V_LSHRREV_B64 : public Inst_VOP3A
{
public:
Inst_VOP3__V_LSHRREV_B64(InFmt_VOP3A*);
~Inst_VOP3__V_LSHRREV_B64();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 2; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //src_0
return 4;
case 1: //src_1
return 8;
case 2: //vdst
return 8;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_VOP3__V_LSHRREV_B64
class Inst_VOP3__V_ASHRREV_I64 : public Inst_VOP3A
{
public:
Inst_VOP3__V_ASHRREV_I64(InFmt_VOP3A*);
~Inst_VOP3__V_ASHRREV_I64();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 2; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //src_0
return 4;
case 1: //src_1
return 8;
case 2: //vdst
return 8;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_VOP3__V_ASHRREV_I64
class Inst_VOP3__V_TRIG_PREOP_F64 : public Inst_VOP3A
{
public:
Inst_VOP3__V_TRIG_PREOP_F64(InFmt_VOP3A*);
~Inst_VOP3__V_TRIG_PREOP_F64();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 2; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //src_0
return 8;
case 1: //src_1
return 4;
case 2: //vdst
return 8;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_VOP3__V_TRIG_PREOP_F64
class Inst_VOP3__V_BFM_B32 : public Inst_VOP3A
{
public:
Inst_VOP3__V_BFM_B32(InFmt_VOP3A*);
~Inst_VOP3__V_BFM_B32();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 2; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //src_0
return 4;
case 1: //src_1
return 4;
case 2: //vdst
return 4;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_VOP3__V_BFM_B32
class Inst_VOP3__V_CVT_PKNORM_I16_F32 : public Inst_VOP3A
{
public:
Inst_VOP3__V_CVT_PKNORM_I16_F32(InFmt_VOP3A*);
~Inst_VOP3__V_CVT_PKNORM_I16_F32();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 2; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //src_0
return 4;
case 1: //src_1
return 4;
case 2: //vdst
return 2;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_VOP3__V_CVT_PKNORM_I16_F32
class Inst_VOP3__V_CVT_PKNORM_U16_F32 : public Inst_VOP3A
{
public:
Inst_VOP3__V_CVT_PKNORM_U16_F32(InFmt_VOP3A*);
~Inst_VOP3__V_CVT_PKNORM_U16_F32();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 2; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //src_0
return 4;
case 1: //src_1
return 4;
case 2: //vdst
return 2;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_VOP3__V_CVT_PKNORM_U16_F32
class Inst_VOP3__V_CVT_PKRTZ_F16_F32 : public Inst_VOP3A
{
public:
Inst_VOP3__V_CVT_PKRTZ_F16_F32(InFmt_VOP3A*);
~Inst_VOP3__V_CVT_PKRTZ_F16_F32();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 2; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //src_0
return 4;
case 1: //src_1
return 4;
case 2: //vdst
return 4;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_VOP3__V_CVT_PKRTZ_F16_F32
class Inst_VOP3__V_CVT_PK_U16_U32 : public Inst_VOP3A
{
public:
Inst_VOP3__V_CVT_PK_U16_U32(InFmt_VOP3A*);
~Inst_VOP3__V_CVT_PK_U16_U32();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 2; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //src_0
return 4;
case 1: //src_1
return 4;
case 2: //vdst
return 4;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_VOP3__V_CVT_PK_U16_U32
class Inst_VOP3__V_CVT_PK_I16_I32 : public Inst_VOP3A
{
public:
Inst_VOP3__V_CVT_PK_I16_I32(InFmt_VOP3A*);
~Inst_VOP3__V_CVT_PK_I16_I32();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 2; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //src_0
return 4;
case 1: //src_1
return 4;
case 2: //vdst
return 4;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_VOP3__V_CVT_PK_I16_I32
class Inst_DS__DS_ADD_U32 : public Inst_DS
{
public:
Inst_DS__DS_ADD_U32(InFmt_DS*);
~Inst_DS__DS_ADD_U32();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 0; }
int numSrcRegOperands() override { return 2; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //vgpr_a
return 4;
case 1: //vgpr_d0
return 4;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_DS__DS_ADD_U32
class Inst_DS__DS_SUB_U32 : public Inst_DS
{
public:
Inst_DS__DS_SUB_U32(InFmt_DS*);
~Inst_DS__DS_SUB_U32();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 0; }
int numSrcRegOperands() override { return 2; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //vgpr_a
return 4;
case 1: //vgpr_d0
return 4;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_DS__DS_SUB_U32
class Inst_DS__DS_RSUB_U32 : public Inst_DS
{
public:
Inst_DS__DS_RSUB_U32(InFmt_DS*);
~Inst_DS__DS_RSUB_U32();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 0; }
int numSrcRegOperands() override { return 2; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //vgpr_a
return 4;
case 1: //vgpr_d0
return 4;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_DS__DS_RSUB_U32
class Inst_DS__DS_INC_U32 : public Inst_DS
{
public:
Inst_DS__DS_INC_U32(InFmt_DS*);
~Inst_DS__DS_INC_U32();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 0; }
int numSrcRegOperands() override { return 2; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //vgpr_a
return 4;
case 1: //vgpr_d0
return 4;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_DS__DS_INC_U32
class Inst_DS__DS_DEC_U32 : public Inst_DS
{
public:
Inst_DS__DS_DEC_U32(InFmt_DS*);
~Inst_DS__DS_DEC_U32();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 0; }
int numSrcRegOperands() override { return 2; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //vgpr_a
return 4;
case 1: //vgpr_d0
return 4;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_DS__DS_DEC_U32
class Inst_DS__DS_MIN_I32 : public Inst_DS
{
public:
Inst_DS__DS_MIN_I32(InFmt_DS*);
~Inst_DS__DS_MIN_I32();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 0; }
int numSrcRegOperands() override { return 2; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //vgpr_a
return 4;
case 1: //vgpr_d0
return 4;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_DS__DS_MIN_I32
class Inst_DS__DS_MAX_I32 : public Inst_DS
{
public:
Inst_DS__DS_MAX_I32(InFmt_DS*);
~Inst_DS__DS_MAX_I32();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 0; }
int numSrcRegOperands() override { return 2; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //vgpr_a
return 4;
case 1: //vgpr_d0
return 4;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_DS__DS_MAX_I32
class Inst_DS__DS_MIN_U32 : public Inst_DS
{
public:
Inst_DS__DS_MIN_U32(InFmt_DS*);
~Inst_DS__DS_MIN_U32();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 0; }
int numSrcRegOperands() override { return 2; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //vgpr_a
return 4;
case 1: //vgpr_d0
return 4;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_DS__DS_MIN_U32
class Inst_DS__DS_MAX_U32 : public Inst_DS
{
public:
Inst_DS__DS_MAX_U32(InFmt_DS*);
~Inst_DS__DS_MAX_U32();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 0; }
int numSrcRegOperands() override { return 2; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //vgpr_a
return 4;
case 1: //vgpr_d0
return 4;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_DS__DS_MAX_U32
class Inst_DS__DS_AND_B32 : public Inst_DS
{
public:
Inst_DS__DS_AND_B32(InFmt_DS*);
~Inst_DS__DS_AND_B32();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 0; }
int numSrcRegOperands() override { return 2; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //vgpr_a
return 4;
case 1: //vgpr_d0
return 4;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_DS__DS_AND_B32
class Inst_DS__DS_OR_B32 : public Inst_DS
{
public:
Inst_DS__DS_OR_B32(InFmt_DS*);
~Inst_DS__DS_OR_B32();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 0; }
int numSrcRegOperands() override { return 2; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //vgpr_a
return 4;
case 1: //vgpr_d0
return 4;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_DS__DS_OR_B32
class Inst_DS__DS_XOR_B32 : public Inst_DS
{
public:
Inst_DS__DS_XOR_B32(InFmt_DS*);
~Inst_DS__DS_XOR_B32();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 0; }
int numSrcRegOperands() override { return 2; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //vgpr_a
return 4;
case 1: //vgpr_d0
return 4;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_DS__DS_XOR_B32
class Inst_DS__DS_MSKOR_B32 : public Inst_DS
{
public:
Inst_DS__DS_MSKOR_B32(InFmt_DS*);
~Inst_DS__DS_MSKOR_B32();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 0; }
int numSrcRegOperands() override { return 3; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //vgpr_a
return 4;
case 1: //vgpr_d1
return 4;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_DS__DS_MSKOR_B32
class Inst_DS__DS_WRITE_B32 : public Inst_DS
{
public:
Inst_DS__DS_WRITE_B32(InFmt_DS*);
~Inst_DS__DS_WRITE_B32();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 0; }
int numSrcRegOperands() override { return 2; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //vgpr_a
return 4;
case 1: //vgpr_d0
return 4;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
void initiateAcc(GPUDynInstPtr) override;
void completeAcc(GPUDynInstPtr) override;
}; // Inst_DS__DS_WRITE_B32
class Inst_DS__DS_WRITE2_B32 : public Inst_DS
{
public:
Inst_DS__DS_WRITE2_B32(InFmt_DS*);
~Inst_DS__DS_WRITE2_B32();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 0; }
int numSrcRegOperands() override { return 3; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //vgpr_a
return 4;
case 1: //vgpr_d0
return 4;
case 2: //vgpr_d1
return 4;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
void initiateAcc(GPUDynInstPtr) override;
void completeAcc(GPUDynInstPtr) override;
}; // Inst_DS__DS_WRITE2_B32
class Inst_DS__DS_WRITE2ST64_B32 : public Inst_DS
{
public:
Inst_DS__DS_WRITE2ST64_B32(InFmt_DS*);
~Inst_DS__DS_WRITE2ST64_B32();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 0; }
int numSrcRegOperands() override { return 3; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //vgpr_a
return 4;
case 1: //vgpr_d0
return 4;
case 2: //vgpr_d1
return 4;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
void initiateAcc(GPUDynInstPtr) override;
void completeAcc(GPUDynInstPtr) override;
}; // Inst_DS__DS_WRITE2ST64_B32
class Inst_DS__DS_CMPST_B32 : public Inst_DS
{
public:
Inst_DS__DS_CMPST_B32(InFmt_DS*);
~Inst_DS__DS_CMPST_B32();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 0; }
int numSrcRegOperands() override { return 3; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //vgpr_a
return 4;
case 1: //vgpr_d1
return 4;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_DS__DS_CMPST_B32
class Inst_DS__DS_CMPST_F32 : public Inst_DS
{
public:
Inst_DS__DS_CMPST_F32(InFmt_DS*);
~Inst_DS__DS_CMPST_F32();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 0; }
int numSrcRegOperands() override { return 3; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //vgpr_a
return 4;
case 1: //vgpr_d1
return 4;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_DS__DS_CMPST_F32
class Inst_DS__DS_MIN_F32 : public Inst_DS
{
public:
Inst_DS__DS_MIN_F32(InFmt_DS*);
~Inst_DS__DS_MIN_F32();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 0; }
int numSrcRegOperands() override { return 2; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //vgpr_a
return 4;
case 1: //vgpr_d0
return 4;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_DS__DS_MIN_F32
class Inst_DS__DS_MAX_F32 : public Inst_DS
{
public:
Inst_DS__DS_MAX_F32(InFmt_DS*);
~Inst_DS__DS_MAX_F32();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 0; }
int numSrcRegOperands() override { return 2; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //vgpr_a
return 4;
case 1: //vgpr_d0
return 4;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_DS__DS_MAX_F32
class Inst_DS__DS_NOP : public Inst_DS
{
public:
Inst_DS__DS_NOP(InFmt_DS*);
~Inst_DS__DS_NOP();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 0; }
int numSrcRegOperands() override { return 0; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //vgpr_a
return 4;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_DS__DS_NOP
class Inst_DS__DS_ADD_F32 : public Inst_DS
{
public:
Inst_DS__DS_ADD_F32(InFmt_DS*);
~Inst_DS__DS_ADD_F32();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 0; }
int numSrcRegOperands() override { return 2; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //vgpr_a
return 4;
case 1: //vgpr_d0
return 4;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_DS__DS_ADD_F32
class Inst_DS__DS_WRITE_B8 : public Inst_DS
{
public:
Inst_DS__DS_WRITE_B8(InFmt_DS*);
~Inst_DS__DS_WRITE_B8();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 0; }
int numSrcRegOperands() override { return 2; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //vgpr_a
return 4;
case 1: //vgpr_d0
return 1;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
void initiateAcc(GPUDynInstPtr) override;
void completeAcc(GPUDynInstPtr) override;
}; // Inst_DS__DS_WRITE_B8
class Inst_DS__DS_WRITE_B16 : public Inst_DS
{
public:
Inst_DS__DS_WRITE_B16(InFmt_DS*);
~Inst_DS__DS_WRITE_B16();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 0; }
int numSrcRegOperands() override { return 2; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //vgpr_a
return 4;
case 1: //vgpr_d0
return 2;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
void initiateAcc(GPUDynInstPtr) override;
void completeAcc(GPUDynInstPtr) override;
}; // Inst_DS__DS_WRITE_B16
class Inst_DS__DS_ADD_RTN_U32 : public Inst_DS
{
public:
Inst_DS__DS_ADD_RTN_U32(InFmt_DS*);
~Inst_DS__DS_ADD_RTN_U32();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 2; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //vgpr_a
return 4;
case 1: //vgpr_d0
return 4;
case 2: //vgpr_rtn
return 4;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_DS__DS_ADD_RTN_U32
class Inst_DS__DS_SUB_RTN_U32 : public Inst_DS
{
public:
Inst_DS__DS_SUB_RTN_U32(InFmt_DS*);
~Inst_DS__DS_SUB_RTN_U32();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 2; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //vgpr_a
return 4;
case 1: //vgpr_d0
return 4;
case 2: //vgpr_rtn
return 4;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_DS__DS_SUB_RTN_U32
class Inst_DS__DS_RSUB_RTN_U32 : public Inst_DS
{
public:
Inst_DS__DS_RSUB_RTN_U32(InFmt_DS*);
~Inst_DS__DS_RSUB_RTN_U32();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 2; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //vgpr_a
return 4;
case 1: //vgpr_d0
return 4;
case 2: //vgpr_rtn
return 4;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_DS__DS_RSUB_RTN_U32
class Inst_DS__DS_INC_RTN_U32 : public Inst_DS
{
public:
Inst_DS__DS_INC_RTN_U32(InFmt_DS*);
~Inst_DS__DS_INC_RTN_U32();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 2; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //vgpr_a
return 4;
case 1: //vgpr_d0
return 4;
case 2: //vgpr_rtn
return 4;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_DS__DS_INC_RTN_U32
class Inst_DS__DS_DEC_RTN_U32 : public Inst_DS
{
public:
Inst_DS__DS_DEC_RTN_U32(InFmt_DS*);
~Inst_DS__DS_DEC_RTN_U32();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 2; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //vgpr_a
return 4;
case 1: //vgpr_d0
return 4;
case 2: //vgpr_rtn
return 4;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_DS__DS_DEC_RTN_U32
class Inst_DS__DS_MIN_RTN_I32 : public Inst_DS
{
public:
Inst_DS__DS_MIN_RTN_I32(InFmt_DS*);
~Inst_DS__DS_MIN_RTN_I32();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 2; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //vgpr_a
return 4;
case 1: //vgpr_d0
return 4;
case 2: //vgpr_rtn
return 4;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_DS__DS_MIN_RTN_I32
class Inst_DS__DS_MAX_RTN_I32 : public Inst_DS
{
public:
Inst_DS__DS_MAX_RTN_I32(InFmt_DS*);
~Inst_DS__DS_MAX_RTN_I32();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 2; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //vgpr_a
return 4;
case 1: //vgpr_d0
return 4;
case 2: //vgpr_rtn
return 4;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_DS__DS_MAX_RTN_I32
class Inst_DS__DS_MIN_RTN_U32 : public Inst_DS
{
public:
Inst_DS__DS_MIN_RTN_U32(InFmt_DS*);
~Inst_DS__DS_MIN_RTN_U32();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 2; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //vgpr_a
return 4;
case 1: //vgpr_d0
return 4;
case 2: //vgpr_rtn
return 4;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_DS__DS_MIN_RTN_U32
class Inst_DS__DS_MAX_RTN_U32 : public Inst_DS
{
public:
Inst_DS__DS_MAX_RTN_U32(InFmt_DS*);
~Inst_DS__DS_MAX_RTN_U32();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 2; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //vgpr_a
return 4;
case 1: //vgpr_d0
return 4;
case 2: //vgpr_rtn
return 4;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_DS__DS_MAX_RTN_U32
class Inst_DS__DS_AND_RTN_B32 : public Inst_DS
{
public:
Inst_DS__DS_AND_RTN_B32(InFmt_DS*);
~Inst_DS__DS_AND_RTN_B32();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 2; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //vgpr_a
return 4;
case 1: //vgpr_d0
return 4;
case 2: //vgpr_rtn
return 4;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_DS__DS_AND_RTN_B32
class Inst_DS__DS_OR_RTN_B32 : public Inst_DS
{
public:
Inst_DS__DS_OR_RTN_B32(InFmt_DS*);
~Inst_DS__DS_OR_RTN_B32();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 2; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //vgpr_a
return 4;
case 1: //vgpr_d0
return 4;
case 2: //vgpr_rtn
return 4;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_DS__DS_OR_RTN_B32
class Inst_DS__DS_XOR_RTN_B32 : public Inst_DS
{
public:
Inst_DS__DS_XOR_RTN_B32(InFmt_DS*);
~Inst_DS__DS_XOR_RTN_B32();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 2; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //vgpr_a
return 4;
case 1: //vgpr_d0
return 4;
case 2: //vgpr_rtn
return 4;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_DS__DS_XOR_RTN_B32
class Inst_DS__DS_MSKOR_RTN_B32 : public Inst_DS
{
public:
Inst_DS__DS_MSKOR_RTN_B32(InFmt_DS*);
~Inst_DS__DS_MSKOR_RTN_B32();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 3; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //vgpr_a
return 4;
case 1: //vgpr_d1
return 4;
case 2: //vgpr_rtn
return 4;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_DS__DS_MSKOR_RTN_B32
class Inst_DS__DS_WRXCHG_RTN_B32 : public Inst_DS
{
public:
Inst_DS__DS_WRXCHG_RTN_B32(InFmt_DS*);
~Inst_DS__DS_WRXCHG_RTN_B32();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 2; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //vgpr_a
return 4;
case 1: //vgpr_d0
return 4;
case 2: //vgpr_rtn
return 4;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_DS__DS_WRXCHG_RTN_B32
class Inst_DS__DS_WRXCHG2_RTN_B32 : public Inst_DS
{
public:
Inst_DS__DS_WRXCHG2_RTN_B32(InFmt_DS*);
~Inst_DS__DS_WRXCHG2_RTN_B32();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 3; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //vgpr_a
return 4;
case 1: //vgpr_d1
return 4;
case 2: //vgpr_rtn
return 4;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_DS__DS_WRXCHG2_RTN_B32
class Inst_DS__DS_WRXCHG2ST64_RTN_B32 : public Inst_DS
{
public:
Inst_DS__DS_WRXCHG2ST64_RTN_B32(InFmt_DS*);
~Inst_DS__DS_WRXCHG2ST64_RTN_B32();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 3; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //vgpr_a
return 4;
case 1: //vgpr_d1
return 4;
case 2: //vgpr_rtn
return 4;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_DS__DS_WRXCHG2ST64_RTN_B32
class Inst_DS__DS_CMPST_RTN_B32 : public Inst_DS
{
public:
Inst_DS__DS_CMPST_RTN_B32(InFmt_DS*);
~Inst_DS__DS_CMPST_RTN_B32();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 3; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //vgpr_a
return 4;
case 1: //vgpr_d1
return 4;
case 2: //vgpr_rtn
return 4;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_DS__DS_CMPST_RTN_B32
class Inst_DS__DS_CMPST_RTN_F32 : public Inst_DS
{
public:
Inst_DS__DS_CMPST_RTN_F32(InFmt_DS*);
~Inst_DS__DS_CMPST_RTN_F32();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 3; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //vgpr_a
return 4;
case 1: //vgpr_d1
return 4;
case 2: //vgpr_rtn
return 4;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_DS__DS_CMPST_RTN_F32
class Inst_DS__DS_MIN_RTN_F32 : public Inst_DS
{
public:
Inst_DS__DS_MIN_RTN_F32(InFmt_DS*);
~Inst_DS__DS_MIN_RTN_F32();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 2; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //vgpr_a
return 4;
case 1: //vgpr_d0
return 4;
case 2: //vgpr_rtn
return 4;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_DS__DS_MIN_RTN_F32
class Inst_DS__DS_MAX_RTN_F32 : public Inst_DS
{
public:
Inst_DS__DS_MAX_RTN_F32(InFmt_DS*);
~Inst_DS__DS_MAX_RTN_F32();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 2; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //vgpr_a
return 4;
case 1: //vgpr_d0
return 4;
case 2: //vgpr_rtn
return 4;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_DS__DS_MAX_RTN_F32
class Inst_DS__DS_WRAP_RTN_B32 : public Inst_DS
{
public:
Inst_DS__DS_WRAP_RTN_B32(InFmt_DS*);
~Inst_DS__DS_WRAP_RTN_B32();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 3; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //vgpr_a
return 4;
case 1: //vgpr_d1
return 4;
case 2: //vgpr_rtn
return 4;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_DS__DS_WRAP_RTN_B32
class Inst_DS__DS_ADD_RTN_F32 : public Inst_DS
{
public:
Inst_DS__DS_ADD_RTN_F32(InFmt_DS*);
~Inst_DS__DS_ADD_RTN_F32();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 2; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //vgpr_a
return 4;
case 1: //vgpr_d0
return 4;
case 2: //vgpr_rtn
return 4;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_DS__DS_ADD_RTN_F32
class Inst_DS__DS_READ_B32 : public Inst_DS
{
public:
Inst_DS__DS_READ_B32(InFmt_DS*);
~Inst_DS__DS_READ_B32();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 1; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //vgpr_a
return 4;
case 1: //vgpr_rtn
return 4;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
void initiateAcc(GPUDynInstPtr) override;
void completeAcc(GPUDynInstPtr) override;
}; // Inst_DS__DS_READ_B32
class Inst_DS__DS_READ2_B32 : public Inst_DS
{
public:
Inst_DS__DS_READ2_B32(InFmt_DS*);
~Inst_DS__DS_READ2_B32();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 1; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //vgpr_a
return 4;
case 1: //vgpr_rtn
return 8;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
void initiateAcc(GPUDynInstPtr) override;
void completeAcc(GPUDynInstPtr) override;
}; // Inst_DS__DS_READ2_B32
class Inst_DS__DS_READ2ST64_B32 : public Inst_DS
{
public:
Inst_DS__DS_READ2ST64_B32(InFmt_DS*);
~Inst_DS__DS_READ2ST64_B32();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 1; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //vgpr_a
return 4;
case 1: //vgpr_rtn
return 4;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
void initiateAcc(GPUDynInstPtr) override;
void completeAcc(GPUDynInstPtr) override;
}; // Inst_DS__DS_READ2ST64_B32
class Inst_DS__DS_READ_I8 : public Inst_DS
{
public:
Inst_DS__DS_READ_I8(InFmt_DS*);
~Inst_DS__DS_READ_I8();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 1; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //vgpr_a
return 4;
case 1: //vgpr_rtn
return 1;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_DS__DS_READ_I8
class Inst_DS__DS_READ_U8 : public Inst_DS
{
public:
Inst_DS__DS_READ_U8(InFmt_DS*);
~Inst_DS__DS_READ_U8();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 1; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //vgpr_a
return 4;
case 1: //vgpr_rtn
return 1;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
void initiateAcc(GPUDynInstPtr) override;
void completeAcc(GPUDynInstPtr) override;
}; // Inst_DS__DS_READ_U8
class Inst_DS__DS_READ_I16 : public Inst_DS
{
public:
Inst_DS__DS_READ_I16(InFmt_DS*);
~Inst_DS__DS_READ_I16();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 1; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //vgpr_a
return 4;
case 1: //vgpr_rtn
return 2;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_DS__DS_READ_I16
class Inst_DS__DS_READ_U16 : public Inst_DS
{
public:
Inst_DS__DS_READ_U16(InFmt_DS*);
~Inst_DS__DS_READ_U16();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 1; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //vgpr_a
return 4;
case 1: //vgpr_rtn
return 2;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
void initiateAcc(GPUDynInstPtr) override;
void completeAcc(GPUDynInstPtr) override;
}; // Inst_DS__DS_READ_U16
class Inst_DS__DS_SWIZZLE_B32 : public Inst_DS
{
public:
Inst_DS__DS_SWIZZLE_B32(InFmt_DS*);
~Inst_DS__DS_SWIZZLE_B32();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 1; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //vgpr_a
return 4;
case 1: //vgpr_rtn
return 4;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_DS__DS_SWIZZLE_B32
class Inst_DS__DS_PERMUTE_B32 : public Inst_DS
{
public:
Inst_DS__DS_PERMUTE_B32(InFmt_DS*);
~Inst_DS__DS_PERMUTE_B32();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 2; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //vgpr_a
return 4;
case 1: //vgpr_d0
return 4;
case 2: //vgpr_rtn
return 4;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_DS__DS_PERMUTE_B32
class Inst_DS__DS_BPERMUTE_B32 : public Inst_DS
{
public:
Inst_DS__DS_BPERMUTE_B32(InFmt_DS*);
~Inst_DS__DS_BPERMUTE_B32();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 2; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //vgpr_a
return 4;
case 1: //vgpr_d0
return 4;
case 2: //vgpr_rtn
return 4;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_DS__DS_BPERMUTE_B32
class Inst_DS__DS_ADD_U64 : public Inst_DS
{
public:
Inst_DS__DS_ADD_U64(InFmt_DS*);
~Inst_DS__DS_ADD_U64();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 0; }
int numSrcRegOperands() override { return 2; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //vgpr_a
return 4;
case 1: //vgpr_d0
return 8;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_DS__DS_ADD_U64
class Inst_DS__DS_SUB_U64 : public Inst_DS
{
public:
Inst_DS__DS_SUB_U64(InFmt_DS*);
~Inst_DS__DS_SUB_U64();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 0; }
int numSrcRegOperands() override { return 2; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //vgpr_a
return 4;
case 1: //vgpr_d0
return 8;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_DS__DS_SUB_U64
class Inst_DS__DS_RSUB_U64 : public Inst_DS
{
public:
Inst_DS__DS_RSUB_U64(InFmt_DS*);
~Inst_DS__DS_RSUB_U64();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 0; }
int numSrcRegOperands() override { return 2; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //vgpr_a
return 4;
case 1: //vgpr_d0
return 8;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_DS__DS_RSUB_U64
class Inst_DS__DS_INC_U64 : public Inst_DS
{
public:
Inst_DS__DS_INC_U64(InFmt_DS*);
~Inst_DS__DS_INC_U64();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 0; }
int numSrcRegOperands() override { return 2; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //vgpr_a
return 4;
case 1: //vgpr_d0
return 8;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_DS__DS_INC_U64
class Inst_DS__DS_DEC_U64 : public Inst_DS
{
public:
Inst_DS__DS_DEC_U64(InFmt_DS*);
~Inst_DS__DS_DEC_U64();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 0; }
int numSrcRegOperands() override { return 2; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //vgpr_a
return 4;
case 1: //vgpr_d0
return 8;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_DS__DS_DEC_U64
class Inst_DS__DS_MIN_I64 : public Inst_DS
{
public:
Inst_DS__DS_MIN_I64(InFmt_DS*);
~Inst_DS__DS_MIN_I64();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 0; }
int numSrcRegOperands() override { return 2; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //vgpr_a
return 4;
case 1: //vgpr_d0
return 8;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_DS__DS_MIN_I64
class Inst_DS__DS_MAX_I64 : public Inst_DS
{
public:
Inst_DS__DS_MAX_I64(InFmt_DS*);
~Inst_DS__DS_MAX_I64();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 0; }
int numSrcRegOperands() override { return 2; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //vgpr_a
return 4;
case 1: //vgpr_d0
return 8;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_DS__DS_MAX_I64
class Inst_DS__DS_MIN_U64 : public Inst_DS
{
public:
Inst_DS__DS_MIN_U64(InFmt_DS*);
~Inst_DS__DS_MIN_U64();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 0; }
int numSrcRegOperands() override { return 2; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //vgpr_a
return 4;
case 1: //vgpr_d0
return 8;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_DS__DS_MIN_U64
class Inst_DS__DS_MAX_U64 : public Inst_DS
{
public:
Inst_DS__DS_MAX_U64(InFmt_DS*);
~Inst_DS__DS_MAX_U64();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 0; }
int numSrcRegOperands() override { return 2; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //vgpr_a
return 4;
case 1: //vgpr_d0
return 8;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_DS__DS_MAX_U64
class Inst_DS__DS_AND_B64 : public Inst_DS
{
public:
Inst_DS__DS_AND_B64(InFmt_DS*);
~Inst_DS__DS_AND_B64();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 0; }
int numSrcRegOperands() override { return 2; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //vgpr_a
return 4;
case 1: //vgpr_d0
return 8;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_DS__DS_AND_B64
class Inst_DS__DS_OR_B64 : public Inst_DS
{
public:
Inst_DS__DS_OR_B64(InFmt_DS*);
~Inst_DS__DS_OR_B64();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 0; }
int numSrcRegOperands() override { return 2; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //vgpr_a
return 4;
case 1: //vgpr_d0
return 8;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_DS__DS_OR_B64
class Inst_DS__DS_XOR_B64 : public Inst_DS
{
public:
Inst_DS__DS_XOR_B64(InFmt_DS*);
~Inst_DS__DS_XOR_B64();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 0; }
int numSrcRegOperands() override { return 2; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //vgpr_a
return 4;
case 1: //vgpr_d0
return 8;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_DS__DS_XOR_B64
class Inst_DS__DS_MSKOR_B64 : public Inst_DS
{
public:
Inst_DS__DS_MSKOR_B64(InFmt_DS*);
~Inst_DS__DS_MSKOR_B64();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 0; }
int numSrcRegOperands() override { return 3; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //vgpr_a
return 4;
case 1: //vgpr_d1
return 8;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_DS__DS_MSKOR_B64
class Inst_DS__DS_WRITE_B64 : public Inst_DS
{
public:
Inst_DS__DS_WRITE_B64(InFmt_DS*);
~Inst_DS__DS_WRITE_B64();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 0; }
int numSrcRegOperands() override { return 2; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //vgpr_a
return 4;
case 1: //vgpr_d0
return 8;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
void initiateAcc(GPUDynInstPtr) override;
void completeAcc(GPUDynInstPtr) override;
}; // Inst_DS__DS_WRITE_B64
class Inst_DS__DS_WRITE2_B64 : public Inst_DS
{
public:
Inst_DS__DS_WRITE2_B64(InFmt_DS*);
~Inst_DS__DS_WRITE2_B64();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 0; }
int numSrcRegOperands() override { return 3; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //vgpr_a
return 4;
case 1: //vgpr_d0
return 8;
case 2: //vgpr_d1
return 8;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
void initiateAcc(GPUDynInstPtr) override;
void completeAcc(GPUDynInstPtr) override;
}; // Inst_DS__DS_WRITE2_B64
class Inst_DS__DS_WRITE2ST64_B64 : public Inst_DS
{
public:
Inst_DS__DS_WRITE2ST64_B64(InFmt_DS*);
~Inst_DS__DS_WRITE2ST64_B64();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 0; }
int numSrcRegOperands() override { return 3; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //vgpr_a
return 4;
case 1: //vgpr_d1
return 8;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_DS__DS_WRITE2ST64_B64
class Inst_DS__DS_CMPST_B64 : public Inst_DS
{
public:
Inst_DS__DS_CMPST_B64(InFmt_DS*);
~Inst_DS__DS_CMPST_B64();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 0; }
int numSrcRegOperands() override { return 3; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //vgpr_a
return 4;
case 1: //vgpr_d1
return 8;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_DS__DS_CMPST_B64
class Inst_DS__DS_CMPST_F64 : public Inst_DS
{
public:
Inst_DS__DS_CMPST_F64(InFmt_DS*);
~Inst_DS__DS_CMPST_F64();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 0; }
int numSrcRegOperands() override { return 3; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //vgpr_a
return 4;
case 1: //vgpr_d1
return 8;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_DS__DS_CMPST_F64
class Inst_DS__DS_MIN_F64 : public Inst_DS
{
public:
Inst_DS__DS_MIN_F64(InFmt_DS*);
~Inst_DS__DS_MIN_F64();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 0; }
int numSrcRegOperands() override { return 2; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //vgpr_a
return 4;
case 1: //vgpr_d0
return 8;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_DS__DS_MIN_F64
class Inst_DS__DS_MAX_F64 : public Inst_DS
{
public:
Inst_DS__DS_MAX_F64(InFmt_DS*);
~Inst_DS__DS_MAX_F64();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 0; }
int numSrcRegOperands() override { return 2; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //vgpr_a
return 4;
case 1: //vgpr_d0
return 8;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_DS__DS_MAX_F64
class Inst_DS__DS_ADD_RTN_U64 : public Inst_DS
{
public:
Inst_DS__DS_ADD_RTN_U64(InFmt_DS*);
~Inst_DS__DS_ADD_RTN_U64();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 2; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //vgpr_a
return 4;
case 1: //vgpr_d0
return 8;
case 2: //vgpr_rtn
return 8;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_DS__DS_ADD_RTN_U64
class Inst_DS__DS_SUB_RTN_U64 : public Inst_DS
{
public:
Inst_DS__DS_SUB_RTN_U64(InFmt_DS*);
~Inst_DS__DS_SUB_RTN_U64();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 2; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //vgpr_a
return 4;
case 1: //vgpr_d0
return 8;
case 2: //vgpr_rtn
return 8;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_DS__DS_SUB_RTN_U64
class Inst_DS__DS_RSUB_RTN_U64 : public Inst_DS
{
public:
Inst_DS__DS_RSUB_RTN_U64(InFmt_DS*);
~Inst_DS__DS_RSUB_RTN_U64();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 2; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //vgpr_a
return 4;
case 1: //vgpr_d0
return 8;
case 2: //vgpr_rtn
return 8;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_DS__DS_RSUB_RTN_U64
class Inst_DS__DS_INC_RTN_U64 : public Inst_DS
{
public:
Inst_DS__DS_INC_RTN_U64(InFmt_DS*);
~Inst_DS__DS_INC_RTN_U64();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 2; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //vgpr_a
return 4;
case 1: //vgpr_d0
return 8;
case 2: //vgpr_rtn
return 8;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_DS__DS_INC_RTN_U64
class Inst_DS__DS_DEC_RTN_U64 : public Inst_DS
{
public:
Inst_DS__DS_DEC_RTN_U64(InFmt_DS*);
~Inst_DS__DS_DEC_RTN_U64();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 2; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //vgpr_a
return 4;
case 1: //vgpr_d0
return 8;
case 2: //vgpr_rtn
return 8;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_DS__DS_DEC_RTN_U64
class Inst_DS__DS_MIN_RTN_I64 : public Inst_DS
{
public:
Inst_DS__DS_MIN_RTN_I64(InFmt_DS*);
~Inst_DS__DS_MIN_RTN_I64();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 2; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //vgpr_a
return 4;
case 1: //vgpr_d0
return 8;
case 2: //vgpr_rtn
return 8;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_DS__DS_MIN_RTN_I64
class Inst_DS__DS_MAX_RTN_I64 : public Inst_DS
{
public:
Inst_DS__DS_MAX_RTN_I64(InFmt_DS*);
~Inst_DS__DS_MAX_RTN_I64();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 2; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //vgpr_a
return 4;
case 1: //vgpr_d0
return 8;
case 2: //vgpr_rtn
return 8;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_DS__DS_MAX_RTN_I64
class Inst_DS__DS_MIN_RTN_U64 : public Inst_DS
{
public:
Inst_DS__DS_MIN_RTN_U64(InFmt_DS*);
~Inst_DS__DS_MIN_RTN_U64();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 2; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //vgpr_a
return 4;
case 1: //vgpr_d0
return 8;
case 2: //vgpr_rtn
return 8;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_DS__DS_MIN_RTN_U64
class Inst_DS__DS_MAX_RTN_U64 : public Inst_DS
{
public:
Inst_DS__DS_MAX_RTN_U64(InFmt_DS*);
~Inst_DS__DS_MAX_RTN_U64();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 2; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //vgpr_a
return 4;
case 1: //vgpr_d0
return 8;
case 2: //vgpr_rtn
return 8;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_DS__DS_MAX_RTN_U64
class Inst_DS__DS_AND_RTN_B64 : public Inst_DS
{
public:
Inst_DS__DS_AND_RTN_B64(InFmt_DS*);
~Inst_DS__DS_AND_RTN_B64();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 2; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //vgpr_a
return 4;
case 1: //vgpr_d0
return 8;
case 2: //vgpr_rtn
return 8;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_DS__DS_AND_RTN_B64
class Inst_DS__DS_OR_RTN_B64 : public Inst_DS
{
public:
Inst_DS__DS_OR_RTN_B64(InFmt_DS*);
~Inst_DS__DS_OR_RTN_B64();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 2; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //vgpr_a
return 4;
case 1: //vgpr_d0
return 8;
case 2: //vgpr_rtn
return 8;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_DS__DS_OR_RTN_B64
class Inst_DS__DS_XOR_RTN_B64 : public Inst_DS
{
public:
Inst_DS__DS_XOR_RTN_B64(InFmt_DS*);
~Inst_DS__DS_XOR_RTN_B64();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 2; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //vgpr_a
return 4;
case 1: //vgpr_d0
return 8;
case 2: //vgpr_rtn
return 8;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_DS__DS_XOR_RTN_B64
class Inst_DS__DS_MSKOR_RTN_B64 : public Inst_DS
{
public:
Inst_DS__DS_MSKOR_RTN_B64(InFmt_DS*);
~Inst_DS__DS_MSKOR_RTN_B64();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 3; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //vgpr_a
return 4;
case 1: //vgpr_d1
return 8;
case 2: //vgpr_rtn
return 8;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_DS__DS_MSKOR_RTN_B64
class Inst_DS__DS_WRXCHG_RTN_B64 : public Inst_DS
{
public:
Inst_DS__DS_WRXCHG_RTN_B64(InFmt_DS*);
~Inst_DS__DS_WRXCHG_RTN_B64();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 2; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //vgpr_a
return 4;
case 1: //vgpr_d0
return 8;
case 2: //vgpr_rtn
return 8;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_DS__DS_WRXCHG_RTN_B64
class Inst_DS__DS_WRXCHG2_RTN_B64 : public Inst_DS
{
public:
Inst_DS__DS_WRXCHG2_RTN_B64(InFmt_DS*);
~Inst_DS__DS_WRXCHG2_RTN_B64();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 3; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //vgpr_a
return 4;
case 1: //vgpr_d1
return 8;
case 2: //vgpr_rtn
return 8;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_DS__DS_WRXCHG2_RTN_B64
class Inst_DS__DS_WRXCHG2ST64_RTN_B64 : public Inst_DS
{
public:
Inst_DS__DS_WRXCHG2ST64_RTN_B64(InFmt_DS*);
~Inst_DS__DS_WRXCHG2ST64_RTN_B64();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 3; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //vgpr_a
return 4;
case 1: //vgpr_d1
return 8;
case 2: //vgpr_rtn
return 8;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_DS__DS_WRXCHG2ST64_RTN_B64
class Inst_DS__DS_CMPST_RTN_B64 : public Inst_DS
{
public:
Inst_DS__DS_CMPST_RTN_B64(InFmt_DS*);
~Inst_DS__DS_CMPST_RTN_B64();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 3; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //vgpr_a
return 4;
case 1: //vgpr_d1
return 8;
case 2: //vgpr_rtn
return 8;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_DS__DS_CMPST_RTN_B64
class Inst_DS__DS_CMPST_RTN_F64 : public Inst_DS
{
public:
Inst_DS__DS_CMPST_RTN_F64(InFmt_DS*);
~Inst_DS__DS_CMPST_RTN_F64();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 3; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //vgpr_a
return 4;
case 1: //vgpr_d1
return 8;
case 2: //vgpr_rtn
return 8;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_DS__DS_CMPST_RTN_F64
class Inst_DS__DS_MIN_RTN_F64 : public Inst_DS
{
public:
Inst_DS__DS_MIN_RTN_F64(InFmt_DS*);
~Inst_DS__DS_MIN_RTN_F64();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 2; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //vgpr_a
return 4;
case 1: //vgpr_d0
return 8;
case 2: //vgpr_rtn
return 8;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_DS__DS_MIN_RTN_F64
class Inst_DS__DS_MAX_RTN_F64 : public Inst_DS
{
public:
Inst_DS__DS_MAX_RTN_F64(InFmt_DS*);
~Inst_DS__DS_MAX_RTN_F64();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 2; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //vgpr_a
return 4;
case 1: //vgpr_d0
return 8;
case 2: //vgpr_rtn
return 8;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_DS__DS_MAX_RTN_F64
class Inst_DS__DS_READ_B64 : public Inst_DS
{
public:
Inst_DS__DS_READ_B64(InFmt_DS*);
~Inst_DS__DS_READ_B64();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 1; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //vgpr_a
return 4;
case 1: //vgpr_rtn
return 8;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
void initiateAcc(GPUDynInstPtr) override;
void completeAcc(GPUDynInstPtr) override;
}; // Inst_DS__DS_READ_B64
class Inst_DS__DS_READ2_B64 : public Inst_DS
{
public:
Inst_DS__DS_READ2_B64(InFmt_DS*);
~Inst_DS__DS_READ2_B64();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 1; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //vgpr_a
return 4;
case 1: //vgpr_rtn
return 16;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
void initiateAcc(GPUDynInstPtr) override;
void completeAcc(GPUDynInstPtr) override;
}; // Inst_DS__DS_READ2_B64
class Inst_DS__DS_READ2ST64_B64 : public Inst_DS
{
public:
Inst_DS__DS_READ2ST64_B64(InFmt_DS*);
~Inst_DS__DS_READ2ST64_B64();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 1; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //vgpr_a
return 4;
case 1: //vgpr_rtn
return 8;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
void initiateAcc(GPUDynInstPtr) override;
void completeAcc(GPUDynInstPtr) override;
}; // Inst_DS__DS_READ2ST64_B64
class Inst_DS__DS_CONDXCHG32_RTN_B64 : public Inst_DS
{
public:
Inst_DS__DS_CONDXCHG32_RTN_B64(InFmt_DS*);
~Inst_DS__DS_CONDXCHG32_RTN_B64();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 2; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //vgpr_a
return 4;
case 1: //vgpr_d0
return 8;
case 2: //vgpr_rtn
return 8;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_DS__DS_CONDXCHG32_RTN_B64
class Inst_DS__DS_ADD_SRC2_U32 : public Inst_DS
{
public:
Inst_DS__DS_ADD_SRC2_U32(InFmt_DS*);
~Inst_DS__DS_ADD_SRC2_U32();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 0; }
int numSrcRegOperands() override { return 1; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //vgpr_a
return 4;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_DS__DS_ADD_SRC2_U32
class Inst_DS__DS_SUB_SRC2_U32 : public Inst_DS
{
public:
Inst_DS__DS_SUB_SRC2_U32(InFmt_DS*);
~Inst_DS__DS_SUB_SRC2_U32();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 0; }
int numSrcRegOperands() override { return 1; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //vgpr_a
return 4;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_DS__DS_SUB_SRC2_U32
class Inst_DS__DS_RSUB_SRC2_U32 : public Inst_DS
{
public:
Inst_DS__DS_RSUB_SRC2_U32(InFmt_DS*);
~Inst_DS__DS_RSUB_SRC2_U32();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 0; }
int numSrcRegOperands() override { return 1; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //vgpr_a
return 4;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_DS__DS_RSUB_SRC2_U32
class Inst_DS__DS_INC_SRC2_U32 : public Inst_DS
{
public:
Inst_DS__DS_INC_SRC2_U32(InFmt_DS*);
~Inst_DS__DS_INC_SRC2_U32();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 0; }
int numSrcRegOperands() override { return 1; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //vgpr_a
return 4;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_DS__DS_INC_SRC2_U32
class Inst_DS__DS_DEC_SRC2_U32 : public Inst_DS
{
public:
Inst_DS__DS_DEC_SRC2_U32(InFmt_DS*);
~Inst_DS__DS_DEC_SRC2_U32();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 0; }
int numSrcRegOperands() override { return 1; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //vgpr_a
return 4;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_DS__DS_DEC_SRC2_U32
class Inst_DS__DS_MIN_SRC2_I32 : public Inst_DS
{
public:
Inst_DS__DS_MIN_SRC2_I32(InFmt_DS*);
~Inst_DS__DS_MIN_SRC2_I32();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 0; }
int numSrcRegOperands() override { return 1; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //vgpr_a
return 4;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_DS__DS_MIN_SRC2_I32
class Inst_DS__DS_MAX_SRC2_I32 : public Inst_DS
{
public:
Inst_DS__DS_MAX_SRC2_I32(InFmt_DS*);
~Inst_DS__DS_MAX_SRC2_I32();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 0; }
int numSrcRegOperands() override { return 1; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //vgpr_a
return 4;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_DS__DS_MAX_SRC2_I32
class Inst_DS__DS_MIN_SRC2_U32 : public Inst_DS
{
public:
Inst_DS__DS_MIN_SRC2_U32(InFmt_DS*);
~Inst_DS__DS_MIN_SRC2_U32();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 0; }
int numSrcRegOperands() override { return 1; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //vgpr_a
return 4;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_DS__DS_MIN_SRC2_U32
class Inst_DS__DS_MAX_SRC2_U32 : public Inst_DS
{
public:
Inst_DS__DS_MAX_SRC2_U32(InFmt_DS*);
~Inst_DS__DS_MAX_SRC2_U32();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 0; }
int numSrcRegOperands() override { return 1; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //vgpr_a
return 4;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_DS__DS_MAX_SRC2_U32
class Inst_DS__DS_AND_SRC2_B32 : public Inst_DS
{
public:
Inst_DS__DS_AND_SRC2_B32(InFmt_DS*);
~Inst_DS__DS_AND_SRC2_B32();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 0; }
int numSrcRegOperands() override { return 1; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //vgpr_a
return 4;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_DS__DS_AND_SRC2_B32
class Inst_DS__DS_OR_SRC2_B32 : public Inst_DS
{
public:
Inst_DS__DS_OR_SRC2_B32(InFmt_DS*);
~Inst_DS__DS_OR_SRC2_B32();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 0; }
int numSrcRegOperands() override { return 1; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //vgpr_a
return 4;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_DS__DS_OR_SRC2_B32
class Inst_DS__DS_XOR_SRC2_B32 : public Inst_DS
{
public:
Inst_DS__DS_XOR_SRC2_B32(InFmt_DS*);
~Inst_DS__DS_XOR_SRC2_B32();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 0; }
int numSrcRegOperands() override { return 1; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //vgpr_a
return 4;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_DS__DS_XOR_SRC2_B32
class Inst_DS__DS_WRITE_SRC2_B32 : public Inst_DS
{
public:
Inst_DS__DS_WRITE_SRC2_B32(InFmt_DS*);
~Inst_DS__DS_WRITE_SRC2_B32();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 0; }
int numSrcRegOperands() override { return 1; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //vgpr_a
return 4;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_DS__DS_WRITE_SRC2_B32
class Inst_DS__DS_MIN_SRC2_F32 : public Inst_DS
{
public:
Inst_DS__DS_MIN_SRC2_F32(InFmt_DS*);
~Inst_DS__DS_MIN_SRC2_F32();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 0; }
int numSrcRegOperands() override { return 1; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //vgpr_a
return 4;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_DS__DS_MIN_SRC2_F32
class Inst_DS__DS_MAX_SRC2_F32 : public Inst_DS
{
public:
Inst_DS__DS_MAX_SRC2_F32(InFmt_DS*);
~Inst_DS__DS_MAX_SRC2_F32();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 0; }
int numSrcRegOperands() override { return 1; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //vgpr_a
return 4;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_DS__DS_MAX_SRC2_F32
class Inst_DS__DS_ADD_SRC2_F32 : public Inst_DS
{
public:
Inst_DS__DS_ADD_SRC2_F32(InFmt_DS*);
~Inst_DS__DS_ADD_SRC2_F32();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 0; }
int numSrcRegOperands() override { return 1; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //vgpr_a
return 4;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_DS__DS_ADD_SRC2_F32
class Inst_DS__DS_GWS_SEMA_RELEASE_ALL : public Inst_DS
{
public:
Inst_DS__DS_GWS_SEMA_RELEASE_ALL(InFmt_DS*);
~Inst_DS__DS_GWS_SEMA_RELEASE_ALL();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 0; }
int numSrcRegOperands() override { return 0; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //vgpr_a
return 4;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_DS__DS_GWS_SEMA_RELEASE_ALL
class Inst_DS__DS_GWS_INIT : public Inst_DS
{
public:
Inst_DS__DS_GWS_INIT(InFmt_DS*);
~Inst_DS__DS_GWS_INIT();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 0; }
int numSrcRegOperands() override { return 1; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //vgpr_d0
return 4;
case 1: //vgpr_d0
return 4;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_DS__DS_GWS_INIT
class Inst_DS__DS_GWS_SEMA_V : public Inst_DS
{
public:
Inst_DS__DS_GWS_SEMA_V(InFmt_DS*);
~Inst_DS__DS_GWS_SEMA_V();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 0; }
int numSrcRegOperands() override { return 0; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //vgpr_a
return 4;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_DS__DS_GWS_SEMA_V
class Inst_DS__DS_GWS_SEMA_BR : public Inst_DS
{
public:
Inst_DS__DS_GWS_SEMA_BR(InFmt_DS*);
~Inst_DS__DS_GWS_SEMA_BR();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 0; }
int numSrcRegOperands() override { return 1; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //vgpr_d0
return 4;
case 1: //vgpr_d0
return 4;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_DS__DS_GWS_SEMA_BR
class Inst_DS__DS_GWS_SEMA_P : public Inst_DS
{
public:
Inst_DS__DS_GWS_SEMA_P(InFmt_DS*);
~Inst_DS__DS_GWS_SEMA_P();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 0; }
int numSrcRegOperands() override { return 0; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //vgpr_a
return 4;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_DS__DS_GWS_SEMA_P
class Inst_DS__DS_GWS_BARRIER : public Inst_DS
{
public:
Inst_DS__DS_GWS_BARRIER(InFmt_DS*);
~Inst_DS__DS_GWS_BARRIER();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 0; }
int numSrcRegOperands() override { return 1; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //vgpr_d0
return 4;
case 1: //vgpr_d0
return 4;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_DS__DS_GWS_BARRIER
class Inst_DS__DS_CONSUME : public Inst_DS
{
public:
Inst_DS__DS_CONSUME(InFmt_DS*);
~Inst_DS__DS_CONSUME();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 0; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //vgpr_a
return 4;
case 1: //vgpr_rtn
return 4;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_DS__DS_CONSUME
class Inst_DS__DS_APPEND : public Inst_DS
{
public:
Inst_DS__DS_APPEND(InFmt_DS*);
~Inst_DS__DS_APPEND();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 0; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //vgpr_a
return 4;
case 1: //vgpr_rtn
return 4;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_DS__DS_APPEND
class Inst_DS__DS_ORDERED_COUNT : public Inst_DS
{
public:
Inst_DS__DS_ORDERED_COUNT(InFmt_DS*);
~Inst_DS__DS_ORDERED_COUNT();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 1; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //vgpr_a
return 4;
case 1: //vgpr_rtn
return 4;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_DS__DS_ORDERED_COUNT
class Inst_DS__DS_ADD_SRC2_U64 : public Inst_DS
{
public:
Inst_DS__DS_ADD_SRC2_U64(InFmt_DS*);
~Inst_DS__DS_ADD_SRC2_U64();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 0; }
int numSrcRegOperands() override { return 1; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //vgpr_a
return 4;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_DS__DS_ADD_SRC2_U64
class Inst_DS__DS_SUB_SRC2_U64 : public Inst_DS
{
public:
Inst_DS__DS_SUB_SRC2_U64(InFmt_DS*);
~Inst_DS__DS_SUB_SRC2_U64();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 0; }
int numSrcRegOperands() override { return 1; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //vgpr_a
return 4;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_DS__DS_SUB_SRC2_U64
class Inst_DS__DS_RSUB_SRC2_U64 : public Inst_DS
{
public:
Inst_DS__DS_RSUB_SRC2_U64(InFmt_DS*);
~Inst_DS__DS_RSUB_SRC2_U64();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 0; }
int numSrcRegOperands() override { return 1; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //vgpr_a
return 4;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_DS__DS_RSUB_SRC2_U64
class Inst_DS__DS_INC_SRC2_U64 : public Inst_DS
{
public:
Inst_DS__DS_INC_SRC2_U64(InFmt_DS*);
~Inst_DS__DS_INC_SRC2_U64();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 0; }
int numSrcRegOperands() override { return 1; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //vgpr_a
return 4;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_DS__DS_INC_SRC2_U64
class Inst_DS__DS_DEC_SRC2_U64 : public Inst_DS
{
public:
Inst_DS__DS_DEC_SRC2_U64(InFmt_DS*);
~Inst_DS__DS_DEC_SRC2_U64();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 0; }
int numSrcRegOperands() override { return 1; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //vgpr_a
return 4;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_DS__DS_DEC_SRC2_U64
class Inst_DS__DS_MIN_SRC2_I64 : public Inst_DS
{
public:
Inst_DS__DS_MIN_SRC2_I64(InFmt_DS*);
~Inst_DS__DS_MIN_SRC2_I64();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 0; }
int numSrcRegOperands() override { return 1; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //vgpr_a
return 4;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_DS__DS_MIN_SRC2_I64
class Inst_DS__DS_MAX_SRC2_I64 : public Inst_DS
{
public:
Inst_DS__DS_MAX_SRC2_I64(InFmt_DS*);
~Inst_DS__DS_MAX_SRC2_I64();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 0; }
int numSrcRegOperands() override { return 1; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //vgpr_a
return 4;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_DS__DS_MAX_SRC2_I64
class Inst_DS__DS_MIN_SRC2_U64 : public Inst_DS
{
public:
Inst_DS__DS_MIN_SRC2_U64(InFmt_DS*);
~Inst_DS__DS_MIN_SRC2_U64();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 0; }
int numSrcRegOperands() override { return 1; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //vgpr_a
return 4;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_DS__DS_MIN_SRC2_U64
class Inst_DS__DS_MAX_SRC2_U64 : public Inst_DS
{
public:
Inst_DS__DS_MAX_SRC2_U64(InFmt_DS*);
~Inst_DS__DS_MAX_SRC2_U64();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 0; }
int numSrcRegOperands() override { return 1; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //vgpr_a
return 4;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_DS__DS_MAX_SRC2_U64
class Inst_DS__DS_AND_SRC2_B64 : public Inst_DS
{
public:
Inst_DS__DS_AND_SRC2_B64(InFmt_DS*);
~Inst_DS__DS_AND_SRC2_B64();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 0; }
int numSrcRegOperands() override { return 1; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //vgpr_a
return 4;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_DS__DS_AND_SRC2_B64
class Inst_DS__DS_OR_SRC2_B64 : public Inst_DS
{
public:
Inst_DS__DS_OR_SRC2_B64(InFmt_DS*);
~Inst_DS__DS_OR_SRC2_B64();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 0; }
int numSrcRegOperands() override { return 1; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //vgpr_a
return 4;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_DS__DS_OR_SRC2_B64
class Inst_DS__DS_XOR_SRC2_B64 : public Inst_DS
{
public:
Inst_DS__DS_XOR_SRC2_B64(InFmt_DS*);
~Inst_DS__DS_XOR_SRC2_B64();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 0; }
int numSrcRegOperands() override { return 1; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //vgpr_a
return 4;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_DS__DS_XOR_SRC2_B64
class Inst_DS__DS_WRITE_SRC2_B64 : public Inst_DS
{
public:
Inst_DS__DS_WRITE_SRC2_B64(InFmt_DS*);
~Inst_DS__DS_WRITE_SRC2_B64();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 0; }
int numSrcRegOperands() override { return 1; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //vgpr_a
return 4;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_DS__DS_WRITE_SRC2_B64
class Inst_DS__DS_MIN_SRC2_F64 : public Inst_DS
{
public:
Inst_DS__DS_MIN_SRC2_F64(InFmt_DS*);
~Inst_DS__DS_MIN_SRC2_F64();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 0; }
int numSrcRegOperands() override { return 1; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //vgpr_a
return 4;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_DS__DS_MIN_SRC2_F64
class Inst_DS__DS_MAX_SRC2_F64 : public Inst_DS
{
public:
Inst_DS__DS_MAX_SRC2_F64(InFmt_DS*);
~Inst_DS__DS_MAX_SRC2_F64();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 0; }
int numSrcRegOperands() override { return 1; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //vgpr_a
return 4;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_DS__DS_MAX_SRC2_F64
class Inst_DS__DS_WRITE_B96 : public Inst_DS
{
public:
Inst_DS__DS_WRITE_B96(InFmt_DS*);
~Inst_DS__DS_WRITE_B96();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 0; }
int numSrcRegOperands() override { return 2; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //vgpr_a
return 4;
case 1: //vgpr_d0
return 12;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
void initiateAcc(GPUDynInstPtr) override;
void completeAcc(GPUDynInstPtr) override;
}; // Inst_DS__DS_WRITE_B96
class Inst_DS__DS_WRITE_B128 : public Inst_DS
{
public:
Inst_DS__DS_WRITE_B128(InFmt_DS*);
~Inst_DS__DS_WRITE_B128();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 0; }
int numSrcRegOperands() override { return 2; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //vgpr_a
return 4;
case 1: //vgpr_d0
return 16;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
void initiateAcc(GPUDynInstPtr) override;
void completeAcc(GPUDynInstPtr) override;
}; // Inst_DS__DS_WRITE_B128
class Inst_DS__DS_READ_B96 : public Inst_DS
{
public:
Inst_DS__DS_READ_B96(InFmt_DS*);
~Inst_DS__DS_READ_B96();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 1; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //vgpr_a
return 4;
case 1: //vgpr_rtn
return 12;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
void initiateAcc(GPUDynInstPtr) override;
void completeAcc(GPUDynInstPtr) override;
}; // Inst_DS__DS_READ_B96
class Inst_DS__DS_READ_B128 : public Inst_DS
{
public:
Inst_DS__DS_READ_B128(InFmt_DS*);
~Inst_DS__DS_READ_B128();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 1; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //vgpr_a
return 4;
case 1: //vgpr_rtn
return 16;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
void initiateAcc(GPUDynInstPtr) override;
void completeAcc(GPUDynInstPtr) override;
}; // Inst_DS__DS_READ_B128
class Inst_MUBUF__BUFFER_LOAD_FORMAT_X : public Inst_MUBUF
{
public:
Inst_MUBUF__BUFFER_LOAD_FORMAT_X(InFmt_MUBUF*);
~Inst_MUBUF__BUFFER_LOAD_FORMAT_X();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 3; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //vgpr_a
return 8;
case 1: //sgpr_r
return 4;
case 2: //sgpr_o
return 4;
case 3: //vgpr_d
return 32;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
void initiateAcc(GPUDynInstPtr) override;
void completeAcc(GPUDynInstPtr) override;
}; // Inst_MUBUF__BUFFER_LOAD_FORMAT_X
class Inst_MUBUF__BUFFER_LOAD_FORMAT_XY : public Inst_MUBUF
{
public:
Inst_MUBUF__BUFFER_LOAD_FORMAT_XY(InFmt_MUBUF*);
~Inst_MUBUF__BUFFER_LOAD_FORMAT_XY();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 3; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //vgpr_a
return 8;
case 1: //sgpr_r
return 4;
case 2: //sgpr_o
return 4;
case 3: //vgpr_d
return 8;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
void initiateAcc(GPUDynInstPtr) override;
void completeAcc(GPUDynInstPtr) override;
}; // Inst_MUBUF__BUFFER_LOAD_FORMAT_XY
class Inst_MUBUF__BUFFER_LOAD_FORMAT_XYZ : public Inst_MUBUF
{
public:
Inst_MUBUF__BUFFER_LOAD_FORMAT_XYZ(InFmt_MUBUF*);
~Inst_MUBUF__BUFFER_LOAD_FORMAT_XYZ();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 3; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //vgpr_a
return 8;
case 1: //sgpr_r
return 4;
case 2: //sgpr_o
return 4;
case 3: //vgpr_d
return 12;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
void initiateAcc(GPUDynInstPtr) override;
void completeAcc(GPUDynInstPtr) override;
}; // Inst_MUBUF__BUFFER_LOAD_FORMAT_XYZ
class Inst_MUBUF__BUFFER_LOAD_FORMAT_XYZW : public Inst_MUBUF
{
public:
Inst_MUBUF__BUFFER_LOAD_FORMAT_XYZW(InFmt_MUBUF*);
~Inst_MUBUF__BUFFER_LOAD_FORMAT_XYZW();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 3; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //vgpr_a
return 8;
case 1: //sgpr_r
return 4;
case 2: //sgpr_o
return 4;
case 3: //vgpr_d
return 16;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
void initiateAcc(GPUDynInstPtr) override;
void completeAcc(GPUDynInstPtr) override;
}; // Inst_MUBUF__BUFFER_LOAD_FORMAT_XYZW
class Inst_MUBUF__BUFFER_STORE_FORMAT_X : public Inst_MUBUF
{
public:
Inst_MUBUF__BUFFER_STORE_FORMAT_X(InFmt_MUBUF*);
~Inst_MUBUF__BUFFER_STORE_FORMAT_X();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 0; }
int numSrcRegOperands() override { return 4; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //vgpr_s
return 4;
case 1: //vgpr_a
return 8;
case 2: //sgpr_r
return 4;
case 3: //sgpr_o
return 4;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
void initiateAcc(GPUDynInstPtr) override;
void completeAcc(GPUDynInstPtr) override;
}; // Inst_MUBUF__BUFFER_STORE_FORMAT_X
class Inst_MUBUF__BUFFER_STORE_FORMAT_XY : public Inst_MUBUF
{
public:
Inst_MUBUF__BUFFER_STORE_FORMAT_XY(InFmt_MUBUF*);
~Inst_MUBUF__BUFFER_STORE_FORMAT_XY();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 0; }
int numSrcRegOperands() override { return 4; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //vgpr_s
return 8;
case 1: //vgpr_a
return 8;
case 2: //sgpr_r
return 4;
case 3: //sgpr_o
return 4;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
void initiateAcc(GPUDynInstPtr) override;
void completeAcc(GPUDynInstPtr) override;
}; // Inst_MUBUF__BUFFER_STORE_FORMAT_XY
class Inst_MUBUF__BUFFER_STORE_FORMAT_XYZ : public Inst_MUBUF
{
public:
Inst_MUBUF__BUFFER_STORE_FORMAT_XYZ(InFmt_MUBUF*);
~Inst_MUBUF__BUFFER_STORE_FORMAT_XYZ();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 0; }
int numSrcRegOperands() override { return 4; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //vgpr_s
return 12;
case 1: //vgpr_a
return 8;
case 2: //sgpr_r
return 4;
case 3: //sgpr_o
return 4;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
void initiateAcc(GPUDynInstPtr) override;
void completeAcc(GPUDynInstPtr) override;
}; // Inst_MUBUF__BUFFER_STORE_FORMAT_XYZ
class Inst_MUBUF__BUFFER_STORE_FORMAT_XYZW : public Inst_MUBUF
{
public:
Inst_MUBUF__BUFFER_STORE_FORMAT_XYZW(InFmt_MUBUF*);
~Inst_MUBUF__BUFFER_STORE_FORMAT_XYZW();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 0; }
int numSrcRegOperands() override { return 4; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //vgpr_s
return 16;
case 1: //vgpr_a
return 8;
case 2: //sgpr_r
return 4;
case 3: //sgpr_o
return 4;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
void initiateAcc(GPUDynInstPtr) override;
void completeAcc(GPUDynInstPtr) override;
}; // Inst_MUBUF__BUFFER_STORE_FORMAT_XYZW
class Inst_MUBUF__BUFFER_LOAD_FORMAT_D16_X : public Inst_MUBUF
{
public:
Inst_MUBUF__BUFFER_LOAD_FORMAT_D16_X(InFmt_MUBUF*);
~Inst_MUBUF__BUFFER_LOAD_FORMAT_D16_X();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 3; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //vgpr_a
return 8;
case 1: //sgpr_r
return 4;
case 2: //sgpr_o
return 4;
case 3: //vgpr_d
return 4;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
void initiateAcc(GPUDynInstPtr) override;
void completeAcc(GPUDynInstPtr) override;
}; // Inst_MUBUF__BUFFER_LOAD_FORMAT_D16_X
class Inst_MUBUF__BUFFER_LOAD_FORMAT_D16_XY : public Inst_MUBUF
{
public:
Inst_MUBUF__BUFFER_LOAD_FORMAT_D16_XY(InFmt_MUBUF*);
~Inst_MUBUF__BUFFER_LOAD_FORMAT_D16_XY();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 3; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //vgpr_a
return 8;
case 1: //sgpr_r
return 4;
case 2: //sgpr_o
return 4;
case 3: //vgpr_d
return 8;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
void initiateAcc(GPUDynInstPtr) override;
void completeAcc(GPUDynInstPtr) override;
}; // Inst_MUBUF__BUFFER_LOAD_FORMAT_D16_XY
class Inst_MUBUF__BUFFER_LOAD_FORMAT_D16_XYZ : public Inst_MUBUF
{
public:
Inst_MUBUF__BUFFER_LOAD_FORMAT_D16_XYZ(InFmt_MUBUF*);
~Inst_MUBUF__BUFFER_LOAD_FORMAT_D16_XYZ();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 3; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //vgpr_a
return 8;
case 1: //sgpr_r
return 4;
case 2: //sgpr_o
return 4;
case 3: //vgpr_d
return 12;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
void initiateAcc(GPUDynInstPtr) override;
void completeAcc(GPUDynInstPtr) override;
}; // Inst_MUBUF__BUFFER_LOAD_FORMAT_D16_XYZ
class Inst_MUBUF__BUFFER_LOAD_FORMAT_D16_XYZW : public Inst_MUBUF
{
public:
Inst_MUBUF__BUFFER_LOAD_FORMAT_D16_XYZW(InFmt_MUBUF*);
~Inst_MUBUF__BUFFER_LOAD_FORMAT_D16_XYZW();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 3; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //vgpr_a
return 8;
case 1: //sgpr_r
return 4;
case 2: //sgpr_o
return 4;
case 3: //vgpr_d
return 16;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
void initiateAcc(GPUDynInstPtr) override;
void completeAcc(GPUDynInstPtr) override;
}; // Inst_MUBUF__BUFFER_LOAD_FORMAT_D16_XYZW
class Inst_MUBUF__BUFFER_STORE_FORMAT_D16_X : public Inst_MUBUF
{
public:
Inst_MUBUF__BUFFER_STORE_FORMAT_D16_X(InFmt_MUBUF*);
~Inst_MUBUF__BUFFER_STORE_FORMAT_D16_X();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 0; }
int numSrcRegOperands() override { return 4; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //vgpr_s
return 4;
case 1: //vgpr_a
return 8;
case 2: //sgpr_r
return 4;
case 3: //sgpr_o
return 4;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
void initiateAcc(GPUDynInstPtr) override;
void completeAcc(GPUDynInstPtr) override;
}; // Inst_MUBUF__BUFFER_STORE_FORMAT_D16_X
class Inst_MUBUF__BUFFER_STORE_FORMAT_D16_XY : public Inst_MUBUF
{
public:
Inst_MUBUF__BUFFER_STORE_FORMAT_D16_XY(InFmt_MUBUF*);
~Inst_MUBUF__BUFFER_STORE_FORMAT_D16_XY();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 0; }
int numSrcRegOperands() override { return 4; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //vgpr_s
return 8;
case 1: //vgpr_a
return 8;
case 2: //sgpr_r
return 4;
case 3: //sgpr_o
return 4;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
void initiateAcc(GPUDynInstPtr) override;
void completeAcc(GPUDynInstPtr) override;
}; // Inst_MUBUF__BUFFER_STORE_FORMAT_D16_XY
class Inst_MUBUF__BUFFER_STORE_FORMAT_D16_XYZ : public Inst_MUBUF
{
public:
Inst_MUBUF__BUFFER_STORE_FORMAT_D16_XYZ(InFmt_MUBUF*);
~Inst_MUBUF__BUFFER_STORE_FORMAT_D16_XYZ();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 0; }
int numSrcRegOperands() override { return 4; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //vgpr_s
return 12;
case 1: //vgpr_a
return 8;
case 2: //sgpr_r
return 4;
case 3: //sgpr_o
return 4;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
void initiateAcc(GPUDynInstPtr) override;
void completeAcc(GPUDynInstPtr) override;
}; // Inst_MUBUF__BUFFER_STORE_FORMAT_D16_XYZ
class Inst_MUBUF__BUFFER_STORE_FORMAT_D16_XYZW : public Inst_MUBUF
{
public:
Inst_MUBUF__BUFFER_STORE_FORMAT_D16_XYZW(InFmt_MUBUF*);
~Inst_MUBUF__BUFFER_STORE_FORMAT_D16_XYZW();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 0; }
int numSrcRegOperands() override { return 4; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //vgpr_s
return 16;
case 1: //vgpr_a
return 8;
case 2: //sgpr_r
return 4;
case 3: //sgpr_o
return 4;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
void initiateAcc(GPUDynInstPtr) override;
void completeAcc(GPUDynInstPtr) override;
}; // Inst_MUBUF__BUFFER_STORE_FORMAT_D16_XYZW
class Inst_MUBUF__BUFFER_LOAD_UBYTE : public Inst_MUBUF
{
public:
Inst_MUBUF__BUFFER_LOAD_UBYTE(InFmt_MUBUF*);
~Inst_MUBUF__BUFFER_LOAD_UBYTE();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 3; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //vgpr_d
return 4;
case 1: //vgpr_a
if (instData.OFFEN && instData.IDXEN) {
// if we need an idx and offset from a
// VGPR, we'll read VGPR[VADDR] and
// VGPR[VADDR + 1], otherwise we just
// read VGPR[VADDR]
return 8;
} else {
return 4;
}
case 2: //sgpr_r
return 16;
case 3: //sgpr_o
return 4;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
void initiateAcc(GPUDynInstPtr) override;
void completeAcc(GPUDynInstPtr) override;
}; // Inst_MUBUF__BUFFER_LOAD_UBYTE
class Inst_MUBUF__BUFFER_LOAD_SBYTE : public Inst_MUBUF
{
public:
Inst_MUBUF__BUFFER_LOAD_SBYTE(InFmt_MUBUF*);
~Inst_MUBUF__BUFFER_LOAD_SBYTE();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 3; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //vgpr_a
return 8;
case 1: //sgpr_r
return 16;
case 2: //sgpr_o
return 4;
case 3: //vgpr_d
return 4;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
void initiateAcc(GPUDynInstPtr) override;
void completeAcc(GPUDynInstPtr) override;
}; // Inst_MUBUF__BUFFER_LOAD_SBYTE
class Inst_MUBUF__BUFFER_LOAD_USHORT : public Inst_MUBUF
{
public:
Inst_MUBUF__BUFFER_LOAD_USHORT(InFmt_MUBUF*);
~Inst_MUBUF__BUFFER_LOAD_USHORT();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 3; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //vgpr_a
return 8;
case 1: //sgpr_r
return 16;
case 2: //sgpr_o
return 4;
case 3: //vgpr_d
return 4;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
void initiateAcc(GPUDynInstPtr) override;
void completeAcc(GPUDynInstPtr) override;
}; // Inst_MUBUF__BUFFER_LOAD_USHORT
class Inst_MUBUF__BUFFER_LOAD_SSHORT : public Inst_MUBUF
{
public:
Inst_MUBUF__BUFFER_LOAD_SSHORT(InFmt_MUBUF*);
~Inst_MUBUF__BUFFER_LOAD_SSHORT();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 3; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //vgpr_a
return 8;
case 1: //sgpr_r
return 16;
case 2: //sgpr_o
return 4;
case 3: //vgpr_d
return 32;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
void initiateAcc(GPUDynInstPtr) override;
void completeAcc(GPUDynInstPtr) override;
}; // Inst_MUBUF__BUFFER_LOAD_SSHORT
class Inst_MUBUF__BUFFER_LOAD_DWORD : public Inst_MUBUF
{
public:
Inst_MUBUF__BUFFER_LOAD_DWORD(InFmt_MUBUF*);
~Inst_MUBUF__BUFFER_LOAD_DWORD();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 3; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //vgpr_a
return 8;
case 1: //sgpr_r
return 16;
case 2: //sgpr_o
return 4;
case 3: //vgpr_d
return 4;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
void initiateAcc(GPUDynInstPtr) override;
void completeAcc(GPUDynInstPtr) override;
}; // Inst_MUBUF__BUFFER_LOAD_DWORD
class Inst_MUBUF__BUFFER_LOAD_DWORDX2 : public Inst_MUBUF
{
public:
Inst_MUBUF__BUFFER_LOAD_DWORDX2(InFmt_MUBUF*);
~Inst_MUBUF__BUFFER_LOAD_DWORDX2();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 3; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //vgpr_a
return 8;
case 1: //sgpr_r
return 16;
case 2: //sgpr_o
return 4;
case 3: //vgpr_d
return 8;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
void initiateAcc(GPUDynInstPtr) override;
void completeAcc(GPUDynInstPtr) override;
}; // Inst_MUBUF__BUFFER_LOAD_DWORDX2
class Inst_MUBUF__BUFFER_LOAD_DWORDX3 : public Inst_MUBUF
{
public:
Inst_MUBUF__BUFFER_LOAD_DWORDX3(InFmt_MUBUF*);
~Inst_MUBUF__BUFFER_LOAD_DWORDX3();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 3; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //vgpr_a
return 8;
case 1: //sgpr_r
return 16;
case 2: //sgpr_o
return 4;
case 3: //vgpr_d
return 12;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
void initiateAcc(GPUDynInstPtr) override;
void completeAcc(GPUDynInstPtr) override;
}; // Inst_MUBUF__BUFFER_LOAD_DWORDX3
class Inst_MUBUF__BUFFER_LOAD_DWORDX4 : public Inst_MUBUF
{
public:
Inst_MUBUF__BUFFER_LOAD_DWORDX4(InFmt_MUBUF*);
~Inst_MUBUF__BUFFER_LOAD_DWORDX4();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 3; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //vgpr_a
return 8;
case 1: //sgpr_r
return 16;
case 2: //sgpr_o
return 4;
case 3: //vgpr_d
return 16;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
void initiateAcc(GPUDynInstPtr) override;
void completeAcc(GPUDynInstPtr) override;
}; // Inst_MUBUF__BUFFER_LOAD_DWORDX4
class Inst_MUBUF__BUFFER_STORE_BYTE : public Inst_MUBUF
{
public:
Inst_MUBUF__BUFFER_STORE_BYTE(InFmt_MUBUF*);
~Inst_MUBUF__BUFFER_STORE_BYTE();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 0; }
int numSrcRegOperands() override { return 4; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //vgpr_s
return 4;
case 1: //vgpr_a
if (instData.OFFEN && instData.IDXEN) {
// if we need an idx and offset from a
// VGPR, we'll read VGPR[VADDR] and
// VGPR[VADDR + 1], otherwise we just
// read VGPR[VADDR]
return 8;
} else {
return 4;
}
case 2: //sgpr_r
return 16;
case 3: //sgpr_o
return 4;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
void initiateAcc(GPUDynInstPtr) override;
void completeAcc(GPUDynInstPtr) override;
}; // Inst_MUBUF__BUFFER_STORE_BYTE
class Inst_MUBUF__BUFFER_STORE_SHORT : public Inst_MUBUF
{
public:
Inst_MUBUF__BUFFER_STORE_SHORT(InFmt_MUBUF*);
~Inst_MUBUF__BUFFER_STORE_SHORT();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 0; }
int numSrcRegOperands() override { return 4; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //vgpr_s
return 4;
case 1: //vgpr_a
return 8;
case 2: //sgpr_r
return 16;
case 3: //sgpr_o
return 4;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
void initiateAcc(GPUDynInstPtr) override;
void completeAcc(GPUDynInstPtr) override;
}; // Inst_MUBUF__BUFFER_STORE_SHORT
class Inst_MUBUF__BUFFER_STORE_DWORD : public Inst_MUBUF
{
public:
Inst_MUBUF__BUFFER_STORE_DWORD(InFmt_MUBUF*);
~Inst_MUBUF__BUFFER_STORE_DWORD();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 0; }
int numSrcRegOperands() override { return 4; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //vgpr_s
return 4;
case 1: //vgpr_a
return 8;
case 2: //sgpr_r
return 16;
case 3: //sgpr_o
return 4;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
void initiateAcc(GPUDynInstPtr) override;
void completeAcc(GPUDynInstPtr) override;
}; // Inst_MUBUF__BUFFER_STORE_DWORD
class Inst_MUBUF__BUFFER_STORE_DWORDX2 : public Inst_MUBUF
{
public:
Inst_MUBUF__BUFFER_STORE_DWORDX2(InFmt_MUBUF*);
~Inst_MUBUF__BUFFER_STORE_DWORDX2();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 0; }
int numSrcRegOperands() override { return 4; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //vgpr_s
return 8;
case 1: //vgpr_a
return 8;
case 2: //sgpr_r
return 16;
case 3: //sgpr_o
return 4;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
void initiateAcc(GPUDynInstPtr) override;
void completeAcc(GPUDynInstPtr) override;
}; // Inst_MUBUF__BUFFER_STORE_DWORDX2
class Inst_MUBUF__BUFFER_STORE_DWORDX3 : public Inst_MUBUF
{
public:
Inst_MUBUF__BUFFER_STORE_DWORDX3(InFmt_MUBUF*);
~Inst_MUBUF__BUFFER_STORE_DWORDX3();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 0; }
int numSrcRegOperands() override { return 4; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //vgpr_s
return 12;
case 1: //vgpr_a
return 8;
case 2: //sgpr_r
return 16;
case 3: //sgpr_o
return 4;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
void initiateAcc(GPUDynInstPtr) override;
void completeAcc(GPUDynInstPtr) override;
}; // Inst_MUBUF__BUFFER_STORE_DWORDX3
class Inst_MUBUF__BUFFER_STORE_DWORDX4 : public Inst_MUBUF
{
public:
Inst_MUBUF__BUFFER_STORE_DWORDX4(InFmt_MUBUF*);
~Inst_MUBUF__BUFFER_STORE_DWORDX4();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 0; }
int numSrcRegOperands() override { return 4; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //vgpr_s
return 16;
case 1: //vgpr_a
return 8;
case 2: //sgpr_r
return 16;
case 3: //sgpr_o
return 4;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
void initiateAcc(GPUDynInstPtr) override;
void completeAcc(GPUDynInstPtr) override;
}; // Inst_MUBUF__BUFFER_STORE_DWORDX4
class Inst_MUBUF__BUFFER_STORE_LDS_DWORD : public Inst_MUBUF
{
public:
Inst_MUBUF__BUFFER_STORE_LDS_DWORD(InFmt_MUBUF*);
~Inst_MUBUF__BUFFER_STORE_LDS_DWORD();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 0; }
int numSrcRegOperands() override { return 2; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //sgpr_r
return 16;
case 1: //sgpr_o
return 4;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_MUBUF__BUFFER_STORE_LDS_DWORD
class Inst_MUBUF__BUFFER_WBINVL1 : public Inst_MUBUF
{
public:
Inst_MUBUF__BUFFER_WBINVL1(InFmt_MUBUF*);
~Inst_MUBUF__BUFFER_WBINVL1();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 0; }
int numSrcRegOperands() override { return 0; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
void initiateAcc(GPUDynInstPtr) override;
void completeAcc(GPUDynInstPtr) override;
}; // Inst_MUBUF__BUFFER_WBINVL1
class Inst_MUBUF__BUFFER_WBINVL1_VOL : public Inst_MUBUF
{
public:
Inst_MUBUF__BUFFER_WBINVL1_VOL(InFmt_MUBUF*);
~Inst_MUBUF__BUFFER_WBINVL1_VOL();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 0; }
int numSrcRegOperands() override { return 0; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
void initiateAcc(GPUDynInstPtr) override;
void completeAcc(GPUDynInstPtr) override;
}; // Inst_MUBUF__BUFFER_WBINVL1_VOL
class Inst_MUBUF__BUFFER_ATOMIC_SWAP : public Inst_MUBUF
{
public:
Inst_MUBUF__BUFFER_ATOMIC_SWAP(InFmt_MUBUF*);
~Inst_MUBUF__BUFFER_ATOMIC_SWAP();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 3; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //vgpr_a
return 8;
case 1: //sgpr_r
return 16;
case 2: //sgpr_o
return 4;
case 3: //vgpr_d
return 4;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_MUBUF__BUFFER_ATOMIC_SWAP
class Inst_MUBUF__BUFFER_ATOMIC_CMPSWAP : public Inst_MUBUF
{
public:
Inst_MUBUF__BUFFER_ATOMIC_CMPSWAP(InFmt_MUBUF*);
~Inst_MUBUF__BUFFER_ATOMIC_CMPSWAP();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 3; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //vgpr_a
return 8;
case 1: //sgpr_r
return 16;
case 2: //sgpr_o
return 4;
case 3: //vgpr_d
return 8;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_MUBUF__BUFFER_ATOMIC_CMPSWAP
class Inst_MUBUF__BUFFER_ATOMIC_ADD : public Inst_MUBUF
{
public:
Inst_MUBUF__BUFFER_ATOMIC_ADD(InFmt_MUBUF*);
~Inst_MUBUF__BUFFER_ATOMIC_ADD();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 3; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //vgpr_a
return 8;
case 1: //sgpr_r
return 16;
case 2: //sgpr_o
return 4;
case 3: //vgpr_d
return 4;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_MUBUF__BUFFER_ATOMIC_ADD
class Inst_MUBUF__BUFFER_ATOMIC_SUB : public Inst_MUBUF
{
public:
Inst_MUBUF__BUFFER_ATOMIC_SUB(InFmt_MUBUF*);
~Inst_MUBUF__BUFFER_ATOMIC_SUB();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 3; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //vgpr_a
return 8;
case 1: //sgpr_r
return 16;
case 2: //sgpr_o
return 4;
case 3: //vgpr_d
return 4;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_MUBUF__BUFFER_ATOMIC_SUB
class Inst_MUBUF__BUFFER_ATOMIC_SMIN : public Inst_MUBUF
{
public:
Inst_MUBUF__BUFFER_ATOMIC_SMIN(InFmt_MUBUF*);
~Inst_MUBUF__BUFFER_ATOMIC_SMIN();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 3; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //vgpr_a
return 8;
case 1: //sgpr_r
return 16;
case 2: //sgpr_o
return 4;
case 3: //vgpr_d
return 4;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_MUBUF__BUFFER_ATOMIC_SMIN
class Inst_MUBUF__BUFFER_ATOMIC_UMIN : public Inst_MUBUF
{
public:
Inst_MUBUF__BUFFER_ATOMIC_UMIN(InFmt_MUBUF*);
~Inst_MUBUF__BUFFER_ATOMIC_UMIN();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 3; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //vgpr_a
return 8;
case 1: //sgpr_r
return 16;
case 2: //sgpr_o
return 4;
case 3: //vgpr_d
return 32;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_MUBUF__BUFFER_ATOMIC_UMIN
class Inst_MUBUF__BUFFER_ATOMIC_SMAX : public Inst_MUBUF
{
public:
Inst_MUBUF__BUFFER_ATOMIC_SMAX(InFmt_MUBUF*);
~Inst_MUBUF__BUFFER_ATOMIC_SMAX();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 3; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //vgpr_a
return 8;
case 1: //sgpr_r
return 16;
case 2: //sgpr_o
return 4;
case 3: //vgpr_d
return 32;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_MUBUF__BUFFER_ATOMIC_SMAX
class Inst_MUBUF__BUFFER_ATOMIC_UMAX : public Inst_MUBUF
{
public:
Inst_MUBUF__BUFFER_ATOMIC_UMAX(InFmt_MUBUF*);
~Inst_MUBUF__BUFFER_ATOMIC_UMAX();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 3; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //vgpr_a
return 8;
case 1: //sgpr_r
return 16;
case 2: //sgpr_o
return 4;
case 3: //vgpr_d
return 32;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_MUBUF__BUFFER_ATOMIC_UMAX
class Inst_MUBUF__BUFFER_ATOMIC_AND : public Inst_MUBUF
{
public:
Inst_MUBUF__BUFFER_ATOMIC_AND(InFmt_MUBUF*);
~Inst_MUBUF__BUFFER_ATOMIC_AND();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 3; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //vgpr_a
return 8;
case 1: //sgpr_r
return 16;
case 2: //sgpr_o
return 4;
case 3: //vgpr_d
return 32;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_MUBUF__BUFFER_ATOMIC_AND
class Inst_MUBUF__BUFFER_ATOMIC_OR : public Inst_MUBUF
{
public:
Inst_MUBUF__BUFFER_ATOMIC_OR(InFmt_MUBUF*);
~Inst_MUBUF__BUFFER_ATOMIC_OR();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 3; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //vgpr_a
return 8;
case 1: //sgpr_r
return 16;
case 2: //sgpr_o
return 4;
case 3: //vgpr_d
return 32;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_MUBUF__BUFFER_ATOMIC_OR
class Inst_MUBUF__BUFFER_ATOMIC_XOR : public Inst_MUBUF
{
public:
Inst_MUBUF__BUFFER_ATOMIC_XOR(InFmt_MUBUF*);
~Inst_MUBUF__BUFFER_ATOMIC_XOR();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 3; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //vgpr_a
return 8;
case 1: //sgpr_r
return 16;
case 2: //sgpr_o
return 4;
case 3: //vgpr_d
return 32;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_MUBUF__BUFFER_ATOMIC_XOR
class Inst_MUBUF__BUFFER_ATOMIC_INC : public Inst_MUBUF
{
public:
Inst_MUBUF__BUFFER_ATOMIC_INC(InFmt_MUBUF*);
~Inst_MUBUF__BUFFER_ATOMIC_INC();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 3; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //vgpr_a
return 8;
case 1: //sgpr_r
return 16;
case 2: //sgpr_o
return 4;
case 3: //vgpr_d
return 32;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_MUBUF__BUFFER_ATOMIC_INC
class Inst_MUBUF__BUFFER_ATOMIC_DEC : public Inst_MUBUF
{
public:
Inst_MUBUF__BUFFER_ATOMIC_DEC(InFmt_MUBUF*);
~Inst_MUBUF__BUFFER_ATOMIC_DEC();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 3; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //vgpr_a
return 8;
case 1: //sgpr_r
return 16;
case 2: //sgpr_o
return 4;
case 3: //vgpr_d
return 32;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_MUBUF__BUFFER_ATOMIC_DEC
class Inst_MUBUF__BUFFER_ATOMIC_SWAP_X2 : public Inst_MUBUF
{
public:
Inst_MUBUF__BUFFER_ATOMIC_SWAP_X2(InFmt_MUBUF*);
~Inst_MUBUF__BUFFER_ATOMIC_SWAP_X2();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 3; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //vgpr_a
return 8;
case 1: //sgpr_r
return 16;
case 2: //sgpr_o
return 4;
case 3: //vgpr_d
return 8;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_MUBUF__BUFFER_ATOMIC_SWAP_X2
class Inst_MUBUF__BUFFER_ATOMIC_CMPSWAP_X2 : public Inst_MUBUF
{
public:
Inst_MUBUF__BUFFER_ATOMIC_CMPSWAP_X2(InFmt_MUBUF*);
~Inst_MUBUF__BUFFER_ATOMIC_CMPSWAP_X2();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 3; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //vgpr_a
return 8;
case 1: //sgpr_r
return 16;
case 2: //sgpr_o
return 4;
case 3: //vgpr_d
return 16;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_MUBUF__BUFFER_ATOMIC_CMPSWAP_X2
class Inst_MUBUF__BUFFER_ATOMIC_ADD_X2 : public Inst_MUBUF
{
public:
Inst_MUBUF__BUFFER_ATOMIC_ADD_X2(InFmt_MUBUF*);
~Inst_MUBUF__BUFFER_ATOMIC_ADD_X2();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 3; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //vgpr_a
return 8;
case 1: //sgpr_r
return 16;
case 2: //sgpr_o
return 4;
case 3: //vgpr_d
return 8;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_MUBUF__BUFFER_ATOMIC_ADD_X2
class Inst_MUBUF__BUFFER_ATOMIC_SUB_X2 : public Inst_MUBUF
{
public:
Inst_MUBUF__BUFFER_ATOMIC_SUB_X2(InFmt_MUBUF*);
~Inst_MUBUF__BUFFER_ATOMIC_SUB_X2();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 3; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //vgpr_a
return 8;
case 1: //sgpr_r
return 16;
case 2: //sgpr_o
return 4;
case 3: //vgpr_d
return 8;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_MUBUF__BUFFER_ATOMIC_SUB_X2
class Inst_MUBUF__BUFFER_ATOMIC_SMIN_X2 : public Inst_MUBUF
{
public:
Inst_MUBUF__BUFFER_ATOMIC_SMIN_X2(InFmt_MUBUF*);
~Inst_MUBUF__BUFFER_ATOMIC_SMIN_X2();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 3; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //vgpr_a
return 8;
case 1: //sgpr_r
return 16;
case 2: //sgpr_o
return 4;
case 3: //vgpr_d
return 8;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_MUBUF__BUFFER_ATOMIC_SMIN_X2
class Inst_MUBUF__BUFFER_ATOMIC_UMIN_X2 : public Inst_MUBUF
{
public:
Inst_MUBUF__BUFFER_ATOMIC_UMIN_X2(InFmt_MUBUF*);
~Inst_MUBUF__BUFFER_ATOMIC_UMIN_X2();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 3; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //vgpr_a
return 8;
case 1: //sgpr_r
return 16;
case 2: //sgpr_o
return 4;
case 3: //vgpr_d
return 8;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_MUBUF__BUFFER_ATOMIC_UMIN_X2
class Inst_MUBUF__BUFFER_ATOMIC_SMAX_X2 : public Inst_MUBUF
{
public:
Inst_MUBUF__BUFFER_ATOMIC_SMAX_X2(InFmt_MUBUF*);
~Inst_MUBUF__BUFFER_ATOMIC_SMAX_X2();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 3; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //vgpr_a
return 8;
case 1: //sgpr_r
return 16;
case 2: //sgpr_o
return 4;
case 3: //vgpr_d
return 8;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_MUBUF__BUFFER_ATOMIC_SMAX_X2
class Inst_MUBUF__BUFFER_ATOMIC_UMAX_X2 : public Inst_MUBUF
{
public:
Inst_MUBUF__BUFFER_ATOMIC_UMAX_X2(InFmt_MUBUF*);
~Inst_MUBUF__BUFFER_ATOMIC_UMAX_X2();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 3; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //vgpr_a
return 8;
case 1: //sgpr_r
return 16;
case 2: //sgpr_o
return 4;
case 3: //vgpr_d
return 8;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_MUBUF__BUFFER_ATOMIC_UMAX_X2
class Inst_MUBUF__BUFFER_ATOMIC_AND_X2 : public Inst_MUBUF
{
public:
Inst_MUBUF__BUFFER_ATOMIC_AND_X2(InFmt_MUBUF*);
~Inst_MUBUF__BUFFER_ATOMIC_AND_X2();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 3; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //vgpr_a
return 8;
case 1: //sgpr_r
return 16;
case 2: //sgpr_o
return 4;
case 3: //vgpr_d
return 8;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_MUBUF__BUFFER_ATOMIC_AND_X2
class Inst_MUBUF__BUFFER_ATOMIC_OR_X2 : public Inst_MUBUF
{
public:
Inst_MUBUF__BUFFER_ATOMIC_OR_X2(InFmt_MUBUF*);
~Inst_MUBUF__BUFFER_ATOMIC_OR_X2();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 3; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //vgpr_a
return 8;
case 1: //sgpr_r
return 16;
case 2: //sgpr_o
return 4;
case 3: //vgpr_d
return 8;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_MUBUF__BUFFER_ATOMIC_OR_X2
class Inst_MUBUF__BUFFER_ATOMIC_XOR_X2 : public Inst_MUBUF
{
public:
Inst_MUBUF__BUFFER_ATOMIC_XOR_X2(InFmt_MUBUF*);
~Inst_MUBUF__BUFFER_ATOMIC_XOR_X2();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 3; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //vgpr_a
return 8;
case 1: //sgpr_r
return 16;
case 2: //sgpr_o
return 4;
case 3: //vgpr_d
return 8;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_MUBUF__BUFFER_ATOMIC_XOR_X2
class Inst_MUBUF__BUFFER_ATOMIC_INC_X2 : public Inst_MUBUF
{
public:
Inst_MUBUF__BUFFER_ATOMIC_INC_X2(InFmt_MUBUF*);
~Inst_MUBUF__BUFFER_ATOMIC_INC_X2();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 3; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //vgpr_a
return 8;
case 1: //sgpr_r
return 16;
case 2: //sgpr_o
return 4;
case 3: //vgpr_d
return 8;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_MUBUF__BUFFER_ATOMIC_INC_X2
class Inst_MUBUF__BUFFER_ATOMIC_DEC_X2 : public Inst_MUBUF
{
public:
Inst_MUBUF__BUFFER_ATOMIC_DEC_X2(InFmt_MUBUF*);
~Inst_MUBUF__BUFFER_ATOMIC_DEC_X2();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 3; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //vgpr_a
return 8;
case 1: //sgpr_r
return 16;
case 2: //sgpr_o
return 4;
case 3: //vgpr_d
return 8;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_MUBUF__BUFFER_ATOMIC_DEC_X2
class Inst_MTBUF__TBUFFER_LOAD_FORMAT_X : public Inst_MTBUF
{
public:
Inst_MTBUF__TBUFFER_LOAD_FORMAT_X(InFmt_MTBUF*);
~Inst_MTBUF__TBUFFER_LOAD_FORMAT_X();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 3; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //vgpr_a
return 8;
case 1: //sgpr_r
return 4;
case 2: //sgpr_o
return 4;
case 3: //vgpr_d
return 32;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
void initiateAcc(GPUDynInstPtr) override;
void completeAcc(GPUDynInstPtr) override;
}; // Inst_MTBUF__TBUFFER_LOAD_FORMAT_X
class Inst_MTBUF__TBUFFER_LOAD_FORMAT_XY : public Inst_MTBUF
{
public:
Inst_MTBUF__TBUFFER_LOAD_FORMAT_XY(InFmt_MTBUF*);
~Inst_MTBUF__TBUFFER_LOAD_FORMAT_XY();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 3; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //vgpr_a
return 8;
case 1: //sgpr_r
return 4;
case 2: //sgpr_o
return 4;
case 3: //vgpr_d
return 8;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
void initiateAcc(GPUDynInstPtr) override;
void completeAcc(GPUDynInstPtr) override;
}; // Inst_MTBUF__TBUFFER_LOAD_FORMAT_XY
class Inst_MTBUF__TBUFFER_LOAD_FORMAT_XYZ : public Inst_MTBUF
{
public:
Inst_MTBUF__TBUFFER_LOAD_FORMAT_XYZ(InFmt_MTBUF*);
~Inst_MTBUF__TBUFFER_LOAD_FORMAT_XYZ();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 3; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //vgpr_a
return 8;
case 1: //sgpr_r
return 4;
case 2: //sgpr_o
return 4;
case 3: //vgpr_d
return 12;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
void initiateAcc(GPUDynInstPtr) override;
void completeAcc(GPUDynInstPtr) override;
}; // Inst_MTBUF__TBUFFER_LOAD_FORMAT_XYZ
class Inst_MTBUF__TBUFFER_LOAD_FORMAT_XYZW : public Inst_MTBUF
{
public:
Inst_MTBUF__TBUFFER_LOAD_FORMAT_XYZW(InFmt_MTBUF*);
~Inst_MTBUF__TBUFFER_LOAD_FORMAT_XYZW();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 3; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //vgpr_a
return 8;
case 1: //sgpr_r
return 4;
case 2: //sgpr_o
return 4;
case 3: //vgpr_d
return 16;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
void initiateAcc(GPUDynInstPtr) override;
void completeAcc(GPUDynInstPtr) override;
}; // Inst_MTBUF__TBUFFER_LOAD_FORMAT_XYZW
class Inst_MTBUF__TBUFFER_STORE_FORMAT_X : public Inst_MTBUF
{
public:
Inst_MTBUF__TBUFFER_STORE_FORMAT_X(InFmt_MTBUF*);
~Inst_MTBUF__TBUFFER_STORE_FORMAT_X();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 0; }
int numSrcRegOperands() override { return 4; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //vgpr_d
return 32;
case 1: //vgpr_a
return 8;
case 2: //sgpr_r
return 4;
case 3: //sgpr_o
return 4;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
void initiateAcc(GPUDynInstPtr) override;
void completeAcc(GPUDynInstPtr) override;
}; // Inst_MTBUF__TBUFFER_STORE_FORMAT_X
class Inst_MTBUF__TBUFFER_STORE_FORMAT_XY : public Inst_MTBUF
{
public:
Inst_MTBUF__TBUFFER_STORE_FORMAT_XY(InFmt_MTBUF*);
~Inst_MTBUF__TBUFFER_STORE_FORMAT_XY();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 0; }
int numSrcRegOperands() override { return 4; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //vgpr_d
return 8;
case 1: //vgpr_a
return 8;
case 2: //sgpr_r
return 4;
case 3: //sgpr_o
return 4;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
void initiateAcc(GPUDynInstPtr) override;
void completeAcc(GPUDynInstPtr) override;
}; // Inst_MTBUF__TBUFFER_STORE_FORMAT_XY
class Inst_MTBUF__TBUFFER_STORE_FORMAT_XYZ : public Inst_MTBUF
{
public:
Inst_MTBUF__TBUFFER_STORE_FORMAT_XYZ(InFmt_MTBUF*);
~Inst_MTBUF__TBUFFER_STORE_FORMAT_XYZ();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 0; }
int numSrcRegOperands() override { return 4; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //vgpr_d
return 12;
case 1: //vgpr_a
return 8;
case 2: //sgpr_r
return 4;
case 3: //sgpr_o
return 4;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
void initiateAcc(GPUDynInstPtr) override;
void completeAcc(GPUDynInstPtr) override;
}; // Inst_MTBUF__TBUFFER_STORE_FORMAT_XYZ
class Inst_MTBUF__TBUFFER_STORE_FORMAT_XYZW : public Inst_MTBUF
{
public:
Inst_MTBUF__TBUFFER_STORE_FORMAT_XYZW(InFmt_MTBUF*);
~Inst_MTBUF__TBUFFER_STORE_FORMAT_XYZW();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 0; }
int numSrcRegOperands() override { return 4; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //vgpr_d
return 16;
case 1: //vgpr_a
return 8;
case 2: //sgpr_r
return 4;
case 3: //sgpr_o
return 4;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
void initiateAcc(GPUDynInstPtr) override;
void completeAcc(GPUDynInstPtr) override;
}; // Inst_MTBUF__TBUFFER_STORE_FORMAT_XYZW
class Inst_MTBUF__TBUFFER_LOAD_FORMAT_D16_X : public Inst_MTBUF
{
public:
Inst_MTBUF__TBUFFER_LOAD_FORMAT_D16_X(InFmt_MTBUF*);
~Inst_MTBUF__TBUFFER_LOAD_FORMAT_D16_X();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 3; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //vgpr_a
return 8;
case 1: //sgpr_r
return 4;
case 2: //sgpr_o
return 4;
case 3: //vgpr_d
return 32;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
void initiateAcc(GPUDynInstPtr) override;
void completeAcc(GPUDynInstPtr) override;
}; // Inst_MTBUF__TBUFFER_LOAD_FORMAT_D16_X
class Inst_MTBUF__TBUFFER_LOAD_FORMAT_D16_XY : public Inst_MTBUF
{
public:
Inst_MTBUF__TBUFFER_LOAD_FORMAT_D16_XY(InFmt_MTBUF*);
~Inst_MTBUF__TBUFFER_LOAD_FORMAT_D16_XY();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 3; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //vgpr_a
return 8;
case 1: //sgpr_r
return 4;
case 2: //sgpr_o
return 4;
case 3: //vgpr_d
return 8;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
void initiateAcc(GPUDynInstPtr) override;
void completeAcc(GPUDynInstPtr) override;
}; // Inst_MTBUF__TBUFFER_LOAD_FORMAT_D16_XY
class Inst_MTBUF__TBUFFER_LOAD_FORMAT_D16_XYZ : public Inst_MTBUF
{
public:
Inst_MTBUF__TBUFFER_LOAD_FORMAT_D16_XYZ(InFmt_MTBUF*);
~Inst_MTBUF__TBUFFER_LOAD_FORMAT_D16_XYZ();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 3; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //vgpr_a
return 8;
case 1: //sgpr_r
return 4;
case 2: //sgpr_o
return 4;
case 3: //vgpr_d
return 12;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
void initiateAcc(GPUDynInstPtr) override;
void completeAcc(GPUDynInstPtr) override;
}; // Inst_MTBUF__TBUFFER_LOAD_FORMAT_D16_XYZ
class Inst_MTBUF__TBUFFER_LOAD_FORMAT_D16_XYZW : public Inst_MTBUF
{
public:
Inst_MTBUF__TBUFFER_LOAD_FORMAT_D16_XYZW(InFmt_MTBUF*);
~Inst_MTBUF__TBUFFER_LOAD_FORMAT_D16_XYZW();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 3; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //vgpr_a
return 8;
case 1: //sgpr_r
return 4;
case 2: //sgpr_o
return 4;
case 3: //vgpr_d
return 16;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
void initiateAcc(GPUDynInstPtr) override;
void completeAcc(GPUDynInstPtr) override;
}; // Inst_MTBUF__TBUFFER_LOAD_FORMAT_D16_XYZW
class Inst_MTBUF__TBUFFER_STORE_FORMAT_D16_X : public Inst_MTBUF
{
public:
Inst_MTBUF__TBUFFER_STORE_FORMAT_D16_X(InFmt_MTBUF*);
~Inst_MTBUF__TBUFFER_STORE_FORMAT_D16_X();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 0; }
int numSrcRegOperands() override { return 4; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //vgpr_d
return 32;
case 1: //vgpr_a
return 8;
case 2: //sgpr_r
return 4;
case 3: //sgpr_o
return 4;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
void initiateAcc(GPUDynInstPtr) override;
void completeAcc(GPUDynInstPtr) override;
}; // Inst_MTBUF__TBUFFER_STORE_FORMAT_D16_X
class Inst_MTBUF__TBUFFER_STORE_FORMAT_D16_XY : public Inst_MTBUF
{
public:
Inst_MTBUF__TBUFFER_STORE_FORMAT_D16_XY(InFmt_MTBUF*);
~Inst_MTBUF__TBUFFER_STORE_FORMAT_D16_XY();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 0; }
int numSrcRegOperands() override { return 4; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //vgpr_d
return 8;
case 1: //vgpr_a
return 8;
case 2: //sgpr_r
return 4;
case 3: //sgpr_o
return 4;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
void initiateAcc(GPUDynInstPtr) override;
void completeAcc(GPUDynInstPtr) override;
}; // Inst_MTBUF__TBUFFER_STORE_FORMAT_D16_XY
class Inst_MTBUF__TBUFFER_STORE_FORMAT_D16_XYZ : public Inst_MTBUF
{
public:
Inst_MTBUF__TBUFFER_STORE_FORMAT_D16_XYZ(InFmt_MTBUF*);
~Inst_MTBUF__TBUFFER_STORE_FORMAT_D16_XYZ();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 0; }
int numSrcRegOperands() override { return 4; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //vgpr_d
return 12;
case 1: //vgpr_a
return 8;
case 2: //sgpr_r
return 4;
case 3: //sgpr_o
return 4;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
void initiateAcc(GPUDynInstPtr) override;
void completeAcc(GPUDynInstPtr) override;
}; // Inst_MTBUF__TBUFFER_STORE_FORMAT_D16_XYZ
class Inst_MTBUF__TBUFFER_STORE_FORMAT_D16_XYZW : public Inst_MTBUF
{
public:
Inst_MTBUF__TBUFFER_STORE_FORMAT_D16_XYZW(InFmt_MTBUF*);
~Inst_MTBUF__TBUFFER_STORE_FORMAT_D16_XYZW();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 0; }
int numSrcRegOperands() override { return 4; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //vgpr_d
return 16;
case 1: //vgpr_a
return 8;
case 2: //sgpr_r
return 4;
case 3: //sgpr_o
return 4;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
void initiateAcc(GPUDynInstPtr) override;
void completeAcc(GPUDynInstPtr) override;
}; // Inst_MTBUF__TBUFFER_STORE_FORMAT_D16_XYZW
class Inst_MIMG__IMAGE_LOAD : public Inst_MIMG
{
public:
Inst_MIMG__IMAGE_LOAD(InFmt_MIMG*);
~Inst_MIMG__IMAGE_LOAD();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 2; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //vgpr_a
return 16;
case 1: //sgpr_r
return 32;
case 2: //vgpr_d
return 16;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
void initiateAcc(GPUDynInstPtr) override;
void completeAcc(GPUDynInstPtr) override;
}; // Inst_MIMG__IMAGE_LOAD
class Inst_MIMG__IMAGE_LOAD_MIP : public Inst_MIMG
{
public:
Inst_MIMG__IMAGE_LOAD_MIP(InFmt_MIMG*);
~Inst_MIMG__IMAGE_LOAD_MIP();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 2; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //vgpr_a
return 16;
case 1: //sgpr_r
return 32;
case 2: //vgpr_d
return 16;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
void initiateAcc(GPUDynInstPtr) override;
void completeAcc(GPUDynInstPtr) override;
}; // Inst_MIMG__IMAGE_LOAD_MIP
class Inst_MIMG__IMAGE_LOAD_PCK : public Inst_MIMG
{
public:
Inst_MIMG__IMAGE_LOAD_PCK(InFmt_MIMG*);
~Inst_MIMG__IMAGE_LOAD_PCK();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 2; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //vgpr_a
return 16;
case 1: //sgpr_r
return 32;
case 2: //vgpr_d
return 16;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
void initiateAcc(GPUDynInstPtr) override;
void completeAcc(GPUDynInstPtr) override;
}; // Inst_MIMG__IMAGE_LOAD_PCK
class Inst_MIMG__IMAGE_LOAD_PCK_SGN : public Inst_MIMG
{
public:
Inst_MIMG__IMAGE_LOAD_PCK_SGN(InFmt_MIMG*);
~Inst_MIMG__IMAGE_LOAD_PCK_SGN();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 2; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //vgpr_a
return 16;
case 1: //sgpr_r
return 32;
case 2: //vgpr_d
return 16;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
void initiateAcc(GPUDynInstPtr) override;
void completeAcc(GPUDynInstPtr) override;
}; // Inst_MIMG__IMAGE_LOAD_PCK_SGN
class Inst_MIMG__IMAGE_LOAD_MIP_PCK : public Inst_MIMG
{
public:
Inst_MIMG__IMAGE_LOAD_MIP_PCK(InFmt_MIMG*);
~Inst_MIMG__IMAGE_LOAD_MIP_PCK();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 2; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //vgpr_a
return 16;
case 1: //sgpr_r
return 32;
case 2: //vgpr_d
return 16;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
void initiateAcc(GPUDynInstPtr) override;
void completeAcc(GPUDynInstPtr) override;
}; // Inst_MIMG__IMAGE_LOAD_MIP_PCK
class Inst_MIMG__IMAGE_LOAD_MIP_PCK_SGN : public Inst_MIMG
{
public:
Inst_MIMG__IMAGE_LOAD_MIP_PCK_SGN(InFmt_MIMG*);
~Inst_MIMG__IMAGE_LOAD_MIP_PCK_SGN();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 2; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //vgpr_a
return 16;
case 1: //sgpr_r
return 32;
case 2: //vgpr_d
return 16;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
void initiateAcc(GPUDynInstPtr) override;
void completeAcc(GPUDynInstPtr) override;
}; // Inst_MIMG__IMAGE_LOAD_MIP_PCK_SGN
class Inst_MIMG__IMAGE_STORE : public Inst_MIMG
{
public:
Inst_MIMG__IMAGE_STORE(InFmt_MIMG*);
~Inst_MIMG__IMAGE_STORE();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 0; }
int numSrcRegOperands() override { return 3; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //vgpr_d
return 16;
case 1: //vgpr_a
return 16;
case 2: //sgpr_r
return 32;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
void initiateAcc(GPUDynInstPtr) override;
void completeAcc(GPUDynInstPtr) override;
}; // Inst_MIMG__IMAGE_STORE
class Inst_MIMG__IMAGE_STORE_MIP : public Inst_MIMG
{
public:
Inst_MIMG__IMAGE_STORE_MIP(InFmt_MIMG*);
~Inst_MIMG__IMAGE_STORE_MIP();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 0; }
int numSrcRegOperands() override { return 3; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //vgpr_d
return 16;
case 1: //vgpr_a
return 16;
case 2: //sgpr_r
return 32;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
void initiateAcc(GPUDynInstPtr) override;
void completeAcc(GPUDynInstPtr) override;
}; // Inst_MIMG__IMAGE_STORE_MIP
class Inst_MIMG__IMAGE_STORE_PCK : public Inst_MIMG
{
public:
Inst_MIMG__IMAGE_STORE_PCK(InFmt_MIMG*);
~Inst_MIMG__IMAGE_STORE_PCK();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 0; }
int numSrcRegOperands() override { return 3; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //vgpr_d
return 16;
case 1: //vgpr_a
return 16;
case 2: //sgpr_r
return 32;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
void initiateAcc(GPUDynInstPtr) override;
void completeAcc(GPUDynInstPtr) override;
}; // Inst_MIMG__IMAGE_STORE_PCK
class Inst_MIMG__IMAGE_STORE_MIP_PCK : public Inst_MIMG
{
public:
Inst_MIMG__IMAGE_STORE_MIP_PCK(InFmt_MIMG*);
~Inst_MIMG__IMAGE_STORE_MIP_PCK();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 0; }
int numSrcRegOperands() override { return 3; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //vgpr_d
return 16;
case 1: //vgpr_a
return 16;
case 2: //sgpr_r
return 32;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
void initiateAcc(GPUDynInstPtr) override;
void completeAcc(GPUDynInstPtr) override;
}; // Inst_MIMG__IMAGE_STORE_MIP_PCK
class Inst_MIMG__IMAGE_GET_RESINFO : public Inst_MIMG
{
public:
Inst_MIMG__IMAGE_GET_RESINFO(InFmt_MIMG*);
~Inst_MIMG__IMAGE_GET_RESINFO();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 2; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //vgpr_a
return 16;
case 1: //sgpr_r
return 32;
case 2: //vgpr_d
return 16;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_MIMG__IMAGE_GET_RESINFO
class Inst_MIMG__IMAGE_ATOMIC_SWAP : public Inst_MIMG
{
public:
Inst_MIMG__IMAGE_ATOMIC_SWAP(InFmt_MIMG*);
~Inst_MIMG__IMAGE_ATOMIC_SWAP();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 2; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //vgpr_a
return 32;
case 1: //sgpr_r
return 32;
case 2: //vgpr_d
return 16;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_MIMG__IMAGE_ATOMIC_SWAP
class Inst_MIMG__IMAGE_ATOMIC_CMPSWAP : public Inst_MIMG
{
public:
Inst_MIMG__IMAGE_ATOMIC_CMPSWAP(InFmt_MIMG*);
~Inst_MIMG__IMAGE_ATOMIC_CMPSWAP();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 2; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //vgpr_a
return 32;
case 1: //sgpr_r
return 32;
case 2: //vgpr_d
return 16;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_MIMG__IMAGE_ATOMIC_CMPSWAP
class Inst_MIMG__IMAGE_ATOMIC_ADD : public Inst_MIMG
{
public:
Inst_MIMG__IMAGE_ATOMIC_ADD(InFmt_MIMG*);
~Inst_MIMG__IMAGE_ATOMIC_ADD();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 2; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //vgpr_a
return 32;
case 1: //sgpr_r
return 32;
case 2: //vgpr_d
return 16;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_MIMG__IMAGE_ATOMIC_ADD
class Inst_MIMG__IMAGE_ATOMIC_SUB : public Inst_MIMG
{
public:
Inst_MIMG__IMAGE_ATOMIC_SUB(InFmt_MIMG*);
~Inst_MIMG__IMAGE_ATOMIC_SUB();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 2; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //vgpr_a
return 32;
case 1: //sgpr_r
return 32;
case 2: //vgpr_d
return 16;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_MIMG__IMAGE_ATOMIC_SUB
class Inst_MIMG__IMAGE_ATOMIC_SMIN : public Inst_MIMG
{
public:
Inst_MIMG__IMAGE_ATOMIC_SMIN(InFmt_MIMG*);
~Inst_MIMG__IMAGE_ATOMIC_SMIN();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 2; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //vgpr_a
return 32;
case 1: //sgpr_r
return 32;
case 2: //vgpr_d
return 16;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_MIMG__IMAGE_ATOMIC_SMIN
class Inst_MIMG__IMAGE_ATOMIC_UMIN : public Inst_MIMG
{
public:
Inst_MIMG__IMAGE_ATOMIC_UMIN(InFmt_MIMG*);
~Inst_MIMG__IMAGE_ATOMIC_UMIN();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 2; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //vgpr_a
return 32;
case 1: //sgpr_r
return 32;
case 2: //vgpr_d
return 16;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_MIMG__IMAGE_ATOMIC_UMIN
class Inst_MIMG__IMAGE_ATOMIC_SMAX : public Inst_MIMG
{
public:
Inst_MIMG__IMAGE_ATOMIC_SMAX(InFmt_MIMG*);
~Inst_MIMG__IMAGE_ATOMIC_SMAX();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 2; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //vgpr_a
return 32;
case 1: //sgpr_r
return 32;
case 2: //vgpr_d
return 16;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_MIMG__IMAGE_ATOMIC_SMAX
class Inst_MIMG__IMAGE_ATOMIC_UMAX : public Inst_MIMG
{
public:
Inst_MIMG__IMAGE_ATOMIC_UMAX(InFmt_MIMG*);
~Inst_MIMG__IMAGE_ATOMIC_UMAX();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 2; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //vgpr_a
return 32;
case 1: //sgpr_r
return 32;
case 2: //vgpr_d
return 16;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_MIMG__IMAGE_ATOMIC_UMAX
class Inst_MIMG__IMAGE_ATOMIC_AND : public Inst_MIMG
{
public:
Inst_MIMG__IMAGE_ATOMIC_AND(InFmt_MIMG*);
~Inst_MIMG__IMAGE_ATOMIC_AND();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 2; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //vgpr_a
return 32;
case 1: //sgpr_r
return 32;
case 2: //vgpr_d
return 16;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_MIMG__IMAGE_ATOMIC_AND
class Inst_MIMG__IMAGE_ATOMIC_OR : public Inst_MIMG
{
public:
Inst_MIMG__IMAGE_ATOMIC_OR(InFmt_MIMG*);
~Inst_MIMG__IMAGE_ATOMIC_OR();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 2; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //vgpr_a
return 32;
case 1: //sgpr_r
return 32;
case 2: //vgpr_d
return 16;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_MIMG__IMAGE_ATOMIC_OR
class Inst_MIMG__IMAGE_ATOMIC_XOR : public Inst_MIMG
{
public:
Inst_MIMG__IMAGE_ATOMIC_XOR(InFmt_MIMG*);
~Inst_MIMG__IMAGE_ATOMIC_XOR();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 2; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //vgpr_a
return 32;
case 1: //sgpr_r
return 32;
case 2: //vgpr_d
return 16;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_MIMG__IMAGE_ATOMIC_XOR
class Inst_MIMG__IMAGE_ATOMIC_INC : public Inst_MIMG
{
public:
Inst_MIMG__IMAGE_ATOMIC_INC(InFmt_MIMG*);
~Inst_MIMG__IMAGE_ATOMIC_INC();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 2; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //vgpr_a
return 32;
case 1: //sgpr_r
return 32;
case 2: //vgpr_d
return 16;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_MIMG__IMAGE_ATOMIC_INC
class Inst_MIMG__IMAGE_ATOMIC_DEC : public Inst_MIMG
{
public:
Inst_MIMG__IMAGE_ATOMIC_DEC(InFmt_MIMG*);
~Inst_MIMG__IMAGE_ATOMIC_DEC();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 2; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //vgpr_a
return 32;
case 1: //sgpr_r
return 32;
case 2: //vgpr_d
return 16;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_MIMG__IMAGE_ATOMIC_DEC
class Inst_MIMG__IMAGE_SAMPLE : public Inst_MIMG
{
public:
Inst_MIMG__IMAGE_SAMPLE(InFmt_MIMG*);
~Inst_MIMG__IMAGE_SAMPLE();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 3; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //vgpr_a
return 4;
case 1: //sgpr_r
return 32;
case 2: //sgpr_s
return 4;
case 3: //vgpr_d
return 16;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_MIMG__IMAGE_SAMPLE
class Inst_MIMG__IMAGE_SAMPLE_CL : public Inst_MIMG
{
public:
Inst_MIMG__IMAGE_SAMPLE_CL(InFmt_MIMG*);
~Inst_MIMG__IMAGE_SAMPLE_CL();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 3; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //vgpr_a
return 4;
case 1: //sgpr_r
return 32;
case 2: //sgpr_s
return 4;
case 3: //vgpr_d
return 16;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_MIMG__IMAGE_SAMPLE_CL
class Inst_MIMG__IMAGE_SAMPLE_D : public Inst_MIMG
{
public:
Inst_MIMG__IMAGE_SAMPLE_D(InFmt_MIMG*);
~Inst_MIMG__IMAGE_SAMPLE_D();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 3; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //vgpr_a
return 4;
case 1: //sgpr_r
return 32;
case 2: //sgpr_s
return 4;
case 3: //vgpr_d
return 16;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_MIMG__IMAGE_SAMPLE_D
class Inst_MIMG__IMAGE_SAMPLE_D_CL : public Inst_MIMG
{
public:
Inst_MIMG__IMAGE_SAMPLE_D_CL(InFmt_MIMG*);
~Inst_MIMG__IMAGE_SAMPLE_D_CL();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 3; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //vgpr_a
return 4;
case 1: //sgpr_r
return 32;
case 2: //sgpr_s
return 4;
case 3: //vgpr_d
return 16;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_MIMG__IMAGE_SAMPLE_D_CL
class Inst_MIMG__IMAGE_SAMPLE_L : public Inst_MIMG
{
public:
Inst_MIMG__IMAGE_SAMPLE_L(InFmt_MIMG*);
~Inst_MIMG__IMAGE_SAMPLE_L();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 3; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //vgpr_a
return 4;
case 1: //sgpr_r
return 32;
case 2: //sgpr_s
return 4;
case 3: //vgpr_d
return 16;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_MIMG__IMAGE_SAMPLE_L
class Inst_MIMG__IMAGE_SAMPLE_B : public Inst_MIMG
{
public:
Inst_MIMG__IMAGE_SAMPLE_B(InFmt_MIMG*);
~Inst_MIMG__IMAGE_SAMPLE_B();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 3; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //vgpr_a
return 4;
case 1: //sgpr_r
return 32;
case 2: //sgpr_s
return 4;
case 3: //vgpr_d
return 16;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_MIMG__IMAGE_SAMPLE_B
class Inst_MIMG__IMAGE_SAMPLE_B_CL : public Inst_MIMG
{
public:
Inst_MIMG__IMAGE_SAMPLE_B_CL(InFmt_MIMG*);
~Inst_MIMG__IMAGE_SAMPLE_B_CL();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 3; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //vgpr_a
return 4;
case 1: //sgpr_r
return 32;
case 2: //sgpr_s
return 4;
case 3: //vgpr_d
return 16;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_MIMG__IMAGE_SAMPLE_B_CL
class Inst_MIMG__IMAGE_SAMPLE_LZ : public Inst_MIMG
{
public:
Inst_MIMG__IMAGE_SAMPLE_LZ(InFmt_MIMG*);
~Inst_MIMG__IMAGE_SAMPLE_LZ();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 3; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //vgpr_a
return 4;
case 1: //sgpr_r
return 32;
case 2: //sgpr_s
return 4;
case 3: //vgpr_d
return 16;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_MIMG__IMAGE_SAMPLE_LZ
class Inst_MIMG__IMAGE_SAMPLE_C : public Inst_MIMG
{
public:
Inst_MIMG__IMAGE_SAMPLE_C(InFmt_MIMG*);
~Inst_MIMG__IMAGE_SAMPLE_C();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 3; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //vgpr_a
return 4;
case 1: //sgpr_r
return 32;
case 2: //sgpr_s
return 4;
case 3: //vgpr_d
return 16;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_MIMG__IMAGE_SAMPLE_C
class Inst_MIMG__IMAGE_SAMPLE_C_CL : public Inst_MIMG
{
public:
Inst_MIMG__IMAGE_SAMPLE_C_CL(InFmt_MIMG*);
~Inst_MIMG__IMAGE_SAMPLE_C_CL();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 3; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //vgpr_a
return 4;
case 1: //sgpr_r
return 32;
case 2: //sgpr_s
return 4;
case 3: //vgpr_d
return 16;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_MIMG__IMAGE_SAMPLE_C_CL
class Inst_MIMG__IMAGE_SAMPLE_C_D : public Inst_MIMG
{
public:
Inst_MIMG__IMAGE_SAMPLE_C_D(InFmt_MIMG*);
~Inst_MIMG__IMAGE_SAMPLE_C_D();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 3; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //vgpr_a
return 4;
case 1: //sgpr_r
return 32;
case 2: //sgpr_s
return 4;
case 3: //vgpr_d
return 16;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_MIMG__IMAGE_SAMPLE_C_D
class Inst_MIMG__IMAGE_SAMPLE_C_D_CL : public Inst_MIMG
{
public:
Inst_MIMG__IMAGE_SAMPLE_C_D_CL(InFmt_MIMG*);
~Inst_MIMG__IMAGE_SAMPLE_C_D_CL();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 3; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //vgpr_a
return 4;
case 1: //sgpr_r
return 32;
case 2: //sgpr_s
return 4;
case 3: //vgpr_d
return 16;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_MIMG__IMAGE_SAMPLE_C_D_CL
class Inst_MIMG__IMAGE_SAMPLE_C_L : public Inst_MIMG
{
public:
Inst_MIMG__IMAGE_SAMPLE_C_L(InFmt_MIMG*);
~Inst_MIMG__IMAGE_SAMPLE_C_L();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 3; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //vgpr_a
return 4;
case 1: //sgpr_r
return 32;
case 2: //sgpr_s
return 4;
case 3: //vgpr_d
return 16;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_MIMG__IMAGE_SAMPLE_C_L
class Inst_MIMG__IMAGE_SAMPLE_C_B : public Inst_MIMG
{
public:
Inst_MIMG__IMAGE_SAMPLE_C_B(InFmt_MIMG*);
~Inst_MIMG__IMAGE_SAMPLE_C_B();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 3; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //vgpr_a
return 4;
case 1: //sgpr_r
return 32;
case 2: //sgpr_s
return 4;
case 3: //vgpr_d
return 16;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_MIMG__IMAGE_SAMPLE_C_B
class Inst_MIMG__IMAGE_SAMPLE_C_B_CL : public Inst_MIMG
{
public:
Inst_MIMG__IMAGE_SAMPLE_C_B_CL(InFmt_MIMG*);
~Inst_MIMG__IMAGE_SAMPLE_C_B_CL();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 3; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //vgpr_a
return 4;
case 1: //sgpr_r
return 32;
case 2: //sgpr_s
return 4;
case 3: //vgpr_d
return 16;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_MIMG__IMAGE_SAMPLE_C_B_CL
class Inst_MIMG__IMAGE_SAMPLE_C_LZ : public Inst_MIMG
{
public:
Inst_MIMG__IMAGE_SAMPLE_C_LZ(InFmt_MIMG*);
~Inst_MIMG__IMAGE_SAMPLE_C_LZ();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 3; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //vgpr_a
return 4;
case 1: //sgpr_r
return 32;
case 2: //sgpr_s
return 4;
case 3: //vgpr_d
return 16;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_MIMG__IMAGE_SAMPLE_C_LZ
class Inst_MIMG__IMAGE_SAMPLE_O : public Inst_MIMG
{
public:
Inst_MIMG__IMAGE_SAMPLE_O(InFmt_MIMG*);
~Inst_MIMG__IMAGE_SAMPLE_O();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 3; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //vgpr_a
return 4;
case 1: //sgpr_r
return 32;
case 2: //sgpr_s
return 4;
case 3: //vgpr_d
return 16;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_MIMG__IMAGE_SAMPLE_O
class Inst_MIMG__IMAGE_SAMPLE_CL_O : public Inst_MIMG
{
public:
Inst_MIMG__IMAGE_SAMPLE_CL_O(InFmt_MIMG*);
~Inst_MIMG__IMAGE_SAMPLE_CL_O();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 3; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //vgpr_a
return 4;
case 1: //sgpr_r
return 32;
case 2: //sgpr_s
return 4;
case 3: //vgpr_d
return 16;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_MIMG__IMAGE_SAMPLE_CL_O
class Inst_MIMG__IMAGE_SAMPLE_D_O : public Inst_MIMG
{
public:
Inst_MIMG__IMAGE_SAMPLE_D_O(InFmt_MIMG*);
~Inst_MIMG__IMAGE_SAMPLE_D_O();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 3; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //vgpr_a
return 4;
case 1: //sgpr_r
return 32;
case 2: //sgpr_s
return 4;
case 3: //vgpr_d
return 16;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_MIMG__IMAGE_SAMPLE_D_O
class Inst_MIMG__IMAGE_SAMPLE_D_CL_O : public Inst_MIMG
{
public:
Inst_MIMG__IMAGE_SAMPLE_D_CL_O(InFmt_MIMG*);
~Inst_MIMG__IMAGE_SAMPLE_D_CL_O();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 3; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //vgpr_a
return 4;
case 1: //sgpr_r
return 32;
case 2: //sgpr_s
return 4;
case 3: //vgpr_d
return 16;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_MIMG__IMAGE_SAMPLE_D_CL_O
class Inst_MIMG__IMAGE_SAMPLE_L_O : public Inst_MIMG
{
public:
Inst_MIMG__IMAGE_SAMPLE_L_O(InFmt_MIMG*);
~Inst_MIMG__IMAGE_SAMPLE_L_O();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 3; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //vgpr_a
return 4;
case 1: //sgpr_r
return 32;
case 2: //sgpr_s
return 4;
case 3: //vgpr_d
return 16;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_MIMG__IMAGE_SAMPLE_L_O
class Inst_MIMG__IMAGE_SAMPLE_B_O : public Inst_MIMG
{
public:
Inst_MIMG__IMAGE_SAMPLE_B_O(InFmt_MIMG*);
~Inst_MIMG__IMAGE_SAMPLE_B_O();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 3; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //vgpr_a
return 4;
case 1: //sgpr_r
return 32;
case 2: //sgpr_s
return 4;
case 3: //vgpr_d
return 16;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_MIMG__IMAGE_SAMPLE_B_O
class Inst_MIMG__IMAGE_SAMPLE_B_CL_O : public Inst_MIMG
{
public:
Inst_MIMG__IMAGE_SAMPLE_B_CL_O(InFmt_MIMG*);
~Inst_MIMG__IMAGE_SAMPLE_B_CL_O();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 3; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //vgpr_a
return 4;
case 1: //sgpr_r
return 32;
case 2: //sgpr_s
return 4;
case 3: //vgpr_d
return 16;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_MIMG__IMAGE_SAMPLE_B_CL_O
class Inst_MIMG__IMAGE_SAMPLE_LZ_O : public Inst_MIMG
{
public:
Inst_MIMG__IMAGE_SAMPLE_LZ_O(InFmt_MIMG*);
~Inst_MIMG__IMAGE_SAMPLE_LZ_O();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 3; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //vgpr_a
return 4;
case 1: //sgpr_r
return 32;
case 2: //sgpr_s
return 4;
case 3: //vgpr_d
return 16;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_MIMG__IMAGE_SAMPLE_LZ_O
class Inst_MIMG__IMAGE_SAMPLE_C_O : public Inst_MIMG
{
public:
Inst_MIMG__IMAGE_SAMPLE_C_O(InFmt_MIMG*);
~Inst_MIMG__IMAGE_SAMPLE_C_O();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 3; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //vgpr_a
return 4;
case 1: //sgpr_r
return 32;
case 2: //sgpr_s
return 4;
case 3: //vgpr_d
return 16;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_MIMG__IMAGE_SAMPLE_C_O
class Inst_MIMG__IMAGE_SAMPLE_C_CL_O : public Inst_MIMG
{
public:
Inst_MIMG__IMAGE_SAMPLE_C_CL_O(InFmt_MIMG*);
~Inst_MIMG__IMAGE_SAMPLE_C_CL_O();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 3; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //vgpr_a
return 4;
case 1: //sgpr_r
return 32;
case 2: //sgpr_s
return 4;
case 3: //vgpr_d
return 16;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_MIMG__IMAGE_SAMPLE_C_CL_O
class Inst_MIMG__IMAGE_SAMPLE_C_D_O : public Inst_MIMG
{
public:
Inst_MIMG__IMAGE_SAMPLE_C_D_O(InFmt_MIMG*);
~Inst_MIMG__IMAGE_SAMPLE_C_D_O();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 3; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //vgpr_a
return 4;
case 1: //sgpr_r
return 32;
case 2: //sgpr_s
return 4;
case 3: //vgpr_d
return 16;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_MIMG__IMAGE_SAMPLE_C_D_O
class Inst_MIMG__IMAGE_SAMPLE_C_D_CL_O : public Inst_MIMG
{
public:
Inst_MIMG__IMAGE_SAMPLE_C_D_CL_O(InFmt_MIMG*);
~Inst_MIMG__IMAGE_SAMPLE_C_D_CL_O();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 3; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //vgpr_a
return 4;
case 1: //sgpr_r
return 32;
case 2: //sgpr_s
return 4;
case 3: //vgpr_d
return 16;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_MIMG__IMAGE_SAMPLE_C_D_CL_O
class Inst_MIMG__IMAGE_SAMPLE_C_L_O : public Inst_MIMG
{
public:
Inst_MIMG__IMAGE_SAMPLE_C_L_O(InFmt_MIMG*);
~Inst_MIMG__IMAGE_SAMPLE_C_L_O();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 3; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //vgpr_a
return 4;
case 1: //sgpr_r
return 32;
case 2: //sgpr_s
return 4;
case 3: //vgpr_d
return 16;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_MIMG__IMAGE_SAMPLE_C_L_O
class Inst_MIMG__IMAGE_SAMPLE_C_B_O : public Inst_MIMG
{
public:
Inst_MIMG__IMAGE_SAMPLE_C_B_O(InFmt_MIMG*);
~Inst_MIMG__IMAGE_SAMPLE_C_B_O();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 3; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //vgpr_a
return 4;
case 1: //sgpr_r
return 32;
case 2: //sgpr_s
return 4;
case 3: //vgpr_d
return 16;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_MIMG__IMAGE_SAMPLE_C_B_O
class Inst_MIMG__IMAGE_SAMPLE_C_B_CL_O : public Inst_MIMG
{
public:
Inst_MIMG__IMAGE_SAMPLE_C_B_CL_O(InFmt_MIMG*);
~Inst_MIMG__IMAGE_SAMPLE_C_B_CL_O();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 3; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //vgpr_a
return 4;
case 1: //sgpr_r
return 32;
case 2: //sgpr_s
return 4;
case 3: //vgpr_d
return 16;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_MIMG__IMAGE_SAMPLE_C_B_CL_O
class Inst_MIMG__IMAGE_SAMPLE_C_LZ_O : public Inst_MIMG
{
public:
Inst_MIMG__IMAGE_SAMPLE_C_LZ_O(InFmt_MIMG*);
~Inst_MIMG__IMAGE_SAMPLE_C_LZ_O();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 3; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //vgpr_a
return 4;
case 1: //sgpr_r
return 32;
case 2: //sgpr_s
return 4;
case 3: //vgpr_d
return 16;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_MIMG__IMAGE_SAMPLE_C_LZ_O
class Inst_MIMG__IMAGE_GATHER4 : public Inst_MIMG
{
public:
Inst_MIMG__IMAGE_GATHER4(InFmt_MIMG*);
~Inst_MIMG__IMAGE_GATHER4();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 3; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //vgpr_a
return 4;
case 1: //sgpr_r
return 32;
case 2: //sgpr_s
return 4;
case 3: //vgpr_d
return 16;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_MIMG__IMAGE_GATHER4
class Inst_MIMG__IMAGE_GATHER4_CL : public Inst_MIMG
{
public:
Inst_MIMG__IMAGE_GATHER4_CL(InFmt_MIMG*);
~Inst_MIMG__IMAGE_GATHER4_CL();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 3; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //vgpr_a
return 4;
case 1: //sgpr_r
return 32;
case 2: //sgpr_s
return 4;
case 3: //vgpr_d
return 16;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_MIMG__IMAGE_GATHER4_CL
class Inst_MIMG__IMAGE_GATHER4_L : public Inst_MIMG
{
public:
Inst_MIMG__IMAGE_GATHER4_L(InFmt_MIMG*);
~Inst_MIMG__IMAGE_GATHER4_L();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 3; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //vgpr_a
return 4;
case 1: //sgpr_r
return 32;
case 2: //sgpr_s
return 4;
case 3: //vgpr_d
return 16;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_MIMG__IMAGE_GATHER4_L
class Inst_MIMG__IMAGE_GATHER4_B : public Inst_MIMG
{
public:
Inst_MIMG__IMAGE_GATHER4_B(InFmt_MIMG*);
~Inst_MIMG__IMAGE_GATHER4_B();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 3; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //vgpr_a
return 4;
case 1: //sgpr_r
return 32;
case 2: //sgpr_s
return 4;
case 3: //vgpr_d
return 16;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_MIMG__IMAGE_GATHER4_B
class Inst_MIMG__IMAGE_GATHER4_B_CL : public Inst_MIMG
{
public:
Inst_MIMG__IMAGE_GATHER4_B_CL(InFmt_MIMG*);
~Inst_MIMG__IMAGE_GATHER4_B_CL();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 3; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //vgpr_a
return 4;
case 1: //sgpr_r
return 32;
case 2: //sgpr_s
return 4;
case 3: //vgpr_d
return 16;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_MIMG__IMAGE_GATHER4_B_CL
class Inst_MIMG__IMAGE_GATHER4_LZ : public Inst_MIMG
{
public:
Inst_MIMG__IMAGE_GATHER4_LZ(InFmt_MIMG*);
~Inst_MIMG__IMAGE_GATHER4_LZ();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 3; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //vgpr_a
return 4;
case 1: //sgpr_r
return 32;
case 2: //sgpr_s
return 4;
case 3: //vgpr_d
return 16;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_MIMG__IMAGE_GATHER4_LZ
class Inst_MIMG__IMAGE_GATHER4_C : public Inst_MIMG
{
public:
Inst_MIMG__IMAGE_GATHER4_C(InFmt_MIMG*);
~Inst_MIMG__IMAGE_GATHER4_C();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 3; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //vgpr_a
return 4;
case 1: //sgpr_r
return 32;
case 2: //sgpr_s
return 4;
case 3: //vgpr_d
return 16;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_MIMG__IMAGE_GATHER4_C
class Inst_MIMG__IMAGE_GATHER4_C_CL : public Inst_MIMG
{
public:
Inst_MIMG__IMAGE_GATHER4_C_CL(InFmt_MIMG*);
~Inst_MIMG__IMAGE_GATHER4_C_CL();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 3; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //vgpr_a
return 4;
case 1: //sgpr_r
return 32;
case 2: //sgpr_s
return 4;
case 3: //vgpr_d
return 16;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_MIMG__IMAGE_GATHER4_C_CL
class Inst_MIMG__IMAGE_GATHER4_C_L : public Inst_MIMG
{
public:
Inst_MIMG__IMAGE_GATHER4_C_L(InFmt_MIMG*);
~Inst_MIMG__IMAGE_GATHER4_C_L();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 3; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //vgpr_a
return 4;
case 1: //sgpr_r
return 32;
case 2: //sgpr_s
return 4;
case 3: //vgpr_d
return 16;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_MIMG__IMAGE_GATHER4_C_L
class Inst_MIMG__IMAGE_GATHER4_C_B : public Inst_MIMG
{
public:
Inst_MIMG__IMAGE_GATHER4_C_B(InFmt_MIMG*);
~Inst_MIMG__IMAGE_GATHER4_C_B();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 3; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //vgpr_a
return 4;
case 1: //sgpr_r
return 32;
case 2: //sgpr_s
return 4;
case 3: //vgpr_d
return 16;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_MIMG__IMAGE_GATHER4_C_B
class Inst_MIMG__IMAGE_GATHER4_C_B_CL : public Inst_MIMG
{
public:
Inst_MIMG__IMAGE_GATHER4_C_B_CL(InFmt_MIMG*);
~Inst_MIMG__IMAGE_GATHER4_C_B_CL();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 3; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //vgpr_a
return 4;
case 1: //sgpr_r
return 32;
case 2: //sgpr_s
return 4;
case 3: //vgpr_d
return 16;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_MIMG__IMAGE_GATHER4_C_B_CL
class Inst_MIMG__IMAGE_GATHER4_C_LZ : public Inst_MIMG
{
public:
Inst_MIMG__IMAGE_GATHER4_C_LZ(InFmt_MIMG*);
~Inst_MIMG__IMAGE_GATHER4_C_LZ();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 3; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //vgpr_a
return 4;
case 1: //sgpr_r
return 32;
case 2: //sgpr_s
return 4;
case 3: //vgpr_d
return 16;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_MIMG__IMAGE_GATHER4_C_LZ
class Inst_MIMG__IMAGE_GATHER4_O : public Inst_MIMG
{
public:
Inst_MIMG__IMAGE_GATHER4_O(InFmt_MIMG*);
~Inst_MIMG__IMAGE_GATHER4_O();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 3; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //vgpr_a
return 4;
case 1: //sgpr_r
return 32;
case 2: //sgpr_s
return 4;
case 3: //vgpr_d
return 16;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_MIMG__IMAGE_GATHER4_O
class Inst_MIMG__IMAGE_GATHER4_CL_O : public Inst_MIMG
{
public:
Inst_MIMG__IMAGE_GATHER4_CL_O(InFmt_MIMG*);
~Inst_MIMG__IMAGE_GATHER4_CL_O();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 3; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //vgpr_a
return 4;
case 1: //sgpr_r
return 32;
case 2: //sgpr_s
return 4;
case 3: //vgpr_d
return 16;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_MIMG__IMAGE_GATHER4_CL_O
class Inst_MIMG__IMAGE_GATHER4_L_O : public Inst_MIMG
{
public:
Inst_MIMG__IMAGE_GATHER4_L_O(InFmt_MIMG*);
~Inst_MIMG__IMAGE_GATHER4_L_O();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 3; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //vgpr_a
return 4;
case 1: //sgpr_r
return 32;
case 2: //sgpr_s
return 4;
case 3: //vgpr_d
return 16;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_MIMG__IMAGE_GATHER4_L_O
class Inst_MIMG__IMAGE_GATHER4_B_O : public Inst_MIMG
{
public:
Inst_MIMG__IMAGE_GATHER4_B_O(InFmt_MIMG*);
~Inst_MIMG__IMAGE_GATHER4_B_O();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 3; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //vgpr_a
return 4;
case 1: //sgpr_r
return 32;
case 2: //sgpr_s
return 4;
case 3: //vgpr_d
return 16;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_MIMG__IMAGE_GATHER4_B_O
class Inst_MIMG__IMAGE_GATHER4_B_CL_O : public Inst_MIMG
{
public:
Inst_MIMG__IMAGE_GATHER4_B_CL_O(InFmt_MIMG*);
~Inst_MIMG__IMAGE_GATHER4_B_CL_O();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 3; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //vgpr_a
return 4;
case 1: //sgpr_r
return 32;
case 2: //sgpr_s
return 4;
case 3: //vgpr_d
return 16;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_MIMG__IMAGE_GATHER4_B_CL_O
class Inst_MIMG__IMAGE_GATHER4_LZ_O : public Inst_MIMG
{
public:
Inst_MIMG__IMAGE_GATHER4_LZ_O(InFmt_MIMG*);
~Inst_MIMG__IMAGE_GATHER4_LZ_O();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 3; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //vgpr_a
return 4;
case 1: //sgpr_r
return 32;
case 2: //sgpr_s
return 4;
case 3: //vgpr_d
return 16;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_MIMG__IMAGE_GATHER4_LZ_O
class Inst_MIMG__IMAGE_GATHER4_C_O : public Inst_MIMG
{
public:
Inst_MIMG__IMAGE_GATHER4_C_O(InFmt_MIMG*);
~Inst_MIMG__IMAGE_GATHER4_C_O();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 3; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //vgpr_a
return 4;
case 1: //sgpr_r
return 32;
case 2: //sgpr_s
return 4;
case 3: //vgpr_d
return 16;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_MIMG__IMAGE_GATHER4_C_O
class Inst_MIMG__IMAGE_GATHER4_C_CL_O : public Inst_MIMG
{
public:
Inst_MIMG__IMAGE_GATHER4_C_CL_O(InFmt_MIMG*);
~Inst_MIMG__IMAGE_GATHER4_C_CL_O();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 3; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //vgpr_a
return 4;
case 1: //sgpr_r
return 32;
case 2: //sgpr_s
return 4;
case 3: //vgpr_d
return 16;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_MIMG__IMAGE_GATHER4_C_CL_O
class Inst_MIMG__IMAGE_GATHER4_C_L_O : public Inst_MIMG
{
public:
Inst_MIMG__IMAGE_GATHER4_C_L_O(InFmt_MIMG*);
~Inst_MIMG__IMAGE_GATHER4_C_L_O();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 3; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //vgpr_a
return 4;
case 1: //sgpr_r
return 32;
case 2: //sgpr_s
return 4;
case 3: //vgpr_d
return 16;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_MIMG__IMAGE_GATHER4_C_L_O
class Inst_MIMG__IMAGE_GATHER4_C_B_O : public Inst_MIMG
{
public:
Inst_MIMG__IMAGE_GATHER4_C_B_O(InFmt_MIMG*);
~Inst_MIMG__IMAGE_GATHER4_C_B_O();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 3; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //vgpr_a
return 4;
case 1: //sgpr_r
return 32;
case 2: //sgpr_s
return 4;
case 3: //vgpr_d
return 16;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_MIMG__IMAGE_GATHER4_C_B_O
class Inst_MIMG__IMAGE_GATHER4_C_B_CL_O : public Inst_MIMG
{
public:
Inst_MIMG__IMAGE_GATHER4_C_B_CL_O(InFmt_MIMG*);
~Inst_MIMG__IMAGE_GATHER4_C_B_CL_O();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 3; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //vgpr_a
return 4;
case 1: //sgpr_r
return 32;
case 2: //sgpr_s
return 4;
case 3: //vgpr_d
return 16;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_MIMG__IMAGE_GATHER4_C_B_CL_O
class Inst_MIMG__IMAGE_GATHER4_C_LZ_O : public Inst_MIMG
{
public:
Inst_MIMG__IMAGE_GATHER4_C_LZ_O(InFmt_MIMG*);
~Inst_MIMG__IMAGE_GATHER4_C_LZ_O();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 3; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //vgpr_a
return 4;
case 1: //sgpr_r
return 32;
case 2: //sgpr_s
return 4;
case 3: //vgpr_d
return 16;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_MIMG__IMAGE_GATHER4_C_LZ_O
class Inst_MIMG__IMAGE_GET_LOD : public Inst_MIMG
{
public:
Inst_MIMG__IMAGE_GET_LOD(InFmt_MIMG*);
~Inst_MIMG__IMAGE_GET_LOD();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 3; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //vgpr_a
return 4;
case 1: //sgpr_r
return 32;
case 2: //sgpr_s
return 4;
case 3: //vgpr_d
return 16;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_MIMG__IMAGE_GET_LOD
class Inst_MIMG__IMAGE_SAMPLE_CD : public Inst_MIMG
{
public:
Inst_MIMG__IMAGE_SAMPLE_CD(InFmt_MIMG*);
~Inst_MIMG__IMAGE_SAMPLE_CD();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 3; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //vgpr_a
return 4;
case 1: //sgpr_r
return 32;
case 2: //sgpr_s
return 4;
case 3: //vgpr_d
return 16;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_MIMG__IMAGE_SAMPLE_CD
class Inst_MIMG__IMAGE_SAMPLE_CD_CL : public Inst_MIMG
{
public:
Inst_MIMG__IMAGE_SAMPLE_CD_CL(InFmt_MIMG*);
~Inst_MIMG__IMAGE_SAMPLE_CD_CL();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 3; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //vgpr_a
return 4;
case 1: //sgpr_r
return 32;
case 2: //sgpr_s
return 4;
case 3: //vgpr_d
return 16;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_MIMG__IMAGE_SAMPLE_CD_CL
class Inst_MIMG__IMAGE_SAMPLE_C_CD : public Inst_MIMG
{
public:
Inst_MIMG__IMAGE_SAMPLE_C_CD(InFmt_MIMG*);
~Inst_MIMG__IMAGE_SAMPLE_C_CD();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 3; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //vgpr_a
return 4;
case 1: //sgpr_r
return 32;
case 2: //sgpr_s
return 4;
case 3: //vgpr_d
return 16;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_MIMG__IMAGE_SAMPLE_C_CD
class Inst_MIMG__IMAGE_SAMPLE_C_CD_CL : public Inst_MIMG
{
public:
Inst_MIMG__IMAGE_SAMPLE_C_CD_CL(InFmt_MIMG*);
~Inst_MIMG__IMAGE_SAMPLE_C_CD_CL();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 3; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //vgpr_a
return 4;
case 1: //sgpr_r
return 32;
case 2: //sgpr_s
return 4;
case 3: //vgpr_d
return 16;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_MIMG__IMAGE_SAMPLE_C_CD_CL
class Inst_MIMG__IMAGE_SAMPLE_CD_O : public Inst_MIMG
{
public:
Inst_MIMG__IMAGE_SAMPLE_CD_O(InFmt_MIMG*);
~Inst_MIMG__IMAGE_SAMPLE_CD_O();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 3; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //vgpr_a
return 4;
case 1: //sgpr_r
return 32;
case 2: //sgpr_s
return 4;
case 3: //vgpr_d
return 16;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_MIMG__IMAGE_SAMPLE_CD_O
class Inst_MIMG__IMAGE_SAMPLE_CD_CL_O : public Inst_MIMG
{
public:
Inst_MIMG__IMAGE_SAMPLE_CD_CL_O(InFmt_MIMG*);
~Inst_MIMG__IMAGE_SAMPLE_CD_CL_O();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 3; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //vgpr_a
return 4;
case 1: //sgpr_r
return 32;
case 2: //sgpr_s
return 4;
case 3: //vgpr_d
return 16;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_MIMG__IMAGE_SAMPLE_CD_CL_O
class Inst_MIMG__IMAGE_SAMPLE_C_CD_O : public Inst_MIMG
{
public:
Inst_MIMG__IMAGE_SAMPLE_C_CD_O(InFmt_MIMG*);
~Inst_MIMG__IMAGE_SAMPLE_C_CD_O();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 3; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //vgpr_a
return 4;
case 1: //sgpr_r
return 32;
case 2: //sgpr_s
return 4;
case 3: //vgpr_d
return 16;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_MIMG__IMAGE_SAMPLE_C_CD_O
class Inst_MIMG__IMAGE_SAMPLE_C_CD_CL_O : public Inst_MIMG
{
public:
Inst_MIMG__IMAGE_SAMPLE_C_CD_CL_O(InFmt_MIMG*);
~Inst_MIMG__IMAGE_SAMPLE_C_CD_CL_O();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 3; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //vgpr_a
return 4;
case 1: //sgpr_r
return 32;
case 2: //sgpr_s
return 4;
case 3: //vgpr_d
return 16;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_MIMG__IMAGE_SAMPLE_C_CD_CL_O
class Inst_EXP__EXP : public Inst_EXP
{
public:
Inst_EXP__EXP(InFmt_EXP*);
~Inst_EXP__EXP();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return 4; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //
return 32;
case 1: //
return 32;
case 2: //
return 32;
case 3: //
return 32;
case 4: //
return 32;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_EXP__EXP
class Inst_FLAT__FLAT_LOAD_UBYTE : public Inst_FLAT
{
public:
Inst_FLAT__FLAT_LOAD_UBYTE(InFmt_FLAT*);
~Inst_FLAT__FLAT_LOAD_UBYTE();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return isFlat() ? 1 : 2; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //vgpr_addr
return 8;
case 1: //vgpr_dst or saddr
return isFlat() ? 1 : 8;
case 2: //vgpr_dst
assert(!isFlat());
return 1;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
void initiateAcc(GPUDynInstPtr) override;
void completeAcc(GPUDynInstPtr) override;
}; // Inst_FLAT__FLAT_LOAD_UBYTE
class Inst_FLAT__FLAT_LOAD_SBYTE : public Inst_FLAT
{
public:
Inst_FLAT__FLAT_LOAD_SBYTE(InFmt_FLAT*);
~Inst_FLAT__FLAT_LOAD_SBYTE();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return isFlat() ? 1 : 2; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //vgpr_addr
return 8;
case 1: //vgpr_dst or saddr
return isFlat() ? 1 : 8;
case 2: //vgpr_dst
assert(!isFlat());
return 1;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
void initiateAcc(GPUDynInstPtr) override;
void completeAcc(GPUDynInstPtr) override;
}; // Inst_FLAT__FLAT_LOAD_SBYTE
class Inst_FLAT__FLAT_LOAD_USHORT : public Inst_FLAT
{
public:
Inst_FLAT__FLAT_LOAD_USHORT(InFmt_FLAT*);
~Inst_FLAT__FLAT_LOAD_USHORT();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return isFlat() ? 1 : 2; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //vgpr_addr
return 8;
case 1: //vgpr_dst or saddr
return isFlat() ? 2 : 8;
case 2: //vgpr_dst
assert(!isFlat());
return 2;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
void initiateAcc(GPUDynInstPtr) override;
void completeAcc(GPUDynInstPtr) override;
}; // Inst_FLAT__FLAT_LOAD_USHORT
class Inst_FLAT__FLAT_LOAD_SSHORT : public Inst_FLAT
{
public:
Inst_FLAT__FLAT_LOAD_SSHORT(InFmt_FLAT*);
~Inst_FLAT__FLAT_LOAD_SSHORT();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return isFlat() ? 1 : 2; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //vgpr_addr
return 8;
case 1: //vgpr_dst or saddr
return isFlat() ? 2 : 8;
case 2: //vgpr_dst
assert(!isFlat());
return 2;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
void initiateAcc(GPUDynInstPtr) override;
void completeAcc(GPUDynInstPtr) override;
}; // Inst_FLAT__FLAT_LOAD_SSHORT
class Inst_FLAT__FLAT_LOAD_DWORD : public Inst_FLAT
{
public:
Inst_FLAT__FLAT_LOAD_DWORD(InFmt_FLAT*);
~Inst_FLAT__FLAT_LOAD_DWORD();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return isFlat() ? 1 : 2; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //vgpr_addr
return 8;
case 1: //vgpr_dst or saddr
return isFlat() ? 4 : 8;
case 2: //vgpr_dst
assert(!isFlat());
return 4;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
void initiateAcc(GPUDynInstPtr) override;
void completeAcc(GPUDynInstPtr) override;
}; // Inst_FLAT__FLAT_LOAD_DWORD
class Inst_FLAT__FLAT_LOAD_DWORDX2 : public Inst_FLAT
{
public:
Inst_FLAT__FLAT_LOAD_DWORDX2(InFmt_FLAT*);
~Inst_FLAT__FLAT_LOAD_DWORDX2();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return isFlat() ? 1 : 2; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //vgpr_addr
return 8;
case 1: //vgpr_dst or saddr
return isFlat() ? 8 : 8;
case 2: //vgpr_dst
assert(!isFlat());
return 8;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
void initiateAcc(GPUDynInstPtr) override;
void completeAcc(GPUDynInstPtr) override;
}; // Inst_FLAT__FLAT_LOAD_DWORDX2
class Inst_FLAT__FLAT_LOAD_DWORDX3 : public Inst_FLAT
{
public:
Inst_FLAT__FLAT_LOAD_DWORDX3(InFmt_FLAT*);
~Inst_FLAT__FLAT_LOAD_DWORDX3();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return isFlat() ? 1 : 2; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //vgpr_addr
return 8;
case 1: //vgpr_dst or saddr
return isFlat() ? 12 : 8;
case 2: //vgpr_dst
assert(!isFlat());
return 12;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
void initiateAcc(GPUDynInstPtr) override;
void completeAcc(GPUDynInstPtr) override;
}; // Inst_FLAT__FLAT_LOAD_DWORDX3
class Inst_FLAT__FLAT_LOAD_DWORDX4 : public Inst_FLAT
{
public:
Inst_FLAT__FLAT_LOAD_DWORDX4(InFmt_FLAT*);
~Inst_FLAT__FLAT_LOAD_DWORDX4();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return isFlat() ? 1 : 2; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //vgpr_addr
return 8;
case 1: //vgpr_dst or saddr
return isFlat() ? 16 : 8;
case 2: //vgpr_dst
assert(!isFlat());
return 16;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
void initiateAcc(GPUDynInstPtr) override;
void completeAcc(GPUDynInstPtr) override;
}; // Inst_FLAT__FLAT_LOAD_DWORDX4
class Inst_FLAT__FLAT_STORE_BYTE : public Inst_FLAT
{
public:
Inst_FLAT__FLAT_STORE_BYTE(InFmt_FLAT*);
~Inst_FLAT__FLAT_STORE_BYTE();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 0; }
int numSrcRegOperands() override { return isFlat() ? 2 : 3; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //vgpr_addr
return 8;
case 1: //vgpr_src
return 1;
case 2: //saddr
assert(!isFlat());
return 8;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
void initiateAcc(GPUDynInstPtr) override;
void completeAcc(GPUDynInstPtr) override;
}; // Inst_FLAT__FLAT_STORE_BYTE
class Inst_FLAT__FLAT_STORE_SHORT : public Inst_FLAT
{
public:
Inst_FLAT__FLAT_STORE_SHORT(InFmt_FLAT*);
~Inst_FLAT__FLAT_STORE_SHORT();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 0; }
int numSrcRegOperands() override { return isFlat() ? 2 : 3; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //vgpr_addr
return 8;
case 1: //vgpr_src
return 2;
case 2: //saddr
assert(!isFlat());
return 8;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
void initiateAcc(GPUDynInstPtr) override;
void completeAcc(GPUDynInstPtr) override;
}; // Inst_FLAT__FLAT_STORE_SHORT
class Inst_FLAT__FLAT_STORE_DWORD : public Inst_FLAT
{
public:
Inst_FLAT__FLAT_STORE_DWORD(InFmt_FLAT*);
~Inst_FLAT__FLAT_STORE_DWORD();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 0; }
int numSrcRegOperands() override { return isFlat() ? 2 : 3; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //vgpr_addr
return 8;
case 1: //vgpr_src
return 4;
case 2: //saddr
assert(!isFlat());
return 8;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
void initiateAcc(GPUDynInstPtr) override;
void completeAcc(GPUDynInstPtr) override;
}; // Inst_FLAT__FLAT_STORE_DWORD
class Inst_FLAT__FLAT_STORE_DWORDX2 : public Inst_FLAT
{
public:
Inst_FLAT__FLAT_STORE_DWORDX2(InFmt_FLAT*);
~Inst_FLAT__FLAT_STORE_DWORDX2();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 0; }
int numSrcRegOperands() override { return isFlat() ? 2 : 3; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //vgpr_addr
return 8;
case 1: //vgpr_src
return 8;
case 2: //saddr
assert(!isFlat());
return 8;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
void initiateAcc(GPUDynInstPtr) override;
void completeAcc(GPUDynInstPtr) override;
}; // Inst_FLAT__FLAT_STORE_DWORDX2
class Inst_FLAT__FLAT_STORE_DWORDX3 : public Inst_FLAT
{
public:
Inst_FLAT__FLAT_STORE_DWORDX3(InFmt_FLAT*);
~Inst_FLAT__FLAT_STORE_DWORDX3();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 0; }
int numSrcRegOperands() override { return isFlat() ? 2 : 3; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //vgpr_addr
return 8;
case 1: //vgpr_src
return 12;
case 2: //saddr
assert(!isFlat());
return 8;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
void initiateAcc(GPUDynInstPtr) override;
void completeAcc(GPUDynInstPtr) override;
}; // Inst_FLAT__FLAT_STORE_DWORDX3
class Inst_FLAT__FLAT_STORE_DWORDX4 : public Inst_FLAT
{
public:
Inst_FLAT__FLAT_STORE_DWORDX4(InFmt_FLAT*);
~Inst_FLAT__FLAT_STORE_DWORDX4();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 0; }
int numSrcRegOperands() override { return isFlat() ? 2 : 3; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //vgpr_addr
return 8;
case 1: //vgpr_src
return 16;
case 2: //saddr
assert(!isFlat());
return 8;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
void initiateAcc(GPUDynInstPtr) override;
void completeAcc(GPUDynInstPtr) override;
}; // Inst_FLAT__FLAT_STORE_DWORDX4
class Inst_FLAT__FLAT_ATOMIC_SWAP : public Inst_FLAT
{
public:
Inst_FLAT__FLAT_ATOMIC_SWAP(InFmt_FLAT*);
~Inst_FLAT__FLAT_ATOMIC_SWAP();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return isFlat() ? 2 : 3; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //vgpr_addr
return 8;
case 1: //vgpr_src
return 4;
case 2: //vgpr_dst or saddr
return isFlat() ? 4 : 8;
case 3: //vgpr_dst
assert(!isFlat());
return 4;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
void initiateAcc(GPUDynInstPtr) override;
void completeAcc(GPUDynInstPtr) override;
}; // Inst_FLAT__FLAT_ATOMIC_SWAP
class Inst_FLAT__FLAT_ATOMIC_CMPSWAP : public Inst_FLAT
{
public:
Inst_FLAT__FLAT_ATOMIC_CMPSWAP(InFmt_FLAT*);
~Inst_FLAT__FLAT_ATOMIC_CMPSWAP();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return isFlat() ? 2 : 3; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //vgpr_addr
return 8;
case 1: //vgpr_src
return 8;
case 2: //vgpr_dst or saddr
return isFlat() ? 4 : 8;
case 3: //vgpr_dst
assert(!isFlat());
return 4;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
void initiateAcc(GPUDynInstPtr) override;
void completeAcc(GPUDynInstPtr) override;
}; // Inst_FLAT__FLAT_ATOMIC_CMPSWAP
class Inst_FLAT__FLAT_ATOMIC_ADD : public Inst_FLAT
{
public:
Inst_FLAT__FLAT_ATOMIC_ADD(InFmt_FLAT*);
~Inst_FLAT__FLAT_ATOMIC_ADD();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return isFlat() ? 2 : 3; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //vgpr_addr
return 8;
case 1: //vgpr_src
return 4;
case 2: //vgpr_dst or saddr
return isFlat() ? 4 : 8;
case 3: //vgpr_dst
assert(!isFlat());
return 4;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
void initiateAcc(GPUDynInstPtr) override;
void completeAcc(GPUDynInstPtr) override;
}; // Inst_FLAT__FLAT_ATOMIC_ADD
class Inst_FLAT__FLAT_ATOMIC_SUB : public Inst_FLAT
{
public:
Inst_FLAT__FLAT_ATOMIC_SUB(InFmt_FLAT*);
~Inst_FLAT__FLAT_ATOMIC_SUB();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return isFlat() ? 2 : 3; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //vgpr_addr
return 8;
case 1: //vgpr_src
return 4;
case 2: //vgpr_dst or saddr
return isFlat() ? 4 : 8;
case 3: //vgpr_dst
assert(!isFlat());
return 4;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_FLAT__FLAT_ATOMIC_SUB
class Inst_FLAT__FLAT_ATOMIC_SMIN : public Inst_FLAT
{
public:
Inst_FLAT__FLAT_ATOMIC_SMIN(InFmt_FLAT*);
~Inst_FLAT__FLAT_ATOMIC_SMIN();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return isFlat() ? 2 : 3; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //vgpr_addr
return 8;
case 1: //vgpr_src
return 4;
case 2: //vgpr_dst or saddr
return isFlat() ? 4 : 8;
case 3: //vgpr_dst
assert(!isFlat());
return 4;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_FLAT__FLAT_ATOMIC_SMIN
class Inst_FLAT__FLAT_ATOMIC_UMIN : public Inst_FLAT
{
public:
Inst_FLAT__FLAT_ATOMIC_UMIN(InFmt_FLAT*);
~Inst_FLAT__FLAT_ATOMIC_UMIN();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return isFlat() ? 2 : 3; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //vgpr_addr
return 8;
case 1: //vgpr_src
return 4;
case 2: //vgpr_dst or saddr
return isFlat() ? 4 : 8;
case 3: //vgpr_dst
assert(!isFlat());
return 4;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_FLAT__FLAT_ATOMIC_UMIN
class Inst_FLAT__FLAT_ATOMIC_SMAX : public Inst_FLAT
{
public:
Inst_FLAT__FLAT_ATOMIC_SMAX(InFmt_FLAT*);
~Inst_FLAT__FLAT_ATOMIC_SMAX();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return isFlat() ? 2 : 3; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //vgpr_addr
return 8;
case 1: //vgpr_src
return 4;
case 2: //vgpr_dst or saddr
return isFlat() ? 4 : 8;
case 3: //vgpr_dst
assert(!isFlat());
return 4;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_FLAT__FLAT_ATOMIC_SMAX
class Inst_FLAT__FLAT_ATOMIC_UMAX : public Inst_FLAT
{
public:
Inst_FLAT__FLAT_ATOMIC_UMAX(InFmt_FLAT*);
~Inst_FLAT__FLAT_ATOMIC_UMAX();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return isFlat() ? 2 : 3; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //vgpr_addr
return 8;
case 1: //vgpr_src
return 4;
case 2: //vgpr_dst or saddr
return isFlat() ? 4 : 8;
case 3: //vgpr_dst
assert(!isFlat());
return 4;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_FLAT__FLAT_ATOMIC_UMAX
class Inst_FLAT__FLAT_ATOMIC_AND : public Inst_FLAT
{
public:
Inst_FLAT__FLAT_ATOMIC_AND(InFmt_FLAT*);
~Inst_FLAT__FLAT_ATOMIC_AND();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return isFlat() ? 2 : 3; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //vgpr_addr
return 8;
case 1: //vgpr_src
return 4;
case 2: //vgpr_dst or saddr
return isFlat() ? 4 : 8;
case 3: //vgpr_dst
assert(!isFlat());
return 4;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_FLAT__FLAT_ATOMIC_AND
class Inst_FLAT__FLAT_ATOMIC_OR : public Inst_FLAT
{
public:
Inst_FLAT__FLAT_ATOMIC_OR(InFmt_FLAT*);
~Inst_FLAT__FLAT_ATOMIC_OR();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return isFlat() ? 2 : 3; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //vgpr_addr
return 8;
case 1: //vgpr_src
return 4;
case 2: //vgpr_dst or saddr
return isFlat() ? 4 : 8;
case 3: //vgpr_dst
assert(!isFlat());
return 4;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_FLAT__FLAT_ATOMIC_OR
class Inst_FLAT__FLAT_ATOMIC_XOR : public Inst_FLAT
{
public:
Inst_FLAT__FLAT_ATOMIC_XOR(InFmt_FLAT*);
~Inst_FLAT__FLAT_ATOMIC_XOR();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return isFlat() ? 2 : 3; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //vgpr_addr
return 8;
case 1: //vgpr_src
return 4;
case 2: //vgpr_dst or saddr
return isFlat() ? 4 : 8;
case 3: //vgpr_dst
assert(!isFlat());
return 4;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_FLAT__FLAT_ATOMIC_XOR
class Inst_FLAT__FLAT_ATOMIC_INC : public Inst_FLAT
{
public:
Inst_FLAT__FLAT_ATOMIC_INC(InFmt_FLAT*);
~Inst_FLAT__FLAT_ATOMIC_INC();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return isFlat() ? 2 : 3; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //vgpr_addr
return 8;
case 1: //vgpr_src
return 4;
case 2: //vgpr_dst or saddr
return isFlat() ? 4 : 8;
case 3: //vgpr_dst
assert(!isFlat());
return 4;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_FLAT__FLAT_ATOMIC_INC
class Inst_FLAT__FLAT_ATOMIC_DEC : public Inst_FLAT
{
public:
Inst_FLAT__FLAT_ATOMIC_DEC(InFmt_FLAT*);
~Inst_FLAT__FLAT_ATOMIC_DEC();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return isFlat() ? 2 : 3; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //vgpr_addr
return 8;
case 1: //vgpr_src
return 4;
case 2: //vgpr_dst or saddr
return isFlat() ? 4 : 8;
case 3: //vgpr_dst
assert(!isFlat());
return 4;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_FLAT__FLAT_ATOMIC_DEC
class Inst_FLAT__FLAT_ATOMIC_SWAP_X2 : public Inst_FLAT
{
public:
Inst_FLAT__FLAT_ATOMIC_SWAP_X2(InFmt_FLAT*);
~Inst_FLAT__FLAT_ATOMIC_SWAP_X2();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return isFlat() ? 2 : 3; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //vgpr_addr
return 8;
case 1: //vgpr_src
return 8;
case 2: //vgpr_dst or saddr
return isFlat() ? 8 : 8;
case 3: //vgpr_dst
assert(!isFlat());
return 8;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_FLAT__FLAT_ATOMIC_SWAP_X2
class Inst_FLAT__FLAT_ATOMIC_CMPSWAP_X2 : public Inst_FLAT
{
public:
Inst_FLAT__FLAT_ATOMIC_CMPSWAP_X2(InFmt_FLAT*);
~Inst_FLAT__FLAT_ATOMIC_CMPSWAP_X2();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return isFlat() ? 2 : 3; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //vgpr_addr
return 8;
case 1: //vgpr_src
return 16;
case 2: //vgpr_dst or saddr
return isFlat() ? 8 : 8;
case 3: //vgpr_dst
assert(!isFlat());
return 8;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
void initiateAcc(GPUDynInstPtr) override;
void completeAcc(GPUDynInstPtr) override;
}; // Inst_FLAT__FLAT_ATOMIC_CMPSWAP_X2
class Inst_FLAT__FLAT_ATOMIC_ADD_X2 : public Inst_FLAT
{
public:
Inst_FLAT__FLAT_ATOMIC_ADD_X2(InFmt_FLAT*);
~Inst_FLAT__FLAT_ATOMIC_ADD_X2();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return isFlat() ? 2 : 3; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //vgpr_addr
return 8;
case 1: //vgpr_src
return 8;
case 2: //vgpr_dst or saddr
return isFlat() ? 8 : 8;
case 3: //vgpr_dst
assert(!isFlat());
return 8;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
void initiateAcc(GPUDynInstPtr) override;
void completeAcc(GPUDynInstPtr) override;
}; // Inst_FLAT__FLAT_ATOMIC_ADD_X2
class Inst_FLAT__FLAT_ATOMIC_SUB_X2 : public Inst_FLAT
{
public:
Inst_FLAT__FLAT_ATOMIC_SUB_X2(InFmt_FLAT*);
~Inst_FLAT__FLAT_ATOMIC_SUB_X2();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return isFlat() ? 2 : 3; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //vgpr_addr
return 8;
case 1: //vgpr_src
return 8;
case 2: //vgpr_dst or saddr
return isFlat() ? 8 : 8;
case 3: //vgpr_dst
assert(!isFlat());
return 8;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_FLAT__FLAT_ATOMIC_SUB_X2
class Inst_FLAT__FLAT_ATOMIC_SMIN_X2 : public Inst_FLAT
{
public:
Inst_FLAT__FLAT_ATOMIC_SMIN_X2(InFmt_FLAT*);
~Inst_FLAT__FLAT_ATOMIC_SMIN_X2();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return isFlat() ? 2 : 3; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //vgpr_addr
return 8;
case 1: //vgpr_src
return 8;
case 2: //vgpr_dst or saddr
return isFlat() ? 8 : 8;
case 3: //vgpr_dst
assert(!isFlat());
return 8;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_FLAT__FLAT_ATOMIC_SMIN_X2
class Inst_FLAT__FLAT_ATOMIC_UMIN_X2 : public Inst_FLAT
{
public:
Inst_FLAT__FLAT_ATOMIC_UMIN_X2(InFmt_FLAT*);
~Inst_FLAT__FLAT_ATOMIC_UMIN_X2();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return isFlat() ? 2 : 3; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //vgpr_addr
return 8;
case 1: //vgpr_src
return 8;
case 2: //vgpr_dst or saddr
return isFlat() ? 8 : 8;
case 3: //vgpr_dst
assert(!isFlat());
return 8;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_FLAT__FLAT_ATOMIC_UMIN_X2
class Inst_FLAT__FLAT_ATOMIC_SMAX_X2 : public Inst_FLAT
{
public:
Inst_FLAT__FLAT_ATOMIC_SMAX_X2(InFmt_FLAT*);
~Inst_FLAT__FLAT_ATOMIC_SMAX_X2();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return isFlat() ? 2 : 3; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //vgpr_addr
return 8;
case 1: //vgpr_src
return 8;
case 2: //vgpr_dst or saddr
return isFlat() ? 8 : 8;
case 3: //vgpr_dst
assert(!isFlat());
return 8;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_FLAT__FLAT_ATOMIC_SMAX_X2
class Inst_FLAT__FLAT_ATOMIC_UMAX_X2 : public Inst_FLAT
{
public:
Inst_FLAT__FLAT_ATOMIC_UMAX_X2(InFmt_FLAT*);
~Inst_FLAT__FLAT_ATOMIC_UMAX_X2();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return isFlat() ? 2 : 3; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //vgpr_addr
return 8;
case 1: //vgpr_src
return 8;
case 2: //vgpr_dst or saddr
return isFlat() ? 8 : 8;
case 3: //vgpr_dst
assert(!isFlat());
return 8;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_FLAT__FLAT_ATOMIC_UMAX_X2
class Inst_FLAT__FLAT_ATOMIC_AND_X2 : public Inst_FLAT
{
public:
Inst_FLAT__FLAT_ATOMIC_AND_X2(InFmt_FLAT*);
~Inst_FLAT__FLAT_ATOMIC_AND_X2();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return isFlat() ? 2 : 3; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //vgpr_addr
return 8;
case 1: //vgpr_src
return 8;
case 2: //vgpr_dst or saddr
return isFlat() ? 8 : 8;
case 3: //vgpr_dst
assert(!isFlat());
return 8;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_FLAT__FLAT_ATOMIC_AND_X2
class Inst_FLAT__FLAT_ATOMIC_OR_X2 : public Inst_FLAT
{
public:
Inst_FLAT__FLAT_ATOMIC_OR_X2(InFmt_FLAT*);
~Inst_FLAT__FLAT_ATOMIC_OR_X2();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return isFlat() ? 2 : 3; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //vgpr_addr
return 8;
case 1: //vgpr_src
return 8;
case 2: //vgpr_dst or saddr
return isFlat() ? 8 : 8;
case 3: //vgpr_dst
assert(!isFlat());
return 8;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_FLAT__FLAT_ATOMIC_OR_X2
class Inst_FLAT__FLAT_ATOMIC_XOR_X2 : public Inst_FLAT
{
public:
Inst_FLAT__FLAT_ATOMIC_XOR_X2(InFmt_FLAT*);
~Inst_FLAT__FLAT_ATOMIC_XOR_X2();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return isFlat() ? 2 : 3; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //vgpr_addr
return 8;
case 1: //vgpr_src
return 8;
case 2: //vgpr_dst or saddr
return isFlat() ? 8 : 8;
case 3: //vgpr_dst
assert(!isFlat());
return 8;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_FLAT__FLAT_ATOMIC_XOR_X2
class Inst_FLAT__FLAT_ATOMIC_INC_X2 : public Inst_FLAT
{
public:
Inst_FLAT__FLAT_ATOMIC_INC_X2(InFmt_FLAT*);
~Inst_FLAT__FLAT_ATOMIC_INC_X2();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return isFlat() ? 2 : 3; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //vgpr_addr
return 8;
case 1: //vgpr_src
return 8;
case 2: //vgpr_dst or saddr
return isFlat() ? 8 : 8;
case 3: //vgpr_dst
assert(!isFlat());
return 8;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_FLAT__FLAT_ATOMIC_INC_X2
class Inst_FLAT__FLAT_ATOMIC_DEC_X2 : public Inst_FLAT
{
public:
Inst_FLAT__FLAT_ATOMIC_DEC_X2(InFmt_FLAT*);
~Inst_FLAT__FLAT_ATOMIC_DEC_X2();
int
getNumOperands() override
{
return numDstRegOperands() + numSrcRegOperands();
} // getNumOperands
int numDstRegOperands() override { return 1; }
int numSrcRegOperands() override { return isFlat() ? 2 : 3; }
int
getOperandSize(int opIdx) override
{
switch (opIdx) {
case 0: //vgpr_addr
return 8;
case 1: //vgpr_src
return 8;
case 2: //vgpr_dst or saddr
return isFlat() ? 8 : 8;
case 3: //vgpr_dst
assert(!isFlat());
return 8;
default:
fatal("op idx %i out of bounds\n", opIdx);
return -1;
}
} // getOperandSize
void execute(GPUDynInstPtr) override;
}; // Inst_FLAT__FLAT_ATOMIC_DEC_X2
} // namespace VegaISA
} // namespace gem5
#endif // __ARCH_VEGA_INSTS_INSTRUCTIONS_HH__