//      OPCODE          negated   swaped    float  arity, flags

OPCODE(BADOP,           BADOP,    BADOP,    BADOP, 0, OPF_NONE)

/* Entry */
OPCODE(ENTRY,           BADOP,    BADOP,    BADOP, 0, OPF_NONE)

/* Terminator */
OPCODE(RET,             BADOP,    BADOP,    BADOP, 1, OPF_NONE)
OPCODE(BR,              BADOP,    BADOP,    BADOP, 0, OPF_NONE)
OPCODE(CBR,             BADOP,    BADOP,    BADOP, 1, OPF_NONE)
OPCODE(SWITCH,          BADOP,    BADOP,    BADOP, 1, OPF_NONE)
OPCODE(COMPUTEDGOTO,    BADOP,    BADOP,    BADOP, 1, OPF_NONE)
OPCODE_RANGE(TERMINATOR, RET, COMPUTEDGOTO)

/* Binary */
OPCODE(ADD,             BADOP,    BADOP,    FADD,  2, OPF_TARGET)
OPCODE(SUB,             BADOP,    BADOP,    FSUB,  2, OPF_TARGET)
OPCODE(MUL,             BADOP,    BADOP,    FMUL,  2, OPF_TARGET)
OPCODE(DIVU,            BADOP,    BADOP,    FDIV,  2, OPF_TARGET)
OPCODE(DIVS,            BADOP,    BADOP,    FDIV,  2, OPF_TARGET)
OPCODE(MODU,            BADOP,    BADOP,    BADOP, 2, OPF_TARGET)
OPCODE(MODS,            BADOP,    BADOP,    BADOP, 2, OPF_TARGET)
OPCODE(SHL,             BADOP,    BADOP,    BADOP, 2, OPF_TARGET)
OPCODE(LSR,             BADOP,    BADOP,    BADOP, 2, OPF_TARGET)
OPCODE(ASR,             BADOP,    BADOP,    BADOP, 2, OPF_TARGET)

/* Floating-point binops */
OPCODE(FADD,            BADOP,    BADOP,    BADOP, 2, OPF_TARGET)
OPCODE(FSUB,            BADOP,    BADOP,    BADOP, 2, OPF_TARGET)
OPCODE(FMUL,            BADOP,    BADOP,    BADOP, 2, OPF_TARGET)
OPCODE(FDIV,            BADOP,    BADOP,    BADOP, 2, OPF_TARGET)

/* Logical */
OPCODE(AND_BOOL,        BADOP,    BADOP,    BADOP, 2, OPF_TARGET)
OPCODE(OR_BOOL,         BADOP,    BADOP,    BADOP, 2, OPF_TARGET)
OPCODE(AND,             BADOP,    BADOP,    BADOP, 2, OPF_TARGET)
OPCODE(OR,              BADOP,    BADOP,    BADOP, 2, OPF_TARGET)
OPCODE(XOR,             BADOP,    BADOP,    BADOP, 2, OPF_TARGET)
OPCODE_RANGE(BINARY, ADD, XOR)

/* floating-point comparison */
OPCODE(FCMP_ORD,        FCMP_UNO, FCMP_ORD, BADOP, 2, OPF_TARGET)
OPCODE(FCMP_OEQ,        FCMP_UNE, FCMP_OEQ, BADOP, 2, OPF_TARGET)
OPCODE(FCMP_ONE,        FCMP_UEQ, FCMP_ONE, BADOP, 2, OPF_TARGET)
OPCODE(FCMP_UEQ,        FCMP_ONE, FCMP_UEQ, BADOP, 2, OPF_TARGET)
OPCODE(FCMP_UNE,        FCMP_OEQ, FCMP_UNE, BADOP, 2, OPF_TARGET)
OPCODE(FCMP_OLT,        FCMP_UGE, FCMP_OGT, BADOP, 2, OPF_TARGET)
OPCODE(FCMP_OLE,        FCMP_UGT, FCMP_OGE, BADOP, 2, OPF_TARGET)
OPCODE(FCMP_OGE,        FCMP_ULT, FCMP_OLE, BADOP, 2, OPF_TARGET)
OPCODE(FCMP_OGT,        FCMP_ULE, FCMP_OLT, BADOP, 2, OPF_TARGET)
OPCODE(FCMP_ULT,        FCMP_OGE, FCMP_UGT, BADOP, 2, OPF_TARGET)
OPCODE(FCMP_ULE,        FCMP_OGT, FCMP_UGE, BADOP, 2, OPF_TARGET)
OPCODE(FCMP_UGE,        FCMP_OLT, FCMP_ULE, BADOP, 2, OPF_TARGET)
OPCODE(FCMP_UGT,        FCMP_OLE, FCMP_ULT, BADOP, 2, OPF_TARGET)
OPCODE(FCMP_UNO,        FCMP_ORD, FCMP_UNO, BADOP, 2, OPF_TARGET)
OPCODE_RANGE(FPCMP, FCMP_ORD, FCMP_UNO)

