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.