The reported observations will be added into the documentation.
Only a few comments:
The tests cover the interpreter implementation and then check the correctness of the compiled VMs transitively by comparing its outputs to the output of the interpreter.
Fixed in commit c433f6d.
Yes, we used the VTune Amplifier during the development of Superscalar hash.
The value of opGroup_ is checked by a condition in selectDestination. Specifically this condition:
(registers[i].lastOpGroup != opGroup_ || registers[i].lastOpPar != opGroupPar_)
The purpose of this condition is to make sure that two operations that can cancel out are not sequentially applied with the same source register. ADD and SUB are such operations, so ISUB_R cannot immediately follow IADD_RS with the same source register (opGroupPar_).
Keys longer than 60 bytes are truncated when initializing SuperscalarHash (see blake2_generator.cpp:40).
NULL checks were added in commit aaa6e4e.