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

--- Comment #42 from Jakub Jelinek <jakub at gcc dot gnu.org> ---
On #c0 foo, this was previously optimized in dom2 which optimized
  _4 = ABS_EXPR <x_2(D)>;
  _3 = _4 u> 1.79769313486231570814527423731704356798070567525844996599e+308;
  _5 = ~_3;
  if (_4 u> 1.79769313486231570814527423731704356798070567525844996599e+308)
    goto <bb 3>; [0.00%]
  else
    goto <bb 4>; [100.00%]

  <bb 3> [count: 0]:
  __builtin_unreachable ();

  <bb 4> [local count: 1073741824]:
  return _5;
without any frange related stuff as:
-  if (_4 u> 1.79769313486231570814527423731704356798070567525844996599e+308)
+  if (_3 != 0)
and
-  return _5;
+  return 1;

But because __builtin_unreachable () is now removed earlier (vrp1 already;
without providing useful global range though), we don't do that anymore.

Reply via email to