gcc/lower_subreg.c: Prevent decomposition if modes are not tieable
Preventing decomposition if modes are not tieable is necessary to stop AArch64 partial Neon structure modes being treated as packed in registers. This is a necessary prerequisite for a future AArch64 PCS change to maintain good code generation. gcc/ChangeLog: 2021-10-14 Jonathan Wright <jonathan.wright@arm.com> * lower-subreg.c (simple_move): Prevent decomposition if modes are not tieable.
This commit is contained in:
parent
66f206b853
commit
511245325a
|
@ -383,8 +383,10 @@ simple_move (rtx_insn *insn, bool speed_p)
|
|||
non-integer mode for which there is no integer mode of the same
|
||||
size. */
|
||||
mode = GET_MODE (SET_DEST (set));
|
||||
scalar_int_mode int_mode;
|
||||
if (!SCALAR_INT_MODE_P (mode)
|
||||
&& !int_mode_for_size (GET_MODE_BITSIZE (mode), 0).exists ())
|
||||
&& (!int_mode_for_size (GET_MODE_BITSIZE (mode), 0).exists (&int_mode)
|
||||
|| !targetm.modes_tieable_p (mode, int_mode)))
|
||||
return NULL_RTX;
|
||||
|
||||
/* Reject PARTIAL_INT modes. They are used for processor specific
|
||||
|
|
Loading…
Reference in New Issue