1  /* { dg-do compile } */
       2  /* { dg-options "-O2 -mavx -ftree-vectorize -fvect-cost-model=unlimited -fdump-tree-vect-details -mprefer-vector-width=256" } */
       3  /* { dg-final { scan-tree-dump-times "vectorized 1 loops" 6 "vect" } } */
       4  /* { dg-final { scan-tree-dump-times {(?n)add new stmt:.*MEM <vector\(4\) double>} 2 "vect" } } */
       5  /* { dg-final { scan-tree-dump-times {(?n)add new stmt:.*MEM <vector\(8\) float>} 2 "vect" } } */
       6  /* { dg-final { scan-tree-dump-times {(?n)add new stmt:.*MEM <vector\(4\) long long int>} 2 "vect" } } */
       7  /* { dg-final { scan-tree-dump-times {(?n)add new stmt:.*MEM <vector\(8\) int>} 2 "vect" } } */
       8  /* { dg-final { scan-tree-dump-times {(?n)add new stmt:.*MEM <vector\(16\) short int>} 2 "vect" } } */
       9  /* { dg-final { scan-tree-dump-times {(?n)add new stmt:.*MEM <vector\(32\) char>} 2 "vect" } } */
      10  
      11  #define N 10000
      12  void
      13  __attribute__((noipa))
      14  foo_pd (_Complex double* a, _Complex double* b)
      15  {
      16    for (int i = 0; i != N; i++)
      17      a[i] = b[i];
      18  }
      19  
      20  void
      21  __attribute__((noipa))
      22  foo_ps (_Complex float* a, _Complex float* b)
      23  {
      24    for (int i = 0; i != N; i++)
      25      a[i] = b[i];
      26  }
      27  
      28  void
      29  __attribute__((noipa))
      30  foo_epi64 (_Complex long long* a, _Complex long long* b)
      31  {
      32    for (int i = 0; i != N; i++)
      33      a[i] = b[i];
      34  }
      35  
      36  void
      37  __attribute__((noipa))
      38  foo_epi32 (_Complex int* a, _Complex int* b)
      39  {
      40    for (int i = 0; i != N; i++)
      41      a[i] = b[i];
      42  }
      43  
      44  void
      45  __attribute__((noipa))
      46  foo_epi16 (_Complex short* a, _Complex short* b)
      47  {
      48    for (int i = 0; i != N; i++)
      49      a[i] = b[i];
      50  }
      51  
      52  void
      53  __attribute__((noipa))
      54  foo_epi8 (_Complex char* a, _Complex char* b)
      55  {
      56    for (int i = 0; i != N; i++)
      57      a[i] = b[i];
      58  }