# System.Runtime.Intrinsics.X86

``` diff
 namespace System.Runtime.Intrinsics.X86 {
-    public abstract class Bmi1 {
+    public abstract class Bmi1 : X86Base {
-        public static bool IsSupported { get; }
+        public static new bool IsSupported { get; }
-        public abstract class X64 {
+        public new abstract class X64 : X86Base.X64 {
-            public static bool IsSupported { get; }
+            public static new bool IsSupported { get; }
         }
     }
-    public abstract class Bmi2 {
+    public abstract class Bmi2 : X86Base {
-        public static bool IsSupported { get; }
+        public static new bool IsSupported { get; }
-        public abstract class X64 {
+        public new abstract class X64 : X86Base.X64 {
-            public static bool IsSupported { get; }
+            public static new bool IsSupported { get; }
         }
     }
-    public abstract class Lzcnt {
+    public abstract class Lzcnt : X86Base {
-        public static bool IsSupported { get; }
+        public static new bool IsSupported { get; }
-        public abstract class X64 {
+        public new abstract class X64 : X86Base.X64 {
-            public static bool IsSupported { get; }
+            public static new bool IsSupported { get; }
         }
     }
-    public abstract class Sse {
+    public abstract class Sse : X86Base {
-        public static bool IsSupported { get; }
+        public static new bool IsSupported { get; }
-        public abstract class X64 {
+        public new abstract class X64 : X86Base.X64 {
-            public static bool IsSupported { get; }
+            public static new bool IsSupported { get; }
         }
     }
+    public abstract class X86Base {
+        public static bool IsSupported { get; }
+        public static (int Eax, int Ebx, int Ecx, int Edx) CpuId(int functionId, int subFunctionId);
+        public abstract class X64 {
+            public static bool IsSupported { get; }
+        }
+    }
 }
```

