https://gcc.gnu.org/bugzilla/show_bug.cgi?id=69886
ktkachov at gcc dot gnu.org changed: What |Removed |Added ---------------------------------------------------------------------------- Status|NEW |ASSIGNED Assignee|unassigned at gcc dot gnu.org |ktkachov at gcc dot gnu.org --- Comment #2 from ktkachov at gcc dot gnu.org --- The hoisting pass ends up creating: (insn 88 0 0 (set (reg:OI 136) (const_int 0 [0])) -1 (nil)) which isn't valid on aarch64. want_to_gcse_p should have rejected it via can_assign_to_reg_without_clobbers_p. But can_assign_to_reg_without_clobbers_p doesn't see the OImode so it only tries to create a normal word_mode move of const_int 0 which it thinks is ok, so it allows the instruction, which is bogus. I have an idea for a simple fix.