| /* PR middle-end/90676 - default GIMPLE dumps lack information |
| { dg-do compile } |
| { dg-options "-O2 -fno-tree-vectorize -fdump-tree-store-merging" } |
| { dg-require-effective-target int32plus } |
| { dg-require-effective-target store_merge } */ |
| |
| |
| extern __attribute__((aligned(2))) char a2[2]; |
| |
| void f2 (void) |
| { |
| a2[0] = 1; |
| a2[1] = 0; |
| } |
| |
| extern __attribute__((aligned(4))) char a4[4]; |
| |
| void f4 (void) |
| { |
| a4[0] = 1; |
| a4[1] = 0; |
| a4[2] = 0; |
| a4[3] = 0; |
| } |
| |
| extern __attribute__((aligned(8))) char a8[8]; |
| |
| void f8 (void) |
| { |
| a8[0] = 1; |
| for (int i = 1; i != 8; ++i) |
| a8[i] = 0; |
| } |
| |
| /* { dg-final { scan-tree-dump "MEM <unsigned short> \\\[\\(char \\*\\)\\&a2] = " "store-merging" } } |
| { dg-final { scan-tree-dump "MEM <unsigned int> \\\[\\(char \\*\\)\\&a4] = " "store-merging" } } |
| { dg-final { scan-tree-dump "MEM <unsigned int> \\\[\\(char \\*\\)\\&a8] = " "store-merging" { target { ilp32 } } } } |
| { dg-final { scan-tree-dump "MEM <unsigned long> \\\[\\(char \\*\\)\\&a8] = " "store-merging" { target { lp64 } } } } */ |