(root)/
gcc-13.2.0/
gcc/
testsuite/
gcc.dg/
pr27363.c
       1  /* PR27363.  CSE was breaking on the arm store multiple insn used for
       2     structure copies.  */
       3  /* { dg-do run } */
       4  /* { dg-options "-Os" } */
       5  extern void abort (void);
       6  
       7  struct snd_mask {
       8      unsigned int bits[6];
       9  };
      10  
      11  static int __attribute__((noinline))
      12  snd_mask_refine(struct snd_mask *mask)
      13  {
      14    struct snd_mask old;
      15  
      16    old = *mask;
      17    if (mask->bits[0]==0 && mask->bits[1]==0)
      18      return 1;
      19  
      20    return old.bits[0] != mask->bits[0];
      21  }
      22  
      23  int main(int argc, char *argv[])
      24  {
      25    struct snd_mask mask;
      26  
      27  
      28    mask.bits[0] = 23;
      29    mask.bits[1] = 42;
      30    mask.bits[2] = 0;
      31    mask.bits[3] = 0;
      32    mask.bits[4] = 0; 
      33    mask.bits[5] = 0;
      34  
      35  
      36    if (snd_mask_refine(&mask))
      37      abort();
      38    return 0;
      39  }