diff --git a/src/coreclr/jit/morph.cpp b/src/coreclr/jit/morph.cpp index 83946626f25d92..c2b28db5a014ec 100644 --- a/src/coreclr/jit/morph.cpp +++ b/src/coreclr/jit/morph.cpp @@ -12332,27 +12332,9 @@ GenTree* Compiler::fgMorphSmpOp(GenTree* tree, MorphAddrContext* mac) if (op2->IsCnsIntOrI() && varTypeIsIntegralOrI(typ)) { - CLANG_FORMAT_COMMENT_ANCHOR; - // Fold (x + 0). - if ((op2->AsIntConCommon()->IconValue() == 0) && !gtIsActiveCSE_Candidate(tree)) { - - // If this addition is adding an offset to a null pointer, - // avoid the work and yield the null pointer immediately. - // Dereferencing the pointer in either case will have the - // same effect. - - if (!optValnumCSE_phase && varTypeIsGC(op2->TypeGet()) && - ((op1->gtFlags & GTF_ALL_EFFECT) == 0)) - { - op2->gtType = tree->gtType; - DEBUG_DESTROY_NODE(op1); - DEBUG_DESTROY_NODE(tree); - return op2; - } - // Remove the addition iff it won't change the tree type // to TYP_REF. diff --git a/src/tests/JIT/Regression/JitBlue/Runtime_61510/Runtime_61510.cs b/src/tests/JIT/Regression/JitBlue/Runtime_61510/Runtime_61510.cs new file mode 100644 index 00000000000000..fc40b9b1d775fd --- /dev/null +++ b/src/tests/JIT/Regression/JitBlue/Runtime_61510/Runtime_61510.cs @@ -0,0 +1,23 @@ +// Licensed to the .NET Foundation under one or more agreements. +// The .NET Foundation licenses this file to you under the MIT license. + +using System.Runtime.CompilerServices; + +unsafe class Runtime_61510 +{ + [FixedAddressValueType] + private static byte s_field; + + public static int Main() + { + ref byte result = ref AddZeroByrefToNativeInt((nint)Unsafe.AsPointer(ref s_field)); + + return Unsafe.AreSame(ref s_field, ref result) ? 100 : 101; + } + + [MethodImpl(MethodImplOptions.NoInlining)] + private static ref byte AddZeroByrefToNativeInt(nint addr) + { + return ref Unsafe.Add(ref Unsafe.NullRef(), addr); + } +} diff --git a/src/tests/JIT/Regression/JitBlue/Runtime_61510/Runtime_61510.csproj b/src/tests/JIT/Regression/JitBlue/Runtime_61510/Runtime_61510.csproj new file mode 100644 index 00000000000000..cf94135633b19a --- /dev/null +++ b/src/tests/JIT/Regression/JitBlue/Runtime_61510/Runtime_61510.csproj @@ -0,0 +1,10 @@ + + + Exe + True + true + + + + + \ No newline at end of file