https://gcc.gnu.org/bugzilla/show_bug.cgi?id=96015
--- Comment #16 from Sergei Trofimovich <slyfox at inbox dot ru> --- If I looks at bad-bug.c.190t.dse3 I see 'self' and 'other' refer to the same .MEM_10 memory location in 'basic block 5'. I think it should not, 'basic block 4' jumps into bb5 only when self != other. Do I read it correctly? ;; basic block 4, loop depth 0, count 346397698 (estimated locally), maybe hot ;; prev block 3, next block 5, flags: (NEW, REACHABLE, VISITED) ;; pred: 3 [66.0% (guessed)] count:346397697 (estimated locally) (FALSE_VALUE,EXECUTABLE) if (self_11(D) == other_12(D)) goto <bb 7>; [30.00%] else goto <bb 5>; [70.00%] ;; succ: 7 [30.0% (guessed)] count:103919308 (estimated locally) (TRUE_VALUE,EXECUTABLE) ;; 5 [70.0% (guessed)] count:242478390 (estimated locally) (FALSE_VALUE,EXECUTABLE) ;; basic block 5, loop depth 0, count 242478389 (estimated locally), maybe hot ;; prev block 4, next block 6, flags: (NEW, REACHABLE, VISITED) ;; pred: 4 [70.0% (guessed)] count:242478390 (estimated locally) (FALSE_VALUE,EXECUTABLE) # VUSE <.MEM_10> _13 = *self_11(D); # VUSE <.MEM_10> _16 = *other_12(D); sign_17 = _13 - _16; if (sign_17 == 0) goto <bb 13>; [34.00%] else goto <bb 6>; [66.00%] ;; succ: 13 [34.0% (guessed)] count:82442653 (estimated locally) (TRUE_VALUE,EXECUTABLE) ;; 6 [66.0% (guessed)] count:160035736 (estimated locally) (FALSE_VALUE,EXECUTABLE)