I was just reading "Intel Advanced Vector Extensions Programming Reference" for the first time and a few questions popped up immediately after readingsection 4. Maybe some reader in this forum can help me out.
1) does VEX prefix allow any type of prefix before it ? According to section 4.1.1, 4.1.2 and 4.1.3 I understand that no prefix is allowed, but figure 4-1 suggests the opposite
2) can I use the VEX prefix to encode an instruction like for example RDTSC (0F 31)?
The good thing about VEX encoding is that it has compacted the encoding and added the possibility of adding more opcodes. The usual SIMD perfixes 0F, 66, F2 F3 etc are encoded in 2nd or 3rd byte of the VEX. However when you decode those instructions these prefixes are present. You can not encode RDTSC with VEX.
VEX perfix is only valid for AVX instructions - SIMD instructions (encoded in VEX form).