diff --git a/cpu.go b/cpu.go
index 79ca822..a9b8fc5 100644
--- a/cpu.go
+++ b/cpu.go
@@ -202,6 +202,7 @@
 		int(C.eCoreL2CacheSize())
 }
 
+// ModelName returns the model name of the CPU.
 func ModelName() string {
 	return C.GoString(C.modelName())
 }
diff --git a/incompatible.go b/incompatible.go
index 0a9ddf2..d425025 100644
--- a/incompatible.go
+++ b/incompatible.go
@@ -36,3 +36,18 @@
 func ECoreCount() int {
 	panic("m1cpu: not a darwin/arm64 system")
 }
+
+// PCoreCacheSize requires darwin/arm64
+func PCoreCache() (int, int, int) {
+	panic("m1cpu: not a darwin/arm64 system")
+}
+
+// ECoreCacheSize requires darwin/arm64
+func ECoreCache() (int, int, int) {
+	panic("m1cpu: not a darwin/arm64 system")
+}
+
+// ModelName requires darwin/arm64
+func ModelName() string {
+	panic("m1cpu: not a darwin/arm64 system")
+}
diff --git a/incompatible_test.go b/incompatible_test.go
new file mode 100644
index 0000000..fe89ee5
--- /dev/null
+++ b/incompatible_test.go
@@ -0,0 +1,70 @@
+//go:build !darwin || !arm64 || !cgo
+
+package m1cpu
+
+import (
+	"testing"
+
+	"github.com/shoenig/test/must"
+)
+
+const (
+	message = "m1cpu: not a darwin/arm64 system"
+)
+
+func panics(f func()) (message string) {
+	defer func() {
+		if r := recover(); r != nil {
+			message = r.(string)
+		}
+	}()
+	f()
+	return
+}
+
+func Test_IsAppleSilicon(t *testing.T) {
+	result := IsAppleSilicon()
+	must.False(t, result)
+}
+
+func check(t *testing.T, f func()) {
+	t.Helper()
+	result := panics(f)
+	must.Eq(t, result, message)
+}
+
+func Test_PCoreHz(t *testing.T) {
+	check(t, func() { _ = PCoreHz() })
+}
+
+func Test_ECoreHz(t *testing.T) {
+	check(t, func() { _ = ECoreHz() })
+}
+
+func Test_PCoreGHz(t *testing.T) {
+	check(t, func() { _ = PCoreGHz() })
+}
+
+func Test_ECoreGHz(t *testing.T) {
+	check(t, func() { _ = ECoreGHz() })
+}
+
+func Test_PCoreCount(t *testing.T) {
+	check(t, func() { _ = PCoreCount() })
+}
+
+func Test_ECoreCount(t *testing.T) {
+	check(t, func() { _ = ECoreCount() })
+}
+
+func Test_PCoreCache(t *testing.T) {
+	check(t, func() { _, _, _ = PCoreCache() })
+}
+
+func Test_ECoreCache(t *testing.T) {
+	check(t, func() { _, _, _ = ECoreCache() })
+}
+
+func Test_ModelName(t *testing.T) {
+	check(t, func() { _ = ModelName() })
+}