/* Binary comparison */
OPCODE(SET_EQ,          SET_NE,   SET_EQ,   FCMP_OEQ, 2, OPF_TARGET)
OPCODE(SET_LT,          SET_GE,   SET_GT,   FCMP_OLT, 2, OPF_TARGET)
OPCODE(SET_LE,          SET_GT,   SET_GE,   FCMP_OLE, 2, OPF_TARGET)
OPCODE(SET_GE,          SET_LT,   SET_LE,   FCMP_OGE, 2, OPF_TARGET)
OPCODE(SET_GT,          SET_LE,   SET_LT,   FCMP_OGT, 2, OPF_TARGET)
OPCODE(SET_B,           SET_AE,   SET_A,    FCMP_OLT, 2, OPF_TARGET)
OPCODE(SET_BE,          SET_A,    SET_AE,   FCMP_OLE, 2, OPF_TARGET)
OPCODE(SET_AE,          SET_B,    SET_BE,   FCMP_OGE, 2, OPF_TARGET)
OPCODE(SET_A,           SET_BE,   SET_B,    FCMP_OGT, 2, OPF_TARGET)
OPCODE(SET_NE,          SET_EQ,   SET_NE,   FCMP_UNE, 2, OPF_TARGET)
OPCODE_RANGE(BINCMP, SET_EQ, SET_NE)

/* Uni */
OPCODE(NOT,             BADOP,    BADOP,    BADOP, 1, OPF_TARGET)
OPCODE(NEG,             BADOP,    BADOP,    FNEG,  1, OPF_TARGET)
OPCODE(FNEG,            BADOP,    BADOP,    BADOP, 1, OPF_TARGET)
OPCODE(TRUNC,           BADOP,    BADOP,    BADOP, 1, OPF_TARGET)
OPCODE(ZEXT,            BADOP,    BADOP,    BADOP, 1, OPF_TARGET)
OPCODE(SEXT,            BADOP,    BADOP,    BADOP, 1, OPF_TARGET)
OPCODE(FCVTU,           BADOP,    BADOP,    BADOP, 1, OPF_TARGET)
OPCODE(FCVTS,           BADOP,    BADOP,    BADOP, 1, OPF_TARGET)
OPCODE(UCVTF,           BADOP,    BADOP,    BADOP, 1, OPF_TARGET)
OPCODE(SCVTF,           BADOP,    BADOP,    BADOP, 1, OPF_TARGET)
OPCODE(FCVTF,           BADOP,    BADOP,    BADOP, 1, OPF_TARGET)
OPCODE(UTPTR,           BADOP,    BADOP,    BADOP, 1, OPF_TARGET)
OPCODE(PTRTU,           BADOP,    BADOP,    BADOP, 1, OPF_TARGET)
OPCODE(PTRCAST,         BADOP,    BADOP,    BADOP, 1, OPF_TARGET)
OPCODE_RANGE(UNOP, NOT, PTRCAST)
OPCODE(SYMADDR,         BADOP,    BADOP,    BADOP, 1, OPF_TARGET)
OPCODE(SLICE,           BADOP,    BADOP,    BADOP, 1, OPF_TARGET)

/* Select - three input values */
OPCODE(SEL,             BADOP,    BADOP,    BADOP, 3, OPF_TARGET)

/* Memory */
OPCODE(LOAD,            BADOP,    BADOP,    BADOP, 1, OPF_TARGET)
OPCODE(STORE,           BADOP,    BADOP,    BADOP, 1, OPF_NONE)

/* Other */
OPCODE(PHISOURCE,       BADOP,    BADOP,    BADOP, 1, OPF_TARGET)
OPCODE(PHI,             BADOP,    BADOP,    BADOP, 0, OPF_TARGET)
OPCODE(SETVAL,          BADOP,    BADOP,    BADOP, 0, OPF_TARGET)
OPCODE(SETFVAL,         BADOP,    BADOP,    BADOP, 0, OPF_TARGET)
OPCODE(CALL,            BADOP,    BADOP,    BADOP, 1, OPF_TARGET)
OPCODE(INLINED_CALL,    BADOP,    BADOP,    BADOP, 0, OPF_NONE)
OPCODE(NOP,             BADOP,    BADOP,    BADOP, 0, OPF_NONE)
OPCODE(DEATHNOTE,       BADOP,    BADOP,    BADOP, 0, OPF_NONE)
OPCODE(ASM,             BADOP,    BADOP,    BADOP, 0, OPF_NONE)

/* Sparse tagging (line numbers, context, whatever) */
OPCODE(CONTEXT,         BADOP,    BADOP,    BADOP, 0, OPF_NONE)
OPCODE(RANGE,           BADOP,    BADOP,    BADOP, 3, OPF_NONE)

/* Needed to translate SSA back to normal form */
OPCODE(COPY,            BADOP,    BADOP,    BADOP, 1, OPF_TARGET)
