/* { dg-do compile } */
/* { dg-options "-O2 -fdump-tree-optimized -fno-tree-sra" } */
/* LLVM LOCAL test not applicable */
/* { dg-require-fdump "" } */

/* Even without SRA being enabled, we should be able to eliminate every structure store and load here. */
extern void foo (const int);
int main(void)
{
	struct a
	{
		int e;
		int f;
		int g;
	}  a;
	struct a b;
	int x, c;
	a.e = 50;
	a.f = 9;
	a.g = a.e * a.f;
	foo (a.f);
	foo (a.g);
	x = a.f;
	c = a.e;
	foo (x);
	foo (c);
	a.e = 5;
	a.f = 40;
	a.g = 90;
	foo (a.e);
	foo (a.f);
	foo (a.g);
	c = a.f;
	foo (c);
	b.e = 9;
	a.e = b.e + 1 * c;
	a.f = 30;
	foo (a.e);
	foo (a.f);
	x = a.e * a.f;
	foo (x);

}
/* { dg-final { scan-tree-dump-times "a.e" 0 "optimized" } } */
/* { dg-final { scan-tree-dump-times "a.f" 0 "optimized" } } */
/* { dg-final { scan-tree-dump-times "a.g" 0 "optimized" } } */
/* { dg-final { scan-tree-dump-times "b.e" 0 "optimized" } } */
/* { dg-final { cleanup-tree-dump "optimized" } } */
