Hello, This patch extends pattern for vpbroadcastmb2q insn pattern. Bootstrapped. New tests on top of patch-set all pass under simulator.
Is it ok for trunk? gcc/ * config/i386/sse.md (define_mode_iterator VI8_AVX512VL): New. (define_insn "avx512cd_maskb_vec_dup<mode>"): Macroize. -- Thanks, K diff --git a/gcc/config/i386/sse.md b/gcc/config/i386/sse.md index f932b16..54753f9 100644 --- a/gcc/config/i386/sse.md +++ b/gcc/config/i386/sse.md @@ -266,6 +266,9 @@ (define_mode_iterator VI8 [(V8DI "TARGET_AVX512F") (V4DI "TARGET_AVX") V2DI]) +(define_mode_iterator VI8_AVX512VL + [V8DI (V4DI "TARGET_AVX512VL") (V2DI "TARGET_AVX512VL")]) + (define_mode_iterator VI1_AVX2 [(V32QI "TARGET_AVX2") V16QI]) @@ -14479,9 +14482,9 @@ (set_attr "prefix" "vex") (set_attr "mode" "<sseinsnmode>")]) -(define_insn "avx512cd_maskb_vec_dupv8di" - [(set (match_operand:V8DI 0 "register_operand" "=v") - (vec_duplicate:V8DI +(define_insn "avx512cd_maskb_vec_dup<mode>" + [(set (match_operand:VI8_AVX512VL 0 "register_operand" "=v") + (vec_duplicate:VI8_AVX512VL (zero_extend:DI (match_operand:QI 1 "register_operand" "Yk"))))] "TARGET_AVX512CD"