VEX 前缀可以与通用指令一起使用吗?

Can VEX prefixes be used with general-purpose instructions?

我发现 Intel 和 AMD 手册都不清楚 VEX 前缀是否可以用在没有定义特殊行为的指令上,它出现的方式 REX 可以。比如CPUID0F A2,我可以把它编码成VEX.LIG.0F.WIG A2C4 E1 78 A2)吗? NOP 使用 VEX.LIG.WIG 90 (C5 F8 90) 的 2 字节 VEX 形式怎么样?

如果允许,是否必须将未使用的字段设置为特定值? EVEX 呢?

没有

Intel 的 insn ref 手册(第 2 卷)非常清楚。请参阅 wiki 中的 link。它列出了每个指令助记符的所有有效编码。例如,它分别列出了 PSHUFB 的非 VEX 和 VEX 编码。同样,Intel Future Extensions pdf 列出了每个 EVEX 指令的所有有效编码。

列出了imul的非VEX编码,因为没有VEX编码。

列出了 pext r64a, r64b, r/m64 的 VEX 编码,因为 BMI2 整数指令仅适用于 VEX 编码。