174 lines
2.3 KiB
C++
174 lines
2.3 KiB
C++
#pragma once
|
|
|
|
#ifndef _TRITON_IR_ENUMS_H_
|
|
#define _TRITON_IR_ENUMS_H_
|
|
|
|
namespace triton{
|
|
namespace ir{
|
|
|
|
|
|
enum binary_op_t: unsigned int{
|
|
Add,
|
|
FAdd,
|
|
Sub,
|
|
FSub,
|
|
Mul,
|
|
FMul,
|
|
UDiv,
|
|
SDiv,
|
|
FDiv,
|
|
URem,
|
|
SRem,
|
|
FRem,
|
|
Shl,
|
|
LShr,
|
|
AShr,
|
|
And,
|
|
Or,
|
|
Xor
|
|
};
|
|
|
|
enum class atomic_rmw_op_t: unsigned int{
|
|
And,
|
|
Or,
|
|
Xor,
|
|
Add,
|
|
Max,
|
|
Min,
|
|
UMax,
|
|
UMin,
|
|
FAdd,
|
|
Xchg,
|
|
};
|
|
|
|
enum cast_op_t: unsigned int {
|
|
Trunc,
|
|
ZExt,
|
|
SExt,
|
|
FPTrunc,
|
|
FPExt,
|
|
UIToFP,
|
|
SIToFP,
|
|
FPToUI,
|
|
FPToSI,
|
|
PtrToInt,
|
|
IntToPtr,
|
|
BitCast,
|
|
AddrSpaceCast
|
|
};
|
|
|
|
enum cmp_pred_t: unsigned int {
|
|
FIRST_FCMP_PREDICATE,
|
|
FCMP_FALSE,
|
|
FCMP_OEQ,
|
|
FCMP_OGT,
|
|
FCMP_OGE,
|
|
FCMP_OLT,
|
|
FCMP_OLE,
|
|
FCMP_ONE,
|
|
FCMP_ORD,
|
|
FCMP_UNO,
|
|
FCMP_UEQ,
|
|
FCMP_UGT,
|
|
FCMP_UGE,
|
|
FCMP_ULT,
|
|
FCMP_ULE,
|
|
FCMP_UNE,
|
|
FCMP_TRUE,
|
|
LAST_FCMP_PREDICATE,
|
|
FIRST_ICMP_PREDICATE,
|
|
ICMP_EQ,
|
|
ICMP_NE,
|
|
ICMP_UGT,
|
|
ICMP_UGE,
|
|
ICMP_ULT,
|
|
ICMP_ULE,
|
|
ICMP_SGT,
|
|
ICMP_SGE,
|
|
ICMP_SLT,
|
|
ICMP_SLE,
|
|
LAST_ICMP_PREDICATE
|
|
};
|
|
|
|
enum value_id_t: unsigned {
|
|
/* ------------ *
|
|
INSTRUCTIONS
|
|
* ------------ */
|
|
INST_BEGIN,
|
|
// phi
|
|
INST_PHI,
|
|
// arithmetic
|
|
INST_BINOP,
|
|
INST_GETELEMENTPTR,
|
|
INST_SELECT,
|
|
INST_SQRT,
|
|
// cmp
|
|
INST_ICMP,
|
|
INST_FCMP,
|
|
// cast
|
|
INST_CAST_TRUNC,
|
|
INST_CAST_ZEXT,
|
|
INST_CAST_SEXT,
|
|
INST_CAST_FP_TRUNC,
|
|
INST_CAST_FP_EXT,
|
|
INST_CAST_UI_TO_FP,
|
|
INST_CAST_SI_TO_FP,
|
|
INST_CAST_FP_TO_UI,
|
|
INST_CAST_FP_TO_SI,
|
|
INST_CAST_PTR_TO_INT,
|
|
INST_CAST_INT_TO_PTR,
|
|
INST_CAST_BIT_CAST,
|
|
INST_CAST_ADDR_SPACE_CAST,
|
|
// terminators
|
|
INST_RETURN,
|
|
INST_COND_BRANCH,
|
|
INST_UNCOND_BRANCH,
|
|
// io
|
|
INST_UNMASKED_LOAD,
|
|
INST_MASKED_LOAD,
|
|
INST_MASKED_LOAD_ASYNC,
|
|
INST_UNMASKED_STORE,
|
|
INST_MASKED_STORE,
|
|
// retile
|
|
INST_RESHAPE,
|
|
INST_SPLAT,
|
|
INST_BROADCAST,
|
|
INST_DOWNCAST,
|
|
// builtin
|
|
INST_GET_PROGRAM_ID,
|
|
INST_GET_NUM_PROGRAMS,
|
|
// atomics
|
|
INST_ATOMIC_CAS,
|
|
INST_ATOMIC_EXCH,
|
|
INST_ATOMIC_RMW,
|
|
// math
|
|
INST_EXP,
|
|
INST_COS,
|
|
INST_SIN,
|
|
INST_LOG,
|
|
// array arithmetic
|
|
INST_TRANS,
|
|
INST_REDUCE,
|
|
INST_DOT,
|
|
// intrinsics
|
|
INST_COPY_TO_SHARED,
|
|
INST_COPY_FROM_SHARED,
|
|
INST_CVT_LAYOUT,
|
|
INST_CVT_SCANLINE,
|
|
INST_DECOALESCE,
|
|
INST_RECOALESCE,
|
|
INST_BARRIER,
|
|
INST_ASYNC_WAIT,
|
|
INST_MAKE_RANGE_DYN,
|
|
INST_MAKE_RANGE_STA,
|
|
INST_MAKE_RANGE,
|
|
INST_PREFETCH_S,
|
|
};
|
|
|
|
|
|
|
|
}
|
|
}
|
|
|
|
#endif
|