Fresh on the Intel Developer Zone blog:
by Evgeny Stupachenko
From the article:
Part 1. Vectorization of loads/stores group.
GCC 5.0 significantly improves vector code quality for load groups and store groups. By loads/stores group I mean iterated consecutive sequence of loads/stores. For example:
x = a[i], y = a[i + 1], z = a[i + 2]iterated by “i” is loads group of size 3
...The most frequent case where loads/stores groups are applicable is array of structures.
- Image conversion (RGB structure to some other) ...
- N-dimentional coordinates. (Normalize array of XYZ points) ...
- Multiplication of vectors by constant matrix: ...
... GCC 5.0:
- Introduces vectorization of load/store groups of size 3
- Improves load groups vectorization for all supported sizes
- Maximizes load/store groups performance by generating code that is more optimal for particular x86 CPU...