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