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

Subversion Repositories openrisc_me

[/] [openrisc/] [trunk/] [gnu-src/] [gcc-4.2.2/] [gcc/] [testsuite/] [gcc.dg/] [dfp/] [nan-1.c] - Blame information for rev 154

Details | Compare with Previous | View Log

Line No. Rev Author Line
1 149 jeremybenn
/* { dg-options "-std=gnu99" } */
2
 
3
/* N1150 4: Characteristics of decimal floating types (not explicit)
4
   C99 5.2.4.2.2: Characteristics of floating types.
5
   A few simple checks on arithmetic operations. */
6
 
7
extern void abort (void);
8
 
9
int main()
10
{
11
  /* Some possibly non-obvious tests, but most logical
12
     operations on NaN return false, including NaN == NaN. */
13
  if (__builtin_nand32("") == __builtin_nand32(""))
14
    abort();
15
 
16
  if (__builtin_nand64("") == __builtin_nand64(""))
17
    abort();
18
 
19
  if (__builtin_nand128("") == __builtin_nand128(""))
20
    abort();
21
 
22
  if (!(__builtin_nand32("") != __builtin_nand32("")))
23
    abort();
24
 
25
  if (!(__builtin_nand64("") != __builtin_nand64("")))
26
    abort();
27
 
28
  if (!(__builtin_nand128("") != __builtin_nand128("")))
29
    abort();
30
 
31
  if (__builtin_nand32("") > __builtin_nand32(""))
32
    abort();
33
 
34
  if (__builtin_nand64("") >= __builtin_nand64(""))
35
    abort();
36
 
37
  if (__builtin_nand128("") <  __builtin_nand128(""))
38
    abort();
39
 
40
  if (-__builtin_nand128("") <  +__builtin_nand128(""))
41
    abort();
42
 
43
  /* 0.0/0.0 => NaN, but NaN != NaN.  */
44
  if (0.0df/0.0dl == __builtin_nand32(""))
45
    abort();
46
 
47
  /* 0.0 * INF => NaN.  */
48
  if (!__builtin_isnand32 (0.0df * __builtin_infd32()))
49
    abort ();
50
 
51
  if (!__builtin_isnand64 (0.0dd * __builtin_infd64()))
52
    abort ();
53
 
54
  if (!__builtin_isnand128 (0.0dd * __builtin_infd128()))
55
    abort ();
56
 
57
  /* INF - INF => NaN.  */
58
  if (!__builtin_isnand32 (__builtin_infd32() - __builtin_infd32()))
59
    abort ();
60
 
61
  if (!__builtin_isnand64 (__builtin_infd64() - __builtin_infd64()))
62
    abort ();
63
 
64
  if (!__builtin_isnand128 (__builtin_infd128() - __builtin_infd128()))
65
    abort ();
66
 
67
  /* INF/INF => NaN.  */
68
  if (!__builtin_isnand32 (__builtin_infd32()/__builtin_infd32()) )
69
    abort ();
70
 
71
  if (!__builtin_isnand64 (__builtin_infd64()/__builtin_infd64()) )
72
    abort ();
73
 
74
  if (!__builtin_isnand128 (__builtin_infd128()/__builtin_infd128()) )
75
    abort ();
76
 
77
  /* 0.0/0.0 => NaN, but NaN != NaN.  */
78
  if ((0.0dd/0.0df) == (0.0dd/0.0df))
79
    abort();
80
 
81
  if (__builtin_nand32("") <  __builtin_infd32())
82
    abort();
83
 
84
  if (__builtin_nand32("") >=  __builtin_infd32())
85
    abort();
86
 
87
  /* Fixme: Add sqrtdf(-x.df) test when sqrt is supported. */
88
 
89
  if (!__builtin_isnand32(__builtin_nand32("")))
90
    abort();
91
 
92
  if (!__builtin_isnand64(__builtin_nand64("")))
93
    abort();
94
 
95
  if (!__builtin_isnand128(__builtin_nand128("")))
96
    abort();
97
 
98
  if (!__builtin_isnand128(8.0df * __builtin_nand128("")))
99
    abort();
100
 
101
  if (!__builtin_isnand32(8.1dl - __builtin_nand32("")))
102
    abort();
103
 
104
  if (!__builtin_isnand128(__builtin_nand64("") + __builtin_nand128("")))
105
    abort();
106
 
107
  return 0;
108
}

powered by: WebSVN 2.1.0

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