C语言调用 汇编函数 开优化结果错误

C语言调用基于ARMv8的汇编函数然后,开优化—O1 O2 O3执行的结果都有问题,但是不开优化执行结果是正确的。如果不调用汇编函数,只是C语言开优化执行结果也是正确的。

个人感觉是编译选项的问题, 请帮忙解答这个问题!谢谢