------- Comment #1 from rguenth at gcc dot gnu dot org 2006-09-05 15:09 -------
Confirmed. In short:
short test(short y)
{
return __sync_and_and_fetch(&y, ~(0x01| 0x02 | 0x03));
}
ICEs with -O -march=pentium4:
t.c: In function 'test':
t.c:4: error: unrecognizable insn:
(insn 14 19 15 2 (set (reg:HI 64)
(const_int 65532 [0xfffc])) -1 (nil)
(nil))
t.c:4: internal compiler error: in extract_insn, at recog.c:2084
Please submit a full bug report,
with preprocessed source if appropriate.
See <URL:http://www.suse.de/feedback> for instructions.
with -march=i386 we promote this to HI mode.
--
rguenth at gcc dot gnu dot org changed:
What |Removed |Added
----------------------------------------------------------------------------
Status|UNCONFIRMED |NEW
Component|c |target
Ever Confirmed|0 |1
GCC target triplet| |i?86-*-*
Last reconfirmed|0000-00-00 00:00:00 |2006-09-05 15:09:15
date| |
Summary|"unrecognizable insn" : |"unrecognizable insn" :
|atomic op on short with bit |atomic op on short with bit
|inversion on val |inversion on val
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=28955