/* PR target/95524 */
/* { dg-do compile } */
/* { dg-options "-O2 -mavx512bw" } */
/* { dg-final { scan-assembler-times "vpand\[^\n\]*%zmm" 2 } }  */
/* { dg-final { scan-assembler-times "vpternlogd\[^\n\]*%zmm" 1 } }  */
typedef char v64qi  __attribute__ ((vector_size (64)));
typedef unsigned char v64uqi  __attribute__ ((vector_size (64)));

__attribute__((noipa)) v64qi
foo_ashiftrt_512 (v64qi a)
{
  return a >> 2;
}
/* { dg-final { scan-assembler-times "vpsraw\[^\n\]*%zmm" 1 } } */
/* { dg-final { scan-assembler-times "vpsubb\[^\n\]*%zmm" 1 } } */

__attribute__((noipa)) v64qi
foo_ashift_512 (v64qi a)
{
  return a << 7;
}

/* { dg-final { scan-assembler-times "vpsllw\[^\n\]*%zmm" 1 } }  */

__attribute__((noipa)) v64uqi
foo_lshiftrt_512 (v64uqi a)
{
  return a >> 2;
}

/* { dg-final { scan-assembler-times "vpsrlw\[^\n\]*%zmm" 1 } }  */
