| /* PR target/95524 */ |
| /* { dg-do compile } */ |
| /* { dg-options "-O2 -mavx2 -mno-avx512f" } */ |
| /* { dg-final { scan-assembler-times "vpand\[^\n\]*%ymm" 3 } } */ |
| typedef char v32qi __attribute__ ((vector_size (32))); |
| typedef unsigned char v32uqi __attribute__ ((vector_size (32))); |
| |
| __attribute__((noipa)) v32qi |
| foo_ashiftrt_256 (v32qi a) |
| { |
| return a >> 2; |
| } |
| /* { dg-final { scan-assembler-times "vpsraw\[^\n\]*%ymm" 1 } } */ |
| /* { dg-final { scan-assembler-times "vpxor\[^\n\]*%ymm" 1 } } */ |
| /* { dg-final { scan-assembler-times "vpsubb\[^\n\]*%ymm" 1 } } */ |
| |
| __attribute__((noipa)) v32qi |
| foo_ashift_256 (v32qi a) |
| { |
| return a << 7; |
| } |
| |
| /* { dg-final { scan-assembler-times "vpsllw\[^\n\]*%ymm" 1 } } */ |
| |
| __attribute__((noipa)) v32uqi |
| foo_lshiftrt_256 (v32uqi a) |
| { |
| return a >> 2; |
| } |
| |
| /* { dg-final { scan-assembler-times "vpsrlw\[^\n\]*%ymm" 1 } } */ |