add alignment to enable store merging in strict-alignment targets
[official-gcc.git] / gcc / testsuite / g++.dg / opt / store-merging-2.C
blobb1ad7018a17895bddcae8bb7a2bfa5d8fa8843af
1 // PR target/92038
2 // { dg-do compile { target int32 } }
3 // { dg-require-effective-target store_merge }
4 // { dg-options "-O2 -flifetime-dse=2 -fdump-tree-store-merging-details" }
5 // { dg-final { scan-tree-dump "New sequence of 2 stores to replace old one of 3 stores" "store-merging" } }
7 /* The alignment is necessary for store-merging to take place on
8    strict-alignment targets.  */
9 struct __attribute__ ((__aligned__ (4))) T { char a[128]; };
10 struct S { S () : a () { a.a[12] = 0; a.a[13] = 1; a.a[14] = 0; a.a[15] = 6; } T a; };
11 void foo (S &);
12 void bar (void) { S s; foo (s); }