  We develop a recursive algorithm to generalize the quantum SWAP test for an
arbitrary number $m$ of quantum states requiring $O(m)$ controlled-swap (CSWAP)
gates and $O(\log m)$ ancillary qubits. We construct a quantum circuit able to
simultaneously measure overlaps of $m$ arbitrary pure states. Our construction
relies on a pairing unitary that generates a superposition state where every
pair of input states is labelled by a basis state formed by the ancillaries.
