1 /* PR middle-end/90676 - default GIMPLE dumps lack information
2    { dg-do compile }
3    { dg-options "-O2 -fdump-tree-store-merging" }
4    { dg-require-effective-target int32plus }
5    { dg-require-effective-target store_merge } */
6 
7 
8 extern __attribute__((aligned(2))) char a2[2];
9 
f2(void)10 void f2 (void)
11 {
12   a2[0] = 1;
13   a2[1] = 0;
14 }
15 
16 extern __attribute__((aligned(4))) char a4[4];
17 
f4(void)18 void f4 (void)
19 {
20   a4[0] = 1;
21   a4[1] = 0;
22   a4[2] = 0;
23   a4[3] = 0;
24 }
25 
26 extern __attribute__((aligned(8))) char a8[8];
27 
f8(void)28 void f8 (void)
29 {
30   a8[0] = 1;
31   for (int i = 1; i != 8; ++i)
32     a8[i] = 0;
33 }
34 
35 /* { dg-final { scan-tree-dump "MEM <unsigned short> \\\[\\(char \\*\\)\\&a2] = " "store-merging" } }
36    { dg-final { scan-tree-dump "MEM <unsigned int> \\\[\\(char \\*\\)\\&a4] = " "store-merging" } }
37    { dg-final { scan-tree-dump "MEM <unsigned int> \\\[\\(char \\*\\)\\&a8] = " "store-merging" { target { ilp32 } } } }
38    { dg-final { scan-tree-dump "MEM <unsigned long> \\\[\\(char \\*\\)\\&a8] = " "store-merging" { target { lp64 } } } } */
39