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

            Bug ID: 111542
           Summary: [11/12/13/14 Regression]
           Product: gcc
           Version: 14.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: ---

Take:
```
_Bool f(int x,int y)
{
  _Bool a = x == 0;
  _Bool b = y == 0;
  _Bool t = a & b;
  return t & !a;
}

```

This used to optimize to 0 in GCC 6 but starting with GCC 7, we get:
```
  _5 = x_2(D) | y_3(D);
  _6 = _5 == 0;
  _1 = x_2(D) != 0;
  _7 = _1 & _6;
```

Reply via email to