20 lines
475 B
C
20 lines
475 B
C
#ifndef SN_MATKERNEL
|
|
#define SN_MATKERNEL
|
|
|
|
#include <immintrin.h>
|
|
|
|
#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
|