[Bug middle-end/37908] atomic NAND op generate wrong code; __sync_nand_and_fetch, __sync_fetch_and_nand
uros at gcc dot gnu dot org
gcc-bugzilla@gcc.gnu.org
Fri Nov 21 07:31:00 GMT 2008
------- Comment #12 from uros at gcc dot gnu dot org 2008-11-21 07:29 -------
Subject: Bug 37908
Author: uros
Date: Fri Nov 21 07:28:27 2008
New Revision: 142082
URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=142082
Log:
PR middle-end/37908
* config/ia64/ia64.c (ia64_expand_atomic_ope): Properly handle NAND
case by calculating ~(new_reg & val) instead of (~new_reg & val).
* config/ia64/sync.md (sync_nand<mode>): Change insn RTX
to (not:IMODE (and:IMODE (...))).
(sync_old_nand<mode>): Ditto.
(sync_new_nand<mode>): Ditto.
Modified:
trunk/gcc/ChangeLog
trunk/gcc/config/ia64/ia64.c
trunk/gcc/config/ia64/sync.md
trunk/gcc/testsuite/ChangeLog
--
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=37908
More information about the Gcc-bugs
mailing list