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

Unified Diff: crosstest/test_arith.def

Issue 265703002: Add Om1 lowering with no optimizations (Closed) Base URL: https://gerrit.chromium.org/gerrit/p/native_client/pnacl-subzero.git@master
Patch Set: Merge changed from Karl's committed CL Created 6 years, 7 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 side-by-side diff with in-line comments
Download patch
« no previous file with comments | « crosstest/test_arith.cpp ('k') | crosstest/test_arith_frem.ll » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: crosstest/test_arith.def
diff --git a/crosstest/test_arith.def b/crosstest/test_arith.def
new file mode 100644
index 0000000000000000000000000000000000000000..4cf4596d0ef1bcdf66e3bcc6838e9e75086288d2
--- /dev/null
+++ b/crosstest/test_arith.def
@@ -0,0 +1,45 @@
+#ifndef TEST_ARITH_DEF
+#define TEST_ARITH_DEF
+
+#define XSTR(s) STR(s)
+#define STR(s) #s
+
+#define UINTOP_TABLE \
+ /* inst, operator, div */ \
+ X(Add, +, 0 ) \
+ X(Sub, -, 0 ) \
+ X(Mul, *, 0 ) \
+ X(Udiv, /, 1 ) \
+ X(Urem, %, 1 ) \
+ X(Shl, <<, 0) \
+ X(Lshr, >>, 0) \
+ X(And, &, 0 ) \
+ X(Or, |, 0 ) \
+ X(Xor, ^, 0 ) \
+//#define X(inst, op, isdiv)
+
+#define SINTOP_TABLE \
+ /* inst, operator, div */ \
+ X(Sdiv, /, 1) \
+ X(Srem, %, 1) \
+ X(Ashr, >>, 0) \
+//#define X(inst, op, isdiv)
+
+#define COMMA ,
+#define FPOP_TABLE \
+ /* inst, infix_op, func */ \
+ X(Fadd, +, ) \
+ X(Fsub, -, ) \
+ X(Fmul, *, ) \
+ X(Fdiv, /, ) \
+ X(Frem, COMMA, myFrem) \
+//#define X(inst, op, func)
+
+// Note: The above definition of COMMA, plus the "func" argument to
+// the X macro, are because C++ does not allow the % operator on
+// floating-point primitive types. To work around this, the expansion
+// is "func(a infix_op b)", which becomes "myFrem(a , b)" for the Frem
+// instruction and "(a + b)" for the Fadd instruction. The two
+// versions of myFrem() are defined in a separate bitcode file.
+
+#endif // TEST_ARITH_DEF
« no previous file with comments | « crosstest/test_arith.cpp ('k') | crosstest/test_arith_frem.ll » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698