diff options
author | tg74 <tg74@3ad0048d-3df7-0310-abae-a5850022a9f2> | 2021-03-03 16:27:21 +0000 |
---|---|---|
committer | tg74 <tg74@3ad0048d-3df7-0310-abae-a5850022a9f2> | 2021-03-03 16:27:21 +0000 |
commit | b5159e90941258b53da1ef53d7560eb6be3c9b6c (patch) | |
tree | 09d8f95c42ddccd59e58e839d3a967bcc5fcd94c | |
parent | 82de5ab95e5eaf4ae9af53be425357ccad5ad93d (diff) | |
download | fpc-b5159e90941258b53da1ef53d7560eb6be3c9b6c.tar.gz |
working on new testmethods avx512-memref-operands - 'compressed disp8*N'
git-svn-id: https://svn.freepascal.org/svn/fpc/branches/tg74@48873 3ad0048d-3df7-0310-abae-a5850022a9f2
-rw-r--r-- | avx512-0037785/tests/utils/avx/asmtestgenerator.pas | 101 |
1 files changed, 93 insertions, 8 deletions
diff --git a/avx512-0037785/tests/utils/avx/asmtestgenerator.pas b/avx512-0037785/tests/utils/avx/asmtestgenerator.pas index 5b03a6908d..254cf49e24 100644 --- a/avx512-0037785/tests/utils/avx/asmtestgenerator.pas +++ b/avx512-0037785/tests/utils/avx/asmtestgenerator.pas @@ -5535,17 +5535,102 @@ begin result.Add(AsmCodeBlockCompare(iAsmCounter, cmKORTESTNC)); end; - omKXB32I, omKXB64I, omKXMI, omKYB32I, omKYB64I, omKYMI, omKZB32I, omKZB64I, omKZMI:; - omXXMI, omXXB32I, omXXB64I:; - omYYMI, omYYB32I, omYYB64I:; - omZZMI, omZZB32I, omZZB64I:; + omKXB32I, + omKXB64I: + begin + result.Add(format('%20s %6s, %6s, %6s + $2000, %s', [aInst, 'K2', OItem2.Values[il_Op2], OItem3.Values[il_Op3], OItem4.Values[il_Op4]])); + result.Add(format('%20s %6s,%6s, %s', ['kxorq', 'K2', OItem1.Values[il_Op1], 'K2'])); + + result.Add(AsmCodeBlockCompare(iAsmCounter, cmXORTestNZ)); + end; + omKXMI: + begin + result.Add(format('%20s %6s, %6s, %6s + $2000, %s', [aInst, 'K2', OItem2.Values[il_Op2], OItem3.Values[il_Op3], OItem4.Values[il_Op4]])); + result.Add(format('%20s %6s,%6s, %s', ['kxorq', 'K2', OItem1.Values[il_Op1], 'K2'])); + + result.Add(AsmCodeBlockCompare(iAsmCounter, cmXORTestNZ)); + end; + omKYB32I, + omKYB64I: + begin + result.Add(format('%20s %6s, %6s, %6s + $2000, %s', [aInst, 'K2', OItem2.Values[il_Op2], OItem3.Values[il_Op3], OItem4.Values[il_Op4]])); + result.Add(format('%20s %6s,%6s, %s', ['kxorq', 'K2', OItem1.Values[il_Op1], 'K2'])); + result.Add(AsmCodeBlockCompare(iAsmCounter, cmXORTestNZ)); + end; + omKYMI: + begin + result.Add(format('%20s %6s, %6s, %6s + $2000, %s', [aInst, 'K2', OItem2.Values[il_Op2], OItem3.Values[il_Op3], OItem4.Values[il_Op4]])); + result.Add(format('%20s %6s,%6s, %s', ['kxorq', 'K2', OItem1.Values[il_Op1], 'K2'])); - else begin - sLogMsg := ''; - sLogMsg := MapOperand(OItem1.Optyp) + MapOperand(OItem2.Optyp) + MapOperand(OItem3.Optyp); - //writeln('offen - : ' + sLogMsg + ' (' + aInst + ')'); + result.Add(AsmCodeBlockCompare(iAsmCounter, cmXORTestNZ)); + end; + + omXXB32I, + omXXB64I: + begin + sMREF := OItem3.Values[il_Op3]; + + result.Add(format('%20s %6s, %6, %6s + $2000, %s', [aInst, 'XMM1', OItem2.Values[il_Op2], sMREF, OItem4.Values[il_Op4]])); + result.Add(format('%20s %6s, %6s, %6, %s', ['vpcmpeqw', 'K2', OItem1.Values[il_Op1], 'XMM1'])); + + result.Add(AsmCodeBlockCompare(iAsmCounter, cmKORTESTNC)); end; + omXXMI: + begin + sMREF := OItem3.Values[il_Op3]; + + result.Add(format('%20s %6s, %6, %6s + $2000, %s', [aInst, 'XMM1', OItem2.Values[il_Op2], sMREF, OItem4.Values[il_Op4]])); + result.Add(format('%20s %6s, %6s, %6, %s', ['vpcmpeqw', 'K2', OItem1.Values[il_Op1], 'XMM1'])); + + result.Add(AsmCodeBlockCompare(iAsmCounter, cmKORTESTNC)); + end; + omYYB32I, + omYYB64I, + omYYMI: + begin + sMREF := OItem3.Values[il_Op3]; + + result.Add(format('%20s %6s, %6, %6s + $2000, %s', [aInst, 'YMM1', OItem2.Values[il_Op2], sMREF, OItem4.Values[il_Op4]])); + result.Add(format('%20s %6s, %6s, %6, %s', ['vpcmpeqd', 'K2', OItem1.Values[il_Op1], 'YMM1'])); + + result.Add(AsmCodeBlockCompare(iAsmCounter, cmKORTESTNC)); + end; + omKZB32I, + omKZB64I, + omKZMI: + begin + result.Add(format('%20s %6s, %6s, %6s + $2000, %s', [aInst, 'K2', OItem2.Values[il_Op2], OItem3.Values[il_Op3], OItem4.Values[il_Op4]])); + result.Add(format('%20s %6s,%6s, %s', ['kxorq', 'K2', OItem1.Values[il_Op1], 'K2'])); + + result.Add(AsmCodeBlockCompare(iAsmCounter, cmXORTestNZ)); + end; + //omKZMI: + // begin + // sMREF := OItem3.Values[il_Op3]; + // + // result.Add(format('%20s %6s, %6, %6s + $2000, %s', [aInst, 'ZMM1', OItem2.Values[il_Op2], sMREF, OItem4.Values[il_Op4]])); + // result.Add(format('%20s %6s, %6s, %6, %s', ['vpcmpeqq', 'K2', OItem1.Values[il_Op1], 'ZMM1'])); + // + // result.Add(AsmCodeBlockCompare(iAsmCounter, cmKORTESTNC)); + // end; + + omZZB32I, + omZZB64I, + omZZMI: + begin + sMREF := OItem3.Values[il_Op3]; + + result.Add(format('%20s %6s, %6, %6s + $2000, %s', [aInst, 'ZMM1', OItem2.Values[il_Op2], sMREF, OItem4.Values[il_Op4]])); + result.Add(format('%20s %6s, %6s, %6, %s', ['vpcmpeqq', 'K2', OItem1.Values[il_Op1], 'ZMM1'])); + + result.Add(AsmCodeBlockCompare(iAsmCounter, cmKORTESTNC)); + end; + else begin + sLogMsg := ''; + sLogMsg := MapOperand(OItem1.Optyp) + MapOperand(OItem2.Optyp) + MapOperand(OItem3.Optyp); + writeln('offen - : ' + sLogMsg + ' (' + aInst + ')'); + end; end; sRegCombi := ''; |