https://gcc.gnu.org/bugzilla/show_bug.cgi?id=108862
Jakub Jelinek <jakub at gcc dot gnu.org> changed: What |Removed |Added ---------------------------------------------------------------------------- Assignee|unassigned at gcc dot gnu.org |jakub at gcc dot gnu.org Status|NEW |ASSIGNED --- Comment #2 from Jakub Jelinek <jakub at gcc dot gnu.org> --- The reason is that gen_umaddditi4 is called with the same pseudo as operands[0] and operands[3] and so gen_maddlddi4 overwrites its low half before gen_umadddi4_highpart{,_le} uses it. We could create a temporary if some overlap is mentioned, or can create it unconditionally and let later optimizations deal with it.