Text file src/cmd/asm/internal/asm/testdata/amd64enc_extra.s

     1  // Copyright 2017 The Go Authors. All rights reserved.
     2  // Use of this source code is governed by a BSD-style
     3  // license that can be found in the LICENSE file.
     4  
     5  // This input extends auto-generated amd64enc.s test suite
     6  // with manually added tests.
     7  
     8  #include "../../../../../runtime/textflag.h"
     9  
    10  TEXT asmtest(SB),DUPOK|NOSPLIT,$0
    11  	// AVX2GATHER: basic combinations.
    12  	VPGATHERDQ Y2, (BP)(X7*2), Y1           // c4e2ed904c7d00
    13  	VPGATHERDQ X12, (R13)(X14*2), X11       // c40299905c7500
    14  	VPGATHERDQ Y12, (R13)(X14*2), Y11       // c4029d905c7500
    15  	VPGATHERDQ Y0, 8(X4*1), Y6              // c4e2fd90342508000000
    16  	VPGATHERDQ Y0, -8(X4*1), Y6             // c4e2fd903425f8ffffff
    17  	VPGATHERDQ Y0, 0(X4*1), Y6              // c4e2fd90342500000000
    18  	VPGATHERDQ Y0, 664(X4*1), Y6            // c4e2fd90342598020000
    19  	VPGATHERDQ Y0, 8(X4*8), Y6              // c4e2fd9034e508000000
    20  	VPGATHERDQ Y0, -8(X4*8), Y6             // c4e2fd9034e5f8ffffff
    21  	VPGATHERDQ Y0, 0(X4*8), Y6              // c4e2fd9034e500000000
    22  	VPGATHERDQ Y0, 664(X4*8), Y6            // c4e2fd9034e598020000
    23  	VPGATHERDQ Y0, 8(X14*1), Y6             // c4a2fd90343508000000
    24  	VPGATHERDQ Y0, -8(X14*1), Y6            // c4a2fd903435f8ffffff
    25  	VPGATHERDQ Y0, 0(X14*1), Y6             // c4a2fd90343500000000
    26  	VPGATHERDQ Y0, 664(X14*1), Y6           // c4a2fd90343598020000
    27  	VPGATHERDQ Y0, 8(X14*8), Y6             // c4a2fd9034f508000000
    28  	VPGATHERDQ Y0, -8(X14*8), Y6            // c4a2fd9034f5f8ffffff
    29  	VPGATHERDQ Y0, 0(X14*8), Y6             // c4a2fd9034f500000000
    30  	VPGATHERDQ Y0, 664(X14*8), Y6           // c4a2fd9034f598020000
    31  	VPGATHERDQ X2, (BP)(X7*2), X1           // c4e2e9904c7d00
    32  	VPGATHERDQ Y2, (BP)(X7*2), Y1           // c4e2ed904c7d00
    33  	VPGATHERDQ X12, (R13)(X14*2), X11       // c40299905c7500
    34  	VPGATHERDQ Y12, (R13)(X14*2), Y11       // c4029d905c7500
    35  	VPGATHERDQ Y0, 8(X4*1), Y6              // c4e2fd90342508000000
    36  	VPGATHERDQ Y0, -8(X4*1), Y6             // c4e2fd903425f8ffffff
    37  	VPGATHERDQ Y0, 0(X4*1), Y6              // c4e2fd90342500000000
    38  	VPGATHERDQ Y0, 664(X4*1), Y6            // c4e2fd90342598020000
    39  	VPGATHERDQ Y0, 8(X4*8), Y6              // c4e2fd9034e508000000
    40  	VPGATHERDQ Y0, -8(X4*8), Y6             // c4e2fd9034e5f8ffffff
    41  	VPGATHERDQ Y0, 0(X4*8), Y6              // c4e2fd9034e500000000
    42  	VPGATHERDQ Y0, 664(X4*8), Y6            // c4e2fd9034e598020000
    43  	VPGATHERDQ Y0, 8(X14*1), Y6             // c4a2fd90343508000000
    44  	VPGATHERDQ Y0, -8(X14*1), Y6            // c4a2fd903435f8ffffff
    45  	VPGATHERDQ Y0, 0(X14*1), Y6             // c4a2fd90343500000000
    46  	VPGATHERDQ Y0, 664(X14*1), Y6           // c4a2fd90343598020000
    47  	VPGATHERDQ Y0, 8(X14*8), Y6             // c4a2fd9034f508000000
    48  	VPGATHERDQ Y0, -8(X14*8), Y6            // c4a2fd9034f5f8ffffff
    49  	VPGATHERDQ Y0, 0(X14*8), Y6             // c4a2fd9034f500000000
    50  	VPGATHERDQ Y0, 664(X14*8), Y6           // c4a2fd9034f598020000
    51  	VPGATHERQQ X2, (BP)(X7*2), X1           // c4e2e9914c7d00
    52  	VPGATHERQQ Y2, (BP)(Y7*2), Y1           // c4e2ed914c7d00
    53  	VPGATHERQQ X12, (R13)(X14*2), X11       // c40299915c7500
    54  	VPGATHERQQ Y12, (R13)(Y14*2), Y11       // c4029d915c7500
    55  	VPGATHERQQ X2, (BP)(X7*2), X1           // c4e2e9914c7d00
    56  	VPGATHERQQ Y2, (BP)(Y7*2), Y1           // c4e2ed914c7d00
    57  	VPGATHERQQ X12, (R13)(X14*2), X11       // c40299915c7500
    58  	VPGATHERQQ Y12, (R13)(Y14*2), Y11       // c4029d915c7500
    59  	VGATHERDPD X2, (BP)(X7*2), X1           // c4e2e9924c7d00
    60  	VGATHERDPD Y2, (BP)(X7*2), Y1           // c4e2ed924c7d00
    61  	VGATHERDPD X12, (R13)(X14*2), X11       // c40299925c7500
    62  	VGATHERDPD Y12, (R13)(X14*2), Y11       // c4029d925c7500
    63  	VGATHERDPD Y0, 8(X4*1), Y6              // c4e2fd92342508000000
    64  	VGATHERDPD Y0, -8(X4*1), Y6             // c4e2fd923425f8ffffff
    65  	VGATHERDPD Y0, 0(X4*1), Y6              // c4e2fd92342500000000
    66  	VGATHERDPD Y0, 664(X4*1), Y6            // c4e2fd92342598020000
    67  	VGATHERDPD Y0, 8(X4*8), Y6              // c4e2fd9234e508000000
    68  	VGATHERDPD Y0, -8(X4*8), Y6             // c4e2fd9234e5f8ffffff
    69  	VGATHERDPD Y0, 0(X4*8), Y6              // c4e2fd9234e500000000
    70  	VGATHERDPD Y0, 664(X4*8), Y6            // c4e2fd9234e598020000
    71  	VGATHERDPD Y0, 8(X14*1), Y6             // c4a2fd92343508000000
    72  	VGATHERDPD Y0, -8(X14*1), Y6            // c4a2fd923435f8ffffff
    73  	VGATHERDPD Y0, 0(X14*1), Y6             // c4a2fd92343500000000
    74  	VGATHERDPD Y0, 664(X14*1), Y6           // c4a2fd92343598020000
    75  	VGATHERDPD Y0, 8(X14*8), Y6             // c4a2fd9234f508000000
    76  	VGATHERDPD Y0, -8(X14*8), Y6            // c4a2fd9234f5f8ffffff
    77  	VGATHERDPD Y0, 0(X14*8), Y6             // c4a2fd9234f500000000
    78  	VGATHERDPD Y0, 664(X14*8), Y6           // c4a2fd9234f598020000
    79  	VGATHERDPD X2, (BP)(X7*2), X1           // c4e2e9924c7d00
    80  	VGATHERDPD Y2, (BP)(X7*2), Y1           // c4e2ed924c7d00
    81  	VGATHERDPD X12, (R13)(X14*2), X11       // c40299925c7500
    82  	VGATHERDPD Y12, (R13)(X14*2), Y11       // c4029d925c7500
    83  	VGATHERDPD Y0, 8(X4*1), Y6              // c4e2fd92342508000000
    84  	VGATHERDPD Y0, -8(X4*1), Y6             // c4e2fd923425f8ffffff
    85  	VGATHERDPD Y0, 0(X4*1), Y6              // c4e2fd92342500000000
    86  	VGATHERDPD Y0, 664(X4*1), Y6            // c4e2fd92342598020000
    87  	VGATHERDPD Y0, 8(X4*8), Y6              // c4e2fd9234e508000000
    88  	VGATHERDPD Y0, -8(X4*8), Y6             // c4e2fd9234e5f8ffffff
    89  	VGATHERDPD Y0, 0(X4*8), Y6              // c4e2fd9234e500000000
    90  	VGATHERDPD Y0, 664(X4*8), Y6            // c4e2fd9234e598020000
    91  	VGATHERDPD Y0, 8(X14*1), Y6             // c4a2fd92343508000000
    92  	VGATHERDPD Y0, -8(X14*1), Y6            // c4a2fd923435f8ffffff
    93  	VGATHERDPD Y0, 0(X14*1), Y6             // c4a2fd92343500000000
    94  	VGATHERDPD Y0, 664(X14*1), Y6           // c4a2fd92343598020000
    95  	VGATHERDPD Y0, 8(X14*8), Y6             // c4a2fd9234f508000000
    96  	VGATHERDPD Y0, -8(X14*8), Y6            // c4a2fd9234f5f8ffffff
    97  	VGATHERDPD Y0, 0(X14*8), Y6             // c4a2fd9234f500000000
    98  	VGATHERDPD Y0, 664(X14*8), Y6           // c4a2fd9234f598020000
    99  	VGATHERQPD X2, (BP)(X7*2), X1           // c4e2e9934c7d00
   100  	VGATHERQPD Y2, (BP)(Y7*2), Y1           // c4e2ed934c7d00
   101  	VGATHERQPD X12, (R13)(X14*2), X11       // c40299935c7500
   102  	VGATHERQPD Y12, (R13)(Y14*2), Y11       // c4029d935c7500
   103  	VGATHERQPD X2, (BP)(X7*2), X1           // c4e2e9934c7d00
   104  	VGATHERQPD Y2, (BP)(Y7*2), Y1           // c4e2ed934c7d00
   105  	VGATHERQPD X12, (R13)(X14*2), X11       // c40299935c7500
   106  	VGATHERQPD Y12, (R13)(Y14*2), Y11       // c4029d935c7500
   107  	VGATHERDPS X2, (BP)(X7*2), X1           // c4e269924c7d00
   108  	VGATHERDPS Y2, (BP)(Y7*2), Y1           // c4e26d924c7d00
   109  	VGATHERDPS X12, (R13)(X14*2), X11       // c40219925c7500
   110  	VGATHERDPS Y12, (R13)(Y14*2), Y11       // c4021d925c7500
   111  	VGATHERDPS X3, 8(X4*1), X6              // c4e26192342508000000
   112  	VGATHERDPS X3, -8(X4*1), X6             // c4e261923425f8ffffff
   113  	VGATHERDPS X3, 0(X4*1), X6              // c4e26192342500000000
   114  	VGATHERDPS X3, 664(X4*1), X6            // c4e26192342598020000
   115  	VGATHERDPS X3, 8(X4*8), X6              // c4e2619234e508000000
   116  	VGATHERDPS X3, -8(X4*8), X6             // c4e2619234e5f8ffffff
   117  	VGATHERDPS X3, 0(X4*8), X6              // c4e2619234e500000000
   118  	VGATHERDPS X3, 664(X4*8), X6            // c4e2619234e598020000
   119  	VGATHERDPS X3, 8(X14*1), X6             // c4a26192343508000000
   120  	VGATHERDPS X3, -8(X14*1), X6            // c4a261923435f8ffffff
   121  	VGATHERDPS X3, 0(X14*1), X6             // c4a26192343500000000
   122  	VGATHERDPS X3, 664(X14*1), X6           // c4a26192343598020000
   123  	VGATHERDPS X3, 8(X14*8), X6             // c4a2619234f508000000
   124  	VGATHERDPS X3, -8(X14*8), X6            // c4a2619234f5f8ffffff
   125  	VGATHERDPS X3, 0(X14*8), X6             // c4a2619234f500000000
   126  	VGATHERDPS X3, 664(X14*8), X6           // c4a2619234f598020000
   127  	VGATHERDPS X2, (BP)(X7*2), X1           // c4e269924c7d00
   128  	VGATHERDPS Y2, (BP)(Y7*2), Y1           // c4e26d924c7d00
   129  	VGATHERDPS X12, (R13)(X14*2), X11       // c40219925c7500
   130  	VGATHERDPS Y12, (R13)(Y14*2), Y11       // c4021d925c7500
   131  	VGATHERDPS X5, 8(X4*1), X6              // c4e25192342508000000
   132  	VGATHERDPS X3, -8(X4*1), X6             // c4e261923425f8ffffff
   133  	VGATHERDPS X3, 0(X4*1), X6              // c4e26192342500000000
   134  	VGATHERDPS X3, 664(X4*1), X6            // c4e26192342598020000
   135  	VGATHERDPS X3, 8(X4*8), X6              // c4e2619234e508000000
   136  	VGATHERDPS X3, -8(X4*8), X6             // c4e2619234e5f8ffffff
   137  	VGATHERDPS X3, 0(X4*8), X6              // c4e2619234e500000000
   138  	VGATHERDPS X3, 664(X4*8), X6            // c4e2619234e598020000
   139  	VGATHERDPS X3, 8(X14*1), X6             // c4a26192343508000000
   140  	VGATHERDPS X3, -8(X14*1), X6            // c4a261923435f8ffffff
   141  	VGATHERDPS X3, 0(X14*1), X6             // c4a26192343500000000
   142  	VGATHERDPS X3, 664(X14*1), X6           // c4a26192343598020000
   143  	VGATHERDPS X3, 8(X14*8), X6             // c4a2619234f508000000
   144  	VGATHERDPS X3, -8(X14*8), X6            // c4a2619234f5f8ffffff
   145  	VGATHERDPS X3, 0(X14*8), X6             // c4a2619234f500000000
   146  	VGATHERDPS X3, 664(X14*8), X6           // c4a2619234f598020000
   147  	VGATHERQPS X2, (BP)(X7*2), X1           // c4e269934c7d00
   148  	VGATHERQPS X2, (BP)(Y7*2), X1           // c4e26d934c7d00
   149  	VGATHERQPS X12, (R13)(X14*2), X11       // c40219935c7500
   150  	VGATHERQPS X12, (R13)(Y14*2), X11       // c4021d935c7500
   151  	VGATHERQPS X2, (BP)(X7*2), X1           // c4e269934c7d00
   152  	VGATHERQPS X2, (BP)(Y7*2), X1           // c4e26d934c7d00
   153  	VGATHERQPS X12, (R13)(X14*2), X11       // c40219935c7500
   154  	VGATHERQPS X12, (R13)(Y14*2), X11       // c4021d935c7500
   155  	VPGATHERDD X2, (BP)(X7*2), X1           // c4e269904c7d00
   156  	VPGATHERDD Y2, (BP)(Y7*2), Y1           // c4e26d904c7d00
   157  	VPGATHERDD X12, (R13)(X14*2), X11       // c40219905c7500
   158  	VPGATHERDD Y12, (R13)(Y14*2), Y11       // c4021d905c7500
   159  	VPGATHERDD X3, 8(X4*1), X6              // c4e26190342508000000
   160  	VPGATHERDD X3, -8(X4*1), X6             // c4e261903425f8ffffff
   161  	VPGATHERDD X3, 0(X4*1), X6              // c4e26190342500000000
   162  	VPGATHERDD X3, 664(X4*1), X6            // c4e26190342598020000
   163  	VPGATHERDD X3, 8(X4*8), X6              // c4e2619034e508000000
   164  	VPGATHERDD X3, -8(X4*8), X6             // c4e2619034e5f8ffffff
   165  	VPGATHERDD X3, 0(X4*8), X6              // c4e2619034e500000000
   166  	VPGATHERDD X3, 664(X4*8), X6            // c4e2619034e598020000
   167  	VPGATHERDD X3, 8(X14*1), X6             // c4a26190343508000000
   168  	VPGATHERDD X3, -8(X14*1), X6            // c4a261903435f8ffffff
   169  	VPGATHERDD X3, 0(X14*1), X6             // c4a26190343500000000
   170  	VPGATHERDD X3, 664(X14*1), X6           // c4a26190343598020000
   171  	VPGATHERDD X3, 8(X14*8), X6             // c4a2619034f508000000
   172  	VPGATHERDD X3, -8(X14*8), X6            // c4a2619034f5f8ffffff
   173  	VPGATHERDD X3, 0(X14*8), X6             // c4a2619034f500000000
   174  	VPGATHERDD X3, 664(X14*8), X6           // c4a2619034f598020000
   175  	VPGATHERDD X2, (BP)(X7*2), X1           // c4e269904c7d00
   176  	VPGATHERDD Y2, (BP)(Y7*2), Y1           // c4e26d904c7d00
   177  	VPGATHERDD X12, (R13)(X14*2), X11       // c40219905c7500
   178  	VPGATHERDD Y12, (R13)(Y14*2), Y11       // c4021d905c7500
   179  	VPGATHERDD X3, 8(X4*1), X6              // c4e26190342508000000
   180  	VPGATHERDD X3, -8(X4*1), X6             // c4e261903425f8ffffff
   181  	VPGATHERDD X3, 0(X4*1), X6              // c4e26190342500000000
   182  	VPGATHERDD X3, 664(X4*1), X6            // c4e26190342598020000
   183  	VPGATHERDD X3, 8(X4*8), X6              // c4e2619034e508000000
   184  	VPGATHERDD X3, -8(X4*8), X6             // c4e2619034e5f8ffffff
   185  	VPGATHERDD X3, 0(X4*8), X6              // c4e2619034e500000000
   186  	VPGATHERDD X3, 664(X4*8), X6            // c4e2619034e598020000
   187  	VPGATHERDD X3, 8(X14*1), X6             // c4a26190343508000000
   188  	VPGATHERDD X3, -8(X14*1), X6            // c4a261903435f8ffffff
   189  	VPGATHERDD X3, 0(X14*1), X6             // c4a26190343500000000
   190  	VPGATHERDD X3, 664(X14*1), X6           // c4a26190343598020000
   191  	VPGATHERDD X3, 8(X14*8), X6             // c4a2619034f508000000
   192  	VPGATHERDD X3, -8(X14*8), X6            // c4a2619034f5f8ffffff
   193  	VPGATHERDD X3, 0(X14*8), X6             // c4a2619034f500000000
   194  	VPGATHERDD X3, 664(X14*8), X6           // c4a2619034f598020000
   195  	VPGATHERQD X2, (BP)(X7*2), X1           // c4e269914c7d00
   196  	VPGATHERQD X2, (BP)(Y7*2), X1           // c4e26d914c7d00
   197  	VPGATHERQD X12, (R13)(X14*2), X11       // c40219915c7500
   198  	VPGATHERQD X12, (R13)(Y14*2), X11       // c4021d915c7500
   199  	VPGATHERQD X2, (BP)(X7*2), X1           // c4e269914c7d00
   200  	VPGATHERQD X2, (BP)(Y7*2), X1           // c4e26d914c7d00
   201  	VPGATHERQD X12, (R13)(X14*2), X11       // c40219915c7500
   202  	VPGATHERQD X12, (R13)(Y14*2), X11       // c4021d915c7500
   203  	VPGATHERQQ X0, 0(X1*1), X2              // c4e2f991140d00000000
   204  	VPGATHERQQ Y0, 0(Y1*1), Y2              // c4e2fd91140d00000000
   205  	VPGATHERQQ X8, 0(X9*1), X10             // c422b991140d00000000
   206  	VPGATHERQQ Y8, 0(Y9*1), Y10             // c422bd91140d00000000
   207  	VPGATHERQQ X0, 0(X1*4), X2              // c4e2f991148d00000000
   208  	VPGATHERQQ Y0, 0(Y1*4), Y2              // c4e2fd91148d00000000
   209  	VPGATHERQQ X8, 0(X9*4), X10             // c422b991148d00000000
   210  	VPGATHERQQ Y8, 0(Y9*4), Y10             // c422bd91148d00000000
   211  	// AVX2GATHER: test SP/BP base with different displacements.
   212  	VPGATHERQQ X0, (SP)(X1*1), X2           // c4e2f991140c
   213  	VPGATHERQQ X0, 16(SP)(X1*1), X2         // c4e2f991540c10
   214  	VPGATHERQQ X0, 512(SP)(X1*1), X2        // c4e2f991940c00020000
   215  	VPGATHERQQ X0, (R12)(X1*1), X2          // c4c2f991140c
   216  	VPGATHERQQ X0, 16(R12)(X1*1), X2        // c4c2f991540c10
   217  	VPGATHERQQ X0, 512(R12)(X1*1), X2       // c4c2f991940c00020000
   218  	VPGATHERQQ X0, (BP)(X1*1), X2           // c4e2f991540d00
   219  	VPGATHERQQ X0, 16(BP)(X1*1), X2         // c4e2f991540d10
   220  	VPGATHERQQ X0, 512(BP)(X1*1), X2        // c4e2f991940d00020000
   221  	VPGATHERQQ X0, (R13)(X1*1), X2          // c4c2f991540d00
   222  	VPGATHERQQ X0, 16(R13)(X1*1), X2        // c4c2f991540d10
   223  	VPGATHERQQ X0, 512(R13)(X1*1), X2       // c4c2f991940d00020000
   224  	VPGATHERQQ Y0, (SP)(Y1*1), Y2           // c4e2fd91140c
   225  	VPGATHERQQ Y0, 16(SP)(Y1*1), Y2         // c4e2fd91540c10
   226  	VPGATHERQQ Y0, 512(SP)(Y1*1), Y2        // c4e2fd91940c00020000
   227  	VPGATHERQQ Y0, (R12)(Y1*1), Y2          // c4c2fd91140c
   228  	VPGATHERQQ Y0, 16(R12)(Y1*1), Y2        // c4c2fd91540c10
   229  	VPGATHERQQ Y0, 512(R12)(Y1*1), Y2       // c4c2fd91940c00020000
   230  	VPGATHERQQ Y0, (BP)(Y1*1), Y2           // c4e2fd91540d00
   231  	VPGATHERQQ Y0, 16(BP)(Y1*1), Y2         // c4e2fd91540d10
   232  	VPGATHERQQ Y0, 512(BP)(Y1*1), Y2        // c4e2fd91940d00020000
   233  	VPGATHERQQ Y0, (R13)(Y1*1), Y2          // c4c2fd91540d00
   234  	VPGATHERQQ Y0, 16(R13)(Y1*1), Y2        // c4c2fd91540d10
   235  	VPGATHERQQ Y0, 512(R13)(Y1*1), Y2       // c4c2fd91940d00020000
   236  	// Test low-8 register for /is4 "hr" operand.
   237  	VPBLENDVB X0, (BX), X1, X2              // c4e3714c1300
   238  	// <XMM0>/Yxr0 tests.
   239  	SHA256RNDS2 X0, (BX), X2   // 0f38cb13
   240  	SHA256RNDS2 X0, (R11), X2  // 410f38cb13
   241  	SHA256RNDS2 X0, X2, X2     // 0f38cbd2
   242  	SHA256RNDS2 X0, X11, X2    // 410f38cbd3
   243  	SHA256RNDS2 X0, (BX), X11  // 440f38cb1b
   244  	SHA256RNDS2 X0, (R11), X11 // 450f38cb1b
   245  	SHA256RNDS2 X0, X2, X11    // 440f38cbda
   246  	SHA256RNDS2 X0, X11, X11   // 450f38cbdb
   247  	// Rest SHA instructions tests.
   248  	SHA1MSG1 (BX), X2        // 0f38c913
   249  	SHA1MSG1 (R11), X2       // 410f38c913
   250  	SHA1MSG1 X2, X2          // 0f38c9d2
   251  	SHA1MSG1 X11, X2         // 410f38c9d3
   252  	SHA1MSG1 (BX), X11       // 440f38c91b
   253  	SHA1MSG1 (R11), X11      // 450f38c91b
   254  	SHA1MSG1 X2, X11         // 440f38c9da
   255  	SHA1MSG1 X11, X11        // 450f38c9db
   256  	SHA1MSG2 (BX), X2        // 0f38ca13
   257  	SHA1MSG2 (R11), X2       // 410f38ca13
   258  	SHA1MSG2 X2, X2          // 0f38cad2
   259  	SHA1MSG2 X11, X2         // 410f38cad3
   260  	SHA1MSG2 (BX), X11       // 440f38ca1b
   261  	SHA1MSG2 (R11), X11      // 450f38ca1b
   262  	SHA1MSG2 X2, X11         // 440f38cada
   263  	SHA1MSG2 X11, X11        // 450f38cadb
   264  	SHA1NEXTE (BX), X2       // 0f38c813
   265  	SHA1NEXTE (R11), X2      // 410f38c813
   266  	SHA1NEXTE X2, X2         // 0f38c8d2
   267  	SHA1NEXTE X11, X2        // 410f38c8d3
   268  	SHA1NEXTE (BX), X11      // 440f38c81b
   269  	SHA1NEXTE (R11), X11     // 450f38c81b
   270  	SHA1NEXTE X2, X11        // 440f38c8da
   271  	SHA1NEXTE X11, X11       // 450f38c8db
   272  	SHA1RNDS4 $0, (BX), X2   // 0f3acc1300
   273  	SHA1RNDS4 $0, (R11), X2  // 410f3acc1300
   274  	SHA1RNDS4 $1, X2, X2     // 0f3accd201
   275  	SHA1RNDS4 $1, X11, X2    // 410f3accd301
   276  	SHA1RNDS4 $2, (BX), X11  // 440f3acc1b02
   277  	SHA1RNDS4 $2, (R11), X11 // 450f3acc1b02
   278  	SHA1RNDS4 $3, X2, X11    // 440f3accda03
   279  	SHA1RNDS4 $3, X11, X11   // 450f3accdb03
   280  	SHA256MSG1 (BX), X2      // 0f38cc13
   281  	SHA256MSG1 (R11), X2     // 410f38cc13
   282  	SHA256MSG1 X2, X2        // 0f38ccd2
   283  	SHA256MSG1 X11, X2       // 410f38ccd3
   284  	SHA256MSG1 (BX), X11     // 440f38cc1b
   285  	SHA256MSG1 (R11), X11    // 450f38cc1b
   286  	SHA256MSG1 X2, X11       // 440f38ccda
   287  	SHA256MSG1 X11, X11      // 450f38ccdb
   288  	SHA256MSG2 (BX), X2      // 0f38cd13
   289  	SHA256MSG2 (R11), X2     // 410f38cd13
   290  	SHA256MSG2 X2, X2        // 0f38cdd2
   291  	SHA256MSG2 X11, X2       // 410f38cdd3
   292  	SHA256MSG2 (BX), X11     // 440f38cd1b
   293  	SHA256MSG2 (R11), X11    // 450f38cd1b
   294  	SHA256MSG2 X2, X11       // 440f38cdda
   295  	SHA256MSG2 X11, X11      // 450f38cddb
   296  	// Test VPERMQ with both uint8 and int8 immediate args
   297  	VPERMQ $-40, Y8, Y8 // c443fd00c0d8
   298  	VPERMQ $216, Y8, Y8 // c443fd00c0d8
   299  	// Test that VPERMPD that shares ytab list with VPERMQ continues to work too.
   300  	VPERMPD $-40, Y7, Y7 // c4e3fd01ffd8
   301  	VPERMPD $216, Y7, Y7 // c4e3fd01ffd8
   302  	// Check that LEAL is permitted to use overflowing offset.
   303  	LEAL 2400959708(BP)(R10*1), BP // 428dac15dcbc1b8f
   304  	LEAL 3395469782(AX)(R10*1), AX // 428d8410d6c162ca
   305  	// Make sure MOV CR/DR continues to work after changing its movtabs.
   306  	MOVQ CR0, AX // 0f20c0
   307  	MOVQ CR0, DX // 0f20c2
   308  	MOVQ CR4, DI // 0f20e7
   309  	MOVQ AX, CR0 // 0f22c0
   310  	MOVQ DX, CR0 // 0f22c2
   311  	MOVQ DI, CR4 // 0f22e7
   312  	MOVQ DR0, AX // 0f21c0
   313  	MOVQ DR6, DX // 0f21f2
   314  	MOVQ DR7, SI // 0f21fe
   315  	// Test other movtab entries.
   316  	PUSHQ GS // 0fa8
   317  	PUSHQ FS // 0fa0
   318  	POPQ FS  // 0fa1
   319  	POPQ GS  // 0fa9
   320  	// All instructions below semantically have unsigned operands,
   321  	// but previous assembler permitted negative arguments.
   322  	// This behavior is preserved for compatibility reasons.
   323  	VPSHUFD $-79, X7, X7         // c5f970ffb1
   324  	RORXL $-1, (AX), DX          // c4e37bf010ff
   325  	RORXQ $-1, (AX), DX          // c4e3fbf010ff
   326  	VPSHUFD $-1, X1, X2          // c5f970d1ff
   327  	VPSHUFD $-1, Y1, Y2          // c5fd70d1ff
   328  	VPSHUFHW $-1, X1, X2         // c5fa70d1ff
   329  	VPSHUFHW $-1, Y1, Y2         // c5fe70d1ff
   330  	VPSHUFLW $-1, X1, X2         // c5fb70d1ff
   331  	VPSHUFLW $-1, Y1, Y2         // c5ff70d1ff
   332  	VROUNDPD $-1, X1, X2         // c4e37909d1ff
   333  	VROUNDPS $-1, Y1, Y2         // c4e37d08d1ff
   334  	VPSLLD $-1, X1, X2           // c5e972f1ff
   335  	VPSLLD $-1, Y1, Y2           // c5ed72f1ff
   336  	VPSLLDQ $-1, X1, X2          // c5e973f9ff
   337  	VPSLLDQ $-1, Y1, Y2          // c5ed73f9ff
   338  	VPSLLQ $-1, X1, X2           // c5e973f1ff
   339  	VPSLLQ $-1, Y1, Y2           // c5ed73f1ff
   340  	VPSRLD $-1, X1, X2           // c5e972d1ff
   341  	VPSRLD $-1, Y1, Y2           // c5ed72d1ff
   342  	VPSRLDQ $-1, X1, X2          // c5e973d9ff
   343  	VPSRLDQ $-1, Y1, Y2          // c5ed73d9ff
   344  	VPSRLQ $-1, X1, X2           // c5e973d1ff
   345  	VPSRLQ $-1, Y1, Y2           // c5ed73d1ff
   346  	VPEXTRW $-1, X1, (AX)        // c4e3791508ff
   347  	VPEXTRW $-1, X1, AX          // c4e37915c8ff
   348  	VEXTRACTF128 $-1, Y1, X2     // c4e37d19caff
   349  	VEXTRACTI128 $-1, Y1, X2     // c4e37d39caff
   350  	VAESKEYGENASSIST $-1, X1, X2 // c4e379dfd1ff
   351  	VPCMPESTRI $-1, X1, X2       // c4e37961d1ff
   352  	VPCMPESTRM $-1, X1, X2       // c4e37960d1ff
   353  	VPCMPISTRI $-1, X1, X2       // c4e37963d1ff
   354  	VPCMPISTRM $-1, X1, X2       // c4e37962d1ff
   355  	VPERMPD $-1, Y1, Y2          // c4e3fd01d1ff
   356  	VPERMILPD $-1, X1, X2        // c4e37905d1ff
   357  	VPERMILPD $-1, Y1, Y2        // c4e37d05d1ff
   358  	VPERMILPS $-1, X1, X2        // c4e37904d1ff
   359  	VPERMILPS $-1, Y1, Y2        // c4e37d04d1ff
   360  	VCVTPS2PH $-1, X1, X2        // c4e3791dcaff
   361  	VCVTPS2PH $-1, Y1, X2        // c4e37d1dcaff
   362  	VPSLLW $-1, X1, X2           // c5e971f1ff
   363  	VPSLLW $-1, Y1, Y2           // c5ed71f1ff
   364  	VPSRAD $-1, X1, X2           // c5e972e1ff
   365  	VPSRAD $-1, Y1, Y2           // c5ed72e1ff
   366  	VPSRAW $-1, X1, X2           // c5e971e1ff
   367  	VPSRAW $-1, Y1, Y2           // c5ed71e1ff
   368  	VPSRLW $-1, X1, X1           // c5f171d1ff
   369  	VPSRLW $-1, Y1, Y2           // c5ed71d1ff
   370  	VEXTRACTPS $-1, X1, AX       // c4e37917c8ff
   371  	VPEXTRB $-1, X1, AX          // c4e37914c8ff
   372  	VPEXTRD $-1, X1, AX          // c4e37916c8ff
   373  	VPEXTRQ $-1, X1, AX          // c4e3f916c8ff
   374  	// EVEX: High-16 X registers.
   375  	VADDPD X30, X1, X0          // 6291f50858c6
   376  	VADDPD X2, X29, X0          // 62f1950058c2
   377  	VADDPD X30, X29, X0         // 6291950058c6
   378  	VADDPD X2, X1, X28          // 6261f50858e2
   379  	VADDPD X30, X1, X28         // 6201f50858e6
   380  	VADDPD X2, X29, X28         // 6261950058e2
   381  	VADDPD X30, X29, X28        // 6201950058e6
   382  	VADDPD X30, X11, X10        // 6211a50858d6
   383  	VADDPD X12, X29, X10        // 6251950058d4
   384  	VADDPD X30, X29, X10        // 6211950058d6
   385  	VADDPD X12, X11, X28        // 6241a50858e4
   386  	VADDPD X30, X11, X28        // 6201a50858e6
   387  	VADDPD X12, X29, X28        // 6241950058e4
   388  	VADDPD X30, X29, X28        // 6201950058e6
   389  	VADDPD (AX), X29, X0        // 62f195005800
   390  	VADDPD (AX), X1, X28        // 6261f5085820
   391  	VADDPD (AX), X29, X28       // 626195005820
   392  	VADDPD (AX), X29, X10       // 627195005810
   393  	VADDPD (AX), X10, X28       // 6261ad085820
   394  	VADDPD (CX)(AX*1), X29, X0  // 62f19500580401
   395  	VADDPD (CX)(AX*1), X1, X28  // 6261f508582401
   396  	VADDPD (CX)(AX*1), X29, X28 // 62619500582401
   397  	VADDPD (CX)(AX*1), X29, X10 // 62719500581401
   398  	VADDPD (CX)(AX*1), X10, X28 // 6261ad08582401
   399  	VADDPD (CX)(AX*2), X29, X0  // 62f19500580441
   400  	VADDPD (CX)(AX*2), X1, X28  // 6261f508582441
   401  	VADDPD (CX)(AX*2), X29, X28 // 62619500582441
   402  	VADDPD (CX)(AX*2), X29, X10 // 62719500581441
   403  	VADDPD (CX)(AX*2), X10, X28 // 6261ad08582441
   404  	// EVEX: displacement without Disp8.
   405  	VADDPD 15(AX), X29, X0        // 62f1950058800f000000
   406  	VADDPD 15(AX), X1, X28        // 6261f50858a00f000000
   407  	VADDPD 15(AX), X29, X28       // 6261950058a00f000000
   408  	VADDPD 15(AX), X29, X10       // 6271950058900f000000
   409  	VADDPD 15(AX), X10, X28       // 6261ad0858a00f000000
   410  	VADDPD 15(CX)(AX*1), X29, X0  // 62f195005884010f000000
   411  	VADDPD 15(CX)(AX*1), X1, X28  // 6261f50858a4010f000000
   412  	VADDPD 15(CX)(AX*1), X29, X28 // 6261950058a4010f000000
   413  	VADDPD 15(CX)(AX*1), X29, X10 // 627195005894010f000000
   414  	VADDPD 15(CX)(AX*1), X10, X28 // 6261ad0858a4010f000000
   415  	VADDPD 15(CX)(AX*2), X29, X0  // 62f195005884410f000000
   416  	VADDPD 15(CX)(AX*2), X1, X28  // 6261f50858a4410f000000
   417  	VADDPD 15(CX)(AX*2), X29, X28 // 6261950058a4410f000000
   418  	VADDPD 15(CX)(AX*2), X29, X10 // 627195005894410f000000
   419  	VADDPD 15(CX)(AX*2), X10, X28 // 6261ad0858a4410f000000
   420  	// EVEX: compressed displacement (Disp8).
   421  	VADDPD 2032(DX), X29, X0        // 62f1950058427f
   422  	VADDPD 2032(DX), X1, X29        // 6261f508586a7f
   423  	VADDPD 2032(DX), X29, X28       // 6261950058627f
   424  	VADDPD 2032(DX)(AX*2), X29, X0  // 62f195005844427f
   425  	VADDPD 2032(DX)(AX*2), X1, X29  // 6261f508586c427f
   426  	VADDPD 2032(DX)(AX*2), X29, X28 // 626195005864427f
   427  	VADDPD 4064(DX), Y0, Y29        // 6261fd28586a7f
   428  	VADDPD 4064(DX), Y29, Y1        // 62f19520584a7f
   429  	VADDPD 4064(DX), Y28, Y29       // 62619d20586a7f
   430  	VADDPD 4064(DX)(AX*2), Y0, Y29  // 6261fd28586c427f
   431  	VADDPD 4064(DX)(AX*2), Y29, Y1  // 62f19520584c427f
   432  	VADDPD 8128(DX), Z0, Z29        // 6261fd48586a7f
   433  	VADDPD 8128(DX), Z29, Z1        // 62f19540584a7f
   434  	VADDPD 8128(DX), Z28, Z29       // 62619d40586a7f
   435  	VADDPD 8128(DX)(AX*2), Z0, Z29  // 6261fd48586c427f
   436  	VADDPD 8128(DX)(AX*2), Z29, Z1  // 62f19540584c427f
   437  	// EVEX: compressed displacement that does not fit into 8bits.
   438  	VADDPD 2048(DX), X29, X0        // 62f19500588200080000
   439  	VADDPD 2048(DX), X1, X29        // 6261f50858aa00080000
   440  	VADDPD 2048(DX), X29, X28       // 6261950058a200080000
   441  	VADDPD 2048(DX)(AX*2), X29, X0  // 62f1950058844200080000
   442  	VADDPD 2048(DX)(AX*2), X1, X29  // 6261f50858ac4200080000
   443  	VADDPD 2048(DX)(AX*2), X29, X28 // 6261950058a44200080000
   444  	VADDPD 4096(DX), Y0, Y29        // 6261fd2858aa00100000
   445  	VADDPD 4096(DX), Y29, Y1        // 62f19520588a00100000
   446  	VADDPD 4096(DX), Y28, Y29       // 62619d2058aa00100000
   447  	VADDPD 4096(DX)(AX*2), Y0, Y29  // 6261fd2858ac4200100000
   448  	VADDPD 4096(DX)(AX*2), Y29, Y1  // 62f19520588c4200100000
   449  	VADDPD 8192(DX), Z0, Z29        // 6261fd4858aa00200000
   450  	VADDPD 8192(DX), Z29, Z1        // 62f19540588a00200000
   451  	VADDPD 8192(DX), Z28, Z29       // 62619d4058aa00200000
   452  	VADDPD 8192(DX)(AX*2), Z0, Z29  // 6261fd4858ac4200200000
   453  	VADDPD 8192(DX)(AX*2), Z29, Z1  // 62f19540588c4200200000
   454  	// EVEX: Y registers; VL=256.
   455  	VADDPD Y30, Y1, Y0              // 6291f52858c6
   456  	VADDPD Y0, Y29, Y2              // 62f1952058d0
   457  	VADDPD Y0, Y29, Y30             // 6261952058f0
   458  	VADDPD Y28, Y1, Y2              // 6291f52858d4
   459  	VADDPD Y28, Y1, Y30             // 6201f52858f4
   460  	VADDPD Y28, Y29, Y2             // 6291952058d4
   461  	VADDPD Y28, Y29, Y30            // 6201952058f4
   462  	VADDPD Y10, Y11, Y30            // 6241a52858f2
   463  	VADDPD Y10, Y29, Y12            // 6251952058e2
   464  	VADDPD Y10, Y29, Y30            // 6241952058f2
   465  	VADDPD Y28, Y11, Y12            // 6211a52858e4
   466  	VADDPD Y28, Y11, Y30            // 6201a52858f4
   467  	VADDPD Y28, Y29, Y12            // 6211952058e4
   468  	VADDPD Y28, Y29, Y30            // 6201952058f4
   469  	VADDPD (AX), Y29, Y0            // 62f195205800
   470  	VADDPD (AX), Y1, Y28            // 6261f5285820
   471  	VADDPD (AX), Y29, Y28           // 626195205820
   472  	VADDPD (AX), Y29, Y10           // 627195205810
   473  	VADDPD (AX), Y10, Y28           // 6261ad285820
   474  	VADDPD (CX)(AX*1), Y29, Y0      // 62f19520580401
   475  	VADDPD (CX)(AX*1), Y1, Y28      // 6261f528582401
   476  	VADDPD (CX)(AX*1), Y29, Y28     // 62619520582401
   477  	VADDPD (CX)(AX*1), Y29, Y10     // 62719520581401
   478  	VADDPD (CX)(AX*1), Y10, Y28     // 6261ad28582401
   479  	VADDPD (CX)(AX*2), Y29, Y0      // 62f19520580441
   480  	VADDPD (CX)(AX*2), Y1, Y28      // 6261f528582441
   481  	VADDPD (CX)(AX*2), Y29, Y28     // 62619520582441
   482  	VADDPD (CX)(AX*2), Y29, Y10     // 62719520581441
   483  	VADDPD (CX)(AX*2), Y10, Y28     // 6261ad28582441
   484  	VADDPD 15(AX), Y0, Y29          // 6261fd2858a80f000000
   485  	VADDPD 15(AX), Y28, Y1          // 62f19d2058880f000000
   486  	VADDPD 15(AX), Y28, Y29         // 62619d2058a80f000000
   487  	VADDPD 15(AX), Y10, Y29         // 6261ad2858a80f000000
   488  	VADDPD 15(AX), Y28, Y10         // 62719d2058900f000000
   489  	VADDPD 15(CX)(AX*1), Y0, Y29    // 6261fd2858ac010f000000
   490  	VADDPD 15(CX)(AX*1), Y28, Y1    // 62f19d20588c010f000000
   491  	VADDPD 15(CX)(AX*1), Y28, Y29   // 62619d2058ac010f000000
   492  	VADDPD 15(CX)(AX*1), Y10, Y29   // 6261ad2858ac010f000000
   493  	VADDPD 15(CX)(AX*1), Y28, Y10   // 62719d205894010f000000
   494  	VADDPD 15(CX)(AX*2), Y0, Y29    // 6261fd2858ac410f000000
   495  	VADDPD 15(CX)(AX*2), Y28, Y1    // 62f19d20588c410f000000
   496  	VADDPD 15(CX)(AX*2), Y28, Y29   // 62619d2058ac410f000000
   497  	VADDPD 15(CX)(AX*2), Y10, Y29   // 6261ad2858ac410f000000
   498  	VADDPD 15(CX)(AX*2), Y28, Y10   // 62719d205894410f000000
   499  	VADDPD 2048(DX), Y0, Y29        // 6261fd28586a40
   500  	VADDPD 2048(DX), Y29, Y1        // 62f19520584a40
   501  	VADDPD 2048(DX), Y28, Y29       // 62619d20586a40
   502  	VADDPD 2048(DX)(AX*2), Y0, Y29  // 6261fd28586c4240
   503  	VADDPD 2048(DX)(AX*2), Y29, Y1  // 62f19520584c4240
   504  	VADDPD 2048(DX)(AX*2), Y28, Y29 // 62619d20586c4240
   505  	// EVEX: Z registers; VL=512.
   506  	VADDPD Z30, Z0, Z1              // 6291fd4858ce
   507  	VADDPD Z0, Z2, Z29              // 6261ed4858e8
   508  	VADDPD Z0, Z30, Z29             // 62618d4058e8
   509  	VADDPD Z28, Z2, Z1              // 6291ed4858cc
   510  	VADDPD Z28, Z30, Z1             // 62918d4058cc
   511  	VADDPD Z28, Z2, Z29             // 6201ed4858ec
   512  	VADDPD Z28, Z30, Z29            // 62018d4058ec
   513  	VADDPD Z10, Z30, Z11            // 62518d4058da
   514  	VADDPD Z10, Z12, Z29            // 62419d4858ea
   515  	VADDPD Z10, Z30, Z29            // 62418d4058ea
   516  	VADDPD Z28, Z12, Z11            // 62119d4858dc
   517  	VADDPD Z28, Z30, Z11            // 62118d4058dc
   518  	VADDPD Z28, Z12, Z29            // 62019d4858ec
   519  	VADDPD Z28, Z30, Z29            // 62018d4058ec
   520  	VADDPD (AX), Z0, Z29            // 6261fd485828
   521  	VADDPD (AX), Z28, Z1            // 62f19d405808
   522  	VADDPD (AX), Z28, Z29           // 62619d405828
   523  	VADDPD (AX), Z10, Z29           // 6261ad485828
   524  	VADDPD (AX), Z28, Z10           // 62719d405810
   525  	VADDPD (CX)(AX*1), Z0, Z29      // 6261fd48582c01
   526  	VADDPD (CX)(AX*1), Z28, Z1      // 62f19d40580c01
   527  	VADDPD (CX)(AX*1), Z28, Z29     // 62619d40582c01
   528  	VADDPD (CX)(AX*1), Z10, Z29     // 6261ad48582c01
   529  	VADDPD (CX)(AX*1), Z28, Z10     // 62719d40581401
   530  	VADDPD (CX)(AX*2), Z0, Z29      // 6261fd48582c41
   531  	VADDPD (CX)(AX*2), Z28, Z1      // 62f19d40580c41
   532  	VADDPD (CX)(AX*2), Z28, Z29     // 62619d40582c41
   533  	VADDPD (CX)(AX*2), Z10, Z29     // 6261ad48582c41
   534  	VADDPD (CX)(AX*2), Z28, Z10     // 62719d40581441
   535  	VADDPD 15(AX), Z29, Z0          // 62f1954058800f000000
   536  	VADDPD 15(AX), Z1, Z28          // 6261f54858a00f000000
   537  	VADDPD 15(AX), Z29, Z28         // 6261954058a00f000000
   538  	VADDPD 15(AX), Z29, Z10         // 6271954058900f000000
   539  	VADDPD 15(AX), Z10, Z28         // 6261ad4858a00f000000
   540  	VADDPD 15(CX)(AX*1), Z29, Z0    // 62f195405884010f000000
   541  	VADDPD 15(CX)(AX*1), Z1, Z28    // 6261f54858a4010f000000
   542  	VADDPD 15(CX)(AX*1), Z29, Z28   // 6261954058a4010f000000
   543  	VADDPD 15(CX)(AX*1), Z29, Z10   // 627195405894010f000000
   544  	VADDPD 15(CX)(AX*1), Z10, Z28   // 6261ad4858a4010f000000
   545  	VADDPD 15(CX)(AX*2), Z29, Z0    // 62f195405884410f000000
   546  	VADDPD 15(CX)(AX*2), Z1, Z28    // 6261f54858a4410f000000
   547  	VADDPD 15(CX)(AX*2), Z29, Z28   // 6261954058a4410f000000
   548  	VADDPD 15(CX)(AX*2), Z29, Z10   // 627195405894410f000000
   549  	VADDPD 15(CX)(AX*2), Z10, Z28   // 6261ad4858a4410f000000
   550  	VADDPD 2048(DX), Z29, Z0        // 62f19540584220
   551  	VADDPD 2048(DX), Z1, Z29        // 6261f548586a20
   552  	VADDPD 2048(DX), Z29, Z28       // 62619540586220
   553  	VADDPD 2048(DX)(AX*2), Z29, Z0  // 62f1954058444220
   554  	VADDPD 2048(DX)(AX*2), Z1, Z29  // 6261f548586c4220
   555  	VADDPD 2048(DX)(AX*2), Z29, Z28 // 6261954058644220
   556  	// EVEX: KOP (opmask) instructions.
   557  	KMOVB K0, K0          // c5f990c0
   558  	KMOVB K7, K7          // c5f990ff
   559  	KMOVB K5, K1          // c5f990cd
   560  	KMOVB K1, K5          // c5f990e9
   561  	KMOVB (AX), K1        // c5f99008
   562  	KMOVB K0, (AX)        // c5f99100
   563  	KMOVB K7, (R10)       // c4c179913a
   564  	KMOVB K5, AX          // c5f993c5
   565  	KMOVB K7, R10         // c57993d7
   566  	KMOVB AX, K5          // c5f992e8
   567  	KMOVB R10, K7         // c4c17992fa
   568  	KMOVW K0, K0          // c5f890c0
   569  	KMOVW K7, K7          // c5f890ff
   570  	KMOVW K5, K1          // c5f890cd
   571  	KMOVW K1, K5          // c5f890e9
   572  	KMOVW (AX), K1        // c5f89008
   573  	KMOVW K0, (AX)        // c5f89100
   574  	KMOVW K7, (R10)       // c4c178913a
   575  	KMOVW K5, AX          // c5f893c5
   576  	KMOVW K7, R10         // c57893d7
   577  	KMOVW AX, K5          // c5f892e8
   578  	KMOVW R10, K7         // c4c17892fa
   579  	KMOVD K0, K0          // c4e1f990c0
   580  	KMOVD K7, K7          // c4e1f990ff
   581  	KMOVD K5, K1          // c4e1f990cd
   582  	KMOVD K1, K5          // c4e1f990e9
   583  	KMOVD (AX), K1        // c4e1f99008
   584  	KMOVD AX, K5          // c5fb92e8
   585  	KMOVD R10, K7         // c4c17b92fa
   586  	KMOVD K0, (AX)        // c4e1f99100
   587  	KMOVD K7, (R10)       // c4c1f9913a
   588  	KMOVD K5, AX          // c5fb93c5
   589  	KMOVD K7, R10         // c57b93d7
   590  	KMOVQ K0, K0          // c4e1f890c0
   591  	KMOVQ K7, K7          // c4e1f890ff
   592  	KMOVQ K5, K1          // c4e1f890cd
   593  	KMOVQ K1, K5          // c4e1f890e9
   594  	KMOVQ (AX), K1        // c4e1f89008
   595  	KMOVQ AX, K5          // c4e1fb92e8
   596  	KMOVQ R10, K7         // c4c1fb92fa
   597  	KMOVQ K0, (AX)        // c4e1f89100
   598  	KMOVQ K7, (R10)       // c4c1f8913a
   599  	KMOVQ K5, AX          // c4e1fb93c5
   600  	KMOVQ K7, R10         // c461fb93d7
   601  	KNOTB K7, K0          // c5f944c7
   602  	KNOTB K1, K5          // c5f944e9
   603  	KNOTW K7, K0          // c5f844c7
   604  	KNOTW K1, K5          // c5f844e9
   605  	KNOTD K7, K0          // c4e1f944c7
   606  	KNOTD K1, K5          // c4e1f944e9
   607  	KNOTQ K7, K0          // c4e1f844c7
   608  	KNOTQ K1, K5          // c4e1f844e9
   609  	KORB K7, K5, K0       // c5d545c7
   610  	KORB K0, K7, K5       // c5c545e8
   611  	KORW K7, K5, K0       // c5d445c7
   612  	KORW K0, K7, K5       // c5c445e8
   613  	KORD K7, K5, K0       // c4e1d545c7
   614  	KORD K0, K7, K5       // c4e1c545e8
   615  	KORQ K7, K5, K0       // c4e1d445c7
   616  	KORQ K0, K7, K5       // c4e1c445e8
   617  	KSHIFTLB $0, K7, K0   // c4e37932c700
   618  	KSHIFTLB $196, K1, K5 // c4e37932e9c4
   619  	KSHIFTLW $0, K7, K0   // c4e3f932c700
   620  	KSHIFTLW $196, K1, K5 // c4e3f932e9c4
   621  	KSHIFTLD $0, K7, K0   // c4e37933c700
   622  	KSHIFTLD $196, K1, K5 // c4e37933e9c4
   623  	KSHIFTLQ $0, K7, K0   // c4e3f933c700
   624  	KSHIFTLQ $196, K1, K5 // c4e3f933e9c4
   625  	// EVEX: masking with K1-K7.
   626  	VADDPD X2, X1, K1, X0            // 62f1f50958c2
   627  	VADDPD X12, X1, K4, X10          // 6251f50c58d4
   628  	VADDPD X22, X1, K7, X20          // 62a1f50f58e6
   629  	VADDPD (AX), X1, K1, X1          // 62f1f5095808
   630  	VADDPD 8(R10), X10, K4, X10      // 6251ad0c589208000000
   631  	VADDPD (R10)(AX*4), X20, K7, X20 // 62c1dd07582482
   632  	VADDPD Y2, Y1, K1, Y0            // 62f1f52958c2
   633  	VADDPD Y12, Y1, K4, Y10          // 6251f52c58d4
   634  	VADDPD Y22, Y1, K7, Y20          // 62a1f52f58e6
   635  	VADDPD (AX), Y1, K1, Y1          // 62f1f5295808
   636  	VADDPD 8(R10), Y10, K4, Y10      // 6251ad2c589208000000
   637  	VADDPD (R10)(AX*4), Y20, K7, Y20 // 62c1dd27582482
   638  	VADDPD Z2, Z1, K1, Z0            // 62f1f54958c2
   639  	VADDPD Z12, Z1, K4, Z10          // 6251f54c58d4
   640  	VADDPD Z22, Z1, K7, Z20          // 62a1f54f58e6
   641  	VADDPD (AX), Z1, K1, Z1          // 62f1f5495808
   642  	VADDPD 8(R10), Z10, K4, Z10      // 6251ad4c589208000000
   643  	VADDPD (R10)(AX*4), Z20, K7, Z20 // 62c1dd47582482
   644  	// EVEX gather (also tests Z as VSIB index).
   645  	VPGATHERDD 360(AX)(X2*4), K1, X1    // 62f27d09904c905a
   646  	VPGATHERDD 640(BP)(X15*8), K3, X14  // 62327d0b90b4fd80020000
   647  	VPGATHERDD 960(R10)(X25*2), K7, X24 // 62027d0790844ac0030000
   648  	VPGATHERDD 1280(R10)(X1*4), K4, X0  // 62d27d0c90848a00050000
   649  	VPGATHERDD 360(AX)(Y2*4), K1, Y1    // 62f27d29904c905a
   650  	VPGATHERDD 640(BP)(Y15*8), K3, Y14  // 62327d2b90b4fd80020000
   651  	VPGATHERDD 960(R10)(Y25*2), K7, Y24 // 62027d2790844ac0030000
   652  	VPGATHERDD 1280(R10)(Y1*4), K4, Y0  // 62d27d2c90848a00050000
   653  	VPGATHERDD 360(AX)(Z2*4), K1, Z1    // 62f27d49904c905a
   654  	VPGATHERDD 640(BP)(Z15*8), K3, Z14  // 62327d4b90b4fd80020000
   655  	VPGATHERDD 960(R10)(Z25*2), K7, Z24 // 62027d4790844ac0030000
   656  	VPGATHERDD 1280(R10)(Z1*4), K4, Z0  // 62d27d4c90848a00050000
   657  	VPGATHERDQ 360(AX)(X2*4), K1, X1    // 62f2fd09904c902d
   658  	VPGATHERDQ 640(BP)(X15*8), K3, X14  // 6232fd0b9074fd50
   659  	VPGATHERDQ 960(R10)(X25*2), K7, X24 // 6202fd0790444a78
   660  	VPGATHERDQ 1280(R10)(X1*4), K4, X0  // 62d2fd0c90848a00050000
   661  	VPGATHERDQ 360(AX)(X2*4), K1, Y1    // 62f2fd29904c902d
   662  	VPGATHERDQ 640(BP)(X15*8), K3, Y14  // 6232fd2b9074fd50
   663  	VPGATHERDQ 960(R10)(X25*2), K7, Y24 // 6202fd2790444a78
   664  	VPGATHERDQ 1280(R10)(X1*4), K4, Y0  // 62d2fd2c90848a00050000
   665  	VPGATHERDQ 360(AX)(Y2*4), K1, Z1    // 62f2fd49904c902d
   666  	VPGATHERDQ 640(BP)(Y15*8), K3, Z14  // 6232fd4b9074fd50
   667  	VPGATHERDQ 960(R10)(Y25*2), K7, Z24 // 6202fd4790444a78
   668  	VPGATHERDQ 1280(R10)(Y1*4), K4, Z0  // 62d2fd4c90848a00050000
   669  	VGATHERDPD 360(R15)(X30*2), K6, X20 // 6282fd069264772d
   670  	VGATHERDPD 640(R15)(X20*2), K6, X10 // 6252fd0692546750
   671  	VGATHERDPD 960(R15)(X10*2), K6, X20 // 6282fd0e92645778
   672  	VGATHERDPD 1280(R15)(X0*2), K6, X10 // 6252fd0e92944700050000
   673  	VGATHERDPD 360(R15)(X30*2), K6, Y20 // 6282fd269264772d
   674  	VGATHERDPD 640(R15)(X20*2), K6, Y10 // 6252fd2692546750
   675  	VGATHERDPD 960(R15)(X10*2), K6, Y20 // 6282fd2e92645778
   676  	VGATHERDPD 1280(R15)(X0*2), K6, Y10 // 6252fd2e92944700050000
   677  	VGATHERDPD 360(R15)(Y30*2), K6, Z20 // 6282fd469264772d
   678  	VGATHERDPD 640(R15)(Y20*2), K6, Z10 // 6252fd4692546750
   679  	VGATHERDPD 960(R15)(Y10*2), K6, Z20 // 6282fd4e92645778
   680  	VGATHERDPD 1280(R15)(Y0*2), K6, Z10 // 6252fd4e92944700050000
   681  	VGATHERDPS 360(R15)(X30*2), K6, X20 // 62827d069264775a
   682  	VGATHERDPS 640(R15)(X20*2), K6, X10 // 62527d0692946780020000
   683  	VGATHERDPS 960(R15)(X10*2), K6, X20 // 62827d0e92a457c0030000
   684  	VGATHERDPS 1280(R15)(X0*2), K6, X10 // 62527d0e92944700050000
   685  	VGATHERDPS 360(R15)(Y30*2), K6, Y20 // 62827d269264775a
   686  	VGATHERDPS 640(R15)(Y20*2), K6, Y10 // 62527d2692946780020000
   687  	VGATHERDPS 960(R15)(Y10*2), K6, Y20 // 62827d2e92a457c0030000
   688  	VGATHERDPS 1280(R15)(Y0*2), K6, Y10 // 62527d2e92944700050000
   689  	VGATHERDPS 360(R15)(Z30*2), K6, Z20 // 62827d469264775a
   690  	VGATHERDPS 640(R15)(Z20*2), K6, Z10 // 62527d4692946780020000
   691  	VGATHERDPS 960(R15)(Z10*2), K6, Z20 // 62827d4e92a457c0030000
   692  	VGATHERDPS 1280(R15)(Z0*2), K6, Z10 // 62527d4e92944700050000
   693  	VGATHERQPS 360(R15)(X30*2), K6, X20 // 62827d069364775a
   694  	VGATHERQPS 640(R15)(X20*2), K6, X10 // 62527d0693946780020000
   695  	VGATHERQPS 960(R15)(X10*2), K6, X20 // 62827d0e93a457c0030000
   696  	VGATHERQPS 1280(R15)(X0*2), K6, X10 // 62527d0e93944700050000
   697  	VGATHERQPS 360(R15)(Y30*2), K6, X20 // 62827d269364775a
   698  	VGATHERQPS 640(R15)(Y20*2), K6, X10 // 62527d2693946780020000
   699  	VGATHERQPS 960(R15)(Y10*2), K6, X20 // 62827d2e93a457c0030000
   700  	VGATHERQPS 1280(R15)(Y0*2), K6, X10 // 62527d2e93944700050000
   701  	VGATHERQPS 360(R15)(Z30*2), K6, Y20 // 62827d469364775a
   702  	VGATHERQPS 640(R15)(Z20*2), K6, Y10 // 62527d4693946780020000
   703  	VGATHERQPS 960(R15)(Z10*2), K6, Y20 // 62827d4e93a457c0030000
   704  	VGATHERQPS 1280(R15)(Z0*2), K6, Y10 // 62527d4e93944700050000
   705  	VPGATHERQD 360(R15)(X30*2), K6, X20 // 62827d069164775a
   706  	VPGATHERQD 640(R15)(X20*2), K6, X10 // 62527d0691946780020000
   707  	VPGATHERQD 960(R15)(X10*2), K6, X20 // 62827d0e91a457c0030000
   708  	VPGATHERQD 1280(R15)(X0*2), K6, X10 // 62527d0e91944700050000
   709  	VPGATHERQD 360(R15)(Y30*2), K6, X20 // 62827d269164775a
   710  	VPGATHERQD 640(R15)(Y20*2), K6, X10 // 62527d2691946780020000
   711  	VPGATHERQD 960(R15)(Y10*2), K6, X20 // 62827d2e91a457c0030000
   712  	VPGATHERQD 1280(R15)(Y0*2), K6, X10 // 62527d2e91944700050000
   713  	VPGATHERQD 360(R15)(Z30*2), K6, Y20 // 62827d469164775a
   714  	VPGATHERQD 640(R15)(Z20*2), K6, Y10 // 62527d4691946780020000
   715  	VPGATHERQD 960(R15)(Z10*2), K6, Y20 // 62827d4e91a457c0030000
   716  	VPGATHERQD 1280(R15)(Z0*2), K6, Y10 // 62527d4e91944700050000
   717  	VPGATHERQQ 360(R15)(X30*2), K6, X20 // 6282fd069164772d
   718  	VPGATHERQQ 640(R15)(X20*2), K6, X10 // 6252fd0691546750
   719  	VPGATHERQQ 960(R15)(X10*2), K6, X20 // 6282fd0e91645778
   720  	VPGATHERQQ 1280(R15)(X0*2), K6, X10 // 6252fd0e91944700050000
   721  	VPGATHERQQ 360(R15)(Y30*2), K6, Y20 // 6282fd269164772d
   722  	VPGATHERQQ 640(R15)(Y20*2), K6, Y10 // 6252fd2691546750
   723  	VPGATHERQQ 960(R15)(Y10*2), K6, Y20 // 6282fd2e91645778
   724  	VPGATHERQQ 1280(R15)(Y0*2), K6, Y10 // 6252fd2e91944700050000
   725  	VPGATHERQQ 360(R15)(Z30*2), K6, Z20 // 6282fd469164772d
   726  	VPGATHERQQ 640(R15)(Z20*2), K6, Z10 // 6252fd4691546750
   727  	VPGATHERQQ 960(R15)(Z10*2), K6, Z20 // 6282fd4e91645778
   728  	VPGATHERQQ 1280(R15)(Z0*2), K6, Z10 // 6252fd4e91944700050000
   729  	VGATHERQPD 360(R15)(X30*2), K6, X20 // 6282fd069364772d
   730  	VGATHERQPD 640(R15)(X20*2), K6, X10 // 6252fd0693546750
   731  	VGATHERQPD 960(R15)(X10*2), K6, X20 // 6282fd0e93645778
   732  	VGATHERQPD 1280(R15)(X0*2), K6, X10 // 6252fd0e93944700050000
   733  	VGATHERQPD 360(R15)(Y30*2), K6, Y20 // 6282fd269364772d
   734  	VGATHERQPD 640(R15)(Y20*2), K6, Y10 // 6252fd2693546750
   735  	VGATHERQPD 960(R15)(Y10*2), K6, Y20 // 6282fd2e93645778
   736  	VGATHERQPD 1280(R15)(Y0*2), K6, Y10 // 6252fd2e93944700050000
   737  	VGATHERQPD 360(R15)(Z30*2), K6, Z20 // 6282fd469364772d
   738  	VGATHERQPD 640(R15)(Z20*2), K6, Z10 // 6252fd4693546750
   739  	VGATHERQPD 960(R15)(Z10*2), K6, Z20 // 6282fd4e93645778
   740  	VGATHERQPD 1280(R15)(Z0*2), K6, Z10 // 6252fd4e93944700050000
   741  	// EVEX: corner cases for High-16 registers.
   742  	VADDPD X31, X16, X15          // 6211fd0058ff
   743  	VADDPD X23, X15, X16          // 62a1850858c7
   744  	VADDPD Y31, Y16, Y15          // 6211fd2058ff
   745  	VADDPD Y23, Y15, Y16          // 62a1852858c7
   746  	VADDPD Z31, Z16, Z15          // 6211fd4058ff
   747  	VADDPD Z23, Z15, Z16          // 62a1854858c7
   748  	VGATHERQPD (DX)(X16*1),K1,X31 // 6262fd01933c02
   749  	VGATHERQPD (DX)(X31*1),K1,X16 // 62a2fd0193043a
   750  	VGATHERQPD (DX)(X15*1),K1,X23 // 62a2fd09933c3a
   751  	VGATHERQPD (DX)(X23*1),K1,X15 // 6272fd01933c3a
   752  	VGATHERQPD (DX)(Y16*1),K1,Y31 // 6262fd21933c02
   753  	VGATHERQPD (DX)(Y31*1),K1,Y16 // 62a2fd2193043a
   754  	VGATHERQPD (DX)(Y15*1),K1,Y23 // 62a2fd29933c3a
   755  	VGATHERQPD (DX)(Y23*1),K1,Y15 // 6272fd21933c3a
   756  	VGATHERQPD (DX)(Z16*1),K1,Z31 // 6262fd41933c02
   757  	VGATHERQPD (DX)(Z31*1),K1,Z16 // 62a2fd4193043a
   758  	VGATHERQPD (DX)(Z15*1),K1,Z23 // 62a2fd49933c3a
   759  	VGATHERQPD (DX)(Z23*1),K1,Z15 // 6272fd41933c3a
   760  	// EVEX: VCVTPD2DQ with Y suffix (VL=2).
   761  	VCVTPD2DQY (BX), X20  // 62e1ff28e623
   762  	VCVTPD2DQY (R11), X30 // 6241ff28e633
   763  	// XED encoder uses EVEX.X=0 for these; most x86 tools use EVEX.X=1.
   764  	// Either way is OK.
   765  	VMOVQ SP, X20  // 62e1fd086ee4 or 62a1fd086ee4
   766  	VMOVQ BP, X20  // 62e1fd086ee5 or 62a1fd086ee5
   767  	VMOVQ R14, X20 // 62c1fd086ee6 or 6281fd086ee6
   768  	// "VMOVQ r/m64, xmm1"/6E vs "VMOVQ xmm2/m64, xmm1"/7E with mem operand.
   769  	VMOVQ (AX), X20           // 62e1fd086e20 or 62e1fe087e20
   770  	VMOVQ 7(DX), X20          // 62e1fd086ea207000000 or 62e1fe087ea207000000
   771  	VMOVQ -15(R11)(CX*1), X20 // 62c1fd086ea40bf1ffffff or 62c1fe087ea40bf1ffffff
   772  	VMOVQ (SP)(AX*2), X20     // 62e1fd086e2444 or 62e1fe087e2444
   773  	// "VMOVQ xmm1, r/m64"/7E vs "VMOVQ xmm1, xmm2/m64"/D6 with mem operand.
   774  	VMOVQ X20, (AX)           // 62e1fd087e20 or 62e1fd08d620
   775  	VMOVQ X20, 7(DX)          // 62e1fd087ea207000000 or 62e1fd08d6a207000000
   776  	VMOVQ X20, -15(R11)(CX*1) // 62c1fd087ea40bf1ffffff or 62c1fd08d6a40bf1ffffff
   777  	VMOVQ X20, (SP)(AX*2)     // 62e1fd087e2444 or 62e1fd08d62444
   778  	// VMOVHPD: overlapping VEX and EVEX variants.
   779  	VMOVHPD (AX), X5, X5             // c5d11628 or c4e1d11628 or 62f1d5281628 or 62f1d5481628
   780  	VMOVHPD 7(DX), X5, X5            // c5d1166a07 or 62f1d52816aa07000000 or 62f1d54816aa07000000
   781  	VMOVHPD -15(R11)(CX*1), X5, X5   // c4c151166c0bf1 or 62d1d52816ac0bf1ffffff or 62d1d54816ac0bf1ffffff
   782  	VMOVHPD (SP)(AX*2), X5, X5       // c5d1162c44 or c4e1d1162c44 or 62f1d528162c44 or 62f1d548162c44
   783  	VMOVHPD (AX), X8, X5             // c5b91628 or c4e1b91628 or 62f1bd281628 or 62f1bd481628
   784  	VMOVHPD 7(DX), X8, X5            // c5b9166a07 or 62f1bd2816aa07000000 or 62f1bd4816aa07000000
   785  	VMOVHPD -15(R11)(CX*1), X8, X5   // c4c139166c0bf1 or 62d1bd4816ac0bf1ffffff
   786  	VMOVHPD (SP)(AX*2), X8, X5       // c5b9162c44 or c4e1b9162c44 or 62f1bd28162c44 or 62f1bd48162c44
   787  	VMOVHPD (AX), X20, X5            // 62f1dd001628 or 62f1dd201628 or 62f1dd401628
   788  	VMOVHPD 7(DX), X20, X5           // 62f1dd0016aa07000000 or 62f1dd2016aa07000000 or 62f1dd4016aa07000000
   789  	VMOVHPD -15(R11)(CX*1), X20, X5  // 62d1dd0016ac0bf1ffffff or 62d1dd2016ac0bf1ffffff or 62d1dd4016ac0bf1ffffff
   790  	VMOVHPD (SP)(AX*2), X20, X5      // 62f1dd00162c44 or 62f1dd20162c44 or 62f1dd40162c44
   791  	VMOVHPD (AX), X5, X8             // c5511600 or c461d11600 or 6271d5281600 or 6271d5481600
   792  	VMOVHPD 7(DX), X5, X8            // c551164207 or 6271d528168207000000 or 6271d548168207000000
   793  	VMOVHPD -15(R11)(CX*1), X5, X8   // c4415116440bf1 or 6251d52816840bf1ffffff or 6251d54816840bf1ffffff
   794  	VMOVHPD (SP)(AX*2), X5, X8       // c551160444 or 6271d528160444 or 6271d548160444
   795  	VMOVHPD (AX), X8, X8             // c5391600 or 6271bd281600 or 6271bd481600
   796  	VMOVHPD 7(DX), X8, X8            // c539164207 or 6271bd28168207000000 or 6271bd48168207000000
   797  	VMOVHPD -15(R11)(CX*1), X8, X8   // c4413916440bf1 or 6251bd2816840bf1ffffff or 6251bd4816840bf1ffffff
   798  	VMOVHPD (SP)(AX*2), X8, X8       // c539160444 or 6271bd28160444 or 6271bd48160444
   799  	VMOVHPD (AX), X20, X8            // 6271dd001600 or 6271dd201600 or 6271dd401600
   800  	VMOVHPD 7(DX), X20, X8           // 6271dd00168207000000 or 6271dd20168207000000 or 6271dd40168207000000
   801  	VMOVHPD -15(R11)(CX*1), X20, X8  // 6251dd0016840bf1ffffff or 6251dd2016840bf1ffffff or 6251dd4016840bf1ffffff
   802  	VMOVHPD (SP)(AX*2), X20, X8      // 6271dd00160444 or 6271dd20160444 or 6271dd40160444
   803  	VMOVHPD (AX), X5, X20            // 62e1d5081620 or 62e1d5281620 or 62e1d5481620
   804  	VMOVHPD 7(DX), X5, X20           // 62e1d50816a207000000 or 62e1d52816a207000000 or 62e1d54816a207000000
   805  	VMOVHPD -15(R11)(CX*1), X5, X20  // 62c1d50816a40bf1ffffff or 62c1d52816a40bf1ffffff or 62c1d54816a40bf1ffffff
   806  	VMOVHPD (SP)(AX*2), X5, X20      // 62e1d508162444 or 62e1d528162444 or 62e1d548162444
   807  	VMOVHPD (AX), X8, X20            // 62e1bd081620 or 62e1bd281620 or 62e1bd481620
   808  	VMOVHPD 7(DX), X8, X20           // 62e1bd0816a207000000 or 62e1bd2816a207000000 or 62e1bd4816a207000000
   809  	VMOVHPD -15(R11)(CX*1), X8, X20  // 62c1bd0816a40bf1ffffff or 62c1bd2816a40bf1ffffff or 62c1bd4816a40bf1ffffff
   810  	VMOVHPD (SP)(AX*2), X8, X20      // 62e1bd08162444 or 62e1bd28162444 or 62e1bd48162444
   811  	VMOVHPD (AX), X20, X20           // 62e1dd001620 or 62e1dd201620 or 62e1dd401620
   812  	VMOVHPD 7(DX), X20, X20          // 62e1dd0016a207000000 or 62e1dd2016a207000000 or 62e1dd4016a207000000
   813  	VMOVHPD -15(R11)(CX*1), X20, X20 // 62c1dd0016a40bf1ffffff or 62c1dd2016a40bf1ffffff or 62c1dd4016a40bf1ffffff
   814  	VMOVHPD (SP)(AX*2), X20, X20     // 62e1dd00162444 or 62e1dd20162444 or 62e1dd40162444
   815  	VMOVHPD X5, (AX)                 // c5f91728 or 62f1fd281728 or 62f1fd481728
   816  	VMOVHPD X8, (AX)                 // c5791700 or 6271fd281700 or 6271fd481700
   817  	VMOVHPD X20, (AX)                // 62e1fd081720 or 62e1fd281720 or 62e1fd481720
   818  	VMOVHPD X5, 7(DX)                // c5f9176a07 or 62f1fd2817aa07000000 or 62f1fd4817aa07000000
   819  	VMOVHPD X8, 7(DX)                // c579174207 or 6271fd28178207000000 or 6271fd48178207000000
   820  	VMOVHPD X20, 7(DX)               // 62e1fd0817a207000000 or 62e1fd2817a207000000 or 62e1fd4817a207000000
   821  	VMOVHPD X5, -15(R11)(CX*1)       // c4c179176c0bf1 or 62d1fd2817ac0bf1ffffff or 62d1fd4817ac0bf1ffffff
   822  	VMOVHPD X8, -15(R11)(CX*1)       // c4417917440bf1 or 6251fd2817840bf1ffffff or 6251fd4817840bf1ffffff
   823  	VMOVHPD X20, -15(R11)(CX*1)      // 62c1fd0817a40bf1ffffff or 62c1fd2817a40bf1ffffff or 62c1fd4817a40bf1ffffff
   824  	VMOVHPD X5, (SP)(AX*2)           // c5f9172c44 or 62f1fd28172c44 or 62f1fd48172c44
   825  	VMOVHPD X8, (SP)(AX*2)           // c579170444 or 6271fd28170444 or 6271fd48170444
   826  	VMOVHPD X20, (SP)(AX*2)          // 62e1fd08172444 or 62e1fd28172444 or 62e1fd48172444
   827  	// VMOVLPD: overlapping VEX and EVEX variants.
   828  	VMOVLPD (AX), X5, X5             // c5d11228 or 62f1d5281228 or 62f1d5481228
   829  	VMOVLPD 7(DX), X5, X5            // c5d1126a07 or 62f1d52812aa07000000 or 62f1d54812aa07000000
   830  	VMOVLPD -15(R11)(CX*1), X5, X5   // c4c151126c0bf1 or 62d1d52812ac0bf1ffffff or 62d1d54812ac0bf1ffffff
   831  	VMOVLPD (SP)(AX*2), X5, X5       // c5d1122c44 or 62f1d528122c44 or 62f1d548122c44
   832  	VMOVLPD (AX), X8, X5             // c5b91228 or 62f1bd281228 or 62f1bd481228
   833  	VMOVLPD 7(DX), X8, X5            // c5b9126a07 or 62f1bd2812aa07000000 or 62f1bd4812aa07000000
   834  	VMOVLPD -15(R11)(CX*1), X8, X5   // c4c139126c0bf1 or 62d1bd2812ac0bf1ffffff or 62d1bd4812ac0bf1ffffff
   835  	VMOVLPD (SP)(AX*2), X8, X5       // c5b9122c44 or 62f1bd28122c44 or 62f1bd48122c44
   836  	VMOVLPD (AX), X20, X5            // 62f1dd001228 or 62f1dd201228 or 62f1dd401228
   837  	VMOVLPD 7(DX), X20, X5           // 62f1dd0012aa07000000 or 62f1dd2012aa07000000 or 62f1dd4012aa07000000
   838  	VMOVLPD -15(R11)(CX*1), X20, X5  // 62d1dd0012ac0bf1ffffff or 62d1dd2012ac0bf1ffffff or 62d1dd4012ac0bf1ffffff
   839  	VMOVLPD (SP)(AX*2), X20, X5      // 62f1dd00122c44 or 62f1dd20122c44 or 62f1dd40122c44
   840  	VMOVLPD (AX), X5, X8             // c5511200 or 6271d5281200 or 6271d5481200
   841  	VMOVLPD 7(DX), X5, X8            // c551124207 or 6271d528128207000000 or 6271d548128207000000
   842  	VMOVLPD -15(R11)(CX*1), X5, X8   // c4415112440bf1 or 6251d52812840bf1ffffff or 6251d54812840bf1ffffff
   843  	VMOVLPD (SP)(AX*2), X5, X8       // c551120444 or 6271d528120444 or 6271d548120444
   844  	VMOVLPD (AX), X8, X8             // c5391200 or 6271bd281200 or 6271bd481200
   845  	VMOVLPD 7(DX), X8, X8            // c539124207 or 6271bd28128207000000 or 6271bd48128207000000
   846  	VMOVLPD -15(R11)(CX*1), X8, X8   // c4413912440bf1 or 6251bd2812840bf1ffffff or 6251bd4812840bf1ffffff
   847  	VMOVLPD (SP)(AX*2), X8, X8       // c539120444 or 6271bd28120444 or 6271bd48120444
   848  	VMOVLPD (AX), X20, X8            // 6271dd001200 or 6271dd201200 or 6271dd401200
   849  	VMOVLPD 7(DX), X20, X8           // 6271dd00128207000000 or 6271dd20128207000000 or 6271dd40128207000000
   850  	VMOVLPD -15(R11)(CX*1), X20, X8  // 6251dd0012840bf1ffffff or 6251dd2012840bf1ffffff or 6251dd4012840bf1ffffff
   851  	VMOVLPD (SP)(AX*2), X20, X8      // 6271dd00120444 or 6271dd20120444 or 6271dd40120444
   852  	VMOVLPD (AX), X5, X20            // 62e1d5081220 or 62e1d5281220 or 62e1d5481220
   853  	VMOVLPD 7(DX), X5, X20           // 62e1d50812a207000000 or 62e1d52812a207000000 or 62e1d54812a207000000
   854  	VMOVLPD -15(R11)(CX*1), X5, X20  // 62c1d50812a40bf1ffffff or 62c1d52812a40bf1ffffff or 62c1d54812a40bf1ffffff
   855  	VMOVLPD (SP)(AX*2), X5, X20      // 62e1d508122444 or 62e1d528122444 or 62e1d548122444
   856  	VMOVLPD (AX), X8, X20            // 62e1bd081220 or 62e1bd281220 or 62e1bd481220
   857  	VMOVLPD 7(DX), X8, X20           // 62e1bd0812a207000000 or 62e1bd2812a207000000 or 62e1bd4812a207000000
   858  	VMOVLPD -15(R11)(CX*1), X8, X20  // 62c1bd0812a40bf1ffffff or 62c1bd2812a40bf1ffffff or 62c1bd4812a40bf1ffffff
   859  	VMOVLPD (SP)(AX*2), X8, X20      // 62e1bd08122444 or 62e1bd28122444 or 62e1bd48122444
   860  	VMOVLPD (AX), X20, X20           // 62e1dd001220 or 62e1dd201220 or 62e1dd401220
   861  	VMOVLPD 7(DX), X20, X20          // 62e1dd0012a207000000 or 62e1dd2012a207000000 or 62e1dd4012a207000000
   862  	VMOVLPD -15(R11)(CX*1), X20, X20 // 62c1dd0012a40bf1ffffff or 62c1dd2012a40bf1ffffff or 62c1dd4012a40bf1ffffff
   863  	VMOVLPD (SP)(AX*2), X20, X20     // 62e1dd00122444 or 62e1dd20122444 or 62e1dd40122444
   864  	VMOVLPD X5, (AX)                 // c5f91328 or 62f1fd281328 or 62f1fd481328
   865  	VMOVLPD X8, (AX)                 // c5791300 or 6271fd281300 or 6271fd481300
   866  	VMOVLPD X20, (AX)                // 62e1fd081320 or 62e1fd281320 or 62e1fd481320
   867  	VMOVLPD X5, 7(DX)                // c5f9136a07 or 62f1fd2813aa07000000 or 62f1fd4813aa07000000
   868  	VMOVLPD X8, 7(DX)                // c579134207 or 6271fd28138207000000 or 6271fd48138207000000
   869  	VMOVLPD X20, 7(DX)               // 62e1fd0813a207000000 or 62e1fd2813a207000000 or 62e1fd4813a207000000
   870  	VMOVLPD X5, -15(R11)(CX*1)       // c4c179136c0bf1 or 62d1fd2813ac0bf1ffffff or 62d1fd4813ac0bf1ffffff
   871  	VMOVLPD X8, -15(R11)(CX*1)       // c4417913440bf1 or 6251fd2813840bf1ffffff or 6251fd4813840bf1ffffff
   872  	VMOVLPD X20, -15(R11)(CX*1)      // 62c1fd0813a40bf1ffffff or 62c1fd2813a40bf1ffffff or 62c1fd4813a40bf1ffffff
   873  	VMOVLPD X5, (SP)(AX*2)           // c5f9132c44 or 62f1fd28132c44 or 62f1fd48132c44
   874  	VMOVLPD X8, (SP)(AX*2)           // c579130444 or 6271fd28130444 or 6271fd48130444
   875  	VMOVLPD X20, (SP)(AX*2)          // 62e1fd08132444 or 62e1fd28132444 or 62e1fd48132444
   876  	// "VPEXTRW imm8u, xmm1, r32/m16"/15 vs "VPEXTRW imm8u, xmm2, r32"/C5.
   877  	VPEXTRW $17, X20, AX              // 62b17d08c5c411 or 62e37d0815e011 or 62e3fd0815e011
   878  	VPEXTRW $127, X20, AX             // 62b17d08c5c47f or 62e37d0815e07f or 62e3fd0815e07f
   879  	VPEXTRW $17, X20, SP              // 62b17d08c5e411 or 62e37d0815e411 or 62e3fd0815e411
   880  	VPEXTRW $127, X20, SP             // 62b17d08c5e47f or 62e37d0815e47f or 62e3fd0815e47f
   881  	VPEXTRW $17, X20, BP              // 62b17d08c5ec11 or 62e37d0815e511 or 62e3fd0815e511
   882  	VPEXTRW $127, X20, BP             // 62b17d08c5ec7f or 62e37d0815e57f or 62e3fd0815e57f
   883  	VPEXTRW $17, X20, R14             // 62317d08c5f411 or 62c37d0815e611 or 62c3fd0815e611
   884  	VPEXTRW $127, X20, R14            // 62317d08c5f47f or 62c37d0815e67f or 62c3fd0815e67f
   885  	VPEXTRW $17, X20, (AX)            // 62e37d08152011 or 62e3fd08152011
   886  	VPEXTRW $127, X20, (AX)           // 62e37d0815207f or 62e3fd0815207f
   887  	VPEXTRW $17, X20, 7(DX)           // 62e37d0815a20700000011 or 62e3fd0815a20700000011
   888  	VPEXTRW $127, X20, 7(DX)          // 62e37d0815a2070000007f or 62e3fd0815a2070000007f
   889  	VPEXTRW $17, X20, -15(R11)(CX*1)  // 62c37d0815a40bf1ffffff11 or 62c3fd0815a40bf1ffffff11
   890  	VPEXTRW $127, X20, -15(R11)(CX*1) // 62c37d0815a40bf1ffffff7f or 62c3fd0815a40bf1ffffff7f
   891  	VPEXTRW $17, X20, (SP)(AX*2)      // 62e37d0815244411 or 62e3fd0815244411
   892  	VPEXTRW $127, X20, (SP)(AX*2)     // 62e37d081524447f or 62e3fd081524447f
   893  	// EVEX: embedded zeroing.
   894  	VADDPD.Z X30, X1, K7, X0  // 6291f58f58c6
   895  	VMAXPD.Z (AX), Z2, K1, Z1 // 62f1edc95f08
   896  	// EVEX: embedded rounding.
   897  	VADDPD.RU_SAE Z3, Z2, K1, Z1   // 62f1ed5958cb
   898  	VADDPD.RD_SAE Z3, Z2, K1, Z1   // 62f1ed3958cb
   899  	VADDPD.RZ_SAE Z3, Z2, K1, Z1   // 62f1ed7958cb
   900  	VADDPD.RN_SAE Z3, Z2, K1, Z1   // 62f1ed1958cb
   901  	VADDPD.RU_SAE.Z Z3, Z2, K1, Z1 // 62f1edd958cb
   902  	VADDPD.RD_SAE.Z Z3, Z2, K1, Z1 // 62f1edb958cb
   903  	VADDPD.RZ_SAE.Z Z3, Z2, K1, Z1 // 62f1edf958cb
   904  	VADDPD.RN_SAE.Z Z3, Z2, K1, Z1 // 62f1ed9958cb
   905  	// EVEX: embedded broadcasting.
   906  	VADDPD.BCST (AX), X2, K1, X1   // 62f1ed195808
   907  	VADDPD.BCST.Z (AX), X2, K1, X1 // 62f1ed995808
   908  	VADDPD.BCST (AX), Y2, K1, Y1   // 62f1ed395808
   909  	VADDPD.BCST.Z (AX), Y2, K1, Y1 // 62f1edb95808
   910  	VADDPD.BCST (AX), Z2, K1, Z1   // 62f1ed595808
   911  	VADDPD.BCST.Z (AX), Z2, K1, Z1 // 62f1edd95808
   912  	VMAXPD.BCST (AX), Z2, K1, Z1   // 62f1ed595f08
   913  	VMAXPD.BCST.Z (AX), Z2, K1, Z1 // 62f1edd95f08
   914  	// EVEX: suppress all exceptions (SAE).
   915  	VMAXPD.SAE   Z3, Z2, K1, Z1   // 62f1ed595fcb or 62f1ed195fcb
   916  	VMAXPD.SAE.Z Z3, Z2, K1, Z1   // 62f1edd95fcb or 62f1ed995fcb
   917  	VMAXPD (AX), Z2, K1, Z1       // 62f1ed495f08
   918  	VCMPSD.SAE $0, X0, X2, K0     // 62f1ef18c2c000
   919  	VCMPSD.SAE $0, X0, X2, K1, K0 // 62f1ef19c2c000
   920  	// EVEX: broadcast-affected compressed displacement (Disp8).
   921  	VADDPD.BCST 1016(DX), X0, X29       // 6261fd18586a7f
   922  	VADDPD.BCST 1016(DX), X29, X1       // 62f19510584a7f
   923  	VADDPD.BCST 1016(DX), X28, X29      // 62619d10586a7f
   924  	VADDPD.BCST 1016(DX)(AX*2), X0, X29 // 6261fd18586c427f
   925  	VADDPD.BCST 1016(DX)(AX*2), X29, X1 // 62f19510584c427f
   926  	VADDPD.BCST 1016(DX), Y0, Y29       // 6261fd38586a7f
   927  	VADDPD.BCST 1016(DX), Y29, Y1       // 62f19530584a7f
   928  	VADDPD.BCST 1016(DX), Y28, Y29      // 62619d30586a7f
   929  	VADDPD.BCST 1016(DX)(AX*2), Y0, Y29 // 6261fd38586c427f
   930  	VADDPD.BCST 1016(DX)(AX*2), Y29, Y1 // 62f19530584c427f
   931  	VADDPD.BCST 1016(DX), Z0, Z29       // 6261fd58586a7f
   932  	VADDPD.BCST 1016(DX), Z29, Z1       // 62f19550584a7f
   933  	VADDPD.BCST 1016(DX), Z28, Z29      // 62619d50586a7f
   934  	VADDPD.BCST 1016(DX)(AX*2), Z0, Z29 // 6261fd58586c427f
   935  	VADDPD.BCST 1016(DX)(AX*2), Z29, Z1 // 62f19550584c427f
   936  	VADDPS.BCST 508(DX), Z0, Z29        // 62617c58586a7f
   937  	VADDPS.BCST 508(DX), Z1, Z29        // 62617458586a7f
   938  	VADDPS.BCST 508(DX), Z28, Z29       // 62611c50586a7f
   939  	VADDPS.BCST 508(DX)(AX*2), Z0, Z29  // 62617c58586c427f
   940  	VADDPS.BCST 508(DX)(AX*2), Z1, Z29  // 62617458586c427f
   941  	// EVEX: broadcast-affected compressed displacement that does not fit into 8bits.
   942  	VADDPD.BCST 2032(DX), X0, X29        // 6261fd1858aaf0070000
   943  	VADDPD.BCST 2032(DX), X29, X1        // 62f19510588af0070000
   944  	VADDPD.BCST 2032(DX), X28, X29       // 62619d1058aaf0070000
   945  	VADDPD.BCST 2032(DX)(AX*2), X0, X29  // 6261fd1858ac42f0070000
   946  	VADDPD.BCST 2032(DX)(AX*2), X29, X1  // 62f19510588c42f0070000
   947  	VADDPD.BCST 2032(DX), Y0, Y29        // 6261fd3858aaf0070000
   948  	VADDPD.BCST 2032(DX), Y29, Y1        // 62f19530588af0070000
   949  	VADDPD.BCST 2032(DX), Y28, Y29       // 62619d3058aaf0070000
   950  	VADDPD.BCST 2032(DX)(AX*2), Y0, Y29  // 6261fd3858ac42f0070000
   951  	VADDPD.BCST 2032(DX)(AX*2), Y29, Y1  // 62f19530588c42f0070000
   952  	VADDPD.BCST 2032(DX), Z0, Z29        // 6261fd5858aaf0070000
   953  	VADDPD.BCST 2032(DX), Z29, Z1        // 62f19550588af0070000
   954  	VADDPD.BCST 2032(DX), Z28, Z29       // 62619d5058aaf0070000
   955  	VADDPD.BCST 2032(DX)(AX*2), Z0, Z29  // 6261fd5858ac42f0070000
   956  	VADDPD.BCST 2032(DX)(AX*2), Z29, Z1  // 62f19550588c42f0070000
   957  	VADDPS.BCST 2032(DX), Z0, Z29        // 62617c5858aaf0070000
   958  	VADDPS.BCST 2032(DX), Z1, Z29        // 6261745858aaf0070000
   959  	VADDPS.BCST 2032(DX), Z28, Z29       // 62611c5058aaf0070000
   960  	VADDPS.BCST 2032(DX)(AX*2), Z0, Z29  // 62617c5858ac42f0070000
   961  	VADDPS.BCST 2032(DX)(AX*2), Z1, Z29  // 6261745858ac42f0070000
   962  	// Forced EVEX encoding due to suffixes.
   963  	VADDPD.BCST 2032(DX), X0, X0 // 62f1fd185882f0070000
   964  	VADDPD.BCST 2032(DX), Y0, Y0 // 62f1fd385882f0070000
   965  	// Test new Z-cases one-by-one.
   966  	//
   967  	// Zevex_i_r_k_rm.
   968  	VCVTPS2PH $1, Z2, K5, Y21 // 62b37d4d1dd501
   969  	VCVTPS2PH $2, Z21, K4, Y2 // 62e37d4c1dea02
   970  	// Zevex_i_r_rm.
   971  	VCVTPS2PH $1, Z2, Y21 // 62b37d481dd501
   972  	VCVTPS2PH $2, Z21, Y2 // 62e37d481dea02
   973  	// Zevex_i_rm_k_r.
   974  	VFPCLASSPDX $1, X2, K5, K3   // 62f3fd0d66da01
   975  	VFPCLASSPDX $2, X21, K4, K1  // 62b3fd0c66cd02
   976  	VFPCLASSPDX $1, (AX), K5, K3 // 62f3fd0d661801
   977  	VFPCLASSPDX $2, (CX), K4, K1 // 62f3fd0c660902
   978  	// Zevex_i_rm_k_vo.
   979  	VPROLD $1, X2, K5, X21   // 62f1550572ca01
   980  	VPROLD $2, Y21, K5, Y2   // 62b16d2d72cd02
   981  	VPROLD $1, (AX), K5, X21 // 62f15505720801
   982  	VPROLD $2, (CX), K5, Y2  // 62f16d2d720902
   983  	// Zevex_i_rm_r.
   984  	VFPCLASSPDX $1, X2, K3   // 62f3fd0866da01
   985  	VFPCLASSPDX $2, X21, K1  // 62b3fd0866cd02
   986  	VFPCLASSPDX $1, (AX), K3 // 62f3fd08661801
   987  	VFPCLASSPDX $2, (CX), K1 // 62f3fd08660902
   988  	// Zevex_i_rm_v_k_r.
   989  	VALIGND $1, X2, X9, K5, X21   // 62e3350d03ea01
   990  	VALIGND $2, Y21, Y2, K5, Y9   // 62336d2d03cd02
   991  	VALIGND $3, Z9, Z21, K5, Z2   // 62d3554503d103
   992  	VALIGND $1, (AX), X9, K5, X21 // 62e3350d032801
   993  	VALIGND $2, (CX), Y2, K5, Y9  // 62736d2d030902
   994  	VALIGND $3, (AX), Z21, K5, Z2 // 62f35545031003
   995  	// Zevex_i_rm_v_r.
   996  	VALIGND $1, X2, X9, X21   // 62e3350803ea01
   997  	VALIGND $2, Y21, Y2, Y9   // 62336d2803cd02
   998  	VALIGND $3, Z9, Z21, Z2   // 62d3554003d103
   999  	VALIGND $1, (AX), X9, X21 // 62e33508032801
  1000  	VALIGND $2, (CX), Y2, Y9  // 62736d28030902
  1001  	VALIGND $3, (AX), Z21, Z2 // 62f35540031003
  1002  	// Zevex_i_rm_vo.
  1003  	VPROLD $1, X2, X21   // 62f1550072ca01
  1004  	VPROLD $2, Y21, Y2   // 62b16d2872cd02
  1005  	VPROLD $1, (AX), X21 // 62f15500720801
  1006  	VPROLD $2, (CX), Y2  // 62f16d28720902
  1007  	// Zevex_k_rmo.
  1008  	VGATHERPF0DPD K5, (AX)(Y2*2)   // 62f2fd4dc60c50
  1009  	VGATHERPF0DPD K3, (CX)(Y21*2)  // 62f2fd43c60c69
  1010  	VSCATTERPF1DPD K5, (AX)(Y2*2)  // 62f2fd4dc63450
  1011  	VSCATTERPF1DPD K3, (CX)(Y21*2) // 62f2fd43c63469
  1012  	// Zevex_r_k_rm.
  1013  	VPSCATTERDD X2, K5, (AX)(X21*2) // 62f27d05a01468
  1014  	VPSCATTERDD X21, K5, (AX)(X2*2) // 62e27d0da02c50
  1015  	VPSCATTERDD Y2, K5, (AX)(Y21*2) // 62f27d25a01468
  1016  	VPSCATTERDD Y21, K5, (AX)(Y2*2) // 62e27d2da02c50
  1017  	VPSCATTERDD Z2, K5, (AX)(Z21*2) // 62f27d45a01468
  1018  	VPSCATTERDD Z21, K5, (AX)(Z2*2) // 62e27d4da02c50
  1019  	// Zevex_r_v_k_rm.
  1020  	VMOVSD X2, X9, K5, X21 // 62b1b70d11d5 or 62e1b70d10ea
  1021  	VMOVSD X21, X2, K5, X9 // 62c1ef0d11e9 or 6231ef0d10cd
  1022  	VMOVSD X9, X21, K5, X2 // 6271d70511ca or 62d1d70510d1
  1023  	// Zevex_r_v_rm.
  1024  	VMOVSD X2, X9, X21 // 62b1b70811d5 or 62e1b70810ea
  1025  	VMOVSD X21, X2, X9 // 62c1ef0811e9 or 6231ef0810cd
  1026  	VMOVSD X9, X21, X2 // 6271d70011ca or 62d1d70010d1
  1027  	VPMOVDB X2, X21    // 62b27e0831d5
  1028  	VPMOVDB X21, X2    // 62e27e0831ea
  1029  	VPMOVDB X2, (AX)   // 62f27e083110
  1030  	VPMOVDB X21, (AX)  // 62e27e083128
  1031  	// Zevex_rm_k_r.
  1032  	VMOVDDUP X2, K5, X21   // 62e1ff0d12ea
  1033  	VMOVDDUP X21, K5, X2   // 62b1ff0d12d5
  1034  	VMOVDDUP (AX), K5, X21 // 62e1ff0d1228
  1035  	VMOVDDUP (CX), K5, X2  // 62f1ff0d1211
  1036  	VMOVDDUP Y2, K5, Y21   // 62e1ff2d12ea
  1037  	VMOVDDUP Y21, K5, Y2   // 62b1ff2d12d5
  1038  	VMOVDDUP (AX), K5, Y21 // 62e1ff2d1228
  1039  	VMOVDDUP (CX), K5, Y2  // 62f1ff2d1211
  1040  	VMOVDDUP Z2, K5, Z21   // 62e1ff4d12ea
  1041  	VMOVDDUP Z21, K5, Z2   // 62b1ff4d12d5
  1042  	VMOVDDUP (AX), K5, Z21 // 62e1ff4d1228
  1043  	VMOVDDUP (CX), K5, Z2  // 62f1ff4d1211
  1044  	// Zevex_rm_v_k_r.
  1045  	VADDPD Z2, Z9, K5, Z21 // 62e1b54d58ea
  1046  	VADDPD Z21, Z2, K5, Z9 // 6231ed4d58cd
  1047  	VADDPD Z9, Z21, K5, Z2 // 62d1d54558d1
  1048  	// Zevex_rm_v_r.
  1049  	VADDPD Z2, Z9, Z21 // 62e1b54858ea
  1050  	VADDPD Z21, Z2, Z9 // 6231ed4858cd
  1051  	VADDPD Z9, Z21, Z2 // 62d1d54058d1
  1052  
  1053  	CLWB (BX) // 660fae33
  1054  	CLDEMOTE (BX) // 0f1c03
  1055  	TPAUSE BX // 660faef3
  1056  	UMONITOR BX // f30faef3
  1057  	UMWAIT BX // f20faef3
  1058  
  1059  	RDPID DX                                // f30fc7fa
  1060  	RDPID R11                               // f3410fc7fb
  1061  
  1062  	// End of tests.
  1063  	RET
  1064  

View as plain text