[Bug rtl-optimization/87065] [7/8/9 Regression] combine causes ICE in trunc_int_for_mode

rguenth at gcc dot gnu.org gcc-bugzilla@gcc.gnu.org
Fri Aug 24 07:41:00 GMT 2018


https://gcc.gnu.org/bugzilla/show_bug.cgi?id=87065

--- Comment #7 from Richard Biener <rguenth at gcc dot gnu.org> ---
It's combines known_cond:

Breakpoint 6, known_cond (x=0x7ffff6a65198, cond=EQ, reg=0x7ffff6a3fa20, 
    val=0x7ffff6a47930) at /space/rguenther/src/gcc-sccvn/gcc/combine.c:9468
9468      enum rtx_code code = GET_CODE (x);
(gdb) p debug_rtx (x)
(eq:V4SI (reg:V4SI 127 [ vect__6.22 ])
    (reg:V4SI 162))
$13 = void
(gdb) p debug_rtx (reg)
(reg:V4SI 127 [ vect__6.22 ])
$14 = void
(gdb) p debug_rtx (val)
(reg:V4SI 162)
...
9517                  if (comparison_dominates_p (cond, code))
(gdb) 
9518                    return const_true_rtx;


neither uses of const_true_rtx nor const0_rtx are correct here.  Simplest
solution is to fend off all non-integer compares (mode of x) or to use
appropriately moded results (vector true is {-1, -1 ... }).


More information about the Gcc-bugs mailing list