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



             Bug #: 55055

           Summary: [4.8 regression] RTL check: expected code 'reg', have

                    'subreg' in rhs_regno, at rtl.h:1123

    Classification: Unclassified

           Product: gcc

           Version: 4.8.0

            Status: UNCONFIRMED

          Severity: normal

          Priority: P3

         Component: rtl-optimization

        AssignedTo: unassig...@gcc.gnu.org

        ReportedBy: dim...@gmail.com





$ gcc -v

Using built-in specs.

COLLECT_GCC=gcc

COLLECT_LTO_WRAPPER=/usr/local/gcc_current/libexec/gcc/x86_64-unknown-linux-gnu/4.8.0/lto-wrapper

Target: x86_64-unknown-linux-gnu

Configured with: /home/dimhen/src/gcc-current/configure

--prefix=/usr/local/gcc_current --enable-__cxa_atexit --enable-shared

--enable-checking=yes,df,fold,rtl,tree --enable-gnu-unique-object

--enable-linker-build-id --enable-languages=c,c++,lto --enable-plugin

--enable-version-specific-runtime-libs --with-tune=generic

Thread model: posix

gcc version 4.8.0 20121024 (experimental) [trunk revision 192761] (GCC) 





PASS -02

FAIL -O2 -ftree-vectorize



$ gcc -fpreprocessed -Wall -O2 -ftree-vectorize -c 1.i

1.i: In function 'fn1':

1.i:12:1: internal compiler error: RTL check: expected code 'reg', have

'subreg' in rhs_regno, at rtl.h:1123

 }

 ^

0x8e0847 rtl_check_failed_code1(rtx_def const*, rtx_code, char const*, int,

char const*)

    /home/dimhen/src/gcc-current/gcc/rtl.c:772

0xfa555f rhs_regno

    /home/dimhen/src/gcc-current/gcc/rtl.h:1123

0xd4f490 rhs_regno

    /home/dimhen/src/gcc-current/gcc/rtl.h:1122

0xf823be peephole2_insns(rtx_def*, rtx_def*, int*)

    /home/dimhen/src/gcc-current/gcc/config/i386/i386.md:17380

0x890b20 peephole2_optimize

    /home/dimhen/src/gcc-current/gcc/recog.c:3551

0x890b20 rest_of_handle_peephole2

    /home/dimhen/src/gcc-current/gcc/recog.c:3735

Please submit a full bug report,



reduced test

$ cat 1.i

long a;

int *b, *c;

void fn1 ()

{

    int l, d;

    d = a;

    for (; d; d--, c++)

    {

        l = *b++;

        *c = l;

    }

}

Reply via email to