(root)/
gcc-13.2.0/
gcc/
testsuite/
gcc.dg/
vect/
no-vfa-vect-dv-2.c
       1  /* Disabling epilogues until we find a better way to deal with scans.  */
       2  /* { dg-additional-options "--param vect-epilogues-nomask=0" } */
       3  /* { dg-require-effective-target vect_int } */
       4  
       5  #include <stdarg.h>
       6  #include "tree-vect.h"
       7  
       8  #define N 64
       9  #define MAX 42
      10  
      11  extern void abort(void); 
      12  
      13  int main ()
      14  {  
      15    int A[N];
      16    int B[N];
      17    int C[N];
      18    int D[N];
      19    int E[N] = {0,1,2,0};
      20  
      21    int i, j;
      22  
      23    check_vect ();
      24  
      25    for (i = 0; i < N; i++)
      26      {
      27        A[i] = i;
      28        B[i] = i;
      29        C[i] = i;
      30        D[i] = i;
      31      }
      32  
      33    /* Vectorizable */
      34    for (i = 0; i < N-20; i++)
      35      {
      36        A[i] = A[i+20];
      37      }
      38  
      39    /* check results:  */
      40    for (i = 0; i < N-20; i++)
      41      {
      42        if (A[i] != D[i+20])
      43  	abort ();
      44      }
      45  
      46    /* Vectorizable */
      47    for (i = 0; i < 16; i++)
      48      {
      49        B[i] = B[i] + 5;
      50      }
      51  
      52    /* check results:  */
      53    for (i = 0; i < 16; i++)
      54      {
      55        if (B[i] != C[i] + 5)
      56  	abort ();
      57      }
      58  
      59    /* Not vectorizable */
      60    for (i = 0; i < 4; i++)
      61      {
      62        C[i+3] = C[i];
      63      }
      64  
      65    /* check results:  */
      66    for (i = 0; i < 4; i++)
      67      {
      68        if (C[i] != E[i])
      69  	abort ();
      70      }
      71  
      72    return 0;
      73  }
      74  
      75  
      76  /* The initialization induction loop (with aligned access) is also vectorized.  */
      77  /* { dg-final { scan-tree-dump-times "vectorized 3 loops" 1 "vect" } } */