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

            Bug ID: 81924
           Summary: [5 Regression] ICE: in simplify_binary_operation_1, at
                    simplify-rtx.c:3678 on powerpc64le-linux-gnu
           Product: gcc
           Version: 7.1.1
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: target
          Assignee: unassigned at gcc dot gnu.org
          Reporter: doko at gcc dot gnu.org
  Target Milestone: ---

seen with the gcc-5 branch on  powerpc64le-linux-gnu, works on 4.8, 6 and 7,
worked around with -O1:

$ gcc-5 -c -g -O2 foo.cfoo.c: In function ‘fn1’:
foo.c:19:1: internal compiler error: in simplify_binary_operation_1, at
simplify-rtx.c:3678
 }
 ^
Please submit a full bug report,
with preprocessed source if appropriate.

(gdb) bt
#0  0x0000000010d12b64 in fancy_abort(char const*, int, char const*) ()
#1  0x000000001066d4dc in ?? ()
#2  0x00000000102c2048 in ?? ()
#3  0x00000000102c2f70 in cselib_expand_value_rtx_cb(rtx_def*, bitmap_head*,
int, rtx_def* (*)(rtx_def*, bitmap_head*, int, void*), void*) ()
#4  0x0000000010913938 in ?? ()
#5  0x00000000102c1ef4 in ?? ()
#6  0x00000000102c1bb8 in ?? ()
#7  0x00000000102c2f70 in cselib_expand_value_rtx_cb(rtx_def*, bitmap_head*,
int, rtx_def* (*)(rtx_def*, bitmap_head*, int, void*), void*) ()
#8  0x0000000010913938 in ?? ()
#9  0x00000000102c1ef4 in ?? ()
#10 0x00000000102c2f70 in cselib_expand_value_rtx_cb(rtx_def*, bitmap_head*,
int, rtx_def* (*)(rtx_def*, bitmap_head*, int, void*), void*) ()
#11 0x0000000010912508 in emit_note_insn_var_location(variable_def**,
emit_note_data_def*) ()
#12 0x0000000010914654 in ?? ()
#13 0x0000000010919428 in ?? ()
#14 0x000000001091bbd8 in ?? ()
#15 0x00000000105b5c10 in execute_one_pass(opt_pass*) ()
#16 0x00000000105b6124 in ?? ()
#17 0x00000000105b613c in ?? ()
#18 0x00000000105b613c in ?? ()
#19 0x00000000105b61c4 in execute_pass_list(function*, opt_pass*) ()
#20 0x00000000102b0bac in cgraph_node::expand() ()
#21 0x00000000102b25d8 in ?? ()
#22 0x00000000102b40a8 in symbol_table::finalize_compilation_unit() ()
#23 0x0000000010176be8 in c_write_global_declarations() ()
#24 0x00000000106903fc in ?? ()
#25 0x00000000101588d8 in toplev::main(int, char**) ()
#26 0x0000000010159348 in main ()

$ cat foo.c
typedef __uint128_t vint128_t __attribute__((vector_size(16)));
vint128_t z;
int x, y;

void fn2(void);

void fn1(void)
{
        vint128_t c;
        y = 1000;
        for (; y; y--) {
                c = c ^ x;
                z -= c;
                z ^= x;
                c = c ^ x;
        }

        fn2();
}

Reply via email to