// Licensed to the .NET Foundation under one or more agreements.
// The .NET Foundation licenses this file to you under the MIT license.
using System.Runtime.CompilerServices;
using Xunit;

// Generated by Fuzzlyn v2.3 on 2024-08-23 10:17:54
// Run on Arm64 Windows
// Seed: 14752078066107523191-vectort,vector64,vector128,armsve
// Reduced from 52.7 KiB to 0.7 KiB in 00:00:54
// Hits JIT assert in Release:
// Assertion failed '!"Got unexpected instruction format after MOVPRFX"' in 'Program:Main(Fuzzlyn.ExecutionServer.IRuntime)' during 'Emit code' (IL size 54; hash 0xade6b36b; FullOpts)
//
//     File: C:\dev\dotnet\runtime2\src\coreclr\jit\emitarm64sve.cpp Line: 18623
//

using System;
using System.Numerics;
using System.Runtime.Intrinsics;
using System.Runtime.Intrinsics.Arm;

public struct S2
{
    public Vector<int> F2;
}

public class Runtime_106868
{
    public static S2 s_1;

    public static int M4()
    {
        Vector<long> vr17 = default(Vector<long>);
        var vr11 = Vector.Create<long>(0);
        var vr8 = Sve.SubtractSaturate(vr17, vr11);
        return 1;
    }

    [Fact]
    public static void TestEntryPoint()
    {
        if (Sve.IsSupported)
        {
            var vr12 = Vector.Create<int>(0);
            var vr13 = Vector.Create<int>(0);
            var vr14 = M4();
            var vr15 = Vector128.CreateScalar(vr14).AsVector();
            var vr16 = Sve.AndAcross(vr13);
            s_1.F2 = Sve.ConditionalSelect(vr12, vr16, vr15);
            Consume(s_1.F2);
        }
    }

    [MethodImpl(MethodImplOptions.NoInlining)]
    private static void Consume(Vector<int> v)
    {
    }
}
