diff --git a/sys/platform/pc32/isa/npx.c b/sys/platform/pc32/isa/npx.c
index 6f99b4f..f8b7951 100644
--- a/sys/platform/pc32/isa/npx.c
+++ b/sys/platform/pc32/isa/npx.c
@@ -321,6 +321,16 @@ npx_probe1(device_t dev)
 
 #else /* !SMP */
 	device_set_desc(dev, "math processor");
+	/*
+	 * Modern CPUs all have an FPU that uses the INT16 interface
+	 * and provide a simple way to verify that, so handle the
+	 * common case right away.
+	 */
+	if (cpu_feature & CPUID_FPU) {
+		npx_irq13 = 0;
+		npx_ex16 = hw_float = npx_exists = 1;
+		return (0);
+	}
 
 	/*
 	 * Don't use fwait here because it might hang.
