1  /* PR target/82370 */
       2  /* { dg-do compile } */
       3  /* { dg-options "-O2 -mavx512vl -mavx512bw -masm=att" } */
       4  /* { dg-final { scan-assembler-times "vpslldq\[ \t]\+\\\$5, \\(%\[a-z0-9,]*\\), %xmm\[0-9]\+" 1 } } */
       5  /* { dg-final { scan-assembler-times "vpsrldq\[ \t]\+\\\$5, \\(%\[a-z0-9,]*\\), %xmm\[0-9]\+" 1 } } */
       6  /* { dg-final { scan-assembler-times "vpslldq\[ \t]\+\\\$5, \\(%\[a-z0-9,]*\\), %ymm\[0-9]\+" 1 } } */
       7  /* { dg-final { scan-assembler-times "vpsrldq\[ \t]\+\\\$5, \\(%\[a-z0-9,]*\\), %ymm\[0-9]\+" 1 } } */
       8  /* { dg-final { scan-assembler-times "vpslldq\[ \t]\+\\\$5, \\(%\[a-z0-9,]*\\), %zmm\[0-9]\+" 1 } } */
       9  /* { dg-final { scan-assembler-times "vpsrldq\[ \t]\+\\\$5, \\(%\[a-z0-9,]*\\), %zmm\[0-9]\+" 1 } } */
      10  
      11  #include <x86intrin.h>
      12  
      13  __m512i f1 (__m512i *x) { return _mm512_bslli_epi128 (*x, 5); }
      14  __m512i f2 (__m512i *x) { return _mm512_bsrli_epi128 (*x, 5); }
      15  __m256i f3 (__m256i *x) { return _mm256_bslli_epi128 (*x, 5); }
      16  __m256i f4 (__m256i *x) { return _mm256_bsrli_epi128 (*x, 5); }
      17  __m128i f5 (__m128i *x) { return _mm_bslli_si128 (*x, 5); }
      18  __m128i f6 (__m128i *x) { return _mm_bsrli_si128 (*x, 5); }