https://gcc.gnu.org/bugzilla/show_bug.cgi?id=64700
Andrew Pinski <pinskia at gcc dot gnu.org> changed: What |Removed |Added ---------------------------------------------------------------------------- Status|NEW |ASSIGNED Assignee|unassigned at gcc dot gnu.org |pinskia at gcc dot gnu.org CC| |pinskia at gcc dot gnu.org Severity|normal |enhancement --- Comment #4 from Andrew Pinski <pinskia at gcc dot gnu.org> --- <bb 7> [local count: 958878293]: if (dir_lsm.26_39 == 1) goto <bb 8>; [34.00%] else goto <bb 9>; [66.00%] <bb 8> [local count: 326018623]: _11 = arr1.6_10 + _5; _12 = *_11; goto <bb 10>; [100.00%] <bb 9> [local count: 632859670]: _14 = arr2.9_13 + _5; _15 = *_14; <bb 10> [local count: 958878293]: # cstore_45 = PHI <_12(8), _15(9)> PHI-OPT improvements that I am working on might be able to handle this case too. MEM_EXPR is a little harder than the normal expression as you need to check the access type for aliasing reasons. Note PHI-OPT does handle the casting case already (but it is not listed here).