https://gcc.gnu.org/bugzilla/show_bug.cgi?id=82096
Bug ID: 82096 Summary: ICE in int_mode_for_mode, at stor-layout.c:403 with arm-linux-gnueabi Product: gcc Version: 8.0 Status: UNCONFIRMED 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: arm-linux-gnueabi Following ICEs: $ arm-linux-gnueabi-gcc /home/marxin/Programming/gcc/gcc/testsuite/gcc.dg/di-longlong64-sync-1.c -Og -mflip-thumb -c /home/marxin/Programming/gcc/gcc/testsuite/gcc.dg/di-longlong64-sync-1.c: In function ‘do_noret_di’: /home/marxin/Programming/gcc/gcc/testsuite/gcc.dg/di-longlong64-sync-1.c:85:3: note: ‘__sync_fetch_and_nand’ changed semantics in GCC 4.4 __sync_fetch_and_nand (AL+15, 0xa00000007ll); ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /home/marxin/Programming/gcc/gcc/testsuite/gcc.dg/di-longlong64-sync-1.c:98:3: note: ‘__sync_nand_and_fetch’ changed semantics in GCC 4.4 __sync_nand_and_fetch (AL+23, 0xa00000007ll); ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ during RTL pass: expand /home/marxin/Programming/gcc/gcc/testsuite/gcc.dg/di-longlong64-sync-1.c: In function ‘do_ret_di’: /home/marxin/Programming/gcc/gcc/testsuite/gcc.dg/di-longlong64-sync-1.c:107:7: internal compiler error: in int_mode_for_mode, at stor-layout.c:403 if (__sync_bool_compare_and_swap (AL+1, 0x200000003ll, 0x1234567890ll) != ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 0xb46b8a int_mode_for_mode(machine_mode) .././../gcc/stor-layout.c:403 0x80ae2e emit_move_via_integer .././../gcc/expr.c:3313 0x817d35 emit_move_insn_1(rtx_def*, rtx_def*) .././../gcc/expr.c:3693 0x81803e emit_move_insn(rtx_def*, rtx_def*) .././../gcc/expr.c:3761 0x7fa283 force_reg(machine_mode, rtx_def*) .././../gcc/explow.c:642 0xa57741 prepare_cmp_insn .././../gcc/optabs.c:3777 0xa57d21 emit_cmp_and_jump_insns(rtx_def*, rtx_def*, rtx_code, rtx_def*, machine_mode, int, rtx_def*, profile_probability) .././../gcc/optabs.c:4054 0x77f41f do_compare_rtx_and_jump(rtx_def*, rtx_def*, rtx_code, int, machine_mode, rtx_def*, rtx_code_label*, rtx_code_label*, profile_probability) .././../gcc/dojump.c:1151 0x806d95 emit_store_flag_force(rtx_def*, rtx_code, rtx_def*, rtx_def*, machine_mode, int, int) .././../gcc/expmed.c:6050 0xa59e16 expand_atomic_compare_and_swap(rtx_def**, rtx_def**, rtx_def*, rtx_def*, rtx_def*, bool, memmodel, memmodel) .././../gcc/optabs.c:6270 0x6cfa33 expand_builtin_compare_and_swap .././../gcc/builtins.c:5618 0x6dc791 expand_builtin(tree_node*, rtx_def*, rtx_def*, machine_mode, int) .././../gcc/builtins.c:7203 0x8144cc expand_expr_real_1(tree_node*, rtx_def*, machine_mode, expand_modifier, rtx_def**, bool) .././../gcc/expr.c:10874 0x81f8f7 expand_expr .././../gcc/expr.h:276 0x81f8f7 store_expr_with_bounds(tree_node*, rtx_def*, int, bool, bool, tree_node*) .././../gcc/expr.c:5483 0x820d07 expand_assignment(tree_node*, tree_node*, bool) .././../gcc/expr.c:5343 0x6ffe7f expand_call_stmt .././../gcc/cfgexpand.c:2664 0x6ffe7f expand_gimple_stmt_1 .././../gcc/cfgexpand.c:3585 0x6ffe7f expand_gimple_stmt .././../gcc/cfgexpand.c:3751 0x701897 expand_gimple_basic_block .././../gcc/cfgexpand.c:5750