https://gcc.gnu.org/bugzilla/show_bug.cgi?id=113485
Jakub Jelinek <jakub at gcc dot gnu.org> changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |jakub at gcc dot gnu.org --- Comment #6 from Jakub Jelinek <jakub at gcc dot gnu.org> --- Yeah, in particular the ;; Sign- or zero-extend a 64-bit integer vector to a 128-bit vector. (define_insn_and_split "<optab><Vnarrowq><mode>2" [(set (match_operand:VQN 0 "register_operand" "=w") (ANY_EXTEND:VQN (match_operand:<VNARROWQ> 1 "register_operand" "w")))] "TARGET_SIMD" "<su>xtl\t%0.<Vtype>, %1.<Vntype>" "&& <CODE> == ZERO_EXTEND && aarch64_split_simd_shift_p (insn)" [(const_int 0)] { /* On many cores, it is cheaper to implement UXTL using a ZIP1 with zero, provided that the cost of the zero can be amortized over several operations. We'll later recombine the zero and zip if there are not sufficient uses of the zero to make the split worthwhile. */ rtx res = simplify_gen_subreg (<VNARROWQ2>mode, operands[0], <MODE>mode, 0); rtx zero = aarch64_gen_shareable_zero (<VNARROWQ2>mode); rtx op = lowpart_subreg (<VNARROWQ2>mode, operands[1], <VNARROWQ>mode); emit_insn (gen_aarch64_zip1<Vnarrowq2> (res, op, zero)); DONE; } [(set_attr "type" "neon_shift_imm_long")] ) splitter here. Note, this ICE breaks quite a few packages in fedora, including firefox.