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

Reply via email to