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

--- Comment #1 from Hongyu Wang <wwwhhhyyy333 at gmail dot com> ---
I think should be these 2?

(define_insn_and_split "avx512f_<castmode><avxsizesuffix>_<castmode>"
  [(set (match_operand:AVX512MODE2P 0 "nonimmediate_operand" "=x,m")
        (vec_concat:AVX512MODE2P
          (vec_concat:<ssehalfvecmode>
            (match_operand:<ssequartermode> 1 "nonimmediate_operand" "xm,x")
            (unspec:<ssequartermode> [(const_int 0)] UNSPEC_CAST))
          (unspec:<ssehalfvecmode> [(const_int 0)] UNSPEC_CAST)))]
  "TARGET_AVX512F && !(MEM_P (operands[0]) && MEM_P (operands[1]))"

(define_insn_and_split "avx512f_<castmode><avxsizesuffix>_256<castmode>"
  [(set (match_operand:AVX512MODE2P 0 "nonimmediate_operand" "=x,m")
        (vec_concat:AVX512MODE2P
          (match_operand:<ssehalfvecmode> 1 "nonimmediate_operand" "xm,x")
          (unspec:<ssehalfvecmode> [(const_int 0)] UNSPEC_CAST)))]
  "TARGET_AVX512F && !(MEM_P (operands[0]) && MEM_P (operands[1]))"

The AVX insn shouldn't have constraints "v"

Reply via email to