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

Bill Schmidt <wschmidt at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|UNCONFIRMED                 |NEW
   Last reconfirmed|                            |2017-10-20
     Ever confirmed|0                           |1

--- Comment #7 from Bill Schmidt <wschmidt at gcc dot gnu.org> ---
Patch backported to 6 here: 
https://gcc.gnu.org/ml/gcc-patches/2017-10/msg01388.html

Confirmed the GCC 5 issue.  The problem is something happening during
var-tracking:

pr81924.c: In function 'fn1':
pr81924.c:19:1: internal compiler error: in simplify_binary_operation_1, at
simplify-rtx.c:3634
 }
 ^
0x1065892f simplify_binary_operation_1
        /home/wschmidt/gcc/gcc-5-base/gcc/simplify-rtx.c:3634
0x102af647 cselib_expand_value_rtx_1
        /home/wschmidt/gcc/gcc-5-base/gcc/cselib.c:1853
0x102b056f cselib_expand_value_rtx_cb(rtx_def*, bitmap_head*, int, rtx_def*
(*)(rtx_def*, bitmap_head*, int, void*), void*)
        /home/wschmidt/gcc/gcc-5-base/gcc/cselib.c:1561
0x108fd06b vt_expand_var_loc_chain
        /home/wschmidt/gcc/gcc-5-base/gcc/var-tracking.c:8311
0x108fd06b vt_expand_loc_callback
        /home/wschmidt/gcc/gcc-5-base/gcc/var-tracking.c:8473
0x102af4f3 cselib_expand_value_rtx_1
        /home/wschmidt/gcc/gcc-5-base/gcc/cselib.c:1714
0x102af1c7 cselib_expand_value_rtx_1
        /home/wschmidt/gcc/gcc-5-base/gcc/cselib.c:1752
0x102b056f cselib_expand_value_rtx_cb(rtx_def*, bitmap_head*, int, rtx_def*
(*)(rtx_def*, bitmap_head*, int, void*), void*)
        /home/wschmidt/gcc/gcc-5-base/gcc/cselib.c:1561
0x108fd06b vt_expand_var_loc_chain
        /home/wschmidt/gcc/gcc-5-base/gcc/var-tracking.c:8311
0x108fd06b vt_expand_loc_callback
        /home/wschmidt/gcc/gcc-5-base/gcc/var-tracking.c:8473
0x102af4f3 cselib_expand_value_rtx_1
        /home/wschmidt/gcc/gcc-5-base/gcc/cselib.c:1714
0x102b056f cselib_expand_value_rtx_cb(rtx_def*, bitmap_head*, int, rtx_def*
(*)(rtx_def*, bitmap_head*, int, void*), void*)
        /home/wschmidt/gcc/gcc-5-base/gcc/cselib.c:1561
0x108fbcbb vt_expand_var_loc_chain
        /home/wschmidt/gcc/gcc-5-base/gcc/var-tracking.c:8311
0x108fbcbb vt_expand_1pvar
        /home/wschmidt/gcc/gcc-5-base/gcc/var-tracking.c:8586
0x108fbcbb emit_note_insn_var_location(variable_def**, emit_note_data_def*)
        /home/wschmidt/gcc/gcc-5-base/gcc/var-tracking.c:8641
0x108fdd73 void hash_table<variable_hasher, xcallocator,
false>::traverse_noresize<emit_note_data_def*,
&(emit_note_insn_var_location(variable_def**,
emit_note_data_def*))>(emit_note_data_def*)
        /home/wschmidt/gcc/gcc-5-base/gcc/hash-table.h:1057
0x108fdd73 void hash_table<variable_hasher, xcallocator,
false>::traverse<emit_note_data_def*,
&(emit_note_insn_var_location(variable_def**,
emit_note_data_def*))>(emit_note_data_def*)
        /home/wschmidt/gcc/gcc-5-base/gcc/hash-table.h:1079
0x108fdd73 emit_notes_for_changes
        /home/wschmidt/gcc/gcc-5-base/gcc/var-tracking.c:9001
0x10902bf7 emit_notes_in_bb
        /home/wschmidt/gcc/gcc-5-base/gcc/var-tracking.c:9151
0x10902bf7 vt_emit_notes
        /home/wschmidt/gcc/gcc-5-base/gcc/var-tracking.c:9496
Please submit a full bug report,
with preprocessed source if appropriate.
Please include the complete backtrace with any bug report.
See <http://gcc.gnu.org/bugs.html> for instructions.

...and hm, we do still seem to misuse V1TImode in the same way Jakub reported.

#1  0x0000000020b89e68 in simplify_binary_operation_1 (code=VEC_SELECT, 
    mode=V1TImode, op0=0x3fffb5da87d8, op1=0x3fffb5b66dd0, 
    trueop0=0x3fffb5da87d8, trueop1=0x3fffb5b66dd0)
    at /home/wschmidt/gcc/gcc-5-base/gcc/simplify-rtx.c:3634
3634              gcc_assert (XVECLEN (trueop1, 0) == GET_MODE_NUNITS (mode));
(gdb) p mode
$1 = V1TImode
(gdb) pr trueop1
(parallel [
        (const_int 1 [0x1])
        (const_int 0 [0])
    ])

Ah, yes, V1TImode is included in VSX_LE, which doesn't work, but all of the
patterns for using rotates instead of vec_select (parallel (...)) aren't
present yet, so we can't easily patch this as was done for 6 and 7.

Reply via email to