2
0
Эх сурвалжийг харах

working on new testmethods avx512-memref-operands - 'compressed disp8*N'

git-svn-id: branches/tg74/avx512-0037785@48873 -
tg74 4 жил өмнө
parent
commit
e6ed010e92

+ 93 - 8
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 := '';