https://gcc.gnu.org/bugzilla/show_bug.cgi?id=124809
--- Comment #4 from Richard Biener <rguenth at gcc dot gnu.org> ---
DOM2 comes up with
e = 0;
from
# RANGE [irange] int [0, 65535] MASK 0xffff VALUE 0x0
k_23 = (int) j_22;
if (a.0_1 == 0)
goto <bb 5>; [50.00%]
else
goto <bb 6>; [50.00%]
<bb 5> [local count: 27903866]:
iftmp.3_25 = k_23 >> _2;
<bb 6> [local count: 55807731]:
# iftmp.3_14 = PHI <iftmp.3_25(5), 0(4)>
e = iftmp.3_14;
somehow via
Global Exported: j_22 = [irange] short unsigned int [0, 0][2, 2] MASK 0x3 VALUE
0x0
Global Exported: k_23 = [irange] int [0, 0][2, 2] MASK 0x3 VALUE 0x0
Andrew?