http://gcc.gnu.org/bugzilla/show_bug.cgi?id=53385

             Bug #: 53385
           Summary: "Error: operand out of range" after changes for
                    LSHIFT_EXPR in vrp.c
    Classification: Unclassified
           Product: gcc
           Version: 4.8.0
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: tree-optimization
        AssignedTo: unassig...@gcc.gnu.org
        ReportedBy: wschm...@gcc.gnu.org
                CC: berg...@vnet.ibm.com, meiss...@gcc.gnu.org,
                    pthau...@us.ibm.com, rguent...@suse.de
              Host: powerpc64-linux
            Target: powerpc64-linux
             Build: powerpc64-linux


Starting with revision 187535, bootstrap is broken on
powerpc64-unknown-linux-gnu:

/home/wschmidt/gcc/build/gcc-mainline-base/./gcc/xgcc
-B/home/wschmidt/gcc/build/gcc-mainline-base/./gcc/
-B/home/wschmidt/gcc/install/gcc-mainline-base/powerpc64-linux/bin/
-B/home/wschmidt/gcc/install/gcc-mainline-base/powerpc64-linux/lib/ -isystem
/home/wschmidt/gcc/install/gcc-mainline-base/powerpc64-linux/include -isystem
/home/wschmidt/gcc/install/gcc-mainline-base/powerpc64-linux/sys-include    -g
-O2 -O2  -g -O2 -DIN_GCC   -W -Wall -Wno-narrowing -Wwrite-strings -Wcast-qual
-Wstrict-prototypes -Wmissing-prototypes -Wold-style-definition  -isystem
./include   -fPIC -mlong-double-128 -mno-minimal-toc -g -DIN_LIBGCC2
-fbuilding-libgcc -fno-stack-protector   -fPIC -mlong-double-128
-mno-minimal-toc -I. -I. -I../.././gcc
-I/home/wschmidt/gcc/gcc-mainline-base/libgcc
-I/home/wschmidt/gcc/gcc-mainline-base/libgcc/.
-I/home/wschmidt/gcc/gcc-mainline-base/libgcc/../gcc
-I/home/wschmidt/gcc/gcc-mainline-base/libgcc/../include
-I/home/wschmidt/gcc/gcc-mainline-base/libgcc/../libdecnumber/dpd
-I/home/wschmidt/gcc/gcc-mainline-base/libgcc/../libdecnumber -DHAVE_CC_TLS  -o
_gcov_interval_profiler.o -MT _gcov_interval_profiler.o -MD -MP -MF
_gcov_interval_profiler.dep -DL_gcov_interval_profiler -c
/home/wschmidt/gcc/gcc-mainline-base/libgcc/libgcov.c

/tmp/ccrZ0fWL.s: Assembler messages:
/tmp/ccrZ0fWL.s:49: Error: operand out of range (65 is not between 0 and 63)

*** [_gcov_interval_profiler.o] Error 1
make[3]: *** Waiting for unfinished jobs....

An example of the problem is:

long unsigned foo (long unsigned a) { return (a << 2) & 0x3fffffffc; }

which produces "rldic 3,3,2,65" instead of "rldic 3,3,2,30".

Reply via email to