- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
I'm confused about whether EVEX.b = 1 is allowed (and ignored) for instructions such as
VPMINUD reg, reg, reg
I cite this case because the gnu assembler testsuite has a case with this instruction but b = 1. objdump disassembles the instruction without respect to the value of b.
If the third operand is memory, then it can have {b32/64} attached and the value of b is significant. But with a register, there is no exception or rounding inherent in the operation, so the value of b shouldn't matter.
Table 4-12, the fourth line, suggests that b = 1 is a #UD, but it isn't clear whether this applies to VPMINUD or not. It refers to Table 4-6, which is instructions not affected by embedded broadcast. But this distinction only makes sense with a memory operand.
In the applicable section, Exceptions Class E4, I couldn't find anything about a #UD when b = 1 and modr/m mod = 11b.
Could you tell me whether the instruction is valid or not, and point to where in the doc this is made clear (or perhaps the doc needs to be improved). Thanks.
- Tags:
- Intel® Advanced Vector Extensions (Intel® AVX)
- Intel® Streaming SIMD Extensions
- Parallel Computing
Link Copied
- Subscribe to RSS Feed
- Mark Topic as New
- Mark Topic as Read
- Float this Topic for Current User
- Bookmark
- Subscribe
- Printer Friendly Page