//===- subzero/crosstest/test_arith.def - macros for tests ----*- 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 macros for crosstesting arithmetic operations.
//
//===----------------------------------------------------------------------===//

#ifndef TEST_ARITH_DEF
#define TEST_ARITH_DEF

#define XSTR(s) STR(s)
#define STR(s) #s

#define UINTOP_TABLE                 \
  /* inst, operator, div, shift */   \
  X(Add,   +,        0,   0)         \
  X(Sub,   -,        0,   0)         \
  X(Mul,   *,        0,   0)         \
  X(Udiv,  /,        1,   0)         \
  X(Urem,  %,        1,   0)         \
  X(Shl,   <<,       0,   1)         \
  X(Lshr,  >>,       0,   1)         \
  X(And,   &,        0,   0)         \
  X(Or,    |,        0,   0)         \
  X(Xor,   ^,        0,   0)         \
//#define X(inst, op, isdiv, isshift)

#define SINTOP_TABLE                 \
  /* inst, operator, div, shift */   \
  X(Sdiv,  /,        1,   0)         \
  X(Srem,  %,        1,   0)         \
  X(Ashr,  >>,       0,   1)         \
//#define X(inst, op, isdiv, isshift)

#define COMMA ,
#define FPOP_TABLE           \
  /* inst, infix_op, func */ \
  X(Fadd,  +,              ) \
  X(Fsub,  -,              ) \
  X(Fmul,  *,              ) \
  X(Fdiv,  /,              ) \
  X(Frem,  COMMA,    myFrem) \
//#define X(inst, op, func)

// Note: The above definition of COMMA, plus the "func" argument to
// the X macro, are because C++ does not allow the % operator on
// floating-point primitive types.  To work around this, the expansion
// is "func(a infix_op b)", which becomes "myFrem(a , b)" for the Frem
// instruction and "(a + b)" for the Fadd instruction.  The two
// versions of myFrem() are defined in a separate bitcode file.

#define INT_VALUE_ARRAY                           \
{ 0x0,        0x1,        0x7ffffffe, 0x7fffffff, \
  0x80000000, 0x80000001, 0xfffffffe, 0xffffffff, \
  0x7e,       0x7f,       0x80,       0x81,       \
  0xfe,       0xff,       0x100,      0x101,      \
  0x7ffe,     0x7fff,     0x8000,     0x8001,     \
  0xfffe,     0xffff,     0x10000,    0x10001 }

#define FP_VALUE_ARRAY(NegInf, PosInf, NegNan, NaN)                 \
{ 0,                    1,                    1.4,                  \
  1.5,                  1.6,                  -1.4,                 \
  -1.5,                 -1.6,                 0x7e,                 \
  0x7f,                 0x80,                 0x81,                 \
  0xfe,                 0xff,                 0x7ffe,               \
  0x7fff,               0x8000,               0x8001,               \
  0xfffe,               0xffff,               0x7ffffffe,           \
  0x7fffffff,           0x80000000,           0x80000001,           \
  0xfffffffe,           0xffffffff,           0x100000000ll,        \
  0x100000001ll,        0x7ffffffffffffffell, 0x7fffffffffffffffll, \
  0x8000000000000000ll, 0x8000000000000001ll, 0xfffffffffffffffell, \
  0xffffffffffffffffll, NegInf,               PosInf,               \
  Nan,                  NegNan,               -0.0,                 \
  10.0,                 FLT_MIN,              FLT_MAX,              \
  DBL_MIN,              DBL_MAX }

#endif // TEST_ARITH_DEF
