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

            Bug ID: 121003
           Summary: Sometimes __builtin_unreachable is still there before
                    the vectorizer
           Product: gcc
           Version: 16.0
            Status: UNCONFIRMED
          Keywords: missed-optimization
          Severity: normal
          Priority: P3
         Component: tree-optimization
          Assignee: unassigned at gcc dot gnu.org
          Reporter: pinskia at gcc dot gnu.org
  Target Milestone: ---

Created attachment 61821
  --> https://gcc.gnu.org/bugzilla/attachment.cgi?id=61821&action=edit
testcase

Take the attached testcase (which is from PR 120996 but added some if (a)
__builtin_unreachable() that I thought would help) and we have some `if (a)
__builtin_unreachable()` still there in ifcvt even though we got the ranges
from them already.

This is at -O3.

I have not reduced the testcase yet though.

The form of the `if (a)unreachable()` are all of:
if (__builtin_isinf (x) || __builtin_isnan(x))
  __builtin_unreachable();

Trying to say we only have finite values.

Reply via email to