https://gcc.gnu.org/bugzilla/show_bug.cgi?id=127105
Richard Biener <rguenth at gcc dot gnu.org> changed:
What |Removed |Added
----------------------------------------------------------------------------
Known to fail| |16.2.0
Known to work| |15.3.0
Summary|[17 Regression] ICE |[16/17 Regression] ICE
|Segmentation fault in |Segmentation fault in
|vect_analyze_slp_reduc_chai |vect_analyze_slp_reduc_chai
|n since r17-2737 |n since r17-2737
Priority|P3 |P2
Target Milestone|17.0 |16.3
--- Comment #2 from Richard Biener <rguenth at gcc dot gnu.org> ---
This was also backported, thus confirmed on the branch as well.
Original scalar stmt is
patt_9 = (char) c_0_lsm.5_15;
and the original stmt is
_3 = (char) f_8;
so we get a STMT_VINFO_REDUC_CODE of NOP_EXPR from the original "reduction"
<bb 3> [local count: 402653184]:
# d_13 = PHI <d_10(7), 0(13)>
# c_0_lsm.5_15 = PHI <_3(7), c_0_lsm.5_6(13)>
# ivtmp_18 = PHI <ivtmp_11(7), 3(13)>
f_8 = (int) c_0_lsm.5_15;
_3 = (char) f_8;
d_10 = d_13 + 1;
ivtmp_11 = ivtmp_18 - 1;
if (ivtmp_11 != 0)
goto <bb 7>; [66.67%]
else
goto <bb 6>; [33.33%]
<bb 6> [local count: 268435456]:
# _16 = PHI <_3(3), 0(2)>
c_0 = _16;
return;
and the pattern stmt converts a char to itself.