Matt Wala | 9a0168a | 2014-07-23 14:56:10 -0700 | [diff] [blame] | 1 | //===- subzero/crosstest/test_icmp.cpp - Implementation for tests ---------===// |
| 2 | // |
| 3 | // The Subzero Code Generator |
| 4 | // |
| 5 | // This file is distributed under the University of Illinois Open Source |
| 6 | // License. See LICENSE.TXT for details. |
| 7 | // |
| 8 | //===----------------------------------------------------------------------===// |
| 9 | // |
| 10 | // This aims to test the icmp bitcode instruction across all PNaCl primitive |
| 11 | // and SIMD integer types. |
| 12 | // |
| 13 | //===----------------------------------------------------------------------===// |
Jim Stichnoth | 5bc2b1d | 2014-05-22 13:38:48 -0700 | [diff] [blame] | 14 | |
| 15 | #include <stdint.h> |
| 16 | |
| 17 | #include "test_icmp.h" |
John Porto | 1d23542 | 2015-08-12 12:37:53 -0700 | [diff] [blame] | 18 | #include "xdefs.h" |
Jim Stichnoth | 5bc2b1d | 2014-05-22 13:38:48 -0700 | [diff] [blame] | 19 | |
| 20 | #define X(cmp, op) \ |
| 21 | bool icmp##cmp(uint8_t a, uint8_t b) { return a op b; } \ |
| 22 | bool icmp##cmp(uint16_t a, uint16_t b) { return a op b; } \ |
| 23 | bool icmp##cmp(uint32_t a, uint32_t b) { return a op b; } \ |
John Porto | 1d23542 | 2015-08-12 12:37:53 -0700 | [diff] [blame] | 24 | bool icmp##cmp(uint64 a, uint64 b) { return a op b; } \ |
Matt Wala | 9a0168a | 2014-07-23 14:56:10 -0700 | [diff] [blame] | 25 | v4ui32 icmp##cmp(v4ui32 a, v4ui32 b) { return a op b; } \ |
| 26 | v8ui16 icmp##cmp(v8ui16 a, v8ui16 b) { return a op b; } \ |
| 27 | v16ui8 icmp##cmp(v16ui8 a, v16ui8 b) { return a op b; } |
Jim Stichnoth | 5bc2b1d | 2014-05-22 13:38:48 -0700 | [diff] [blame] | 28 | ICMP_U_TABLE |
| 29 | #undef X |
Matt Wala | 9a0168a | 2014-07-23 14:56:10 -0700 | [diff] [blame] | 30 | |
Jim Stichnoth | 5bc2b1d | 2014-05-22 13:38:48 -0700 | [diff] [blame] | 31 | #define X(cmp, op) \ |
Jim Stichnoth | 7da431b | 2014-08-05 11:22:37 -0700 | [diff] [blame] | 32 | bool icmp##cmp(myint8_t a, myint8_t b) { return a op b; } \ |
Jim Stichnoth | 5bc2b1d | 2014-05-22 13:38:48 -0700 | [diff] [blame] | 33 | bool icmp##cmp(int16_t a, int16_t b) { return a op b; } \ |
| 34 | bool icmp##cmp(int32_t a, int32_t b) { return a op b; } \ |
John Porto | 1d23542 | 2015-08-12 12:37:53 -0700 | [diff] [blame] | 35 | bool icmp##cmp(int64 a, int64 b) { return a op b; } \ |
Matt Wala | 9a0168a | 2014-07-23 14:56:10 -0700 | [diff] [blame] | 36 | v4si32 icmp##cmp(v4si32 a, v4si32 b) { return a op b; } \ |
| 37 | v8si16 icmp##cmp(v8si16 a, v8si16 b) { return a op b; } \ |
| 38 | v16si8 icmp##cmp(v16si8 a, v16si8 b) { return a op b; } |
Jim Stichnoth | 5bc2b1d | 2014-05-22 13:38:48 -0700 | [diff] [blame] | 39 | ICMP_S_TABLE |
| 40 | #undef X |