/* PR target/pr95488 */ /* { dg-do compile } */ /* { dg-options "-O2 -mavx512bw -mavx512vl" } */ /* { dg-final { scan-assembler-times "vpmovzxbw" 8 { target { ! ia32 } } } } */ /* { dg-final { scan-assembler-times "vpmullw\[^\n\]*ymm" 2 } } */ /* { dg-final { scan-assembler-times "vpmullw\[^\n\]*xmm" 2 { target { ! ia32 } } } } */ /* { dg-final { scan-assembler-times "vpmovwb" 4 { target { ! ia32 } } } } */ typedef char v16qi __attribute__ ((vector_size (16))); typedef char v8qi __attribute__ ((vector_size (8))); typedef unsigned char v16uqi __attribute__ ((vector_size (16))); typedef unsigned char v8uqi __attribute__ ((vector_size (8))); __attribute__((noipa)) v8qi mul_128 (v8qi a, v8qi b) { return a * b; } __attribute__((noipa)) v16qi mul_256 (v16qi a, v16qi b) { return a * b; } __attribute__((noipa)) v8uqi umul_128 (v8uqi a, v8uqi b) { return a * b; } __attribute__((noipa)) v16uqi umul_256 (v16uqi a, v16uqi b) { return a * b; }