58 lines
1.4 KiB
C
58 lines
1.4 KiB
C
#include "StgSharpC.h"
|
|
#include "ssc_intrinsic.h"
|
|
#include <stdio.h>
|
|
|
|
#ifdef _MSC_VER
|
|
#include <intrin.h>
|
|
#include <isa_availability.h>
|
|
#else
|
|
#include <cpuid.h>
|
|
#endif // _MSC_VER
|
|
|
|
PRIVATE void load_intrinsic_sse(ssc_intrinsic* context);
|
|
|
|
SSCAPI int load_intrinsic_function(void *intrinsic_context)
|
|
{
|
|
ssc_null_assert(intrinsic_context);
|
|
|
|
ssc_intrinsic *context = (ssc_intrinsic *)intrinsic_context;
|
|
|
|
if (__check_isa_support(__IA_SUPPORT_VECTOR512,0))
|
|
{
|
|
|
|
}
|
|
else if (__check_isa_support(__IA_SUPPORT_VECTOR256, 0))
|
|
{
|
|
|
|
}
|
|
else if (__check_isa_support(__IA_SUPPORT_SSE42, 0))
|
|
{
|
|
load_intrinsic_sse(context);
|
|
}
|
|
else
|
|
{
|
|
|
|
}
|
|
|
|
return 0;
|
|
}
|
|
|
|
void load_intrinsic_sse(ssc_intrinsic* context)
|
|
{
|
|
context->add_m2 = addmatrix2_sse;
|
|
context->add_m3 = ;
|
|
context->add_m4 = ;
|
|
context->transpose_23 = transpose23;
|
|
context->transpose_24 = transpose24;
|
|
context->transpose_32 = transpose32;
|
|
context->transpose_33 = transpose33;
|
|
context->transpose_34 = transpose34;
|
|
context->transpose_42 = transpose42;
|
|
context->transpose_43 = transpose43;
|
|
context->transpose_44 = transpose44;
|
|
context->normalize_3 = normalize;
|
|
context->det_matrix33 = det_mat3;
|
|
context->det_matrix44 = det_mat4;
|
|
context->string_quick_hash = quick_string_hash;
|
|
}
|