https://gcc.gnu.org/bugzilla/show_bug.cgi?id=118182

--- Comment #8 from Alexandre Oliva <aoliva at gcc dot gnu.org> ---
The problem is that the @pred_broadcast<mode> pattern expands to _zvfh insns
even when _zero or _imm would do.  The scalar constant gets allocated to a
register, and vec_duplicated in the pred_broadcast insn, only to be substituted
by the late combine pass after register allocation.

Since gcc-14 lacks the late combine passes, the substitution doesn't occur.

I'm testing an improvement to the expander that fixes the new failure in
gcc-14, and that avoids wasting a register in gcc-15.

Reply via email to