Skip to content

JIT: Assertion failed '(targetReg == op1Reg) || (targetReg != op3Reg)' during 'Generate code' #114322

@jakobbotsch

Description

@jakobbotsch
// Generated by Fuzzlyn v2.5 on 2025-04-06 15:31:55
// Run on Arm64 Windows
// Seed: 18367419656932837912-vectort,vector64,vector128,armadvsimd,armadvsimdarm64,armaes,armarmbase,armarmbasearm64,armcrc32,armcrc32arm64,armdp,armrdm,armrdmarm64,armsha1,armsha256,armsve
// Reduced from 132.6 KiB to 1.4 KiB in 00:01:07
// Hits JIT assert in Release:
// Assertion failed '(targetReg == op1Reg) || (targetReg != op3Reg)' in 'Program:M3(System.Runtime.Intrinsics.Vector64`1[short]):System.Numerics.Vector`1[byte]' during 'Generate code' (IL size 88; hash 0xb03c5932; FullOpts)
// 
//     File: D:\a\_work\1\s\src\coreclr\jit\hwintrinsiccodegenarm64.cpp Line: 372
// 
using System;
using System.Numerics;
using System.Runtime.Intrinsics;
using System.Runtime.Intrinsics.Arm;

public class Program
{
    public static IRuntime s_rt;
    public static Vector<sbyte> s_1;
    public static void Main()
    {
        var vr14 = Vector128.Create(0, 0);
        var vr15 = (short)AdvSimd.Extract(vr14, 1);
        var vr16 = Vector64.Create<short>(vr15);
        M3(vr16);
    }

    public static Vector<sbyte> M3(Vector64<short> arg0)
    {
        try
        {
            return s_1;
        }
        finally
        {
            var vr4 = Vector64.Create<sbyte>(0);
            var vr5 = Vector128.Create<short>(0);
            var vr8 = (short)0;
            var vr7 = Vector128.CreateScalar(vr8);
            var vr11 = Vector128.CreateScalar(0);
            var vr10 = AdvSimd.ShiftRightLogicalRoundedNarrowingSaturateLower(vr11, 1);
            var vr9 = Rdm.MultiplyRoundedDoublingBySelectedScalarAndAddSaturateHigh(arg0, vr10, arg0, 0);
            var vr6 = AdvSimd.MultiplyDoublingByScalarSaturateHigh(vr7, vr9);
            Vector128<sbyte> var0 = AdvSimd.SubtractHighNarrowingUpper(vr4, vr5, vr6);
            s_rt.WriteLine(var0);
        }
    }
}

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

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

cc @dotnet/jit-contrib

Metadata

Metadata

Assignees

Labels

area-CodeGen-coreclrCLR JIT compiler in src/coreclr/src/jit and related components such as SuperPMIblocking-clean-ci-optionalBlocking optional rolling runs

Type

No type

Projects

No projects

Milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions