summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authortg74 <tg74@3ad0048d-3df7-0310-abae-a5850022a9f2>2021-03-03 16:27:21 +0000
committertg74 <tg74@3ad0048d-3df7-0310-abae-a5850022a9f2>2021-03-03 16:27:21 +0000
commitb5159e90941258b53da1ef53d7560eb6be3c9b6c (patch)
tree09d8f95c42ddccd59e58e839d3a967bcc5fcd94c
parent82de5ab95e5eaf4ae9af53be425357ccad5ad93d (diff)
downloadfpc-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.pas101
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 := '';