https://gcc.gnu.org/bugzilla/show_bug.cgi?id=100563
Bug ID: 100563 Summary: [10/11/12 Regression] arm: ICE in arm_gen_dicompare_reg, at config/arm/arm.c:15976 Product: gcc Version: 12.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: target Assignee: unassigned at gcc dot gnu.org Reporter: acoplan at gcc dot gnu.org Target Milestone: --- The following fails: $ gcc/xgcc -v Using built-in specs. COLLECT_GCC=gcc/xgcc Target: arm-eabi Configured with: /home/alecop01/toolchain/src/gcc/configure --prefix=/data_sdb/toolchain/cc1s/arm --enable-languages=c,c++ --disable-bootstrap --target=arm-eabi Thread model: single Supported LTO compression algorithms: zlib gcc version 12.0.0 20210511 (experimental) (GCC) $ cat test.c unsigned long long e(void); void f(int); void a() { short b = -1, c = (int)&b; unsigned long long d = e(); f(b >= d); } $ gcc/xgcc -B gcc -c test.c -Og during RTL pass: expand test.c: In function ‘a’: test.c:6:3: internal compiler error: in arm_gen_dicompare_reg, at config/arm/arm.c:15976 6 | f(b >= d); | ^~~~~~~~~ 0x112525f arm_gen_dicompare_reg /home/alecop01/toolchain/src/gcc/gcc/config/arm/arm.c:15976 0x112525f arm_gen_compare_reg(rtx_code, rtx_def*, rtx_def*, rtx_def*) /home/alecop01/toolchain/src/gcc/gcc/config/arm/arm.c:16189 0x151ab0a gen_cstore_cc(rtx_def*, rtx_def*, rtx_def*, rtx_def*) /home/alecop01/toolchain/src/gcc/gcc/config/arm/arm.md:7973 0x151aded gen_cstorehf4(rtx_def*, rtx_def*, rtx_def*, rtx_def*) /home/alecop01/toolchain/src/gcc/gcc/config/arm/arm.md:8192 0xbe5b98 maybe_expand_insn(insn_code, unsigned int, expand_operand*) /home/alecop01/toolchain/src/gcc/gcc/optabs.c:7813 0x921e51 emit_cstore(rtx_def*, insn_code, rtx_code, machine_mode, machine_mode, int, rtx_def*, rtx_def*, int, machine_mode) /home/alecop01/toolchain/src/gcc/gcc/expmed.c:5506 0x922780 emit_store_flag_1 /home/alecop01/toolchain/src/gcc/gcc/expmed.c:5755 0x922cf1 emit_store_flag(rtx_def*, rtx_code, rtx_def*, rtx_def*, machine_mode, int, int) /home/alecop01/toolchain/src/gcc/gcc/expmed.c:6015 0x9238f8 emit_store_flag_force(rtx_def*, rtx_code, rtx_def*, rtx_def*, machine_mode, int, int) /home/alecop01/toolchain/src/gcc/gcc/expmed.c:6155 0x932be0 do_store_flag /home/alecop01/toolchain/src/gcc/gcc/expr.c:12655 0x9336b8 expand_expr_real_2(separate_ops*, rtx_def*, machine_mode, expand_modifier) /home/alecop01/toolchain/src/gcc/gcc/expr.c:9838 0x93b59c expand_expr_real_1(tree_node*, rtx_def*, machine_mode, expand_modifier, rtx_def**, bool) /home/alecop01/toolchain/src/gcc/gcc/expr.c:10386 0x933807 expand_expr /home/alecop01/toolchain/src/gcc/gcc/expr.h:301 0x933807 expand_expr_real_2(separate_ops*, rtx_def*, machine_mode, expand_modifier) /home/alecop01/toolchain/src/gcc/gcc/expr.c:8954 0x93b59c expand_expr_real_1(tree_node*, rtx_def*, machine_mode, expand_modifier, rtx_def**, bool) /home/alecop01/toolchain/src/gcc/gcc/expr.c:10386 0x7d71a9 expand_normal /home/alecop01/toolchain/src/gcc/gcc/expr.h:307 0x7d71a9 precompute_register_parameters /home/alecop01/toolchain/src/gcc/gcc/calls.c:988 0x7d71a9 expand_call(tree_node*, rtx_def*, int) /home/alecop01/toolchain/src/gcc/gcc/calls.c:4450 0x939c5b expand_expr_real_1(tree_node*, rtx_def*, machine_mode, expand_modifier, rtx_def**, bool) /home/alecop01/toolchain/src/gcc/gcc/expr.c:11408 0x7f27b3 expand_expr /home/alecop01/toolchain/src/gcc/gcc/expr.h:301 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. The issue occurs for a wide variety of -march options, including -march=armv8-a and -march=armv8.1-m.main.