1  /* PR middle-end/90676 - default GIMPLE dumps lack information
       2     { dg-do compile }
       3     { dg-options "-O2 -fno-tree-vectorize -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  
      10  void f2 (void)
      11  {
      12    a2[0] = 1;
      13    a2[1] = 0;
      14  }
      15  
      16  extern __attribute__((aligned(4))) char a4[4];
      17  
      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  
      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 } } } } */