xref: /aosp_15_r20/external/swiftshader/third_party/subzero/src/IceTargetLoweringX8632.def (revision 03ce13f70fcc45d86ee91b7ee4cab1936a95046e)
1*03ce13f7SAndroid Build Coastguard Worker//===- subzero/src/IceTargetLoweringX8632.def - x86-32 X-macros -*- C++ -*-===//
2*03ce13f7SAndroid Build Coastguard Worker//
3*03ce13f7SAndroid Build Coastguard Worker//                        The Subzero Code Generator
4*03ce13f7SAndroid Build Coastguard Worker//
5*03ce13f7SAndroid Build Coastguard Worker// This file is distributed under the University of Illinois Open Source
6*03ce13f7SAndroid Build Coastguard Worker// License. See LICENSE.TXT for details.
7*03ce13f7SAndroid Build Coastguard Worker//
8*03ce13f7SAndroid Build Coastguard Worker//===----------------------------------------------------------------------===//
9*03ce13f7SAndroid Build Coastguard Worker//
10*03ce13f7SAndroid Build Coastguard Worker// This file defines certain patterns for lowering to x86-32 target
11*03ce13f7SAndroid Build Coastguard Worker// instructions, in the form of x-macros.
12*03ce13f7SAndroid Build Coastguard Worker//
13*03ce13f7SAndroid Build Coastguard Worker//===----------------------------------------------------------------------===//
14*03ce13f7SAndroid Build Coastguard Worker
15*03ce13f7SAndroid Build Coastguard Worker#ifndef SUBZERO_SRC_ICETARGETLOWERINGX8632_DEF
16*03ce13f7SAndroid Build Coastguard Worker#define SUBZERO_SRC_ICETARGETLOWERINGX8632_DEF
17*03ce13f7SAndroid Build Coastguard Worker
18*03ce13f7SAndroid Build Coastguard Worker#define FCMPX8632_TABLE                                              \
19*03ce13f7SAndroid Build Coastguard Worker  /*       <---- scalar comparison ---->  <- vector comparison -> */ \
20*03ce13f7SAndroid Build Coastguard Worker  /* val,  dflt, swap, C1,      C2,       swap,  predicate        */ \
21*03ce13f7SAndroid Build Coastguard Worker  X(False, 0,    0,    Br_None, Br_None,  0,     Cmpps_Invalid)      \
22*03ce13f7SAndroid Build Coastguard Worker  X(Oeq,   0,    0,    Br_ne,   Br_p,     0,     Cmpps_eq)           \
23*03ce13f7SAndroid Build Coastguard Worker  X(Ogt,   1,    0,    Br_a,    Br_None,  1,     Cmpps_lt)           \
24*03ce13f7SAndroid Build Coastguard Worker  X(Oge,   1,    0,    Br_ae,   Br_None,  1,     Cmpps_le)           \
25*03ce13f7SAndroid Build Coastguard Worker  X(Olt,   1,    1,    Br_a,    Br_None,  0,     Cmpps_lt)           \
26*03ce13f7SAndroid Build Coastguard Worker  X(Ole,   1,    1,    Br_ae,   Br_None,  0,     Cmpps_le)           \
27*03ce13f7SAndroid Build Coastguard Worker  X(One,   1,    0,    Br_ne,   Br_None,  0,     Cmpps_Invalid)      \
28*03ce13f7SAndroid Build Coastguard Worker  X(Ord,   1,    0,    Br_np,   Br_None,  0,     Cmpps_ord)          \
29*03ce13f7SAndroid Build Coastguard Worker  X(Ueq,   1,    0,    Br_e,    Br_None,  0,     Cmpps_Invalid)      \
30*03ce13f7SAndroid Build Coastguard Worker  X(Ugt,   1,    1,    Br_b,    Br_None,  0,     Cmpps_nle)          \
31*03ce13f7SAndroid Build Coastguard Worker  X(Uge,   1,    1,    Br_be,   Br_None,  0,     Cmpps_nlt)          \
32*03ce13f7SAndroid Build Coastguard Worker  X(Ult,   1,    0,    Br_b,    Br_None,  1,     Cmpps_nle)          \
33*03ce13f7SAndroid Build Coastguard Worker  X(Ule,   1,    0,    Br_be,   Br_None,  1,     Cmpps_nlt)          \
34*03ce13f7SAndroid Build Coastguard Worker  X(Une,   1,    0,    Br_ne,   Br_p,     0,     Cmpps_neq)          \
35*03ce13f7SAndroid Build Coastguard Worker  X(Uno,   1,    0,    Br_p,    Br_None,  0,     Cmpps_unord)        \
36*03ce13f7SAndroid Build Coastguard Worker  X(True,  1,    0,    Br_None, Br_None,  0,     Cmpps_Invalid)      \
37*03ce13f7SAndroid Build Coastguard Worker//#define X(val, dflt, swapS, C1, C2, swapV, pred)
38*03ce13f7SAndroid Build Coastguard Worker
39*03ce13f7SAndroid Build Coastguard Worker#define ICMPX8632_TABLE                     \
40*03ce13f7SAndroid Build Coastguard Worker  /* val, C_32,  C1_64,   C2_64,   C3_64 */ \
41*03ce13f7SAndroid Build Coastguard Worker  X(Eq,   Br_e,  Br_None, Br_ne,   Br_e)    \
42*03ce13f7SAndroid Build Coastguard Worker  X(Ne,   Br_ne, Br_ne,   Br_None, Br_ne)   \
43*03ce13f7SAndroid Build Coastguard Worker  X(Ugt,  Br_a,  Br_a,    Br_b,    Br_a)    \
44*03ce13f7SAndroid Build Coastguard Worker  X(Uge,  Br_ae, Br_a,    Br_b,    Br_ae)   \
45*03ce13f7SAndroid Build Coastguard Worker  X(Ult,  Br_b,  Br_b,    Br_a,    Br_b)    \
46*03ce13f7SAndroid Build Coastguard Worker  X(Ule,  Br_be, Br_b,    Br_a,    Br_be)   \
47*03ce13f7SAndroid Build Coastguard Worker  X(Sgt,  Br_g,  Br_g,    Br_l,    Br_a)    \
48*03ce13f7SAndroid Build Coastguard Worker  X(Sge,  Br_ge, Br_g,    Br_l,    Br_ae)   \
49*03ce13f7SAndroid Build Coastguard Worker  X(Slt,  Br_l,  Br_l,    Br_g,    Br_b)    \
50*03ce13f7SAndroid Build Coastguard Worker  X(Sle,  Br_le, Br_l,    Br_g,    Br_be)   \
51*03ce13f7SAndroid Build Coastguard Worker//#define X(val, C_32, C1_64, C2_64, C3_64)
52*03ce13f7SAndroid Build Coastguard Worker
53*03ce13f7SAndroid Build Coastguard Worker#endif // SUBZERO_SRC_ICETARGETLOWERINGX8632_DEF
54