From 192025c058d4875b7e96eec639037ce1cb097cf8 Mon Sep 17 00:00:00 2001 From: Kunal Pathak Date: Mon, 9 Sep 2024 12:00:14 -0700 Subject: [PATCH] add test cases --- .../JitBlue/Runtime_105620/Runtime_105620.cs | 199 ++++++++++++++++++ .../Runtime_105620/Runtime_105620.csproj | 8 + 2 files changed, 207 insertions(+) create mode 100644 src/tests/JIT/Regression/JitBlue/Runtime_105620/Runtime_105620.cs create mode 100644 src/tests/JIT/Regression/JitBlue/Runtime_105620/Runtime_105620.csproj diff --git a/src/tests/JIT/Regression/JitBlue/Runtime_105620/Runtime_105620.cs b/src/tests/JIT/Regression/JitBlue/Runtime_105620/Runtime_105620.cs new file mode 100644 index 0000000000000..f903c7ef22483 --- /dev/null +++ b/src/tests/JIT/Regression/JitBlue/Runtime_105620/Runtime_105620.cs @@ -0,0 +1,199 @@ +// Licensed to the .NET Foundation under one or more agreements. +// The .NET Foundation licenses this file to you under the MIT license. + +// Generated by Fuzzlyn v2.1 on 2024-07-28 20:48:11 +// Run on Arm Linux +// Seed: 7638843082097772896 +// Reduced from 1010.6 KiB to 5.3 KiB in 00:18:13 +// Hits JIT assert in Release: +// Assertion failed 'baseRegUsed == reg2' in 'Program:M48(S0,S3,S2,S2)' during 'Generate code' (IL size 2164; hash 0x03983244; FullOpts) +// +// File: /__w/1/s/src/coreclr/jit/emitarm.cpp Line: 3919 +// +using System; +using System.Runtime.CompilerServices; +using Xunit; + +public struct S0 +{ + public ulong F0; + public int F1; + public long F2; + public uint F3; + public byte F4; + public float F5; + public sbyte F6; + public double F7; + public sbyte F8; +} + +public struct S1 +{ + public double F0; + public short F1; + public bool F2; + public S0 F3; + public sbyte F4; + public ushort F5; + public ulong F6; + public int F7; + public S0 F8; +} + +public struct S2 +{ + public double F0; + public S0 F1; + public S1 F2; + public ushort F4; + public S2(S1 f2) + { + F2 = f2; + } +} + +public class C0 +{ +} + +public struct S3 +{ + public double F0; + public float F1; + public ushort F2; + public long F3; + public S1 F4; + public S2 F5; + public S2 F6; + public uint F7; + public S2 F8; + public S3(S2 f5, S2 f8) : this() + { + F5 = f5; + F8 = f8; + } +} + +public struct S4 +{ + public double F0; + public double F1; + public float F2; + public ulong F3; + public bool F4; + public int F5; + public bool F6; + public S3 F7; + public float F8; + public S4(S3 f7) + { + F7 = f7; + } +} + +public class Program +{ + public static IRuntime s_rt; + public static S4 s_2; + public static S4 s_3; + public static S4[][] s_6; + public static S3[] s_23 = new S3[] + { + new S3(new S2(new S1()), new S2(new S1())) + }; + + [Fact] + public static void TestEntryPoint() + { + try + { + var vr8 = new S4(new S3(new S2(new S1()), new S2(new S1()))); + var vr9 = s_23[0].F6.F1; + var vr13 = s_2.F7; + var vr14 = vr8.F7.F6; + var vr15 = vr8.F7.F6; + M48(vr9, vr13, vr14, vr15); + } catch {} + } + + public static void M48(S0 argThis, S3 arg0, S2 arg1, S2 arg2) + { + arg2.F2.F0 = arg2.F2.F0; + S4 var1 = new S4(new S3(new S2(new S1()), new S2(new S1()))); + var1.F7.F5.F2.F8.F5 = s_6[0][0].F7.F8.F2.F3.F5; + var vr2 = new C0(); + M49(0, vr2, ref arg2.F2.F1, ref s_3.F7, ref arg1.F1.F8); + S4 var2 = var1; + s_rt.WriteLine(System.BitConverter.DoubleToUInt64Bits(var2.F7.F0)); + s_rt.WriteLine(System.BitConverter.SingleToUInt32Bits(var2.F7.F1)); + s_rt.WriteLine(var2.F7.F2); + s_rt.WriteLine(var2.F7.F3); + s_rt.WriteLine(System.BitConverter.DoubleToUInt64Bits(var2.F7.F4.F0)); + s_rt.WriteLine(var2.F7.F4.F1); + s_rt.WriteLine(var2.F7.F4.F2); + s_rt.WriteLine(var2.F7.F4.F3.F0); + s_rt.WriteLine(var2.F7.F4.F3.F1); + s_rt.WriteLine(var2.F7.F4.F3.F2); + s_rt.WriteLine(var2.F7.F4.F3.F3); + s_rt.WriteLine(var2.F7.F4.F3.F4); + s_rt.WriteLine(System.BitConverter.SingleToUInt32Bits(var2.F7.F4.F3.F5)); + s_rt.WriteLine(var2.F7.F4.F3.F6); + s_rt.WriteLine(System.BitConverter.DoubleToUInt64Bits(var2.F7.F4.F3.F7)); + s_rt.WriteLine(var2.F7.F4.F3.F8); + s_rt.WriteLine(var2.F7.F4.F4); + s_rt.WriteLine(var2.F7.F4.F5); + s_rt.WriteLine(var2.F7.F4.F6); + s_rt.WriteLine(var2.F7.F4.F7); + s_rt.WriteLine(var2.F7.F4.F8.F0); + s_rt.WriteLine(var2.F7.F4.F8.F1); + s_rt.WriteLine(var2.F7.F4.F8.F2); + s_rt.WriteLine(var2.F7.F4.F8.F3); + s_rt.WriteLine(var2.F7.F4.F8.F4); + s_rt.WriteLine(System.BitConverter.SingleToUInt32Bits(var2.F7.F4.F8.F5)); + s_rt.WriteLine(var2.F7.F4.F8.F6); + s_rt.WriteLine(System.BitConverter.DoubleToUInt64Bits(var2.F7.F4.F8.F7)); + s_rt.WriteLine(var2.F7.F4.F8.F8); + s_rt.WriteLine(System.BitConverter.DoubleToUInt64Bits(var2.F7.F5.F0)); + s_rt.WriteLine(var2.F7.F5.F1.F0); + s_rt.WriteLine(var2.F7.F5.F1.F1); + s_rt.WriteLine(var2.F7.F5.F1.F2); + s_rt.WriteLine(var2.F7.F5.F1.F3); + s_rt.WriteLine(var2.F7.F5.F1.F4); + s_rt.WriteLine(System.BitConverter.SingleToUInt32Bits(var2.F7.F5.F1.F5)); + s_rt.WriteLine(var2.F7.F5.F1.F6); + s_rt.WriteLine(System.BitConverter.DoubleToUInt64Bits(var2.F7.F5.F1.F7)); + s_rt.WriteLine(var2.F7.F5.F1.F8); + s_rt.WriteLine(System.BitConverter.DoubleToUInt64Bits(var2.F7.F5.F2.F0)); + s_rt.WriteLine(var2.F7.F5.F2.F1); + s_rt.WriteLine(var2.F7.F5.F2.F2); + s_rt.WriteLine(var2.F7.F5.F2.F3.F0); + s_rt.WriteLine(var2.F7.F5.F2.F3.F1); + s_rt.WriteLine(var2.F7.F5.F2.F3.F2); + s_rt.WriteLine(var2.F7.F5.F2.F3.F3); + s_rt.WriteLine(var2.F7.F5.F2.F3.F4); + s_rt.WriteLine(System.BitConverter.SingleToUInt32Bits(var2.F7.F5.F2.F3.F5)); + s_rt.WriteLine(var2.F7.F5.F2.F3.F6); + s_rt.WriteLine(System.BitConverter.DoubleToUInt64Bits(var2.F7.F5.F2.F3.F7)); + s_rt.WriteLine(var2.F7.F5.F2.F3.F8); + s_rt.WriteLine(var2.F7.F5.F2.F4); + s_rt.WriteLine(var2.F7.F5.F2.F5); + s_rt.WriteLine(var2.F7.F5.F2.F6); + s_rt.WriteLine(var2.F7.F5.F2.F7); + s_rt.WriteLine(var2.F7.F5.F2.F8.F0); + } + + public static void M49(short arg0, C0 arg2, ref short arg3, ref S3 arg4, ref sbyte arg5) + { + s_rt.WriteLine(arg0); + } +} + +public interface IRuntime +{ + void WriteLine(T value); +} + +public class Runtime : IRuntime +{ + public void WriteLine(T value) => System.Console.WriteLine(value); +} \ No newline at end of file diff --git a/src/tests/JIT/Regression/JitBlue/Runtime_105620/Runtime_105620.csproj b/src/tests/JIT/Regression/JitBlue/Runtime_105620/Runtime_105620.csproj new file mode 100644 index 0000000000000..de6d5e08882e8 --- /dev/null +++ b/src/tests/JIT/Regression/JitBlue/Runtime_105620/Runtime_105620.csproj @@ -0,0 +1,8 @@ + + + True + + + + +