/* { dg-require-effective-target int32plus } */ | |
struct X { | |
char fill0[800000]; | |
int a; | |
char fill1[900000]; | |
int b; | |
}; | |
int __attribute__((noinline,noclone)) | |
Avg(struct X *p, int s) | |
{ | |
return (s * (long long)(p->a + p->b)) >> 17; | |
} | |
struct X x; | |
int main() | |
{ | |
x.a = 1 << 17; | |
x.b = 2 << 17; | |
if (Avg(&x, 1) != 3) | |
__builtin_abort(); | |
return 0; | |
} | |