Skip to content

JIT: Conditional evaluated incorrectly on arm64 #124510

@jakobbotsch

Description

@jakobbotsch
// Generated by Fuzzlyn v3.3 on 2026-02-15 16:52:57
// Run on Arm64 Linux
// Seed: 14599529654677333173-vectort,vector64,vector128,armadvsimd,armadvsimdarm64,armaes,armarmbase,armarmbasearm64,armcrc32,armcrc32arm64,armdp,armrdm,armrdmarm64,armsha1,armsha256,armsve,armsve2
// Reduced from 73.3 KiB to 0.7 KiB in 00:00:52
// Debug: Outputs 0
// Release: Outputs 1
public class C0
{
    public ulong F3;
    public C0(ulong f3)
    {
        F3 = f3;
    }
}

public class C1
{
    public byte F8;
}

public class C2
{
    public C0 F1;
    public C1 F2;
    public C2(C0 f1, C1 f2)
    {
        F1 = f1;
        F2 = f2;
    }
}

public struct S0
{
    public byte F0;
}

public class Program
{
    public static S0 s_1;
    public static C2 s_2 = new C2(new C0(8013948595597981922UL), new C1());
    public static void Main()
    {
        var vr1 = s_2.F1.F3;
        if (((uint)(vr1 & 3080599622U) <= (ushort)(s_2.F2.F8 % 1)))
        {
            byte vr3 = s_1.F0++;
        }

        System.Console.WriteLine(s_1.F0);
    }
}

cc @dotnet/jit-contrib @dotnet/arm64-contrib

Metadata

Metadata

Labels

arch-arm64area-CodeGen-coreclrCLR JIT compiler in src/coreclr/src/jit and related components such as SuperPMI

Type

No type

Projects

No projects

Milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions