比較があります:
if( val0 > val1 )
ここで、val0 と val1 は double 変数です。
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 プロセッサで実行されています。