summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-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 := '';