https://gcc.gnu.org/bugzilla/show_bug.cgi?id=99581
--- Comment #5 from Segher Boessenkool <segher at gcc dot gnu.org> --- Thanks Vladimir. It is indeed a problem in LRA (or triggered by it). We have 8: {[r121:DI+low(unspec[`*.LANCHOR0',%2:DI] 47+0x92a4)]=asm_operands;clobber so this is an offset that is too big for a machine instruction, those can take -32768..32767. Changing the constraint to "m" you get in LRA Inserting insn reload before: 13: r121:DI=high(unspec[`*.LANCHOR0',%2:DI] 47+0x92a4) but this doesn't happen if you keep it "o", and it dies later.