daily update on 20230316 by nitload youmu
This commit is contained in:
Binary file not shown.
Binary file not shown.
@@ -0,0 +1,31 @@
|
||||
|
||||
Microsoft Visual Studio Solution File, Format Version 12.00
|
||||
# Visual Studio Version 17
|
||||
VisualStudioVersion = 17.3.32825.248
|
||||
MinimumVisualStudioVersion = 10.0.40219.1
|
||||
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "AsmMath", "AsmMath\AsmMath.vcxproj", "{CCB13811-6071-41C7-89A1-8B38FB5E4F88}"
|
||||
EndProject
|
||||
Global
|
||||
GlobalSection(SolutionConfigurationPlatforms) = preSolution
|
||||
Debug|x64 = Debug|x64
|
||||
Debug|x86 = Debug|x86
|
||||
Release|x64 = Release|x64
|
||||
Release|x86 = Release|x86
|
||||
EndGlobalSection
|
||||
GlobalSection(ProjectConfigurationPlatforms) = postSolution
|
||||
{CCB13811-6071-41C7-89A1-8B38FB5E4F88}.Debug|x64.ActiveCfg = Debug|x64
|
||||
{CCB13811-6071-41C7-89A1-8B38FB5E4F88}.Debug|x64.Build.0 = Debug|x64
|
||||
{CCB13811-6071-41C7-89A1-8B38FB5E4F88}.Debug|x86.ActiveCfg = Debug|Win32
|
||||
{CCB13811-6071-41C7-89A1-8B38FB5E4F88}.Debug|x86.Build.0 = Debug|Win32
|
||||
{CCB13811-6071-41C7-89A1-8B38FB5E4F88}.Release|x64.ActiveCfg = Release|x64
|
||||
{CCB13811-6071-41C7-89A1-8B38FB5E4F88}.Release|x64.Build.0 = Release|x64
|
||||
{CCB13811-6071-41C7-89A1-8B38FB5E4F88}.Release|x86.ActiveCfg = Release|Win32
|
||||
{CCB13811-6071-41C7-89A1-8B38FB5E4F88}.Release|x86.Build.0 = Release|Win32
|
||||
EndGlobalSection
|
||||
GlobalSection(SolutionProperties) = preSolution
|
||||
HideSolutionNode = FALSE
|
||||
EndGlobalSection
|
||||
GlobalSection(ExtensibilityGlobals) = postSolution
|
||||
SolutionGuid = {8B0B3302-27E0-48A7-B209-463812E1A51A}
|
||||
EndGlobalSection
|
||||
EndGlobal
|
||||
@@ -0,0 +1,138 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||
<ItemGroup Label="ProjectConfigurations">
|
||||
<ProjectConfiguration Include="Debug|Win32">
|
||||
<Configuration>Debug</Configuration>
|
||||
<Platform>Win32</Platform>
|
||||
</ProjectConfiguration>
|
||||
<ProjectConfiguration Include="Release|Win32">
|
||||
<Configuration>Release</Configuration>
|
||||
<Platform>Win32</Platform>
|
||||
</ProjectConfiguration>
|
||||
<ProjectConfiguration Include="Debug|x64">
|
||||
<Configuration>Debug</Configuration>
|
||||
<Platform>x64</Platform>
|
||||
</ProjectConfiguration>
|
||||
<ProjectConfiguration Include="Release|x64">
|
||||
<Configuration>Release</Configuration>
|
||||
<Platform>x64</Platform>
|
||||
</ProjectConfiguration>
|
||||
</ItemGroup>
|
||||
<PropertyGroup Label="Globals">
|
||||
<VCProjectVersion>16.0</VCProjectVersion>
|
||||
<Keyword>Win32Proj</Keyword>
|
||||
<ProjectGuid>{ccb13811-6071-41c7-89a1-8b38fb5e4f88}</ProjectGuid>
|
||||
<RootNamespace>AsmMath</RootNamespace>
|
||||
<WindowsTargetPlatformVersion>10.0</WindowsTargetPlatformVersion>
|
||||
</PropertyGroup>
|
||||
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
|
||||
<ConfigurationType>Application</ConfigurationType>
|
||||
<UseDebugLibraries>true</UseDebugLibraries>
|
||||
<PlatformToolset>v143</PlatformToolset>
|
||||
<CharacterSet>Unicode</CharacterSet>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
|
||||
<ConfigurationType>Application</ConfigurationType>
|
||||
<UseDebugLibraries>false</UseDebugLibraries>
|
||||
<PlatformToolset>v143</PlatformToolset>
|
||||
<WholeProgramOptimization>true</WholeProgramOptimization>
|
||||
<CharacterSet>Unicode</CharacterSet>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
|
||||
<ConfigurationType>Application</ConfigurationType>
|
||||
<UseDebugLibraries>true</UseDebugLibraries>
|
||||
<PlatformToolset>v143</PlatformToolset>
|
||||
<CharacterSet>Unicode</CharacterSet>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
|
||||
<ConfigurationType>Application</ConfigurationType>
|
||||
<UseDebugLibraries>false</UseDebugLibraries>
|
||||
<PlatformToolset>v143</PlatformToolset>
|
||||
<WholeProgramOptimization>true</WholeProgramOptimization>
|
||||
<CharacterSet>Unicode</CharacterSet>
|
||||
</PropertyGroup>
|
||||
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
|
||||
<ImportGroup Label="ExtensionSettings">
|
||||
<Import Project="$(VCTargetsPath)\BuildCustomizations\masm.props" />
|
||||
</ImportGroup>
|
||||
<ImportGroup Label="Shared">
|
||||
</ImportGroup>
|
||||
<ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
|
||||
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
|
||||
</ImportGroup>
|
||||
<ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
|
||||
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
|
||||
</ImportGroup>
|
||||
<ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
|
||||
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
|
||||
</ImportGroup>
|
||||
<ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
|
||||
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
|
||||
</ImportGroup>
|
||||
<PropertyGroup Label="UserMacros" />
|
||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
|
||||
<ClCompile>
|
||||
<WarningLevel>Level3</WarningLevel>
|
||||
<SDLCheck>true</SDLCheck>
|
||||
<PreprocessorDefinitions>WIN32;_DEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
<ConformanceMode>true</ConformanceMode>
|
||||
</ClCompile>
|
||||
<Link>
|
||||
<SubSystem>Console</SubSystem>
|
||||
<GenerateDebugInformation>true</GenerateDebugInformation>
|
||||
</Link>
|
||||
</ItemDefinitionGroup>
|
||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
|
||||
<ClCompile>
|
||||
<WarningLevel>Level3</WarningLevel>
|
||||
<FunctionLevelLinking>true</FunctionLevelLinking>
|
||||
<IntrinsicFunctions>true</IntrinsicFunctions>
|
||||
<SDLCheck>true</SDLCheck>
|
||||
<PreprocessorDefinitions>WIN32;NDEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
<ConformanceMode>true</ConformanceMode>
|
||||
</ClCompile>
|
||||
<Link>
|
||||
<SubSystem>Console</SubSystem>
|
||||
<EnableCOMDATFolding>true</EnableCOMDATFolding>
|
||||
<OptimizeReferences>true</OptimizeReferences>
|
||||
<GenerateDebugInformation>true</GenerateDebugInformation>
|
||||
</Link>
|
||||
</ItemDefinitionGroup>
|
||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
|
||||
<ClCompile>
|
||||
<WarningLevel>Level3</WarningLevel>
|
||||
<SDLCheck>true</SDLCheck>
|
||||
<PreprocessorDefinitions>_DEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
<ConformanceMode>true</ConformanceMode>
|
||||
</ClCompile>
|
||||
<Link>
|
||||
<SubSystem>Console</SubSystem>
|
||||
<GenerateDebugInformation>true</GenerateDebugInformation>
|
||||
<EntryPointSymbol>main</EntryPointSymbol>
|
||||
</Link>
|
||||
</ItemDefinitionGroup>
|
||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
|
||||
<ClCompile>
|
||||
<WarningLevel>Level3</WarningLevel>
|
||||
<FunctionLevelLinking>true</FunctionLevelLinking>
|
||||
<IntrinsicFunctions>true</IntrinsicFunctions>
|
||||
<SDLCheck>true</SDLCheck>
|
||||
<PreprocessorDefinitions>NDEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
<ConformanceMode>true</ConformanceMode>
|
||||
</ClCompile>
|
||||
<Link>
|
||||
<SubSystem>Console</SubSystem>
|
||||
<EnableCOMDATFolding>true</EnableCOMDATFolding>
|
||||
<OptimizeReferences>true</OptimizeReferences>
|
||||
<GenerateDebugInformation>true</GenerateDebugInformation>
|
||||
</Link>
|
||||
</ItemDefinitionGroup>
|
||||
<ItemGroup>
|
||||
<None Include="Sqrt0001.asm" />
|
||||
</ItemGroup>
|
||||
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
|
||||
<ImportGroup Label="ExtensionTargets">
|
||||
<Import Project="$(VCTargetsPath)\BuildCustomizations\masm.targets" />
|
||||
</ImportGroup>
|
||||
</Project>
|
||||
@@ -0,0 +1,22 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||
<ItemGroup>
|
||||
<Filter Include="源文件">
|
||||
<UniqueIdentifier>{4FC737F1-C7A5-4376-A066-2A32D752A2FF}</UniqueIdentifier>
|
||||
<Extensions>cpp;c;cc;cxx;c++;cppm;ixx;def;odl;idl;hpj;bat;asm;asmx</Extensions>
|
||||
</Filter>
|
||||
<Filter Include="头文件">
|
||||
<UniqueIdentifier>{93995380-89BD-4b04-88EB-625FBE52EBFB}</UniqueIdentifier>
|
||||
<Extensions>h;hh;hpp;hxx;h++;hm;inl;inc;ipp;xsd</Extensions>
|
||||
</Filter>
|
||||
<Filter Include="资源文件">
|
||||
<UniqueIdentifier>{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}</UniqueIdentifier>
|
||||
<Extensions>rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav;mfcribbon-ms</Extensions>
|
||||
</Filter>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<None Include="Sqrt0001.asm">
|
||||
<Filter>源文件</Filter>
|
||||
</None>
|
||||
</ItemGroup>
|
||||
</Project>
|
||||
@@ -0,0 +1,4 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<Project ToolsVersion="Current" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||
<PropertyGroup />
|
||||
</Project>
|
||||
@@ -0,0 +1,15 @@
|
||||
.386 ; 编译器指令,使用386指令集
|
||||
.model flat, stdcall ; model汇编指令,程序的内存模式, flat是windows程序,没有远近指针,stdcall是windows函数用的参数方式,即参数从右向左传递
|
||||
option casemap :none ; 标签是否区分大小写
|
||||
include \masm32\include\windows.inc ; 包含了Win32 API 的一些常量和函数定义
|
||||
include \masm32\include\kernel32.inc ; 包含了后面使用的ExitProcess函数
|
||||
include \masm32\include\masm32.inc ; 包含了后面使用的StdOut函数,不是标准的Win32函数,由MASM提供
|
||||
includelib \masm32\lib\kernel32.lib ; 库文件
|
||||
includelib \masm32\lib\masm32.lib
|
||||
.data
|
||||
HelloWorld db "Hello World!", 0 ; 定义使用的字符串常量,db代表define byte。最后跟一个NUL,表示ANSI字符集结束符
|
||||
.code ; 开始代码区
|
||||
start: ; 所有的代码要在start标签后、end start前
|
||||
invoke StdOut, addr HelloWorld ; 调用函数StdOut,参数量HelloWorld的地址。注意StdOut是MASM提供的宏。其它编辑器里可以使用WriteConsole之类win32函数代替。
|
||||
invoke ExitProcess, 0 ; 调用ExitProcess
|
||||
end start
|
||||
@@ -0,0 +1,11 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<Project>
|
||||
<ProjectOutputs>
|
||||
<ProjectOutput>
|
||||
<FullPath>D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\Math\Asm\AsmMath\x64\Debug\AsmMath.exe</FullPath>
|
||||
</ProjectOutput>
|
||||
</ProjectOutputs>
|
||||
<ContentFiles />
|
||||
<SatelliteDlls />
|
||||
<NonRecipeFileRefs />
|
||||
</Project>
|
||||
@@ -0,0 +1 @@
|
||||
|
||||
@@ -0,0 +1,2 @@
|
||||
PlatformToolSet=v143:VCToolArchitecture=Native64Bit:VCToolsVersion=14.33.31629:TargetPlatformVersion=10.0.19041.0:
|
||||
Debug|x64|D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\Math\Asm\AsmMath\|
|
||||
@@ -0,0 +1 @@
|
||||
x64\Debug\\_IsIncrementalBuild
|
||||
BIN
Binary file not shown.
BIN
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
@@ -0,0 +1,31 @@
|
||||
|
||||
Microsoft Visual Studio Solution File, Format Version 12.00
|
||||
# Visual Studio Version 17
|
||||
VisualStudioVersion = 17.3.32825.248
|
||||
MinimumVisualStudioVersion = 10.0.40219.1
|
||||
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Project1", "Project1\Project1.vcxproj", "{9C0FD617-CD38-48B5-A16C-909FBA56BBF5}"
|
||||
EndProject
|
||||
Global
|
||||
GlobalSection(SolutionConfigurationPlatforms) = preSolution
|
||||
Debug|x64 = Debug|x64
|
||||
Debug|x86 = Debug|x86
|
||||
Release|x64 = Release|x64
|
||||
Release|x86 = Release|x86
|
||||
EndGlobalSection
|
||||
GlobalSection(ProjectConfigurationPlatforms) = postSolution
|
||||
{9C0FD617-CD38-48B5-A16C-909FBA56BBF5}.Debug|x64.ActiveCfg = Debug|x64
|
||||
{9C0FD617-CD38-48B5-A16C-909FBA56BBF5}.Debug|x64.Build.0 = Debug|x64
|
||||
{9C0FD617-CD38-48B5-A16C-909FBA56BBF5}.Debug|x86.ActiveCfg = Debug|Win32
|
||||
{9C0FD617-CD38-48B5-A16C-909FBA56BBF5}.Debug|x86.Build.0 = Debug|Win32
|
||||
{9C0FD617-CD38-48B5-A16C-909FBA56BBF5}.Release|x64.ActiveCfg = Release|x64
|
||||
{9C0FD617-CD38-48B5-A16C-909FBA56BBF5}.Release|x64.Build.0 = Release|x64
|
||||
{9C0FD617-CD38-48B5-A16C-909FBA56BBF5}.Release|x86.ActiveCfg = Release|Win32
|
||||
{9C0FD617-CD38-48B5-A16C-909FBA56BBF5}.Release|x86.Build.0 = Release|Win32
|
||||
EndGlobalSection
|
||||
GlobalSection(SolutionProperties) = preSolution
|
||||
HideSolutionNode = FALSE
|
||||
EndGlobalSection
|
||||
GlobalSection(ExtensibilityGlobals) = postSolution
|
||||
SolutionGuid = {307D7E9C-13AC-4921-9291-5A74E0C07738}
|
||||
EndGlobalSection
|
||||
EndGlobal
|
||||
@@ -0,0 +1,31 @@
|
||||
#include <xmmintrin.h>
|
||||
#include <immintrin.h>
|
||||
#include <intrin.h>
|
||||
#include <stdio.h>
|
||||
|
||||
void main()
|
||||
{
|
||||
float a = sseSqrt(4.0f);
|
||||
|
||||
int b = (int)a;
|
||||
|
||||
printf(b);
|
||||
}
|
||||
|
||||
|
||||
float sseSqrt(float x)
|
||||
{
|
||||
|
||||
float* pa = &x;
|
||||
float result[4];
|
||||
|
||||
__m128 b;
|
||||
|
||||
b = _mm_load_ss(pa);
|
||||
|
||||
__m128 c = _mm_sqrt_ss(b);
|
||||
|
||||
_mm_store_ss(result, c);
|
||||
|
||||
return result[3];
|
||||
}
|
||||
@@ -0,0 +1,135 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||
<ItemGroup Label="ProjectConfigurations">
|
||||
<ProjectConfiguration Include="Debug|Win32">
|
||||
<Configuration>Debug</Configuration>
|
||||
<Platform>Win32</Platform>
|
||||
</ProjectConfiguration>
|
||||
<ProjectConfiguration Include="Release|Win32">
|
||||
<Configuration>Release</Configuration>
|
||||
<Platform>Win32</Platform>
|
||||
</ProjectConfiguration>
|
||||
<ProjectConfiguration Include="Debug|x64">
|
||||
<Configuration>Debug</Configuration>
|
||||
<Platform>x64</Platform>
|
||||
</ProjectConfiguration>
|
||||
<ProjectConfiguration Include="Release|x64">
|
||||
<Configuration>Release</Configuration>
|
||||
<Platform>x64</Platform>
|
||||
</ProjectConfiguration>
|
||||
</ItemGroup>
|
||||
<PropertyGroup Label="Globals">
|
||||
<VCProjectVersion>16.0</VCProjectVersion>
|
||||
<Keyword>Win32Proj</Keyword>
|
||||
<ProjectGuid>{9c0fd617-cd38-48b5-a16c-909fba56bbf5}</ProjectGuid>
|
||||
<RootNamespace>Project1</RootNamespace>
|
||||
<WindowsTargetPlatformVersion>10.0</WindowsTargetPlatformVersion>
|
||||
</PropertyGroup>
|
||||
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
|
||||
<ConfigurationType>Application</ConfigurationType>
|
||||
<UseDebugLibraries>true</UseDebugLibraries>
|
||||
<PlatformToolset>v143</PlatformToolset>
|
||||
<CharacterSet>Unicode</CharacterSet>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
|
||||
<ConfigurationType>Application</ConfigurationType>
|
||||
<UseDebugLibraries>false</UseDebugLibraries>
|
||||
<PlatformToolset>v143</PlatformToolset>
|
||||
<WholeProgramOptimization>true</WholeProgramOptimization>
|
||||
<CharacterSet>Unicode</CharacterSet>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
|
||||
<ConfigurationType>Application</ConfigurationType>
|
||||
<UseDebugLibraries>true</UseDebugLibraries>
|
||||
<PlatformToolset>v143</PlatformToolset>
|
||||
<CharacterSet>Unicode</CharacterSet>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
|
||||
<ConfigurationType>Application</ConfigurationType>
|
||||
<UseDebugLibraries>false</UseDebugLibraries>
|
||||
<PlatformToolset>v143</PlatformToolset>
|
||||
<WholeProgramOptimization>true</WholeProgramOptimization>
|
||||
<CharacterSet>Unicode</CharacterSet>
|
||||
</PropertyGroup>
|
||||
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
|
||||
<ImportGroup Label="ExtensionSettings">
|
||||
</ImportGroup>
|
||||
<ImportGroup Label="Shared">
|
||||
</ImportGroup>
|
||||
<ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
|
||||
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
|
||||
</ImportGroup>
|
||||
<ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
|
||||
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
|
||||
</ImportGroup>
|
||||
<ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
|
||||
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
|
||||
</ImportGroup>
|
||||
<ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
|
||||
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
|
||||
</ImportGroup>
|
||||
<PropertyGroup Label="UserMacros" />
|
||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
|
||||
<ClCompile>
|
||||
<WarningLevel>Level3</WarningLevel>
|
||||
<SDLCheck>true</SDLCheck>
|
||||
<PreprocessorDefinitions>WIN32;_DEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
<ConformanceMode>true</ConformanceMode>
|
||||
</ClCompile>
|
||||
<Link>
|
||||
<SubSystem>Console</SubSystem>
|
||||
<GenerateDebugInformation>true</GenerateDebugInformation>
|
||||
</Link>
|
||||
</ItemDefinitionGroup>
|
||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
|
||||
<ClCompile>
|
||||
<WarningLevel>Level3</WarningLevel>
|
||||
<FunctionLevelLinking>true</FunctionLevelLinking>
|
||||
<IntrinsicFunctions>true</IntrinsicFunctions>
|
||||
<SDLCheck>true</SDLCheck>
|
||||
<PreprocessorDefinitions>WIN32;NDEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
<ConformanceMode>true</ConformanceMode>
|
||||
</ClCompile>
|
||||
<Link>
|
||||
<SubSystem>Console</SubSystem>
|
||||
<EnableCOMDATFolding>true</EnableCOMDATFolding>
|
||||
<OptimizeReferences>true</OptimizeReferences>
|
||||
<GenerateDebugInformation>true</GenerateDebugInformation>
|
||||
</Link>
|
||||
</ItemDefinitionGroup>
|
||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
|
||||
<ClCompile>
|
||||
<WarningLevel>Level3</WarningLevel>
|
||||
<SDLCheck>true</SDLCheck>
|
||||
<PreprocessorDefinitions>_DEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
<ConformanceMode>true</ConformanceMode>
|
||||
</ClCompile>
|
||||
<Link>
|
||||
<SubSystem>Console</SubSystem>
|
||||
<GenerateDebugInformation>true</GenerateDebugInformation>
|
||||
</Link>
|
||||
</ItemDefinitionGroup>
|
||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
|
||||
<ClCompile>
|
||||
<WarningLevel>Level3</WarningLevel>
|
||||
<FunctionLevelLinking>true</FunctionLevelLinking>
|
||||
<IntrinsicFunctions>true</IntrinsicFunctions>
|
||||
<SDLCheck>true</SDLCheck>
|
||||
<PreprocessorDefinitions>NDEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
<ConformanceMode>true</ConformanceMode>
|
||||
</ClCompile>
|
||||
<Link>
|
||||
<SubSystem>Console</SubSystem>
|
||||
<EnableCOMDATFolding>true</EnableCOMDATFolding>
|
||||
<OptimizeReferences>true</OptimizeReferences>
|
||||
<GenerateDebugInformation>true</GenerateDebugInformation>
|
||||
</Link>
|
||||
</ItemDefinitionGroup>
|
||||
<ItemGroup>
|
||||
<ClCompile Include="AsmSqrt.c" />
|
||||
</ItemGroup>
|
||||
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
|
||||
<ImportGroup Label="ExtensionTargets">
|
||||
</ImportGroup>
|
||||
</Project>
|
||||
@@ -0,0 +1,22 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||
<ItemGroup>
|
||||
<Filter Include="源文件">
|
||||
<UniqueIdentifier>{4FC737F1-C7A5-4376-A066-2A32D752A2FF}</UniqueIdentifier>
|
||||
<Extensions>cpp;c;cc;cxx;c++;cppm;ixx;def;odl;idl;hpj;bat;asm;asmx</Extensions>
|
||||
</Filter>
|
||||
<Filter Include="头文件">
|
||||
<UniqueIdentifier>{93995380-89BD-4b04-88EB-625FBE52EBFB}</UniqueIdentifier>
|
||||
<Extensions>h;hh;hpp;hxx;h++;hm;inl;inc;ipp;xsd</Extensions>
|
||||
</Filter>
|
||||
<Filter Include="资源文件">
|
||||
<UniqueIdentifier>{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}</UniqueIdentifier>
|
||||
<Extensions>rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav;mfcribbon-ms</Extensions>
|
||||
</Filter>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<ClCompile Include="AsmSqrt.c">
|
||||
<Filter>源文件</Filter>
|
||||
</ClCompile>
|
||||
</ItemGroup>
|
||||
</Project>
|
||||
@@ -0,0 +1,4 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<Project ToolsVersion="Current" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||
<PropertyGroup />
|
||||
</Project>
|
||||
Binary file not shown.
@@ -0,0 +1,11 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<Project>
|
||||
<ProjectOutputs>
|
||||
<ProjectOutput>
|
||||
<FullPath>D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\Math\C\Project1\x64\Debug\Project1.exe</FullPath>
|
||||
</ProjectOutput>
|
||||
</ProjectOutputs>
|
||||
<ContentFiles />
|
||||
<SatelliteDlls />
|
||||
<NonRecipeFileRefs />
|
||||
</Project>
|
||||
@@ -0,0 +1,8 @@
|
||||
AsmSqrt.c
|
||||
D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\Math\C\Project1\Project1\AsmSqrt.c(8,12): warning C4013: “sseSqrt”未定义;假设外部返回 int
|
||||
D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\Math\C\Project1\Project1\AsmSqrt.c(12,10): warning C4047: “函数”:“const char *const ”与“int”的间接级别不同
|
||||
D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\Math\C\Project1\Project1\AsmSqrt.c(12,9): warning C4024: “printf”: 形参和实参 1 的类型不同
|
||||
D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\Math\C\Project1\Project1\AsmSqrt.c(8,12): warning C4244: “初始化”: 从“int”转换到“float”,可能丢失数据
|
||||
D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\Math\C\Project1\Project1\AsmSqrt.c(17,1): warning C4142: "sseSqrt": 类型的良性重定义
|
||||
MSVCRTD.lib(exe_main.obj) : error LNK2019: 无法解析的外部符号 main,函数 "int __cdecl invoke_main(void)" (?invoke_main@@YAHXZ) 中引用了该符号
|
||||
D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\Math\C\Project1\x64\Debug\Project1.exe : fatal error LNK1120: 1 个无法解析的外部命令
|
||||
Binary file not shown.
Binary file not shown.
Binary file not shown.
@@ -0,0 +1,2 @@
|
||||
PlatformToolSet=v143:VCToolArchitecture=Native64Bit:VCToolsVersion=14.33.31629:TargetPlatformVersion=10.0.19041.0:
|
||||
Debug|x64|D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\Math\C\Project1\|
|
||||
@@ -0,0 +1 @@
|
||||
|
||||
@@ -0,0 +1 @@
|
||||
|
||||
@@ -0,0 +1 @@
|
||||
|
||||
@@ -0,0 +1 @@
|
||||
|
||||
@@ -0,0 +1 @@
|
||||
|
||||
@@ -0,0 +1 @@
|
||||
|
||||
@@ -0,0 +1 @@
|
||||
|
||||
@@ -0,0 +1 @@
|
||||
|
||||
@@ -0,0 +1 @@
|
||||
|
||||
@@ -0,0 +1 @@
|
||||
|
||||
@@ -0,0 +1 @@
|
||||
x64\Debug\\_IsIncrementalBuild
|
||||
Binary file not shown.
Binary file not shown.
Binary file not shown.
File diff suppressed because it is too large
Load Diff
Binary file not shown.
|
After Width: | Height: | Size: 32 KiB |
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
@@ -0,0 +1,11 @@
|
||||
{ "notes": [
|
||||
{ "note_name": "round_note", "note_value":"<br />Rounding is done according to the \"rounding[3:0]\" parameter, which can be one of:<div class='desc_note'> (_MM_FROUND_TO_NEAREST_INT |_MM_FROUND_NO_EXC) // round to nearest, and suppress exceptions\n (_MM_FROUND_TO_NEG_INF |_MM_FROUND_NO_EXC) // round down, and suppress exceptions\n (_MM_FROUND_TO_POS_INF |_MM_FROUND_NO_EXC) // round up, and suppress exceptions\n (_MM_FROUND_TO_ZERO |_MM_FROUND_NO_EXC) // truncate, and suppress exceptions\n _MM_FROUND_CUR_DIRECTION // use MXCSR.RC; see _MM_SET_ROUNDING_MODE</div>"},
|
||||
{ "note_name": "sae_note", "note_value":"<br />Exceptions can be suppressed by passing \"_MM_FROUND_NO_EXC\" in the \"sae\" parameter."},
|
||||
{ "note_name": "round_imm_note", "note_value":"<br />Rounding is done according to the \"imm8[2:0]\" parameter, which can be one of:<div class='desc_note'> _MM_FROUND_TO_NEAREST_INT // round to nearest\n _MM_FROUND_TO_NEG_INF // round down\n _MM_FROUND_TO_POS_INF // round up\n _MM_FROUND_TO_ZERO // truncate\n _MM_FROUND_CUR_DIRECTION // use MXCSR.RC; see _MM_SET_ROUNDING_MODE</div>"},
|
||||
{ "note_name": "round2_note", "note_value":"<br />Rounding is done according to the \"rounding[3:0]\" parameter, which can be one of:<div class='desc_note'> (_MM_FROUND_TO_NEAREST_INT) // round to nearest\n (_MM_FROUND_TO_NEG_INF) // round down\n (_MM_FROUND_TO_POS_INFC) // round up\n (_MM_FROUND_TO_ZERO) // truncate\n _MM_FROUND_CUR_DIRECTION // use MXCSR.RC; see _MM_SET_ROUNDING_MODE\n (_MM_FROUND_TO_NEAREST_INT |_MM_FROUND_NO_EXC) // round to nearest, and suppress exceptions\n (_MM_FROUND_TO_NEG_INF |_MM_FROUND_NO_EXC) // round down, and suppress exceptions\n (_MM_FROUND_TO_POS_INF |_MM_FROUND_NO_EXC) // round up, and suppress exceptions\n (_MM_FROUND_TO_ZERO |_MM_FROUND_NO_EXC) // truncate, and suppress exceptions\n (_MM_FROUND_CUR_DIRECTION |_MM_FROUND_NO_EXC) // use MXCSR.RC and suppress exceptions; see _MM_SET_ROUNDING_MODE</div>"},
|
||||
{ "note_name": "strcmp_note", "note_value":"<br />\"imm\" can be a combination of:<div class='desc_note'> _SIDD_UBYTE_OPS // unsigned 8-bit characters\n _SIDD_UWORD_OPS // unsigned 16-bit characters\n _SIDD_SBYTE_OPS // signed 8-bit characters\n _SIDD_SWORD_OPS // signed 16-bit characters\n _SIDD_CMP_EQUAL_ANY // compare equal any\n _SIDD_CMP_RANGES // compare ranges\n _SIDD_CMP_EQUAL_EACH // compare equal each\n _SIDD_CMP_EQUAL_ORDERED // compare equal ordered\n _SIDD_NEGATIVE_POLARITY // negate results\n _SIDD_MASKED_NEGATIVE_POLARITY // negate results only before end of string\n _SIDD_LEAST_SIGNIFICANT // index only: return last significant bit\n _SIDD_MOST_SIGNIFICANT // index only: return most significant bit\n _SIDD_BIT_MASK // mask only: return bit mask\n _SIDD_UNIT_MASK // mask only: return byte/word mask</div>"},
|
||||
{ "note_name": "getmant_note", "note_value":"<br />The mantissa is normalized to the interval specified by \"interv\", which can take the following values:<div class='desc_note'> _MM_MANT_NORM_1_2 // interval [1, 2)\n _MM_MANT_NORM_p5_2 // interval [0.5, 2)\n _MM_MANT_NORM_p5_1 // interval [0.5, 1)\n _MM_MANT_NORM_p75_1p5 // interval [0.75, 1.5)</div>The sign is determined by \"sc\" which can take the following values:<div class='desc_note'> _MM_MANT_SIGN_src // sign = sign(src)\n _MM_MANT_SIGN_zero // sign = 0\n _MM_MANT_SIGN_nan // dst = NaN if sign(src) = 1</div>"},
|
||||
{ "note_name": "fpclass_note", "note_value":"<br />\"imm\" can be a combination of:<div class='desc_note'> 0x01 // QNaN\n 0x02 // Positive Zero\n 0x04 // Negative Zero\n 0x08 // Positive Infinity\n 0x10 // Negative Infinity\n 0x20 // Denormal\n 0x40 // Negative\n 0x80 // SNaN</div>"},
|
||||
{ "note_name": "max_float_note", "note_value":"<br />\"dst\" is not following IEEE 754 maximum when inputs are nan or signed-zero values."},
|
||||
{ "note_name": "min_float_note", "note_value":"<br />\"dst\" is not following IEEE 754 minimum when inputs are nan or signed-zero values."}
|
||||
]}
|
||||
@@ -0,0 +1,38 @@
|
||||
<!doctype html>
|
||||
<html>
|
||||
<head>
|
||||
<meta http-equiv='X-UA-Compatible' content='IE=9; IE=8; IE=7; IE=EDGE' />
|
||||
<title>Intel® Intrinsics Guide</title>
|
||||
<link rel='shortcut icon' href='favicon.ico' />
|
||||
<link type='text/css' rel='stylesheet' href='style.min.css' />
|
||||
<link type='text/css' rel='stylesheet' href='style-offline.min.css' />
|
||||
</head>
|
||||
<body>
|
||||
<div id='ig_container'>
|
||||
<div style='margin:0px;padding:15px 20px;'>
|
||||
<div>
|
||||
<div id='title'><b>Intel® Intrinsics Guide</b></div>
|
||||
<div style='clear:both;'></div>
|
||||
</div>
|
||||
<div>
|
||||
<h2>Third Party Library Attributions</h2>
|
||||
|
||||
This site uses the <a href="https://www.jquery.com">jQuery*</a> library for interactive search and filtering of content.
|
||||
|
||||
jQuery is release under the <a href="https://tldrlegal.com/license/mit-license">MIT license</a>.
|
||||
</div>
|
||||
<div>
|
||||
<h2>Notices and Disclaimers</h2>
|
||||
<p>Intel technologies may require enabled hardware, software or service activation.</p>
|
||||
<p>No product or component can be absolutely secure.</p>
|
||||
<p>Your costs and results may vary.</p>
|
||||
<p>© Intel Corporation. Intel, the Intel logo, and other Intel marks are trademarks of Intel Corporation or its subsidiaries.</p>
|
||||
<p>*Other names and brands may be claimed as the property of others.</p>
|
||||
<p>No license (express or implied, by estoppel or otherwise) to any intellectual property rights is granted by this document.</p>
|
||||
<p>The products described may contain design defects or errors known as errata which may cause the product to deviate from published specifications. Current characterized errata are available on request.</p>
|
||||
<p>Intel disclaims all express and implied warranties, including without limitation, the implied warranties of merchantability, fitness for a particular purpose, and non-infringement, as well as any warranty arising from course of performance, course of dealing, or usage in trade.</p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
||||
File diff suppressed because it is too large
Load Diff
@@ -0,0 +1,430 @@
|
||||
<!doctype html>
|
||||
<html>
|
||||
<head>
|
||||
<meta http-equiv='X-UA-Compatible' content='IE=9; IE=8; IE=7; IE=EDGE' />
|
||||
<title>Intel® Intrinsics Guide</title>
|
||||
<link rel='shortcut icon' href='favicon.ico' />
|
||||
<link type='text/css' rel='stylesheet' href='style.min.css' />
|
||||
<link type='text/css' rel='stylesheet' href='style-offline.min.css' />
|
||||
</head>
|
||||
<body>
|
||||
<div id='ig_body'>
|
||||
<div id='ig_container'>
|
||||
<div style='margin:0px;padding:15px 20px;'>
|
||||
<div id='ig_title'>
|
||||
<div id='title'>
|
||||
<b>Intel® Intrinsics Guide</b>
|
||||
</div>
|
||||
<div style='clear:both;'></div>
|
||||
</div>
|
||||
<section>
|
||||
<h2>Release Notes</h2>
|
||||
<h3>3.6.5 Release</h3>01/24/2023
|
||||
<ul>
|
||||
<li>Added 64 reduce_*_ep* series intrinsics.</li>
|
||||
<li>Corrected parameter order of _mm_test_all_zeros and _mm_test_mix_ones_zeros.</li>
|
||||
<li>Add new throughput and latency data for Sapphire Rapids.</li>
|
||||
</ul>
|
||||
|
||||
<h3>3.6.4 Release</h3>12/14/2022
|
||||
<ul>
|
||||
<li>Added SVML intrinsics for AVX512_FP16.</li>
|
||||
<li>Added intrinsics for:
|
||||
<ul>
|
||||
<li>AMX-FP16</li>
|
||||
<li>AVX_IFMA</li>
|
||||
<li>AVX_NE_CONVERT</li>
|
||||
<li>AVX_VNNI_INT8</li>
|
||||
<li>CMPCCXADD</li>
|
||||
<li>PREFETCHI</li>
|
||||
<li>RAO_INT</li>
|
||||
</ul>
|
||||
</li>
|
||||
<li>Added 9 new AMX intrinsics: __tile_*.
|
||||
<li>Refined description of _mm_cvtsbh_ss and *_cvtpbh_ps.
|
||||
<li>Fixed Instruction of _mm_mask3_fmadd_(round)_sch.</li>
|
||||
<li>Corrected _mm256_cvtps_ph/_mm_cvtps_ph's parameter name and description.</li>
|
||||
<li>Extended _mm512_(mask/z)_cvt_roundps_ph, _mm512_(mask/z)_cvtps_ph's rounding and SAE control.</li>
|
||||
<li>Corrected _tile_load/storeconfig's operation.</li>
|
||||
<li>Corrected stride type of AMX intrinsics.
|
||||
</ul>
|
||||
<h3>3.6.3 Release</h3>08/10/2022
|
||||
<ul>
|
||||
<li>Removed legacy throughput and latency data for Knights Landing, Ivy Bridge, Haswell, and Broadwell.</li>
|
||||
<li>Added new throughput and latency data for Icelake Intel Core, Icelake Xeon, and Alderlake.</li>
|
||||
<li>Updated the header information for CPUID FP16C from emmintrin.h to immintrin.h.</li>
|
||||
<li>Corrected the operation example for _mm_ucomineq_sh and _mm_comineq_sh.</li>
|
||||
</ul>
|
||||
<h3>3.6.2 Release</h3>04/22/2022
|
||||
<ul>
|
||||
<li>Added 1 intrinsic for BMI: _tzcnt_u16.</li>
|
||||
<li>Added a new tag <supported> to mark intrinsics' compiler support.</li>
|
||||
<li>Added helper enum for ternary intrinsics.</li>
|
||||
<li>Changed CPUID of _mm_(loadu/storeu)_si(16/64) from SSE to SSE2.</li>
|
||||
<li>Added new CPUID CRC32 for _mm_crc32_u(8/16/32/64) intrinsics.</li>
|
||||
<li>Corrected formatting error for _mm_div_ps and _mm_div_ss performance latency data (Ivy Bridge).</li>
|
||||
</ul>
|
||||
<h2>Release Notes</h2>
|
||||
<h3>3.6.1 Release</h3>12/06/2021
|
||||
<ul>
|
||||
<li>Corrected operation description for _mm_encodekey256_u32: Change handle size of encodekey256 from 384 to 512.</li>
|
||||
<li> Added seven intrinsics for AVX512_FP16: _mm_mask3_fcmadd_(round_)sch, _mm_mask3_fmadd_(round_)sch, _mm(256, 512)_set1_pch.</li>
|
||||
<li> Fixed part of KNCNI intrinsic CPUID flag.</li>
|
||||
<li> Corrected description for _mm256_hsub_ps.</li>
|
||||
<li> Corrected categories for *_shuffle_epi8.</li>
|
||||
<li> Improved description of AVX512_FP16 *_min/max_* intrinsics.</li>
|
||||
<li> Improved operation description of AVX512_FP16 *_comi_* intrinsics.</li>
|
||||
<li> Added 11 intrinsics for AVX512_BF16: _mm(256/512)_(mask/maskz)_cvtpbh_ps, _mm_cvtsbh_ss, _mm_cvtness_sbh.</li>
|
||||
<li> Added 36 intrinsics alias for AVX512_FP16: *_mul_*ch alias for *_f*mul_*ch.</li>
|
||||
</ul>
|
||||
<h2>Release Notes</h2>
|
||||
<h3>3.6.0 Release</h3>06/30/2021
|
||||
<ul>
|
||||
<li>Added intrinsics for AVX512_FP16, ENQCMD, AVX_VNNI, HRESET, KEYLOCKER, KEYLOCKER_WIDE and UINTR.</li>
|
||||
<li>Added two intrinsics for AVX512F: _mm512_(mask_)i32loscatter_epi64.</li>
|
||||
<li>Improved description for WAITPKG intrinsics.</li>
|
||||
<li>Improved operation for *_reduce_* intrinsics.</li>
|
||||
<li>Improved description for *_min/max_* float intrinsics.</li>
|
||||
<li>Improved operation for *_comi_* intrinsics.</li>
|
||||
<li>Updated XML format: removed <type> tag; reordered the tags and attributes.</li>
|
||||
<li>Shared CPUID intrinsics now will be listed as two separate items.</li>
|
||||
<li>Updated notices and disclaimers.</li>
|
||||
<li>Update introduction with links to supporting documentation.</li>
|
||||
<li>Updated fonts to use web-safe font stack.</li>
|
||||
</ul>
|
||||
<h3>3.5.4 Release</h3>10/19/2020
|
||||
<ul>
|
||||
<li>Fixed a recurring typo ("Seqeuence" --> "Sequence").</li>
|
||||
</ul>
|
||||
<h3>3.5.3 Release</h3>06/30/2020
|
||||
<ul>
|
||||
<li>Added intrinsics for AMX-TILE, AMX-BF16, and AMX-INT8.</li>
|
||||
</ul>
|
||||
<h3>3.5.2 Release</h3>06/05/2020
|
||||
<ul>
|
||||
<li>Added intrinsics for SERIALIZE and TSXLDTRK.</li>
|
||||
<li>Improved indication of intrinsics that are sequences of instructions.</li>
|
||||
<li>Improved presentation of long lines in operations.</li>
|
||||
</ul>
|
||||
<h3>3.5.1 Release</h3>05/22/2020
|
||||
<ul>
|
||||
<li>Updated latency and throughput data for Skylake.</li>
|
||||
<li>Resolved an issue preventing intrinsics from loading.</li>
|
||||
</ul>
|
||||
<h3>3.5.0 Release</h3>03/16/2020
|
||||
<ul>
|
||||
<li>Added latency and throughput data for 10th gen Intel® Core™ processor family (Icelake).</li>
|
||||
<li>Updated XML format: added a <return> tag for the return type and removed the rettype attribute; added several attributes to <return> and <parameter>; added XED iform attribute to <instruction>.</li>
|
||||
<li>Added instruction forms for many AVX512 intrinsics.</li>
|
||||
<li>Clarified embedded-rounding vs suppress-all-exceptions distinction for many intrinsics.</li>
|
||||
<li>Clarified masking operands in instruction forms.</li>
|
||||
<li>Corrected operation for all AVX512_VNNI and GFNI intrinsics.</li>
|
||||
<li>Clarified immediate bit-range access in many operations.</li>
|
||||
<li>Corrected destination zeroing for many store intrinsics.</li>
|
||||
<li>Clarified operator precedence for many intrinsic operations.</li>
|
||||
<li>Clarified indication of signed integers in many descriptions.</li>
|
||||
<li>Corrected scalar upper pass through variable for many intrinsics.</li>
|
||||
<li>Clarified memory accesses for many intrinsics.</li>
|
||||
<li>Added CPUID for CET_SS intrinsics.</li>
|
||||
<li>Corrected operations for many scatter and gather intrinsics.</li>
|
||||
<li>Corrected descriptions and operations for SVML intrinsics involving complex numbers.</li>
|
||||
<li>Corrected operation for _mm512_set_epi8.</li>
|
||||
<li>Corrected description for several *_set_epi* intrinsics.</li>
|
||||
<li>Corrected instruction for some *_xor_* intrinsics.</li>
|
||||
<li>Corrected description and operation for *_ktestc_* and *_kortestc_* intrinsics.</li>
|
||||
<li>Corrected operation for several *_permutex2var_* intrinsics.</li>
|
||||
<li>Clarified imm8 bit ranges for _alignr_ intrinsics.</li>
|
||||
<li>Corrected write mask pass through for some broadcast_i* and broadcast_f* intrinsics.</li>
|
||||
<li>Corrected imm8 bit range for some shuffle_i* intrinsics.</li>
|
||||
<li>Corrected operation for _kor_* intrinsics.</li>
|
||||
<li>Corrected operations for unmasked _movedup_ intrinsics.</li>
|
||||
<li>Corrected operations for *_set4_* and *_setr4_* intrinsics.</li>
|
||||
<li>Clarified imm8 bit range for _kshiftri_mask16.</li>
|
||||
<li>Corrected parameter types for *_4fmadd_ps intrinsics.</li>
|
||||
<li>Corrected operation for _mm256_mpsadbw_epu8.</li>
|
||||
<li>Corrected operations for *_maskz_mulhrs_epi16 intrinsics.</li>
|
||||
<li>Corrected operations for *_hadds_* intrinsics.</li>
|
||||
<li>Corrected saturation function for *_cvtusepi* intrinsics.</li>
|
||||
<li>Corrected shift direction for some *_srai_* intrinsics.</li>
|
||||
<li>Corrected operation for _mm256_mask_srlv_epi16.</li>
|
||||
<li>Corrected operation for _mm512_reduce_max_epi64.</li>
|
||||
<li>Corrected operations for _mm512_mask_permute4f128_* intrinsics.</li>
|
||||
<li>Corrected operations for _mm_tzcnti_* intrinsics.</li>
|
||||
<li>Corrected operations for several *_cvtt_* intrinsics.</li>
|
||||
<li>Corrected operations for several scalar conversion intrinsics.</li>
|
||||
<li>Corrected operations for several *_exp2a23_* intrinsics.</li>
|
||||
<li>Corrected operations for several intrinsics with single-precision reciprocals.</li>
|
||||
<li>Corrected operations for *_fmadd_ps intrinsics.</li>
|
||||
<li>Corrected operation for _mm_cvttss_si64.</li>
|
||||
<li>Corrected comparison operator for several cmpgt and cmplt intrinsics.</li>
|
||||
<li>Corrected operations for several right rotation intrinsics.</li>
|
||||
<li>Corrected operation for _mm_ceil_pd.</li>
|
||||
<li>Corrected operation for _mm512_mask_floor_ps.</li>
|
||||
<li>Corrected operations for several loadu intrinsics.</li>
|
||||
<li>Corrected src parameter for _mask_exp2a23_ intrinsics.</li>
|
||||
</ul>
|
||||
<h3>3.4.7 Release</h3>07/15/2019
|
||||
<ul>
|
||||
<li>Corrected operations for add/sub and sub/add intrinsics.</li>
|
||||
<li>Corrected operations for GFNI affine intrinsics.</li>
|
||||
<li>Corrected operations for dpbf16 intrinsics.</li>
|
||||
</ul>
|
||||
<h3>3.4.6 Release</h3>07/15/2019
|
||||
<ul>
|
||||
<li>Added intrinsics for AVX512_VP2INTERSECT.</li>
|
||||
</ul>
|
||||
<h3>3.4.5 Release</h3>05/30/2019
|
||||
<ul>
|
||||
<li>Added additional latency & throughput data for AVX-512 instructions.</li>
|
||||
<li>Improvements to operations for most intrinsics.</li>
|
||||
<li>Corrections to operations for many intrinsics, including AVX512_BITALG and AVX512_VNNI.</li>
|
||||
</ul>
|
||||
<h3>3.4.4 Release</h3>04/17/2019
|
||||
<ul>
|
||||
<li>Added BF16 intrinsics.</li>
|
||||
<li>Corrected operations for *_reduce_ps/pd intrinsics.</li>
|
||||
<li>Corrected operations for non-mask sllv_epi16 intrinsics.</li>
|
||||
</ul>
|
||||
<h3>3.4.3 Release</h3>04/08/2019
|
||||
<ul>
|
||||
<li>Improved operation syntax for many intrinsics.</li>
|
||||
<li>Corrected parameters for several cmp intrinsics.</li>
|
||||
<li>Corrected details of _mm512[_mask]_log2_ps.</li>
|
||||
<li>Corrected operations for: _mm_cvtpd_ps, _m_pmaddwd, *_madd_epi16, *_maskz_sub_epi8, *_maskz_sub_epi16.</li>
|
||||
<li>Corrected instructions for _mm_comi_round_ss.</li>
|
||||
<li>Corrected description and operation for _lrot*,.</li>
|
||||
<li>Corrected instructions and descriptions and operation _tpause and _umwait.</li>
|
||||
</ul>
|
||||
<h3>3.4.2 Release</h3>10/05/2018
|
||||
<ul>
|
||||
<li>Added intrinsics for AVX512_BITALG, AVX512_VBMI2, AVX512_VNNI, GFNI, VAES, VPCLMULQDQ, and others.</li>
|
||||
<li>Corrected CPUID and description for load/storebe intrinsics.</li>
|
||||
<li>Corrected operation for _mm_mask_4fmadd_ss.</li>
|
||||
<li>Corrected description for _mm_srli_epi32.</li>
|
||||
<li>Corrected description for _mm_alignr_pi8.</li>
|
||||
<li>Corrected description and operation for _xtest.</li>
|
||||
</ul>
|
||||
<h3>3.4.1 Release</h3>04/26/2018
|
||||
<ul>
|
||||
<li>Added ptwrite and encl* intrinsics.</li>
|
||||
<li>Corrected description and operation for blend intrinsics with an immediate control.</li>
|
||||
<li>Corrected CPUID for _mm512_4fmadd_ps.</li>
|
||||
<li>Corrected description for masked compare intrinsics.</li>
|
||||
<li>Clarified that includes should use <header.h> rather than "header.h".</li>
|
||||
<li>Corrected operations for _mm512_kunpack* intrinsics.</li>
|
||||
<li>Further clarified up and down conversion for intrinsics supported on both KNC and AVX-512.</li>
|
||||
<li>Corrected return type for 4dpwssd* intrinsics.</li>
|
||||
<li>Corrected description and operation for scalar mask3 intrinsics.</li>
|
||||
</ul>
|
||||
<h3>3.4 Release</h3>09/07/2017
|
||||
<ul>
|
||||
<li>Added intrinsics for Knights Mill (KNM).</li>
|
||||
<li>Corrected references to "_MM_CMPINT_NE".</li>
|
||||
<li>Corrected instruction for _mm512_stream_si512.</li>
|
||||
<li>Corrected CPUID for _mm256_extract_epi8, _mm256_extract_epi16, _mm[256,512]_cvt[ss,sd,si256,si512].</li>
|
||||
<li>Improved description of _xbegin.</li>
|
||||
<li>Clarified up and down conversion for intrinsics supported on both KNC and AVX-512.</li>
|
||||
<li>Corrected description of _mm_countbits_64.</li>
|
||||
</ul>
|
||||
<h3>3.3.16 Release</h3>01/26/2017
|
||||
<ul>
|
||||
<li>Added additional latency & throughput data up through 6th generation Intel® Core™ processor family (Skylake) and 2nd Generation Intel® Xeon Phi™ (Knights Landing).</li>
|
||||
<li>Added documentation on 36 intrinsics.</li>
|
||||
<li>Corrected operations for vsqrtss intrinsics.</li>
|
||||
<li>Corrected movd CPUID bits.</li>
|
||||
</ul>
|
||||
<h3>3.3.15 Release</h3>09/16/2016
|
||||
<ul>
|
||||
<li>Corrected operation for _mm_mpsadbw_epu8.</li>
|
||||
<li>Corrected latency and throughput data for FP16C intrinsics.</li>
|
||||
<li>Corrected operations for *_madd_epi16 intrinsics.</li>
|
||||
<li>Corrected operations for _subborrow_u* intrinsics.</li>
|
||||
<li>Corrected instruction forms for *_i32gather_* and *_i64gather_* intrinsics.</li>
|
||||
<li>Corrected operations *_i64gather_* intrinsics.</li>
|
||||
<li>Corrected operation for _mm256_shuffle_epi8.</li>
|
||||
<li>Corrected operations for _mm512_shuffle_epi8, _mm512_mask_shuffle_epi8, _mm512_maskz_shuffle_epi8, _mm256_mask_shuffle_epi8, _mm256_maskz_shuffle_epi8.</li>
|
||||
<li>Corrected descriptions and operations for *_sqrt_sd and *_sqrt_round_sd intrinsics.</li>
|
||||
<li>Corrected operations for _mm512_mask2int intrinsics.</li>
|
||||
<li>Corrected CPUIDs for _mm_undefined_* intrinsics.</li>
|
||||
</ul>
|
||||
<h3>3.3.14 Release</h3>01/12/2016
|
||||
<ul>
|
||||
<li>Corrected operations for *_cmpunord_* intrinsics.</li>
|
||||
</ul>
|
||||
<h3>3.3.13 Release</h3>12/02/2015
|
||||
<ul>
|
||||
<li>Clarified descriptions and operations for all intrinsics utilizing a bitwise AND NOT.</li>
|
||||
<li>Corrected description and operation for _mm512_fmadd233_ps and _mm512_mask_fmadd233_ps.</li>
|
||||
<li>Added AVX-512 versions of _mm512_mask2int and _mm512_int2mask.</li>
|
||||
</ul>
|
||||
<h3>3.3.12 Release</h3>09/28/2015
|
||||
<ul>
|
||||
<li>Corrected operations for multi-shift intrinsics.</li>
|
||||
<li>Corrected description and operation of _mm_test_all_ones.</li>
|
||||
<li>Corrected description for _mm512_sad_epu8.</li>
|
||||
<li>Corrected operation for _mm256_mpsadbw_epu8.</li>
|
||||
</ul>
|
||||
<h3>3.3.11 Release</h3>07/27/2015
|
||||
<ul>
|
||||
<li>Corrected operations for fmsubadd intrinsics.</li>
|
||||
</ul>
|
||||
<h3>3.3.10 Release</h3>06/24/2015
|
||||
<ul>
|
||||
<li>Corrected ADC, ADCX, and SBB intrinsics.</li>
|
||||
</ul>
|
||||
<h3>3.3.9 Release</h3>06/15/2015
|
||||
<ul>
|
||||
<li>Corrected operations for variable shift intrinsics.</li>
|
||||
</ul>
|
||||
<h3>3.3.8 Release</h3>05/26/2015
|
||||
<ul>
|
||||
<li>Corrected headers for all AVX-512 intrinsics.</li>
|
||||
</ul>
|
||||
<h3>3.3.7 Release</h3>02/20/2015
|
||||
<ul>
|
||||
<li>Corrected operations for _mm_sha1rnds4_epu32, _mm_sha1nexte_epu32, and _mm_sha1msg2_epu32.</li>
|
||||
</ul>
|
||||
<h3>3.3.6 Release</h3>02/02/2015
|
||||
<ul>
|
||||
<li>Corrected operations for floating-point hsub intrinsics.</li>
|
||||
</ul>
|
||||
<h3>3.3.5 Release</h3>01/29/2015
|
||||
<ul>
|
||||
<li>Added missing _BitScan*, _bittest*, _mm256_extract_epi*, _mm256_insert_epi*, and _mm_clflushopt intrinsics.</li>
|
||||
</ul>
|
||||
<h3>3.3.4 Release</h3>01/13/2015
|
||||
<ul>
|
||||
<li>Corrected parameter names, descriptions, and operations for intrinsics with immediate parameters, to clarify they are always 8-bits.</li>
|
||||
<li>Corrected description and operation for all pmaddwd intrinsics.</li>
|
||||
</ul>
|
||||
<h3>3.3.3 Release</h3>12/18/2014
|
||||
<ul>
|
||||
<li>Corrected description for _mm_maskmoveu_si128 and _mm_maskmove_si64.</li>
|
||||
<li>Corrected operation for _mm512_[mask_]extload_* intrinsics.</li>
|
||||
</ul>
|
||||
<h3>3.3.2 Release</h3>12/10/2014
|
||||
<ul>
|
||||
<li>Corrected description for vpmaksmov intrinsics.</li>
|
||||
<li>Corrected description for (v)pmaddwd intrinsics.</li>
|
||||
</ul>
|
||||
<h3>3.3.1 Release</h3>10/17/2014
|
||||
<ul>
|
||||
<li>Corrected category for *_mask_cmp_*_mask, *_test_*_mask, and *_testn_*_maks intrinsics.</li>
|
||||
<li>Corrected description and operation for *_testn_*_maks intrinsics.</li>
|
||||
<li>Added description and operation for _mm_testn_epi64_mask and _mm_test_epi64_mask.</li>
|
||||
<li>Corrected typos in description of several getexp, packs, div, and broadcast intrinsics.</li>
|
||||
<li>Corrected instructions for *_mask_permutex2var_* and *_mask2_permutex2var_* intrinsics.</li>
|
||||
<li>Corrected for CPUID's for 128-bit and 256-bit lzcnt and conflict intrinsics.</li>
|
||||
<li>Corrected description for all broadcastw and fpclass intrinsics.</li>
|
||||
</ul>
|
||||
<h3>3.3.0 Release</h3>09/29/2014
|
||||
<ul>
|
||||
<li>Added AVX-512IFMA52 and AVX-512VBMI intrinsics.</li>
|
||||
</ul>
|
||||
<h3>3.2.2 Release</h3>09/03/2014
|
||||
<ul>
|
||||
<li>Corrected _mm512_mask_permute4f128_epi32 operation.</li>
|
||||
</ul>
|
||||
<h3>3.2.1 Release</h3>07/24/2014
|
||||
<ul>
|
||||
<li>Corrected CPUIDs for _mm_broadcastmb_epi64, _mm256_broadcastmb_epi64, _mm_broadcastmw_epi32, _mm256_broadcastmw_epi32, and _mm_movm_epi8.</li>
|
||||
</ul>
|
||||
<h3>3.2.0 Release</h3>07/18/2014
|
||||
<ul>
|
||||
<li>Added AVX-512VL, AVX-512BW, and AVX-512DQ intrinsics.</li>
|
||||
</ul>
|
||||
<h3>3.1.9 Release</h3>06/18/2014
|
||||
<ul>
|
||||
<li>Re-classified all *_reduce_* intrinsics (except gmin and gmax) as both AVX-512 and KNC, which were previously classified as only AVX-512.</li>
|
||||
</ul>
|
||||
<h3>3.1.8 Release</h3>06/17/2014
|
||||
<ul>
|
||||
<li>Corrected instructions for _mm512_mask2int, _mm512_int2mask, _mm512_cvtfxpnt_round_adjustepi32_ps, _mm512_mask_mulhi_epu32, _mm512_mask_i32loscatter_epi64, _mm512_mask_subsetb_epi32, _mm_tzcnti_32, _mm_tzcnti_64, _mm_prefetch, _mm512_extload_*, and _mm512_mask_extload_*.</li>
|
||||
<li>Re-classified 58 intrinsics as just AVX-512, which were previously classified as both AVX-512 and KNC (primarily broadcast intrinsics, and those containing __m128 or __m256 types).</li>
|
||||
<li>Re-classified _mm512_log2_ps and _mm512_mask_log2_ps as KNC, which were previously classified as SVML.</li>
|
||||
<li>Corrected parameters for _mm512_mask_prefetch_i32gather_ps, and re-classified as both AVX-512 and KNC.</li>
|
||||
<li>Corrected description of _mm_sad_epu8.</li>
|
||||
<li>Added _mm512_mask_prefetch_i32extgather_ps.</li>
|
||||
<li>Added prefetchwt1 form of _mm_prefetch.</li>
|
||||
</ul>
|
||||
<h3>3.1.7 Release</h3>05/30/2014
|
||||
<ul>
|
||||
<li>Corrected instructions for _mm512_permute_pd, _mm512_permutevar_pd, and _mm512_permutevar_ps, which all use vpermilpx instructions rather than vpermpx.</li>
|
||||
<li>Corrected descriptions for _mm*_xor_si* intrinsics.</li>
|
||||
<li>Added missing _mm512_mask_prefetch_i32gather_ps intrinsic.</li>
|
||||
<li>Re-classified _mm512_abs_pd, _mm512_abs_ps, _mm512_mask_abs_pd, and _mm512_mask_abs_ps intrinsics as both AVX-512 and KNC, which were previously classified as only KNC.</li>
|
||||
<li>Switched to HTTPS.</li>
|
||||
</ul>
|
||||
<h3>3.1.6 Release</h3>03/21/2014
|
||||
<ul>
|
||||
<li>Corrected instructions for: _mm_sub_epi16, _mm512_cvtfxpnt_round_adjustps_epi32, _mm512_extpackstorelo_epi64, _mm512_mask_extpackstorelo_epi64, _mm512_extpackstorelo_pd, _mm512_mask_extpackstorelo_pd.</li>
|
||||
<li>Added xsavec, xsaves, and xrstors intrinsics.</li>
|
||||
</ul>
|
||||
<h3>3.1.5 Release</h3>03/18/2014
|
||||
<ul>
|
||||
<li>Re-classified 342 intrinsics as both AVX-512 and KNC, which were previously classified as only AVX-512.</li>
|
||||
<li>Added 18 missing KNC intrinsics, which previously existed in AVX-512 but have different intrinsic signatures or instructions encodings for KNC.</li>
|
||||
<li>Corrected fmadd233 intrinsic descriptions and operations.</li>
|
||||
<li>Corrected CPUID for VPTESTN* intrinsics to AVX512F.</li>
|
||||
</ul>
|
||||
<h3>3.1.4 Release</h3>02/12/2014
|
||||
<ul>
|
||||
<li>Corrected "hint" parameter description for prefetch scatter/gather intrinsics.</li>
|
||||
<li>Corrected _mm512_prefetch_i32extgather_ps, _mm512_mask_prefetch_i32extscatter_ps, and _mm512_prefetch_i32extscatter_ps intrinsic descriptions and operations.</li>
|
||||
</ul>
|
||||
<h3>3.1.3 Release</h3>02/06/2014
|
||||
<ul>
|
||||
<li>Added AVX512F version of kortestw intrinsics.</li>
|
||||
</ul>
|
||||
<h3>3.1.2 Release</h3>01/28/2014
|
||||
<ul>
|
||||
<li>Updated throughput on Haswell for vblendpd/ps, vblendvp/ps, and vmulpd/ps.</li>
|
||||
<li>Added performance data for _mm_alignr_epi8.</li>
|
||||
<li>Resolved issues in Internet Explorer 8 and 9.</li>
|
||||
<li>Added intro message.</li>
|
||||
</ul>
|
||||
<h3>3.1.1 Release</h3>12/19/2013
|
||||
<ul>
|
||||
<li>Fixed VEX-equivalent warning message.</li>
|
||||
</ul>
|
||||
<h3>3.1 Release</h3>12/18/2013
|
||||
<ul>
|
||||
<li>Added Knights Corner (KNC) intrinsics.</li>
|
||||
<li>Added 512-bit SVML intrinsics.</li>
|
||||
<li>Added instruction parameters for many intrinsics, including all AVX-512 intrinsics.</li>
|
||||
<li>Added instruction latencies for many intrinsics.</li>
|
||||
<li>Updated AVX-512 CPUID names.</li>
|
||||
<li>Added feature flags for AVX-512(F,ER,PF,CD), SHA, and MPX.</li>
|
||||
<li>Corrected descriptions, operations, parameters, and instructions for many intrinsics.</li>
|
||||
</ul>
|
||||
<h3>3.0.1 Release</h3>07/23/2013
|
||||
<ul>
|
||||
<li>Corrected operations for set and setr intrinsics.</li>
|
||||
</ul>
|
||||
<h3>3.0 Release</h3>07/17/2013
|
||||
<ul>
|
||||
<li>Added intrinsics for Intel® AVX-512, Intel® MPX, RDSEED, and ADX.</li>
|
||||
<li>Added additional latency & throughput data up through 4th generation Intel® Core™ processor family.</li>
|
||||
<li>Added 148 missing intrinsics, and corrected information for 96 intrinsics.</li>
|
||||
</ul>
|
||||
<h3>2.8.1 Release</h3>05/13/2013
|
||||
<ul>
|
||||
<li>Fixed description for _mm_move_ss.</li>
|
||||
<li>Fixed parameters for _mm_max_epu32.</li>
|
||||
<li>Replaced references of __int datatype with int.</li>
|
||||
</ul>
|
||||
<h3>2.8 Release</h3>02/06/2013
|
||||
<ul>
|
||||
<li>Updated descriptions and operations for all intrinsics.</li>
|
||||
<li>Added additional latency & throughput data up through 3rd generation Intel® Core™ processor family.</li>
|
||||
</ul>
|
||||
<h3>2.7 Release</h3>11/28/2012
|
||||
<ul>
|
||||
<li>Added intrinsics for SVML, BMI1, BMI2, FXSR, INVPCID, LZCNT, POPCNT, RDRAND, RDTSCP, RTM, TSC, XSAVE, XSAVEOPT.</li>
|
||||
<li>Added header and CPUID feature flag information for each intrinsic.</li>
|
||||
</ul>
|
||||
</section>
|
||||
</div>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
||||
Binary file not shown.
|
After Width: | Height: | Size: 1.5 KiB |
@@ -0,0 +1 @@
|
||||
body{font-family:"Intel Clear","Intel Clear IE",Tahoma,sans-serif;font-size:100%;margin:0;background-attachment:fixed;height:100%}a{color:#0872c5}#ig_container{width:100%;max-width:1300px;margin:0 auto;padding:0;background:#fff}#ig_left{width:240px;float:left;padding:15px 0 15px 20px}#title{float:left;color:#0872c5;font-size:18px;margin-top:8px}p{margin-top:0}#ig_main{margin:0 0 0 260px;padding:15px 20px}#ig_clear{position:absolute;right:-26px;top:10px;cursor:pointer;width:12px}
|
||||
@@ -0,0 +1 @@
|
||||
#ig_search,.search_token,b,div.details>h1,.instruction_note{font-family:"Intel Clear","Intel Clear IE",Tahoma,sans-serif}.mono,div.signature,div.synopsis,.instruction,.desc_note,.operation,span.desc_var{font-family:"Courier New",Courier,"Lucida Sans Typewriter","Lucida Typewriter",monospace}#ig_container{margin-right:auto;margin-left:auto;padding:40px 0}@media(min-width:480px){#ig_container{max-width:100%}}@media(min-width:768px){#ig_container{width:750px;max-width:none}}@media(min-width:992px){#ig_container{width:970px;max-width:none}}@media(min-width:1200px){#ig_container{width:1170px;max-width:none}}@media(min-width:1650px){#ig_container{width:1610px;max-width:none}}#ig_left{width:100%;padding:20px 20px 20px 16px}@media(min-width:480px){#ig_left{width:255px;float:left}}#ig_main{margin:0;padding:0 16px}@media(min-width:480px){#ig_main{margin:0 0 0 240px;padding:15px 20px}}#ig_about{padding:10px 0;font-size:100%;position:relative}.info{font-size:90%}#ig_search_wrapper{padding-right:4px;padding-left:1px;margin-right:34px;position:relative}#ig_search_tokens{position:absolute;z-index:2;padding:6px 0 0 1px}#ig_search{width:100%;font-size:100%;padding:5px 8px 5px 30px;border:1px solid #ccc;-moz-border-radius:3px;border-radius:3px;color:#aaa;outline-width:0}.search_token{display:inline-block;font-size:100%;padding:1px 8px;border:1px solid #ccc;-moz-border-radius:15px;border-radius:15px;background-color:#eaf4ff;margin-left:3px;cursor:pointer}#add{position:absolute;right:7px;top:2px}#ig_clear{position:absolute;right:20px;top:10px;cursor:pointer;width:12px}#ig_search_icon{position:absolute;left:6px;top:6px;width:22px}#intrinsics_list{overflow:hidden}.popbox{background-color:#fff;box-shadow:0 0 5px #aaa;position:absolute;z-index:99999;padding:10px;display:none;font-size:80%;border:1px solid #ccc}b,.strong{font-weight:bold}div.intrinsic,div.tech,div.othertech,div.ssetech,div.avxnewtech,div.avx512tech,div.amxtech{border-left:10px solid;border-top:1px solid;padding-left:5px;margin:1px 0 1px 0}input[type="checkbox"]{margin-right:0}div.ssetech,div.avxnewtech,div.avx512tech,div.amxtech,div.othertech{padding-left:20px}div.MMX{border-color:#f7f056}div.SSE_ALL{border-color:#cae0ab}div.ssetech{border-color:#cae0ab}div.AVX_ALL{border-color:#4eb265}div.avxnewtech{border-color:#4eb265}div.AVX_512{border-color:#7bafde;position:relative}div.avx512tech{border-color:#7bafde}div.KNC{border-color:#1965b0}div.AMX{border-color:#882e72}div.amxtech{border-color:#882e72}div.SVML{border-color:#dc050c;position:relative}div.Other{border-color:#777}div.othertech{border-color:#777}div.alsoKNC{position:absolute;left:-10px;bottom:0;width:10px;height:50%;border-top:1px solid #fff;background-color:#ff8e00}div.signature{cursor:pointer;padding-top:2px}span.sig{color:#666}span.sig>span.rettype{color:#008}span.sig>span.name{color:#000}span.sig>span.param_type{color:#008}span.sig>span.param_name{color:#065}div.details{display:none;padding:10px;font-size:80%}div.details>h1{font-size:110%;font-weight:bold;margin:0}div.synopsis{padding:10px;line-height:130%}.instruction{float:right;color:#bbb;font-size:80%;margin-top:2px}.instruction_note{color:#ac193a;font-weight:bold;cursor:pointer}div.description{padding:10px;font-size:110%}.desc_note{padding:10px;white-space:pre;font-size:90%}.operation{padding:10px;background:#f5f5f5;white-space:pre}span.desc_var{color:#065}table.performance{border-collapse:collapse;margin:5px}table.performance th{font-weight:normal}table.performance td,table.performance th{border:1px solid #ccc;padding:5px;text-align:center}table.performance tr:first-child th{border-top:0}table.performance tr:last-child td{border-bottom:0}table.performance tr td:first-child,table.performance tr th:first-child{border-left:0;text-align:left}table.performance tr td:last-child,table.performance tr th:last-child{border-right:0}
|
||||
Binary file not shown.
|
After Width: | Height: | Size: 1.7 KiB |
@@ -0,0 +1,311 @@
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<meta content="IE=9; IE=8; IE=7; IE=EDGE" http-equiv="X-UA-Compatible"/>
|
||||
<meta charset="utf-8"/>
|
||||
<title>
|
||||
Intel® Intrinsics Guide
|
||||
</title>
|
||||
<link href="files/favicon.ico" rel="shortcut icon"/>
|
||||
<meta content="!" name="fragment"/>
|
||||
<meta content="The Intel® Intrinsics Guide is the reference for Intel intrinsics, which provide access to Intel instructions such as Intel® SSE, Intel® AVX, and Intel® AVX2." name="Description">
|
||||
</meta>
|
||||
</head>
|
||||
<body>
|
||||
<div id="ig_body">
|
||||
<link href="files/style.min.css?3-6-5" rel="stylesheet" type="text/css"/>
|
||||
<link href="files/style-offline.min.css?3-6-5" rel="stylesheet" type="text/css"/>
|
||||
<script src="files/jquery-1.10.2.min.js" type="text/javascript">
|
||||
</script>
|
||||
<div id="ig_container">
|
||||
<div id="ig_left">
|
||||
<div id="ig_title">
|
||||
<div id="title">
|
||||
<b>
|
||||
Intel® Intrinsics Guide
|
||||
</b>
|
||||
</div>
|
||||
<div style="clear:both;">
|
||||
</div>
|
||||
<br/>
|
||||
</div>
|
||||
<div>
|
||||
<b>
|
||||
Instruction Set
|
||||
</b>
|
||||
</div>
|
||||
<div id="techs">
|
||||
<div class="MMX tech">
|
||||
<input type="checkbox"/>
|
||||
MMX
|
||||
</div>
|
||||
<div class="SSE_ALL tech">
|
||||
<input type="checkbox"/>
|
||||
SSE family
|
||||
</div>
|
||||
<div id="sse_techs" style="display:none;">
|
||||
<div class="SSE ssetech">
|
||||
<input type="checkbox"/>
|
||||
SSE
|
||||
</div>
|
||||
<div class="SSE2 ssetech">
|
||||
<input type="checkbox"/>
|
||||
SSE2
|
||||
</div>
|
||||
<div class="SSE3 ssetech">
|
||||
<input type="checkbox"/>
|
||||
SSE3
|
||||
</div>
|
||||
<div class="SSSE3 ssetech">
|
||||
<input type="checkbox"/>
|
||||
SSSE3
|
||||
</div>
|
||||
<div class="SSE4_1 ssetech">
|
||||
<input type="checkbox"/>
|
||||
SSE4.1
|
||||
</div>
|
||||
<div class="SSE4_2 ssetech">
|
||||
<input type="checkbox"/>
|
||||
SSE4.2
|
||||
</div>
|
||||
</div>
|
||||
<div class="AVX_ALL tech">
|
||||
<input type="checkbox"/>
|
||||
AVX family
|
||||
</div>
|
||||
<div id="avxnew_techs" style="display:none;">
|
||||
<div class="AVX avxnewtech">
|
||||
<input type="checkbox"/>
|
||||
AVX
|
||||
</div>
|
||||
<div class="AVX2 avxnewtech">
|
||||
<input type="checkbox"/>
|
||||
AVX2
|
||||
</div>
|
||||
<div class="FMA avxnewtech">
|
||||
<input type="checkbox"/>
|
||||
FMA
|
||||
</div>
|
||||
<div class="AVX_VNNI avxnewtech">
|
||||
<input type="checkbox"/>
|
||||
AVX_VNNI
|
||||
</div>
|
||||
<div class="AVX_VNNI_INT8 avxnewtech">
|
||||
<input type="checkbox"/>
|
||||
AVX_VNNI_INT8
|
||||
</div>
|
||||
<div class="AVX_NE_CONVERT avxnewtech">
|
||||
<input type="checkbox"/>
|
||||
AVX_NE_CONVERT
|
||||
</div>
|
||||
<div class="AVX_IFMA avxnewtech">
|
||||
<input type="checkbox"/>
|
||||
AVX_IFMA
|
||||
</div>
|
||||
</div>
|
||||
<div class="AVX_512 tech">
|
||||
<input type="checkbox"/>
|
||||
AVX-512 family
|
||||
</div>
|
||||
<div id="avx512_techs" style="display:none;">
|
||||
<div class="AVX512F avx512tech">
|
||||
<input type="checkbox"/>
|
||||
AVX-512F
|
||||
</div>
|
||||
<div class="AVX512BW avx512tech">
|
||||
<input type="checkbox"/>
|
||||
AVX-512BW
|
||||
</div>
|
||||
<div class="AVX512CD avx512tech">
|
||||
<input type="checkbox"/>
|
||||
AVX-512CD
|
||||
</div>
|
||||
<div class="AVX512DQ avx512tech">
|
||||
<input type="checkbox"/>
|
||||
AVX-512DQ
|
||||
</div>
|
||||
<div class="AVX512ER avx512tech">
|
||||
<input type="checkbox"/>
|
||||
AVX-512ER
|
||||
</div>
|
||||
<div class="AVX512IFMA52 avx512tech">
|
||||
<input type="checkbox"/>
|
||||
AVX-512IFMA52
|
||||
</div>
|
||||
<div class="AVX512PF avx512tech">
|
||||
<input type="checkbox"/>
|
||||
AVX-512PF
|
||||
</div>
|
||||
<div class="AVX512VL avx512tech">
|
||||
<input type="checkbox"/>
|
||||
AVX-512VL
|
||||
</div>
|
||||
<div class="AVX512VPOPCNTDQ avx512tech">
|
||||
<input type="checkbox"/>
|
||||
AVX-512VPOPCNTDQ
|
||||
</div>
|
||||
<div class="AVX512_4FMAPS avx512tech">
|
||||
<input type="checkbox"/>
|
||||
AVX-512_4FMAPS
|
||||
</div>
|
||||
<div class="AVX512_4VNNIW avx512tech">
|
||||
<input type="checkbox"/>
|
||||
AVX-512_4VNNIW
|
||||
</div>
|
||||
<div class="AVX512_BF16 avx512tech">
|
||||
<input type="checkbox"/>
|
||||
AVX-512_BF16
|
||||
</div>
|
||||
<div class="AVX512_BITALG avx512tech">
|
||||
<input type="checkbox"/>
|
||||
AVX-512_BITALG
|
||||
</div>
|
||||
<div class="AVX512_VBMI avx512tech">
|
||||
<input type="checkbox"/>
|
||||
AVX-512_VBMI
|
||||
</div>
|
||||
<div class="AVX512_VBMI2 avx512tech">
|
||||
<input type="checkbox"/>
|
||||
AVX-512_VBMI2
|
||||
</div>
|
||||
<div class="AVX512_VNNI avx512tech">
|
||||
<input type="checkbox"/>
|
||||
AVX-512_VNNI
|
||||
</div>
|
||||
<div class="AVX512_VP2INTERSECT avx512tech">
|
||||
<input type="checkbox"/>
|
||||
AVX-512_VP2INTERSECT
|
||||
</div>
|
||||
<div class="AVX512_FP16 avx512tech">
|
||||
<input type="checkbox"/>
|
||||
AVX-512_FP16
|
||||
</div>
|
||||
</div>
|
||||
<div class="KNC tech">
|
||||
<input type="checkbox"/>
|
||||
KNC
|
||||
</div>
|
||||
<div class="AMX tech">
|
||||
<input type="checkbox"/>
|
||||
AMX family
|
||||
</div>
|
||||
<div id="amx_techs" style="display:none;">
|
||||
<div class="AMX_BF16 amxtech">
|
||||
<input type="checkbox"/>
|
||||
AMX-BF16
|
||||
</div>
|
||||
<div class="AMX_INT8 amxtech">
|
||||
<input type="checkbox"/>
|
||||
AMX-INT8
|
||||
</div>
|
||||
<div class="AMX_TILE amxtech">
|
||||
<input type="checkbox"/>
|
||||
AMX-TILE
|
||||
</div>
|
||||
<div class="AMX_FP16 amxtech">
|
||||
<input type="checkbox"/>
|
||||
AMX-FP16
|
||||
</div>
|
||||
</div>
|
||||
<div class="SVML tech">
|
||||
<input type="checkbox"/>
|
||||
SVML
|
||||
</div>
|
||||
<div class="Other tech">
|
||||
<input type="checkbox"/>
|
||||
Other
|
||||
</div>
|
||||
<div id="other_techs">
|
||||
</div>
|
||||
</div>
|
||||
<br/>
|
||||
<div>
|
||||
<b>
|
||||
Categories
|
||||
</b>
|
||||
</div>
|
||||
<div id="categories">
|
||||
</div>
|
||||
<br/>
|
||||
<br/>
|
||||
<div class="info" id="ig_info">
|
||||
</div>
|
||||
<div class="info">
|
||||
<p>
|
||||
<a href="files/release-notes.html">
|
||||
Release Notes
|
||||
</a>
|
||||
</p>
|
||||
</div>
|
||||
<div class="info">
|
||||
<p>
|
||||
</p>
|
||||
</div>
|
||||
<div class="info">
|
||||
Additional resources:
|
||||
<ul>
|
||||
<li id="ig_cpp_compiler_dgr_offline">
|
||||
<a href="https://software.intel.com/content/www/us/en/develop/documentation/cpp-compiler-developer-guide-and-reference/top/compiler-reference/intrinsics.html">
|
||||
Intel® C++ Compiler Classic Developer Guide and Reference
|
||||
</a>
|
||||
</li>
|
||||
<li>
|
||||
<a href="https://community.intel.com/t5/Intel-C-Compiler/bd-p/c-compiler">
|
||||
Intel® C++ Compiler community board
|
||||
</a>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
<div class="info">
|
||||
<p>
|
||||
All throughput and latency data is sourced from
|
||||
<a href="https://www.intel.com/content/www/us/en/developer/articles/technical/intel-sdm.html" id="ig_sdm_offline">
|
||||
Intel® 64 and IA-32 Architectures Software Developer Manuals
|
||||
</a>
|
||||
.
|
||||
</p>
|
||||
</div>
|
||||
<div class="info" id="ig_notices">
|
||||
<a href="files/notices-and-disclaimers.html">
|
||||
Notices and Disclaimers
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
<div id="ig_main">
|
||||
<div id="ig_about">
|
||||
<p id="ig_offline_title">
|
||||
You are viewing an offline version of the Intel® Intrinsics Guide. View the latest
|
||||
<a href="https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html" id="ig_latest_online">
|
||||
Intel® Intrinsics Guide
|
||||
</a>
|
||||
online.
|
||||
</p>
|
||||
</div>
|
||||
<div id="ig_search_wrapper">
|
||||
<div id="ig_search_tokens">
|
||||
</div>
|
||||
<img alt="Search Intel Intrinsics" id="ig_search_icon" src="files/search-icon.png"/>
|
||||
<input autocomplete="off" id="ig_search" type="text" value="Search Intel Intrinsics"/>
|
||||
<img alt="Clear" id="ig_clear" src="files/x.png" style="display:none;"/>
|
||||
</div>
|
||||
<br>
|
||||
<div id="intrinsics_list">
|
||||
Loading intrinsics data ...
|
||||
</div>
|
||||
</br>
|
||||
</div>
|
||||
<div style="clear:both;">
|
||||
</div>
|
||||
</div>
|
||||
<div class="popbox sequence" style="width:250px;">
|
||||
This intrinsic generates a sequence of instructions, which may perform worse than a native instruction. Consider the performance impact of this intrinsic.
|
||||
</div>
|
||||
<script src="files/intrinsicsguide.min.js?3-6-5" type="text/javascript">
|
||||
</script>
|
||||
<script src="files/data.js" type="text/javascript">
|
||||
</script>
|
||||
<script src="files/perf2.js" type="text/javascript">
|
||||
</script>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
||||
Binary file not shown.
@@ -0,0 +1,8 @@
|
||||
\documentclass[11pt]{article}
|
||||
\usepackage{cjk}
|
||||
\begin{document}
|
||||
\begin{cjk}{gbk}{song}
|
||||
你好 \latex
|
||||
\end{cjk}
|
||||
Hello \LaTeX
|
||||
\end{document}
|
||||
@@ -22,7 +22,7 @@ namespace Cure_For_Corona_Desease
|
||||
{
|
||||
public MainWindow()
|
||||
{
|
||||
InitializeComponent();
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
BIN
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
BIN
Binary file not shown.
BIN
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
@@ -8,5 +8,18 @@ namespace StgSharp.Math
|
||||
{
|
||||
public static unsafe partial class Calc
|
||||
{
|
||||
|
||||
public static unsafe float Abs(float x)
|
||||
{
|
||||
uint* a = (uint*)&x;
|
||||
*a &= 0b_0111_1111_1111_1111_1111_1111_1111_1111;
|
||||
return *(float*)a;
|
||||
|
||||
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,23 +0,0 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Text;
|
||||
|
||||
namespace StgSharp.Math
|
||||
{
|
||||
public static unsafe partial class Calc
|
||||
{
|
||||
|
||||
/// <summary>
|
||||
/// Get the bits of a float number
|
||||
/// </summary>
|
||||
/// <param name="x">The given float number</param>
|
||||
/// <returns></returns>
|
||||
public static uint GetBits32(float x)
|
||||
{
|
||||
Union4 union = new Union4();
|
||||
union.f = x;
|
||||
return union.i;
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
+27
-24
@@ -1,18 +1,9 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Diagnostics.CodeAnalysis;
|
||||
using System.Text;
|
||||
|
||||
namespace StgSharp.Math
|
||||
{
|
||||
public static partial class Calc
|
||||
{
|
||||
/*本方法将小数部分统一提升至2^16处后进行线性近似
|
||||
const uint sqmov = 0b_0100_0111_1000_0000_0000_0000_0000_0000;
|
||||
const float sqmov1 = 0.0015947f;
|
||||
const float sqmov2 = 156.7673435f;
|
||||
const float sqmov3 = 261.2776027f;
|
||||
/**/
|
||||
public static unsafe float Sqrt(float x)
|
||||
{
|
||||
/*
|
||||
@@ -21,10 +12,9 @@ namespace StgSharp.Math
|
||||
* (补充:指数最低位被加到小数位中以抵消一个多余的2 ^ 1的影响)
|
||||
* 小数部分则统一乘以2 ^ 16后由y = Sqrt(x)在1.5 * 2 ^ 16处的切线近似
|
||||
* 为简化操作,提高计算速度,切线左界被移动到远点
|
||||
* 在进一步简化操作后,计算精度达到0.5%,速度约为.Net库函数的1.8倍
|
||||
* 在进一步简化操作后,计算精度达到0.5%,速度约为.Net库函数的3倍
|
||||
*/
|
||||
|
||||
|
||||
if (x < 0)
|
||||
{
|
||||
throw new ArgumentOutOfRangeException();
|
||||
@@ -33,41 +23,54 @@ namespace StgSharp.Math
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
/*
|
||||
* 提取指数位并减去指数位中的127
|
||||
* 由于平方根仅对正数有效
|
||||
* 故不考虑正负号
|
||||
*/
|
||||
/*
|
||||
* 提取指数位并减半
|
||||
* 由于平方根仅对正数有效
|
||||
* 故不考虑正负号
|
||||
*/
|
||||
|
||||
if (x < 0)
|
||||
{
|
||||
throw new ArgumentOutOfRangeException();
|
||||
}
|
||||
if (x == 0)
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
|
||||
//提取指数位并减去指数位中的127
|
||||
//由于平方根仅对正数有效
|
||||
//故不考虑正负号
|
||||
uint a = *(uint*)&x;
|
||||
uint f = a;
|
||||
f >>= 23;
|
||||
f /= 2;
|
||||
f += 64;
|
||||
|
||||
/*
|
||||
* 提取小数位
|
||||
* 由于平方根仅对正数有效
|
||||
* 故不考虑正负号
|
||||
*/
|
||||
//提取小数位
|
||||
//由于平方根仅对正数有效
|
||||
//故不考虑正负号
|
||||
|
||||
a -= 0b_0011_1111_0000_0000_0000_0000_0000_0000;
|
||||
uint e = a << 8;
|
||||
e >>= 8;
|
||||
|
||||
/*线性近似*/
|
||||
//线性近似
|
||||
e *= 0b_1101_0001;
|
||||
e >>= 24;
|
||||
e += 0b_0000_0000_0001_0000_1010_1000_1110_0010;
|
||||
|
||||
/*还原指数*/
|
||||
//还原指数
|
||||
f <<= 23;
|
||||
e += f;
|
||||
|
||||
float result = *(float*)&e;
|
||||
result = (result + x / result) / 2;
|
||||
return (result + x / result) / 2;
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
@@ -73,8 +73,6 @@ namespace StgSharp.Math
|
||||
);
|
||||
}
|
||||
|
||||
|
||||
|
||||
public static Colum2D operator *(Colum2D colum, float x)
|
||||
{
|
||||
return new Colum2D(colum.X * x,colum.Y * x);
|
||||
|
||||
@@ -771,7 +771,6 @@ namespace StgSharp.Math
|
||||
}
|
||||
|
||||
|
||||
|
||||
public static unsafe Matrix4x2 multiple(this Matrix4x2 matrix1, Matrix2x2 matrix2)
|
||||
{
|
||||
float* p = &matrix1.row1.X;
|
||||
@@ -845,7 +844,7 @@ namespace StgSharp.Math
|
||||
);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// <summary>
|
||||
///
|
||||
/// </summary>
|
||||
/// <param name="matrix1"></param>
|
||||
@@ -911,15 +910,73 @@ namespace StgSharp.Math
|
||||
var a22 = new Colum2D(*(p1 + 8), *(p1 + 11));
|
||||
|
||||
var b1 = new Matrix2x2(*(p2 + 0), *(p2 + 0), *(p2 + 0), *(p2 + 0));
|
||||
var B2 = matrix2.row3;
|
||||
var b2 = matrix2.row3;
|
||||
|
||||
var c1 = a11.multiple(b1) + a12.multiple(b2);
|
||||
var c2 = a21.multiple(b1) + a22.multiple(b2);
|
||||
|
||||
return new Matrix4x2(c1.row1,c1.row2,c2.row1,c2.row2);
|
||||
|
||||
}
|
||||
|
||||
public static unsafe Matrix4x3 multiple(this Matrix4x3 matrix1, Matrix3x3 matrix2)
|
||||
{ }
|
||||
{
|
||||
float* p1 = &matrix1.row1.X;
|
||||
float* p2 = &matrix2.row1.X;
|
||||
|
||||
var a11 = new Matrix2x2(*(p1 + 0), *(p1 + 1), *(p1 + 3), *(p1 + 4));
|
||||
var a12 = new Colum2D(*(p1 + 2), *(p1 + 5));
|
||||
var a21 = new Matrix2x2(*(p1 + 6), *(p1 + 7), *(p1 + 9), *(p1 + 10));
|
||||
var a22 = new Colum2D(*(p1 + 8), *(p1 + 11));
|
||||
|
||||
var b11 = new Matrix2x2(*(p2 + 0), *(p2 + 1), *(p2 + 3), *(p2 + 4));
|
||||
var b12 = new Colum2D(*(p2 + 2), *(p2 + 5));
|
||||
var b21 = new Vec2D(*(p2 + 9), *(p2 + 10));
|
||||
var b22 = matrix2.row3.Z;
|
||||
|
||||
var c11 = a11.multiple(b11) + a12.multiple(b21);
|
||||
var c12 = a11.multiple(b12) + a12 * b22;
|
||||
var c21 = a21.multiple(b11) + a22.multiple(b21);
|
||||
var c22 = a21.multiple(b12) + a22 * b22;
|
||||
|
||||
float* p3 = &c11.row1.X;
|
||||
float* p4 = &c21.row1.X;
|
||||
|
||||
return new Matrix4x3(
|
||||
*(p3 + 0), *(p3 + 1),c12.X,
|
||||
*(p3 + 2), *(p3 + 3),c12.Y,
|
||||
*(p4 + 0), *(p4 + 1),c22.X,
|
||||
*(p4 + 2), *(p4 + 3),c22.Y
|
||||
);
|
||||
}
|
||||
|
||||
public static unsafe Matrix4x4 multiple(this Matrix4x3 matrix1, Matrix3x4 matrix2)
|
||||
{ }
|
||||
{
|
||||
float* p1 = &matrix1.row1.X;
|
||||
float* p2 = &matrix2.row1.X;
|
||||
|
||||
var a11 = new Matrix2x2(*(p1 + 0), *(p1 + 1), *(p1 + 3), *(p1 + 4));
|
||||
var a12 = new Colum2D(*(p1 + 2), *(p1 + 5));
|
||||
var a21 = new Matrix2x2(*(p1 + 6), *(p1 + 7), *(p1 + 9), *(p1 + 10));
|
||||
var a22 = new Colum2D(*(p1 + 8), *(p1 + 11));
|
||||
|
||||
var b11 = new Matrix2x2(*(p2 + 0), *(p2 + 1), *(p2 + 4), *(p2 + 5));
|
||||
var b12 = new Matrix2x2(*(p2 + 2), *(p2 + 3), *(p2 + 6), *(p2 + 7));
|
||||
var b21 = matrix2.row3.Point1;
|
||||
var b22 = matrix2.row3.Point2;
|
||||
|
||||
var c11 = a11.multiple(b11) + a12.multiple(b21);
|
||||
var c12 = a11.multiple(b12) + a12.multiple(b22);
|
||||
var c21 = a21.multiple(b11) + a22.multiple(b21);
|
||||
var c22 = a21.multiple(b12) + a22.multiple(b22);
|
||||
|
||||
return new Matrix4x4(
|
||||
new Vec4D(c11.row1, c12.row1),
|
||||
new Vec4D(c11.row2, c12.row2),
|
||||
new Vec4D(c21.row1, c22.row1),
|
||||
new Vec4D(c21.row2, c22.row2)
|
||||
);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
///
|
||||
|
||||
Binary file not shown.
Binary file not shown.
@@ -19,13 +19,6 @@
|
||||
<param name="x"></param>
|
||||
<returns></returns>
|
||||
</member>
|
||||
<member name="M:StgSharp.Math.Calc.GetBits32(System.Single)">
|
||||
<summary>
|
||||
Get the bits of a float number
|
||||
</summary>
|
||||
<param name="x">The given float number</param>
|
||||
<returns></returns>
|
||||
</member>
|
||||
<member name="M:StgSharp.Math.Calc.Log(System.Single)">
|
||||
<summary>
|
||||
|
||||
@@ -179,6 +172,14 @@
|
||||
<param name="matrix2"></param>
|
||||
<returns></returns>
|
||||
</member>
|
||||
<member name="M:StgSharp.Math.VectorCalc.multiple(StgSharp.Math.Matrix3x2,StgSharp.Math.Matrix2x2)">
|
||||
<summary>
|
||||
|
||||
</summary>
|
||||
<param name="matrix1"></param>
|
||||
<param name="matrix2"></param>
|
||||
<returns></returns>
|
||||
</member>
|
||||
<member name="M:StgSharp.Math.VectorCalc.multiple(StgSharp.Math.Matrix3x2,StgSharp.Math.Matrix2x3)">
|
||||
<summary>
|
||||
|
||||
|
||||
@@ -1 +1 @@
|
||||
0b8c0a7b886549f6ada3150538cfdb0d2275591c
|
||||
3a9e429a025cbd1bcea4abf9fbdb2cf05dc117a7
|
||||
|
||||
Binary file not shown.
Binary file not shown.
@@ -19,13 +19,6 @@
|
||||
<param name="x"></param>
|
||||
<returns></returns>
|
||||
</member>
|
||||
<member name="M:StgSharp.Math.Calc.GetBits32(System.Single)">
|
||||
<summary>
|
||||
Get the bits of a float number
|
||||
</summary>
|
||||
<param name="x">The given float number</param>
|
||||
<returns></returns>
|
||||
</member>
|
||||
<member name="M:StgSharp.Math.Calc.Log(System.Single)">
|
||||
<summary>
|
||||
|
||||
@@ -179,6 +172,14 @@
|
||||
<param name="matrix2"></param>
|
||||
<returns></returns>
|
||||
</member>
|
||||
<member name="M:StgSharp.Math.VectorCalc.multiple(StgSharp.Math.Matrix3x2,StgSharp.Math.Matrix2x2)">
|
||||
<summary>
|
||||
|
||||
</summary>
|
||||
<param name="matrix1"></param>
|
||||
<param name="matrix2"></param>
|
||||
<returns></returns>
|
||||
</member>
|
||||
<member name="M:StgSharp.Math.VectorCalc.multiple(StgSharp.Math.Matrix3x2,StgSharp.Math.Matrix2x3)">
|
||||
<summary>
|
||||
|
||||
|
||||
Binary file not shown.
Binary file not shown.
@@ -7,17 +7,43 @@ internal class Program
|
||||
{
|
||||
private unsafe static void Main(string[] args)
|
||||
{
|
||||
var a = new Matrix3x2(1, 2, 3, 4, 5, 6);
|
||||
var b = new Matrix2x2(1, 2, 3, 4);
|
||||
var c = new Colum2D(1, 2);
|
||||
var d = new Vec2D(1, 2);
|
||||
var e = new Vec3D(1,2,3);
|
||||
var f = new Matrix2x2(1,2,3,4);
|
||||
|
||||
float a = MathF.Sqrt(10.00f) ;
|
||||
Console.WriteLine(a);
|
||||
Console.WriteLine("\n");
|
||||
Console.WriteLine(a.multiple(b));
|
||||
|
||||
|
||||
|
||||
/*
|
||||
double time;
|
||||
TimeSpan span;
|
||||
|
||||
|
||||
for (int i = 0; i < 1000; i++)
|
||||
{
|
||||
Stopwatch stopwatch01 = Stopwatch.StartNew();
|
||||
stopwatch01.Start();
|
||||
for (int t = 0; t < 1000000; t++)
|
||||
{
|
||||
float a = Calc.Sqrt(t);
|
||||
}
|
||||
stopwatch01.Stop();
|
||||
span = stopwatch01.Elapsed;
|
||||
time = span.TotalMilliseconds;
|
||||
Console.WriteLine(time);
|
||||
|
||||
Stopwatch stopwatch02 = new Stopwatch();
|
||||
stopwatch02.Start();
|
||||
for (int t = 0; t < 1000000; t++)
|
||||
{
|
||||
float a = MathF.Sqrt(t);
|
||||
}
|
||||
stopwatch02.Stop();
|
||||
span = stopwatch02.Elapsed;
|
||||
time = span.TotalMilliseconds;
|
||||
Console.WriteLine(time);
|
||||
|
||||
}
|
||||
*/
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Binary file not shown.
Binary file not shown.
@@ -19,13 +19,6 @@
|
||||
<param name="x"></param>
|
||||
<returns></returns>
|
||||
</member>
|
||||
<member name="M:StgSharp.Math.Calc.GetBits32(System.Single)">
|
||||
<summary>
|
||||
Get the bits of a float number
|
||||
</summary>
|
||||
<param name="x">The given float number</param>
|
||||
<returns></returns>
|
||||
</member>
|
||||
<member name="M:StgSharp.Math.Calc.Log(System.Single)">
|
||||
<summary>
|
||||
|
||||
@@ -179,6 +172,14 @@
|
||||
<param name="matrix2"></param>
|
||||
<returns></returns>
|
||||
</member>
|
||||
<member name="M:StgSharp.Math.VectorCalc.multiple(StgSharp.Math.Matrix3x2,StgSharp.Math.Matrix2x2)">
|
||||
<summary>
|
||||
|
||||
</summary>
|
||||
<param name="matrix1"></param>
|
||||
<param name="matrix2"></param>
|
||||
<returns></returns>
|
||||
</member>
|
||||
<member name="M:StgSharp.Math.VectorCalc.multiple(StgSharp.Math.Matrix3x2,StgSharp.Math.Matrix2x3)">
|
||||
<summary>
|
||||
|
||||
|
||||
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Reference in New Issue
Block a user