(root)/
gcc-13.2.0/
gcc/
testsuite/
gcc.dg/
vect/
vect-31.c
       1  /* { dg-require-effective-target vect_int } */
       2  
       3  #include <stdarg.h>
       4  #include "tree-vect.h"
       5  
       6  #define N 32
       7  
       8  struct t{
       9    int k[N];
      10    int l; 
      11  };
      12    
      13  struct s{
      14    char a;	/* aligned */
      15    char b[N-1];  /* unaligned (offset 1B) */
      16    char c[N];    /* aligned (offset NB) */
      17    struct t d;   /* aligned (offset 2NB) */
      18    struct t e;   /* unaligned (offset 2N+4N+4 B) */
      19  };
      20   
      21  __attribute__ ((noinline))
      22  int main1 ()
      23  {  
      24    int i;
      25    struct s tmp;
      26  
      27    /* unaligned */
      28    for (i = 0; i < N/2; i++)
      29      {
      30        tmp.b[i] = 5;
      31      }
      32  
      33    /* check results:  */
      34    for (i = 0; i <N/2; i++)
      35      {
      36        if (tmp.b[i] != 5)
      37          abort ();
      38      }
      39  
      40    /* aligned */
      41    for (i = 0; i < N/2; i++)
      42      {
      43        tmp.c[i] = 6;
      44      }
      45  
      46    /* check results:  */
      47    for (i = 0; i <N/2; i++)
      48      {
      49        if (tmp.c[i] != 6)
      50          abort ();
      51      }
      52  
      53    /* aligned */
      54    for (i = 0; i < N/2; i++)
      55      {
      56        tmp.d.k[i] = 7;
      57      }
      58  
      59    /* check results:  */
      60    for (i = 0; i <N/2; i++)
      61      {
      62        if (tmp.d.k[i] != 7)
      63          abort ();
      64      }
      65  
      66    /* unaligned */
      67    for (i = 0; i < N/2; i++)
      68      {
      69        tmp.e.k[i] = 8;
      70      }
      71  
      72    /* check results:  */
      73    for (i = 0; i <N/2; i++)
      74      {
      75        if (tmp.e.k[i] != 8)
      76          abort ();
      77      }
      78  
      79    return 0;
      80  }
      81  
      82  int main (void)
      83  { 
      84    check_vect ();
      85    
      86    return main1 ();
      87  } 
      88  
      89  /* { dg-final { scan-tree-dump-times "vectorized 4 loops" 1 "vect" } } */