|  | //===- subzero/src/IceTargetLoweringX8664.def - x86-64 X-macros -*- 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 certain patterns for lowering to x86-64 target | 
|  | // instructions, in the form of x-macros. | 
|  | // | 
|  | //===----------------------------------------------------------------------===// | 
|  |  | 
|  | #ifndef SUBZERO_SRC_ICETARGETLOWERINGX8664_DEF | 
|  | #define SUBZERO_SRC_ICETARGETLOWERINGX8664_DEF | 
|  |  | 
|  | #define FCMPX8664_TABLE                                              \ | 
|  | /*       <---- scalar comparison ---->  <- vector comparison -> */ \ | 
|  | /* val,  dflt, swap, C1,      C2,       swap,  predicate        */ \ | 
|  | X(False, 0,    0,    Br_None, Br_None,  0,     Cmpps_Invalid)      \ | 
|  | X(Oeq,   0,    0,    Br_ne,   Br_p,     0,     Cmpps_eq)           \ | 
|  | X(Ogt,   1,    0,    Br_a,    Br_None,  1,     Cmpps_lt)           \ | 
|  | X(Oge,   1,    0,    Br_ae,   Br_None,  1,     Cmpps_le)           \ | 
|  | X(Olt,   1,    1,    Br_a,    Br_None,  0,     Cmpps_lt)           \ | 
|  | X(Ole,   1,    1,    Br_ae,   Br_None,  0,     Cmpps_le)           \ | 
|  | X(One,   1,    0,    Br_ne,   Br_None,  0,     Cmpps_Invalid)      \ | 
|  | X(Ord,   1,    0,    Br_np,   Br_None,  0,     Cmpps_ord)          \ | 
|  | X(Ueq,   1,    0,    Br_e,    Br_None,  0,     Cmpps_Invalid)      \ | 
|  | X(Ugt,   1,    1,    Br_b,    Br_None,  0,     Cmpps_nle)          \ | 
|  | X(Uge,   1,    1,    Br_be,   Br_None,  0,     Cmpps_nlt)          \ | 
|  | X(Ult,   1,    0,    Br_b,    Br_None,  1,     Cmpps_nle)          \ | 
|  | X(Ule,   1,    0,    Br_be,   Br_None,  1,     Cmpps_nlt)          \ | 
|  | X(Une,   1,    0,    Br_ne,   Br_p,     0,     Cmpps_neq)          \ | 
|  | X(Uno,   1,    0,    Br_p,    Br_None,  0,     Cmpps_unord)        \ | 
|  | X(True,  1,    0,    Br_None, Br_None,  0,     Cmpps_Invalid)      \ | 
|  | //#define X(val, dflt, swapS, C1, C2, swapV, pred) | 
|  |  | 
|  | #define ICMPX8664_TABLE                     \ | 
|  | /* val, C_32,  C1_64,   C2_64,   C3_64 */ \ | 
|  | X(Eq,   Br_e,  Br_None, Br_ne,   Br_e)    \ | 
|  | X(Ne,   Br_ne, Br_ne,   Br_None, Br_ne)   \ | 
|  | X(Ugt,  Br_a,  Br_a,    Br_b,    Br_a)    \ | 
|  | X(Uge,  Br_ae, Br_a,    Br_b,    Br_ae)   \ | 
|  | X(Ult,  Br_b,  Br_b,    Br_a,    Br_b)    \ | 
|  | X(Ule,  Br_be, Br_b,    Br_a,    Br_be)   \ | 
|  | X(Sgt,  Br_g,  Br_g,    Br_l,    Br_a)    \ | 
|  | X(Sge,  Br_ge, Br_g,    Br_l,    Br_ae)   \ | 
|  | X(Slt,  Br_l,  Br_l,    Br_g,    Br_b)    \ | 
|  | X(Sle,  Br_le, Br_l,    Br_g,    Br_be)   \ | 
|  | //#define X(val, C_32, C1_64, C2_64, C3_64) | 
|  |  | 
|  | #endif // SUBZERO_SRC_ICETARGETLOWERINGX8664_DEF |