diff --git a/go/analysis/passes/sortslice/analyzer.go b/go/analysis/passes/sortslice/analyzer.go
index 69a6793..5eb957a 100644
--- a/go/analysis/passes/sortslice/analyzer.go
+++ b/go/analysis/passes/sortslice/analyzer.go
@@ -45,7 +45,8 @@
 			return
 		}
 
-		if fn.FullName() != "sort.Slice" {
+		fnName := fn.FullName()
+		if fnName != "sort.Slice" && fnName != "sort.SliceStable" && fnName != "sort.SliceIsSorted" {
 			return
 		}
 
@@ -115,7 +116,7 @@
 		pass.Report(analysis.Diagnostic{
 			Pos:            call.Pos(),
 			End:            call.End(),
-			Message:        fmt.Sprintf("sort.Slice's argument must be a slice; is called with %s", typ.String()),
+			Message:        fmt.Sprintf("%s's argument must be a slice; is called with %s", fnName, typ.String()),
 			SuggestedFixes: fixes,
 		})
 	})
diff --git a/go/analysis/passes/sortslice/testdata/src/a/a.go b/go/analysis/passes/sortslice/testdata/src/a/a.go
index 3403660..bc6cc16 100644
--- a/go/analysis/passes/sortslice/testdata/src/a/a.go
+++ b/go/analysis/passes/sortslice/testdata/src/a/a.go
@@ -7,6 +7,8 @@
 	i := 5
 	sortFn := func(i, j int) bool { return false }
 	sort.Slice(i, sortFn) // want "sort.Slice's argument must be a slice; is called with int"
+	sort.SliceStable(i, sortFn) // want "sort.SliceStable's argument must be a slice; is called with int"
+	sort.SliceIsSorted(i, sortFn) // want "sort.SliceIsSorted's argument must be a slice; is called with int"
 }
 
 // CorrectSort sorts integers. It should not produce a diagnostic.
@@ -14,6 +16,8 @@
 	s := []int{2, 3, 5, 6}
 	sortFn := func(i, j int) bool { return s[i] < s[j] }
 	sort.Slice(s, sortFn)
+	sort.SliceStable(s, sortFn)
+	sort.SliceIsSorted(s, sortFn)
 }
 
 // CorrectInterface sorts an interface with a slice
@@ -23,6 +27,8 @@
 	s = interface{}([]int{2, 1, 0})
 	sortFn := func(i, j int) bool { return s.([]int)[i] < s.([]int)[j] }
 	sort.Slice(s, sortFn)
+	sort.SliceStable(s, sortFn)
+	sort.SliceIsSorted(s, sortFn)
 }
 
 type slicecompare interface {
@@ -41,6 +47,8 @@
 	var s slicecompare
 	s = intslice([]int{2, 1, 0})
 	sort.Slice(s, s.compare)
+	sort.SliceStable(s, s.compare)
+	sort.SliceIsSorted(s, s.compare)
 }
 
 type mySlice []int
@@ -51,4 +59,6 @@
 	s := mySlice{2, 3, 5, 6}
 	sortFn := func(i, j int) bool { return s[i] < s[j] }
 	sort.Slice(s, sortFn)
+	sort.SliceStable(s, sortFn)
+	sort.SliceIsSorted(s, sortFn)
 }
