diff --git a/.gitignore b/.gitignore index 26aa3a09..ee14f210 100644 --- a/.gitignore +++ b/.gitignore @@ -12,3 +12,4 @@ */.vs /StgSharp.Native/lib obj +/cmake_build diff --git a/StgSharp.Native/.cache/clangd/index/StgSharpNative.h.4995CE7BF2BDDAFD.idx b/StgSharp.Native/.cache/clangd/index/StgSharpNative.h.4995CE7BF2BDDAFD.idx new file mode 100644 index 00000000..3174fc25 Binary files /dev/null and b/StgSharp.Native/.cache/clangd/index/StgSharpNative.h.4995CE7BF2BDDAFD.idx differ diff --git a/StgSharp.Native/.cache/clangd/index/dllmain.c.693656BDB16A2A66.idx b/StgSharp.Native/.cache/clangd/index/dllmain.c.693656BDB16A2A66.idx new file mode 100644 index 00000000..51c639b3 Binary files /dev/null and b/StgSharp.Native/.cache/clangd/index/dllmain.c.693656BDB16A2A66.idx differ diff --git a/StgSharp.Native/.cache/clangd/index/gl.h.872C02B44AACC9D0.idx b/StgSharp.Native/.cache/clangd/index/gl.h.872C02B44AACC9D0.idx new file mode 100644 index 00000000..7b5db758 Binary files /dev/null and b/StgSharp.Native/.cache/clangd/index/gl.h.872C02B44AACC9D0.idx differ diff --git a/StgSharp.Native/.cache/clangd/index/glfw3.h.E74F1A4E96981153.idx b/StgSharp.Native/.cache/clangd/index/glfw3.h.E74F1A4E96981153.idx new file mode 100644 index 00000000..bd31d8b5 Binary files /dev/null and b/StgSharp.Native/.cache/clangd/index/glfw3.h.E74F1A4E96981153.idx differ diff --git a/StgSharp.Native/.cache/clangd/index/glfw_function.h.E7F62B4F36471C88.idx b/StgSharp.Native/.cache/clangd/index/glfw_function.h.E7F62B4F36471C88.idx new file mode 100644 index 00000000..507305ba Binary files /dev/null and b/StgSharp.Native/.cache/clangd/index/glfw_function.h.E7F62B4F36471C88.idx differ diff --git a/StgSharp.Native/.cache/clangd/index/khrplatform.h.E0CC86B40468D38F.idx b/StgSharp.Native/.cache/clangd/index/khrplatform.h.E0CC86B40468D38F.idx new file mode 100644 index 00000000..af53799e Binary files /dev/null and b/StgSharp.Native/.cache/clangd/index/khrplatform.h.E0CC86B40468D38F.idx differ diff --git a/StgSharp.Native/.cache/clangd/index/load_glfw.c.8EEC02B2FC35B602.idx b/StgSharp.Native/.cache/clangd/index/load_glfw.c.8EEC02B2FC35B602.idx new file mode 100644 index 00000000..adcedb13 Binary files /dev/null and b/StgSharp.Native/.cache/clangd/index/load_glfw.c.8EEC02B2FC35B602.idx differ diff --git a/StgSharp.Native/.cache/clangd/index/load_intrinsic.x86.c.F85DE0985CFEAFC7.idx b/StgSharp.Native/.cache/clangd/index/load_intrinsic.x86.c.F85DE0985CFEAFC7.idx new file mode 100644 index 00000000..d874d5ea Binary files /dev/null and b/StgSharp.Native/.cache/clangd/index/load_intrinsic.x86.c.F85DE0985CFEAFC7.idx differ diff --git a/StgSharp.Native/.cache/clangd/index/m.bufop.x86.c.D02B9612A86F3381.idx b/StgSharp.Native/.cache/clangd/index/m.bufop.x86.c.D02B9612A86F3381.idx new file mode 100644 index 00000000..202fb343 Binary files /dev/null and b/StgSharp.Native/.cache/clangd/index/m.bufop.x86.c.D02B9612A86F3381.idx differ diff --git a/StgSharp.Native/.cache/clangd/index/m.solve.x86.c.A740CE0EA3BB371C.idx b/StgSharp.Native/.cache/clangd/index/m.solve.x86.c.A740CE0EA3BB371C.idx new file mode 100644 index 00000000..ccf8e9a2 Binary files /dev/null and b/StgSharp.Native/.cache/clangd/index/m.solve.x86.c.A740CE0EA3BB371C.idx differ diff --git a/StgSharp.Native/.cache/clangd/index/m.transpose.x86.c.E7D20DF7D1F53278.idx b/StgSharp.Native/.cache/clangd/index/m.transpose.x86.c.E7D20DF7D1F53278.idx new file mode 100644 index 00000000..4e3c9c2f Binary files /dev/null and b/StgSharp.Native/.cache/clangd/index/m.transpose.x86.c.E7D20DF7D1F53278.idx differ diff --git a/StgSharp.Native/.cache/clangd/index/mk.fma.x86.c.46ABCA8FA7C19AAA.idx b/StgSharp.Native/.cache/clangd/index/mk.fma.x86.c.46ABCA8FA7C19AAA.idx new file mode 100644 index 00000000..31be940b Binary files /dev/null and b/StgSharp.Native/.cache/clangd/index/mk.fma.x86.c.46ABCA8FA7C19AAA.idx differ diff --git a/StgSharp.Native/.cache/clangd/index/s.factorial.x86.c.829C3043BB9B0AB5.idx b/StgSharp.Native/.cache/clangd/index/s.factorial.x86.c.829C3043BB9B0AB5.idx new file mode 100644 index 00000000..992e0baa Binary files /dev/null and b/StgSharp.Native/.cache/clangd/index/s.factorial.x86.c.829C3043BB9B0AB5.idx differ diff --git a/StgSharp.Native/.cache/clangd/index/s.hash.x86.c.A842A8040CA6DDDD.idx b/StgSharp.Native/.cache/clangd/index/s.hash.x86.c.A842A8040CA6DDDD.idx new file mode 100644 index 00000000..50f1825d Binary files /dev/null and b/StgSharp.Native/.cache/clangd/index/s.hash.x86.c.A842A8040CA6DDDD.idx differ diff --git a/StgSharp.Native/.cache/clangd/index/simdid.x86.c.A5AE07ED8BFC4CE3.idx b/StgSharp.Native/.cache/clangd/index/simdid.x86.c.A5AE07ED8BFC4CE3.idx new file mode 100644 index 00000000..68ddce26 Binary files /dev/null and b/StgSharp.Native/.cache/clangd/index/simdid.x86.c.A5AE07ED8BFC4CE3.idx differ diff --git a/StgSharp.Native/.cache/clangd/index/simdid_compare.x86.c.A1B317399F224C45.idx b/StgSharp.Native/.cache/clangd/index/simdid_compare.x86.c.A1B317399F224C45.idx new file mode 100644 index 00000000..a3b80aa9 Binary files /dev/null and b/StgSharp.Native/.cache/clangd/index/simdid_compare.x86.c.A1B317399F224C45.idx differ diff --git a/StgSharp.Native/.cache/clangd/index/sk.fma.x86.c.0814D9474B842FD2.idx b/StgSharp.Native/.cache/clangd/index/sk.fma.x86.c.0814D9474B842FD2.idx new file mode 100644 index 00000000..bf9fde5f Binary files /dev/null and b/StgSharp.Native/.cache/clangd/index/sk.fma.x86.c.0814D9474B842FD2.idx differ diff --git a/StgSharp.Native/.cache/clangd/index/sn_internal.h.3EF94CD61A762AF6.idx b/StgSharp.Native/.cache/clangd/index/sn_internal.h.3EF94CD61A762AF6.idx new file mode 100644 index 00000000..94656591 Binary files /dev/null and b/StgSharp.Native/.cache/clangd/index/sn_internal.h.3EF94CD61A762AF6.idx differ diff --git a/StgSharp.Native/.cache/clangd/index/sn_intrinsic.context.x86.h.34F603A805649DB0.idx b/StgSharp.Native/.cache/clangd/index/sn_intrinsic.context.x86.h.34F603A805649DB0.idx new file mode 100644 index 00000000..4888e54a Binary files /dev/null and b/StgSharp.Native/.cache/clangd/index/sn_intrinsic.context.x86.h.34F603A805649DB0.idx differ diff --git a/StgSharp.Native/.cache/clangd/index/sn_intrinsic.h.E09549401BC3B590.idx b/StgSharp.Native/.cache/clangd/index/sn_intrinsic.h.E09549401BC3B590.idx new file mode 100644 index 00000000..7d407489 Binary files /dev/null and b/StgSharp.Native/.cache/clangd/index/sn_intrinsic.h.E09549401BC3B590.idx differ diff --git a/StgSharp.Native/.cache/clangd/index/sn_intrinsic.matkernel.h.161A9E0A54109A22.idx b/StgSharp.Native/.cache/clangd/index/sn_intrinsic.matkernel.h.161A9E0A54109A22.idx new file mode 100644 index 00000000..2fca90ce Binary files /dev/null and b/StgSharp.Native/.cache/clangd/index/sn_intrinsic.matkernel.h.161A9E0A54109A22.idx differ diff --git a/StgSharp.Native/.cache/clangd/index/sn_intrinsic.std.h.7B815CC90AC635F2.idx b/StgSharp.Native/.cache/clangd/index/sn_intrinsic.std.h.7B815CC90AC635F2.idx new file mode 100644 index 00000000..c19b484f Binary files /dev/null and b/StgSharp.Native/.cache/clangd/index/sn_intrinsic.std.h.7B815CC90AC635F2.idx differ diff --git a/StgSharp.Native/.cache/clangd/index/sn_native.c.C654B32BC7BCDB73.idx b/StgSharp.Native/.cache/clangd/index/sn_native.c.C654B32BC7BCDB73.idx new file mode 100644 index 00000000..2691557d Binary files /dev/null and b/StgSharp.Native/.cache/clangd/index/sn_native.c.C654B32BC7BCDB73.idx differ diff --git a/StgSharp.Native/.cache/clangd/index/sn_target.h.11D7D85B43E0081F.idx b/StgSharp.Native/.cache/clangd/index/sn_target.h.11D7D85B43E0081F.idx new file mode 100644 index 00000000..849f59ca Binary files /dev/null and b/StgSharp.Native/.cache/clangd/index/sn_target.h.11D7D85B43E0081F.idx differ diff --git a/StgSharp.Native/.cache/clangd/index/stb_image.h.6F1AD7E8D3072049.idx b/StgSharp.Native/.cache/clangd/index/stb_image.h.6F1AD7E8D3072049.idx new file mode 100644 index 00000000..3d5b5a8b Binary files /dev/null and b/StgSharp.Native/.cache/clangd/index/stb_image.h.6F1AD7E8D3072049.idx differ diff --git a/StgSharp.Native/.cache/clangd/index/thread.linux.c.125C6245463F4735.idx b/StgSharp.Native/.cache/clangd/index/thread.linux.c.125C6245463F4735.idx new file mode 100644 index 00000000..7726415c Binary files /dev/null and b/StgSharp.Native/.cache/clangd/index/thread.linux.c.125C6245463F4735.idx differ diff --git a/StgSharp.Native/.cache/clangd/index/thread.windows.c.38B8C120DD62E7C8.idx b/StgSharp.Native/.cache/clangd/index/thread.windows.c.38B8C120DD62E7C8.idx new file mode 100644 index 00000000..fe9cf19f Binary files /dev/null and b/StgSharp.Native/.cache/clangd/index/thread.windows.c.38B8C120DD62E7C8.idx differ diff --git a/StgSharp.Native/.cache/clangd/index/vector.c.D485BA7D87050634.idx b/StgSharp.Native/.cache/clangd/index/vector.c.D485BA7D87050634.idx new file mode 100644 index 00000000..ba322fe0 Binary files /dev/null and b/StgSharp.Native/.cache/clangd/index/vector.c.D485BA7D87050634.idx differ diff --git a/StgSharp.Native/.cache/clangd/index/vector_dot.c.9A6B648BA7B62E97.idx b/StgSharp.Native/.cache/clangd/index/vector_dot.c.9A6B648BA7B62E97.idx new file mode 100644 index 00000000..6825c4f2 Binary files /dev/null and b/StgSharp.Native/.cache/clangd/index/vector_dot.c.9A6B648BA7B62E97.idx differ diff --git a/StgSharp.Native/.cache/clangd/index/wgl.h.A57E64BCBB5F3CE2.idx b/StgSharp.Native/.cache/clangd/index/wgl.h.A57E64BCBB5F3CE2.idx new file mode 100644 index 00000000..520365f4 Binary files /dev/null and b/StgSharp.Native/.cache/clangd/index/wgl.h.A57E64BCBB5F3CE2.idx differ diff --git a/StgSharp.Native/CMakeLists.txt b/StgSharp.Native/CMakeLists.txt index 9bbc2912..622a1d9b 100644 --- a/StgSharp.Native/CMakeLists.txt +++ b/StgSharp.Native/CMakeLists.txt @@ -20,20 +20,22 @@ sn_resolve_target_identifiers( file(GLOB STGSHARP_NATIVE_SOURCES CONFIGURE_DEPENDS ${CMAKE_CURRENT_LIST_DIR}/sn-src/*.c) -file(GLOB STGSHARP_NATIVE_HEADERS CONFIGURE_DEPENDS - ${CMAKE_CURRENT_LIST_DIR}/sn-head/*.h) - -file(GLOB STGSHARP_NATIVE_TEMPLATES CONFIGURE_DEPENDS - ${CMAKE_CURRENT_LIST_DIR}/sn-template/*.h - ${CMAKE_CURRENT_LIST_DIR}/sn-template/*.inl - ${CMAKE_CURRENT_LIST_DIR}/sn-template/*.inc - ${CMAKE_CURRENT_LIST_DIR}/sn-template/*.ipp) +list(REMOVE_ITEM STGSHARP_NATIVE_SOURCES + ${CMAKE_CURRENT_LIST_DIR}/sn-src/formatted.c + ${CMAKE_CURRENT_LIST_DIR}/sn-src/StgSharpC.c) if(NOT STGSHARP_NATIVE_SOURCES) message(FATAL_ERROR "No source files found under sn-src/.") endif() -get_filename_component(STGSHARP_SOLUTION_ROOT ${CMAKE_CURRENT_LIST_DIR} DIRECTORY) +get_filename_component(STGSHARP_SOURCE_ROOT ${CMAKE_CURRENT_LIST_DIR} DIRECTORY) +get_filename_component(STGSHARP_SOURCE_ROOT_NAME ${STGSHARP_SOURCE_ROOT} NAME) + +if(STGSHARP_SOURCE_ROOT_NAME STREQUAL "src") + get_filename_component(STGSHARP_SOLUTION_ROOT ${STGSHARP_SOURCE_ROOT} DIRECTORY) +else() + set(STGSHARP_SOLUTION_ROOT ${STGSHARP_SOURCE_ROOT}) +endif() if(SN_RESOLVED_OS_NAME STREQUAL "windows") set(STGSHARP_OS_TAG win) @@ -55,16 +57,12 @@ else() set(STGSHARP_ARCH_TAG ${SN_RESOLVED_ARCH_NAME}) endif() -set(STGSHARP_BUILD_OUTPUT_DIR ${STGSHARP_SOLUTION_ROOT}/build/${STGSHARP_OS_TAG}-${STGSHARP_ARCH_TAG}) +set(STGSHARP_BUILD_OUTPUT_DIR ${STGSHARP_SOLUTION_ROOT}/cmake_build/${STGSHARP_OS_TAG}_${STGSHARP_ARCH_TAG}) set(STGSHARP_OBJECT_ROOT_DIR ${STGSHARP_SOLUTION_ROOT}/obj/${PROJECT_NAME}) -set(STGSHARP_NATIVE_PROJECT_FILES - ${STGSHARP_NATIVE_SOURCES} - ${STGSHARP_NATIVE_HEADERS} - ${STGSHARP_NATIVE_TEMPLATES}) -add_library(${PROJECT_NAME} SHARED ${STGSHARP_NATIVE_PROJECT_FILES}) +set(STGSHARP_C_FRONTEND_VARIANT "${CMAKE_C_COMPILER_FRONTEND_VARIANT}") -source_group(TREE ${CMAKE_CURRENT_LIST_DIR} FILES ${STGSHARP_NATIVE_PROJECT_FILES}) +add_library(${PROJECT_NAME} SHARED ${STGSHARP_NATIVE_SOURCES}) set_target_properties(${PROJECT_NAME} PROPERTIES C_STANDARD 11 @@ -86,35 +84,25 @@ endforeach() set_target_properties(${PROJECT_NAME} PROPERTIES COMPILE_PDB_OUTPUT_DIRECTORY ${STGSHARP_OBJECT_ROOT_DIR}/$/${STGSHARP_ARCH_TAG}) -if(MSVC OR (CMAKE_C_COMPILER_ID STREQUAL "Clang" AND CMAKE_C_COMPILER_FRONTEND_VARIANT STREQUAL "MSVC")) +if(MSVC OR STGSHARP_C_FRONTEND_VARIANT STREQUAL "MSVC") target_compile_options(${PROJECT_NAME} PRIVATE /Fd${STGSHARP_OBJECT_ROOT_DIR}/$/${STGSHARP_ARCH_TAG}/) endif() if(CMAKE_C_COMPILER_ID STREQUAL "Clang" AND SN_RESOLVED_ARCH_NAME STREQUAL "x86_64") - # Keep the intrinsic type system and builtin declarations visible to all TUs. - # The runtime dispatch contract still follows T_arch/T_feature at the function level. - if(CMAKE_C_COMPILER_FRONTEND_VARIANT STREQUAL "MSVC") + if(STGSHARP_C_FRONTEND_VARIANT STREQUAL "MSVC") target_compile_options(${PROJECT_NAME} PRIVATE /clang:-mavx /clang:-mavx2 /clang:-mfma - /clang:-mf16c /clang:-mavx512f - /clang:-mavx512cd - /clang:-mavx512dq - /clang:-mavx512bw /clang:-mavx512vl) else() target_compile_options(${PROJECT_NAME} PRIVATE -mavx -mavx2 -mfma - -mf16c -mavx512f - -mavx512cd - -mavx512dq - -mavx512bw -mavx512vl) endif() endif() @@ -122,7 +110,6 @@ endif() target_include_directories(${PROJECT_NAME} PRIVATE ${CMAKE_CURRENT_LIST_DIR}/sn-head - ${CMAKE_CURRENT_LIST_DIR}/sn-template ${CMAKE_CURRENT_LIST_DIR}/lib) target_compile_definitions(${PROJECT_NAME} @@ -140,4 +127,5 @@ endif() message(STATUS "StgSharp.Native target OS: ${SN_RESOLVED_OS_NAME} (${SN_RESOLVED_OS_DEFINE})") message(STATUS "StgSharp.Native target ISA: ${SN_RESOLVED_ARCH_NAME} (${SN_RESOLVED_ARCH_DEFINE})") +message(STATUS "StgSharp.Native compiler front-end: ${STGSHARP_C_FRONTEND_VARIANT}") message(STATUS "StgSharp.Native output dir: ${STGSHARP_BUILD_OUTPUT_DIR}") diff --git a/StgSharp.Native/StgSharp.Native.vcxproj b/StgSharp.Native/StgSharp.Native.vcxproj index 4505f211..1d8460d9 100644 --- a/StgSharp.Native/StgSharp.Native.vcxproj +++ b/StgSharp.Native/StgSharp.Native.vcxproj @@ -85,8 +85,8 @@ <_ArchTag Condition="'$(Platform)'=='x64'">x64 <_ArchTag Condition="'$(Platform)'=='ARM64'">arm64 - - $(SolutionDir)build\win-$(_ArchTag)\ + + $(SolutionDir)cmake_build\win_$(_ArchTag)\ $(SolutionDir)obj\$(ProjectName)\$(Configuration)\$(Platform)\ @@ -110,7 +110,7 @@ stdc11 true Speed - $(ProjectDir)lib;$(ProjectDir)sn-head;$(ProjectDir)sn-template;%(AdditionalIncludeDirectories) + $(ProjectDir)lib;$(ProjectDir)sn-head;%(AdditionalIncludeDirectories) @@ -172,7 +172,7 @@ - + @@ -185,8 +185,7 @@ - - + diff --git a/StgSharp.Native/StgSharp.Native.vcxproj.filters b/StgSharp.Native/StgSharp.Native.vcxproj.filters index ec136964..b2ea2a86 100644 --- a/StgSharp.Native/StgSharp.Native.vcxproj.filters +++ b/StgSharp.Native/StgSharp.Native.vcxproj.filters @@ -16,10 +16,6 @@ {fbd74b53-5314-4d9d-a788-07bd1b413f74} - - {C8E0D8C1-42A1-4F7E-9C35-7E6D32D49A7B} - h;hh;hpp;hxx;h++;hm;inl;inc;ipp;xsd - @@ -43,7 +39,7 @@ 源文件 - + 源文件 @@ -64,15 +60,12 @@ 源文件 - + 源文件 源文件 - - 源文件 - diff --git a/StgSharp.Native/compile_commands.json b/StgSharp.Native/compile_commands.json new file mode 100644 index 00000000..a181e1e8 --- /dev/null +++ b/StgSharp.Native/compile_commands.json @@ -0,0 +1,104 @@ +[ +{ + "directory": "D:/NitloadIndustry/研究项目/1-Flagship/TH2020/ProjectFile/内核源代码/build/cmake-clang-gnu", + "command": "C:\\PROGRA~1\\LLVM\\bin\\clang.exe -DSN_ARCH_TARGET=SN_ARCH_X86_64 -DSN_EXTERN_TARGET -DSN_OS_TARGET=SN_OS_WINDOWS -DStgSharp_Native_EXPORTS -ID:/NitloadIndustry/研究项目/1-Flagship/TH2020/ProjectFile/内核源代码/StgSharp.Native/sn-head -ID:/NitloadIndustry/研究项目/1-Flagship/TH2020/ProjectFile/内核源代码/StgSharp.Native/lib -ID:/NitloadIndustry/研究项目/1-Flagship/TH2020/ProjectFile/内核源代码/StgSharp.Native/lib/glfw -ID:/NitloadIndustry/研究项目/1-Flagship/TH2020/ProjectFile/内核源代码/StgSharp.Native/lib/stbi -O0 -g -Xclang -gcodeview -std=gnu11 -D_DEBUG -D_DLL -D_MT -Xclang --dependent-lib=msvcrtd -mavx -mavx2 -mfma -mavx512f -mavx512vl -o CMakeFiles\\StgSharp.Native.dir\\sn-src\\dllmain.c.obj -c D:\\NitloadIndustry\\研究项目\\1-Flagship\\TH2020\\ProjectFile\\内核源代码\\StgSharp.Native\\sn-src\\dllmain.c", + "file": "D:/NitloadIndustry/研究项目/1-Flagship/TH2020/ProjectFile/内核源代码/StgSharp.Native/sn-src/dllmain.c", + "output": "D:/NitloadIndustry/研究项目/1-Flagship/TH2020/ProjectFile/内核源代码/build/cmake-clang-gnu/CMakeFiles/StgSharp.Native.dir/sn-src/dllmain.c.obj" +}, +{ + "directory": "D:/NitloadIndustry/研究项目/1-Flagship/TH2020/ProjectFile/内核源代码/build/cmake-clang-gnu", + "command": "C:\\PROGRA~1\\LLVM\\bin\\clang.exe -DSN_ARCH_TARGET=SN_ARCH_X86_64 -DSN_EXTERN_TARGET -DSN_OS_TARGET=SN_OS_WINDOWS -DStgSharp_Native_EXPORTS -ID:/NitloadIndustry/研究项目/1-Flagship/TH2020/ProjectFile/内核源代码/StgSharp.Native/sn-head -ID:/NitloadIndustry/研究项目/1-Flagship/TH2020/ProjectFile/内核源代码/StgSharp.Native/lib -ID:/NitloadIndustry/研究项目/1-Flagship/TH2020/ProjectFile/内核源代码/StgSharp.Native/lib/glfw -ID:/NitloadIndustry/研究项目/1-Flagship/TH2020/ProjectFile/内核源代码/StgSharp.Native/lib/stbi -O0 -g -Xclang -gcodeview -std=gnu11 -D_DEBUG -D_DLL -D_MT -Xclang --dependent-lib=msvcrtd -mavx -mavx2 -mfma -mavx512f -mavx512vl -o CMakeFiles\\StgSharp.Native.dir\\sn-src\\load_glfw.c.obj -c D:\\NitloadIndustry\\研究项目\\1-Flagship\\TH2020\\ProjectFile\\内核源代码\\StgSharp.Native\\sn-src\\load_glfw.c", + "file": "D:/NitloadIndustry/研究项目/1-Flagship/TH2020/ProjectFile/内核源代码/StgSharp.Native/sn-src/load_glfw.c", + "output": "D:/NitloadIndustry/研究项目/1-Flagship/TH2020/ProjectFile/内核源代码/build/cmake-clang-gnu/CMakeFiles/StgSharp.Native.dir/sn-src/load_glfw.c.obj" +}, +{ + "directory": "D:/NitloadIndustry/研究项目/1-Flagship/TH2020/ProjectFile/内核源代码/build/cmake-clang-gnu", + "command": "C:\\PROGRA~1\\LLVM\\bin\\clang.exe -DSN_ARCH_TARGET=SN_ARCH_X86_64 -DSN_EXTERN_TARGET -DSN_OS_TARGET=SN_OS_WINDOWS -DStgSharp_Native_EXPORTS -ID:/NitloadIndustry/研究项目/1-Flagship/TH2020/ProjectFile/内核源代码/StgSharp.Native/sn-head -ID:/NitloadIndustry/研究项目/1-Flagship/TH2020/ProjectFile/内核源代码/StgSharp.Native/lib -ID:/NitloadIndustry/研究项目/1-Flagship/TH2020/ProjectFile/内核源代码/StgSharp.Native/lib/glfw -ID:/NitloadIndustry/研究项目/1-Flagship/TH2020/ProjectFile/内核源代码/StgSharp.Native/lib/stbi -O0 -g -Xclang -gcodeview -std=gnu11 -D_DEBUG -D_DLL -D_MT -Xclang --dependent-lib=msvcrtd -mavx -mavx2 -mfma -mavx512f -mavx512vl -o CMakeFiles\\StgSharp.Native.dir\\sn-src\\load_intrinsic.x86.c.obj -c D:\\NitloadIndustry\\研究项目\\1-Flagship\\TH2020\\ProjectFile\\内核源代码\\StgSharp.Native\\sn-src\\load_intrinsic.x86.c", + "file": "D:/NitloadIndustry/研究项目/1-Flagship/TH2020/ProjectFile/内核源代码/StgSharp.Native/sn-src/load_intrinsic.x86.c", + "output": "D:/NitloadIndustry/研究项目/1-Flagship/TH2020/ProjectFile/内核源代码/build/cmake-clang-gnu/CMakeFiles/StgSharp.Native.dir/sn-src/load_intrinsic.x86.c.obj" +}, +{ + "directory": "D:/NitloadIndustry/研究项目/1-Flagship/TH2020/ProjectFile/内核源代码/build/cmake-clang-gnu", + "command": "C:\\PROGRA~1\\LLVM\\bin\\clang.exe -DSN_ARCH_TARGET=SN_ARCH_X86_64 -DSN_EXTERN_TARGET -DSN_OS_TARGET=SN_OS_WINDOWS -DStgSharp_Native_EXPORTS -ID:/NitloadIndustry/研究项目/1-Flagship/TH2020/ProjectFile/内核源代码/StgSharp.Native/sn-head -ID:/NitloadIndustry/研究项目/1-Flagship/TH2020/ProjectFile/内核源代码/StgSharp.Native/lib -ID:/NitloadIndustry/研究项目/1-Flagship/TH2020/ProjectFile/内核源代码/StgSharp.Native/lib/glfw -ID:/NitloadIndustry/研究项目/1-Flagship/TH2020/ProjectFile/内核源代码/StgSharp.Native/lib/stbi -O0 -g -Xclang -gcodeview -std=gnu11 -D_DEBUG -D_DLL -D_MT -Xclang --dependent-lib=msvcrtd -mavx -mavx2 -mfma -mavx512f -mavx512vl -o CMakeFiles\\StgSharp.Native.dir\\sn-src\\m.bufop.x86.c.obj -c D:\\NitloadIndustry\\研究项目\\1-Flagship\\TH2020\\ProjectFile\\内核源代码\\StgSharp.Native\\sn-src\\m.bufop.x86.c", + "file": "D:/NitloadIndustry/研究项目/1-Flagship/TH2020/ProjectFile/内核源代码/StgSharp.Native/sn-src/m.bufop.x86.c", + "output": "D:/NitloadIndustry/研究项目/1-Flagship/TH2020/ProjectFile/内核源代码/build/cmake-clang-gnu/CMakeFiles/StgSharp.Native.dir/sn-src/m.bufop.x86.c.obj" +}, +{ + "directory": "D:/NitloadIndustry/研究项目/1-Flagship/TH2020/ProjectFile/内核源代码/build/cmake-clang-gnu", + "command": "C:\\PROGRA~1\\LLVM\\bin\\clang.exe -DSN_ARCH_TARGET=SN_ARCH_X86_64 -DSN_EXTERN_TARGET -DSN_OS_TARGET=SN_OS_WINDOWS -DStgSharp_Native_EXPORTS -ID:/NitloadIndustry/研究项目/1-Flagship/TH2020/ProjectFile/内核源代码/StgSharp.Native/sn-head -ID:/NitloadIndustry/研究项目/1-Flagship/TH2020/ProjectFile/内核源代码/StgSharp.Native/lib -ID:/NitloadIndustry/研究项目/1-Flagship/TH2020/ProjectFile/内核源代码/StgSharp.Native/lib/glfw -ID:/NitloadIndustry/研究项目/1-Flagship/TH2020/ProjectFile/内核源代码/StgSharp.Native/lib/stbi -O0 -g -Xclang -gcodeview -std=gnu11 -D_DEBUG -D_DLL -D_MT -Xclang --dependent-lib=msvcrtd -mavx -mavx2 -mfma -mavx512f -mavx512vl -o CMakeFiles\\StgSharp.Native.dir\\sn-src\\m.solve.x86.c.obj -c D:\\NitloadIndustry\\研究项目\\1-Flagship\\TH2020\\ProjectFile\\内核源代码\\StgSharp.Native\\sn-src\\m.solve.x86.c", + "file": "D:/NitloadIndustry/研究项目/1-Flagship/TH2020/ProjectFile/内核源代码/StgSharp.Native/sn-src/m.solve.x86.c", + "output": "D:/NitloadIndustry/研究项目/1-Flagship/TH2020/ProjectFile/内核源代码/build/cmake-clang-gnu/CMakeFiles/StgSharp.Native.dir/sn-src/m.solve.x86.c.obj" +}, +{ + "directory": "D:/NitloadIndustry/研究项目/1-Flagship/TH2020/ProjectFile/内核源代码/build/cmake-clang-gnu", + "command": "C:\\PROGRA~1\\LLVM\\bin\\clang.exe -DSN_ARCH_TARGET=SN_ARCH_X86_64 -DSN_EXTERN_TARGET -DSN_OS_TARGET=SN_OS_WINDOWS -DStgSharp_Native_EXPORTS -ID:/NitloadIndustry/研究项目/1-Flagship/TH2020/ProjectFile/内核源代码/StgSharp.Native/sn-head -ID:/NitloadIndustry/研究项目/1-Flagship/TH2020/ProjectFile/内核源代码/StgSharp.Native/lib -ID:/NitloadIndustry/研究项目/1-Flagship/TH2020/ProjectFile/内核源代码/StgSharp.Native/lib/glfw -ID:/NitloadIndustry/研究项目/1-Flagship/TH2020/ProjectFile/内核源代码/StgSharp.Native/lib/stbi -O0 -g -Xclang -gcodeview -std=gnu11 -D_DEBUG -D_DLL -D_MT -Xclang --dependent-lib=msvcrtd -mavx -mavx2 -mfma -mavx512f -mavx512vl -o CMakeFiles\\StgSharp.Native.dir\\sn-src\\m.transpose.x86.c.obj -c D:\\NitloadIndustry\\研究项目\\1-Flagship\\TH2020\\ProjectFile\\内核源代码\\StgSharp.Native\\sn-src\\m.transpose.x86.c", + "file": "D:/NitloadIndustry/研究项目/1-Flagship/TH2020/ProjectFile/内核源代码/StgSharp.Native/sn-src/m.transpose.x86.c", + "output": "D:/NitloadIndustry/研究项目/1-Flagship/TH2020/ProjectFile/内核源代码/build/cmake-clang-gnu/CMakeFiles/StgSharp.Native.dir/sn-src/m.transpose.x86.c.obj" +}, +{ + "directory": "D:/NitloadIndustry/研究项目/1-Flagship/TH2020/ProjectFile/内核源代码/build/cmake-clang-gnu", + "command": "C:\\PROGRA~1\\LLVM\\bin\\clang.exe -DSN_ARCH_TARGET=SN_ARCH_X86_64 -DSN_EXTERN_TARGET -DSN_OS_TARGET=SN_OS_WINDOWS -DStgSharp_Native_EXPORTS -ID:/NitloadIndustry/研究项目/1-Flagship/TH2020/ProjectFile/内核源代码/StgSharp.Native/sn-head -ID:/NitloadIndustry/研究项目/1-Flagship/TH2020/ProjectFile/内核源代码/StgSharp.Native/lib -ID:/NitloadIndustry/研究项目/1-Flagship/TH2020/ProjectFile/内核源代码/StgSharp.Native/lib/glfw -ID:/NitloadIndustry/研究项目/1-Flagship/TH2020/ProjectFile/内核源代码/StgSharp.Native/lib/stbi -O0 -g -Xclang -gcodeview -std=gnu11 -D_DEBUG -D_DLL -D_MT -Xclang --dependent-lib=msvcrtd -mavx -mavx2 -mfma -mavx512f -mavx512vl -o CMakeFiles\\StgSharp.Native.dir\\sn-src\\mk.fma.x86.c.obj -c D:\\NitloadIndustry\\研究项目\\1-Flagship\\TH2020\\ProjectFile\\内核源代码\\StgSharp.Native\\sn-src\\mk.fma.x86.c", + "file": "D:/NitloadIndustry/研究项目/1-Flagship/TH2020/ProjectFile/内核源代码/StgSharp.Native/sn-src/mk.fma.x86.c", + "output": "D:/NitloadIndustry/研究项目/1-Flagship/TH2020/ProjectFile/内核源代码/build/cmake-clang-gnu/CMakeFiles/StgSharp.Native.dir/sn-src/mk.fma.x86.c.obj" +}, +{ + "directory": "D:/NitloadIndustry/研究项目/1-Flagship/TH2020/ProjectFile/内核源代码/build/cmake-clang-gnu", + "command": "C:\\PROGRA~1\\LLVM\\bin\\clang.exe -DSN_ARCH_TARGET=SN_ARCH_X86_64 -DSN_EXTERN_TARGET -DSN_OS_TARGET=SN_OS_WINDOWS -DStgSharp_Native_EXPORTS -ID:/NitloadIndustry/研究项目/1-Flagship/TH2020/ProjectFile/内核源代码/StgSharp.Native/sn-head -ID:/NitloadIndustry/研究项目/1-Flagship/TH2020/ProjectFile/内核源代码/StgSharp.Native/lib -ID:/NitloadIndustry/研究项目/1-Flagship/TH2020/ProjectFile/内核源代码/StgSharp.Native/lib/glfw -ID:/NitloadIndustry/研究项目/1-Flagship/TH2020/ProjectFile/内核源代码/StgSharp.Native/lib/stbi -O0 -g -Xclang -gcodeview -std=gnu11 -D_DEBUG -D_DLL -D_MT -Xclang --dependent-lib=msvcrtd -mavx -mavx2 -mfma -mavx512f -mavx512vl -o CMakeFiles\\StgSharp.Native.dir\\sn-src\\s.factorial.x86.c.obj -c D:\\NitloadIndustry\\研究项目\\1-Flagship\\TH2020\\ProjectFile\\内核源代码\\StgSharp.Native\\sn-src\\s.factorial.x86.c", + "file": "D:/NitloadIndustry/研究项目/1-Flagship/TH2020/ProjectFile/内核源代码/StgSharp.Native/sn-src/s.factorial.x86.c", + "output": "D:/NitloadIndustry/研究项目/1-Flagship/TH2020/ProjectFile/内核源代码/build/cmake-clang-gnu/CMakeFiles/StgSharp.Native.dir/sn-src/s.factorial.x86.c.obj" +}, +{ + "directory": "D:/NitloadIndustry/研究项目/1-Flagship/TH2020/ProjectFile/内核源代码/build/cmake-clang-gnu", + "command": "C:\\PROGRA~1\\LLVM\\bin\\clang.exe -DSN_ARCH_TARGET=SN_ARCH_X86_64 -DSN_EXTERN_TARGET -DSN_OS_TARGET=SN_OS_WINDOWS -DStgSharp_Native_EXPORTS -ID:/NitloadIndustry/研究项目/1-Flagship/TH2020/ProjectFile/内核源代码/StgSharp.Native/sn-head -ID:/NitloadIndustry/研究项目/1-Flagship/TH2020/ProjectFile/内核源代码/StgSharp.Native/lib -ID:/NitloadIndustry/研究项目/1-Flagship/TH2020/ProjectFile/内核源代码/StgSharp.Native/lib/glfw -ID:/NitloadIndustry/研究项目/1-Flagship/TH2020/ProjectFile/内核源代码/StgSharp.Native/lib/stbi -O0 -g -Xclang -gcodeview -std=gnu11 -D_DEBUG -D_DLL -D_MT -Xclang --dependent-lib=msvcrtd -mavx -mavx2 -mfma -mavx512f -mavx512vl -o CMakeFiles\\StgSharp.Native.dir\\sn-src\\s.hash.x86.c.obj -c D:\\NitloadIndustry\\研究项目\\1-Flagship\\TH2020\\ProjectFile\\内核源代码\\StgSharp.Native\\sn-src\\s.hash.x86.c", + "file": "D:/NitloadIndustry/研究项目/1-Flagship/TH2020/ProjectFile/内核源代码/StgSharp.Native/sn-src/s.hash.x86.c", + "output": "D:/NitloadIndustry/研究项目/1-Flagship/TH2020/ProjectFile/内核源代码/build/cmake-clang-gnu/CMakeFiles/StgSharp.Native.dir/sn-src/s.hash.x86.c.obj" +}, +{ + "directory": "D:/NitloadIndustry/研究项目/1-Flagship/TH2020/ProjectFile/内核源代码/build/cmake-clang-gnu", + "command": "C:\\PROGRA~1\\LLVM\\bin\\clang.exe -DSN_ARCH_TARGET=SN_ARCH_X86_64 -DSN_EXTERN_TARGET -DSN_OS_TARGET=SN_OS_WINDOWS -DStgSharp_Native_EXPORTS -ID:/NitloadIndustry/研究项目/1-Flagship/TH2020/ProjectFile/内核源代码/StgSharp.Native/sn-head -ID:/NitloadIndustry/研究项目/1-Flagship/TH2020/ProjectFile/内核源代码/StgSharp.Native/lib -ID:/NitloadIndustry/研究项目/1-Flagship/TH2020/ProjectFile/内核源代码/StgSharp.Native/lib/glfw -ID:/NitloadIndustry/研究项目/1-Flagship/TH2020/ProjectFile/内核源代码/StgSharp.Native/lib/stbi -O0 -g -Xclang -gcodeview -std=gnu11 -D_DEBUG -D_DLL -D_MT -Xclang --dependent-lib=msvcrtd -mavx -mavx2 -mfma -mavx512f -mavx512vl -o CMakeFiles\\StgSharp.Native.dir\\sn-src\\simdid.x86.c.obj -c D:\\NitloadIndustry\\研究项目\\1-Flagship\\TH2020\\ProjectFile\\内核源代码\\StgSharp.Native\\sn-src\\simdid.x86.c", + "file": "D:/NitloadIndustry/研究项目/1-Flagship/TH2020/ProjectFile/内核源代码/StgSharp.Native/sn-src/simdid.x86.c", + "output": "D:/NitloadIndustry/研究项目/1-Flagship/TH2020/ProjectFile/内核源代码/build/cmake-clang-gnu/CMakeFiles/StgSharp.Native.dir/sn-src/simdid.x86.c.obj" +}, +{ + "directory": "D:/NitloadIndustry/研究项目/1-Flagship/TH2020/ProjectFile/内核源代码/build/cmake-clang-gnu", + "command": "C:\\PROGRA~1\\LLVM\\bin\\clang.exe -DSN_ARCH_TARGET=SN_ARCH_X86_64 -DSN_EXTERN_TARGET -DSN_OS_TARGET=SN_OS_WINDOWS -DStgSharp_Native_EXPORTS -ID:/NitloadIndustry/研究项目/1-Flagship/TH2020/ProjectFile/内核源代码/StgSharp.Native/sn-head -ID:/NitloadIndustry/研究项目/1-Flagship/TH2020/ProjectFile/内核源代码/StgSharp.Native/lib -ID:/NitloadIndustry/研究项目/1-Flagship/TH2020/ProjectFile/内核源代码/StgSharp.Native/lib/glfw -ID:/NitloadIndustry/研究项目/1-Flagship/TH2020/ProjectFile/内核源代码/StgSharp.Native/lib/stbi -O0 -g -Xclang -gcodeview -std=gnu11 -D_DEBUG -D_DLL -D_MT -Xclang --dependent-lib=msvcrtd -mavx -mavx2 -mfma -mavx512f -mavx512vl -o CMakeFiles\\StgSharp.Native.dir\\sn-src\\simdid_compare.x86.c.obj -c D:\\NitloadIndustry\\研究项目\\1-Flagship\\TH2020\\ProjectFile\\内核源代码\\StgSharp.Native\\sn-src\\simdid_compare.x86.c", + "file": "D:/NitloadIndustry/研究项目/1-Flagship/TH2020/ProjectFile/内核源代码/StgSharp.Native/sn-src/simdid_compare.x86.c", + "output": "D:/NitloadIndustry/研究项目/1-Flagship/TH2020/ProjectFile/内核源代码/build/cmake-clang-gnu/CMakeFiles/StgSharp.Native.dir/sn-src/simdid_compare.x86.c.obj" +}, +{ + "directory": "D:/NitloadIndustry/研究项目/1-Flagship/TH2020/ProjectFile/内核源代码/build/cmake-clang-gnu", + "command": "C:\\PROGRA~1\\LLVM\\bin\\clang.exe -DSN_ARCH_TARGET=SN_ARCH_X86_64 -DSN_EXTERN_TARGET -DSN_OS_TARGET=SN_OS_WINDOWS -DStgSharp_Native_EXPORTS -ID:/NitloadIndustry/研究项目/1-Flagship/TH2020/ProjectFile/内核源代码/StgSharp.Native/sn-head -ID:/NitloadIndustry/研究项目/1-Flagship/TH2020/ProjectFile/内核源代码/StgSharp.Native/lib -ID:/NitloadIndustry/研究项目/1-Flagship/TH2020/ProjectFile/内核源代码/StgSharp.Native/lib/glfw -ID:/NitloadIndustry/研究项目/1-Flagship/TH2020/ProjectFile/内核源代码/StgSharp.Native/lib/stbi -O0 -g -Xclang -gcodeview -std=gnu11 -D_DEBUG -D_DLL -D_MT -Xclang --dependent-lib=msvcrtd -mavx -mavx2 -mfma -mavx512f -mavx512vl -o CMakeFiles\\StgSharp.Native.dir\\sn-src\\sk.fma.x86.c.obj -c D:\\NitloadIndustry\\研究项目\\1-Flagship\\TH2020\\ProjectFile\\内核源代码\\StgSharp.Native\\sn-src\\sk.fma.x86.c", + "file": "D:/NitloadIndustry/研究项目/1-Flagship/TH2020/ProjectFile/内核源代码/StgSharp.Native/sn-src/sk.fma.x86.c", + "output": "D:/NitloadIndustry/研究项目/1-Flagship/TH2020/ProjectFile/内核源代码/build/cmake-clang-gnu/CMakeFiles/StgSharp.Native.dir/sn-src/sk.fma.x86.c.obj" +}, +{ + "directory": "D:/NitloadIndustry/研究项目/1-Flagship/TH2020/ProjectFile/内核源代码/build/cmake-clang-gnu", + "command": "C:\\PROGRA~1\\LLVM\\bin\\clang.exe -DSN_ARCH_TARGET=SN_ARCH_X86_64 -DSN_EXTERN_TARGET -DSN_OS_TARGET=SN_OS_WINDOWS -DStgSharp_Native_EXPORTS -ID:/NitloadIndustry/研究项目/1-Flagship/TH2020/ProjectFile/内核源代码/StgSharp.Native/sn-head -ID:/NitloadIndustry/研究项目/1-Flagship/TH2020/ProjectFile/内核源代码/StgSharp.Native/lib -ID:/NitloadIndustry/研究项目/1-Flagship/TH2020/ProjectFile/内核源代码/StgSharp.Native/lib/glfw -ID:/NitloadIndustry/研究项目/1-Flagship/TH2020/ProjectFile/内核源代码/StgSharp.Native/lib/stbi -O0 -g -Xclang -gcodeview -std=gnu11 -D_DEBUG -D_DLL -D_MT -Xclang --dependent-lib=msvcrtd -mavx -mavx2 -mfma -mavx512f -mavx512vl -o CMakeFiles\\StgSharp.Native.dir\\sn-src\\sn_native.c.obj -c D:\\NitloadIndustry\\研究项目\\1-Flagship\\TH2020\\ProjectFile\\内核源代码\\StgSharp.Native\\sn-src\\sn_native.c", + "file": "D:/NitloadIndustry/研究项目/1-Flagship/TH2020/ProjectFile/内核源代码/StgSharp.Native/sn-src/sn_native.c", + "output": "D:/NitloadIndustry/研究项目/1-Flagship/TH2020/ProjectFile/内核源代码/build/cmake-clang-gnu/CMakeFiles/StgSharp.Native.dir/sn-src/sn_native.c.obj" +}, +{ + "directory": "D:/NitloadIndustry/研究项目/1-Flagship/TH2020/ProjectFile/内核源代码/build/cmake-clang-gnu", + "command": "C:\\PROGRA~1\\LLVM\\bin\\clang.exe -DSN_ARCH_TARGET=SN_ARCH_X86_64 -DSN_EXTERN_TARGET -DSN_OS_TARGET=SN_OS_WINDOWS -DStgSharp_Native_EXPORTS -ID:/NitloadIndustry/研究项目/1-Flagship/TH2020/ProjectFile/内核源代码/StgSharp.Native/sn-head -ID:/NitloadIndustry/研究项目/1-Flagship/TH2020/ProjectFile/内核源代码/StgSharp.Native/lib -ID:/NitloadIndustry/研究项目/1-Flagship/TH2020/ProjectFile/内核源代码/StgSharp.Native/lib/glfw -ID:/NitloadIndustry/研究项目/1-Flagship/TH2020/ProjectFile/内核源代码/StgSharp.Native/lib/stbi -O0 -g -Xclang -gcodeview -std=gnu11 -D_DEBUG -D_DLL -D_MT -Xclang --dependent-lib=msvcrtd -mavx -mavx2 -mfma -mavx512f -mavx512vl -o CMakeFiles\\StgSharp.Native.dir\\sn-src\\thread.linux.c.obj -c D:\\NitloadIndustry\\研究项目\\1-Flagship\\TH2020\\ProjectFile\\内核源代码\\StgSharp.Native\\sn-src\\thread.linux.c", + "file": "D:/NitloadIndustry/研究项目/1-Flagship/TH2020/ProjectFile/内核源代码/StgSharp.Native/sn-src/thread.linux.c", + "output": "D:/NitloadIndustry/研究项目/1-Flagship/TH2020/ProjectFile/内核源代码/build/cmake-clang-gnu/CMakeFiles/StgSharp.Native.dir/sn-src/thread.linux.c.obj" +}, +{ + "directory": "D:/NitloadIndustry/研究项目/1-Flagship/TH2020/ProjectFile/内核源代码/build/cmake-clang-gnu", + "command": "C:\\PROGRA~1\\LLVM\\bin\\clang.exe -DSN_ARCH_TARGET=SN_ARCH_X86_64 -DSN_EXTERN_TARGET -DSN_OS_TARGET=SN_OS_WINDOWS -DStgSharp_Native_EXPORTS -ID:/NitloadIndustry/研究项目/1-Flagship/TH2020/ProjectFile/内核源代码/StgSharp.Native/sn-head -ID:/NitloadIndustry/研究项目/1-Flagship/TH2020/ProjectFile/内核源代码/StgSharp.Native/lib -ID:/NitloadIndustry/研究项目/1-Flagship/TH2020/ProjectFile/内核源代码/StgSharp.Native/lib/glfw -ID:/NitloadIndustry/研究项目/1-Flagship/TH2020/ProjectFile/内核源代码/StgSharp.Native/lib/stbi -O0 -g -Xclang -gcodeview -std=gnu11 -D_DEBUG -D_DLL -D_MT -Xclang --dependent-lib=msvcrtd -mavx -mavx2 -mfma -mavx512f -mavx512vl -o CMakeFiles\\StgSharp.Native.dir\\sn-src\\thread.windows.c.obj -c D:\\NitloadIndustry\\研究项目\\1-Flagship\\TH2020\\ProjectFile\\内核源代码\\StgSharp.Native\\sn-src\\thread.windows.c", + "file": "D:/NitloadIndustry/研究项目/1-Flagship/TH2020/ProjectFile/内核源代码/StgSharp.Native/sn-src/thread.windows.c", + "output": "D:/NitloadIndustry/研究项目/1-Flagship/TH2020/ProjectFile/内核源代码/build/cmake-clang-gnu/CMakeFiles/StgSharp.Native.dir/sn-src/thread.windows.c.obj" +}, +{ + "directory": "D:/NitloadIndustry/研究项目/1-Flagship/TH2020/ProjectFile/内核源代码/build/cmake-clang-gnu", + "command": "C:\\PROGRA~1\\LLVM\\bin\\clang.exe -DSN_ARCH_TARGET=SN_ARCH_X86_64 -DSN_EXTERN_TARGET -DSN_OS_TARGET=SN_OS_WINDOWS -DStgSharp_Native_EXPORTS -ID:/NitloadIndustry/研究项目/1-Flagship/TH2020/ProjectFile/内核源代码/StgSharp.Native/sn-head -ID:/NitloadIndustry/研究项目/1-Flagship/TH2020/ProjectFile/内核源代码/StgSharp.Native/lib -ID:/NitloadIndustry/研究项目/1-Flagship/TH2020/ProjectFile/内核源代码/StgSharp.Native/lib/glfw -ID:/NitloadIndustry/研究项目/1-Flagship/TH2020/ProjectFile/内核源代码/StgSharp.Native/lib/stbi -O0 -g -Xclang -gcodeview -std=gnu11 -D_DEBUG -D_DLL -D_MT -Xclang --dependent-lib=msvcrtd -mavx -mavx2 -mfma -mavx512f -mavx512vl -o CMakeFiles\\StgSharp.Native.dir\\sn-src\\vector.c.obj -c D:\\NitloadIndustry\\研究项目\\1-Flagship\\TH2020\\ProjectFile\\内核源代码\\StgSharp.Native\\sn-src\\vector.c", + "file": "D:/NitloadIndustry/研究项目/1-Flagship/TH2020/ProjectFile/内核源代码/StgSharp.Native/sn-src/vector.c", + "output": "D:/NitloadIndustry/研究项目/1-Flagship/TH2020/ProjectFile/内核源代码/build/cmake-clang-gnu/CMakeFiles/StgSharp.Native.dir/sn-src/vector.c.obj" +}, +{ + "directory": "D:/NitloadIndustry/研究项目/1-Flagship/TH2020/ProjectFile/内核源代码/build/cmake-clang-gnu", + "command": "C:\\PROGRA~1\\LLVM\\bin\\clang.exe -DSN_ARCH_TARGET=SN_ARCH_X86_64 -DSN_EXTERN_TARGET -DSN_OS_TARGET=SN_OS_WINDOWS -DStgSharp_Native_EXPORTS -ID:/NitloadIndustry/研究项目/1-Flagship/TH2020/ProjectFile/内核源代码/StgSharp.Native/sn-head -ID:/NitloadIndustry/研究项目/1-Flagship/TH2020/ProjectFile/内核源代码/StgSharp.Native/lib -ID:/NitloadIndustry/研究项目/1-Flagship/TH2020/ProjectFile/内核源代码/StgSharp.Native/lib/glfw -ID:/NitloadIndustry/研究项目/1-Flagship/TH2020/ProjectFile/内核源代码/StgSharp.Native/lib/stbi -O0 -g -Xclang -gcodeview -std=gnu11 -D_DEBUG -D_DLL -D_MT -Xclang --dependent-lib=msvcrtd -mavx -mavx2 -mfma -mavx512f -mavx512vl -o CMakeFiles\\StgSharp.Native.dir\\sn-src\\vector_dot.c.obj -c D:\\NitloadIndustry\\研究项目\\1-Flagship\\TH2020\\ProjectFile\\内核源代码\\StgSharp.Native\\sn-src\\vector_dot.c", + "file": "D:/NitloadIndustry/研究项目/1-Flagship/TH2020/ProjectFile/内核源代码/StgSharp.Native/sn-src/vector_dot.c", + "output": "D:/NitloadIndustry/研究项目/1-Flagship/TH2020/ProjectFile/内核源代码/build/cmake-clang-gnu/CMakeFiles/StgSharp.Native.dir/sn-src/vector_dot.c.obj" +} +] diff --git a/StgSharp.Native/sn-head/StgSharpNative.h b/StgSharp.Native/sn-head/StgSharpNative.h index 6a262e93..e783452e 100644 --- a/StgSharp.Native/sn-head/StgSharpNative.h +++ b/StgSharp.Native/sn-head/StgSharpNative.h @@ -12,30 +12,13 @@ #include "../lib/stbi/stb_image.h" #include "gl.h" -#include "wgl.h" +// #include "wgl.h" +#define GLFWAPI INTERNAL #include "glfw\glfw3.h" #include #include #include -#ifndef SN_APIDEF - -#ifdef _WIN32 -#define SN_API __declspec(dllexport) -#elif defined _LINUX_ -#define SN_API __attribute__((dllexport)) -#elif defined _APPLE_ -#define SN_API __attribute__((visibility("default"))) -#else -#define SN_API -#endif - -#endif // ! SN_APIDEF - -#if __cplusplus -extern "C" { -#endif - #define byte char #define cs_char uint16_t #define sn_null_assert(ptr) assert(ptr != NULL) @@ -65,21 +48,12 @@ SN_API void SN_DECL unloadImageData(Image *out); SN_API char *SN_DECL readLog(void); SN_API void SN_DECL load_glfw_functions(GLFWFunctionTable *table); SN_API void SN_DECL load_intrinsic_function(void *intrinsic_context, uint64_t id); - -#pragma region numa -SN_API SIMDID SN_DECL sn_get_unite_simd(SIMDID left, SIMDID right); -SN_API int SN_DECL sn_compare_simd(SIMDID left, SIMDID right); -SN_API void SN_DECL sn_set_thread_affinity(int core_id); -SN_API int SN_DECL sn_get_numa_overall(int *out_numa_count, int *count_of_each_numa); -SN_API int SN_DECL sn_get_numa_each(int numa_id, uint64_t *in_numa_cpuid, uint64_t *global_cpuid); +SN_API SIMDID SN_DECL sn_get_simd_level_global(); /* Per-core variant: always re-executes CPUID, never caches. * Must be called on the target core (after affinity is set). */ SN_API SIMDID SN_DECL sn_get_simd_level_local(); -SN_API SIMDID SN_DECL sn_get_simd_level_global(); - -#pragma endregion -#ifdef __cplusplus -} -#endif +SN_API SIMDID SN_DECL sn_get_unite_simd(SIMDID left, SIMDID right); +SN_API int SN_DECL sn_compare_simd(SIMDID left, SIMDID right); +SN_API void SN_DECL sn_set_thread_affinity(int core_id); #endif diff --git a/StgSharp.Native/sn-head/sn_internal.h b/StgSharp.Native/sn-head/sn_internal.h index 377364f1..cd9e2ba9 100644 --- a/StgSharp.Native/sn-head/sn_internal.h +++ b/StgSharp.Native/sn-head/sn_internal.h @@ -2,7 +2,7 @@ #ifndef SN_INTERNAL #define SN_INTERNAL -#include +#include #define UNSAFE_AS(type, expr) *(type *)&(expr) @@ -13,17 +13,20 @@ #define SN_MAT_DECL __cdecl __forceinline #define SN_API __declspec(dllexport) #define FORCEINLINE __forceinline +#define NOINLINE __declspec(noinline) #include #elif defined(__clang__) || defined(__GNUC__) #define SN_DECL __attribute__((cdecl)) #define SN_MAT_DECL __attribute__((cdecl)) __attribute__((always_inline)) #define SN_API __attribute__((dllexport)) #define FORCEINLINE __attribute__((always_inline)) +#define NOINLINE __attribute__((noinline)) #else #define SN_API #define SN_DECL #define SN_MAT_DECL #define FORCEINLINE +#define NOINLINE #endif #if defined(_MSC_VER) @@ -37,9 +40,4 @@ #define PRIVATE static #define INTERNAL extern -#define SN_PTR_CAST(type, expr) ((type *)(void *)(expr)) -#define SN_CONST_PTR_CAST(type, expr) ((type const *)(void const *)(expr)) -#define SN_REF_CAST(type, expr) ((type *)(void *)&(expr)) -#define SN_CONST_REF_CAST(type, expr) ((type const *)(void const *)&(expr)) - #endif // diff --git a/StgSharp.Native/sn-head/sn_intrinsic.context.x86.h b/StgSharp.Native/sn-head/sn_intrinsic.context.x86.h index 9c446e05..246deed1 100644 --- a/StgSharp.Native/sn-head/sn_intrinsic.context.x86.h +++ b/StgSharp.Native/sn-head/sn_intrinsic.context.x86.h @@ -5,6 +5,13 @@ #include "sn_intrinsic.h" #include "sn_intrinsic.std.h" +#ifndef SN_X86_TARGET_ATTR_sse +#define SN_X86_TARGET_ATTR_sse SN_CLANG_TARGET_ATTR("sse2") +#define SN_X86_TARGET_ATTR_avx SN_CLANG_TARGET_ATTR("avx") +#define SN_X86_TARGET_ATTR_avx_fma SN_CLANG_TARGET_ATTR("avx,fma") +#define SN_X86_TARGET_ATTR_512 SN_CLANG_TARGET_ATTR("avx512f,avx512vl") +#endif + // ----------------------------------------------------------------------------- // SIMDID layout helpers (see SIMDID.x86.md) // bits [3..0] : Root ISA @@ -105,8 +112,7 @@ * Higher numeric value == stronger / higher-capability topology. */ #define SIMDID_UARCH_HYBRID_E (1U << 0) /* E-core (efficiency/small) in a hybrid topology */ #define SIMDID_UARCH_HYBRID_P (1U << 1) /* P-core (performance/big) in a hybrid topology */ -#define SIMDID_UARCH_SIMD_DUAL \ - (1U << 2) /* SIMD is glued/dual (summary: AVX_DUAL or AVX512_IMPL=DUAL) */ +#define SIMDID_UARCH_SIMD_DUAL (1U << 2) /* SIMD is glued/dual (summary: AVX_DUAL or AVX512_IMPL=DUAL) */ #endif // Pack helpers (define locally to avoid missing macros when included standalone) @@ -239,8 +245,8 @@ INTERNAL uint64_t SN_DECL factorial_simd_sse(int n); #pragma region dot_product -INTERNAL void FORCEINLINE SN_DECL dot_41_sse( - MAT_KERNEL(float) const *transpose, __m128 const *vector, __m128 *ans); +INTERNAL void FORCEINLINE SN_DECL dot_41_sse(MAT_KERNEL(float) const *transpose, + __m128 const *vector, __m128 *ans); INTERNAL void SN_DECL dot_41_avx(MAT_KERNEL(float) const *transpose, __m128 const *vector, __m128 *ans); INTERNAL void SN_DECL dot_42_sse(MAT_KERNEL(float) const *transpose, __m128 const *vector, diff --git a/StgSharp.Native/sn-head/sn_intrinsic.h b/StgSharp.Native/sn-head/sn_intrinsic.h index 15dea136..fc9980d5 100644 --- a/StgSharp.Native/sn-head/sn_intrinsic.h +++ b/StgSharp.Native/sn-head/sn_intrinsic.h @@ -39,11 +39,6 @@ typedef union uint64_u { uint32_t u32[2]; } uint64_u; -/* Opaque placeholder used by generic single-kernel dispatch. - * It preserves pointer semantics without pretending every branch shares the - * same concrete MAT_KERNEL(T) type. */ -typedef struct sn_mat_kernel_opaque sn_mat_kernel_opaque; - typedef struct mat_kernel mat_kernel; typedef struct mat_panel mat_panel; @@ -76,10 +71,9 @@ static_assert(sizeof(matrix_task) == 128, "matrix_parallel_task_package size mis static_assert(sizeof(matrix_task) == 128, "matrix_parallel_task_package size mismatch"); #endif -typedef void(SN_DECL *UNI_MK_PROC)(matrix_task const *task); -typedef void(SN_DECL *UNI_SK_PROC)(sn_mat_kernel_opaque const *left, - sn_mat_kernel_opaque const *right, - sn_mat_kernel_opaque *restrict ans, uint64_t scalar); +typedef void(SN_DECL *UNI_MK_PROC)(matrix_task *task); +typedef void(SN_DECL *UNI_SK_PROC)(mat_kernel const *left, mat_kernel const *right, + mat_kernel *restrict ans, uint64_t scalar); typedef void(SN_DECL *VECTORNORMALIZEPROC)(sn_vec_f32 *source, sn_vec_f32 *target); typedef void(SN_DECL *DOTPROC)(void *transpose, __m128 *vector, __m128 *ans); diff --git a/StgSharp.Native/sn-head/sn_intrinsic.matkernel.h b/StgSharp.Native/sn-head/sn_intrinsic.matkernel.h index 14cd1dc5..dfd35a5a 100644 --- a/StgSharp.Native/sn-head/sn_intrinsic.matkernel.h +++ b/StgSharp.Native/sn-head/sn_intrinsic.matkernel.h @@ -138,7 +138,7 @@ extern __declspec(align(64)) sn_zero_kernel_u64 SN_ZERO_KERNEL; int col_length, int row_length, \ int col_index, int row_index) -#if 0 +/* Declarations for AVX float variant DECLARE_BUILD_PANEL(avx, float); DECLARE_BUILD_PANEL(512, float); @@ -149,6 +149,6 @@ DECLARE_STORE_PANEL(512, float); DECLARE_BUILD_PANEL(512, double); DECLARE_STORE_PANEL(512, double); -#endif +/**/ -#endif /* SN_MATKERNEL */ \ No newline at end of file +#endif /* SN_MATKERNEL */ diff --git a/StgSharp.Native/sn-head/sn_intrinsic.std.h b/StgSharp.Native/sn-head/sn_intrinsic.std.h index 6f63025d..214b43dc 100644 --- a/StgSharp.Native/sn-head/sn_intrinsic.std.h +++ b/StgSharp.Native/sn-head/sn_intrinsic.std.h @@ -2,30 +2,33 @@ #define SN_INTRINSIC_CallCONV_STD #include "sn_internal.h" +#include "sn_target.h" #include "sn_intrinsic.h" #ifndef static_assert #define static_assert _Static_assert #endif +#define SN_STD_TARGET_ATTR(T_arch, T_feature) SN_STD_TARGET_ATTR_IMPL(T_arch, T_feature) +#define SN_STD_TARGET_ATTR_IMPL(T_arch, T_feature) SN_X86_TARGET_ATTR_##T_arch##T_feature + #define MK_PROC_NAME_STD(T_type, T_arch, T_feature, T_op) \ T_type##_multi_kernel_proc_##T_op##_##T_arch##_##T_feature #define GET_MK_PROC_STD(T_type, T_arch, T_feature, T_op) \ - MK_PROC_NAME_STD(T_type, T_arch, T_feature, T_op) + ((UNI_MK_PROC)MK_PROC_NAME_STD(T_type, T_arch, T_feature, T_op)) #define SN_MK_PROC_DECL(T_type, P_name) INTERNAL void SN_DECL P_name(MAT_TASK(T_type) const *task) -#define SN_MK_PROC_DECL_STD(T_type, T_arch, T_feature, T_op) \ - INTERNAL void SN_DECL MK_PROC_NAME_STD(T_type, T_arch, T_feature, \ - T_op)(MAT_TASK(T_type) const *task) +#define SN_MK_PROC_DECL_STD(T_type, T_arch, T_feature, T_op) \ + INTERNAL NOINLINE SN_STD_TARGET_ATTR(T_arch, T_feature) void SN_DECL \ + MK_PROC_NAME_STD(T_type, T_arch, T_feature, T_op)(MAT_TASK(T_type) const *task) #define SK_PROC_NAME_STD(T_type, T_arch, T_feature, T_op) \ T_type##_single_kernel_proc_##T_op##_##T_arch##_##T_feature #define GET_SK_PROC_STD(T_type, T_arch, T_feature, T_op) \ - SK_PROC_NAME_STD(T_type, T_arch, T_feature, T_op) -#define SN_SK_PROC_DECL_STD(T_type, T_arch, T_feature, T_op) \ - INTERNAL void SN_DECL SK_PROC_NAME_STD(T_type, T_arch, T_feature, \ - T_op)(sn_mat_kernel_opaque const *left_ptr, \ - sn_mat_kernel_opaque const *right_ptr, \ - sn_mat_kernel_opaque *restrict ans_ptr, \ - uint64_t scalar) + ((UNI_SK_PROC)SK_PROC_NAME_STD(T_type, T_arch, T_feature, T_op)) +#define SN_SK_PROC_DECL_STD(T_type, T_arch, T_feature, T_op) \ + INTERNAL NOINLINE SN_STD_TARGET_ATTR(T_arch, T_feature) void SN_DECL \ + SK_PROC_NAME_STD(T_type, T_arch, T_feature, T_op)( \ + MAT_KERNEL(T_type) const *left, MAT_KERNEL(T_type) const *right, \ + MAT_KERNEL(T_type) *restrict ans, uint64_t scalar) #define _SN_STD__PROBE_0 0 #define _SN_STD__PROBE_1 1 @@ -103,12 +106,7 @@ _SN_MK_EXPAND_PARAM(param); \ _SN_MK_EXPAND_MEM(mem) -#define __sk_param_std(T) \ - typedef MAT_KERNEL(T) SN_MAT_KERNEL_LOCAL; \ - SN_MAT_KERNEL_LOCAL const *left = \ - (SN_MAT_KERNEL_LOCAL const *)(left_ptr); \ - SN_MAT_KERNEL_LOCAL const *right = \ - (SN_MAT_KERNEL_LOCAL const *)(right_ptr); \ - SN_MAT_KERNEL_LOCAL *restrict ans = \ - (SN_MAT_KERNEL_LOCAL *)(ans_ptr) +#define __sk_param_std(T) \ + typedef MAT_KERNEL(T) SN_MAT_KERNEL_LOCAL; \ + (void)scalar #endif // !SN_INTRINSIC_PARAM_EXPAND diff --git a/StgSharp.Native/sn-head/sn_target.h b/StgSharp.Native/sn-head/sn_target.h index b6c01280..5abbc956 100644 --- a/StgSharp.Native/sn-head/sn_target.h +++ b/StgSharp.Native/sn-head/sn_target.h @@ -76,6 +76,16 @@ #define SN_IS_ARCH(arch) ((SN_ARCH_TARGET) == (arch)) +/* + * Per-function ISA selection is required for runtime-dispatched kernels that + * mix multiple x86 feature levels in one build target. + */ +#if defined(__clang__) && ((SN_ARCH_TARGET) == SN_ARCH_X86_64) +#define SN_CLANG_TARGET_ATTR(options) __attribute__((target(options))) +#else +#define SN_CLANG_TARGET_ATTR(options) +#endif + typedef union SIMDID { uint64_t mask; char make_byte[8]; diff --git a/StgSharp.Native/sn-head/sn_task_expand.h b/StgSharp.Native/sn-head/sn_task_expand.h deleted file mode 100644 index e69de29b..00000000 diff --git a/StgSharp.Native/sn-src/m.bufop.x86.c b/StgSharp.Native/sn-src/m.bufop.x86.c index 6b76e984..5a218210 100644 --- a/StgSharp.Native/sn-src/m.bufop.x86.c +++ b/StgSharp.Native/sn-src/m.bufop.x86.c @@ -68,7 +68,7 @@ SN_MK_PROC_DECL_STD(double, avx, , fill) SN_MK_PROC_DECL_STD(double, 512, , fill) { __mk_param_std(BUFFER, ANS_SCALAR, double); - register __m512d vec = _mm512_set1_pd(SN_CONST_PTR_CAST(double, scalar->data)[0]); + register __m512d vec = _mm512_set1_pd(((double const *)scalar->data)[0]); for (size_t i = 0; i < count; i++) { ans[i].f64_z[0] = vec; ans[i].f64_z[1] = vec; @@ -354,7 +354,7 @@ SN_MK_PROC_DECL_STD(double, 512, , scalar_mul) { __mk_param_std(BUFFER, RIGHT_ANS_SCALAR, double); - register __m512d vec = _mm512_set1_pd(SN_CONST_PTR_CAST(double, scalar->data)[0]); + register __m512d vec = _mm512_set1_pd(((double const *)scalar->data)[0]); for (size_t i = 0; i < count; i++) { register __m512d c0 = _mm512_mul_pd(right[i].f64_z[0], vec); register __m512d c1 = _mm512_mul_pd(right[i].f64_z[1], vec); diff --git a/StgSharp.Native/sn-src/m.solve.x86.c b/StgSharp.Native/sn-src/m.solve.x86.c index 82cc99dc..5d3126bb 100644 --- a/StgSharp.Native/sn-src/m.solve.x86.c +++ b/StgSharp.Native/sn-src/m.solve.x86.c @@ -4,6 +4,7 @@ #include "sn_intrinsic.h" #include "sn_intrinsic.std.h" +#include "sn_intrinsic.context.x86.h" #include static const float quality_threshold = 1e-6f; diff --git a/StgSharp.Native/sn-src/mk.fma.x86.c b/StgSharp.Native/sn-src/mk.fma.x86.c index 4cf78551..ef4c949d 100644 --- a/StgSharp.Native/sn-src/mk.fma.x86.c +++ b/StgSharp.Native/sn-src/mk.fma.x86.c @@ -136,40 +136,55 @@ SN_MK_PROC_DECL_STD(float, avx, _fma, fma) _mm256_store_ps((float *)&ans_cur->f32_y[1], c23); } +#define SN_MK_FMA_F32_512_PHASE(i)\ + do { \ + ak = _mm512_broadcast_f32x4(left_##i ->f32_x[0]);\ + c_0 = _mm512_fmadd_ps(ak, _mm512_permute_ps(b_##i, _FMA_SELECT(0)), c_##i);\ + ak = _mm512_broadcast_f32x4(left_##i ->f32_x[0]);\ + c_1 = _mm512_fmadd_ps(ak, _mm512_permute_ps(b_##i, _FMA_SELECT(0)), c_##i);\ + ak = _mm512_broadcast_f32x4(left_##i ->f32_x[0]);\ + c_2 = _mm512_fmadd_ps(ak, _mm512_permute_ps(b_##i, _FMA_SELECT(0)), c_##i);\ + ak = _mm512_broadcast_f32x4(left_##i ->f32_x[0]);\ + c_3 = _mm512_fmadd_ps(ak, _mm512_permute_ps(b_##i, _FMA_SELECT(0)), c_##i);\ + }while(0) + SN_MK_PROC_DECL_STD(float, 512, , fma) { __mk_param_std(TILE, LEFT_RIGHT_ANS, float); SN_MAT_KERNEL_LOCAL *restrict ans_cur = ans + GET_INDEX(common_y, x, y); - register __m512 c = _mm512_load_ps((float *)ans_cur); - register __m512 c_1 = c; - register __m512 c_2 = c; - register __m512 c_3 = c; + register __m512 c_0 = _mm512_load_ps((float *)ans_cur); + register __m512 c_1 = c_0; + register __m512 c_2 = c_0; + register __m512 c_3 = c_0; - for (size_t z = 0; z < common_z; z++) { - SN_MAT_KERNEL_LOCAL const *right_cur = right + GET_INDEX(common_z, x, z); - SN_MAT_KERNEL_LOCAL const *left_cur = left + GET_INDEX(common_y, z, y); + for (size_t z = 0; z < common_z; z+=4) { + SN_MAT_KERNEL_LOCAL const *right = right + z; + SN_MAT_KERNEL_LOCAL const *left_0 = left + z + 0; + SN_MAT_KERNEL_LOCAL const *left_1 = left + z + 1; + SN_MAT_KERNEL_LOCAL const *left_2 = left + z + 2; + SN_MAT_KERNEL_LOCAL const *left_3 = left + z + 3; // full right load:[kb_col0 | kb_col1 | kb_col2 | kb_col3] - register __m512 b = _mm512_load_ps((float *)right_cur); + register __m512 b_0 = _mm512_load_ps((float *)(right+0)); + register __m512 b_1 = _mm512_load_ps((float *)(right+1)); + register __m512 b_2 = _mm512_load_ps((float *)(right+2)); + register __m512 b_3 = _mm512_load_ps((float *)(right+3)); // k=0: broadcast ka_col0 到4个lane,permute_ps 取 kb(0,j) register __m512 ak; - ak = _mm512_broadcast_f32x4(left_cur->f32_x[0]); - c = _mm512_fmadd_ps(ak, _mm512_permute_ps(b, _FMA_SELECT(0)), c); - - // k=1 - ak = _mm512_broadcast_f32x4(left_cur->f32_x[1]); - c = _mm512_fmadd_ps(ak, _mm512_permute_ps(b, _FMA_SELECT(1)), c); - - // k=2 - ak = _mm512_broadcast_f32x4(left_cur->f32_x[2]); - c = _mm512_fmadd_ps(ak, _mm512_permute_ps(b, _FMA_SELECT(2)), c); - - // k=3 - ak = _mm512_broadcast_f32x4(left_cur->f32_x[3]); - c = _mm512_fmadd_ps(ak, _mm512_permute_ps(b, _FMA_SELECT(3)), c); + register __m512 ak_1; + register __m512 ak_2; + register __m512 ak_3; + + SN_MK_FMA_F32_512_PHASE(0); + SN_MK_FMA_F32_512_PHASE(1); + SN_MK_FMA_F32_512_PHASE(2); + SN_MK_FMA_F32_512_PHASE(3); } - _mm512_store_ps((float *)ans_cur, c); + c_0 = _mm512_add_ps(c_0, c_1); + c_2= _mm512_add_ps(c_2, c_3); + c_0 = _mm512_add_ps(c_0, c_2); + _mm512_store_ps((float *)ans_cur, c_0); } // double diff --git a/StgSharp.Native/sn-src/s.hash.x86.c b/StgSharp.Native/sn-src/s.hash.x86.c index 88a36947..16df1c9d 100644 --- a/StgSharp.Native/sn-src/s.hash.x86.c +++ b/StgSharp.Native/sn-src/s.hash.x86.c @@ -2,7 +2,6 @@ #if SN_IS_ARCH(SN_ARCH_X86_64) -#include "sn_intrinsic.h" #include "StgSharpNative.h" INTERNAL int SN_DECL city_hash_simplify_sse(byte const *str, int const length) @@ -17,7 +16,7 @@ INTERNAL int SN_DECL city_hash_simplify_sse(byte const *str, int const length) } } else if (size < 16) { for (; ptr < end; ptr += 4) { - hash = _mm_crc32_u32(hash, SN_CONST_PTR_CAST(uint32_t, ptr)[0]); + hash = _mm_crc32_u32(hash, ((uint32_t const *)ptr)[0]); } for (; ptr < end; ptr++) { hash = _mm_crc32_u16(hash, *ptr); @@ -34,7 +33,7 @@ INTERNAL int SN_DECL city_hash_simplify_sse(byte const *str, int const length) hash = _mm_crc32_u8(hash, hash64); hash = _mm_crc32_u8(hash, hash64 >> 32); for (; ptr < last_32; ptr += 4) { - hash = _mm_crc32_u32(hash, SN_CONST_PTR_CAST(uint32_t, ptr)[0]); + hash = _mm_crc32_u32(hash, ((uint32_t const *)ptr)[0]); } for (; ptr < end; ptr += 2) { hash = _mm_crc32_u8(hash, *ptr);