[LLVMdev] vmlx forwarding an cortex A9 question

Sebastien DELDON-GNB sebastien.deldon at st.com
Thu Dec 20 02:25:58 PST 2012

Hi all,

On following code when I use llc targeting ARM Cortex-A9 as follows, if vmlx-forwarding is turned off then 'vmla' instructions are generated. It seems that -mcpu=cortex-a9 enables it by default and thus less 'vmla' instructions are generated. On this specific example it doesn't make any difference in term of performance, but on a more complex example disabling vmlx-forwarding leads to significant win in performance wise (10% speed-up). Does anyone can explain me what is the exact purpose of vmlx-forwarding option, and why it is enabled by default on cortex-A9.

On attached file:
llc fun2.ll -march=arm -mcpu=cortex-a9 -mattr=+neon -float-abi=soft -o fun2.s => vmla instruction not generated
On attached file:
llc fun2.ll -march=arm -mcpu=cortex-a9 -mattr=+neon,-vmlx-forwarding -float-abi=soft -o fun2.s => vmla instruction generated

Thanks for your answers.
Best Regards

-------------- next part --------------
A non-text attachment was scrubbed...
Name: fun2.ll
Type: application/octet-stream
Size: 2731 bytes
Desc: fun2.ll
URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20121220/ce4615b5/attachment.obj>

More information about the llvm-dev mailing list