blob: a9cadb293cacc3c44a4731d6e4db12896d7fa814 [file] [log] [blame]
//===- subzero/src/IceInst.def - X-macros for ICE instructions -*- C++ -*-===//
//
// The Subzero Code Generator
//
// This file is distributed under the University of Illinois Open Source
// License. See LICENSE.TXT for details.
//
//===----------------------------------------------------------------------===//
//
// This file defines properties of ICE instructions in the form of
// x-macros.
//
//===----------------------------------------------------------------------===//
#ifndef SUBZERO_SRC_ICEINST_DEF
#define SUBZERO_SRC_ICEINST_DEF
#define ICEINSTARITHMETIC_TABLE \
/* enum value, printable string, commutative */ \
X(Add, "add", 1) \
X(Fadd, "fadd", 0) \
X(Sub, "sub", 0) \
X(Fsub, "fsub", 0) \
X(Mul, "mul", 1) \
X(Fmul, "fmul", 0) \
X(Udiv, "udiv", 0) \
X(Sdiv, "sdiv", 0) \
X(Fdiv, "fdiv", 0) \
X(Urem, "urem", 0) \
X(Srem, "srem", 0) \
X(Frem, "frem", 0) \
X(Shl, "shl", 0) \
X(Lshr, "lshr", 0) \
X(Ashr, "ashr", 0) \
X(And, "and", 1) \
X(Or, "or", 1) \
X(Xor, "xor", 1)
//#define X(tag, str, commutative)
#define ICEINSTCAST_TABLE \
/* enum value, printable string */ \
X(Trunc, "trunc") \
X(Zext, "zext") \
X(Sext, "sext") \
X(Fptrunc, "fptrunc") \
X(Fpext, "fpext") \
X(Fptoui, "fptoui") \
X(Fptosi, "fptosi") \
X(Uitofp, "uitofp") \
X(Sitofp, "sitofp") \
X(Bitcast, "bitcast")
//#define X(tag, str)
#define ICEINSTFCMP_TABLE \
/* enum value, printable string */ \
X(False, "false") \
X(Oeq, "oeq") \
X(Ogt, "ogt") \
X(Oge, "oge") \
X(Olt, "olt") \
X(Ole, "ole") \
X(One, "one") \
X(Ord, "ord") \
X(Ueq, "ueq") \
X(Ugt, "ugt") \
X(Uge, "uge") \
X(Ult, "ult") \
X(Ule, "ule") \
X(Une, "une") \
X(Uno, "uno") \
X(True, "true")
//#define X(tag, str)
#define ICEINSTICMP_TABLE \
/* enum value, printable string */ \
X(Eq, "eq") \
X(Ne, "ne") \
X(Ugt, "ugt") \
X(Uge, "uge") \
X(Ult, "ult") \
X(Ule, "ule") \
X(Sgt, "sgt") \
X(Sge, "sge") \
X(Slt, "slt") \
X(Sle, "sle")
//#define X(tag, str)
#endif // SUBZERO_SRC_ICEINST_DEF