https://gcc.gnu.org/bugzilla/show_bug.cgi?id=113771
Bug ID: 113771 Summary: [14 Regression][GCN] ICE during GIMPLE pass: vect in vect_transform_loop tree-vect-loop.cc:11969 Product: gcc Version: 14.0 Status: UNCONFIRMED Keywords: ice-on-valid-code Severity: normal Priority: P3 Component: middle-end Assignee: unassigned at gcc dot gnu.org Reporter: burnus at gcc dot gnu.org CC: tnfchris at gcc dot gnu.org Target Milestone: --- Target: gcn Still to be debugged further. I did work last week, i.e. it is a very recent regression. In-tree build of Newlib in the amdgcn-amdhsa build of GCC fails with -O2 (-O1 is okay): during GIMPLE pass: vect In file included from /home/tob/repos/gcc/newlib/libc/string/memset.c:29: /home/tob/repos/gcc/newlib/libc/include/string.h: In function 'memset': /home/tob/repos/gcc/newlib/libc/include/string.h:33:10: internal compiler error: Segmentation fault 33 | void * memset (void *, int, size_t); | ^~~~~~ 0x102617f crash_signal /home/tob/repos/gcc/gcc/toplev.cc:317 0x7efe08c4123f ??? /usr/src/debug/glibc-2.39/signal/../sysdeps/unix/sysv/linux/x86_64/libc_sigaction.c:0 0x12d28fc gsi_prev(gimple_stmt_iterator*) /home/tob/repos/gcc/gcc/gimple-iterator.h:236 0x12d28fc move_early_exit_stmts /home/tob/repos/gcc/gcc/tree-vect-loop.cc:11804 0x12d28fc vect_transform_loop(_loop_vec_info*, gimple*) /home/tob/repos/gcc/gcc/tree-vect-loop.cc:11969 0x1314321 vect_transform_loops /home/tob/repos/gcc/gcc/tree-vectorizer.cc:1006 0x131492c try_vectorize_loop_1 /home/tob/repos/gcc/gcc/tree-vectorizer.cc:1152 0x131492c try_vectorize_loop * * * In the debugger: Program received signal SIGSEGV, Segmentation fault. 0x00000000012d28fc in gsi_prev (i=0x7fffffffc1a0) at /home/tob/repos/gcc/gcc/gimple-iterator.h:236 236 gimple *prev = i->ptr->prev; (gdb) p i->ptr $1 = (gimple_seq_node) 0x0 11802 gimple_stmt_iterator stmt_gsi = gsi_for_stmt (stmt); 11803 gsi_move_before (&stmt_gsi, &dest_gsi); 11804 gsi_prev (&dest_gsi); (gdb) p debug_gimple_stmt(stmt) # .MEM_49 = VDEF <.MEM_81> *s_72 = _1; (gdb) p debug_gimple_stmt(*dest_gsi->seq) # .MEM_49 = VDEF <.MEM_81> *s_72 = _1; $11 = void (gdb) p debug_gimple_stmt(*stmt_gsi->seq) # DEBUG BEGIN_STMT (gdb) p debug_gimple_seq(stmt_gsi->ptr) # DEBUG s => s_48 # DEBUG n => n_46 # DEBUG BEGIN_STMT s.3_2 = (long unsigned int) s_48; _3 = s.3_2 & 7; if (_3 != 0) $14 = void (gdb) p debug_gimple_seq(dest_gsi->ptr) (gdb) p debug_bb(stmt_gsi->bb) <bb 5> [local count: 862990464]: # DEBUG BEGIN_STMT s_48 = s_72 + 1; # DEBUG s => s_48 _1 = (char) c_22(D); # DEBUG s => s_48 # DEBUG n => n_46 # DEBUG BEGIN_STMT s.3_2 = (long unsigned int) s_48; _3 = s.3_2 & 7; if (_3 != 0) goto <bb 20>; [94.50%] else goto <bb 41>; [5.50%] $16 = void (gdb) p debug_bb(dest_gsi->bb) <bb 20> [local count: 815525989]: *s_72 = _1; goto <bb 3>; [100.00%]