3

有一个对比:

if( val0 > val1 )

其中 val0 和 val1 是双变量。

Apple LLVM 编译器生成的代码是

+0x184  vcmpe.f64                      d17, d16
+0x188  vmrs                           APSR_nzcv, fpscr <-- FP status transfer (30 cycles stall of ALU)
+0x18c  ble.w                          .....

有没有办法避免这种转移?

[更新] 代码在 Cortex-A8 处理器上运行。

4

1 回答 1

0

似乎不可能避免标志转换,因为代码流管理处理处理器的 ARM 部分,而不是 Neon 协处理器。问题已关闭。

于 2012-01-04T10:46:57.230 回答