This one line patch is a pre-requisite to a solution to PR target/123506;
an effort to improve middle-end code for returning structures. Currently,
emit_group_load_1 contains code to handle a CONCAT returned by force_reg.
This tweak avoids the call for force_reg if the source is already a CONCAT,
which allows this subroutine to be re-used by target-specific implementations
of emit_group_load. Many thanks to Jeff Law for cross-platform testing.
2026-01-29 Roger Sayle <roger@nextmovesoftware.com>
gcc/ChangeLog
* expr.cc (emit_group_load_1): Don't call force_reg if orig_src
is already a CONCAT.
src = orig_src;
if (!MEM_P (orig_src)
&& (!REG_P (orig_src) || HARD_REGISTER_P (orig_src))
+ && GET_CODE (orig_src) != CONCAT
&& !CONSTANT_P (orig_src))
{
gcc_assert (GET_MODE (orig_src) != VOIDmode);