------- 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