diff --git a/src/coreclr/System.Private.CoreLib/CompatibilitySuppressions.xml b/src/coreclr/System.Private.CoreLib/CompatibilitySuppressions.xml
index ae179baa9c50e0..6a201651f126a8 100644
--- a/src/coreclr/System.Private.CoreLib/CompatibilitySuppressions.xml
+++ b/src/coreclr/System.Private.CoreLib/CompatibilitySuppressions.xml
@@ -1,24 +1,3 @@
-
-
- CP0001
- T:Internal.Console
-
-
- CP0001
- T:System.Runtime.CompilerServices.ICastable
-
-
- CP0002
- F:System.Resources.ResourceManager.BaseNameField
-
-
- CP0002
- F:System.Resources.ResourceSet.Reader
-
-
- CP0014
- M:System.Runtime.InteropServices.Marshal.CreateWrapperOfType(System.Object,System.Type)->object?:[T:System.Diagnostics.CodeAnalysis.NotNullIfNotNullAttribute]
-
\ No newline at end of file
diff --git a/src/libraries/System.Private.CoreLib/ref/System.Private.CoreLib.ExtraApis.cs b/src/libraries/System.Private.CoreLib/ref/System.Private.CoreLib.ExtraApis.cs
index 5465d3601a7b7c..84e99da5aa050f 100644
--- a/src/libraries/System.Private.CoreLib/ref/System.Private.CoreLib.ExtraApis.cs
+++ b/src/libraries/System.Private.CoreLib/ref/System.Private.CoreLib.ExtraApis.cs
@@ -37,19 +37,3 @@ public static partial class Debug
public static System.Diagnostics.DebugProvider SetProvider(System.Diagnostics.DebugProvider provider) { throw null; }
}
}
-namespace System.Runtime.Intrinsics.X86
-{
- public abstract partial class X86Base
- {
- public abstract partial class X64
- {
- public static (ulong Quotient, ulong Remainder) DivRem(ulong lower, ulong upper, ulong divisor) { throw null; }
- public static (long Quotient, long Remainder) DivRem(ulong lower, long upper, long divisor) { throw null; }
- }
-
- public static (uint Quotient, uint Remainder) DivRem(uint lower, uint upper, uint divisor) { throw null; }
- public static (int Quotient, int Remainder) DivRem(uint lower, int upper, int divisor) { throw null; }
- public static (nuint Quotient, nuint Remainder) DivRem(nuint lower, nuint upper, nuint divisor) { throw null; }
- public static (nint Quotient, nint Remainder) DivRem(nuint lower, nint upper, nint divisor) { throw null; }
- }
-}
\ No newline at end of file
diff --git a/src/libraries/System.Private.CoreLib/ref/System.Private.CoreLib.ExtraApis.txt b/src/libraries/System.Private.CoreLib/ref/System.Private.CoreLib.ExtraApis.txt
index ef258ffce6cdd5..0babd819e25d04 100644
--- a/src/libraries/System.Private.CoreLib/ref/System.Private.CoreLib.ExtraApis.txt
+++ b/src/libraries/System.Private.CoreLib/ref/System.Private.CoreLib.ExtraApis.txt
@@ -5,9 +5,3 @@ T:System.Runtime.Serialization.DeserializationToken
M:System.Runtime.Serialization.SerializationInfo.StartDeserialization
T:System.Diagnostics.DebugProvider
M:System.Diagnostics.Debug.SetProvider(System.Diagnostics.DebugProvider)
-M:System.Runtime.Intrinsics.X86.X86Base.X64.DivRem(System.UInt64 lower, System.UInt64 upper, System.UInt64 divisor)
-M:System.Runtime.Intrinsics.X86.X86Base.X64.DivRem(System.UInt64 lower, System.Int64 upper, System.Int64 divisor)
-M:System.Runtime.Intrinsics.X86.X86Base.DivRem(uint lower, uint upper, uint divisor)
-M:System.Runtime.Intrinsics.X86.X86Base.DivRem(int lower, int upper, int divisor)
-M:System.Runtime.Intrinsics.X86.X86Base.DivRem(nuint lower, nuint upper, nuint divisor)
-M:System.Runtime.Intrinsics.X86.X86Base.DivRem(nuint lower, nint upper, nint divisor)
\ No newline at end of file
diff --git a/src/libraries/System.Private.CoreLib/src/System/Runtime/Intrinsics/X86/X86Base.PlatformNotSupported.cs b/src/libraries/System.Private.CoreLib/src/System/Runtime/Intrinsics/X86/X86Base.PlatformNotSupported.cs
index ba25f79678146f..89303f0b6ffe0c 100644
--- a/src/libraries/System.Private.CoreLib/src/System/Runtime/Intrinsics/X86/X86Base.PlatformNotSupported.cs
+++ b/src/libraries/System.Private.CoreLib/src/System/Runtime/Intrinsics/X86/X86Base.PlatformNotSupported.cs
@@ -3,6 +3,7 @@
using System;
using System.Runtime.CompilerServices;
+using System.Runtime.Versioning;
namespace System.Runtime.Intrinsics.X86
{
@@ -50,12 +51,14 @@ internal X64() { }
/// unsigned __int64 _udiv128(unsigned __int64 highdividend, unsigned __int64 lowdividend, unsigned __int64 divisor, unsigned __int64* remainder)
/// DIV reg/m64
///
+ [RequiresPreviewFeatures("DivRem is in preview.")]
public static (ulong Quotient, ulong Remainder) DivRem(ulong lower, ulong upper, ulong divisor) { throw new PlatformNotSupportedException(); }
///
/// __int64 _div128(__int64 highdividend, __int64 lowdividend, __int64 divisor, __int64* remainder)
/// DIV reg/m64
///
+ [RequiresPreviewFeatures("DivRem is in preview.")]
public static (long Quotient, long Remainder) DivRem(ulong lower, long upper, long divisor) { throw new PlatformNotSupportedException(); }
}
@@ -90,21 +93,25 @@ internal X64() { }
///
/// DIV reg/m32
///
+ [RequiresPreviewFeatures("DivRem is in preview.")]
public static (uint Quotient, uint Remainder) DivRem(uint lower, uint upper, uint divisor) { throw new PlatformNotSupportedException(); }
///
/// IDIV reg/m32
///
+ [RequiresPreviewFeatures("DivRem is in preview.")]
public static (int Quotient, int Remainder) DivRem(uint lower, int upper, int divisor) { throw new PlatformNotSupportedException(); }
///
/// IDIV reg/m
///
+ [RequiresPreviewFeatures("DivRem is in preview.")]
public static (nuint Quotient, nuint Remainder) DivRem(nuint lower, nuint upper, nuint divisor) { throw new PlatformNotSupportedException(); }
///
/// IDIV reg/m
///
+ [RequiresPreviewFeatures("DivRem is in preview.")]
public static (nint Quotient, nint Remainder) DivRem(nuint lower, nint upper, nint divisor) { throw new PlatformNotSupportedException(); }
///
diff --git a/src/libraries/System.Private.CoreLib/src/System/Runtime/Intrinsics/X86/X86Base.cs b/src/libraries/System.Private.CoreLib/src/System/Runtime/Intrinsics/X86/X86Base.cs
index 6ba4107549e420..a4cbb1db458bd3 100644
--- a/src/libraries/System.Private.CoreLib/src/System/Runtime/Intrinsics/X86/X86Base.cs
+++ b/src/libraries/System.Private.CoreLib/src/System/Runtime/Intrinsics/X86/X86Base.cs
@@ -3,6 +3,7 @@
using System.Runtime.CompilerServices;
using System.Runtime.InteropServices;
+using System.Runtime.Versioning;
namespace System.Runtime.Intrinsics.X86
{
@@ -10,9 +11,7 @@ namespace System.Runtime.Intrinsics.X86
/// This class provides access to the x86 base hardware instructions via intrinsics
///
[Intrinsic]
-#if SYSTEM_PRIVATE_CORELIB
[CLSCompliant(false)]
-#endif
public abstract partial class X86Base
{
internal X86Base() { }
@@ -52,12 +51,14 @@ internal X64() { }
/// unsigned __int64 _udiv128(unsigned __int64 highdividend, unsigned __int64 lowdividend, unsigned __int64 divisor, unsigned __int64* remainder)
/// DIV reg/m64
///
+ [RequiresPreviewFeatures("DivRem is in preview.")]
public static (ulong Quotient, ulong Remainder) DivRem(ulong lower, ulong upper, ulong divisor) => DivRem(lower, upper, divisor);
///
/// __int64 _div128(__int64 highdividend, __int64 lowdividend, __int64 divisor, __int64* remainder)
/// DIV reg/m64
///
+ [RequiresPreviewFeatures("DivRem is in preview.")]
public static (long Quotient, long Remainder) DivRem(ulong lower, long upper, long divisor) => DivRem(lower, upper, divisor);
}
@@ -89,35 +90,35 @@ internal X64() { }
///
public static unsafe (int Eax, int Ebx, int Ecx, int Edx) CpuId(int functionId, int subFunctionId)
{
-#if SYSTEM_PRIVATE_CORELIB
int* cpuInfo = stackalloc int[4];
__cpuidex(cpuInfo, functionId, subFunctionId);
return (cpuInfo[0], cpuInfo[1], cpuInfo[2], cpuInfo[3]);
-#else
- return (0, 0, 0, 0);
-#endif
}
///
/// unsigned _udiv64(unsigned __int64 dividend, unsigned divisor, unsigned* remainder)
/// DIV reg/m32
///
+ [RequiresPreviewFeatures("DivRem is in preview.")]
public static (uint Quotient, uint Remainder) DivRem(uint lower, uint upper, uint divisor) => DivRem(lower, upper, divisor);
///
/// int _div64(__int64 dividend, int divisor, int* remainder)
/// IDIV reg/m32
///
+ [RequiresPreviewFeatures("DivRem is in preview.")]
public static (int Quotient, int Remainder) DivRem(uint lower, int upper, int divisor) => DivRem(lower, upper, divisor);
///
/// IDIV reg/m
///
+ [RequiresPreviewFeatures("DivRem is in preview.")]
public static (nuint Quotient, nuint Remainder) DivRem(nuint lower, nuint upper, nuint divisor) => DivRem(lower, upper, divisor);
///
/// IDIV reg/m
///
+ [RequiresPreviewFeatures("DivRem is in preview.")]
public static (nint Quotient, nint Remainder) DivRem(nuint lower, nint upper, nint divisor) => DivRem(lower, upper, divisor);
///
diff --git a/src/libraries/System.Runtime.Intrinsics/ref/System.Runtime.Intrinsics.cs b/src/libraries/System.Runtime.Intrinsics/ref/System.Runtime.Intrinsics.cs
index 47885edc44bda3..e8a8b67d415c3b 100644
--- a/src/libraries/System.Runtime.Intrinsics/ref/System.Runtime.Intrinsics.cs
+++ b/src/libraries/System.Runtime.Intrinsics/ref/System.Runtime.Intrinsics.cs
@@ -5217,11 +5217,23 @@ public abstract partial class X86Base
internal X86Base() { }
public static bool IsSupported { get { throw null; } }
public static (int Eax, int Ebx, int Ecx, int Edx) CpuId(int functionId, int subFunctionId) { throw null; }
+ [System.Runtime.Versioning.RequiresPreviewFeaturesAttribute("DivRem is in preview.")]
+ public static (uint Quotient, uint Remainder) DivRem(uint lower, uint upper, uint divisor) { throw null; }
+ [System.Runtime.Versioning.RequiresPreviewFeaturesAttribute("DivRem is in preview.")]
+ public static (int Quotient, int Remainder) DivRem(uint lower, int upper, int divisor) { throw null; }
+ [System.Runtime.Versioning.RequiresPreviewFeaturesAttribute("DivRem is in preview.")]
+ public static (nuint Quotient, nuint Remainder) DivRem(nuint lower, nuint upper, nuint divisor) { throw null; }
+ [System.Runtime.Versioning.RequiresPreviewFeaturesAttribute("DivRem is in preview.")]
+ public static (nint Quotient, nint Remainder) DivRem(nuint lower, nint upper, nint divisor) { throw null; }
public static void Pause() { throw null; }
public abstract partial class X64
{
internal X64() { }
public static bool IsSupported { get { throw null; } }
+ [System.Runtime.Versioning.RequiresPreviewFeaturesAttribute("DivRem is in preview.")]
+ public static (ulong Quotient, ulong Remainder) DivRem(ulong lower, ulong upper, ulong divisor) { throw null; }
+ [System.Runtime.Versioning.RequiresPreviewFeaturesAttribute("DivRem is in preview.")]
+ public static (long Quotient, long Remainder) DivRem(ulong lower, long upper, long divisor) { throw null; }
}
}
diff --git a/src/libraries/System.Runtime.Intrinsics/src/CompatibilitySuppressions.xml b/src/libraries/System.Runtime.Intrinsics/src/CompatibilitySuppressions.xml
deleted file mode 100644
index 3f4ec97bc8d07e..00000000000000
--- a/src/libraries/System.Runtime.Intrinsics/src/CompatibilitySuppressions.xml
+++ /dev/null
@@ -1,76 +0,0 @@
-
-
-
-
- CP0002
- M:System.Runtime.Intrinsics.X86.X86Base.DivRem(nuint lower, nint upper, nint divisor)
- ref/net8.0/System.Runtime.Intrinsics.dll
- lib/net8.0/System.Runtime.Intrinsics.dll
-
-
- CP0002
- M:System.Runtime.Intrinsics.X86.X86Base.DivRem(nuint lower, nuint upper, nuint divisor)
- ref/net8.0/System.Runtime.Intrinsics.dll
- lib/net8.0/System.Runtime.Intrinsics.dll
-
-
- CP0002
- M:System.Runtime.Intrinsics.X86.X86Base.DivRem(System.UInt32 lower, System.Int32 upper, System.Int32 divisor)
- ref/net8.0/System.Runtime.Intrinsics.dll
- lib/net8.0/System.Runtime.Intrinsics.dll
-
-
- CP0002
- M:System.Runtime.Intrinsics.X86.X86Base.DivRem(System.UInt32 lower, System.UInt32 upper, System.UInt32 divisor)
- ref/net8.0/System.Runtime.Intrinsics.dll
- lib/net8.0/System.Runtime.Intrinsics.dll
-
-
- CP0002
- M:System.Runtime.Intrinsics.X86.X86Base.DivRem(System.UInt32,System.Int32,System.Int32)
- ref/net8.0/System.Runtime.Intrinsics.dll
- lib/net8.0/System.Runtime.Intrinsics.dll
-
-
- CP0002
- M:System.Runtime.Intrinsics.X86.X86Base.DivRem(System.UInt32,System.UInt32,System.UInt32)
- ref/net8.0/System.Runtime.Intrinsics.dll
- lib/net8.0/System.Runtime.Intrinsics.dll
-
-
- CP0002
- M:System.Runtime.Intrinsics.X86.X86Base.DivRem(System.UIntPtr,System.IntPtr,System.IntPtr)
- ref/net8.0/System.Runtime.Intrinsics.dll
- lib/net8.0/System.Runtime.Intrinsics.dll
-
-
- CP0002
- M:System.Runtime.Intrinsics.X86.X86Base.DivRem(System.UIntPtr,System.UIntPtr,System.UIntPtr)
- ref/net8.0/System.Runtime.Intrinsics.dll
- lib/net8.0/System.Runtime.Intrinsics.dll
-
-
- CP0002
- M:System.Runtime.Intrinsics.X86.X86Base.X64.DivRem(System.UInt64 lower, System.Int64 upper, System.Int64 divisor)
- ref/net8.0/System.Runtime.Intrinsics.dll
- lib/net8.0/System.Runtime.Intrinsics.dll
-
-
- CP0002
- M:System.Runtime.Intrinsics.X86.X86Base.X64.DivRem(System.UInt64 lower, System.UInt64 upper, System.UInt64 divisor)
- ref/net8.0/System.Runtime.Intrinsics.dll
- lib/net8.0/System.Runtime.Intrinsics.dll
-
-
- CP0002
- M:System.Runtime.Intrinsics.X86.X86Base.X64.DivRem(System.UInt64,System.Int64,System.Int64)
- ref/net8.0/System.Runtime.Intrinsics.dll
- lib/net8.0/System.Runtime.Intrinsics.dll
-
-
- CP0002
- M:System.Runtime.Intrinsics.X86.X86Base.X64.DivRem(System.UInt64,System.UInt64,System.UInt64)
- ref/net8.0/System.Runtime.Intrinsics.dll
- lib/net8.0/System.Runtime.Intrinsics.dll
-
-
\ No newline at end of file
diff --git a/src/tests/JIT/HardwareIntrinsics/HardwareIntrinsics_r.csproj b/src/tests/JIT/HardwareIntrinsics/HardwareIntrinsics_r.csproj
index 92103878856755..d81af3a381450c 100644
--- a/src/tests/JIT/HardwareIntrinsics/HardwareIntrinsics_r.csproj
+++ b/src/tests/JIT/HardwareIntrinsics/HardwareIntrinsics_r.csproj
@@ -15,7 +15,7 @@
-
+
diff --git a/src/tests/JIT/HardwareIntrinsics/HardwareIntrinsics_ro.csproj b/src/tests/JIT/HardwareIntrinsics/HardwareIntrinsics_ro.csproj
index 36d5b5608fede1..cec6dbb86c4810 100644
--- a/src/tests/JIT/HardwareIntrinsics/HardwareIntrinsics_ro.csproj
+++ b/src/tests/JIT/HardwareIntrinsics/HardwareIntrinsics_ro.csproj
@@ -16,7 +16,7 @@
-
+
diff --git a/src/tests/JIT/HardwareIntrinsics/X86/Shared/ScalarTernOpTupleBinRetTest.template b/src/tests/JIT/HardwareIntrinsics/X86/Shared/ScalarTernOpTupleBinRetTest.template
index e1e04ad6913cd0..601913aa060180 100644
--- a/src/tests/JIT/HardwareIntrinsics/X86/Shared/ScalarTernOpTupleBinRetTest.template
+++ b/src/tests/JIT/HardwareIntrinsics/X86/Shared/ScalarTernOpTupleBinRetTest.template
@@ -7,8 +7,6 @@
* changes, please update the corresponding template and run according to the *
* directions listed in the file. *
******************************************************************************/
-extern alias CoreLib;
-using X86Base = CoreLib::System.Runtime.Intrinsics.X86.X86Base;
using System;
using System.Runtime.CompilerServices;
using System.Runtime.InteropServices;
diff --git a/src/tests/JIT/HardwareIntrinsics/X86/X86Base.X64/X86Base.X64_r.csproj b/src/tests/JIT/HardwareIntrinsics/X86/X86Base.X64/X86Base.X64_r.csproj
index d4c72bc89146ce..f51cbcee5db903 100644
--- a/src/tests/JIT/HardwareIntrinsics/X86/X86Base.X64/X86Base.X64_r.csproj
+++ b/src/tests/JIT/HardwareIntrinsics/X86/X86Base.X64/X86Base.X64_r.csproj
@@ -13,6 +13,5 @@
-
diff --git a/src/tests/JIT/HardwareIntrinsics/X86/X86Base.X64/X86Base.X64_ro.csproj b/src/tests/JIT/HardwareIntrinsics/X86/X86Base.X64/X86Base.X64_ro.csproj
index e0a62fa9bc562a..2fd3b0ea3a2698 100644
--- a/src/tests/JIT/HardwareIntrinsics/X86/X86Base.X64/X86Base.X64_ro.csproj
+++ b/src/tests/JIT/HardwareIntrinsics/X86/X86Base.X64/X86Base.X64_ro.csproj
@@ -13,6 +13,5 @@
-
diff --git a/src/tests/JIT/HardwareIntrinsics/X86/X86Base/DivRem.RefOnly.csproj b/src/tests/JIT/HardwareIntrinsics/X86/X86Base/DivRem.RefOnly.csproj
deleted file mode 100644
index 1a70f52cd8874c..00000000000000
--- a/src/tests/JIT/HardwareIntrinsics/X86/X86Base/DivRem.RefOnly.csproj
+++ /dev/null
@@ -1,22 +0,0 @@
-
-
-
- true
- Library
- SharedLibrary
- System.Private.CoreLib
- 436
- 436
- true
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/src/tests/JIT/HardwareIntrinsics/X86/X86Base/X86Base_r.csproj b/src/tests/JIT/HardwareIntrinsics/X86/X86Base/X86Base_r.csproj
index f16999cb670d13..b4db08053dcfc9 100644
--- a/src/tests/JIT/HardwareIntrinsics/X86/X86Base/X86Base_r.csproj
+++ b/src/tests/JIT/HardwareIntrinsics/X86/X86Base/X86Base_r.csproj
@@ -13,6 +13,5 @@
-
diff --git a/src/tests/JIT/HardwareIntrinsics/X86/X86Base/X86Base_ro.csproj b/src/tests/JIT/HardwareIntrinsics/X86/X86Base/X86Base_ro.csproj
index b09c5e72a5157d..13f9d7ab905045 100644
--- a/src/tests/JIT/HardwareIntrinsics/X86/X86Base/X86Base_ro.csproj
+++ b/src/tests/JIT/HardwareIntrinsics/X86/X86Base/X86Base_ro.csproj
@@ -13,6 +13,5 @@
-