문제

There is a comparison:

if( val0 > val1 )

where val0 and val1 are double variables.

The code generated by the Apple LLVM compiler is

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

Is there any way to avoid this kind of transfer?

[UPDATE] The code is running on the Cortex-A8 processor.

도움이 되었습니까?

해결책

As it seems it's impossible to avoid flags transition as with the code flow management deals ARM part of the processor, not Neon co-processor. Question is closed.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top