diff --git a/src/coreclr/jit/morph.cpp b/src/coreclr/jit/morph.cpp index 2ff290263c2798..2b50b7286f25bd 100644 --- a/src/coreclr/jit/morph.cpp +++ b/src/coreclr/jit/morph.cpp @@ -13177,6 +13177,7 @@ GenTree* Compiler::fgMorphSmpOp(GenTree* tree, MorphAddrContext* mac) GenTree* newOp2 = gtNewIconNode(-constVal, op1op2->TypeGet()); // -C mulOrDiv->gtOp1 = newOp1; mulOrDiv->gtOp2 = newOp2; + mulOrDiv->SetVNsFromNode(tree); DEBUG_DESTROY_NODE(tree); DEBUG_DESTROY_NODE(op1op2); diff --git a/src/tests/JIT/Regression/JitBlue/Runtime_57640/Runtime_57640.cs b/src/tests/JIT/Regression/JitBlue/Runtime_57640/Runtime_57640.cs new file mode 100644 index 00000000000000..906780463e8a2f --- /dev/null +++ b/src/tests/JIT/Regression/JitBlue/Runtime_57640/Runtime_57640.cs @@ -0,0 +1,25 @@ +// Licensed to the .NET Foundation under one or more agreements. +// The .NET Foundation licenses this file to you under the MIT license. + +// Generated by Fuzzlyn v1.2 on 2021-08-15 23:15:19 +// Run on .NET 6.0.0-dev on Arm Linux +// Seed: 18219619158927602726 +// Reduced from 82.6 KiB to 0.3 KiB in 00:02:54 +// Debug: Outputs 14270 +// Release: Outputs 4294953026 +public class Runtime_57640 +{ + static long[] s_28 = new long[]{1}; + public static int Main() + { + bool correct = true; + var vr10 = s_28[0]; + for (int vr13 = 0; vr13 < 2; vr13++) + { + uint vr12 = (uint)(0 - (-14270 * vr10)); + correct &= vr12 == 14270; + } + + return correct ? 100 : -1; + } +} diff --git a/src/tests/JIT/Regression/JitBlue/Runtime_57640/Runtime_57640.csproj b/src/tests/JIT/Regression/JitBlue/Runtime_57640/Runtime_57640.csproj new file mode 100644 index 00000000000000..f3e1cbd44b4041 --- /dev/null +++ b/src/tests/JIT/Regression/JitBlue/Runtime_57640/Runtime_57640.csproj @@ -0,0 +1,12 @@ + + + Exe + + + None + True + + + + +