[LLVMdev] Vectorization and ARM
hanbing.li at inria.fr
Tue Dec 16 07:03:49 PST 2014
I have several questions about the Vectorization of LLVM:
1. As I found, -O3 have already included loop vectorization and slp vectorization (llvm3.3 and later version). So that means when I only use -O3, are both vectorizations applied?
And when I use -O3 -fno-vectorize, means that all the optimizations are applied except loop vectorization?
2. As in the report: http://llvm.org/devmtg/2012-04-12/Slides/Hal_Finkel.pdf
Why did he add "-mllvm -unroll-allow-partial -mllvm -unroll-runtime -funsafe-math-optimizations -ffast-math" beyond -O3? I think this report was talking about llvm3.2, while in llvm3.3 or later version, do these options have important significance?
Another thing is the autovectorization mentioned in this report, what's the different between the normal vectorization and autovectorization?
If autovectorization is important, how to use it? (Because "-mllvm -vectorize (not worked) -mllvm -bb-vectorize-aligned-only ")
3. When I want to use vectorization on ARM (especially for neon), which option do I need to add? Just -mfpu=neon? Is some information like "-target armv7l -mfloat-abi=hard" needed?
Thanks for your attention.
-------------- next part --------------
An HTML attachment was scrubbed...
More information about the llvm-dev