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

Subversion Repositories openrisc

[/] [openrisc/] [trunk/] [gnu-dev/] [or1k-gcc/] [gcc/] [testsuite/] [c-c++-common/] [dfp/] [convert-bfp-fold.c] - Blame information for rev 686

Details | Compare with Previous | View Log

Line No. Rev Author Line
1 686 jeremybenn
/* { dg-options "-O2" } */
2
 
3
/* N1150 5.2 Conversions among decimal floating types and between
4
   decimal floating types and generic floating types.
5
   C99 6.3.1.5(4) Conversions, arithmetic operands, real floating types.  */
6
 
7
#include "dfp-dbg.h"
8
 
9
_Decimal32 d32;
10
_Decimal64 d64;
11
_Decimal128 d128;
12
float sf;
13
double df;
14
long double tf;
15
 
16
extern void link_error (void);
17
 
18
int
19
main ()
20
{
21
  /* Conversions from decimal float to binary float. */
22
 
23
  /* Conversions from _Decimal32. */
24
  d32 = 2.0df;
25
  sf = d32;
26
  if (sf != 2.0f)
27
    link_error ();
28
 
29
  df = d32;
30
  if (df != 2.0)
31
    link_error ();
32
 
33
  tf = d32;
34
  if (tf != 2.0l)
35
    link_error ();
36
 
37
  /* Conversions from _Decimal64. */
38
  d64 = -7.0dd;
39
  sf = d64;
40
  if (sf != -7.0f)
41
    link_error ();
42
 
43
  df = d64;
44
  if (df != -7.0)
45
    link_error ();
46
 
47
  tf = d64;
48
  if (tf != -7.0l)
49
    link_error ();
50
 
51
  /* Conversions from _Decimal128. */
52
  d128 = 30.0dl;
53
  sf = d128;
54
  if (sf != 30.0f)
55
    link_error ();
56
 
57
  df = d128;
58
  if (df != 30.0)
59
    link_error ();
60
 
61
  df = d128;
62
  if (df != 30.0l)
63
    link_error ();
64
 
65
  /* Conversions from binary float to decimal float. */
66
  sf = 30.0f;
67
  d128 = sf;
68
  if (d128 != 30.0dl)
69
    link_error ();
70
 
71
  d64 = sf;
72
  if (d64 != 30.0dd)
73
    link_error ();
74
 
75
  d32 = sf;
76
  if (d32 != 30.0df)
77
    link_error ();
78
 
79
  df = -2.0;
80
  d128 = df;
81
  if (d128 != -2.0dl)
82
    link_error ();
83
 
84
  d64 = df;
85
  if (d64 != -2.0dd)
86
    link_error ();
87
 
88
  d32 = df;
89
  if (d32 != -2.0df)
90
    link_error ();
91
 
92
  tf = -22.0l;
93
  d128 = tf;
94
  if (d128 != -22.0dl)
95
    link_error ();
96
 
97
  d64 = tf;
98
  if (d64 != -22.0dd)
99
    link_error ();
100
 
101
  d32 = tf;
102
  if (d32 != -22.0df)
103
    link_error ();
104
 
105
  /* 2**(-11) = 0.00048828125. */
106
  d128 = 0.000488281251dl;
107
  sf = d128;
108
  if (sf != 0.00048828125f)
109
    link_error ();
110
  /* 2**(-25) = 0.298023223876953125E-7.  */
111
  d128 = 2.98023223876953125E-8dl;
112
  df = d128;
113
  if (df < (2.9802322387695312e-08 - 0.00000000001)
114
      || df > (2.9802322387695312e-08 + 0.00000000001))
115
    link_error ();
116
 
117
  return 0;
118
}

powered by: WebSVN 2.1.0

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