(root)/
gcc-13.2.0/
gcc/
testsuite/
gcc.dg/
vect/
bb-slp-1.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  unsigned int out[N*8];
       9  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, 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};
      10  
      11  __attribute__ ((noinline)) int
      12  main1 (int dummy)
      13  {
      14    int i;
      15    unsigned int *pin = &in[0];
      16    unsigned int *pout = &out[0];
      17    
      18    for (i = 0; i < N; i++)
      19      {
      20        *pout++ = *pin++;
      21        *pout++ = *pin++;
      22        *pout++ = *pin++;
      23        *pout++ = *pin++;
      24        *pout++ = *pin++;
      25        *pout++ = *pin++;
      26        *pout++ = *pin++;
      27        *pout++ = *pin++;
      28        asm volatile ("" ::: "memory");
      29      }
      30  
      31    /* check results: */ 
      32    for (i = 0; i < N; i++)
      33      {
      34        if (out[i*8] !=  in[i*8]
      35           || out[i*8 + 1] != in[i*8 + 1]
      36           || out[i*8 + 2] != in[i*8 + 2]
      37           || out[i*8 + 3] != in[i*8 + 3]
      38           || out[i*8 + 4] != in[i*8 + 4]
      39           || out[i*8 + 5] != in[i*8 + 5]
      40           || out[i*8 + 6] != in[i*8 + 6]
      41           || out[i*8 + 7] != in[i*8 + 7])
      42  	abort ();
      43      }
      44  
      45    return 0;
      46  }
      47  
      48  int main (void)
      49  {
      50    check_vect ();
      51  
      52    main1 (33);
      53  
      54    return 0;
      55  }
      56  
      57  /* { dg-final { scan-tree-dump-not "can't force alignment" "slp1" } } */
      58  /* { dg-final { scan-tree-dump-times "optimized: basic block" 1 "slp1" } } */