In assembler_x86.hpp/cpp we currently have a few cases of (AVX) vector methods which do not immediately correspond to native instructions. This can be confusing and makes it harder to understand what they methods actually expect and generate.
Specifically, the vextract* and vinsert* methods do not take the right number of arguments, and the mnemonics are not matching. For example:
void Assembler::vinsertf128h(XMMRegister dst, XMMRegister nds, XMMRegister src);
The actual instruction is called "vinserf128", and takes three registers and an immediate which decides how to shuffle the bits.
Specifically, the vextract* and vinsert* methods do not take the right number of arguments, and the mnemonics are not matching. For example:
void Assembler::vinsertf128h(XMMRegister dst, XMMRegister nds, XMMRegister src);
The actual instruction is called "vinserf128", and takes three registers and an immediate which decides how to shuffle the bits.