#ifndef SN_MATKERNEL #define SN_MATKERNEL #include #define ELEMENTSIZE(T) sizeof(T) #define XMMCOUNT(T) sizeof(T) #define YMMCOUNT(T) sizeof(T) / 2 #define ZMMCOUNT(T) sizeof(T) / 4 #define MAT_KERNEL(T) \ union { \ __m128 xmm[XMMCOUNT(T)]; \ __m256 ymm[YMMCOUNT(T)]; \ __m512 zmm[ZMMCOUNT(T)]; \ T m[4][4]; \ } #endif