http://gcc.gnu.org/bugzilla/show_bug.cgi?id=52558
--- Comment #14 from Aldy Hernandez <aldyh at gcc dot gnu.org> 2012-04-10 17:07:22 UTC --- Richard G., or perhaps another aliasing expert. I am working on a patch for this problem. Could you pontificate as to why no optimization pass has been able to figure out that g_2_lsm.6_12 == g_2 below? # VUSE <.MEM_9(D)> g_2_lsm.6_12 = g_2; <-- g_2_lsm set to g_2 if (pretmp.4_1 != 0) goto <bb 3>; else goto <bb 5>; <bb 3>: # VUSE <.MEM_9(D)> D.1883_17 = g_2; if (g_2_lsm.6_12 != D.1883_17) <-- g_2_lsm compared with g_2 goto <bb 4>; Why can't anyone figure out that g_2_lsm is g_2? Am I building the conditions and stores incorrectly, is there a missing annotation, or is something else amok here? Thanks.