3
有一個比較:浮點狀態轉移
if(val0 > val1)
其中val0和VAL1是雙變量。
由蘋果LLVM編譯器生成的代碼是
+0x184 vcmpe.f64 d17, d16
+0x188 vmrs APSR_nzcv, fpscr <-- FP status transfer (30 cycles stall of ALU)
+0x18c ble.w .....
有沒有辦法避免這種轉移?
[更新]代碼在Cortex-A8處理器上運行。
比較他們作爲*符號和大小*整數如何?它[有可能符合IEEE-754](http://en.wikipedia.org/wiki/IEEE_754-1985#Comparing_floating-point_numbers)。 – 2011-12-29 09:17:04
@Alex,或許你先解釋一下爲什麼你需要這個?通過部分進行比較肯定是越來越慢。 – 2011-12-29 12:52:42
你從哪裏找到30個週期的數字? – 2011-12-29 13:37:22