| //===- subzero/src/IceTypes.def - X-macros for ICE types --------*- 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 primitive types in the form of |
| // x-macros. |
| // |
| //===----------------------------------------------------------------------===// |
| |
| #ifndef SUBZERO_SRC_ICETYPES_DEF |
| #define SUBZERO_SRC_ICETYPES_DEF |
| |
| #define ICETYPE_TABLE \ |
| /* enum value, size, align, # elts, element type, printable string */ \ |
| /* (size and alignment in bytes) */ \ |
| X(IceType_void, 0, 0, 1, IceType_void, "void") \ |
| X(IceType_i1, 1, 1, 1, IceType_i1, "i1") \ |
| X(IceType_i8, 1, 1, 1, IceType_i8, "i8") \ |
| X(IceType_i16, 2, 1, 1, IceType_i16, "i16") \ |
| X(IceType_i32, 4, 1, 1, IceType_i32, "i32") \ |
| X(IceType_i64, 8, 1, 1, IceType_i64, "i64") \ |
| X(IceType_f32, 4, 4, 1, IceType_f32, "float") \ |
| X(IceType_f64, 8, 8, 1, IceType_f64, "double") \ |
| X(IceType_v4i1, 16, 1, 4, IceType_i1, "<4 x i1>") \ |
| X(IceType_v8i1, 16, 1, 8, IceType_i1, "<8 x i1>") \ |
| X(IceType_v16i1, 16, 1, 16, IceType_i1, "<16 x i1>") \ |
| X(IceType_v16i8, 16, 1, 16, IceType_i8, "<16 x i8>") \ |
| X(IceType_v8i16, 16, 2, 8, IceType_i16, "<8 x i16>") \ |
| X(IceType_v4i32, 16, 4, 4, IceType_i32, "<4 x i32>") \ |
| X(IceType_v4f32, 16, 4, 4, IceType_f32, "<4 x float>") \ |
| //#define X(tag, size, align, elts, elty, str) |
| |
| // Dictionary: |
| // V - Is vector type. |
| // I - Is integer value (scalar or vector). |
| // F - Is floating point value (scalar or vector). |
| // IA - Is integer arithmetic type |
| #define ICETYPE_PROPS_TABLE \ |
| /* Enum Value V I F IA */ \ |
| X(IceType_void, 0, 0, 0, 0) \ |
| X(IceType_i1, 0, 1, 0, 0) \ |
| X(IceType_i8, 0, 1, 0, 1) \ |
| X(IceType_i16, 0, 1, 0, 1) \ |
| X(IceType_i32, 0, 1, 0, 1) \ |
| X(IceType_i64, 0, 1, 0, 1) \ |
| X(IceType_f32, 0, 0, 1, 0) \ |
| X(IceType_f64, 0, 0, 1, 0) \ |
| X(IceType_v4i1, 1, 1, 0, 0) \ |
| X(IceType_v8i1, 1, 1, 0, 0) \ |
| X(IceType_v16i1, 1, 1, 0, 0) \ |
| X(IceType_v16i8, 1, 1, 0, 1) \ |
| X(IceType_v8i16, 1, 1, 0, 1) \ |
| X(IceType_v4i32, 1, 1, 0, 1) \ |
| X(IceType_v4f32, 1, 0, 1, 0) \ |
| //#define X(tag, IsVec, IsInt, IsFloat, IsIntArith) |
| |
| #endif // SUBZERO_SRC_ICETYPES_DEF |