From efcc3b2ebaa8c3f84430c99e6eeb362b0efeee5a Mon Sep 17 00:00:00 2001 From: tg74 Date: Mon, 1 Mar 2021 05:54:29 +0000 Subject: [PATCH] avxtestgenerator: working on new tests for compressed disp8*N git-svn-id: branches/tg74/avx512-0037785@48845 - --- tests/utils/avx/asmtestgenerator.pas | 51 ++++++++++++++++++++++++++++ 1 file changed, 51 insertions(+) diff --git a/tests/utils/avx/asmtestgenerator.pas b/tests/utils/avx/asmtestgenerator.pas index 4e223be760..1e96de98f1 100644 --- a/tests/utils/avx/asmtestgenerator.pas +++ b/tests/utils/avx/asmtestgenerator.pas @@ -4783,6 +4783,35 @@ begin (OItem4.OpTyp in BMEMTYPES) then iOpNumMRef := 4; case il_Operands of + 2: begin + sLogMsg := ''; + sLogMsg := MapOperand(OItem1.Optyp) + MapOperand(OItem2.Optyp) + MapOperand(OItem3.Optyp); + if sLogMsg <> '' then + begin + //if (sLogMsg <> 'RMI') and + // (sLogMsg <> 'RRM') and + // (sLogMsg <> 'RMR') and + // (sLogMsg <> 'KKK') and + // (sLogMsg <> 'KKI') and + // (sLogMsg <> 'XXX') and + // (sLogMsg <> 'YYY') and + // (sLogMsg <> 'ZZZ') and + // (sLogMsg <> 'XXI') and + // (sLogMsg <> 'YYI') and + // (sLogMsg <> 'ZZI') and + // (sLogMsg <> 'XYI') and + // (sLogMsg <> 'YZI') and + // (sLogMsg <> 'XZI') and + // (sLogMsg <> 'RXI') and + // (sLogMsg <> 'RYI') and + // (sLogMsg <> 'RZI') and + // + // + // (sLogMsg <> 'XXR') then + + writeln('offen : ' + sLogMsg + ' (' + aInst + ')'); + end; + end; 3: if (OItem1.OpTyp = otKReg) and (OItem2.OpTyp = otXMMReg) and (OItem3.OpTyp in MEMTYPES) then OpMode := omKXM @@ -5069,6 +5098,28 @@ begin result.Add(AsmCodeBlockCompare(iAsmCounter, cmKORTESTNC)); end; + omMYI: begin + result.Add(format('%20s %6s + $2000, %6s, %s', [aInst, OItem1.Values[il_Op1], OItem2.Values[il_Op2], OItem3.Values[il_Op3] ])); + result.Add(format('%20s %6s, %s', ['vmovdqu', 'ymm0', OItem1.Values[il_Op1]])); + result.Add(format('%20s %6s, %s + $2000', ['vmovdqu', 'ymm1', OItem1.Values[il_Op1]])); + + result.Add(format('%20s %6s, %6s, %s', ['vpcmpeqd', 'K2', 'YMM0', 'YMM1'])); + + result.Add(AsmCodeBlockCompare(iAsmCounter, cmKORTESTNC)); + end; + omMZI: begin + result.Add(format('%20s %6s + $2000, %6s, %s', [aInst, OItem1.Values[il_Op1], OItem2.Values[il_Op2], OItem3.Values[il_Op3] ])); + result.Add(format('%20s %6s, %s', ['vmovdqu', 'zmm0', OItem1.Values[il_Op1]])); + result.Add(format('%20s %6s, %s + $2000', ['vmovdqu', 'zmm1', OItem1.Values[il_Op1]])); + + result.Add(format('%20s %6s, %6s, %s', ['vpcmpeqq', 'K2', 'ZMM0', 'ZMM1'])); + + result.Add(AsmCodeBlockCompare(iAsmCounter, cmKORTESTNC)); + end; + + + + omXB32I, omXB64I: begin sMREF := OItem2.Values[il_Op2];