This repository was archived by the owner on Jan 23, 2023. It is now read-only.
- Notifications
You must be signed in to change notification settings - Fork2.6k
Implement the SSE hardware intrinsics.#15538
Merged
Uh oh!
There was an error while loading.Please reload this page.
Merged
Changes from1 commit
Commits
Show all changes
32 commits Select commitHold shift + click to select a range
bd56bb3 Adding the remaining SSE intrinsics to hwintrinsiclistxarch.h
tannergoodingadadee1 Adding support for the SSE And, AndNot, Divide, Max, Min, MoveHighToL…
tannergooding1cb5722 Adding tests for the And, AndNot, Divide, Max, Min, MoveHighToLow, Mo…
tannergooding402550c Adding support for the SSE compare eq, gt, ge, lt, le, ne, ord, and u…
tannergooding77fa074 Adding tests for the SSE compare eq, gt, ge, lt, le, ne, ord, and uno…
tannergooding91c7550 Adding support for the SSE Reciprocal, ReciprocalSqrt, and Sqrt intri…
tannergoodingc09ad38 Adding tests for the SSE Reciprocal, ReciprocalSqrt, and Sqrt intrinsics
tannergooding3f115ef Adding support for the SSE Set, SetAll, and SetZero intrinsics
tannergoodingfbc91fc Adding tests for the SSE Set, SetAll, and SetZero intrinsics
tannergooding94f82fb Adding support for the SSE Shuffle intrinsic
tannergooding9e54585 Adding tests for the SSE Shuffle intrinsic
tannergooding224b8dc Adding support for the SSE StaticCast intrinsic
tannergooding1283d87 Adding tests for the SSE StaticCast intrinsic
tannergoodingbfc992e Adding support for the SSE Add, Divide, Max, Min, Move, Multiply, and…
tannergooding38af536 Adding tests for the SSE Add, Divide, Max, Min, Move, Multiply, and S…
tannergoodingeaf9aef Adding support for the SSE compare eq, gt, ge, lt, le, ne, ord, and u…
tannergoodingcd60a85 Adding tests for the SSE compare eq, gt, ge, lt, le, ne, ord, and uno…
tannergooding3fcdaf8 Adding support for the SSE Reciprocal, ReciprocalSqrt, and Sqrt scala…
tannergoodingdb75c98 Adding tests for the SSE Reciprocal, ReciprocalSqrt, and Sqrt scalar …
tannergoodinge84b55e Adding support for the SSE ConvertTo Int32, Int32WithTruncation, Int6…
tannergooding2a256bd Adding tests for the SSE ConvertTo Int32, Int32WithTruncation, Int64W…
tannergooding887d5c4 Adding support for the SSE Compare<op>Ordered and Compare<op>Unordere…
tannergooding0817912 Adding tests for the SSE Compare<op>Ordered and Compare<op>Unordered …
tannergooding5ef844b Adding support for the SSE Set scalar intrinsic
tannergoodingdee8fb7 Adding tests for the SSE Set scalar intrinsic
tannergoodingbaeed0c Adding support for the SSE MoveMask intrinsic
tannergooding51a1a59 Adding tests for the SSE MoveMask intrinsic
tannergoodinga15aa12 Updating the SSE HWIntrinsics to share code where possible.
tannergooding5ca9417 Updating most of the SSE Compare intrinsics to support containment
tannergooding677c5c3 Adding support for the SSE Load, LoadAligned, LoadHigh, LoadLow, and …
tannergooding11b6ac8 Adding tests for the SSE Load, LoadAligned, LoadHigh, LoadLow, and Lo…
tannergoodinga8db845 Resolving PR feedback
tannergoodingFile filter
Filter by extension
Conversations
Failed to load comments.
Loading
Uh oh!
There was an error while loading.Please reload this page.
Jump to
Jump to file
Failed to load files.
Loading
Uh oh!
There was an error while loading.Please reload this page.
Diff view
Diff view
Adding tests for the SSE ConvertTo Int32, Int32WithTruncation, Int64W…
…ithTruncation, Single, and Vector128Single scalar intrinsics
- Loading branch information
Uh oh!
There was an error while loading.Please reload this page.
commit2a256bd066b980e39a96c8fbc217131bb2f88ee5
There are no files selected for viewing
63 changes: 63 additions & 0 deletionstests/src/JIT/HardwareIntrinsics/X86/Sse/ConvertToInt32.cs
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,63 @@ | ||
| // Licensed to the .NET Foundation under one or more agreements. | ||
| // The .NET Foundation licenses this file to you under the MIT license. | ||
| // See the LICENSE file in the project root for more information. | ||
| // | ||
| using System; | ||
| using System.Runtime.CompilerServices; | ||
| using System.Runtime.InteropServices; | ||
| using System.Runtime.Intrinsics.X86; | ||
| using System.Runtime.Intrinsics; | ||
| namespace IntelHardwareIntrinsicTest | ||
| { | ||
| class Program | ||
| { | ||
| const int Pass = 100; | ||
| const int Fail = 0; | ||
| static unsafe int Main(string[] args) | ||
| { | ||
| int testResult = Pass; | ||
| if (Sse.IsSupported) | ||
| { | ||
| using (TestTable<float> floatTable = new TestTable<float>(new float[4] { 1, -5, 100, 0 })) | ||
| { | ||
| var vf1 = Unsafe.Read<Vector128<float>>(floatTable.inArrayPtr); | ||
| var i2 = Sse.ConvertToInt32(vf1); | ||
| if (i2 != ((int)floatTable.inArray[0])) | ||
| { | ||
| Console.WriteLine("SSE ConvertToInt32 failed on float:"); | ||
| Console.WriteLine(i2); | ||
| testResult = Fail; | ||
| } | ||
| } | ||
| } | ||
| return testResult; | ||
| } | ||
| public unsafe struct TestTable<T> : IDisposable where T : struct | ||
| { | ||
| public T[] inArray; | ||
| public void* inArrayPtr => inHandle.AddrOfPinnedObject().ToPointer(); | ||
| GCHandle inHandle; | ||
| public TestTable(T[] a) | ||
| { | ||
| this.inArray = a; | ||
| inHandle = GCHandle.Alloc(inArray, GCHandleType.Pinned); | ||
| } | ||
| public void Dispose() | ||
| { | ||
| inHandle.Free(); | ||
| } | ||
| } | ||
| } | ||
| } |
63 changes: 63 additions & 0 deletionstests/src/JIT/HardwareIntrinsics/X86/Sse/ConvertToInt32WithTruncation.cs
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,63 @@ | ||
| // Licensed to the .NET Foundation under one or more agreements. | ||
| // The .NET Foundation licenses this file to you under the MIT license. | ||
| // See the LICENSE file in the project root for more information. | ||
| // | ||
| using System; | ||
| using System.Runtime.CompilerServices; | ||
| using System.Runtime.InteropServices; | ||
| using System.Runtime.Intrinsics.X86; | ||
| using System.Runtime.Intrinsics; | ||
| namespace IntelHardwareIntrinsicTest | ||
| { | ||
| class Program | ||
| { | ||
| const int Pass = 100; | ||
| const int Fail = 0; | ||
| static unsafe int Main(string[] args) | ||
| { | ||
| int testResult = Pass; | ||
| if (Sse.IsSupported) | ||
| { | ||
| using (TestTable<float> floatTable = new TestTable<float>(new float[4] { 1, -5, 100, 0 })) | ||
| { | ||
| var vf1 = Unsafe.Read<Vector128<float>>(floatTable.inArrayPtr); | ||
| var i2 = Sse.ConvertToInt32WithTruncation(vf1); | ||
| if (i2 != ((int)floatTable.inArray[0])) | ||
| { | ||
| Console.WriteLine("SSE ConvertToInt32WithTruncation failed on float:"); | ||
| Console.WriteLine(i2); | ||
| testResult = Fail; | ||
| } | ||
| } | ||
| } | ||
| return testResult; | ||
| } | ||
| public unsafe struct TestTable<T> : IDisposable where T : struct | ||
| { | ||
| public T[] inArray; | ||
| public void* inArrayPtr => inHandle.AddrOfPinnedObject().ToPointer(); | ||
| GCHandle inHandle; | ||
| public TestTable(T[] a) | ||
| { | ||
| this.inArray = a; | ||
| inHandle = GCHandle.Alloc(inArray, GCHandleType.Pinned); | ||
| } | ||
| public void Dispose() | ||
| { | ||
| inHandle.Free(); | ||
| } | ||
| } | ||
| } | ||
| } |
34 changes: 34 additions & 0 deletionstests/src/JIT/HardwareIntrinsics/X86/Sse/ConvertToInt32WithTruncation_r.csproj
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,34 @@ | ||
| <?xml version="1.0" encoding="utf-8"?> | ||
| <Project ToolsVersion="12.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> | ||
| <Import Project="$([MSBuild]::GetDirectoryNameOfFileAbove($(MSBuildThisFileDirectory), dir.props))\dir.props" /> | ||
| <PropertyGroup> | ||
| <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration> | ||
| <Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform> | ||
| <SchemaVersion>2.0</SchemaVersion> | ||
| <ProjectGuid>{95DFC527-4DC1-495E-97D7-E94EE1F7140D}</ProjectGuid> | ||
| <OutputType>Exe</OutputType> | ||
| <ProjectTypeGuids>{786C830F-07A1-408B-BD7F-6EE04809D6DB};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}</ProjectTypeGuids> | ||
| <SolutionDir Condition="$(SolutionDir) == '' Or $(SolutionDir) == '*Undefined*'">..\..\</SolutionDir> | ||
| <AllowUnsafeBlocks>true</AllowUnsafeBlocks> | ||
| </PropertyGroup> | ||
| <!-- Default configurations to help VS understand the configurations --> | ||
| <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' "></PropertyGroup> | ||
| <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' " /> | ||
| <ItemGroup> | ||
| <CodeAnalysisDependentAssemblyPaths Condition=" '$(VS100COMNTOOLS)' != '' " Include="$(VS100COMNTOOLS)..\IDE\PrivateAssemblies"> | ||
| <Visible>False</Visible> | ||
| </CodeAnalysisDependentAssemblyPaths> | ||
| </ItemGroup> | ||
| <PropertyGroup> | ||
| <DebugType>None</DebugType> | ||
| <Optimize></Optimize> | ||
| </PropertyGroup> | ||
| <ItemGroup> | ||
| <Service Include="{82A7F48D-3B50-4B1E-B82E-3ADA8210C358}" /> | ||
| </ItemGroup> | ||
| <ItemGroup> | ||
| <Compile Include="ConvertToInt32WithTruncation.cs" /> | ||
| </ItemGroup> | ||
| <Import Project="$([MSBuild]::GetDirectoryNameOfFileAbove($(MSBuildThisFileDirectory), dir.targets))\dir.targets" /> | ||
| <PropertyGroup Condition=" '$(MsBuildProjectDirOverride)' != '' "></PropertyGroup> | ||
| </Project> |
34 changes: 34 additions & 0 deletionstests/src/JIT/HardwareIntrinsics/X86/Sse/ConvertToInt32WithTruncation_ro.csproj
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,34 @@ | ||
| <?xml version="1.0" encoding="utf-8"?> | ||
| <Project ToolsVersion="12.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> | ||
| <Import Project="$([MSBuild]::GetDirectoryNameOfFileAbove($(MSBuildThisFileDirectory), dir.props))\dir.props" /> | ||
| <PropertyGroup> | ||
| <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration> | ||
| <Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform> | ||
| <SchemaVersion>2.0</SchemaVersion> | ||
| <ProjectGuid>{95DFC527-4DC1-495E-97D7-E94EE1F7140D}</ProjectGuid> | ||
| <OutputType>Exe</OutputType> | ||
| <ProjectTypeGuids>{786C830F-07A1-408B-BD7F-6EE04809D6DB};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}</ProjectTypeGuids> | ||
| <SolutionDir Condition="$(SolutionDir) == '' Or $(SolutionDir) == '*Undefined*'">..\..\</SolutionDir> | ||
| <AllowUnsafeBlocks>true</AllowUnsafeBlocks> | ||
| </PropertyGroup> | ||
| <!-- Default configurations to help VS understand the configurations --> | ||
| <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' "></PropertyGroup> | ||
| <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' " /> | ||
| <ItemGroup> | ||
| <CodeAnalysisDependentAssemblyPaths Condition=" '$(VS100COMNTOOLS)' != '' " Include="$(VS100COMNTOOLS)..\IDE\PrivateAssemblies"> | ||
| <Visible>False</Visible> | ||
| </CodeAnalysisDependentAssemblyPaths> | ||
| </ItemGroup> | ||
| <PropertyGroup> | ||
| <DebugType>None</DebugType> | ||
| <Optimize>True</Optimize> | ||
| </PropertyGroup> | ||
| <ItemGroup> | ||
| <Service Include="{82A7F48D-3B50-4B1E-B82E-3ADA8210C358}" /> | ||
| </ItemGroup> | ||
| <ItemGroup> | ||
| <Compile Include="ConvertToInt32WithTruncation.cs" /> | ||
| </ItemGroup> | ||
| <Import Project="$([MSBuild]::GetDirectoryNameOfFileAbove($(MSBuildThisFileDirectory), dir.targets))\dir.targets" /> | ||
| <PropertyGroup Condition=" '$(MsBuildProjectDirOverride)' != '' "></PropertyGroup> | ||
| </Project> |
34 changes: 34 additions & 0 deletionstests/src/JIT/HardwareIntrinsics/X86/Sse/ConvertToInt32_r.csproj
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,34 @@ | ||
| <?xml version="1.0" encoding="utf-8"?> | ||
| <Project ToolsVersion="12.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> | ||
| <Import Project="$([MSBuild]::GetDirectoryNameOfFileAbove($(MSBuildThisFileDirectory), dir.props))\dir.props" /> | ||
| <PropertyGroup> | ||
| <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration> | ||
| <Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform> | ||
| <SchemaVersion>2.0</SchemaVersion> | ||
| <ProjectGuid>{95DFC527-4DC1-495E-97D7-E94EE1F7140D}</ProjectGuid> | ||
| <OutputType>Exe</OutputType> | ||
| <ProjectTypeGuids>{786C830F-07A1-408B-BD7F-6EE04809D6DB};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}</ProjectTypeGuids> | ||
| <SolutionDir Condition="$(SolutionDir) == '' Or $(SolutionDir) == '*Undefined*'">..\..\</SolutionDir> | ||
| <AllowUnsafeBlocks>true</AllowUnsafeBlocks> | ||
| </PropertyGroup> | ||
| <!-- Default configurations to help VS understand the configurations --> | ||
| <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' "></PropertyGroup> | ||
| <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' " /> | ||
| <ItemGroup> | ||
| <CodeAnalysisDependentAssemblyPaths Condition=" '$(VS100COMNTOOLS)' != '' " Include="$(VS100COMNTOOLS)..\IDE\PrivateAssemblies"> | ||
| <Visible>False</Visible> | ||
| </CodeAnalysisDependentAssemblyPaths> | ||
| </ItemGroup> | ||
| <PropertyGroup> | ||
| <DebugType>None</DebugType> | ||
| <Optimize></Optimize> | ||
| </PropertyGroup> | ||
| <ItemGroup> | ||
| <Service Include="{82A7F48D-3B50-4B1E-B82E-3ADA8210C358}" /> | ||
| </ItemGroup> | ||
| <ItemGroup> | ||
| <Compile Include="ConvertToInt32.cs" /> | ||
| </ItemGroup> | ||
| <Import Project="$([MSBuild]::GetDirectoryNameOfFileAbove($(MSBuildThisFileDirectory), dir.targets))\dir.targets" /> | ||
| <PropertyGroup Condition=" '$(MsBuildProjectDirOverride)' != '' "></PropertyGroup> | ||
| </Project> |
34 changes: 34 additions & 0 deletionstests/src/JIT/HardwareIntrinsics/X86/Sse/ConvertToInt32_ro.csproj
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,34 @@ | ||
| <?xml version="1.0" encoding="utf-8"?> | ||
| <Project ToolsVersion="12.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> | ||
| <Import Project="$([MSBuild]::GetDirectoryNameOfFileAbove($(MSBuildThisFileDirectory), dir.props))\dir.props" /> | ||
| <PropertyGroup> | ||
| <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration> | ||
| <Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform> | ||
| <SchemaVersion>2.0</SchemaVersion> | ||
| <ProjectGuid>{95DFC527-4DC1-495E-97D7-E94EE1F7140D}</ProjectGuid> | ||
| <OutputType>Exe</OutputType> | ||
| <ProjectTypeGuids>{786C830F-07A1-408B-BD7F-6EE04809D6DB};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}</ProjectTypeGuids> | ||
| <SolutionDir Condition="$(SolutionDir) == '' Or $(SolutionDir) == '*Undefined*'">..\..\</SolutionDir> | ||
| <AllowUnsafeBlocks>true</AllowUnsafeBlocks> | ||
| </PropertyGroup> | ||
| <!-- Default configurations to help VS understand the configurations --> | ||
| <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' "></PropertyGroup> | ||
| <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' " /> | ||
| <ItemGroup> | ||
| <CodeAnalysisDependentAssemblyPaths Condition=" '$(VS100COMNTOOLS)' != '' " Include="$(VS100COMNTOOLS)..\IDE\PrivateAssemblies"> | ||
| <Visible>False</Visible> | ||
| </CodeAnalysisDependentAssemblyPaths> | ||
| </ItemGroup> | ||
| <PropertyGroup> | ||
| <DebugType>None</DebugType> | ||
| <Optimize>True</Optimize> | ||
| </PropertyGroup> | ||
| <ItemGroup> | ||
| <Service Include="{82A7F48D-3B50-4B1E-B82E-3ADA8210C358}" /> | ||
| </ItemGroup> | ||
| <ItemGroup> | ||
| <Compile Include="ConvertToInt32.cs" /> | ||
| </ItemGroup> | ||
| <Import Project="$([MSBuild]::GetDirectoryNameOfFileAbove($(MSBuildThisFileDirectory), dir.targets))\dir.targets" /> | ||
| <PropertyGroup Condition=" '$(MsBuildProjectDirOverride)' != '' "></PropertyGroup> | ||
| </Project> |
73 changes: 73 additions & 0 deletionstests/src/JIT/HardwareIntrinsics/X86/Sse/ConvertToInt64.cs
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,73 @@ | ||
| // Licensed to the .NET Foundation under one or more agreements. | ||
| // The .NET Foundation licenses this file to you under the MIT license. | ||
| // See the LICENSE file in the project root for more information. | ||
| // | ||
| using System; | ||
| using System.Runtime.CompilerServices; | ||
| using System.Runtime.InteropServices; | ||
| using System.Runtime.Intrinsics.X86; | ||
| using System.Runtime.Intrinsics; | ||
| namespace IntelHardwareIntrinsicTest | ||
| { | ||
| class Program | ||
| { | ||
| const int Pass = 100; | ||
| const int Fail = 0; | ||
| static unsafe int Main(string[] args) | ||
| { | ||
| int testResult = Pass; | ||
| if (Sse.IsSupported) | ||
| { | ||
| try | ||
| { | ||
| using (TestTable<float> floatTable = new TestTable<float>(new float[4] { 1, -5, 100, 0 })) | ||
| { | ||
| var vf1 = Unsafe.Read<Vector128<float>>(floatTable.inArrayPtr); | ||
| var l2 = Sse.ConvertToInt64(vf1); | ||
| if (l2 != ((long)floatTable.inArray[0])) | ||
| { | ||
| Console.WriteLine("SSE ConvertToInt64 failed on float:"); | ||
| Console.WriteLine(l2); | ||
| testResult = Fail; | ||
| } | ||
| } | ||
| } | ||
| catch (PlatformNotSupportedException) | ||
| { | ||
| if (Environment.Is64BitProcess) | ||
| { | ||
| testResult = Fail; | ||
| } | ||
| } | ||
| } | ||
| return testResult; | ||
| } | ||
| public unsafe struct TestTable<T> : IDisposable where T : struct | ||
| { | ||
| public T[] inArray; | ||
| public void* inArrayPtr => inHandle.AddrOfPinnedObject().ToPointer(); | ||
| GCHandle inHandle; | ||
| public TestTable(T[] a) | ||
| { | ||
| this.inArray = a; | ||
| inHandle = GCHandle.Alloc(inArray, GCHandleType.Pinned); | ||
| } | ||
| public void Dispose() | ||
| { | ||
| inHandle.Free(); | ||
| } | ||
| } | ||
| } | ||
| } |
Oops, something went wrong.
Uh oh!
There was an error while loading.Please reload this page.
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.