http://gcc.gnu.org/bugzilla/show_bug.cgi?id=59780
--- Comment #1 from vries at gcc dot gnu.org --- I'm using this as workaround for the moment: ... diff --git a/gcc/config/aarch64/aarch64.c b/gcc/config/aarch64/aarch64.c index 3b1f6b5..2c75c1c 100644 --- a/gcc/config/aarch64/aarch64.c +++ b/gcc/config/aarch64/aarch64.c @@ -685,7 +685,7 @@ aarch64_split_128bit_move (rtx dst, rtx src) enum machine_mode src_mode = GET_MODE (src); enum machine_mode dst_mode = GET_MODE (dst); - int src_regno = REGNO (src); + int src_regno; int dst_regno = REGNO (dst); gcc_assert (dst_mode == TImode || dst_mode == TFmode); @@ -693,6 +693,7 @@ aarch64_split_128bit_move (rtx dst, rtx src) if (REG_P (dst) && REG_P (src)) { gcc_assert (src_mode == TImode || src_mode == TFmode); + src_regno = REGNO (src); /* Handle r -> w, w -> r. */ if (FP_REGNUM_P (dst_regno) && GP_REGNUM_P (src_regno)) @@ -754,6 +755,7 @@ aarch64_split_128bit_move (rtx dst, rtx src) } return; case TFmode: + src_regno = REGNO (src); emit_move_insn (gen_rtx_REG (DFmode, dst_regno), gen_rtx_REG (DFmode, src_regno)); emit_move_insn (gen_rtx_REG (DFmode, dst_regno + 1), ...