OSDN Git Service

Subzero: Remove the need for a separate NaCl SDK installation.
[android-x86/external-swiftshader.git] / crosstest / test_icmp.cpp
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 //===----------------------------------------------------------------------===//
14
15 #include <stdint.h>
16
17 #include "test_icmp.h"
18
19 #define X(cmp, op)                                                             \
20   bool icmp##cmp(uint8_t a, uint8_t b) { return a op b; }                      \
21   bool icmp##cmp(uint16_t a, uint16_t b) { return a op b; }                    \
22   bool icmp##cmp(uint32_t a, uint32_t b) { return a op b; }                    \
23   bool icmp##cmp(uint64_t a, uint64_t b) { return a op b; }                    \
24   v4ui32 icmp##cmp(v4ui32 a, v4ui32 b) { return a op b; }                      \
25   v8ui16 icmp##cmp(v8ui16 a, v8ui16 b) { return a op b; }                      \
26   v16ui8 icmp##cmp(v16ui8 a, v16ui8 b) { return a op b; }
27 ICMP_U_TABLE
28 #undef X
29
30 #define X(cmp, op)                                                             \
31   bool icmp##cmp(myint8_t a, myint8_t b) { return a op b; }                    \
32   bool icmp##cmp(int16_t a, int16_t b) { return a op b; }                      \
33   bool icmp##cmp(int32_t a, int32_t b) { return a op b; }                      \
34   bool icmp##cmp(int64_t a, int64_t b) { return a op b; }                      \
35   v4si32 icmp##cmp(v4si32 a, v4si32 b) { return a op b; }                      \
36   v8si16 icmp##cmp(v8si16 a, v8si16 b) { return a op b; }                      \
37   v16si8 icmp##cmp(v16si8 a, v16si8 b) { return a op b; }
38 ICMP_S_TABLE
39 #undef X