C语言调用ARMv8汇编函数,开优化执行结果不正确

C语言调用ARMv8汇编函数,并且打开优化O1 O2 O3执行结果不正确。如果关闭优化,执行结果正确。只跑C语言程序(不调用汇编函数),开优化,执行结果也是正确的。

个人感觉是和编译器选项相关~~

非常感谢帮忙解答~~