https://gcc.gnu.org/bugzilla/show_bug.cgi?id=109302
Bug ID: 109302 Summary: [12/13 Regression] ICE in emit_move_insn, at expr.cc:4225 Product: gcc Version: 13.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: c Assignee: unassigned at gcc dot gnu.org Reporter: gs...@t-online.de Target Milestone: --- Started between 20210905 and 20210919, with -mavx512f or -mavx512pf : $ cat z1.c typedef unsigned U __attribute__ ((vector_size (64))); typedef unsigned __int128 V __attribute__ ((vector_size (64))); static inline V bar (U u, U x, V v) { v = (V)(U) { 0, ~0 }; v[x[0]] <<= u[-63]; return v; } __attribute__((target_clones("arch=x86-64", "default"))) V foo (U u) { return bar (u, (U) {}, (V) {}); } $ gcc-13-20230326 -c z1.c -O2 -mavx512f In function 'foo.arch_x86_64': cc1: warning: AVX512F vector return without AVX512F enabled changes the ABI [-Wpsabi] z1.c:12:1: note: the ABI for passing parameters with 64-byte alignment has changed in GCC 4.6 12 | foo (U u) | ^~~ z1.c:12:1: warning: AVX512F vector argument without AVX512F enabled changes the ABI [-Wpsabi] during RTL pass: expand z1.c:14:10: internal compiler error: in emit_move_insn, at expr.cc:4225 14 | return bar (u, (U) {}, (V) {}); | ^~~~~~~~~~~~~~~~~~~~~~~ 0x91273d emit_move_insn(rtx_def*, rtx_def*) ../../gcc/expr.cc:4224 0x9203d0 expand_expr_real_2(separate_ops*, rtx_def*, machine_mode, expand_modifier) ../../gcc/expr.cc:10580 0x910a95 expand_expr_real_1(tree_node*, rtx_def*, machine_mode, expand_modifier, rtx_def**, bool) ../../gcc/expr.cc:10801 0x9198b3 store_expr(tree_node*, rtx_def*, int, bool, bool) ../../gcc/expr.cc:6330 0x91af3e expand_assignment(tree_node*, tree_node*, bool) ../../gcc/expr.cc:6048 0x80afa0 expand_gimple_stmt_1 ../../gcc/cfgexpand.cc:3946 0x80afa0 expand_gimple_stmt ../../gcc/cfgexpand.cc:4044 0x8101a7 expand_gimple_basic_block ../../gcc/cfgexpand.cc:6106 0x812c6e execute ../../gcc/cfgexpand.cc:6841