X86MCInstLower::Lower has a huge switch-cases, from which D150068 removed
VMOVSS. It caused the unoptimized VMOVSS to wrongly fall
to the default label. The default label exchanged the 1st and 2nd
operand, but we should exchange the 0th and 2nd operand.
In this patch, we move the code in the default lable about "VEX3 to
VEX2" to the function X86::optimizeInstFromVEX3ToVEX2 to fix the bug.
Since the function is shared, a side effect is that more encoding
optimizations are done on the Asmparser side. Considering we already
use reverse-encoding for optimization in AsmParser before this patch,
I believe the change is positive and expected.