1  /* { dg-do compile } */
       2  /* { dg-options "-O2 -fopenmp-simd -msve-vector-bits=256 -fno-vect-cost-model" } */
       3  
       4  #include <stdint.h>
       5  
       6  void
       7  foo (uint64_t *restrict x, uint64_t *restrict y, uint64_t *restrict index)
       8  {
       9  #pragma omp for simd simdlen(2)
      10    for (int i = 0; i < 128; ++i)
      11      x[i] += y[index[i]];
      12  }
      13  
      14  /* { dg-final { scan-assembler-times {\tldr\td[0-9]+, \[x[0-9]+, x[0-9]+, lsl #?3\]} 2 } } */
      15  /* { dg-final { scan-assembler-not {\tshl\tv[0-9]+\.2d,} } } */
      16  /* { dg-final { scan-assembler-not {\tumov\t} } } */
      17  /* { dg-final { scan-assembler {\tadd\tv[0-9]+\.2d,} } } */
      18  /* { dg-final { scan-assembler {\tstr\tq[0-9]+,} } } */