1 // 2 // GemmCommon.hpp 3 // MNN 4 // 5 // Created by MNN on b'2020/09/22'. 6 // Copyright © 2018, Alibaba Group Holding Limited 7 // 8 9 #ifndef GemmCommon_hpp 10 #define GemmCommon_hpp 11 #include <MNN/MNNDefine.h> 12 #include <stdint.h> 13 14 #define TRANPOSE_SAVE(u, v, z0, z3, z6, z9) \ 15 { \ 16 auto m0 = z0; \ 17 auto m1 = z3; \ 18 auto m2 = z6; \ 19 auto m3 = z9; \ 20 _MM_TRANSPOSE4_PS(m0, m1, m2, m3); \ 21 _mm_storeu_ps(dst + 4 * (0 + 4 * v), m0); \ 22 _mm_storeu_ps(dst + 4 * (1 + 4 * v), m1); \ 23 _mm_storeu_ps(dst + 4 * (2 + 4 * v), m2); \ 24 _mm_storeu_ps(dst + 4 * (3 + 4 * v), m3); \ 25 } 26 27 void _SSE_GemmPostTreat(float* C, size_t eSize, const size_t* parameter, const float* postParameters, 28 const float* bias); 29 #endif 30