]> git.ipfire.org Git - thirdparty/gcc.git/blame - gcc/testsuite/gcc.dg/tree-ssa/pr93582-10.c
Fix profile update in tree_transform_and_unroll_loop
[thirdparty/gcc.git] / gcc / testsuite / gcc.dg / tree-ssa / pr93582-10.c
CommitLineData
b07e4e7c
JJ
1/* PR tree-optimization/93582 */
2/* { dg-do compile { target int32 } } */
3/* { dg-options "-O2 -fdump-tree-fre1" } */
4/* { dg-final { scan-tree-dump "return 72876566;" "fre1" { target le } } } */
5/* { dg-final { scan-tree-dump "return 559957376;" "fre1" { target be } } } */
6
7union U {
8 struct S { int a : 12, b : 5, c : 10, d : 5; } s;
9 unsigned int i;
10};
11struct A { char a[12]; union U u; };
12void bar (struct A *);
13
14unsigned
15foo (void)
16{
17 struct A a;
18 bar (&a);
19 a.u.s.a = 1590;
20 a.u.s.c = -404;
21#if __BYTE_ORDER__ == __ORDER_LITTLE_ENDIAN__
22#define M 0x67e0a5f
23#elif __BYTE_ORDER__ == __ORDER_BIG_ENDIAN__
24#define M 0xa5f067e0
25#else
26#define M 0
27#endif
28 return a.u.i & M;
29}