https://gcc.gnu.org/bugzilla/show_bug.cgi?id=70549
--- Comment #8 from Jakub Jelinek <jakub at gcc dot gnu.org> --- Created attachment 40924 --> https://gcc.gnu.org/bugzilla/attachment.cgi?id=40924&action=edit gcc48-pr70549.patch Bernd came up with this untested fix. Isn't that something that should be done on the trunk too? Side note, the i386 backend has r <- F alternative in movsf and in that case just converts the floating point SFmode constant into integer. If aarch64 isn't able to set GPRs from arbitrary 32-bit constants, perhaps you could have some constraint that would represent just the SFmode const_double operands that after converting them into their memory representation can be loaded into a register using a single insn.