https://gcc.gnu.org/bugzilla/show_bug.cgi?id=64532
--- Comment #6 from baoshan <pangbw at gmail dot com> --- After several days study to the code, I turn to feel the code is wrong. It seems we should use "=t" instead of "=w" for 'y' because single float register is expected here for "vcvt.f32.s32". From the document, "w" just means VFP floating-point register but not distinguishing single, double or quad float register: https://gcc.gnu.org/onlinedocs/gcc/Machine-Constraints.html#Machine-Constraints The constraint letter 't' is not documented in the GCC doc, this is a issue.