On Mon, Feb 12, 2018 at 03:59:05PM +0000, Segher Boessenkool wrote:
> 2018-02-12  Segher Boessenkool  <seg...@kernel.crashing.org>
> 
>       PR rtl-optimization/84169
>       * combine.c (try_combine): New variable split_i2i3.  Set it to true if
>       we generated a parallel as new i3 and we split that to new i2 and i3
>       instructions.  Handle split_i2i3 similar to swap_i2i3: scan the
>       LOG_LINKs of i3 to see which of those need to link to i2 now.  Link
>       those to i2, not i1.  Partially rewrite this scan code.

> +      unsigned int regno = REGNO (SET_DEST (x));

This line ICEs with rtl checking on both x86_64-linux and i686-linux
on gcc.c-torture/compile/pr66168.c:
+FAIL: gcc.c-torture/compile/pr66168.c   -O2  (internal compiler error)
+FAIL: gcc.c-torture/compile/pr66168.c   -O2  (test for excess errors)
+FAIL: gcc.c-torture/compile/pr66168.c   -O2 -flto -fno-use-linker-plugin 
-flto-partition=none  (internal compiler error)
+FAIL: gcc.c-torture/compile/pr66168.c   -O2 -flto -fno-use-linker-plugin 
-flto-partition=none  (test for excess errors)
+FAIL: gcc.c-torture/compile/pr66168.c   -O3 -g  (internal compiler error)
+FAIL: gcc.c-torture/compile/pr66168.c   -O3 -g  (test for excess errors)
+FAIL: gcc.c-torture/compile/pr66168.c   -Os  (internal compiler error)
+FAIL: gcc.c-torture/compile/pr66168.c   -Os  (test for excess errors)

/home/jakub/src/gcc/gcc/testsuite/gcc.c-torture/compile/pr66168.c:15:1: 
internal compiler error: RTL check: expected code 'reg', have 'subreg' in 
rhs_regno, at rtl.h:1896
0x6755ff rtl_check_failed_code1(rtx_def const*, rtx_code, char const*, int, 
char const*)
        ../../gcc/rtl.c:844
0x7fcdd2 rhs_regno
        ../../gcc/rtl.h:1896
0x807e75 rhs_regno
        ../../gcc/rtl.h:1447
0x807e75 try_combine
        ../../gcc/combine.c:4286
0x1680cc1 combine_instructions
        ../../gcc/combine.c:1320
0x1680cc1 rest_of_handle_combine
        ../../gcc/combine.c:14881
0x1680cc1 execute
        ../../gcc/combine.c:14926

        Jakub

Reply via email to