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.