https://gcc.gnu.org/bugzilla/show_bug.cgi?id=100518
Bug ID: 100518 Summary: ICE in copy_to_mode_reg, at explow.c:651 Product: gcc Version: 11.0 Status: UNCONFIRMED Keywords: ice-on-valid-code Severity: normal Priority: P3 Component: target Assignee: unassigned at gcc dot gnu.org Reporter: marxin at gcc dot gnu.org Target Milestone: --- Host: x86_64-linux-gnu Target: aarch64-linux-gnu It's likely a recent regression: $ cat stringop.i int unsigned_range_min, unsigned_range_max, a11___trans_tmp_1; void a11() { a11___trans_tmp_1 = unsigned_range_max < unsigned_range_min; __builtin_memset((char *)1, 0, a11___trans_tmp_1); } $ aarch64-linux-gnu-gcc stringop.i -mabi=ilp32 -mstrict-align -O2 -c during RTL pass: expand stringop.i: In function ‘a11’: stringop.i:5:3: internal compiler error: in copy_to_mode_reg, at explow.c:651 5 | __builtin_memset((char *)1, 0, a11___trans_tmp_1); | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 0x684fe3 copy_to_mode_reg(machine_mode, rtx_def*) /home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-trunk-aarch64/build/gcc/explow.c:651 0x7b593f try_store_by_multiple_pieces(rtx_def*, rtx_def*, unsigned int, unsigned long, unsigned long, rtx_def*, char, unsigned int) /home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-trunk-aarch64/build/gcc/builtins.c:6758 0x8ef134 clear_storage_hints(rtx_def*, rtx_def*, block_op_methods, unsigned int, long, unsigned long, unsigned long, unsigned long, unsigned int) /home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-trunk-aarch64/build/gcc/expr.c:3201 0x7b620e expand_builtin_memset_args /home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-trunk-aarch64/build/gcc/builtins.c:6949 0x7c61ee expand_builtin_memset /home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-trunk-aarch64/build/gcc/builtins.c:6665 0x7c61ee expand_builtin(tree_node*, rtx_def*, rtx_def*, machine_mode, int) /home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-trunk-aarch64/build/gcc/builtins.c:10167 0x8e657f expand_expr_real_1(tree_node*, rtx_def*, machine_mode, expand_modifier, rtx_def**, bool) /home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-trunk-aarch64/build/gcc/expr.c:11458 0x7e89aa expand_expr /home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-trunk-aarch64/build/gcc/expr.h:301 0x7e89aa expand_call_stmt /home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-trunk-aarch64/build/gcc/cfgexpand.c:2843 0x7e89aa expand_gimple_stmt_1 /home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-trunk-aarch64/build/gcc/cfgexpand.c:3847 0x7e89aa expand_gimple_stmt /home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-trunk-aarch64/build/gcc/cfgexpand.c:4011 0x7e8d1e expand_gimple_tailcall /home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-trunk-aarch64/build/gcc/cfgexpand.c:4057 0x7ee571 expand_gimple_basic_block /home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-trunk-aarch64/build/gcc/cfgexpand.c:6025 0x7ee571 execute /home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-trunk-aarch64/build/gcc/cfgexpand.c:6732 Please submit a full bug report, with preprocessed source if appropriate. Please include the complete backtrace with any bug report. See <https://gcc.gnu.org/bugs/> for instructions.