Skip to content

JIT: Store coalescing removes required zeroing #128566

@jakobbotsch

Description

@jakobbotsch
// Generated by Fuzzlyn v3.3 on 2026-05-24 15:49:08
// Run on X64 Windows
// Seed: 10869251601445507908-async,runtimeasync,vectort,vector128,vector256,x86aes,x86avx,x86avx2,x86avx512bw,x86avx512bwvl,x86avx512cd,x86avx512cdvl,x86avx512dq,x86avx512dqvl,x86avx512f,x86avx512fvl,x86avx512fx64,x86bmi1,x86bmi1x64,x86bmi2,x86bmi2x64,x86fma,x86lzcnt,x86lzcntx64,x86pclmulqdq,x86popcnt,x86popcntx64,x86sse,x86ssex64,x86sse2,x86sse2x64,x86sse3,x86sse41,x86sse41x64,x86sse42,x86sse42x64,x86ssse3,x86x86base
// Reduced from 56.6 KiB to 0.6 KiB in 00:02:09
// Release: Outputs False
// Release with Runtime Async: Outputs True
using System.Threading.Tasks;

public struct S0
{
    public bool F0;
    public sbyte F1;
    public bool F2;
    public byte F3;
    public S0(byte f3)
    {
    }
}

public struct S1
{
    public S0 F0;
    public S0 F1;
    public S1(S0 f0) : this()
    {
        F0 = f0;
    }
}

public class Program
{
    public static void Main()
    {
        var vr2 = M4().GetAwaiter().GetResult();
        System.Console.WriteLine(vr2.F1.F0);
    }

    public static async Task<S1> M4()
    {
        var vr0 = new S1(new S0(0));
        S0 vr5 = vr0.F1;
        return new S1(vr5);
    }
}

Looks like fall out from #126562, cc @AndyAyersMS

Metadata

Metadata

Assignees

Labels

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

Type

No type
No fields configured for issues without a type.

Projects

No projects

Milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions