More code.

Change-Id: Ie53ea58b3d0e8e906a2e51752ecfbe1e434b4261
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);
+}