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

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

           What    |Removed                     |Added
----------------------------------------------------------------------------
   Last reconfirmed|                            |2025-07-29
     Ever confirmed|0                           |1
             Status|UNCONFIRMED                 |ASSIGNED
           Assignee|unassigned at gcc dot gnu.org      |pinskia at gcc dot 
gnu.org

--- Comment #1 from Andrew Pinski <pinskia at gcc dot gnu.org> ---
So we have:
```
  if (_2 == 0)
    goto <bb 5>; [50.00%]
  else
    goto <bb 6>; [50.00%]

bb5:
  a_lsm.6_20 = _2;
  goto <bb 7>; [100.00%]

bb6:
  a_lsm.6_21 = c.1_3;

bb7:
  # RANGE [irange] int [0, 1] MASK 0x1 VALUE 0x0
  # iftmp.0_5 = PHI <1(5), _13(6)>
  # a_lsm.6_8 = PHI <a_lsm.6_20(5), a_lsm.6_21(6)>
```
We factor out a_lsm.6_21 assignment which is fine but we don't leave behind a
new phi for it.
And things get confused by that.

so I have a simple patch which reverts my previous patch (since it is overly
complicated) and changes the phi a_lsm.6_8 to be with the new arguments/result
since we know this is a 2 argument only phi it is ok.

Reply via email to