https://gcc.gnu.org/bugzilla/show_bug.cgi?id=118827
--- Comment #2 from Huaqi <fanghuaqi at vip dot qq.com> --- If this file is compiled with O3, it will be inlined and less fp/vector register will be used, but if I pass -fno-inline, then all fp and vector registers are then still saved, since it called a subfunction, but if I call delay in main function, it didn't save so many fp/vector regsiters. I think maybe the interrupt function only need to save the registers it touched, instead of all the registers. see https://godbolt.org/z/acvqW1dra