https://gcc.gnu.org/bugzilla/show_bug.cgi?id=102941
Andrew Pinski <pinskia at gcc dot gnu.org> changed: What |Removed |Added ---------------------------------------------------------------------------- Host|x86_64-linux-gnu | Target|aarch64-linux-gnu |aarch64-*-* arm*-*-* --- Comment #4 from Andrew Pinski <pinskia at gcc dot gnu.org> --- The fix: diff --git a/gcc/config/arm/aarch-common.c b/gcc/config/arm/aarch-common.c index 67343fe4025..60b3516c1df 100644 --- a/gcc/config/arm/aarch-common.c +++ b/gcc/config/arm/aarch-common.c @@ -641,7 +641,7 @@ arm_md_asm_adjust (vec<rtx> &outputs, vec<rtx> & /*inputs*/, rtx x = gen_rtx_REG (mode, CC_REGNUM); x = gen_rtx_fmt_ee (code, word_mode, x, const0_rtx); - if (dest_mode == word_mode) + if (dest_mode == word_mode && REG_P (dest)) emit_insn (gen_rtx_SET (dest, x)); else { This means you could also run into this on arm-linux-gnueabi too.