Jim Stichnoth | 5bc2b1d | 2014-05-22 13:38:48 -0700 | [diff] [blame] | 1 | // This aims to test all the arithmetic bitcode instructions across |
| 2 | // all PNaCl primitive data types. |
| 3 | |
| 4 | #include <stdint.h> |
| 5 | |
| 6 | #include "test_arith.h" |
| 7 | |
| 8 | #define X(inst, op, isdiv) \ |
| 9 | bool test##inst(bool a, bool b) { return a op b; } \ |
| 10 | uint8_t test##inst(uint8_t a, uint8_t b) { return a op b; } \ |
| 11 | uint16_t test##inst(uint16_t a, uint16_t b) { return a op b; } \ |
| 12 | uint32_t test##inst(uint32_t a, uint32_t b) { return a op b; } \ |
| 13 | uint64_t test##inst(uint64_t a, uint64_t b) { return a op b; } |
| 14 | UINTOP_TABLE |
| 15 | #undef X |
| 16 | |
| 17 | #define X(inst, op, isdiv) \ |
| 18 | bool test##inst(bool a, bool b) { return a op b; } \ |
| 19 | int8_t test##inst(int8_t a, int8_t b) { return a op b; } \ |
| 20 | int16_t test##inst(int16_t a, int16_t b) { return a op b; } \ |
| 21 | int32_t test##inst(int32_t a, int32_t b) { return a op b; } \ |
| 22 | int64_t test##inst(int64_t a, int64_t b) { return a op b; } |
| 23 | SINTOP_TABLE |
| 24 | #undef X |
| 25 | |
| 26 | #define X(inst, op, func) \ |
| 27 | float test##inst(float a, float b) { return func(a op b); } \ |
| 28 | double test##inst(double a, double b) { return func(a op b); } |
| 29 | FPOP_TABLE |
| 30 | #undef X |