diff --git a/loopy/auto_test.py b/loopy/auto_test.py
index 10bef24f4476528286e43c097cb4a81cba2efb7b..e5f88417df6ca555d6475c21257534f8e995e812 100644
--- a/loopy/auto_test.py
+++ b/loopy/auto_test.py
@@ -354,7 +354,8 @@ def auto_test_vs_ref(
         print_ref_code=False, print_code=True, warmup_rounds=2,
         dump_binary=False,
         fills_entire_output=None, do_check=True, check_result=None,
-        max_test_kernel_count=1):
+        max_test_kernel_count=1,
+        quiet=False):
     """Compare results of `ref_knl` to the kernels generated by
     scheduling *test_knl*.
 
@@ -417,7 +418,7 @@ def auto_test_vs_ref(
             break
 
         ref_compiled = CompiledKernel(ref_ctx, ref_sched_kernel)
-        if print_ref_code:
+        if not quiet and print_ref_code:
             print(75*"-")
             print("Reference Code:")
             print(75*"-")
@@ -470,7 +471,7 @@ def auto_test_vs_ref(
         logger.info("%s (ref): run done" % ref_knl.name)
 
         ref_evt.wait()
-        ref_elapsed = 1e-9*(ref_evt.profile.END-ref_evt.profile.SUBMIT)
+        ref_elapsed_event = 1e-9*(ref_evt.profile.END-ref_evt.profile.START)
 
         break
 
@@ -519,16 +520,17 @@ def auto_test_vs_ref(
                     queue, ref_arg_data, parameters)
         args["out_host"] = False
 
-        print(75*"-")
-        print("Kernel #%d:" % i)
-        print(75*"-")
-        if print_code:
-            print(compiled.get_highlighted_code())
+        if not quiet:
             print(75*"-")
-        if dump_binary:
-            print(type(compiled.cl_program))
-            print(compiled.cl_program.binaries[0])
+            print("Kernel #%d:" % i)
             print(75*"-")
+            if print_code:
+                print(compiled.get_highlighted_code())
+                print(75*"-")
+            if dump_binary:
+                print(type(compiled.cl_program))
+                print(compiled.cl_program.binaries[0])
+                print(75*"-")
 
         logger.info("%s: run warmup" % (knl.name))
 
@@ -594,16 +596,15 @@ def auto_test_vs_ref(
             evt_start.wait()
             evt_end.wait()
 
-            elapsed = (1e-9*events[-1].profile.END
-                    - 1e-9*events[0].profile.SUBMIT) \
+            elapsed_event = (1e-9*events[-1].profile.END
+                    - 1e-9*events[0].profile.START) \
                     / timing_rounds
             try:
-                elapsed_evt_2 = "%g" % \
-                        ((1e-9*evt_end.profile.START
+                elapsed_event_marker = ((1e-9*evt_end.profile.START
                             - 1e-9*evt_start.profile.START)
                         / timing_rounds)
             except cl.RuntimeError:
-                elapsed_evt_2 = "<unavailable>"
+                elapsed_event_marker = None
 
             elapsed_wall = (stop_time-start_time)/timing_rounds
 
@@ -618,28 +619,36 @@ def auto_test_vs_ref(
         for cnt, lbl in zip(op_count, op_label):
             rates += " %g %s/s" % (cnt/elapsed_wall, lbl)
 
-        print("elapsed: %g s event, %s s marker-event %g s wall "
-                "(%d rounds)%s" % (
-                    elapsed, elapsed_evt_2, elapsed_wall, timing_rounds, rates))
+        if not quiet:
+            def format_float_or_none(v):
+                if v is None:
+                    return "<unavailable>"
+                else:
+                    return "%g" % v
+
+            print("elapsed: %s s event, %s s marker-event %s s wall "
+                    "(%d rounds)%s" % (
+                        format_float_or_none(elapsed_event),
+                        format_float_or_none(elapsed_event_marker),
+                        format_float_or_none(elapsed_wall), timing_rounds, rates))
 
         if do_check:
             ref_rates = ""
             for cnt, lbl in zip(op_count, op_label):
-                ref_rates += " %g %s/s" % (cnt/ref_elapsed, lbl)
-            print("ref: elapsed: %g s event, %g s wall%s" % (
-                    ref_elapsed, ref_elapsed_wall, ref_rates))
+                ref_rates += " %g %s/s" % (cnt/ref_elapsed_event, lbl)
+            if not quiet:
+                print("ref: elapsed: %g s event, %g s wall%s" % (
+                        ref_elapsed_event, ref_elapsed_wall, ref_rates))
 
     # }}}
 
     result_dict = {}
-    result_dict["elapsed"] = elapsed
-    result_dict["elapsed_evt_2"] = elapsed_evt_2
+    result_dict["elapsed_event"] = elapsed_event
+    result_dict["elapsed_event_marker"] = elapsed_event_marker
     result_dict["elapsed_wall"] = elapsed_wall
     result_dict["timing_rounds"] = timing_rounds
-    result_dict["rates"] = rates
-    result_dict["ref_elapsed"] = elapsed
-    result_dict["ref_elapsed_wall"] = elapsed_wall
-    result_dict["ref_rates"] = ref_rates
+    result_dict["ref_elapsed_event"] = ref_elapsed_event
+    result_dict["ref_elapsed_wall"] = ref_elapsed_wall
 
     return result_dict