You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
JIT: Incorrectly optimized double-negation in face of inlining #61908
The following program has different behavior in debug and release mode.
Reproduction Steps
// Generated by Fuzzlyn v1.5 on 2021-11-21 16:25:19// Run on Arm64 Linux// Seed: 3319480715990956994// Reduced from 26.2 KiB to 0.4 KiB in 00:00:42// Debug: No output// Release: Prints 0publicclassProgram{publicstaticbools_3;publicstaticvoidMain(){varvr6=M3(s_3);if(M3(vr6)){System.Console.WriteLine(0);}}publicstaticboolM3(boolarg0){arg0=!arg0;returnarg0;}}
changed the title [-]ARM64 JIT: Incorrectly optimized double-negation in face of inlining[/-][+]JIT: Incorrectly optimized double-negation in face of inlining[/+]on Nov 22, 2021
Activity
jakobbotsch commentedon Nov 22, 2021
cc @dotnet/jit-contrib
[-]ARM64 JIT: Incorrectly optimized double-negation in face of inlining[/-][+]JIT: Incorrectly optimized double-negation in face of inlining[/+]jakobbotsch commentedon Nov 22, 2021
Looks like this is not ARM64 related after all, I can repro in x64 as well, but not in .NET 6. So this seems to be a recent regression.
jakobbotsch commentedon Nov 22, 2021
This seems to be related to the new forward subst in redundant branch opts, we go from
to
the dump from redundant branch opts being
cc @AndyAyersMS
Use correct VN relation kind for redundant relop opts (#61912)