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

--- Comment #23 from Florian Weimer <fw at gcc dot gnu.org> ---
Ahh, I think this bug here is specific to __uint128 (with the C front end at
least)

The C translation of the C++ reproducer from comment 20:

struct a
{
  long  _Alignas(16) x;
  long y;
};

_Bool
cmpxchg (struct a *data, struct a expected, struct a newval)
{
  return __atomic_compare_exchange_n (&data, &expected, &newval, 1,
                                      __ATOMIC_SEQ_CST, __ATOMIC_SEQ_CST);
}

produces the atomic instruction.

Reply via email to