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

--- Comment #20 from Thiago Macieira <thiago at kde dot org> ---
And:

$ cat /tmp/test.cpp 
#include <atomic>
bool tbit(std::atomic<long> &i)
{
  return i.fetch_xor(CONSTANT, std::memory_order_relaxed) & (CONSTANT);
}
$ ~/dev/gcc/bin/gcc "-DCONSTANT=(1LL<<63)" -S -o - -O2 /tmp/test.cpp | sed
'1,/startproc/d;/endproc/,$d'
        lock btcq       $63, (%rdi)
        setc    %al
        ret

Nice!

Reply via email to