/* PR target/95488 */ /* { dg-do compile } */ /* { dg-options "-O2 -mavx512bw -mprefer-vector-width=512" } */ /* { dg-final { scan-assembler-times "vpmovzxbw" 4 } } */ /* { dg-final { scan-assembler-times "vpmullw\[^\n\]*zmm" 2 } } */ /* { dg-final { scan-assembler-times "vpmovwb" 2 } } */ typedef char v32qi __attribute__ ((vector_size (32))); typedef unsigned char v32uqi __attribute__ ((vector_size (32))); __attribute__((noipa)) v32qi mul_512 (v32qi a, v32qi b) { return a * b; } __attribute__((noipa)) v32uqi umul_512 (v32uqi a, v32uqi b) { return a * b; }