MCPcopy Create free account
hub / github.com/MegEngine/MegEngine / transpose4x4_sse

Function transpose4x4_sse

dnn/src/x86/utils.cpp:44–54  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

42
43MEGDNN_ATTRIBUTE_TARGET("sse")
44void transpose4x4_sse(const float* src, float* dst, ptrdiff_t lda, ptrdiff_t ldb) {
45 __m128 row0 = _mm_loadu_ps(src + 0 * lda);
46 __m128 row1 = _mm_loadu_ps(src + 1 * lda);
47 __m128 row2 = _mm_loadu_ps(src + 2 * lda);
48 __m128 row3 = _mm_loadu_ps(src + 3 * lda);
49 _MM_TRANSPOSE4_PS(row0, row1, row2, row3);
50 _mm_storeu_ps(dst + 0 * ldb, row0);
51 _mm_storeu_ps(dst + 1 * ldb, row1);
52 _mm_storeu_ps(dst + 2 * ldb, row2);
53 _mm_storeu_ps(dst + 3 * ldb, row3);
54}
55
56void transpose_naive(
57 const float* src, float* dst, ptrdiff_t lda, ptrdiff_t ldb, size_t n,

Callers 1

transposeFunction · 0.85

Calls

no outgoing calls

Tested by

no test coverage detected