https://gcc.gnu.org/bugzilla/show_bug.cgi?id=110582
Richard Biener <rguenth at gcc dot gnu.org> changed: What |Removed |Added ---------------------------------------------------------------------------- Priority|P3 |P1 CC| |amacleod at redhat dot com --- Comment #2 from Richard Biener <rguenth at gcc dot gnu.org> --- It works with -fno-tree-loop-optimize but the difference from loop opts is just int main () { int D.2782; int b_lsm.13; int a_lsm.12; char c; - unsigned char c.6_2; - unsigned char _3; int iftmp.1_11; int _12(D); int iftmp.1_15; + unsigned char ivtmp_36; + unsigned char ivtmp_37; int _38; long int _39; long int _40; @@ -23,8 +21,8 @@ <bb 2> [local count: 10737416]: <bb 3> [local count: 1063004409]: - # c_21 = PHI <c_18(5), 0(2)> # a_lsm.12_4 = PHI <iftmp.1_11(5), 0(2)> + # ivtmp_37 = PHI <ivtmp_36(5), 253(2)> if (a_lsm.12_4 != 0) goto <bb 4>; [50.00%] else @@ -35,10 +33,8 @@ <bb 5> [local count: 1063004409]: # iftmp.1_11 = PHI <iftmp.1_15(4), 2(3)> - c.6_2 = (unsigned char) c_21; - _3 = c.6_2 + 1; - c_18 = (char) _3; - if (c_18 != -3) + ivtmp_36 = ivtmp_37 - 1; + if (ivtmp_36 != 0) goto <bb 3>; [98.99%] else with that indeed threadfull2 miscompiles this somehow. Andrew?