summaryrefslogtreecommitdiff
path: root/tests
diff options
context:
space:
mode:
authorBruce Forstall <brucefo@microsoft.com>2017-04-04 13:20:32 -0700
committerGitHub <noreply@github.com>2017-04-04 13:20:32 -0700
commit5887e3ac69a15089bd51674c3a943a2133d3841d (patch)
tree7521f7be61215361734fef4605d36aabdd5e9bc4 /tests
parent3bf3915549eaa3c475f9dd899d9a6265dcde9908 (diff)
parent20917a1ece166167734f3ece02882e3c444da121 (diff)
downloadcoreclr-5887e3ac69a15089bd51674c3a943a2133d3841d.tar.gz
coreclr-5887e3ac69a15089bd51674c3a943a2133d3841d.tar.bz2
coreclr-5887e3ac69a15089bd51674c3a943a2133d3841d.zip
Merge pull request #10609 from alpencolt/ryu-arm-locallock
[RyuJIT/ARM32] Localloc implementation in codegen
Diffstat (limited to 'tests')
-rw-r--r--tests/src/AllTestProjects.sln30
-rw-r--r--tests/src/JIT/CodeGenBringUpTests/LocallocB_N.cs68
-rw-r--r--tests/src/JIT/CodeGenBringUpTests/LocallocB_N.csproj33
-rw-r--r--tests/src/JIT/CodeGenBringUpTests/LocallocB_N_PSP.cs77
-rw-r--r--tests/src/JIT/CodeGenBringUpTests/LocallocB_N_PSP.csproj33
-rw-r--r--tests/src/JIT/CodeGenBringUpTests/LocallocCnstB1.cs49
-rw-r--r--tests/src/JIT/CodeGenBringUpTests/LocallocCnstB1.csproj33
-rw-r--r--tests/src/JIT/CodeGenBringUpTests/LocallocCnstB117.cs49
-rw-r--r--tests/src/JIT/CodeGenBringUpTests/LocallocCnstB117.csproj33
-rw-r--r--tests/src/JIT/CodeGenBringUpTests/LocallocCnstB117_PSP.cs59
-rw-r--r--tests/src/JIT/CodeGenBringUpTests/LocallocCnstB117_PSP.csproj33
-rw-r--r--tests/src/JIT/CodeGenBringUpTests/LocallocCnstB1_PSP.cs59
-rw-r--r--tests/src/JIT/CodeGenBringUpTests/LocallocCnstB1_PSP.csproj33
-rw-r--r--tests/src/JIT/CodeGenBringUpTests/LocallocCnstB5.cs49
-rw-r--r--tests/src/JIT/CodeGenBringUpTests/LocallocCnstB5.csproj33
-rw-r--r--tests/src/JIT/CodeGenBringUpTests/LocallocCnstB5001.cs49
-rw-r--r--tests/src/JIT/CodeGenBringUpTests/LocallocCnstB5001.csproj33
-rw-r--r--tests/src/JIT/CodeGenBringUpTests/LocallocCnstB5001_PSP.cs59
-rw-r--r--tests/src/JIT/CodeGenBringUpTests/LocallocCnstB5001_PSP.csproj33
-rw-r--r--tests/src/JIT/CodeGenBringUpTests/LocallocCnstB5_PSP.cs59
-rw-r--r--tests/src/JIT/CodeGenBringUpTests/LocallocCnstB5_PSP.csproj33
21 files changed, 937 insertions, 0 deletions
diff --git a/tests/src/AllTestProjects.sln b/tests/src/AllTestProjects.sln
index be437ec986..679f2d7804 100644
--- a/tests/src/AllTestProjects.sln
+++ b/tests/src/AllTestProjects.sln
@@ -837,6 +837,26 @@ Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Localloc", "JIT\CodeGenBrin
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "LocallocLarge", "JIT\CodeGenBringUpTests\LocallocLarge.csproj", "{C5578A39-72FF-4D25-99DA-96A8A99C6740}"
EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "LocallocB_N", "JIT\CodeGenBringUpTests\LocallocB_N.csproj", "{38302715-A140-493E-AEF4-3E8F9EE99195}"
+EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "LocallocB_N_PSP", "JIT\CodeGenBringUpTests\LocallocB_N_PSP.csproj", "{6222AF08-F765-44C2-B48C-3C040D62303F}"
+EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "LocallocCnstB117", "JIT\CodeGenBringUpTests\LocallocCnstB117.csproj", "{5A0F2889-91F1-4670-A4AF-9AF0598E22B7}"
+EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "LocallocCnstB117_PSP", "JIT\CodeGenBringUpTests\LocallocCnstB117_PSP.csproj", "{C82D33B6-5779-4E19-8220-1DEA587203B1}"
+EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "LocallocCnstB1", "JIT\CodeGenBringUpTests\LocallocCnstB1.csproj", "{4240086D-0722-4E93-A6DD-BF779715CE73}"
+EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "LocallocCnstB1_PSP", "JIT\CodeGenBringUpTests\LocallocCnstB1_PSP.csproj", "{18F8266B-2F59-4058-8FE6-6B8368CD0D0F}"
+EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "LocallocCnstB5001", "JIT\CodeGenBringUpTests\LocallocCnstB5001.csproj", "{E7B36F3A-CD18-4F21-8898-CA43C5FDEA1E}"
+EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "LocallocCnstB5001_PSP", "JIT\CodeGenBringUpTests\LocallocCnstB5001_PSP.csproj", "{1EB5785A-2050-4AD1-820B-F46CCCC3C65A}"
+EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "LocallocCnstB5", "JIT\CodeGenBringUpTests\LocallocCnstB5.csproj", "{061E4E38-14A9-4305-AD27-5A01A95E9FCE}"
+EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "LocallocCnstB5_PSP", "JIT\CodeGenBringUpTests\LocallocCnstB5_PSP.csproj", "{5F015026-51D0-4EF7-B538-24E8864F31D6}"
+EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "LongArgsAndReturn", "JIT\CodeGenBringUpTests\LongArgsAndReturn.csproj", "{FC3E9CEC-7659-471A-8B2E-8CFB3FBFDB4E}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Lt1", "JIT\CodeGenBringUpTests\Lt1.csproj", "{A7850EBD-6701-473E-8686-99535F0794A6}"
@@ -33450,6 +33470,16 @@ Global
{C6DC8E85-DCD2-49A0-977D-CE9795552632} = {954F04D0-2FFD-4923-BE9A-2F9F58145708}
{8BA7A4A1-EBB6-44CD-828B-F2BA5523691A} = {954F04D0-2FFD-4923-BE9A-2F9F58145708}
{650B07D3-9BC0-4EF8-8557-44200EC13261} = {954F04D0-2FFD-4923-BE9A-2F9F58145708}
+ {38302715-A140-493E-AEF4-3E8F9EE99195} = {954F04D0-2FFD-4923-BE9A-2F9F58145708}
+ {6222AF08-F765-44C2-B48C-3C040D62303F} = {954F04D0-2FFD-4923-BE9A-2F9F58145708}
+ {5A0F2889-91F1-4670-A4AF-9AF0598E22B7} = {954F04D0-2FFD-4923-BE9A-2F9F58145708}
+ {C82D33B6-5779-4E19-8220-1DEA587203B1} = {954F04D0-2FFD-4923-BE9A-2F9F58145708}
+ {4240086D-0722-4E93-A6DD-BF779715CE73} = {954F04D0-2FFD-4923-BE9A-2F9F58145708}
+ {18F8266B-2F59-4058-8FE6-6B8368CD0D0F} = {954F04D0-2FFD-4923-BE9A-2F9F58145708}
+ {E7B36F3A-CD18-4F21-8898-CA43C5FDEA1E} = {954F04D0-2FFD-4923-BE9A-2F9F58145708}
+ {1EB5785A-2050-4AD1-820B-F46CCCC3C65A} = {954F04D0-2FFD-4923-BE9A-2F9F58145708}
+ {061E4E38-14A9-4305-AD27-5A01A95E9FCE} = {954F04D0-2FFD-4923-BE9A-2F9F58145708}
+ {5F015026-51D0-4EF7-B538-24E8864F31D6} = {954F04D0-2FFD-4923-BE9A-2F9F58145708}
{C5578A39-72FF-4D25-99DA-96A8A99C6740} = {954F04D0-2FFD-4923-BE9A-2F9F58145708}
{FC3E9CEC-7659-471A-8B2E-8CFB3FBFDB4E} = {954F04D0-2FFD-4923-BE9A-2F9F58145708}
{A7850EBD-6701-473E-8686-99535F0794A6} = {954F04D0-2FFD-4923-BE9A-2F9F58145708}
diff --git a/tests/src/JIT/CodeGenBringUpTests/LocallocB_N.cs b/tests/src/JIT/CodeGenBringUpTests/LocallocB_N.cs
new file mode 100644
index 0000000000..3d01df6aed
--- /dev/null
+++ b/tests/src/JIT/CodeGenBringUpTests/LocallocB_N.cs
@@ -0,0 +1,68 @@
+// 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;
+public class BringUpTest
+{
+ const int Pass = 100;
+ const int Fail = -1;
+
+ // Reduce all values to byte
+ [MethodImplAttribute(MethodImplOptions.NoInlining)]
+ public static unsafe bool CHECK(byte check, byte expected) {
+ return check == expected;
+ }
+
+ [MethodImplAttribute(MethodImplOptions.NoInlining)]
+ public static unsafe int LocallocB_N(int n)
+ {
+ byte* a = stackalloc byte[n];
+
+ for (int i = 0; i < n; i++)
+ {
+ a[i] = (byte) i;
+ }
+
+ for (int i = 0; i < n; i++)
+ {
+ if (!CHECK(a[i], (byte) i)) return i;
+ }
+
+ return -1;
+ }
+
+ public static int Main()
+ {
+ int ret;
+
+ ret = LocallocB_N(1);
+ if (ret != -1) {
+ Console.WriteLine("LocallocB_N - Test 1: Failed on index: " + ret);
+ return Fail;
+ }
+
+ ret = LocallocB_N(5);
+ if (ret != -1) {
+ Console.WriteLine("LocallocB_N - Test 2: Failed on index: " + ret);
+ return Fail;
+ }
+
+ ret = LocallocB_N(117);
+ if (ret != -1) {
+ Console.WriteLine("LocallocB_N - Test 3: Failed on index: " + ret);
+ return Fail;
+ }
+
+ ret = LocallocB_N(5001);
+ if (ret != -1) {
+ Console.WriteLine("LocallocB_N - Test 4: Failed on index: " + ret);
+ return Fail;
+ }
+
+ return Pass;
+ }
+}
diff --git a/tests/src/JIT/CodeGenBringUpTests/LocallocB_N.csproj b/tests/src/JIT/CodeGenBringUpTests/LocallocB_N.csproj
new file mode 100644
index 0000000000..4b23894e56
--- /dev/null
+++ b/tests/src/JIT/CodeGenBringUpTests/LocallocB_N.csproj
@@ -0,0 +1,33 @@
+<?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>{38302715-A140-493E-AEF4-3E8F9EE99195}</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' ">
+ </PropertyGroup>
+ <ItemGroup>
+ <CodeAnalysisDependentAssemblyPaths Condition=" '$(VS100COMNTOOLS)' != '' " Include="$(VS100COMNTOOLS)..\IDE\PrivateAssemblies">
+ <Visible>False</Visible>
+ </CodeAnalysisDependentAssemblyPaths>
+ </ItemGroup>
+ <ItemGroup>
+ <Service Include="{82A7F48D-3B50-4B1E-B82E-3ADA8210C358}" />
+ </ItemGroup>
+ <ItemGroup>
+ <Compile Include="LocallocB_N.cs" />
+ </ItemGroup>
+ <Import Project="$([MSBuild]::GetDirectoryNameOfFileAbove($(MSBuildThisFileDirectory), dir.targets))\dir.targets" />
+ <PropertyGroup Condition=" '$(MsBuildProjectDirOverride)' != '' ">
+ </PropertyGroup>
+</Project> \ No newline at end of file
diff --git a/tests/src/JIT/CodeGenBringUpTests/LocallocB_N_PSP.cs b/tests/src/JIT/CodeGenBringUpTests/LocallocB_N_PSP.cs
new file mode 100644
index 0000000000..4dd836ec46
--- /dev/null
+++ b/tests/src/JIT/CodeGenBringUpTests/LocallocB_N_PSP.cs
@@ -0,0 +1,77 @@
+// 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;
+public class BringUpTest
+{
+ const int Pass = 100;
+ const int Fail = -1;
+
+ // Reduce all values to byte
+ [MethodImplAttribute(MethodImplOptions.NoInlining)]
+ public static unsafe bool CHECK(byte check, byte expected) {
+ return check == expected;
+ }
+
+ [MethodImplAttribute(MethodImplOptions.NoInlining)]
+ public static unsafe int LocallocB_N_PSP(int n)
+ {
+ byte* a = stackalloc byte[n];
+ int i;
+ for (i = 0; i < n; i++)
+ {
+ a[i] = (byte) i;
+ }
+
+ i = 0;
+ try
+ {
+ for (; i < n; i++)
+ {
+ if (!CHECK(a[i], (byte) i)) return i;
+ }
+ }
+ catch
+ {
+ Console.WriteLine("ERROR!!!");
+ return i;
+ }
+
+ return -1;
+ }
+
+ public static int Main()
+ {
+ int ret;
+
+ ret = LocallocB_N_PSP(1);
+ if (ret != -1) {
+ Console.WriteLine("LocallocB_N_PSP - Test 1: Failed on index: " + ret);
+ return Fail;
+ }
+
+ ret = LocallocB_N_PSP(5);
+ if (ret != -1) {
+ Console.WriteLine("LocallocB_N_PSP - Test 2: Failed on index: " + ret);
+ return Fail;
+ }
+
+ ret = LocallocB_N_PSP(117);
+ if (ret != -1) {
+ Console.WriteLine("LocallocB_N_PSP - Test 3: Failed on index: " + ret);
+ return Fail;
+ }
+
+ ret = LocallocB_N_PSP(5001);
+ if (ret != -1) {
+ Console.WriteLine("LocallocB_N_PSP - Test 4: Failed on index: " + ret);
+ return Fail;
+ }
+
+ return Pass;
+ }
+}
diff --git a/tests/src/JIT/CodeGenBringUpTests/LocallocB_N_PSP.csproj b/tests/src/JIT/CodeGenBringUpTests/LocallocB_N_PSP.csproj
new file mode 100644
index 0000000000..079264cf82
--- /dev/null
+++ b/tests/src/JIT/CodeGenBringUpTests/LocallocB_N_PSP.csproj
@@ -0,0 +1,33 @@
+<?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>{6222AF08-F765-44C2-B48C-3C040D62303F}</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' ">
+ </PropertyGroup>
+ <ItemGroup>
+ <CodeAnalysisDependentAssemblyPaths Condition=" '$(VS100COMNTOOLS)' != '' " Include="$(VS100COMNTOOLS)..\IDE\PrivateAssemblies">
+ <Visible>False</Visible>
+ </CodeAnalysisDependentAssemblyPaths>
+ </ItemGroup>
+ <ItemGroup>
+ <Service Include="{82A7F48D-3B50-4B1E-B82E-3ADA8210C358}" />
+ </ItemGroup>
+ <ItemGroup>
+ <Compile Include="LocallocB_N_PSP.cs" />
+ </ItemGroup>
+ <Import Project="$([MSBuild]::GetDirectoryNameOfFileAbove($(MSBuildThisFileDirectory), dir.targets))\dir.targets" />
+ <PropertyGroup Condition=" '$(MsBuildProjectDirOverride)' != '' ">
+ </PropertyGroup>
+</Project> \ No newline at end of file
diff --git a/tests/src/JIT/CodeGenBringUpTests/LocallocCnstB1.cs b/tests/src/JIT/CodeGenBringUpTests/LocallocCnstB1.cs
new file mode 100644
index 0000000000..59a0db4075
--- /dev/null
+++ b/tests/src/JIT/CodeGenBringUpTests/LocallocCnstB1.cs
@@ -0,0 +1,49 @@
+// 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;
+public class BringUpTest
+{
+ const int Pass = 100;
+ const int Fail = -1;
+
+ // Reduce all values to byte
+ [MethodImplAttribute(MethodImplOptions.NoInlining)]
+ public static unsafe bool CHECK(byte check, byte expected) {
+ return check == expected;
+ }
+
+ [MethodImplAttribute(MethodImplOptions.NoInlining)]
+ public static unsafe int LocallocCnstB1()
+ {
+ byte* a = stackalloc byte[1];
+ for (int i = 0; i < 1; i++)
+ {
+ a[i] = (byte) i;
+ }
+
+ for (int i = 0; i < 1; i++)
+ {
+ if (!CHECK(a[i], (byte) i)) return i;
+ }
+
+ return -1;
+ }
+
+ public static int Main()
+ {
+ int ret;
+
+ ret = LocallocCnstB1();
+ if (ret != -1) {
+ Console.WriteLine("LocallocCnstB1: Failed on index: " + ret);
+ return Fail;
+ }
+
+ return Pass;
+ }
+}
diff --git a/tests/src/JIT/CodeGenBringUpTests/LocallocCnstB1.csproj b/tests/src/JIT/CodeGenBringUpTests/LocallocCnstB1.csproj
new file mode 100644
index 0000000000..669255ec00
--- /dev/null
+++ b/tests/src/JIT/CodeGenBringUpTests/LocallocCnstB1.csproj
@@ -0,0 +1,33 @@
+<?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>{4240086D-0722-4E93-A6DD-BF779715CE73}</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' ">
+ </PropertyGroup>
+ <ItemGroup>
+ <CodeAnalysisDependentAssemblyPaths Condition=" '$(VS100COMNTOOLS)' != '' " Include="$(VS100COMNTOOLS)..\IDE\PrivateAssemblies">
+ <Visible>False</Visible>
+ </CodeAnalysisDependentAssemblyPaths>
+ </ItemGroup>
+ <ItemGroup>
+ <Service Include="{82A7F48D-3B50-4B1E-B82E-3ADA8210C358}" />
+ </ItemGroup>
+ <ItemGroup>
+ <Compile Include="LocallocCnstB1.cs" />
+ </ItemGroup>
+ <Import Project="$([MSBuild]::GetDirectoryNameOfFileAbove($(MSBuildThisFileDirectory), dir.targets))\dir.targets" />
+ <PropertyGroup Condition=" '$(MsBuildProjectDirOverride)' != '' ">
+ </PropertyGroup>
+</Project> \ No newline at end of file
diff --git a/tests/src/JIT/CodeGenBringUpTests/LocallocCnstB117.cs b/tests/src/JIT/CodeGenBringUpTests/LocallocCnstB117.cs
new file mode 100644
index 0000000000..b399379f62
--- /dev/null
+++ b/tests/src/JIT/CodeGenBringUpTests/LocallocCnstB117.cs
@@ -0,0 +1,49 @@
+// 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;
+public class BringUpTest
+{
+ const int Pass = 100;
+ const int Fail = -1;
+
+ // Reduce all values to byte
+ [MethodImplAttribute(MethodImplOptions.NoInlining)]
+ public static unsafe bool CHECK(byte check, byte expected) {
+ return check == expected;
+ }
+
+ [MethodImplAttribute(MethodImplOptions.NoInlining)]
+ public static unsafe int LocallocCnstB117()
+ {
+ byte* a = stackalloc byte[117];
+ for (int i = 0; i < 117; i++)
+ {
+ a[i] = (byte) i;
+ }
+
+ for (int i = 0; i < 117; i++)
+ {
+ if (!CHECK(a[i], (byte) i)) return i;
+ }
+
+ return -1;
+ }
+
+ public static int Main()
+ {
+ int ret;
+
+ ret = LocallocCnstB117();
+ if (ret != -1) {
+ Console.WriteLine("LocallocCnstB117: Failed on index: " + ret);
+ return Fail;
+ }
+
+ return Pass;
+ }
+}
diff --git a/tests/src/JIT/CodeGenBringUpTests/LocallocCnstB117.csproj b/tests/src/JIT/CodeGenBringUpTests/LocallocCnstB117.csproj
new file mode 100644
index 0000000000..239a2e624f
--- /dev/null
+++ b/tests/src/JIT/CodeGenBringUpTests/LocallocCnstB117.csproj
@@ -0,0 +1,33 @@
+<?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>{5A0F2889-91F1-4670-A4AF-9AF0598E22B7}</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' ">
+ </PropertyGroup>
+ <ItemGroup>
+ <CodeAnalysisDependentAssemblyPaths Condition=" '$(VS100COMNTOOLS)' != '' " Include="$(VS100COMNTOOLS)..\IDE\PrivateAssemblies">
+ <Visible>False</Visible>
+ </CodeAnalysisDependentAssemblyPaths>
+ </ItemGroup>
+ <ItemGroup>
+ <Service Include="{82A7F48D-3B50-4B1E-B82E-3ADA8210C358}" />
+ </ItemGroup>
+ <ItemGroup>
+ <Compile Include="LocallocCnstB117.cs" />
+ </ItemGroup>
+ <Import Project="$([MSBuild]::GetDirectoryNameOfFileAbove($(MSBuildThisFileDirectory), dir.targets))\dir.targets" />
+ <PropertyGroup Condition=" '$(MsBuildProjectDirOverride)' != '' ">
+ </PropertyGroup>
+</Project> \ No newline at end of file
diff --git a/tests/src/JIT/CodeGenBringUpTests/LocallocCnstB117_PSP.cs b/tests/src/JIT/CodeGenBringUpTests/LocallocCnstB117_PSP.cs
new file mode 100644
index 0000000000..4518f0a725
--- /dev/null
+++ b/tests/src/JIT/CodeGenBringUpTests/LocallocCnstB117_PSP.cs
@@ -0,0 +1,59 @@
+// 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;
+public class BringUpTest
+{
+ const int Pass = 100;
+ const int Fail = -1;
+
+ // Reduce all values to byte
+ [MethodImplAttribute(MethodImplOptions.NoInlining)]
+ public static unsafe bool CHECK(byte check, byte expected) {
+ return check == expected;
+ }
+
+ [MethodImplAttribute(MethodImplOptions.NoInlining)]
+ public static unsafe int LocallocCnstB117_PSP()
+ {
+ byte* a = stackalloc byte[117];
+ int i;
+ for (i = 0; i < 117; i++)
+ {
+ a[i] = (byte) i;
+ }
+
+ i = 0;
+ try
+ {
+ for (; i < 117; i++)
+ {
+ if (!CHECK(a[i], (byte) i)) return i;
+ }
+ }
+ catch
+ {
+ Console.WriteLine("ERROR!!!");
+ return i;
+ }
+
+ return -1;
+ }
+
+ public static int Main()
+ {
+ int ret;
+
+ ret = LocallocCnstB117_PSP();
+ if (ret != -1) {
+ Console.WriteLine("LocallocCnstB117_PSP: Failed on index: " + ret);
+ return Fail;
+ }
+
+ return Pass;
+ }
+}
diff --git a/tests/src/JIT/CodeGenBringUpTests/LocallocCnstB117_PSP.csproj b/tests/src/JIT/CodeGenBringUpTests/LocallocCnstB117_PSP.csproj
new file mode 100644
index 0000000000..b4dbad35d2
--- /dev/null
+++ b/tests/src/JIT/CodeGenBringUpTests/LocallocCnstB117_PSP.csproj
@@ -0,0 +1,33 @@
+<?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>{C82D33B6-5779-4E19-8220-1DEA587203B1}</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' ">
+ </PropertyGroup>
+ <ItemGroup>
+ <CodeAnalysisDependentAssemblyPaths Condition=" '$(VS100COMNTOOLS)' != '' " Include="$(VS100COMNTOOLS)..\IDE\PrivateAssemblies">
+ <Visible>False</Visible>
+ </CodeAnalysisDependentAssemblyPaths>
+ </ItemGroup>
+ <ItemGroup>
+ <Service Include="{82A7F48D-3B50-4B1E-B82E-3ADA8210C358}" />
+ </ItemGroup>
+ <ItemGroup>
+ <Compile Include="LocallocCnstB117_PSP.cs" />
+ </ItemGroup>
+ <Import Project="$([MSBuild]::GetDirectoryNameOfFileAbove($(MSBuildThisFileDirectory), dir.targets))\dir.targets" />
+ <PropertyGroup Condition=" '$(MsBuildProjectDirOverride)' != '' ">
+ </PropertyGroup>
+</Project> \ No newline at end of file
diff --git a/tests/src/JIT/CodeGenBringUpTests/LocallocCnstB1_PSP.cs b/tests/src/JIT/CodeGenBringUpTests/LocallocCnstB1_PSP.cs
new file mode 100644
index 0000000000..834d1d80f1
--- /dev/null
+++ b/tests/src/JIT/CodeGenBringUpTests/LocallocCnstB1_PSP.cs
@@ -0,0 +1,59 @@
+// 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;
+public class BringUpTest
+{
+ const int Pass = 100;
+ const int Fail = -1;
+
+ // Reduce all values to byte
+ [MethodImplAttribute(MethodImplOptions.NoInlining)]
+ public static unsafe bool CHECK(byte check, byte expected) {
+ return check == expected;
+ }
+
+ [MethodImplAttribute(MethodImplOptions.NoInlining)]
+ public static unsafe int LocallocCnstB1_PSP()
+ {
+ byte* a = stackalloc byte[1];
+ int i;
+ for (i = 0; i < 1; i++)
+ {
+ a[i] = (byte) i;
+ }
+
+ i = 0;
+ try
+ {
+ for (; i < 1; i++)
+ {
+ if (!CHECK(a[i], (byte) i)) return i;
+ }
+ }
+ catch
+ {
+ Console.WriteLine("ERROR!!!");
+ return i;
+ }
+
+ return -1;
+ }
+
+ public static int Main()
+ {
+ int ret;
+
+ ret = LocallocCnstB1_PSP();
+ if (ret != -1) {
+ Console.WriteLine("LocallocCnstB1_PSP: Failed on index: " + ret);
+ return Fail;
+ }
+
+ return Pass;
+ }
+}
diff --git a/tests/src/JIT/CodeGenBringUpTests/LocallocCnstB1_PSP.csproj b/tests/src/JIT/CodeGenBringUpTests/LocallocCnstB1_PSP.csproj
new file mode 100644
index 0000000000..696a5c5cbe
--- /dev/null
+++ b/tests/src/JIT/CodeGenBringUpTests/LocallocCnstB1_PSP.csproj
@@ -0,0 +1,33 @@
+<?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>{18F8266B-2F59-4058-8FE6-6B8368CD0D0F}</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' ">
+ </PropertyGroup>
+ <ItemGroup>
+ <CodeAnalysisDependentAssemblyPaths Condition=" '$(VS100COMNTOOLS)' != '' " Include="$(VS100COMNTOOLS)..\IDE\PrivateAssemblies">
+ <Visible>False</Visible>
+ </CodeAnalysisDependentAssemblyPaths>
+ </ItemGroup>
+ <ItemGroup>
+ <Service Include="{82A7F48D-3B50-4B1E-B82E-3ADA8210C358}" />
+ </ItemGroup>
+ <ItemGroup>
+ <Compile Include="LocallocCnstB1_PSP.cs" />
+ </ItemGroup>
+ <Import Project="$([MSBuild]::GetDirectoryNameOfFileAbove($(MSBuildThisFileDirectory), dir.targets))\dir.targets" />
+ <PropertyGroup Condition=" '$(MsBuildProjectDirOverride)' != '' ">
+ </PropertyGroup>
+</Project> \ No newline at end of file
diff --git a/tests/src/JIT/CodeGenBringUpTests/LocallocCnstB5.cs b/tests/src/JIT/CodeGenBringUpTests/LocallocCnstB5.cs
new file mode 100644
index 0000000000..81c34b4b57
--- /dev/null
+++ b/tests/src/JIT/CodeGenBringUpTests/LocallocCnstB5.cs
@@ -0,0 +1,49 @@
+// 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;
+public class BringUpTest
+{
+ const int Pass = 100;
+ const int Fail = -1;
+
+ // Reduce all values to byte
+ [MethodImplAttribute(MethodImplOptions.NoInlining)]
+ public static unsafe bool CHECK(byte check, byte expected) {
+ return check == expected;
+ }
+
+ [MethodImplAttribute(MethodImplOptions.NoInlining)]
+ public static unsafe int LocallocCnstB5()
+ {
+ byte* a = stackalloc byte[5];
+ for (int i = 0; i < 5; i++)
+ {
+ a[i] = (byte) i;
+ }
+
+ for (int i = 0; i < 5; i++)
+ {
+ if (!CHECK(a[i], (byte) i)) return i;
+ }
+
+ return -1;
+ }
+
+ public static int Main()
+ {
+ int ret;
+
+ ret = LocallocCnstB5();
+ if (ret != -1) {
+ Console.WriteLine("LocallocCnstB5: Failed on index: " + ret);
+ return Fail;
+ }
+
+ return Pass;
+ }
+}
diff --git a/tests/src/JIT/CodeGenBringUpTests/LocallocCnstB5.csproj b/tests/src/JIT/CodeGenBringUpTests/LocallocCnstB5.csproj
new file mode 100644
index 0000000000..7d3c080eb0
--- /dev/null
+++ b/tests/src/JIT/CodeGenBringUpTests/LocallocCnstB5.csproj
@@ -0,0 +1,33 @@
+<?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>{061E4E38-14A9-4305-AD27-5A01A95E9FCE}</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' ">
+ </PropertyGroup>
+ <ItemGroup>
+ <CodeAnalysisDependentAssemblyPaths Condition=" '$(VS100COMNTOOLS)' != '' " Include="$(VS100COMNTOOLS)..\IDE\PrivateAssemblies">
+ <Visible>False</Visible>
+ </CodeAnalysisDependentAssemblyPaths>
+ </ItemGroup>
+ <ItemGroup>
+ <Service Include="{82A7F48D-3B50-4B1E-B82E-3ADA8210C358}" />
+ </ItemGroup>
+ <ItemGroup>
+ <Compile Include="LocallocCnstB5.cs" />
+ </ItemGroup>
+ <Import Project="$([MSBuild]::GetDirectoryNameOfFileAbove($(MSBuildThisFileDirectory), dir.targets))\dir.targets" />
+ <PropertyGroup Condition=" '$(MsBuildProjectDirOverride)' != '' ">
+ </PropertyGroup>
+</Project> \ No newline at end of file
diff --git a/tests/src/JIT/CodeGenBringUpTests/LocallocCnstB5001.cs b/tests/src/JIT/CodeGenBringUpTests/LocallocCnstB5001.cs
new file mode 100644
index 0000000000..27557bd421
--- /dev/null
+++ b/tests/src/JIT/CodeGenBringUpTests/LocallocCnstB5001.cs
@@ -0,0 +1,49 @@
+// 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;
+public class BringUpTest
+{
+ const int Pass = 100;
+ const int Fail = -1;
+
+ // Reduce all values to byte
+ [MethodImplAttribute(MethodImplOptions.NoInlining)]
+ public static unsafe bool CHECK(byte check, byte expected) {
+ return check == expected;
+ }
+
+ [MethodImplAttribute(MethodImplOptions.NoInlining)]
+ public static unsafe int LocallocCnstB5001()
+ {
+ byte* a = stackalloc byte[5001];
+ for (int i = 0; i < 5001; i++)
+ {
+ a[i] = (byte) i;
+ }
+
+ for (int i = 0; i < 5001; i++)
+ {
+ if (!CHECK(a[i], (byte) i)) return i;
+ }
+
+ return -1;
+ }
+
+ public static int Main()
+ {
+ int ret;
+
+ ret = LocallocCnstB5001();
+ if (ret != -1) {
+ Console.WriteLine("LocallocCnstB5001: Failed on index: " + ret);
+ return Fail;
+ }
+
+ return Pass;
+ }
+}
diff --git a/tests/src/JIT/CodeGenBringUpTests/LocallocCnstB5001.csproj b/tests/src/JIT/CodeGenBringUpTests/LocallocCnstB5001.csproj
new file mode 100644
index 0000000000..65b3ff1ad4
--- /dev/null
+++ b/tests/src/JIT/CodeGenBringUpTests/LocallocCnstB5001.csproj
@@ -0,0 +1,33 @@
+<?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>{E7B36F3A-CD18-4F21-8898-CA43C5FDEA1E}</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' ">
+ </PropertyGroup>
+ <ItemGroup>
+ <CodeAnalysisDependentAssemblyPaths Condition=" '$(VS100COMNTOOLS)' != '' " Include="$(VS100COMNTOOLS)..\IDE\PrivateAssemblies">
+ <Visible>False</Visible>
+ </CodeAnalysisDependentAssemblyPaths>
+ </ItemGroup>
+ <ItemGroup>
+ <Service Include="{82A7F48D-3B50-4B1E-B82E-3ADA8210C358}" />
+ </ItemGroup>
+ <ItemGroup>
+ <Compile Include="LocallocCnstB5001.cs" />
+ </ItemGroup>
+ <Import Project="$([MSBuild]::GetDirectoryNameOfFileAbove($(MSBuildThisFileDirectory), dir.targets))\dir.targets" />
+ <PropertyGroup Condition=" '$(MsBuildProjectDirOverride)' != '' ">
+ </PropertyGroup>
+</Project> \ No newline at end of file
diff --git a/tests/src/JIT/CodeGenBringUpTests/LocallocCnstB5001_PSP.cs b/tests/src/JIT/CodeGenBringUpTests/LocallocCnstB5001_PSP.cs
new file mode 100644
index 0000000000..ce411de38e
--- /dev/null
+++ b/tests/src/JIT/CodeGenBringUpTests/LocallocCnstB5001_PSP.cs
@@ -0,0 +1,59 @@
+// 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;
+public class BringUpTest
+{
+ const int Pass = 100;
+ const int Fail = -1;
+
+ // Reduce all values to byte
+ [MethodImplAttribute(MethodImplOptions.NoInlining)]
+ public static unsafe bool CHECK(byte check, byte expected) {
+ return check == expected;
+ }
+
+ [MethodImplAttribute(MethodImplOptions.NoInlining)]
+ public static unsafe int LocallocCnstB5001_PSP()
+ {
+ byte* a = stackalloc byte[5001];
+ int i;
+ for (i = 0; i < 5001; i++)
+ {
+ a[i] = (byte) i;
+ }
+
+ i = 0;
+ try
+ {
+ for (; i < 5001; i++)
+ {
+ if (!CHECK(a[i], (byte) i)) return i;
+ }
+ }
+ catch
+ {
+ Console.WriteLine("ERROR!!!");
+ return i;
+ }
+
+ return -1;
+ }
+
+ public static int Main()
+ {
+ int ret;
+
+ ret = LocallocCnstB5001_PSP();
+ if (ret != -1) {
+ Console.WriteLine("LocallocCnstB5001_PSP: Failed on index: " + ret);
+ return Fail;
+ }
+
+ return Pass;
+ }
+}
diff --git a/tests/src/JIT/CodeGenBringUpTests/LocallocCnstB5001_PSP.csproj b/tests/src/JIT/CodeGenBringUpTests/LocallocCnstB5001_PSP.csproj
new file mode 100644
index 0000000000..40c3b170fd
--- /dev/null
+++ b/tests/src/JIT/CodeGenBringUpTests/LocallocCnstB5001_PSP.csproj
@@ -0,0 +1,33 @@
+<?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>{1EB5785A-2050-4AD1-820B-F46CCCC3C65A}</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' ">
+ </PropertyGroup>
+ <ItemGroup>
+ <CodeAnalysisDependentAssemblyPaths Condition=" '$(VS100COMNTOOLS)' != '' " Include="$(VS100COMNTOOLS)..\IDE\PrivateAssemblies">
+ <Visible>False</Visible>
+ </CodeAnalysisDependentAssemblyPaths>
+ </ItemGroup>
+ <ItemGroup>
+ <Service Include="{82A7F48D-3B50-4B1E-B82E-3ADA8210C358}" />
+ </ItemGroup>
+ <ItemGroup>
+ <Compile Include="LocallocCnstB5001_PSP.cs" />
+ </ItemGroup>
+ <Import Project="$([MSBuild]::GetDirectoryNameOfFileAbove($(MSBuildThisFileDirectory), dir.targets))\dir.targets" />
+ <PropertyGroup Condition=" '$(MsBuildProjectDirOverride)' != '' ">
+ </PropertyGroup>
+</Project> \ No newline at end of file
diff --git a/tests/src/JIT/CodeGenBringUpTests/LocallocCnstB5_PSP.cs b/tests/src/JIT/CodeGenBringUpTests/LocallocCnstB5_PSP.cs
new file mode 100644
index 0000000000..f19b4fc7af
--- /dev/null
+++ b/tests/src/JIT/CodeGenBringUpTests/LocallocCnstB5_PSP.cs
@@ -0,0 +1,59 @@
+// 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;
+public class BringUpTest
+{
+ const int Pass = 100;
+ const int Fail = -1;
+
+ // Reduce all values to byte
+ [MethodImplAttribute(MethodImplOptions.NoInlining)]
+ public static unsafe bool CHECK(byte check, byte expected) {
+ return check == expected;
+ }
+
+ [MethodImplAttribute(MethodImplOptions.NoInlining)]
+ public static unsafe int LocallocCnstB5_PSP()
+ {
+ byte* a = stackalloc byte[5];
+ int i;
+ for (i = 0; i < 5; i++)
+ {
+ a[i] = (byte) i;
+ }
+
+ i = 0;
+ try
+ {
+ for (; i < 5; i++)
+ {
+ if (!CHECK(a[i], (byte) i)) return i;
+ }
+ }
+ catch
+ {
+ Console.WriteLine("ERROR!!!");
+ return i;
+ }
+
+ return -1;
+ }
+
+ public static int Main()
+ {
+ int ret;
+
+ ret = LocallocCnstB5_PSP();
+ if (ret != -1) {
+ Console.WriteLine("LocallocCnstB5_PSP: Failed on index: " + ret);
+ return Fail;
+ }
+
+ return Pass;
+ }
+}
diff --git a/tests/src/JIT/CodeGenBringUpTests/LocallocCnstB5_PSP.csproj b/tests/src/JIT/CodeGenBringUpTests/LocallocCnstB5_PSP.csproj
new file mode 100644
index 0000000000..10e269b43c
--- /dev/null
+++ b/tests/src/JIT/CodeGenBringUpTests/LocallocCnstB5_PSP.csproj
@@ -0,0 +1,33 @@
+<?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>{5F015026-51D0-4EF7-B538-24E8864F31D6}</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' ">
+ </PropertyGroup>
+ <ItemGroup>
+ <CodeAnalysisDependentAssemblyPaths Condition=" '$(VS100COMNTOOLS)' != '' " Include="$(VS100COMNTOOLS)..\IDE\PrivateAssemblies">
+ <Visible>False</Visible>
+ </CodeAnalysisDependentAssemblyPaths>
+ </ItemGroup>
+ <ItemGroup>
+ <Service Include="{82A7F48D-3B50-4B1E-B82E-3ADA8210C358}" />
+ </ItemGroup>
+ <ItemGroup>
+ <Compile Include="LocallocCnstB5_PSP.cs" />
+ </ItemGroup>
+ <Import Project="$([MSBuild]::GetDirectoryNameOfFileAbove($(MSBuildThisFileDirectory), dir.targets))\dir.targets" />
+ <PropertyGroup Condition=" '$(MsBuildProjectDirOverride)' != '' ">
+ </PropertyGroup>
+</Project> \ No newline at end of file