OpenCores
URL https://opencores.org/ocsvn/openrisc_me/openrisc_me/trunk

Subversion Repositories openrisc_me

[/] [openrisc/] [trunk/] [gnu-src/] [gcc-4.5.1/] [gcc/] [testsuite/] [c-c++-common/] [dfp/] [compare-rel.h] - Blame information for rev 318

Go to most recent revision | Details | Compare with Previous | View Log

Line No. Rev Author Line
1 295 jeremybenn
/* Basic test of runtime relational comparisons using simple values that
2
   are not affected by rounding.  */
3
 
4
#include <stdlib.h>
5
#include "dfp-dbg.h"
6
 
7
#undef FAILURE
8
#ifdef DBG
9
#define FAILURE(OP,KIND) \
10
  { printf ("failed at line %d: %s for %s values\n", __LINE__, OP, KIND); \
11
    failures++; }
12
#else
13
#define FAILURE(OP,KIND) __builtin_abort ();
14
#endif
15
 
16
#define PASTE2(A,B) A ## B
17
#define PASTE(A,B) PASTE2(A,B)
18
 
19
#ifndef WIDTH
20
#error define WIDTH as decimal float size in bytes
21
#endif
22
 
23
#if WIDTH == 32
24
#define DTYPE _Decimal32
25
#define SUFFIX DF
26
#elif WIDTH == 64
27
#define DTYPE _Decimal64
28
#define SUFFIX DD
29
#elif WIDTH == 128
30
#define DTYPE _Decimal128
31
#define SUFFIX DL
32
#elif WIDTH == 0
33
/* This is for testing the test using a type known to work.  */
34
#define DTYPE double
35
#define SUFFIX
36
#else
37
#error invalid width for decimal float type
38
#endif
39
 
40
DTYPE m_two = PASTE(-2.0, SUFFIX);
41
DTYPE m_one = PASTE(-1.0, SUFFIX);
42
DTYPE zero  = PASTE(0.0, SUFFIX);
43
DTYPE one   = PASTE(1.0, SUFFIX);
44
DTYPE two   = PASTE(2.0, SUFFIX);
45
 
46
void
47
test_compares (void)
48
{
49
  DTYPE x = one;
50
  DTYPE y = zero;
51
  DTYPE z = m_one;
52
 
53
  /* Less than or equal to: comparisons against equal values.  */
54
 
55
  if (! (x <= one))   FAILURE ("<=", "equal")
56
  if (! (y <= zero))  FAILURE ("<=", "equal")
57
  if (! (z <= m_one)) FAILURE ("<=", "equal")
58
 
59
  /* Less than or equal to: comparisons against lesser values.  */
60
 
61
  if (x <= m_one)     FAILURE ("<=", "lesser")
62
  if (x <= zero)      FAILURE ("<=", "lesser")
63
  if (y <= m_one)     FAILURE ("<=", "lesser")
64
  if (z <= m_two)     FAILURE ("<=", "lesser")
65
 
66
  /* Less than or equal to: comparisons against greater values.  */
67
 
68
  if (! (x <= two))   FAILURE ("<=", "greater")
69
  if (! (y <= one))   FAILURE ("<=", "greater")
70
  if (! (z <= zero))  FAILURE ("<=", "greater")
71
  if (! (z <= one))   FAILURE ("<=", "greater")
72
 
73
  /* Less than: comparisons against equal values.  */
74
 
75
  if (x < one)        FAILURE ("<", "equal")
76
  if (y < zero)       FAILURE ("<", "equal")
77
  if (z < m_one)      FAILURE ("<", "equal")
78
 
79
  /* Less than: comparisons against lesser values.  */
80
 
81
  if (x < m_one)      FAILURE ("<", "lesser")
82
  if (x < zero)       FAILURE ("<", "lesser")
83
  if (y < m_one)      FAILURE ("<", "lesser")
84
  if (z < m_two)      FAILURE ("<", "lesser")
85
 
86
  /* Less than: comparisons against greater values.  */
87
 
88
  if (! (x < two))    FAILURE ("<", "greater")
89
  if (! (y < one))    FAILURE ("<", "greater")
90
  if (! (z < zero))   FAILURE ("<", "greater")
91
  if (! (z < one))    FAILURE ("<", "greater")
92
 
93
  /* Greater than or equal to: comparisons against equal values.  */
94
 
95
  if (! (x >= one))   FAILURE (">=", "equal")
96
  if (! (y >= zero))  FAILURE (">=", "equal")
97
  if (! (z >= m_one)) FAILURE (">=", "equal")
98
 
99
  /* Greater than or equal to: comparisons against lesser values.  */
100
 
101
  if (! (x >= m_one)) FAILURE (">=", "lesser")
102
  if (! (x >= zero))  FAILURE (">=", "lesser")
103
  if (! (y >= m_one)) FAILURE (">=", "lesser")
104
  if (! (z >= m_two)) FAILURE (">=", "lesser")
105
 
106
  /* Greater than or equal to: comparisons against greater values.  */
107
 
108
  if (x >= two)       FAILURE (">=", "greater")
109
  if (y >= one)       FAILURE (">=", "greater")
110
  if (z >= zero)      FAILURE (">=", "greater")
111
  if (z >= one)       FAILURE (">=", "greater")
112
 
113
  /* Greater than: comparisons against equal values.  */
114
 
115
  if (x > one)        FAILURE (">", "equal")
116
  if (y > zero)       FAILURE (">", "equal")
117
  if (z > m_one)      FAILURE (">", "equal")
118
 
119
  /* Greater than: comparisons against lesser values.  */
120
 
121
  if (! (x > m_one))  FAILURE (">", "lesser")
122
  if (! (x > zero))   FAILURE (">", "lesser")
123
  if (! (y > m_one))  FAILURE (">", "lesser")
124
  if (! (z > m_two))  FAILURE (">", "lesser")
125
 
126
  /* Greater than: comparisons against greater values.  */
127
 
128
  if (x > two)        FAILURE (">", "greater")
129
  if (y > one)        FAILURE (">", "greater")
130
  if (z > zero)       FAILURE (">", "greater")
131
  if (z > one)        FAILURE (">", "greater")
132
}

powered by: WebSVN 2.1.0

© copyright 1999-2024 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.