[Bug target/71153] aarch64 LSE __atomic_fetch_and() generates inversion for constants

dhowells at redhat dot com gcc-bugzilla@gcc.gnu.org
Tue May 17 09:10:00 GMT 2016


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

--- Comment #4 from dhowells at redhat dot com <dhowells at redhat dot com> ---
That looks better here:

000000000000007c <bar_clear_bit_unlock>:
  7c:   d2a00801        mov     x1, #0x400000                   // #4194304
  80:   f8611001        ldclrl  x1, x1, [x0]
  84:   d65f03c0        ret

But foo_clear_bit_unlock() still contains the double MVN instructions.  From
the patch you posted, I take it that only affects constant integer parameters.


More information about the Gcc-bugs mailing list