(root)/
gcc-13.2.0/
gcc/
testsuite/
gcc.dg/
vect/
pr78558.c
       1  /* PR tree-optimization/78558 */
       2  
       3  #include "tree-vect.h"
       4  
       5  struct S
       6  {
       7    char p[48];
       8    unsigned long long q, r, s;
       9  } s[50];
      10  
      11  struct D
      12  {
      13    unsigned long long q, r;
      14  } d[50];
      15  
      16  void
      17  foo (void)
      18  {
      19    unsigned long i;
      20    for (i = 0; i < 50; ++i)
      21      {
      22        d[i].q = s[i].q;
      23        d[i].r = s[i].r;
      24      }
      25  }
      26  
      27  int
      28  main ()
      29  {
      30    check_vect ();
      31    unsigned long i;
      32    for (i = 0; i < 50; ++i)
      33      {
      34        s[i].q = i;
      35        s[i].r = 50 * i;
      36      }
      37    asm volatile ("" : : "g" (s), "g" (d) : "memory");
      38    foo ();
      39    asm volatile ("" : : "g" (s), "g" (d) : "memory");
      40    for (i = 0; i < 50; ++i)
      41      if (d[i].q != i || d[i].r != 50 * i)
      42        abort ();
      43    return 0;
      44  }