2016-12-21 Vladimir Makarov <vmakarov@redhat.com>
[official-gcc.git] / gcc / testsuite / gcc.target / i386 / pr37870.c
blobbc78ed7c77da466f173e9d94c6a9a83d72a16c6e
1 /* PR middle-end/37870 */
2 /* { dg-do run } */
3 /* { dg-options "-O2 -mlong-double-80" } */
5 unsigned int
6 foo (long double x)
8 struct { char a[8]; unsigned int b:7; } c;
9 __builtin_memcpy (&c, &x, sizeof (c));
10 return c.b;
13 unsigned int
14 bar (long double x)
16 union { struct { char a[8]; unsigned int b:7; } c; long double d; } u;
17 u.d = x;
18 return u.c.b;
21 int
22 main (void)
24 if (foo (1.245L) != bar (1.245L)
25 || foo (245.67L) != bar (245.67L)
26 || foo (0.00567L) != bar (0.00567L))
27 __builtin_abort ();
28 return 0;