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

Roger Sayle <roger at nextmovesoftware dot com> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |roger at nextmovesoftware dot 
com

--- Comment #16 from Roger Sayle <roger at nextmovesoftware dot com> ---
Advance warning that the testcase pr82580.c will start FAILing due to
differences in register allocation following improvements to __int128 parameter
passing as explained in
https://gcc.gnu.org/pipermail/gcc-patches/2023-July/623756.html.
We might need additional reload alternatives/preferences to ensure that we
don't generate a movzbl.  Hopefully, Jakub and/or Uros have some suggestions
for how best this can be fixed.

Previously, the SUBREGs and CLOBBERs generated by middle-end RTL expansion
(unintentionally) ensured that rdx and rax would never be used for __int128
arguments, which conveniently allowed the use of xor eax,eax; setc al in
peephole2 as AX_REG wasn't live.  Now reload has more freedom, it elects to use
rax as at this point the backend hasn't expressed any preference that it would
like eax reserved for producing the result.

Reply via email to