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

Side by Side Diff: crosstest/test_arith.cpp

Issue 2013863002: Subzero: Crosstest test_arith properly tests i8/i16. (Closed) Base URL: https://chromium.googlesource.com/native_client/pnacl-subzero.git@master
Patch Set: Use a python script to auto-generate .ll tests Created 4 years, 6 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 | « crosstest/crosstest.cfg ('k') | crosstest/test_arith_ll.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/crosstest/test_arith.cpp - Arithmetic operator tests -------===// 1 //===- subzero/crosstest/test_arith.cpp - Arithmetic operator tests -------===//
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 // Implementation for crosstesting arithmetic operations. 10 // Implementation for crosstesting arithmetic operations.
11 // 11 //
12 //===----------------------------------------------------------------------===// 12 //===----------------------------------------------------------------------===//
13 13
14 // This aims to test all the arithmetic bitcode instructions across 14 // This aims to test all the arithmetic bitcode instructions across
15 // all PNaCl primitive data types. 15 // all PNaCl primitive data types.
16 16
17 #include <stdint.h> 17 #include <stdint.h>
18 18
19 #include "test_arith.h" 19 #include "test_arith.h"
20 #include "xdefs.h" 20 #include "xdefs.h"
21 21
22 #if 0
23 // The following is commented out, and instead, a python script auto-generates a
24 // .ll file with the equivalent functionality.
25
22 #define X(inst, op, isdiv, isshift) \ 26 #define X(inst, op, isdiv, isshift) \
23 bool test##inst(bool a, bool b) { return a op b; } \ 27 bool test##inst(bool a, bool b) { return a op b; } \
24 uint8_t test##inst(uint8_t a, uint8_t b) { return a op b; } \ 28 uint8_t test##inst(uint8_t a, uint8_t b) { return a op b; } \
25 uint16_t test##inst(uint16_t a, uint16_t b) { return a op b; } \ 29 uint16_t test##inst(uint16_t a, uint16_t b) { return a op b; } \
26 uint32_t test##inst(uint32_t a, uint32_t b) { return a op b; } \ 30 uint32_t test##inst(uint32_t a, uint32_t b) { return a op b; } \
27 uint64 test##inst(uint64 a, uint64 b) { return a op b; } \ 31 uint64 test##inst(uint64 a, uint64 b) { return a op b; } \
28 v4ui32 test##inst(v4ui32 a, v4ui32 b) { return a op b; } \ 32 v4ui32 test##inst(v4ui32 a, v4ui32 b) { return a op b; } \
29 v8ui16 test##inst(v8ui16 a, v8ui16 b) { return a op b; } \ 33 v8ui16 test##inst(v8ui16 a, v8ui16 b) { return a op b; } \
30 v16ui8 test##inst(v16ui8 a, v16ui8 b) { return a op b; } 34 v16ui8 test##inst(v16ui8 a, v16ui8 b) { return a op b; }
31 UINTOP_TABLE 35 UINTOP_TABLE
(...skipping 11 matching lines...) Expand all
43 SINTOP_TABLE 47 SINTOP_TABLE
44 #undef X 48 #undef X
45 49
46 #define X(inst, op, func) \ 50 #define X(inst, op, func) \
47 float test##inst(float a, float b) { return func(a op b); } \ 51 float test##inst(float a, float b) { return func(a op b); } \
48 double test##inst(double a, double b) { return func(a op b); } \ 52 double test##inst(double a, double b) { return func(a op b); } \
49 v4f32 test##inst(v4f32 a, v4f32 b) { return func(a op b); } 53 v4f32 test##inst(v4f32 a, v4f32 b) { return func(a op b); }
50 FPOP_TABLE 54 FPOP_TABLE
51 #undef X 55 #undef X
52 56
57 #endif // 0
58
53 #define X(mult_by) \ 59 #define X(mult_by) \
54 bool testMultiplyBy##mult_by(bool a, bool /*unused*/) { \ 60 bool testMultiplyBy##mult_by(bool a, bool /*unused*/) { \
55 return a * (mult_by); \ 61 return a * (mult_by); \
56 } \ 62 } \
57 bool testMultiplyByNeg##mult_by(bool a, bool /*unused*/) { \ 63 bool testMultiplyByNeg##mult_by(bool a, bool /*unused*/) { \
58 return a * (-(mult_by)); \ 64 return a * (-(mult_by)); \
59 } \ 65 } \
60 uint8_t testMultiplyBy##mult_by(uint8_t a, uint8_t /*unused*/) { \ 66 uint8_t testMultiplyBy##mult_by(uint8_t a, uint8_t /*unused*/) { \
61 return a * (mult_by); \ 67 return a * (mult_by); \
62 } \ 68 } \
(...skipping 13 matching lines...) Expand all
76 return a * (-(mult_by)); \ 82 return a * (-(mult_by)); \
77 } \ 83 } \
78 uint64_t testMultiplyBy##mult_by(uint64_t a, uint64_t /*unused*/) { \ 84 uint64_t testMultiplyBy##mult_by(uint64_t a, uint64_t /*unused*/) { \
79 return a * (mult_by); \ 85 return a * (mult_by); \
80 } \ 86 } \
81 uint64_t testMultiplyByNeg##mult_by(uint64_t a, uint64_t /*unused*/) { \ 87 uint64_t testMultiplyByNeg##mult_by(uint64_t a, uint64_t /*unused*/) { \
82 return a * (-(mult_by)); \ 88 return a * (-(mult_by)); \
83 } 89 }
84 MULIMM_TABLE 90 MULIMM_TABLE
85 #undef X 91 #undef X
OLDNEW
« no previous file with comments | « crosstest/crosstest.cfg ('k') | crosstest/test_arith_ll.ll » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698