1  /* { dg-require-effective-target vect_long_long } */
       2  
       3  #include "tree-vect.h"
       4  
       5  long long x[24];
       6  long long y[16];
       7  long long z[8];
       8  
       9  void __attribute__((noinline)) foo()
      10  {
      11    for (int i = 0; i < 8; ++i)
      12      {
      13        y[2*i] = x[3*i];
      14        y[2*i + 1] = x[3*i + 1];
      15        z[i] = 1;
      16      }
      17  }
      18  
      19  int main()
      20  {
      21    check_vect ();
      22  
      23    for (int i = 0; i < 24; ++i)
      24      {
      25        x[i] = i;
      26        __asm__ volatile ("" : : : "memory");
      27      }
      28    foo ();
      29    for (int i = 0; i < 8; ++i)
      30      if (y[2*i] != 3*i || y[2*i+1] != 3*i + 1)
      31        __builtin_abort ();
      32  
      33    return 0;
      34  }
      35  
      36  /* { dg-final { scan-tree-dump "vectorized 1 loops" "vect" } } */