daily update on 20241226 by nitload youmu
This commit is contained in:
@@ -8,6 +8,11 @@
|
||||
#include "StgSharpC.h"
|
||||
#include <immintrin.h>
|
||||
|
||||
#ifdef _MSC_VER
|
||||
#include <intrin.h>
|
||||
#include <isa_availability.h>
|
||||
#endif
|
||||
|
||||
typedef union column_2 {
|
||||
__m256 stream[1];
|
||||
__m128 column[2];
|
||||
@@ -39,21 +44,24 @@ INTERNAL void normalize(__m128 *source, __m128 *target);
|
||||
|
||||
INTERNAL void SSCDECL addmatrix2_sse(__2_columnset* left, __2_columnset* right, __2_columnset* ans);
|
||||
INTERNAL void SSCDECL addmatrix2_avx(__2_columnset* left, __2_columnset* right, __2_columnset* ans);
|
||||
INTERNAL void SSCDECL transpose23(__2_columnset *source, __3_columnset *target);
|
||||
INTERNAL void SSCDECL transpose24(__2_columnset *source, __4_columnset *target);
|
||||
INTERNAL void SSCDECL transpose23(__2_columnset const *source, __3_columnset *target);
|
||||
INTERNAL void SSCDECL transpose24(__2_columnset const *source, __4_columnset *target);
|
||||
|
||||
|
||||
INTERNAL void SSCDECL addmatrix3_sse(__3_columnset* left, __3_columnset* right, __3_columnset* ans);
|
||||
INTERNAL void SSCDECL addmatrix3_avx(__3_columnset* left, __3_columnset* right, __3_columnset* ans);
|
||||
INTERNAL void SSCDECL addmatrix3_512(__3_columnset* left, __3_columnset* right, __3_columnset* ans);
|
||||
INTERNAL void SSCDECL transpose32(__3_columnset *source, __2_columnset *target);
|
||||
INTERNAL void SSCDECL transpose33(__3_columnset *source, __3_columnset *target);
|
||||
INTERNAL void SSCDECL transpose34(__3_columnset *source, __4_columnset *target);
|
||||
INTERNAL void SSCDECL transpose32(__3_columnset const *source, __2_columnset *target);
|
||||
INTERNAL void SSCDECL transpose33(__3_columnset const *source, __3_columnset *target);
|
||||
INTERNAL void SSCDECL transpose34(__3_columnset const *source, __4_columnset *target);
|
||||
INTERNAL float SSCDECL det_mat3(__3_columnset *matrix, __3_columnset *tranpose);
|
||||
|
||||
INTERNAL void SSCDECL transpose42(__4_columnset *source, __2_columnset *target);
|
||||
INTERNAL void SSCDECL transpose43(__4_columnset *source, __3_columnset *target);
|
||||
INTERNAL void SSCDECL transpose44(__4_columnset *matrix, __4_columnset *target);
|
||||
INTERNAL void SSCDECL addmatrix4_sse(__4_columnset *left, __4_columnset *right, __4_columnset *ans);
|
||||
INTERNAL void SSCDECL addmatrix4_avx(__4_columnset *left, __4_columnset *right, __4_columnset *ans);
|
||||
INTERNAL void SSCDECL addmatrix4_512(__4_columnset *left, __4_columnset *right, __4_columnset *ans);
|
||||
INTERNAL void SSCDECL transpose42(__4_columnset const *source, __2_columnset *target);
|
||||
INTERNAL void SSCDECL transpose43(__4_columnset const *source, __3_columnset *target);
|
||||
INTERNAL void SSCDECL transpose44(__4_columnset const *source, __4_columnset *target);
|
||||
INTERNAL float SSCDECL det_mat4(__4_columnset *matrix, __4_columnset *transpose);
|
||||
|
||||
#pragma endregion
|
||||
@@ -82,12 +90,19 @@ typedef struct ssc_intrinsic {
|
||||
MATRIXTRANSPOSEPROC transpose_44;
|
||||
} ssc_intrinsic;
|
||||
|
||||
enum most_advance_instruction
|
||||
typedef enum most_advanced_instruction
|
||||
{
|
||||
#ifdef _MSC_VER
|
||||
SSE = __IA_SUPPORT_SSE42,
|
||||
AVX256 = __IA_SUPPORT_VECTOR256,
|
||||
AVX512 = __IA_SUPPORT_VECTOR512,
|
||||
NEON
|
||||
#else
|
||||
SSE,
|
||||
AVX,
|
||||
AVX256,
|
||||
AVX512,
|
||||
NEON
|
||||
};
|
||||
#endif
|
||||
}most_advanced_instruction;
|
||||
|
||||
#endif // !SSC_INTRIN
|
||||
|
||||
Reference in New Issue
Block a user