OSDN Git Service

PR c/10175
[pf3gnuchains/gcc-fork.git] / gcc / testsuite / gcc.dg / 980217-1.c
1 /* Test float on alpha. */
2
3 /* { dg-do run { target alpha*-*-* } } */
4 /* { dg-options "-mieee -O2" } */
5
6 extern void abort(void);
7
8 typedef int int32_t __attribute__ ((__mode__ (  __SI__ ))) ;
9 typedef union
10 {
11   float value;
12   int32_t word;
13 } ieee_float_shape_type;
14
15 int isinff(float x)
16 {
17   int32_t ix,t;
18   ieee_float_shape_type gf_u;
19   gf_u.value = x;
20   ix = gf_u.word;
21   printf ("%x\n", ix);
22   t = ix & 0x7fffffff;
23   t ^= 0x7f800000;
24   t |= -t;
25   return ~(t >> 31) & (1 - ((ix & 0x80000000) >> 30));
26 }
27
28 main ()
29 {
30   float x = 1.0 / 0.0;
31   int i = isinff (x);
32
33   if (i == 0)
34     abort ();
35
36   printf ("%d\n", i);
37   return 0;
38 }