1 /* PR tree-optimization/65215 */
2 
3 struct S { unsigned long long l1 : 48; };
4 
5 static inline unsigned int
foo(unsigned int x)6 foo (unsigned int x)
7 {
8   return (x >> 24) | ((x >> 8) & 0xff00) | ((x << 8) & 0xff0000) | (x << 24);
9 }
10 
11 __attribute__((noinline, noclone)) unsigned int
bar(struct S * x)12 bar (struct S *x)
13 {
14   return foo (x->l1);
15 }
16 
17 int
main()18 main ()
19 {
20   if (__CHAR_BIT__ != 8 || sizeof (unsigned int) != 4 || sizeof (unsigned long long) != 8)
21     return 0;
22   struct S s;
23   s.l1 = foo (0xdeadbeefU) | (0xfeedULL << 32);
24   if (bar (&s) != 0xdeadbeefU)
25     __builtin_abort ();
26   return 0;
27 }
28