//===- subzero/crosstest/test_icmp.cpp - Implementation for tests ---------===//
//
//                        The Subzero Code Generator
//
// This file is distributed under the University of Illinois Open Source
// License. See LICENSE.TXT for details.
//
//===----------------------------------------------------------------------===//
//
// This aims to test the icmp bitcode instruction across all PNaCl primitive
// and SIMD integer types.
//
//===----------------------------------------------------------------------===//

#include <stdint.h>

#include "test_icmp.h"

#define X(cmp, op)                                                             \
  bool icmp##cmp(uint8_t a, uint8_t b) { return a op b; }                      \
  bool icmp##cmp(uint16_t a, uint16_t b) { return a op b; }                    \
  bool icmp##cmp(uint32_t a, uint32_t b) { return a op b; }                    \
  bool icmp##cmp(uint64_t a, uint64_t b) { return a op b; }                    \
  v4ui32 icmp##cmp(v4ui32 a, v4ui32 b) { return a op b; }                      \
  v8ui16 icmp##cmp(v8ui16 a, v8ui16 b) { return a op b; }                      \
  v16ui8 icmp##cmp(v16ui8 a, v16ui8 b) { return a op b; }
ICMP_U_TABLE
#undef X

#define X(cmp, op)                                                             \
  bool icmp##cmp(myint8_t a, myint8_t b) { return a op b; }                    \
  bool icmp##cmp(int16_t a, int16_t b) { return a op b; }                      \
  bool icmp##cmp(int32_t a, int32_t b) { return a op b; }                      \
  bool icmp##cmp(int64_t a, int64_t b) { return a op b; }                      \
  v4si32 icmp##cmp(v4si32 a, v4si32 b) { return a op b; }                      \
  v8si16 icmp##cmp(v8si16 a, v8si16 b) { return a op b; }                      \
  v16si8 icmp##cmp(v16si8 a, v16si8 b) { return a op b; }
ICMP_S_TABLE
#undef X
