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