GIMPLE store merging pass
[official-gcc.git] / gcc / testsuite / gcc.dg / store_merging_4.c
bloba3d67697d6418ba0cd8aaad2f92d9ea720ec7ffc
1 /* { dg-do compile } */
2 /* { dg-require-effective-target non_strict_align } */
3 /* { dg-options "-O2 -fdump-tree-store-merging" } */
5 /* Check that we can merge interleaving stores that are guaranteed
6 to be non-aliasing. */
8 struct bar
10 int a;
11 char b;
12 char c;
13 short d;
14 char e;
15 char f;
16 char g;
19 void
20 foozero (struct bar *restrict p, struct bar *restrict p2)
22 p->b = 0xff;
23 p2->b = 0xa;
24 p->a = 0xfffff;
25 p2->a = 0xab;
26 p2->c = 0xc;
27 p->c = 0xff;
28 p2->d = 0xbf;
29 p->d = 0xfff;
32 /* { dg-final { scan-tree-dump-times "Merging successful" 2 "store-merging" } } */