github.com/songzhibin97/go-baseutils@v0.0.2-0.20240302024150-487d8ce9c082/sys/xxhash3/sse2_amd64.s (about)

     1  
     2  
     3  // Code generated by command: go run gen.go -sse2 -out ./sse2.s. DO NOT EDIT.
     4  
     5  #include "textflag.h"
     6  
     7  DATA prime_sse<>+0(SB)/4, $0x9e3779b1
     8  DATA prime_sse<>+4(SB)/4, $0x9e3779b1
     9  DATA prime_sse<>+8(SB)/4, $0x9e3779b1
    10  DATA prime_sse<>+12(SB)/4, $0x9e3779b1
    11  GLOBL prime_sse<>(SB), RODATA|NOPTR, $16
    12  
    13  // func accumSSE2(acc *[8]uint64, xinput *byte, xsecret *byte, len uint64)
    14  // Requires: SSE2
    15  TEXT ·accumSSE2(SB), NOSPLIT, $0-32
    16  	MOVQ  acc+0(FP), AX
    17  	MOVQ  xinput+8(FP), CX
    18  	MOVQ  xsecret+16(FP), DX
    19  	MOVQ  xsecret+16(FP), BX
    20  	MOVQ  len+24(FP), SI
    21  	MOVOU (AX), X1
    22  	MOVOU 16(AX), X2
    23  	MOVOU 32(AX), X3
    24  	MOVOU 48(AX), X4
    25  	MOVOU prime_sse<>+0(SB), X0
    26  
    27  accumBlock:
    28  	CMPQ    SI, $0x00000400
    29  	JLE     accumStripe
    30  	MOVOU   (CX), X5
    31  	MOVOU   (DX), X6
    32  	PXOR    X5, X6
    33  	PSHUFD  $0x31, X6, X7
    34  	PMULULQ X6, X7
    35  	PSHUFD  $0x4e, X5, X5
    36  	PADDQ   X5, X1
    37  	PADDQ   X7, X1
    38  	MOVOU   16(CX), X5
    39  	MOVOU   16(DX), X6
    40  	PXOR    X5, X6
    41  	PSHUFD  $0x31, X6, X7
    42  	PMULULQ X6, X7
    43  	PSHUFD  $0x4e, X5, X5
    44  	PADDQ   X5, X2
    45  	PADDQ   X7, X2
    46  	MOVOU   32(CX), X5
    47  	MOVOU   32(DX), X6
    48  	PXOR    X5, X6
    49  	PSHUFD  $0x31, X6, X7
    50  	PMULULQ X6, X7
    51  	PSHUFD  $0x4e, X5, X5
    52  	PADDQ   X5, X3
    53  	PADDQ   X7, X3
    54  	MOVOU   48(CX), X5
    55  	MOVOU   48(DX), X6
    56  	PXOR    X5, X6
    57  	PSHUFD  $0x31, X6, X7
    58  	PMULULQ X6, X7
    59  	PSHUFD  $0x4e, X5, X5
    60  	PADDQ   X5, X4
    61  	PADDQ   X7, X4
    62  	MOVOU   64(CX), X5
    63  	MOVOU   8(DX), X6
    64  	PXOR    X5, X6
    65  	PSHUFD  $0x31, X6, X7
    66  	PMULULQ X6, X7
    67  	PSHUFD  $0x4e, X5, X5
    68  	PADDQ   X5, X1
    69  	PADDQ   X7, X1
    70  	MOVOU   80(CX), X5
    71  	MOVOU   24(DX), X6
    72  	PXOR    X5, X6
    73  	PSHUFD  $0x31, X6, X7
    74  	PMULULQ X6, X7
    75  	PSHUFD  $0x4e, X5, X5
    76  	PADDQ   X5, X2
    77  	PADDQ   X7, X2
    78  	MOVOU   96(CX), X5
    79  	MOVOU   40(DX), X6
    80  	PXOR    X5, X6
    81  	PSHUFD  $0x31, X6, X7
    82  	PMULULQ X6, X7
    83  	PSHUFD  $0x4e, X5, X5
    84  	PADDQ   X5, X3
    85  	PADDQ   X7, X3
    86  	MOVOU   112(CX), X5
    87  	MOVOU   56(DX), X6
    88  	PXOR    X5, X6
    89  	PSHUFD  $0x31, X6, X7
    90  	PMULULQ X6, X7
    91  	PSHUFD  $0x4e, X5, X5
    92  	PADDQ   X5, X4
    93  	PADDQ   X7, X4
    94  	MOVOU   128(CX), X5
    95  	MOVOU   16(DX), X6
    96  	PXOR    X5, X6
    97  	PSHUFD  $0x31, X6, X7
    98  	PMULULQ X6, X7
    99  	PSHUFD  $0x4e, X5, X5
   100  	PADDQ   X5, X1
   101  	PADDQ   X7, X1
   102  	MOVOU   144(CX), X5
   103  	MOVOU   32(DX), X6
   104  	PXOR    X5, X6
   105  	PSHUFD  $0x31, X6, X7
   106  	PMULULQ X6, X7
   107  	PSHUFD  $0x4e, X5, X5
   108  	PADDQ   X5, X2
   109  	PADDQ   X7, X2
   110  	MOVOU   160(CX), X5
   111  	MOVOU   48(DX), X6
   112  	PXOR    X5, X6
   113  	PSHUFD  $0x31, X6, X7
   114  	PMULULQ X6, X7
   115  	PSHUFD  $0x4e, X5, X5
   116  	PADDQ   X5, X3
   117  	PADDQ   X7, X3
   118  	MOVOU   176(CX), X5
   119  	MOVOU   64(DX), X6
   120  	PXOR    X5, X6
   121  	PSHUFD  $0x31, X6, X7
   122  	PMULULQ X6, X7
   123  	PSHUFD  $0x4e, X5, X5
   124  	PADDQ   X5, X4
   125  	PADDQ   X7, X4
   126  	MOVOU   192(CX), X5
   127  	MOVOU   24(DX), X6
   128  	PXOR    X5, X6
   129  	PSHUFD  $0x31, X6, X7
   130  	PMULULQ X6, X7
   131  	PSHUFD  $0x4e, X5, X5
   132  	PADDQ   X5, X1
   133  	PADDQ   X7, X1
   134  	MOVOU   208(CX), X5
   135  	MOVOU   40(DX), X6
   136  	PXOR    X5, X6
   137  	PSHUFD  $0x31, X6, X7
   138  	PMULULQ X6, X7
   139  	PSHUFD  $0x4e, X5, X5
   140  	PADDQ   X5, X2
   141  	PADDQ   X7, X2
   142  	MOVOU   224(CX), X5
   143  	MOVOU   56(DX), X6
   144  	PXOR    X5, X6
   145  	PSHUFD  $0x31, X6, X7
   146  	PMULULQ X6, X7
   147  	PSHUFD  $0x4e, X5, X5
   148  	PADDQ   X5, X3
   149  	PADDQ   X7, X3
   150  	MOVOU   240(CX), X5
   151  	MOVOU   72(DX), X6
   152  	PXOR    X5, X6
   153  	PSHUFD  $0x31, X6, X7
   154  	PMULULQ X6, X7
   155  	PSHUFD  $0x4e, X5, X5
   156  	PADDQ   X5, X4
   157  	PADDQ   X7, X4
   158  	MOVOU   256(CX), X5
   159  	MOVOU   32(DX), X6
   160  	PXOR    X5, X6
   161  	PSHUFD  $0x31, X6, X7
   162  	PMULULQ X6, X7
   163  	PSHUFD  $0x4e, X5, X5
   164  	PADDQ   X5, X1
   165  	PADDQ   X7, X1
   166  	MOVOU   272(CX), X5
   167  	MOVOU   48(DX), X6
   168  	PXOR    X5, X6
   169  	PSHUFD  $0x31, X6, X7
   170  	PMULULQ X6, X7
   171  	PSHUFD  $0x4e, X5, X5
   172  	PADDQ   X5, X2
   173  	PADDQ   X7, X2
   174  	MOVOU   288(CX), X5
   175  	MOVOU   64(DX), X6
   176  	PXOR    X5, X6
   177  	PSHUFD  $0x31, X6, X7
   178  	PMULULQ X6, X7
   179  	PSHUFD  $0x4e, X5, X5
   180  	PADDQ   X5, X3
   181  	PADDQ   X7, X3
   182  	MOVOU   304(CX), X5
   183  	MOVOU   80(DX), X6
   184  	PXOR    X5, X6
   185  	PSHUFD  $0x31, X6, X7
   186  	PMULULQ X6, X7
   187  	PSHUFD  $0x4e, X5, X5
   188  	PADDQ   X5, X4
   189  	PADDQ   X7, X4
   190  	MOVOU   320(CX), X5
   191  	MOVOU   40(DX), X6
   192  	PXOR    X5, X6
   193  	PSHUFD  $0x31, X6, X7
   194  	PMULULQ X6, X7
   195  	PSHUFD  $0x4e, X5, X5
   196  	PADDQ   X5, X1
   197  	PADDQ   X7, X1
   198  	MOVOU   336(CX), X5
   199  	MOVOU   56(DX), X6
   200  	PXOR    X5, X6
   201  	PSHUFD  $0x31, X6, X7
   202  	PMULULQ X6, X7
   203  	PSHUFD  $0x4e, X5, X5
   204  	PADDQ   X5, X2
   205  	PADDQ   X7, X2
   206  	MOVOU   352(CX), X5
   207  	MOVOU   72(DX), X6
   208  	PXOR    X5, X6
   209  	PSHUFD  $0x31, X6, X7
   210  	PMULULQ X6, X7
   211  	PSHUFD  $0x4e, X5, X5
   212  	PADDQ   X5, X3
   213  	PADDQ   X7, X3
   214  	MOVOU   368(CX), X5
   215  	MOVOU   88(DX), X6
   216  	PXOR    X5, X6
   217  	PSHUFD  $0x31, X6, X7
   218  	PMULULQ X6, X7
   219  	PSHUFD  $0x4e, X5, X5
   220  	PADDQ   X5, X4
   221  	PADDQ   X7, X4
   222  	MOVOU   384(CX), X5
   223  	MOVOU   48(DX), X6
   224  	PXOR    X5, X6
   225  	PSHUFD  $0x31, X6, X7
   226  	PMULULQ X6, X7
   227  	PSHUFD  $0x4e, X5, X5
   228  	PADDQ   X5, X1
   229  	PADDQ   X7, X1
   230  	MOVOU   400(CX), X5
   231  	MOVOU   64(DX), X6
   232  	PXOR    X5, X6
   233  	PSHUFD  $0x31, X6, X7
   234  	PMULULQ X6, X7
   235  	PSHUFD  $0x4e, X5, X5
   236  	PADDQ   X5, X2
   237  	PADDQ   X7, X2
   238  	MOVOU   416(CX), X5
   239  	MOVOU   80(DX), X6
   240  	PXOR    X5, X6
   241  	PSHUFD  $0x31, X6, X7
   242  	PMULULQ X6, X7
   243  	PSHUFD  $0x4e, X5, X5
   244  	PADDQ   X5, X3
   245  	PADDQ   X7, X3
   246  	MOVOU   432(CX), X5
   247  	MOVOU   96(DX), X6
   248  	PXOR    X5, X6
   249  	PSHUFD  $0x31, X6, X7
   250  	PMULULQ X6, X7
   251  	PSHUFD  $0x4e, X5, X5
   252  	PADDQ   X5, X4
   253  	PADDQ   X7, X4
   254  	MOVOU   448(CX), X5
   255  	MOVOU   56(DX), X6
   256  	PXOR    X5, X6
   257  	PSHUFD  $0x31, X6, X7
   258  	PMULULQ X6, X7
   259  	PSHUFD  $0x4e, X5, X5
   260  	PADDQ   X5, X1
   261  	PADDQ   X7, X1
   262  	MOVOU   464(CX), X5
   263  	MOVOU   72(DX), X6
   264  	PXOR    X5, X6
   265  	PSHUFD  $0x31, X6, X7
   266  	PMULULQ X6, X7
   267  	PSHUFD  $0x4e, X5, X5
   268  	PADDQ   X5, X2
   269  	PADDQ   X7, X2
   270  	MOVOU   480(CX), X5
   271  	MOVOU   88(DX), X6
   272  	PXOR    X5, X6
   273  	PSHUFD  $0x31, X6, X7
   274  	PMULULQ X6, X7
   275  	PSHUFD  $0x4e, X5, X5
   276  	PADDQ   X5, X3
   277  	PADDQ   X7, X3
   278  	MOVOU   496(CX), X5
   279  	MOVOU   104(DX), X6
   280  	PXOR    X5, X6
   281  	PSHUFD  $0x31, X6, X7
   282  	PMULULQ X6, X7
   283  	PSHUFD  $0x4e, X5, X5
   284  	PADDQ   X5, X4
   285  	PADDQ   X7, X4
   286  	MOVOU   512(CX), X5
   287  	MOVOU   64(DX), X6
   288  	PXOR    X5, X6
   289  	PSHUFD  $0x31, X6, X7
   290  	PMULULQ X6, X7
   291  	PSHUFD  $0x4e, X5, X5
   292  	PADDQ   X5, X1
   293  	PADDQ   X7, X1
   294  	MOVOU   528(CX), X5
   295  	MOVOU   80(DX), X6
   296  	PXOR    X5, X6
   297  	PSHUFD  $0x31, X6, X7
   298  	PMULULQ X6, X7
   299  	PSHUFD  $0x4e, X5, X5
   300  	PADDQ   X5, X2
   301  	PADDQ   X7, X2
   302  	MOVOU   544(CX), X5
   303  	MOVOU   96(DX), X6
   304  	PXOR    X5, X6
   305  	PSHUFD  $0x31, X6, X7
   306  	PMULULQ X6, X7
   307  	PSHUFD  $0x4e, X5, X5
   308  	PADDQ   X5, X3
   309  	PADDQ   X7, X3
   310  	MOVOU   560(CX), X5
   311  	MOVOU   112(DX), X6
   312  	PXOR    X5, X6
   313  	PSHUFD  $0x31, X6, X7
   314  	PMULULQ X6, X7
   315  	PSHUFD  $0x4e, X5, X5
   316  	PADDQ   X5, X4
   317  	PADDQ   X7, X4
   318  	MOVOU   576(CX), X5
   319  	MOVOU   72(DX), X6
   320  	PXOR    X5, X6
   321  	PSHUFD  $0x31, X6, X7
   322  	PMULULQ X6, X7
   323  	PSHUFD  $0x4e, X5, X5
   324  	PADDQ   X5, X1
   325  	PADDQ   X7, X1
   326  	MOVOU   592(CX), X5
   327  	MOVOU   88(DX), X6
   328  	PXOR    X5, X6
   329  	PSHUFD  $0x31, X6, X7
   330  	PMULULQ X6, X7
   331  	PSHUFD  $0x4e, X5, X5
   332  	PADDQ   X5, X2
   333  	PADDQ   X7, X2
   334  	MOVOU   608(CX), X5
   335  	MOVOU   104(DX), X6
   336  	PXOR    X5, X6
   337  	PSHUFD  $0x31, X6, X7
   338  	PMULULQ X6, X7
   339  	PSHUFD  $0x4e, X5, X5
   340  	PADDQ   X5, X3
   341  	PADDQ   X7, X3
   342  	MOVOU   624(CX), X5
   343  	MOVOU   120(DX), X6
   344  	PXOR    X5, X6
   345  	PSHUFD  $0x31, X6, X7
   346  	PMULULQ X6, X7
   347  	PSHUFD  $0x4e, X5, X5
   348  	PADDQ   X5, X4
   349  	PADDQ   X7, X4
   350  	MOVOU   640(CX), X5
   351  	MOVOU   80(DX), X6
   352  	PXOR    X5, X6
   353  	PSHUFD  $0x31, X6, X7
   354  	PMULULQ X6, X7
   355  	PSHUFD  $0x4e, X5, X5
   356  	PADDQ   X5, X1
   357  	PADDQ   X7, X1
   358  	MOVOU   656(CX), X5
   359  	MOVOU   96(DX), X6
   360  	PXOR    X5, X6
   361  	PSHUFD  $0x31, X6, X7
   362  	PMULULQ X6, X7
   363  	PSHUFD  $0x4e, X5, X5
   364  	PADDQ   X5, X2
   365  	PADDQ   X7, X2
   366  	MOVOU   672(CX), X5
   367  	MOVOU   112(DX), X6
   368  	PXOR    X5, X6
   369  	PSHUFD  $0x31, X6, X7
   370  	PMULULQ X6, X7
   371  	PSHUFD  $0x4e, X5, X5
   372  	PADDQ   X5, X3
   373  	PADDQ   X7, X3
   374  	MOVOU   688(CX), X5
   375  	MOVOU   128(DX), X6
   376  	PXOR    X5, X6
   377  	PSHUFD  $0x31, X6, X7
   378  	PMULULQ X6, X7
   379  	PSHUFD  $0x4e, X5, X5
   380  	PADDQ   X5, X4
   381  	PADDQ   X7, X4
   382  	MOVOU   704(CX), X5
   383  	MOVOU   88(DX), X6
   384  	PXOR    X5, X6
   385  	PSHUFD  $0x31, X6, X7
   386  	PMULULQ X6, X7
   387  	PSHUFD  $0x4e, X5, X5
   388  	PADDQ   X5, X1
   389  	PADDQ   X7, X1
   390  	MOVOU   720(CX), X5
   391  	MOVOU   104(DX), X6
   392  	PXOR    X5, X6
   393  	PSHUFD  $0x31, X6, X7
   394  	PMULULQ X6, X7
   395  	PSHUFD  $0x4e, X5, X5
   396  	PADDQ   X5, X2
   397  	PADDQ   X7, X2
   398  	MOVOU   736(CX), X5
   399  	MOVOU   120(DX), X6
   400  	PXOR    X5, X6
   401  	PSHUFD  $0x31, X6, X7
   402  	PMULULQ X6, X7
   403  	PSHUFD  $0x4e, X5, X5
   404  	PADDQ   X5, X3
   405  	PADDQ   X7, X3
   406  	MOVOU   752(CX), X5
   407  	MOVOU   136(DX), X6
   408  	PXOR    X5, X6
   409  	PSHUFD  $0x31, X6, X7
   410  	PMULULQ X6, X7
   411  	PSHUFD  $0x4e, X5, X5
   412  	PADDQ   X5, X4
   413  	PADDQ   X7, X4
   414  	MOVOU   768(CX), X5
   415  	MOVOU   96(DX), X6
   416  	PXOR    X5, X6
   417  	PSHUFD  $0x31, X6, X7
   418  	PMULULQ X6, X7
   419  	PSHUFD  $0x4e, X5, X5
   420  	PADDQ   X5, X1
   421  	PADDQ   X7, X1
   422  	MOVOU   784(CX), X5
   423  	MOVOU   112(DX), X6
   424  	PXOR    X5, X6
   425  	PSHUFD  $0x31, X6, X7
   426  	PMULULQ X6, X7
   427  	PSHUFD  $0x4e, X5, X5
   428  	PADDQ   X5, X2
   429  	PADDQ   X7, X2
   430  	MOVOU   800(CX), X5
   431  	MOVOU   128(DX), X6
   432  	PXOR    X5, X6
   433  	PSHUFD  $0x31, X6, X7
   434  	PMULULQ X6, X7
   435  	PSHUFD  $0x4e, X5, X5
   436  	PADDQ   X5, X3
   437  	PADDQ   X7, X3
   438  	MOVOU   816(CX), X5
   439  	MOVOU   144(DX), X6
   440  	PXOR    X5, X6
   441  	PSHUFD  $0x31, X6, X7
   442  	PMULULQ X6, X7
   443  	PSHUFD  $0x4e, X5, X5
   444  	PADDQ   X5, X4
   445  	PADDQ   X7, X4
   446  	MOVOU   832(CX), X5
   447  	MOVOU   104(DX), X6
   448  	PXOR    X5, X6
   449  	PSHUFD  $0x31, X6, X7
   450  	PMULULQ X6, X7
   451  	PSHUFD  $0x4e, X5, X5
   452  	PADDQ   X5, X1
   453  	PADDQ   X7, X1
   454  	MOVOU   848(CX), X5
   455  	MOVOU   120(DX), X6
   456  	PXOR    X5, X6
   457  	PSHUFD  $0x31, X6, X7
   458  	PMULULQ X6, X7
   459  	PSHUFD  $0x4e, X5, X5
   460  	PADDQ   X5, X2
   461  	PADDQ   X7, X2
   462  	MOVOU   864(CX), X5
   463  	MOVOU   136(DX), X6
   464  	PXOR    X5, X6
   465  	PSHUFD  $0x31, X6, X7
   466  	PMULULQ X6, X7
   467  	PSHUFD  $0x4e, X5, X5
   468  	PADDQ   X5, X3
   469  	PADDQ   X7, X3
   470  	MOVOU   880(CX), X5
   471  	MOVOU   152(DX), X6
   472  	PXOR    X5, X6
   473  	PSHUFD  $0x31, X6, X7
   474  	PMULULQ X6, X7
   475  	PSHUFD  $0x4e, X5, X5
   476  	PADDQ   X5, X4
   477  	PADDQ   X7, X4
   478  	MOVOU   896(CX), X5
   479  	MOVOU   112(DX), X6
   480  	PXOR    X5, X6
   481  	PSHUFD  $0x31, X6, X7
   482  	PMULULQ X6, X7
   483  	PSHUFD  $0x4e, X5, X5
   484  	PADDQ   X5, X1
   485  	PADDQ   X7, X1
   486  	MOVOU   912(CX), X5
   487  	MOVOU   128(DX), X6
   488  	PXOR    X5, X6
   489  	PSHUFD  $0x31, X6, X7
   490  	PMULULQ X6, X7
   491  	PSHUFD  $0x4e, X5, X5
   492  	PADDQ   X5, X2
   493  	PADDQ   X7, X2
   494  	MOVOU   928(CX), X5
   495  	MOVOU   144(DX), X6
   496  	PXOR    X5, X6
   497  	PSHUFD  $0x31, X6, X7
   498  	PMULULQ X6, X7
   499  	PSHUFD  $0x4e, X5, X5
   500  	PADDQ   X5, X3
   501  	PADDQ   X7, X3
   502  	MOVOU   944(CX), X5
   503  	MOVOU   160(DX), X6
   504  	PXOR    X5, X6
   505  	PSHUFD  $0x31, X6, X7
   506  	PMULULQ X6, X7
   507  	PSHUFD  $0x4e, X5, X5
   508  	PADDQ   X5, X4
   509  	PADDQ   X7, X4
   510  	MOVOU   960(CX), X5
   511  	MOVOU   120(DX), X6
   512  	PXOR    X5, X6
   513  	PSHUFD  $0x31, X6, X7
   514  	PMULULQ X6, X7
   515  	PSHUFD  $0x4e, X5, X5
   516  	PADDQ   X5, X1
   517  	PADDQ   X7, X1
   518  	MOVOU   976(CX), X5
   519  	MOVOU   136(DX), X6
   520  	PXOR    X5, X6
   521  	PSHUFD  $0x31, X6, X7
   522  	PMULULQ X6, X7
   523  	PSHUFD  $0x4e, X5, X5
   524  	PADDQ   X5, X2
   525  	PADDQ   X7, X2
   526  	MOVOU   992(CX), X5
   527  	MOVOU   152(DX), X6
   528  	PXOR    X5, X6
   529  	PSHUFD  $0x31, X6, X7
   530  	PMULULQ X6, X7
   531  	PSHUFD  $0x4e, X5, X5
   532  	PADDQ   X5, X3
   533  	PADDQ   X7, X3
   534  	MOVOU   1008(CX), X5
   535  	MOVOU   168(DX), X6
   536  	PXOR    X5, X6
   537  	PSHUFD  $0x31, X6, X7
   538  	PMULULQ X6, X7
   539  	PSHUFD  $0x4e, X5, X5
   540  	PADDQ   X5, X4
   541  	PADDQ   X7, X4
   542  	ADDQ    $0x00000400, CX
   543  	SUBQ    $0x00000400, SI
   544  	MOVOU   X1, X5
   545  	PSRLQ   $0x2f, X1
   546  	PXOR    X5, X1
   547  	PXOR    128(DX), X1
   548  	PSHUFD  $0xf5, X1, X5
   549  	PMULULQ X0, X5
   550  	PSLLQ   $0x20, X5
   551  	PMULULQ X0, X1
   552  	PADDQ   X5, X1
   553  	MOVOU   X2, X5
   554  	PSRLQ   $0x2f, X2
   555  	PXOR    X5, X2
   556  	PXOR    144(DX), X2
   557  	PSHUFD  $0xf5, X2, X5
   558  	PMULULQ X0, X5
   559  	PSLLQ   $0x20, X5
   560  	PMULULQ X0, X2
   561  	PADDQ   X5, X2
   562  	MOVOU   X3, X5
   563  	PSRLQ   $0x2f, X3
   564  	PXOR    X5, X3
   565  	PXOR    160(DX), X3
   566  	PSHUFD  $0xf5, X3, X5
   567  	PMULULQ X0, X5
   568  	PSLLQ   $0x20, X5
   569  	PMULULQ X0, X3
   570  	PADDQ   X5, X3
   571  	MOVOU   X4, X5
   572  	PSRLQ   $0x2f, X4
   573  	PXOR    X5, X4
   574  	PXOR    176(DX), X4
   575  	PSHUFD  $0xf5, X4, X5
   576  	PMULULQ X0, X5
   577  	PSLLQ   $0x20, X5
   578  	PMULULQ X0, X4
   579  	PADDQ   X5, X4
   580  	JMP     accumBlock
   581  
   582  accumStripe:
   583  	CMPQ    SI, $0x40
   584  	JLE     accumLastStripe
   585  	MOVOU   (CX), X0
   586  	MOVOU   (BX), X5
   587  	PXOR    X0, X5
   588  	PSHUFD  $0x31, X5, X6
   589  	PMULULQ X5, X6
   590  	PSHUFD  $0x4e, X0, X0
   591  	PADDQ   X0, X1
   592  	PADDQ   X6, X1
   593  	MOVOU   16(CX), X0
   594  	MOVOU   16(BX), X5
   595  	PXOR    X0, X5
   596  	PSHUFD  $0x31, X5, X6
   597  	PMULULQ X5, X6
   598  	PSHUFD  $0x4e, X0, X0
   599  	PADDQ   X0, X2
   600  	PADDQ   X6, X2
   601  	MOVOU   32(CX), X0
   602  	MOVOU   32(BX), X5
   603  	PXOR    X0, X5
   604  	PSHUFD  $0x31, X5, X6
   605  	PMULULQ X5, X6
   606  	PSHUFD  $0x4e, X0, X0
   607  	PADDQ   X0, X3
   608  	PADDQ   X6, X3
   609  	MOVOU   48(CX), X0
   610  	MOVOU   48(BX), X5
   611  	PXOR    X0, X5
   612  	PSHUFD  $0x31, X5, X6
   613  	PMULULQ X5, X6
   614  	PSHUFD  $0x4e, X0, X0
   615  	PADDQ   X0, X4
   616  	PADDQ   X6, X4
   617  	ADDQ    $0x00000040, CX
   618  	SUBQ    $0x00000040, SI
   619  	ADDQ    $0x00000008, BX
   620  	JMP     accumStripe
   621  
   622  accumLastStripe:
   623  	CMPQ    SI, $0x00
   624  	JE      return
   625  	SUBQ    $0x40, CX
   626  	ADDQ    SI, CX
   627  	MOVOU   (CX), X0
   628  	MOVOU   121(DX), X5
   629  	PXOR    X0, X5
   630  	PSHUFD  $0x31, X5, X6
   631  	PMULULQ X5, X6
   632  	PSHUFD  $0x4e, X0, X0
   633  	PADDQ   X0, X1
   634  	PADDQ   X6, X1
   635  	MOVOU   16(CX), X0
   636  	MOVOU   137(DX), X5
   637  	PXOR    X0, X5
   638  	PSHUFD  $0x31, X5, X6
   639  	PMULULQ X5, X6
   640  	PSHUFD  $0x4e, X0, X0
   641  	PADDQ   X0, X2
   642  	PADDQ   X6, X2
   643  	MOVOU   32(CX), X0
   644  	MOVOU   153(DX), X5
   645  	PXOR    X0, X5
   646  	PSHUFD  $0x31, X5, X6
   647  	PMULULQ X5, X6
   648  	PSHUFD  $0x4e, X0, X0
   649  	PADDQ   X0, X3
   650  	PADDQ   X6, X3
   651  	MOVOU   48(CX), X0
   652  	MOVOU   169(DX), X5
   653  	PXOR    X0, X5
   654  	PSHUFD  $0x31, X5, X6
   655  	PMULULQ X5, X6
   656  	PSHUFD  $0x4e, X0, X0
   657  	PADDQ   X0, X4
   658  	PADDQ   X6, X4
   659  
   660  return:
   661  	MOVOU X1, (AX)
   662  	MOVOU X2, 16(AX)
   663  	MOVOU X3, 32(AX)
   664  	MOVOU X4, 48(AX)
   665  	RET