https://gcc.gnu.org/bugzilla/show_bug.cgi?id=127013
Bug ID: 127013
Summary: Missed optimization of plus to or when x < CST
Product: gcc
Version: 17.0
Status: UNCONFIRMED
Severity: normal
Priority: P3
Component: tree-optimization
Assignee: unassigned at gcc dot gnu.org
Reporter: kaelfandrew at gmail dot com
Target Milestone: ---
https://godbolt.org/z/bTqxaPrTs
```
#define TYPE unsigned
#define N 4
#define CST ((TYPE)1 << N)
#define ADD_CST (TYPE)(32 + 16)
TYPE
src (TYPE x)
{
if (x >= CST
|| !(__builtin_ctzg (ADD_CST) >=
__builtin_ctzg (CST)))
__builtin_unreachable ();
// Should return x | ADD_CST;
return x + ADD_CST;
}
```