Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(168)

Side by Side Diff: src/IceTargetLoweringX8632.def

Issue 413053002: Lower the fcmp instruction for <4 x float> operands. (Closed) Base URL: https://gerrit.chromium.org/gerrit/p/native_client/pnacl-subzero.git@master
Patch Set: Replace uses of std::endl with newlines. Created 6 years, 5 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « src/IceTargetLoweringX8632.cpp ('k') | tests_lit/llvm2ice_tests/vector-fcmp.ll » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 //===- subzero/src/IceTargetLoweringX8632.def - x86-32 X-macros -*- C++ -*-===// 1 //===- subzero/src/IceTargetLoweringX8632.def - x86-32 X-macros -*- C++ -*-===//
2 // 2 //
3 // The Subzero Code Generator 3 // The Subzero Code Generator
4 // 4 //
5 // This file is distributed under the University of Illinois Open Source 5 // This file is distributed under the University of Illinois Open Source
6 // License. See LICENSE.TXT for details. 6 // License. See LICENSE.TXT for details.
7 // 7 //
8 //===----------------------------------------------------------------------===// 8 //===----------------------------------------------------------------------===//
9 // 9 //
10 // This file defines certain patterns for lowering to x86-32 target 10 // This file defines certain patterns for lowering to x86-32 target
11 // instructions, in the form of x-macros. 11 // instructions, in the form of x-macros.
12 // 12 //
13 //===----------------------------------------------------------------------===// 13 //===----------------------------------------------------------------------===//
14 14
15 #ifndef SUBZERO_SRC_ICETARGETLOWERINGX8632_DEF 15 #ifndef SUBZERO_SRC_ICETARGETLOWERINGX8632_DEF
16 #define SUBZERO_SRC_ICETARGETLOWERINGX8632_DEF 16 #define SUBZERO_SRC_ICETARGETLOWERINGX8632_DEF
17 17
18 #define FCMPX8632_TABLE \ 18 #define SCALAR_FCMPX8632_TABLE \
19 /* val, dflt, swap, C1, C2 */ \ 19 /* val, dflt, swap, C1, C2 */ \
20 X(False, 0, 0, Br_None, Br_None) \ 20 X(False, 0, 0, Br_None, Br_None) \
21 X(Oeq, 0, 0, Br_ne, Br_p) \ 21 X(Oeq, 0, 0, Br_ne, Br_p) \
22 X(Ogt, 1, 0, Br_a, Br_None) \ 22 X(Ogt, 1, 0, Br_a, Br_None) \
23 X(Oge, 1, 0, Br_ae, Br_None) \ 23 X(Oge, 1, 0, Br_ae, Br_None) \
24 X(Olt, 1, 1, Br_a, Br_None) \ 24 X(Olt, 1, 1, Br_a, Br_None) \
25 X(Ole, 1, 1, Br_ae, Br_None) \ 25 X(Ole, 1, 1, Br_ae, Br_None) \
26 X(One, 1, 0, Br_ne, Br_None) \ 26 X(One, 1, 0, Br_ne, Br_None) \
27 X(Ord, 1, 0, Br_np, Br_None) \ 27 X(Ord, 1, 0, Br_np, Br_None) \
28 X(Ueq, 1, 0, Br_e, Br_None) \ 28 X(Ueq, 1, 0, Br_e, Br_None) \
29 X(Ugt, 1, 1, Br_b, Br_None) \ 29 X(Ugt, 1, 1, Br_b, Br_None) \
30 X(Uge, 1, 1, Br_be, Br_None) \ 30 X(Uge, 1, 1, Br_be, Br_None) \
31 X(Ult, 1, 0, Br_b, Br_None) \ 31 X(Ult, 1, 0, Br_b, Br_None) \
32 X(Ule, 1, 0, Br_be, Br_None) \ 32 X(Ule, 1, 0, Br_be, Br_None) \
33 X(Une, 1, 0, Br_ne, Br_p) \ 33 X(Une, 1, 0, Br_ne, Br_p) \
34 X(Uno, 1, 0, Br_p, Br_None) \ 34 X(Uno, 1, 0, Br_p, Br_None) \
35 X(True, 1, 0, Br_None, Br_None) \ 35 X(True, 1, 0, Br_None, Br_None) \
36 //#define X(val, dflt, swap, C1, C2) 36 //#define X(val, dflt, swap, C1, C2)
37 37
38 #define VECTOR_FCMPX8632_TABLE \
Jim Stichnoth 2014/07/24 16:16:19 Can you just add swap and cmpps_predicate columns
wala 2014/07/24 17:13:24 Done. Also used a single table for IceTargetLower
39 /* val, swap, cmpps predicate */ \
40 X(False, 0, Cmpps_Invalid) \
41 X(Oeq, 0, Cmpps_eq) \
42 X(Ogt, 1, Cmpps_lt) \
43 X(Oge, 1, Cmpps_le) \
44 X(Olt, 0, Cmpps_lt) \
45 X(Ole, 0, Cmpps_le) \
46 X(One, 0, Cmpps_Invalid) \
47 X(Ord, 0, Cmpps_ord) \
48 X(Ueq, 0, Cmpps_Invalid) \
49 X(Ugt, 0, Cmpps_nle) \
50 X(Uge, 0, Cmpps_nlt) \
51 X(Ult, 1, Cmpps_nle) \
52 X(Ule, 1, Cmpps_nlt) \
53 X(Une, 0, Cmpps_neq) \
54 X(Uno, 0, Cmpps_unord) \
55 X(True, 0, Cmpps_Invalid) \
56 //#define X(val, swap, pred)
57
38 #define ICMPX8632_TABLE \ 58 #define ICMPX8632_TABLE \
39 /* val, C_32, C1_64, C2_64, C3_64 */ \ 59 /* val, C_32, C1_64, C2_64, C3_64 */ \
40 X(Eq, Br_e, Br_None, Br_None, Br_None) \ 60 X(Eq, Br_e, Br_None, Br_None, Br_None) \
41 X(Ne, Br_ne, Br_None, Br_None, Br_None) \ 61 X(Ne, Br_ne, Br_None, Br_None, Br_None) \
42 X(Ugt, Br_a, Br_a, Br_b, Br_a) \ 62 X(Ugt, Br_a, Br_a, Br_b, Br_a) \
43 X(Uge, Br_ae, Br_a, Br_b, Br_ae) \ 63 X(Uge, Br_ae, Br_a, Br_b, Br_ae) \
44 X(Ult, Br_b, Br_b, Br_a, Br_b) \ 64 X(Ult, Br_b, Br_b, Br_a, Br_b) \
45 X(Ule, Br_be, Br_b, Br_a, Br_be) \ 65 X(Ule, Br_be, Br_b, Br_a, Br_be) \
46 X(Sgt, Br_g, Br_g, Br_l, Br_a) \ 66 X(Sgt, Br_g, Br_g, Br_l, Br_a) \
47 X(Sge, Br_ge, Br_g, Br_l, Br_ae) \ 67 X(Sge, Br_ge, Br_g, Br_l, Br_ae) \
48 X(Slt, Br_l, Br_l, Br_g, Br_b) \ 68 X(Slt, Br_l, Br_l, Br_g, Br_b) \
49 X(Sle, Br_le, Br_l, Br_g, Br_be) \ 69 X(Sle, Br_le, Br_l, Br_g, Br_be) \
50 //#define X(val, C_32, C1_64, C2_64, C3_64) 70 //#define X(val, C_32, C1_64, C2_64, C3_64)
51 71
52 #endif // SUBZERO_SRC_ICETARGETLOWERINGX8632_DEF 72 #endif // SUBZERO_SRC_ICETARGETLOWERINGX8632_DEF
OLDNEW
« no previous file with comments | « src/IceTargetLoweringX8632.cpp ('k') | tests_lit/llvm2ice_tests/vector-fcmp.ll » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698