/* 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 } } */