diff --git a/loopy/check.py b/loopy/check.py
index 477a6336f995c977cfcf5fb52e6d972d95a74468..266aa72013a2cfbd0e50f880924f1d0bdcb15bc6 100644
--- a/loopy/check.py
+++ b/loopy/check.py
@@ -483,13 +483,18 @@ def check_implemented_domains(kernel, implemented_domains, code=None):
                     for i in range(insn_domain.dim(dim_type.param)))
 
             lines = []
-            for kind, diff_set in [
-                    ("implemented, but not desired", i_minus_d),
-                    ("desired, but not implemented", d_minus_i)]:
+            for kind, diff_set, gist_domain in [
+                    ("implemented, but not desired", i_minus_d,
+                        desired_domain.gist(insn_impl_domain)),
+                    ("desired, but not implemented", d_minus_i,
+                        insn_impl_domain.gist(desired_domain))]:
+
+                if diff_set.is_empty():
+                    continue
+
                 diff_set = diff_set.coalesce()
                 pt = diff_set.sample_point()
-                if pt.is_void():
-                    continue
+                assert not pt.is_void()
 
                 #pt_set = isl.Set.from_point(pt)
                 #lines.append("point implemented: %s" % (pt_set <= insn_impl_domain))
@@ -503,7 +508,9 @@ def check_implemented_domains(kernel, implemented_domains, code=None):
                         iname, pt.get_coordinate_val(tp, dim).to_python()))
 
                 lines.append(
-                        "sample point %s: %s" % (kind, ", ".join(point_axes)))
+                        "sample point in %s: %s" % (kind, ", ".join(point_axes)))
+                lines.append(
+                        "gist of %s: %s" % (kind, gist_domain))
 
             if code is not None:
                 print(79*"-")