SLP가 먼가 해서 보는데 gcc/gnu 문서 내에서는 없어서
word 보다 더 큰 크기의 데이터들에 대해서(super word level) 병렬화(parallelism) 한다는 의미인가?
Superword-Level Parallelism (SLP) vectorizer |
[링크 : https://rcor.me/papers/cgo19snslp.pdf]
[링크 : https://llvm.org/docs/Vectorizers.html#slp-vectorizer]
Example 20: Basic block SLP with multiple types, loads with different offsets, misaligned load, and not-affine accesses:
void foo (int * __restrict__ dst, short * __restrict__ src,
int h, int stride, short A, short B)
{
int i;
for (i = 0; i < h; i++)
{
dst[0] += A*src[0] + B*src[1];
dst[1] += A*src[1] + B*src[2];
dst[2] += A*src[2] + B*src[3];
dst[3] += A*src[3] + B*src[4];
dst[4] += A*src[4] + B*src[5];
dst[5] += A*src[5] + B*src[6];
dst[6] += A*src[6] + B*src[7];
dst[7] += A*src[7] + B*src[8];
dst += stride;
src += stride;
}
}
[링크 : https://gcc.gnu.org/projects/tree-ssa/vectorization.html#slp]
'embeded > ARM' 카테고리의 다른 글
aarch64 vector register (0) | 2023.08.23 |
---|---|
arm vsub operator (0) | 2023.08.09 |
cortex a9 ptm (0) | 2023.07.21 |
openOCD와 jtag (0) | 2023.07.06 |
cmsis (Common Microcontroller Software Interface Standard) (0) | 2023.02.27 |