I am reporting compiler problem as advised by error message. GCC version: 4.1.0 System type: build machine is P4 3GHz, building for target i586
# Code to reproduce problem ####################### short test(short y) { return __sync_and_and_fetch(&y, ~(0x01| 0x02 | 0x03)) } Note: If the code is changed so that no bit-wise inversion is done, no problem. # Compilation error message ####################### test.c:nnn: error: unrecognizable insn: (insn 11 16 12 2 (set:HI 66) (const_int 65532 [0xfffc])) -1 (nil) (nil)) test.c:nnn: internal compiler error: in extract_insn, at recog.c:2084 ## MAKEFILE extract on optimization settings : #################################### ifeq ($(strip $(bldOPTIMIZE)),1) OPTIMIZE:= \ -fdefer-pop -fthread-jumps -fregmove -foptimize-sibling-calls \ -fcaller-saves -finline-functions \ -fexpensive-optimizations -fstrength-reduce \ -frerun-cse-after-loop -frerun-loop-opt \ -fgcse -fgcse-lm -fgcse-sm -fcse-follow-jumps -fcse-skip-blocks \ -fschedule-insns -fschedule-insns2 -fsched-spec-load \ -fomit-frame-pointer -fmerge-constants -fforce-addr \ -foptimize-register-move ifeq ($(GCC4),1) OPTIMIZE+=\ -fgcse-las -fgcse-after-reload endif ifeq ($(GCC4),1) OPTIMIZE+=\ -ftree-pre \ -ftree-ccp -ftree-dce -ftree-dominator-opts -ftree-ch -ftree-loop-optimize \ -ftree-loop-linear -ftree-loop-im -ftree-loop-ivcanon -fivopts -ftree-sra \ -ftree-copyrename -ftree-ter -ftree-lrs -ftree-vectorize \ -ftree-fre endif ifeq ($(GCC4),1) OPTIMIZE+=\ -freorder-blocks -freorder-blocks-and-partition -freorder-functions endif ifeq ($(GCC$),1) OPTIMIZE+=\ -fweb -funroll-loops -funroll-all-loops -fsplit-ivs-in-unroller \ -fvariable-expansion-in-unroller endif ifeq ($(GCC4),1) OPTIMIZE+=\ -fmove-loop-invariants \ -ftracer -fsched2-use-traces \ -fsched2-use-superblocks endif ifeq ($(GCC4),1) OPTIMIZE+=\ -fsched-spec-load # -fsched-spec-load-dangerous endif ifeq ($(GCC4),1) OPTIMIZE+=\ -freschedule-modulo-scheduled-loops \ -fif-conversion -fif-conversion2 \ -fdelete-null-pointer-checks endif ifeq ($(GCC4),1) OPTIMIZE+=\ -floop-optimize -floop-optimize2 -fcrossjumping endif -- Summary: "unrecognizable insn" : atomic op on short with bit inversion on val Product: gcc Version: 4.1.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: c AssignedTo: unassigned at gcc dot gnu dot org ReportedBy: kawika at QEDmail dot com http://gcc.gnu.org/bugzilla/show_bug.cgi?id=28955