https://gcc.gnu.org/bugzilla/show_bug.cgi?id=101505
--- Comment #7 from Richard Biener <rguenth at gcc dot gnu.org> --- (In reply to David Binderman from comment #5) > Certainly works for -O3, but doesn't for -O3 -march=bdver2. > > during RTL pass: expand > ./gcc.dg/vect/pr101505.c: In function ‘w7.simdclone.6’: > ./gcc.dg/vect/pr101505.c:15:10: internal compiler error: in expand_mult, at > expm > ed.c:3585 > 15 | return xb; > | ^~ > 0x91344a expand_mult(machine_mode, rtx_def*, rtx_def*, rtx_def*, int, bool) > ../../trunk.git/gcc/expmed.c:3585 > > It breaks sometime between git hash 145bc41dae7c7bfa and 14d8a5ae472ca574 This is a different bug though, probably caused by HJs changes, looks like the fixed PR101742, indeed updating and re-building my dev tree makes the issue go away. gcc.dg/vect/pr101505.c:15:10: internal compiler error: in expand_mult, at expmed.c:3585 0xe14f0a expand_mult(machine_mode, rtx_def*, rtx_def*, rtx_def*, int, bool) /home/rguenther/src/gcc2/gcc/expmed.c:3585 0xc3584d builtin_memset_gen_str /home/rguenther/src/gcc2/gcc/builtins.c:4124 0xe25ee4 pieces_addr::adjust(fixed_size_mode, long, by_pieces_prev*) /home/rguenther/src/gcc2/gcc/expr.c:1036 0xe268a8 op_by_pieces_d::run() /home/rguenther/src/gcc2/gcc/expr.c:1252 0xe273ed store_by_pieces(rtx_def*, unsigned long, rtx_def* (*)(void*, void*, long, fixed_size_mode), void*, unsigned int, bool, memop_ret) /home/rguenther/src/gcc2/gcc/expr.c:1579