// 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 v1.5 on 2022-07-03 16:41:26
// Run on Arm64 MacOS
// Seed: 15254214336696406464
// Reduced from 47.2 KiB to 1.6 KiB in 00:00:23
// Hits JIT assert in Release:
// Assertion failed 'i < BitSetTraits::GetSize(env)' in 'Program:Main(Fuzzlyn.ExecutionServer.IRuntime)' during 'Redundant branch opts' (IL size 260; hash 0xade6b36b; FullOpts)
// 
//     File: /Users/runner/work/1/s/src/coreclr/jit/bitsetasshortlong.h Line: 261
// 

using System;
using Xunit;

public class C0
{
    public ushort F0;
    public ulong F1;
}

public class C1
{
    public C0 F0;
    public C0 F3;
    public C0 F6;
}

public struct S0
{
    public bool F1;
    public ushort F3;
    public byte F6;
}

public struct S1
{
    public int F0;
}

public class Runtime_71599
{
    public static IRuntime s_rt;
    public static C1[] s_1;
    public static S0[] s_3;
    public static S1 s_7;

    [Fact]
    public static int TestEntryPoint()
    {
        try
        {
            Test();
        }
        catch (NullReferenceException)
        {
            return 100;
        }
        return 101;
    }


    internal static void Test()
    {
        ushort[] vr2 = default(ushort[]);
        S0 vr3 = default(S0);
        bool vr4 = vr3.F1;
        byte vr5 = vr3.F6--;
        if (vr4)
        {
            try
            {
                s_rt.WriteLine(1);
            }
            finally
            {
                C1 vr6 = s_1[0];
                var vr7 = new long[] { 1 };
                var vr8 = vr6.F3;
                long[] vr10 = vr7;
                C0 vr11 = vr8;
                int vr13 = s_7.F0;
                s_rt.WriteLine(vr6.F0.F0);
                s_rt.WriteLine(vr6.F0.F1);
                s_rt.WriteLine(vr6.F6.F0);
            }

            if (!vr4)
            {
                s_1[0].F3.F0 = vr3.F3;
            }
        }

        for (int vr9 = 0; vr9 < 2; vr9++)
        {
            if (vr4)
            {
                s_3[0].F3 = vr2[0];
            }

            s_rt.WriteLine(vr9);
        }

    }
}

public interface IRuntime
{
    void WriteLine<T>(T value);
}

public class Runtime : IRuntime
{
    public void WriteLine<T>(T value) => System.Console.WriteLine(value);
}
