https://gcc.gnu.org/bugzilla/show_bug.cgi?id=102018
--- Comment #4 from Christophe Lyon <clyon at gcc dot gnu.org> --- (In reply to Torbjorn SVENSSON from comment #3) lr @ 69 [c=8 l=4] *thumb2_return > > The above was extracted from compiling using: > arm-none-eabi-gcc pr82692.c -mthumb -march=armv7e-m+fp.dp -mtune=cortex-m7 > -mfloat-abi=hard -mfpu=auto -S -o - -Os > > This bug is only present if -mtune=cortex-m7 or -mcpu=cortex-m7 is used. I > suppose it has something to do with the cost model for Cortex-M7 as > otherwise, Cortex-M4 would likely be affected too. Rather than a cost issue, it's probably because you use +fp.dp (which -mcpu=cortex-m7 does too), which enables the double-precision FPU. cortex-m4 does not support it, so the cmpdf_trap_vfp pattern is not enabled (TARGET_VFP_DOUBLE is false).