diff --git a/src/coreclr/jit/valuenum.cpp b/src/coreclr/jit/valuenum.cpp index 977e984865a..5b2af35004c 100644 --- a/src/coreclr/jit/valuenum.cpp +++ b/src/coreclr/jit/valuenum.cpp @@ -4421,6 +4421,11 @@ bool ValueNumStore::VNEvalCanFoldBinaryFunc(var_types type, VNFunc func, ValueNu case GT_RSZ: case GT_ROL: case GT_ROR: + if (m_pComp->opts.compReloc && (IsVNHandle(arg0VN) || IsVNHandle(arg1VN))) + { + return false; + } + break; case GT_EQ: case GT_NE: @@ -4449,6 +4454,11 @@ bool ValueNumStore::VNEvalCanFoldBinaryFunc(var_types type, VNFunc func, ValueNu case VNF_ADD_UN_OVF: case VNF_SUB_UN_OVF: case VNF_MUL_UN_OVF: + if (m_pComp->opts.compReloc && (IsVNHandle(arg0VN) || IsVNHandle(arg1VN))) + { + return false; + } + break; case VNF_Cast: case VNF_CastOvf: