blob: a9cadb293cacc3c44a4731d6e4db12896d7fa814 [file] [log] [blame]
Jim Stichnothf7c9a142014-04-29 10:52:43 -07001//===- subzero/src/IceInst.def - X-macros for ICE instructions -*- C++ -*-===//
2//
3// The Subzero Code Generator
4//
5// This file is distributed under the University of Illinois Open Source
6// License. See LICENSE.TXT for details.
7//
8//===----------------------------------------------------------------------===//
9//
10// This file defines properties of ICE instructions in the form of
11// x-macros.
12//
13//===----------------------------------------------------------------------===//
14
15#ifndef SUBZERO_SRC_ICEINST_DEF
16#define SUBZERO_SRC_ICEINST_DEF
17
18#define ICEINSTARITHMETIC_TABLE \
19 /* enum value, printable string, commutative */ \
20 X(Add, "add", 1) \
21 X(Fadd, "fadd", 0) \
22 X(Sub, "sub", 0) \
23 X(Fsub, "fsub", 0) \
24 X(Mul, "mul", 1) \
25 X(Fmul, "fmul", 0) \
26 X(Udiv, "udiv", 0) \
27 X(Sdiv, "sdiv", 0) \
28 X(Fdiv, "fdiv", 0) \
29 X(Urem, "urem", 0) \
30 X(Srem, "srem", 0) \
31 X(Frem, "frem", 0) \
32 X(Shl, "shl", 0) \
33 X(Lshr, "lshr", 0) \
34 X(Ashr, "ashr", 0) \
35 X(And, "and", 1) \
36 X(Or, "or", 1) \
37 X(Xor, "xor", 1)
38//#define X(tag, str, commutative)
39
40#define ICEINSTCAST_TABLE \
41 /* enum value, printable string */ \
42 X(Trunc, "trunc") \
43 X(Zext, "zext") \
44 X(Sext, "sext") \
45 X(Fptrunc, "fptrunc") \
46 X(Fpext, "fpext") \
47 X(Fptoui, "fptoui") \
48 X(Fptosi, "fptosi") \
49 X(Uitofp, "uitofp") \
50 X(Sitofp, "sitofp") \
51 X(Bitcast, "bitcast")
52//#define X(tag, str)
53
54#define ICEINSTFCMP_TABLE \
55 /* enum value, printable string */ \
56 X(False, "false") \
57 X(Oeq, "oeq") \
58 X(Ogt, "ogt") \
59 X(Oge, "oge") \
60 X(Olt, "olt") \
61 X(Ole, "ole") \
62 X(One, "one") \
63 X(Ord, "ord") \
64 X(Ueq, "ueq") \
65 X(Ugt, "ugt") \
66 X(Uge, "uge") \
67 X(Ult, "ult") \
68 X(Ule, "ule") \
69 X(Une, "une") \
70 X(Uno, "uno") \
71 X(True, "true")
72//#define X(tag, str)
73
74#define ICEINSTICMP_TABLE \
75 /* enum value, printable string */ \
76 X(Eq, "eq") \
77 X(Ne, "ne") \
78 X(Ugt, "ugt") \
79 X(Uge, "uge") \
80 X(Ult, "ult") \
81 X(Ule, "ule") \
82 X(Sgt, "sgt") \
83 X(Sge, "sge") \
84 X(Slt, "slt") \
85 X(Sle, "sle")
86//#define X(tag, str)
87
Jim Stichnothf7c9a142014-04-29 10:52:43 -070088#endif // SUBZERO_SRC_ICEINST_DEF