(root)/
gcc-13.2.0/
gcc/
testsuite/
gcc.dg/
vect/
slp-19a.c
       1  /* { dg-require-effective-target vect_int } */
       2  
       3  #include <stdarg.h>
       4  #include "tree-vect.h"
       5  
       6  #define N 16
       7  
       8  int
       9  main1 ()
      10  {
      11    unsigned int i;
      12    unsigned int out[N*8];
      13    unsigned int in[N*8] = {0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63};
      14    unsigned int ia[N*2];
      15  
      16    for (i = 0; i < N; i++)
      17      {
      18        out[i*8] = in[i*8];
      19        out[i*8 + 1] = in[i*8 + 1];
      20        out[i*8 + 2] = in[i*8 + 2];
      21        out[i*8 + 3] = in[i*8 + 3];
      22        out[i*8 + 4] = in[i*8 + 4];
      23        out[i*8 + 5] = in[i*8 + 5];
      24        out[i*8 + 6] = in[i*8 + 6];
      25        out[i*8 + 7] = in[i*8 + 7];
      26  
      27        ia[i] = in[i*8 + 2];
      28      }
      29  
      30    /* check results:  */
      31    for (i = 0; i < N; i++)
      32      {
      33        if (out[i*8] !=  in[i*8]
      34           || out[i*8 + 1] != in[i*8 + 1]
      35           || out[i*8 + 2] != in[i*8 + 2]
      36           || out[i*8 + 3] != in[i*8 + 3]
      37           || out[i*8 + 4] != in[i*8 + 4]
      38           || out[i*8 + 5] != in[i*8 + 5]
      39           || out[i*8 + 6] != in[i*8 + 6]
      40           || out[i*8 + 7] != in[i*8 + 7]
      41           || ia[i] != in[i*8 + 2])
      42  	abort ();
      43      }
      44  
      45    return 0;
      46  }
      47  
      48  int main (void)
      49  {
      50    check_vect ();
      51  
      52    main1 ();
      53  
      54    return 0;
      55  }
      56  
      57  /* { dg-final { scan-tree-dump-times "vectorized 1 loops" 1 "vect" { target vect_strided8 } } } */
      58  /* { dg-final { scan-tree-dump-times "vectorized 0 loops" 1 "vect" { target { ! vect_strided8 } } } } */
      59  /* { dg-final { scan-tree-dump-times "vectorizing stmts using SLP" 1 "vect" { target vect_strided8 } } } */
      60  /* { dg-final { scan-tree-dump-times "vectorizing stmts using SLP" 0 "vect" { target { ! vect_strided8} } } } */