summaryrefslogtreecommitdiff
path: root/gcc/testsuite/gcc.dg/torture/20160404-1.c
blob: b3a85b55ad7cbad1aec5d3140eea033932414f04 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
/* { dg-do compile } */

typedef __UINT64_TYPE__ UINT64;
typedef union {
    struct {
	unsigned short lo4;
	unsigned short lo3;
	unsigned short lo2;
	unsigned short lo1;
    } i;
    long double f;
} BID_BINARY80LDOUBLE;
UINT64 __binary80_to_bid32 (long double x)
{
  BID_BINARY80LDOUBLE x_in;
  x_in.f = x;
  return (x_in.i.lo4
	  + ((UINT64)x_in.i.lo3 << 16)
	  + ((UINT64)x_in.i.lo2 << 32)
	  + ((UINT64)x_in.i.lo1 << 48));
}