https://gcc.gnu.org/bugzilla/show_bug.cgi?id=94814
Bug ID: 94814 Summary: [9 Regression] ICE: RTL check: expected code 'const_int', have 'reg' in output_3367, at config/aarch64/atomics.md:755 Product: gcc Version: 8.4.1 Status: UNCONFIRMED Keywords: ice-checking Severity: normal Priority: P3 Component: target Assignee: unassigned at gcc dot gnu.org Reporter: zsojka at seznam dot cz Target Milestone: --- Host: x86_64-pc-linux-gnu Target: aarch64-unknown-linux-gnu Created attachment 48391 --> https://gcc.gnu.org/bugzilla/attachment.cgi?id=48391&action=edit reduced testcase This looks like a recent regression on the 8-branch. This was fixed on the 9-branch in PR94518, but now the problem triggers on the 8-branch as well. Compiler output: $ /repo/build-gcc-8-branch-aarch64/./gcc/cc1plus tsan_interface_atomic.ii void b() Analyzing compilation unit Performing interprocedural optimizations <*free_lang_data> <visibility> <build_ssa_passes> <opt_local_passes> <targetclone> <free-fnsummary> <whole-program> <fnsummary> <inline> <free-fnsummary> <single-use> <comdats>Assembling functions: <materialize-all-clones> void b()during RTL pass: final tsan_interface_atomic.ii: In function 'void b()': tsan_interface_atomic.ii:2:41: internal compiler error: RTL check: expected code 'const_int', have 'reg' in output_3367, at config/aarch64/atomics.md:755 void b() { __sync_fetch_and_and(&a, c); } ^ 0x74e65b rtl_check_failed_code1(rtx_def const*, rtx_code, char const*, int, char const*) /repo/gcc-8-branch/gcc/rtl.c:849 0x8d28f2 output_3367 /repo/gcc-8-branch/gcc/config/aarch64/atomics.md:755 0xd446db final_scan_insn_1 /repo/gcc-8-branch/gcc/final.c:3111 0xd44dcb final_scan_insn(rtx_insn*, _IO_FILE*, int, int, int*) /repo/gcc-8-branch/gcc/final.c:3224 0xd450b7 final_1 /repo/gcc-8-branch/gcc/final.c:2091 0xd45ee6 rest_of_handle_final /repo/gcc-8-branch/gcc/final.c:4677 0xd45ee6 execute /repo/gcc-8-branch/gcc/final.c:4755 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. Build with RTL checking is broken.