| /* { dg-do compile } */ |
| /* { dg-require-effective-target store_merge } */ |
| /* { dg-options "-O2 -fno-tree-vectorize -fdump-tree-store-merging" } */ |
| |
| struct baz { |
| struct bar { |
| int a; |
| char b; |
| char c; |
| char d; |
| char e; |
| char f; |
| char g; |
| } a[4]; |
| } x; |
| struct baz *xx = &x; |
| |
| void |
| foo1 (int i) |
| { |
| x.a[i].b = 0; |
| x.a[i].a = 0; |
| x.a[i].c = 0; |
| x.a[i].d = 0; |
| x.a[i].e = 0; |
| } |
| |
| void |
| foo2 (int i) |
| { |
| x.a[i].b = 0; |
| x.a[i].a = 0; |
| x.a[i].c = 1; |
| x.a[i].d = 0; |
| x.a[i].e = 0; |
| } |
| |
| /* { dg-final { scan-tree-dump-times "Merging successful" 2 "store-merging" } } */ |