diff --git a/src/bin/tut2.rs b/src/bin/tut2.rs
new file mode 100644
index 0000000..702b870
--- /dev/null
+++ b/src/bin/tut2.rs
@@ -0,0 +1,42 @@
+#![allow(dead_code)]
+#![allow(unused_imports)]
+
+use rust_tutorial::*;
+
+/// Run this to see the disassembly of `compute_sum_of_squares_{1,2}`:
+///
+/// ```bash
+/// cargo objdump --bin tut2 --release -- -d | awk -v RS= '/^tut2::compute_sum_of_squares/'
+/// ```
+
+#[inline(never)]
+fn compute_sum_of_squares_1(xs: &Vec<i32>) -> i32 {
+    let mut acc = 0;
+    for x in xs {
+        acc += x * x;
+    }
+    acc
+}
+
+#[inline(never)]
+fn compute_sum_of_squares_2(xs: &Vec<i32>) -> i32 {
+    xs.iter()
+        .map(|x| x * x)
+        .fold(0, |acc, x| acc + x)
+}
+
+#[test]
+fn test_compute_sum_of_squares() {
+    let numbers = vec![1, 2, 3, 4, 5];
+    assert_eq!(compute_sum_of_squares_1(&numbers), compute_sum_of_squares_2(&numbers));
+}
+
+fn main() {
+    let numbers = vec![1, 2, 3, 4, 5];
+
+    let sum_of_squares_1 = compute_sum_of_squares_1(&numbers);
+    let sum_of_squares_2 = compute_sum_of_squares_2(&numbers);
+
+    println!("sum #1 = {}", sum_of_squares_1);
+    println!("sum #2 = {}", sum_of_squares_2);
+}
