diff --git a/src/tests/Regressions/coreclr/Runtimelab_578/arr.il b/src/tests/Regressions/coreclr/Runtimelab_578/arr.il
new file mode 100644
index 00000000000000..803aa6711f8f78
--- /dev/null
+++ b/src/tests/Regressions/coreclr/Runtimelab_578/arr.il
@@ -0,0 +1,69 @@
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+
+.assembly extern mscorlib { }
+.assembly 'arr' { }
+
+.method static int32[] alloc() cil managed
+{
+ ldc.i4.8
+ ldc.i4.8
+ newobj instance void int32[]::.ctor(int32,int32)
+ ret
+}
+
+.method static int32 negative() cil managed
+{
+ .try
+ {
+ call int32[] alloc()
+ leave bad
+ }
+ catch [mscorlib]System.MissingMethodException
+ {
+ pop
+ leave good
+ }
+
+ good:
+ ldc.i4.1
+ ret
+
+ bad:
+ ldc.i4.0
+ ret
+}
+
+.method public static int32 main() cil managed
+{
+ .locals init (int32[][] a)
+ .entrypoint
+
+ ldc.i4.7
+ newobj instance void int32[]::.ctor(int32)
+ ldlen
+
+ ldc.i4.2
+ ldc.i4.3
+ newobj instance void int32[][]::.ctor(int32,int32)
+ dup
+ stloc a
+ ldlen
+ ldc.i4 40
+ mul // 2 * 40 = 80
+ add // 7 + 80 = 87
+
+ ldloc a
+ ldc.i4.0
+ ldelem int32[]
+ ldlen
+ ldc.i4.4
+ mul // 3 * 4 = 12
+
+ add // 87 + 12 = 99
+
+ call int32 negative()
+ add // 99 + 1 = 100
+
+ ret
+}
\ No newline at end of file
diff --git a/src/tests/Regressions/coreclr/Runtimelab_578/arr.ilproj b/src/tests/Regressions/coreclr/Runtimelab_578/arr.ilproj
new file mode 100644
index 00000000000000..41dbc4c32b573d
--- /dev/null
+++ b/src/tests/Regressions/coreclr/Runtimelab_578/arr.ilproj
@@ -0,0 +1,10 @@
+
+
+ Exe
+ BuildAndRun
+ 1
+
+
+
+
+
diff --git a/src/tests/issues.targets b/src/tests/issues.targets
index aa5a4c9ef356b2..fd32bc59b4d1c7 100644
--- a/src/tests/issues.targets
+++ b/src/tests/issues.targets
@@ -976,6 +976,9 @@
https://github.com/dotnet/runtime/issues/46174
+
+ https://github.com/dotnet/runtime/issues/47458
+
https://github.com/dotnet/runtime/issues/43676