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!
