Under SF #2688956 and SF #2688950 I mis-interpreted
the real problem... for which I'm now filing this.
Attached find a bunch of simple test cases. They do
work for e.g. YASM (aside from the aliased variants,
which YASM doesn't seem to support), but generate a
bunch of errors under NASM -- it looks like XMM vs
YMM wasn't implemented properly for FMA.
testcases
Bug indeed. The VEX.W and VEX.L bits were conflated, so only half the possible vector instructions were generated.
This item has been resolved; the fix has been checked into git (http://repo.or.cz/w/nasm.git) and will be in the next release.
You can usually also obtain a nightly snapshot at ftp://ftp.zytor.com/pub/nasm/snapshots/; the snapshot robot usually runs some time between 07:00 and 10:30 UTC, but sometimes runs immediately if there was no previous snapshot for today.
binary output
Now it recognizes all the variants, but emits an
incorrect opcode byte for several of them. Find
a BIN and a LST file attached; I believe this is
how the output should look like. (YASM matches,
except for the aliases that it doesn't support.)
In essence, if you vertically scan over that LST
file, then the opcode byte should go up by one,
and jump from 9xh to Axh to Bxh. Sort of linear.
File Added: 00.bin
list output
File Added: 00.lst
Oh, and it looks like SF is being stupid again: apparently
it appended "0a 20 09 20 20 09 20 0a" to the end of this
attached BIN file for some reason. Sigh. Great.
Confirmed, fixed and pushed.