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

            Bug ID: 126275
           Summary: [17 Regression] ICE in
                    expand_set_or_cpymem_prologue_epilogue_by_misaligned_m
                    oves, at config/i386/i386-expand.cc:8946 since
                    r17-1917
           Product: gcc
           Version: 17.0
            Status: UNCONFIRMED
          Keywords: ice-on-valid-code
          Severity: normal
          Priority: P3
         Component: target
          Assignee: unassigned at gcc dot gnu.org
          Reporter: mjires at gcc dot gnu.org
                CC: hjl.tools at gmail dot com
  Target Milestone: ---
            Target: x86_64-pc-linux-gnu

Compiling reduced testcase gcc.target/i386/builtin-memmove-bounded-1b.c results
in ICE since r17-1917-gcbc56384029c92.

$ cat builtin-memmove-bounded-1b.c
char buf[512];
void main() {
  int i = 0;
  for (; i < 18; i++);
  for (; i < 35; i++) buf[i] = 7;
}


$ gcc builtin-memmove-bounded-1b.c -ftree-loop-distribute-patterns
-fno-tree-dominator-opts -fno-tree-scev-cprop -O1
during RTL pass: expand
builtin-memmove-bounded-1b.c: In function ‘main’:
builtin-memmove-bounded-1b.c:5:30: internal compiler error: in
expand_set_or_cpymem_prologue_epilogue_by_misaligned_moves, at
config/i386/i386-expand.cc:8955
    5 |   for (; i < 35; i++) buf[i] = 7;
      |                       ~~~~~~~^~~
0x27a8a81 internal_error(char const*, ...)
        /home/mjires/git/GCC/master/gcc/diagnostic-global-context.cc:787
0x27b3f63 fancy_abort(char const*, int, char const*)
        /home/mjires/git/GCC/master/gcc/diagnostics/context.cc:1813
0x1678ad2 expand_set_or_cpymem_prologue_epilogue_by_misaligned_moves
        /home/mjires/git/GCC/master/gcc/config/i386/i386-expand.cc:8955
0x1694112 ix86_expand_set_or_cpymem(rtx_def*, rtx_def*, rtx_def*, rtx_def*,
rtx_def*, rtx_def*, rtx_def*, rtx_def*, rtx_def*, rtx_def*, bool)
        /home/mjires/git/GCC/master/gcc/config/i386/i386-expand.cc:9815
0x1faef0f gen_setmemsi(rtx_def*, rtx_def*, rtx_def*, rtx_def*, rtx_def*,
rtx_def*, rtx_def*, rtx_def*, rtx_def*)
        /home/mjires/git/GCC/master/gcc/config/i386/i386.md:26926
0xef7490 rtx_insn* insn_gen_fn::operator()<rtx_def*, rtx_def*, rtx_def*,
rtx_def*, rtx_def*, rtx_def*, rtx_def*, rtx_def*, rtx_def*>(rtx_def*, rtx_def*,
rtx_def*, rtx_def*, rtx_def*, rtx_def*, rtx_def*, rtx_def*, rtx_def*) const
        /home/mjires/git/GCC/master/gcc/recog.h:488
0xef7490 maybe_gen_insn(insn_code, unsigned int, expand_operand*)
        /home/mjires/git/GCC/master/gcc/optabs.cc:8626
0xef7558 maybe_expand_insn(insn_code, unsigned int, expand_operand*)
        /home/mjires/git/GCC/master/gcc/optabs.cc:8650
0xb72a3f set_storage_via_setmem(rtx_def*, rtx_def*, rtx_def*, unsigned int,
unsigned int, long, unsigned long, unsigned long, unsigned long)
        /home/mjires/git/GCC/master/gcc/expr.cc:4074
0x9fc3a6 expand_builtin_memset_args
        /home/mjires/git/GCC/master/gcc/builtins.cc:4762
0x9fc7f4 expand_builtin_memset(tree_node*, rtx_def*, machine_mode)
        /home/mjires/git/GCC/master/gcc/builtins.cc:4350
0xa09dde expand_builtin(tree_node*, rtx_def*, rtx_def*, machine_mode, int)
        /home/mjires/git/GCC/master/gcc/builtins.cc:8304
0xb86805 expand_expr_real_1(tree_node*, rtx_def*, machine_mode,
expand_modifier, rtx_def**, bool)
        /home/mjires/git/GCC/master/gcc/expr.cc:12750
0xb879d3 expand_expr_real(tree_node*, rtx_def*, machine_mode, expand_modifier,
rtx_def**, bool)
        /home/mjires/git/GCC/master/gcc/expr.cc:9655
0xa37e01 expand_expr(tree_node*, rtx_def*, machine_mode, expand_modifier)
        /home/mjires/git/GCC/master/gcc/expr.h:323
0xa37e01 expand_call_stmt
        /home/mjires/git/GCC/master/gcc/cfgexpand.cc:3208
0xa37e01 expand_gimple_stmt_1
        /home/mjires/git/GCC/master/gcc/cfgexpand.cc:4246
0xa37e01 expand_gimple_stmt
        /home/mjires/git/GCC/master/gcc/cfgexpand.cc:4393
0xa3e9b6 expand_gimple_basic_block
        /home/mjires/git/GCC/master/gcc/cfgexpand.cc:6510
0xa40508 execute
        /home/mjires/git/GCC/master/gcc/cfgexpand.cc:7258
/home/mjires/built/master/libexec/gcc/x86_64-pc-linux-gnu/17.0.0/cc1 -quiet
builtin-memmove-bounded-1b.c -quiet -dumpdir a- -dumpbase
builtin-memmove-bounded-1b.c -dumpbase-ext .c -mtune=generic -march=x86-64 -O1
-ftree-loop-distribute-patterns -fno-tree-dominator-opts -fno-tree-scev-cprop
-o /tmp/ccIdkQlX.s
Please submit a full bug report, with preprocessed source (by using
-freport-bug).
Please include the complete backtrace with any bug report.
See <https://gcc.gnu.org/bugs/> for instructions.


$ gcc -v
Using built-in specs.
COLLECT_GCC=gcc
COLLECT_LTO_WRAPPER=/home/mjires/built/master/libexec/gcc/x86_64-pc-linux-gnu/17.0.0/lto-wrapper
Target: x86_64-pc-linux-gnu
Configured with: /home/mjires/git/GCC/master/configure
--prefix=/home/mjires/built/master --disable-bootstrap
--enable-languages=c,c++,fortran,lto --disable-multilib --disable-libsanitizer
--enable-checking : (reconfigured) /home/mjires/git/GCC/master/configure
--prefix=/home/mjires/built/master --disable-bootstrap --disable-multilib
--disable-libsanitizer --enable-checking --enable-languages=c,c++,fortran,lto
--no-create --no-recursion
Thread model: posix
Supported LTO compression algorithms: zlib zstd
gcc version 17.0.0 20260715 (experimental) (GCC)

Reply via email to