https://gcc.gnu.org/bugzilla/show_bug.cgi?id=92658

--- Comment #1 from Richard Biener <rguenth at gcc dot gnu.org> ---
It looks like there are already some avx512 patterns matching this but they
are not visible to the RTL expanders.

(define_insn "zero_extendv8qiv8hi2"
  [(set (match_operand:V8HI 0 "register_operand" "=x,v")
        (zero_extend:V8HI (match_operand:V8QI 1 "register_operand" "x,v")))]
  "TARGET_SSE2"
  "@
   punpcklbw\t{%1, %0|%0, %1}
   vpunpcklbw\t{%1, %0|%0, %1}"
)

does it for the testcase pasted but truncation and other extends are also
missing, likewise for floats.

Reply via email to