[Bug target/81924] [6 Regression] ICE: in simplify_binary_operation_1, at simplify-rtx.c:3678 on powerpc64le-linux-gnu

wschmidt at gcc dot gnu.org gcc-bugzilla@gcc.gnu.org
Fri Oct 20 22:01:00 GMT 2017


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

--- Comment #8 from Bill Schmidt <wschmidt at gcc dot gnu.org> ---
Matthias, the following appears to fix this problem for gcc-5-branch. 
Obviously the branch is closed to further development, but if you want to
consider carrying this patch, let me know and I will give it a full regstrap
test.

With the patch, we subreg the V1TImode as a V2DImode so that the RTL is
legitimate:

(insn 19 18 4 2 (set (subreg:V2DI (reg:V1TI 161 [ D.2389 ]) 0)
        (vec_select:V2DI (reg:V2DI 174 [ D.2389 ])
            (parallel [
                    (const_int 1 [0x1])
                    (const_int 0 [0])
                ]))) 956 {*vsx_xxpermdi2_le_v2di}
     (nil))

Here's the simple patch:

(insn 19 18 4 2 (set (subreg:V2DI (reg:V1TI 161 [ D.2389 ]) 0)
        (vec_select:V2DI (reg:V2DI 174 [ D.2389 ])
            (parallel [
                    (const_int 1 [0x1])
                    (const_int 0 [0])
                ]))) 956 {*vsx_xxpermdi2_le_v2di}
     (nil))

Again, this needs full testing before I would recommend using it.

Suggest we close this bug as there will be no upstream resolution for GCC 5.


More information about the Gcc-bugs mailing list