rpcsx/rpcsx-gpu/lib/gcn-shader/include/shader/dialect/sop1.hpp
2024-10-01 22:04:40 +03:00

109 lines
3 KiB
C++

#pragma once
namespace shader::ir::sop1 {
enum Op {
MOV_B32 = 3,
MOV_B64,
CMOV_B32,
CMOV_B64,
NOT_B32,
NOT_B64,
WQM_B32,
WQM_B64,
BREV_B32,
BREV_B64,
BCNT0_I32_B32,
BCNT0_I32_B64,
BCNT1_I32_B32,
BCNT1_I32_B64,
FF0_I32_B32,
FF0_I32_B64,
FF1_I32_B32,
FF1_I32_B64,
FLBIT_I32_B32,
FLBIT_I32_B64,
FLBIT_I32,
FLBIT_I32_I64,
SEXT_I32_I8,
SEXT_I32_I16,
BITSET0_B32,
BITSET0_B64,
BITSET1_B32,
BITSET1_B64,
GETPC_B64,
SETPC_B64,
SWAPPC_B64,
AND_SAVEEXEC_B64 = 36,
OR_SAVEEXEC_B64,
XOR_SAVEEXEC_B64,
ANDN2_SAVEEXEC_B64,
ORN2_SAVEEXEC_B64,
NAND_SAVEEXEC_B64,
NOR_SAVEEXEC_B64,
XNOR_SAVEEXEC_B64,
QUADMASK_B32,
QUADMASK_B64,
MOVRELS_B32,
MOVRELS_B64,
MOVRELD_B32,
MOVRELD_B64,
CBRANCH_JOIN,
ABS_I32 = 52,
MOV_FED_B32,
OpCount
};
inline const char *getInstructionName(unsigned id) {
switch (id) {
case MOV_B32: return "s_mov_b32";
case MOV_B64: return "s_mov_b64";
case CMOV_B32: return "s_cmov_b32";
case CMOV_B64: return "s_cmov_b64";
case NOT_B32: return "s_not_b32";
case NOT_B64: return "s_not_b64";
case WQM_B32: return "s_wqm_b32";
case WQM_B64: return "s_wqm_b64";
case BREV_B32: return "s_brev_b32";
case BREV_B64: return "s_brev_b64";
case BCNT0_I32_B32: return "s_bcnt0_i32_b32";
case BCNT0_I32_B64: return "s_bcnt0_i32_b64";
case BCNT1_I32_B32: return "s_bcnt1_i32_b32";
case BCNT1_I32_B64: return "s_bcnt1_i32_b64";
case FF0_I32_B32: return "s_ff0_i32_b32";
case FF0_I32_B64: return "s_ff0_i32_b64";
case FF1_I32_B32: return "s_ff1_i32_b32";
case FF1_I32_B64: return "s_ff1_i32_b64";
case FLBIT_I32_B32: return "s_flbit_i32_b32";
case FLBIT_I32_B64: return "s_flbit_i32_b64";
case FLBIT_I32: return "s_flbit_i32";
case FLBIT_I32_I64: return "s_flbit_i32_i64";
case SEXT_I32_I8: return "s_sext_i32_i8";
case SEXT_I32_I16: return "s_sext_i32_i16";
case BITSET0_B32: return "s_bitset0_b32";
case BITSET0_B64: return "s_bitset0_b64";
case BITSET1_B32: return "s_bitset1_b32";
case BITSET1_B64: return "s_bitset1_b64";
case GETPC_B64: return "s_getpc_b64";
case SETPC_B64: return "s_setpc_b64";
case SWAPPC_B64: return "s_swappc_b64";
case AND_SAVEEXEC_B64: return "s_and_saveexec_b64";
case OR_SAVEEXEC_B64: return "s_or_saveexec_b64";
case XOR_SAVEEXEC_B64: return "s_xor_saveexec_b64";
case ANDN2_SAVEEXEC_B64: return "s_andn2_saveexec_b64";
case ORN2_SAVEEXEC_B64: return "s_orn2_saveexec_b64";
case NAND_SAVEEXEC_B64: return "s_nand_saveexec_b64";
case NOR_SAVEEXEC_B64: return "s_nor_saveexec_b64";
case XNOR_SAVEEXEC_B64: return "s_xnor_saveexec_b64";
case QUADMASK_B32: return "s_quadmask_b32";
case QUADMASK_B64: return "s_quadmask_b64";
case MOVRELS_B32: return "s_movrels_b32";
case MOVRELS_B64: return "s_movrels_b64";
case MOVRELD_B32: return "s_movreld_b32";
case MOVRELD_B64: return "s_movreld_b64";
case CBRANCH_JOIN: return "s_cbranch_join";
case ABS_I32: return "s_abs_i32";
case MOV_FED_B32: return "s_mov_fed_b32";
}
return nullptr;
}
}