https://gcc.gnu.org/bugzilla/show_bug.cgi?id=89482
ktkachov at gcc dot gnu.org changed: What |Removed |Added ---------------------------------------------------------------------------- Status|WAITING |RESOLVED Resolution|--- |INVALID --- Comment #4 from ktkachov at gcc dot gnu.org --- Right. So when dealing with double-precision values you should use the %P output modifier like so: double my_double = 1.5; __asm__ ( "vmov.f64 d0, 1.0;" "vadd.f64 %P[my_double], %P[my_double], d0;" : [my_double] "+w" (my_double) : : "d0" ); This will print the right D-form of the VFP register allocated. The documentation for this could, admittedly be improved (https://gcc.gnu.org/onlinedocs/gcc/Extended-Asm.html). I believe someone is working on that currently.