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

Richard Biener <rguenth at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
   Target Milestone|---                         |17.0
            Summary|ICE at -O3 on               |[17 Regression] ICE at -O3
                   |x86_64-linux-gnu during     |on x86_64-linux-gnu during
                   |GIMPLE pass: vect           |GIMPLE pass: vect
             Status|UNCONFIRMED                 |ASSIGNED
           Assignee|unassigned at gcc dot gnu.org      |rguenth at gcc dot 
gnu.org
     Ever confirmed|0                           |1
   Last reconfirmed|                            |2026-08-24

--- Comment #1 from Richard Biener <rguenth at gcc dot gnu.org> ---
<bb 3> [local count: 1605787]:
e.0_1 = e;
_2 = (unsigned int) e.0_1;
a_lsm.16_26 = a;

<bb 4> [local count: 14598063]:
# b.9_31 = PHI <_10(13), b.9_23(3)>
# a_lsm.16_25 = PHI <a_lsm.16_9(13), a_lsm.16_26(3)>
_5 = _2 + a_lsm.16_25;
_7 = _2 * 44;
a_lsm.16_9 = _5 + _7;
_10 = b.9_31 + 1;
if (_10 != 0)
  goto <bb 13>; [89.00%]
else
  goto <bb 9>; [11.00%]

_2 * 44 is invariant.  We create

t.c:4:6: note: node 0x522f070 (refcnt=2) vector(4) unsigned int cycle 0, link 2
t.c:4:6: note: op template: patt_11 = DOT_PROD_EXPR <e.0_1, 44, _5>;
t.c:4:6: note:  [l] stmt 0 patt_11 = DOT_PROD_EXPR <e.0_1, 44, _5>;
t.c:4:6: note:  children 0x522f120 0x522f1d0 0x522f280

and ICE similar to PR126997 to which this is very related but not exactly
the same (no unswitching happening).

Reply via email to