I guess you probably posted this as some sort of joke, but people seem to be taking you seriously, so I am going to take the bait and respond seriously.<p>I am really at a loss as to how the current SIMD.js API for shuffles could possibly be fast, or how using vector arguments to specify the permutation would make it slower.<p>No hardware instruction set has an instruction that takes 10 or 18 separate operands the way the SIMD.js API does.  NEON has VTBL and VTBX, SSE2 doesn&#x27;t have shuffling instructions at all (unless you count the rather pathetic SHUFPD, which packs <i>two</i> double-precision values into its output), and SSSE3 adds PSHUFB.  <i>All</i> of them use vector arguments to provide the indices for shuffling.<p>To compile a SIMD.Int8x16.shuffle call into an efficient PSHUFB, the compiler is going to have to figure out whether the s15:0 arguments are drawn from an existing vector <i>and additionally that they all necessarily index into only one of the vector arguments</i>.  VTBL is more powerful, but it still needs the indices to be in a vector.  So if the compiler isn&#x27;t able to figure out that you were extracting the indices from a vector, it has to reconstitute that vector in order to invoke VTBL.