[Bug c/28955] New: "unrecognizable insn" : atomic op on short with bit inversion on val

kawika at QEDmail dot com gcc-bugzilla@gcc.gnu.org
Tue Sep 5 14:35:00 GMT 2006


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



More information about the Gcc-bugs mailing list