https://gcc.gnu.org/bugzilla/show_bug.cgi?id=99092
--- Comment #8 from Iain Sandoe <iains at gcc dot gnu.org> --- it seems that GAS is accepting an encoding that's not specified in at least version DDI0487Fc_armv8_arm. that says that C6.2.212 PRFM (immediate) takes "<pimm> Is the optional positive immediate byte offset, a multiple of 8 in the range 0 to 32760, defaulting to 0 and encoded in the "imm12" field as <pimm>/8." = and C6.2.215 PRFUM "<simm> Is the optional signed immediate byte offset, in the range -256 to 255, defaulting to 0 and encoded in the "imm9" field." ======= so probably the bug is present for all targets, not just Darwin - it just happens to show there. FWIW, the encoding is shown thus: PRFM (<prfop>|#<imm5>), [<Xn|SP>{, #<pimm>}] So LLVM might well also reject it without the '#' (I have encountered at least one case before where that happened).