Skip to content

JIT: Bad codegen with Sve.ConditionalExtractAfterLastActiveElement #125058

@jakobbotsch

Description

@jakobbotsch
// Generated by Fuzzlyn v3.3 on 2026-02-28 16:14:44
// Run on Arm64 Linux
// Seed: 15486117321058307331-vectort,vector64,vector128,armadvsimd,armadvsimdarm64,armaes,armarmbase,armarmbasearm64,armcrc32,armcrc32arm64,armdp,armrdm,armrdmarm64,armsha1,armsha256,armsve,armsve2
// Reduced from 130.6 KiB to 0.7 KiB in 00:01:09
// Debug: Outputs 18446744073709551614
// Release: Outputs 131070
using System.Numerics;
using System.Runtime.Intrinsics;
using System.Runtime.Intrinsics.Arm;

public class Program
{
    public static long[] s_18 = new long[]
    {
        0
    };
    public static ulong s_21;
    public static void Main()
    {
        M10(0);
        System.Console.WriteLine(s_21);
    }

    public static Vector128<long> M10(short arg0)
    {
        var vr4 = (short)1;
        var vr2 = Vector128.CreateScalar(vr4).AsVector();
        var vr7 = Vector.Create<short>(-1);
        arg0 = Sve.ConditionalExtractAfterLastActiveElement(vr2, arg0, vr7);
        s_21 = (ulong)(arg0 << 1);
        var vr12 = s_18[0]--;
        return Vector128.Create(vr12, arg0);
    }
}

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

Metadata

Metadata

Assignees

Labels

area-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