Original sequential C version of aobench from https://code.google.com/p/aobench/
Live hosting of JS versions of aobench: [sequential] (http://wahbahdoo.github.io/aobench/js/ao.html); [SIMD] (http://wahbahdoo.github.io/aobench/js/ao_simd.html) (polyfill, i.e. slow!)
Multiple versions of SIMD implementations in C:
- _aos: array of structures; rgb values mapped to 3 out of 4 lanes of vector ops
- _soa: structure of arrays; hotspot function ambient_occlusion is SIMDized to operate on 4 iterations of the loop at once
- _soa_nossemath: soa, but serial sin/cos rather than using a [SSE math library] (http://gruntthepeon.free.fr/ssemath/sse_mathfun.h)
- _soa_inlined: soa, but some more inlining and code refactoring for non-simd-related optimization
JS SIMD implementation is equivalent to _soa_nossemath.