1 /* { dg-require-effective-target int32plus } */
2 struct X {
3     char fill0[800000];
4     int a;
5     char fill1[900000];
6     int b;
7 };
8 
9 int __attribute__((noinline,noclone))
Avg(struct X * p,int s)10 Avg(struct X *p, int s)
11 {
12     return (s * (long long)(p->a + p->b)) >> 17;
13 }
14 
15 struct X x;
16 
main()17 int main()
18 {
19     x.a = 1 << 17;
20     x.b = 2 << 17;
21     if (Avg(&x, 1) != 3)
22 	__builtin_abort();
23     return 0;
24 }
25 
26