https://gcc.gnu.org/bugzilla/show_bug.cgi?id=103079

--- Comment #7 from Richard Biener <rguenth at gcc dot gnu.org> ---
=========== BB 2 ============
Imports: b.0_1  t_4(D)
Exports: b.0_1  t_4(D)  _6
         _6 : b.0_1(I)  t_4(D)(I)
t_4(D)  UNDEFINED
    <bb 2> [local count: 176285970]:
    b.0_1 = b;
    _6 = b.0_1 | t_4(D);
    if (_6 != 0)
      goto <bb 3>; [34.00%]
    else
      goto <bb 7>; [66.00%]

2->3  (T) b.0_1 :       UNDEFINED
2->3  (T) t_4(D) :      UNDEFINED
2->3  (T) _6 :  int [-INF, -1][1, +INF]

I think 2->3 (T) b.0_1 : UNDEFINED is wrong.  if b.0_1 is 1 then 1 | UNDEF
is still 1 and there's nothing "undefined" in evaluating if (1 | UNDEF !+ 0).

Reply via email to