mirror of
https://github.com/vercel-labs/scriptc.git
synced 2026-11-04 08:04:37 +08:00
The jammed loop of jamSaturatingLoops now tests whether every accumulator is full only when `j & 3` is 3, and keeps the inner loop's own bound. Past the iteration where every accumulator is full, the copies' ORs leave the accumulators full and every other value they compute is dead, so running up to three more iterations changes no result. The copies' statements now alternate in the jammed loop, and each local's copies are added next to each other. The vectorizer pairs neighboring values of the loop's header, which were a copy's real and imaginary parts in mandelbrot; it now packs the same value of two copies into one vector, without lane shuffles.