This is the mail archive of the
mailing list for the GCC project.
unaligned memory access for vectorization
- From: Ajit Kumar Agarwal <ajit dot kumar dot agarwal at xilinx dot com>
- To: Richard Biener <richard dot guenther at gmail dot com>, "gcc at gcc dot gnu dot org" <gcc at gcc dot gnu dot org>
- Cc: Vinod Kathail <vinodk at xilinx dot com>, Shail Aditya Gupta <shailadi at xilinx dot com>, Vidhumouli Hunsigida <vidhum at xilinx dot com>, "Nagaraju Mekala" <nmekala at xilinx dot com>
- Date: Thu, 12 Feb 2015 14:00:52 +0000
- Subject: unaligned memory access for vectorization
- Authentication-results: sourceware.org; auth=none
- Authentication-results: spf=pass (sender IP is 126.96.36.199) smtp dot mailfrom=ajit dot kumar dot agarwal at xilinx dot com;
The unaligned array access are the blocking factor in the vectorization. This is due to unaligned load and stores with respect to
SIMD instructions are costly operations.
To enable the vectorizations for unaligned array access the loop peeling is done to make the multiversioning of the loop with
a loop for the iterations for unaligned array access where the code is non vectorized and also the loop where the loop can be
vectorized for aligned access. This is possible with loop multiversioning to not to generate the unaligned moves.
Can I know the scope of the above optimization and pointer to the code in GCC where this optimizations is implemented.
If not implemented , it's good to have this optimization.
Thanks & Regards