Add a warm-up rep to script/bench-rust-gif
diff --git a/script/bench-rust-gif/src/main.rs b/script/bench-rust-gif/src/main.rs
index a940ffc..0c2175e 100644
--- a/script/bench-rust-gif/src/main.rs
+++ b/script/bench-rust-gif/src/main.rs
@@ -56,11 +56,13 @@
 
     let mut dst = vec![0u8; 64 * 1024 * 1024];
 
-    for _ in 0..REPS {
+    // The various magic constants below are copied from test/c/std/gif.c
+    for i in 0..(1 + REPS) {
         bench(
             "1k_bw",
             &mut dst[..],
             include_bytes!("../../../test/data/pjw-thumbnail.gif"),
+            i == 0, // warm_up
             2000, // iters_unscaled
         );
 
@@ -68,6 +70,7 @@
             "1k_color",
             &mut dst[..],
             include_bytes!("../../../test/data/hippopotamus.regular.gif"),
+            i == 0, // warm_up
             1000, // iters_unscaled
         );
 
@@ -75,6 +78,7 @@
             "10k_bgra",
             &mut dst[..],
             include_bytes!("../../../test/data/hat.gif"),
+            i == 0, // warm_up
             100, // iters_unscaled
         );
 
@@ -82,6 +86,7 @@
             "10k_indexed",
             &mut dst[..],
             include_bytes!("../../../test/data/hat.gif"),
+            i == 0, // warm_up
             100, // iters_unscaled
         );
 
@@ -89,6 +94,7 @@
             "20k",
             &mut dst[..],
             include_bytes!("../../../test/data/bricks-gray.gif"),
+            i == 0, // warm_up
             50, // iters_unscaled
         );
 
@@ -96,6 +102,7 @@
             "100k_artificial",
             &mut dst[..],
             include_bytes!("../../../test/data/hibiscus.primitive.gif"),
+            i == 0, // warm_up
             15, // iters_unscaled
         );
 
@@ -103,6 +110,7 @@
             "100k_realistic",
             &mut dst[..],
             include_bytes!("../../../test/data/hibiscus.regular.gif"),
+            i == 0, // warm_up
             10, // iters_unscaled
         );
 
@@ -110,6 +118,7 @@
             "1000k",
             &mut dst[..],
             include_bytes!("../../../test/data/harvesters.gif"),
+            i == 0, // warm_up
             1, // iters_unscaled
         );
 
@@ -117,6 +126,7 @@
             "anim_screencap",
             &mut dst[..],
             include_bytes!("../../../test/data/gifplayer-muybridge.gif"),
+            i == 0, // warm_up
             1, // iters_unscaled
         );
     }
@@ -126,6 +136,7 @@
     name: &str, // Benchmark name.
     dst: &mut [u8], // Destination buffer.
     src: &[u8], // Source data.
+    warm_up: bool, // Whether this is a warm up rep.
     iters_unscaled: u64, // Base number of iterations.
 ) {
     let iters = iters_unscaled * ITERSCALE;
@@ -140,6 +151,11 @@
 
     let elapsed_nanos = (elapsed.as_secs() * 1_000_000_000) + (elapsed.subsec_nanos() as u64);
     let kb_per_s: u64 = num_bytes * 1_000_000 / elapsed_nanos;
+
+    if warm_up {
+        return;
+    }
+
     print!(
         "Benchmarkrust_gif_decode_{:16}   {:8}   {:12} ns/op   {:3}.{:03} MB/s\n",
         name,