x86inc: fix some corner cases of SWAP

SWAP with >=3 named (rather than numbered) args
PERMUTE followed by SWAP with 2 named args
used to produce the wrong permutation
x86inc: create xm# and ym#, analagous to m#

For when we want to mix simd sizes within one function.