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