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