19a0168a9ccfa574e67baebe68650a85a18292d30Matt Wala//===- subzero/crosstest/test_icmp.h - Test prototypes -------*- C++ -*----===//
29a0168a9ccfa574e67baebe68650a85a18292d30Matt Wala//
39a0168a9ccfa574e67baebe68650a85a18292d30Matt Wala//                        The Subzero Code Generator
49a0168a9ccfa574e67baebe68650a85a18292d30Matt Wala//
59a0168a9ccfa574e67baebe68650a85a18292d30Matt Wala// This file is distributed under the University of Illinois Open Source
69a0168a9ccfa574e67baebe68650a85a18292d30Matt Wala// License. See LICENSE.TXT for details.
79a0168a9ccfa574e67baebe68650a85a18292d30Matt Wala//
89a0168a9ccfa574e67baebe68650a85a18292d30Matt Wala//===----------------------------------------------------------------------===//
99a0168a9ccfa574e67baebe68650a85a18292d30Matt Wala//
109a0168a9ccfa574e67baebe68650a85a18292d30Matt Wala// This file declares the function prototypes for crosstesting the icmp
119a0168a9ccfa574e67baebe68650a85a18292d30Matt Wala// bitcode instruction.
129a0168a9ccfa574e67baebe68650a85a18292d30Matt Wala//
139a0168a9ccfa574e67baebe68650a85a18292d30Matt Wala//===----------------------------------------------------------------------===//
149a0168a9ccfa574e67baebe68650a85a18292d30Matt Wala
155bc2b1d163123ef17e0a14f50aae3bc8e4cd243eJim Stichnoth#include "test_icmp.def"
165bc2b1d163123ef17e0a14f50aae3bc8e4cd243eJim Stichnoth
179a0168a9ccfa574e67baebe68650a85a18292d30Matt Wala#include "vectors.h"
181d235425dab1f3dd059973fc53f1b1d5879469e3John Porto#include "xdefs.h"
199a0168a9ccfa574e67baebe68650a85a18292d30Matt Wala
205bc2b1d163123ef17e0a14f50aae3bc8e4cd243eJim Stichnoth#define X(cmp, op)                                                             \
215bc2b1d163123ef17e0a14f50aae3bc8e4cd243eJim Stichnoth  bool icmp##cmp(uint8_t a, uint8_t b);                                        \
225bc2b1d163123ef17e0a14f50aae3bc8e4cd243eJim Stichnoth  bool icmp##cmp(uint16_t a, uint16_t b);                                      \
235bc2b1d163123ef17e0a14f50aae3bc8e4cd243eJim Stichnoth  bool icmp##cmp(uint32_t a, uint32_t b);                                      \
241d235425dab1f3dd059973fc53f1b1d5879469e3John Porto  bool icmp##cmp(uint64 a, uint64 b);                                          \
259a0168a9ccfa574e67baebe68650a85a18292d30Matt Wala  v4ui32 icmp##cmp(v4ui32 a, v4ui32 b);                                        \
269a0168a9ccfa574e67baebe68650a85a18292d30Matt Wala  v8ui16 icmp##cmp(v8ui16 a, v8ui16 b);                                        \
275c87542ab707c91b1cc0d3d32ff4073e27f9bdf7David Sehr  v16ui8 icmp##cmp(v16ui8 a, v16ui8 b);                                        \
285c87542ab707c91b1cc0d3d32ff4073e27f9bdf7David Sehr  bool icmp_zero##cmp(uint8_t a);                                              \
295c87542ab707c91b1cc0d3d32ff4073e27f9bdf7David Sehr  bool icmp_zero##cmp(uint16_t a);                                             \
305c87542ab707c91b1cc0d3d32ff4073e27f9bdf7David Sehr  bool icmp_zero##cmp(uint32_t a);                                             \
315c87542ab707c91b1cc0d3d32ff4073e27f9bdf7David Sehr  bool icmp_zero##cmp(uint64 a);
325bc2b1d163123ef17e0a14f50aae3bc8e4cd243eJim StichnothICMP_U_TABLE
335bc2b1d163123ef17e0a14f50aae3bc8e4cd243eJim Stichnoth#undef X
345bc2b1d163123ef17e0a14f50aae3bc8e4cd243eJim Stichnoth
355bc2b1d163123ef17e0a14f50aae3bc8e4cd243eJim Stichnoth#define X(cmp, op)                                                             \
367da431b59be69bc6af383f3288f48f816b1c4f07Jim Stichnoth  bool icmp##cmp(myint8_t a, myint8_t b);                                      \
375bc2b1d163123ef17e0a14f50aae3bc8e4cd243eJim Stichnoth  bool icmp##cmp(int16_t a, int16_t b);                                        \
385bc2b1d163123ef17e0a14f50aae3bc8e4cd243eJim Stichnoth  bool icmp##cmp(int32_t a, int32_t b);                                        \
391d235425dab1f3dd059973fc53f1b1d5879469e3John Porto  bool icmp##cmp(int64 a, int64 b);                                            \
409a0168a9ccfa574e67baebe68650a85a18292d30Matt Wala  v4si32 icmp##cmp(v4si32 a, v4si32 b);                                        \
419a0168a9ccfa574e67baebe68650a85a18292d30Matt Wala  v8si16 icmp##cmp(v8si16 a, v8si16 b);                                        \
425c87542ab707c91b1cc0d3d32ff4073e27f9bdf7David Sehr  v16si8 icmp##cmp(v16si8 a, v16si8 b);                                        \
435c87542ab707c91b1cc0d3d32ff4073e27f9bdf7David Sehr  bool icmp_zero##cmp(myint8_t a);                                             \
445c87542ab707c91b1cc0d3d32ff4073e27f9bdf7David Sehr  bool icmp_zero##cmp(int16_t a);                                              \
455c87542ab707c91b1cc0d3d32ff4073e27f9bdf7David Sehr  bool icmp_zero##cmp(int32_t a);                                              \
465c87542ab707c91b1cc0d3d32ff4073e27f9bdf7David Sehr  bool icmp_zero##cmp(int64 a);
479a0168a9ccfa574e67baebe68650a85a18292d30Matt WalaICMP_S_TABLE
489a0168a9ccfa574e67baebe68650a85a18292d30Matt Wala#undef X
499a0168a9ccfa574e67baebe68650a85a18292d30Matt Wala
509a0168a9ccfa574e67baebe68650a85a18292d30Matt Wala#define X(cmp, op)                                                             \
519a0168a9ccfa574e67baebe68650a85a18292d30Matt Wala  v4si32 icmpi1##cmp(v4si32 a, v4si32 b);                                      \
529a0168a9ccfa574e67baebe68650a85a18292d30Matt Wala  v8si16 icmpi1##cmp(v8si16 a, v8si16 b);                                      \
539a0168a9ccfa574e67baebe68650a85a18292d30Matt Wala  v16si8 icmpi1##cmp(v16si8 a, v16si8 b);
549a0168a9ccfa574e67baebe68650a85a18292d30Matt WalaICMP_U_TABLE
555bc2b1d163123ef17e0a14f50aae3bc8e4cd243eJim StichnothICMP_S_TABLE
565bc2b1d163123ef17e0a14f50aae3bc8e4cd243eJim Stichnoth#undef X
57