https://gcc.gnu.org/bugzilla/show_bug.cgi?id=127965
Jakub Jelinek <jakub at gcc dot gnu.org> changed:
What |Removed |Added
----------------------------------------------------------------------------
Status|NEW |ASSIGNED
Assignee|unassigned at gcc dot gnu.org |jakub at gcc dot gnu.org
--- Comment #2 from Jakub Jelinek <jakub at gcc dot gnu.org> ---
r13-3756 and r13-3760 before fab1 are identical, after that it is:
- _1 = __atomic_fetch_or_4 (&x, 2147483648, 5);
- _2 = (signed char) _1;
- if (_2 >= 0)
+ _9 = .ATOMIC_BIT_TEST_AND_SET (&x, 31, 1, 5, __atomic_fetch_or_4);
+ if (_9 == 0)
Guess we lack a check that the cast if any has the same precision.