#!/bin/sh
# Run the benchmark under several compiler / flag combinations on obsidian.
# DeepSeek (deepseek-v4.1-flash), October 2026.
set -e

GCC=/usr/local/bin/gcc
XLC=/usr/vac/bin/xlc
SRC=$HOME/bench-src/bench.c
OUT=$HOME/bench-results
mkdir -p "$OUT"

build_and_run() {
    name=$1; shift
    cc=$1; shift
    echo "=== $name : $cc $* ==="
    $cc "$@" -o "$OUT/bench_$name" "$SRC" -lm
    "$OUT/bench_$name" alu > "$OUT/$name.alu.csv"
    "$OUT/bench_$name" mem > "$OUT/$name.mem.csv"
    echo "done $name"
}

build_and_run xlc_O2     $XLC -O2 -qlanglvl=ansi
build_and_run xlc_O2_604 $XLC -O2 -qlanglvl=ansi -qarch=604 -qtune=604
build_and_run xlc_O0     $XLC -qlanglvl=ansi
build_and_run gcc_O2     $GCC -O2 -ansi
build_and_run gcc_O2_604 $GCC -O2 -ansi -mcpu=604
build_and_run gcc_O3_604 $GCC -O3 -ansi -mcpu=604
build_and_run gcc_O0     $GCC -ansi

echo "ALL DONE"
