dotnet / runtime

.NET is a cross-platform runtime for cloud, mobile, desktop, and IoT apps.
https://docs.microsoft.com/dotnet/core/
MIT License
14.91k stars 4.64k forks source link

JIT: [arm32] Assertion failed 'op2->TypeIs(TYP_I_IMPL)' during 'Morph - Global' #105618

Closed jakobbotsch closed 4 weeks ago

jakobbotsch commented 1 month ago
// Generated by Fuzzlyn v2.1 on 2024-07-28 17:07:50
// Run on Arm Linux
// Seed: 1272406038738543012
// Reduced from 724.7 KiB to 0.4 KiB in 00:20:19
// Hits JIT assert in Release:
// Assertion failed 'op2->TypeIs(TYP_I_IMPL)' in 'Program:Main(Fuzzlyn.ExecutionServer.IRuntime)' during 'Morph - Global' (IL size 29; hash 0xade6b36b; FullOpts)
// 
//     File: /__w/1/s/src/coreclr/jit/promotiondecomposition.cpp Line: 1223
// 
using System;
using System.Runtime.CompilerServices;

public struct S0
{
    public sbyte F0;
    public float F1;
}

public class C0
{
    public S0 F0;
}

public class Program
{
    public static void Main()
    {
        C0 vr0 = default(C0);
        System.Console.WriteLine(System.BitConverter.SingleToUInt32Bits(vr0.F0.F1));
    }
}

Repros with altjit.

dotnet-policy-service[bot] commented 1 month ago

Tagging subscribers to this area: @JulieLeeMSFT, @jakobbotsch See info in area-owners.md if you want to be subscribed.

jakobbotsch commented 1 month ago

cc @dotnet/jit-contrib