https://gcc.gnu.org/bugzilla/show_bug.cgi?id=103124
--- Comment #2 from HaoChen Gui <guihaoc at gcc dot gnu.org> ---
//lower-subreg.c
/* If this is a cast from one mode to another, where the modes
have the same size, and they are not tieable, then mark this
register as non-decomposable. If we decompose it we are
likely to mess up whatever the backend is trying to do. */
if (outer_words > 1
&& outer_size == inner_size
&& !targetm.modes_tieable_p (GET_MODE (x), GET_MODE (inner)))
{
bitmap_set_bit (non_decomposable_context, regno);
bitmap_set_bit (subreg_context, regno);
iter.skip_subrtxes ();
continue;
}
As TI and V1TI is not tieable on powerpc, TI register 122 in the following insn
can't be decomposed.
(insn 12 11 13 2 (set (reg:V1TI 121 [ b ])
(subreg:V1TI (reg:TI 122) 0)) "test2.c":4:5 1167 {vsx_movv1ti_64bit}
(nil))