(root)/
gcc-13.2.0/
gcc/
testsuite/
gcc.dg/
vect/
pr64404.c
       1  /* { dg-additional-options "--param=sccvn-max-alias-queries-per-access=1" } */
       2  
       3  #include "tree-vect.h"
       4  
       5  extern void abort (void);
       6  
       7  typedef struct
       8  {
       9    int l, h;
      10  } tFPinterval;
      11  
      12  tFPinterval X[1024];
      13  tFPinterval Y[1024];
      14  tFPinterval Z[1024];
      15  
      16  void __attribute__((noinline))
      17  Compute (void)
      18  {
      19    int d;
      20    for (d = 0; d < 1024; d++)
      21      {
      22        Y[d].l = X[d].l + X[d].h;
      23        Y[d].h = Y[d].l;
      24        Z[d].l = X[d].l;
      25        Z[d].h = X[d].h;
      26      }
      27  }
      28  
      29  int
      30  main (void)
      31  {
      32    int d;
      33  
      34    check_vect ();
      35  
      36    for (d = 0; d < 1024; d++)
      37      {
      38        X[d].l = d;
      39        X[d].h = d + 1;
      40        __asm__ volatile ("");
      41      }
      42  
      43    Compute ();
      44  
      45    for (d = 0; d < 1024; d++)
      46      {
      47        if (Y[d].l != X[d].l + X[d].h
      48  	 || Y[d].h != Y[d].l
      49  	 || Z[d].l != X[d].l
      50  	 || Z[d].h != X[d].h)
      51  	abort ();
      52        __asm__ volatile ("");
      53      }
      54  
      55    return 0;
      56  }
      57