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

Andrew Pinski <pinskia at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
   Last reconfirmed|2023-09-11 00:00:00         |
            Summary|conditional "               |conditional selection gives
                   |                            |bad code generation

--- Comment #2 from Andrew Pinski <pinskia at gcc dot gnu.org> ---
In this case we have this right before expand:
  if (v$2_9 < v$1_25)
    goto <bb 7>; [INV]
  else
    goto <bb 8>; [INV]

  <bb 7> :

  <bb 8> :
  # a$1_65 = PHI <a$1_64(6), a$2_66(7)>
  # a$2_67 = PHI <a$2_66(6), a$1_64(7)>

But this is a conditional move.
The biggest issue here is that GCC is not detecting this as a conditional move
though.

And then make really bad register allocation decisions due to that.

Reply via email to