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-int-max.c] - Blame information for rev 686

Details | Compare with Previous | View Log

Line No. Rev Author Line
1 686 jeremybenn
/* { dg-options "-O0 -w" } */
2
 
3
/* N1150 5.1 Conversions from decimal float to integer.  */
4
 
5
/* Test decimal float to integer conversions for values at the limit of
6
   what will fit into the destination type.  This assumes 32-bit int and
7
   64-bit long long (there's a check for that below).  */
8
 
9
#include "dfp-dbg.h"
10
 
11
volatile _Decimal32 d32;
12
volatile _Decimal64 d64;
13
volatile _Decimal128 d128;
14
volatile int si;
15
volatile unsigned int ui;
16
volatile long long sll;
17
volatile unsigned long long ull;
18
 
19
void
20
doit ()
21
{
22
  /* _Decimal32 to int.  */
23
 
24
  d32 = 2147483.E3DF;
25
  si = d32;
26
  if (si != 2147483000)
27
    FAILURE
28
 
29
  d32 = -2147483.E3DF;
30
  si = d32;
31
  if (si != -2147483000)
32
    FAILURE
33
 
34
  /* _Decimal32 to unsigned int.  */
35
 
36
  d32 = 4.294967E9DF;
37
  ui = d32;
38
  if (ui != 4294967000U)
39
    FAILURE
40
 
41
  /* _Decimal32 to long long.  */
42
 
43
  d32 = 922.3372E16DF;
44
  sll = d32;
45
  if (sll != 9223372000000000000LL)
46
    FAILURE
47
 
48
  d32 = -92233.72E14DF;
49
  sll = d32;
50
  if (sll != -9223372000000000000LL)
51
    FAILURE
52
 
53
  /* _Decimal32 to unsigned long long.  */
54
 
55
  d32 = .1844674E20DF;
56
  ull = d32;
57
  if (ull != 18446740000000000000ULL)
58
    FAILURE
59
 
60
  /* _Decimal64 to int.  */
61
 
62
  d64 = 2.147483647E9DD;
63
  si = d64;
64
  if (si != 2147483647)
65
    FAILURE
66
 
67
  d64 = -2147483648.DD;
68
  si = d64;
69
  if (si != -2147483648)
70
    FAILURE
71
 
72
  /* _Decimal64 to unsigned int.  */
73
 
74
  d64 = 42949.67295E5DD;
75
  ui = d64;
76
  if (ui != 4294967295)
77
    FAILURE
78
 
79
  /* _Decimal64 to long long.  */
80
 
81
  d64 = 9.223372036854775E18DD;
82
  sll = d64;
83
  if (sll != 9223372036854775000LL)
84
    FAILURE
85
 
86
  d64 = -92233720.36854775E11DD;
87
  sll = d64;
88
  if (sll != -9223372036854775000LL)
89
    FAILURE
90
 
91
  /* _Decimal64 to unsigned long long.  */
92
  d64 = 1844674407370955.E4DD;
93
  ull = d64;
94
  if (ull != 18446744073709550000ULL)
95
    FAILURE
96
 
97
  /* _Decimal128 to int.  */
98
 
99
  d128 = 2.147483647E9DL;
100
  si = d128;
101
  if (si != 2147483647)
102
    FAILURE
103
 
104
  d128 = -2147483648.DL;
105
  si = d128;
106
  if (si != -2147483648)
107
    FAILURE
108
 
109
  /* _Decimal128 to unsigned int.  */
110
 
111
  d128 = 4294.967295E6DL;
112
  ui = d128;
113
  if (ui != 4294967295)
114
    FAILURE
115
 
116
  /* _Decimal128 to long long.  */
117
 
118
  d128 = 9223372036854775807.DL;
119
  sll = d128;
120
  if (sll != 9223372036854775807LL)
121
    FAILURE
122
 
123
  d128 = -9.223372036854775808E19DL;
124
  sll = d128;
125
  if (sll != -9223372036854775807LL - 1LL)
126
    FAILURE
127
 
128
  /* _Decimal128 to unsigned long long.  */
129
  d128 = 18446744073709551615.DL;
130
  ull = d128;
131
  if (ull != 18446744073709551615ULL)
132
    FAILURE
133
}
134
 
135
int
136
main ()
137
{
138
  /* This test assumes 32-bit int and 64-bit long long.  */
139
 
140
  if (sizeof (int) != 4 || sizeof (long long) != 8)
141
    return 0;
142
 
143
  doit ();
144
 
145
  FINISH
146
}

powered by: WebSVN 2.1.0

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