AVX testing
Peter Johnson
peter at tortall.net
Fri Apr 11 11:38:42 PDT 2008
On Fri, 11 Apr 2008 14:35:00 +0300, Veprinsky, Dmitri wrote
> How do you test your AVX implementation?
I wrote exhaustive testcases of all valid mnenomic and operand combinations
(see the .asm files in the commit, listed below), going through all of the
descriptions in the AVX reference manual. I then validated the generated code
using a disassembler from a completely independent codebase (GNU binutils).
These testcases are now included in the automated yasm regression suite.
The test files are:
AVX instructions:
http://www.tortall.net/projects/yasm/browser/trunk/yasm/modules/arch/x86/tests/avx.asm?rev=2051
AVX condition code aliases:
http://www.tortall.net/projects/yasm/browser/trunk/yasm/modules/arch/x86/tests/avxcc.asm?rev=2051
AES instructions:
http://www.tortall.net/projects/yasm/browser/trunk/yasm/modules/arch/x86/tests/aes.asm?rev=2051
CLMUL instruction and variants:
http://www.tortall.net/projects/yasm/browser/trunk/yasm/modules/arch/x86/tests/clmul.asm?rev=2051
FMA instructions:
http://www.tortall.net/projects/yasm/browser/trunk/yasm/modules/arch/x86/tests/fma.asm?rev=2051
VPERMIxxL2 variants:
http://www.tortall.net/projects/yasm/browser/trunk/yasm/modules/arch/x86/tests/vpermil2.asm?rev=2051
The only part that is not formally validated in this manner is /invalid/
mnenomic/operand combinations. I did a significant amount of informal testing
during development but have not yet committed a testcase.
Peter
More information about the yasm-devel
mailing list