github.com/cloudflare/circl@v1.5.0/simd/keccakf1600/f1600x4_amd64.s (about) 1 // Code generated by command: go run src.go -out ../../f1600x4_amd64.s -stubs ../../f1600x4stubs_amd64.go -pkg keccakf1600. DO NOT EDIT. 2 3 //go:build amd64 && !purego 4 5 #include "textflag.h" 6 7 // func f1600x4AVX2(state *uint64, rc *[24]uint64, turbo bool) 8 // Requires: AVX, AVX2 9 TEXT ·f1600x4AVX2(SB), NOSPLIT, $0-17 10 MOVQ state+0(FP), AX 11 MOVQ rc+8(FP), CX 12 MOVQ $0x0000000000000006, DX 13 MOVBQZX turbo+16(FP), BX 14 TESTQ BX, BX 15 JZ loop 16 MOVQ $0x0000000000000003, DX 17 ADDQ $0x60, CX 18 19 loop: 20 VMOVDQA (AX), Y0 21 VMOVDQA 32(AX), Y1 22 VMOVDQA 64(AX), Y2 23 VMOVDQA 96(AX), Y3 24 VMOVDQA 128(AX), Y4 25 VPXOR 160(AX), Y0, Y0 26 VPXOR 192(AX), Y1, Y1 27 VPXOR 224(AX), Y2, Y2 28 VPXOR 256(AX), Y3, Y3 29 VPXOR 288(AX), Y4, Y4 30 VPXOR 320(AX), Y0, Y0 31 VPXOR 352(AX), Y1, Y1 32 VPXOR 384(AX), Y2, Y2 33 VPXOR 416(AX), Y3, Y3 34 VPXOR 448(AX), Y4, Y4 35 VPXOR 480(AX), Y0, Y0 36 VPXOR 512(AX), Y1, Y1 37 VPXOR 544(AX), Y2, Y2 38 VPXOR 576(AX), Y3, Y3 39 VPXOR 608(AX), Y4, Y4 40 VPXOR 640(AX), Y0, Y0 41 VPXOR 672(AX), Y1, Y1 42 VPXOR 704(AX), Y2, Y2 43 VPXOR 736(AX), Y3, Y3 44 VPXOR 768(AX), Y4, Y4 45 VPSLLQ $0x01, Y1, Y5 46 VPSLLQ $0x01, Y2, Y6 47 VPSLLQ $0x01, Y3, Y7 48 VPSLLQ $0x01, Y4, Y8 49 VPSLLQ $0x01, Y0, Y9 50 VPSRLQ $0x3f, Y1, Y10 51 VPSRLQ $0x3f, Y2, Y11 52 VPSRLQ $0x3f, Y3, Y12 53 VPSRLQ $0x3f, Y4, Y13 54 VPSRLQ $0x3f, Y0, Y14 55 VPOR Y5, Y10, Y10 56 VPOR Y6, Y11, Y11 57 VPOR Y7, Y12, Y12 58 VPOR Y8, Y13, Y13 59 VPOR Y9, Y14, Y14 60 VPXOR Y10, Y4, Y10 61 VPXOR Y11, Y0, Y11 62 VPXOR Y12, Y1, Y12 63 VPXOR Y13, Y2, Y13 64 VPXOR Y14, Y3, Y14 65 VPXOR (AX), Y10, Y0 66 VPXOR 192(AX), Y11, Y1 67 VPXOR 384(AX), Y12, Y2 68 VPXOR 576(AX), Y13, Y3 69 VPXOR 768(AX), Y14, Y4 70 VPSLLQ $0x2c, Y1, Y6 71 VPSLLQ $0x2b, Y2, Y7 72 VPSLLQ $0x15, Y3, Y8 73 VPSLLQ $0x0e, Y4, Y9 74 VPSRLQ $0x14, Y1, Y1 75 VPSRLQ $0x15, Y2, Y2 76 VPSRLQ $0x2b, Y3, Y3 77 VPSRLQ $0x32, Y4, Y4 78 VPOR Y6, Y1, Y1 79 VPOR Y7, Y2, Y2 80 VPOR Y8, Y3, Y3 81 VPOR Y9, Y4, Y4 82 VPANDN Y2, Y1, Y5 83 VPANDN Y3, Y2, Y6 84 VPANDN Y4, Y3, Y7 85 VPANDN Y0, Y4, Y8 86 VPANDN Y1, Y0, Y9 87 VPXOR Y0, Y5, Y5 88 VPXOR Y1, Y6, Y6 89 VPXOR Y2, Y7, Y7 90 VPXOR Y3, Y8, Y8 91 VPXOR Y4, Y9, Y9 92 VPBROADCASTQ (CX), Y0 93 VPXOR Y0, Y5, Y5 94 VMOVDQA Y5, (AX) 95 VMOVDQA Y6, 192(AX) 96 VMOVDQA Y7, 384(AX) 97 VMOVDQA Y8, 576(AX) 98 VMOVDQA Y9, 768(AX) 99 VPXOR 96(AX), Y13, Y0 100 VPXOR 288(AX), Y14, Y1 101 VPXOR 320(AX), Y10, Y2 102 VPXOR 512(AX), Y11, Y3 103 VPXOR 704(AX), Y12, Y4 104 VPSLLQ $0x1c, Y0, Y5 105 VPSLLQ $0x14, Y1, Y6 106 VPSLLQ $0x03, Y2, Y7 107 VPSLLQ $0x2d, Y3, Y8 108 VPSLLQ $0x3d, Y4, Y9 109 VPSRLQ $0x24, Y0, Y0 110 VPSRLQ $0x2c, Y1, Y1 111 VPSRLQ $0x3d, Y2, Y2 112 VPSRLQ $0x13, Y3, Y3 113 VPSRLQ $0x03, Y4, Y4 114 VPOR Y5, Y0, Y0 115 VPOR Y6, Y1, Y1 116 VPOR Y7, Y2, Y2 117 VPOR Y8, Y3, Y3 118 VPOR Y9, Y4, Y4 119 VPANDN Y2, Y1, Y5 120 VPANDN Y3, Y2, Y6 121 VPANDN Y4, Y3, Y7 122 VPANDN Y0, Y4, Y8 123 VPANDN Y1, Y0, Y9 124 VPXOR Y0, Y5, Y5 125 VPXOR Y1, Y6, Y6 126 VPXOR Y2, Y7, Y7 127 VPXOR Y3, Y8, Y8 128 VPXOR Y4, Y9, Y9 129 VMOVDQA Y5, 320(AX) 130 VMOVDQA Y6, 512(AX) 131 VMOVDQA Y7, 704(AX) 132 VMOVDQA Y8, 96(AX) 133 VMOVDQA Y9, 288(AX) 134 VPXOR 32(AX), Y11, Y0 135 VPXOR 224(AX), Y12, Y1 136 VPXOR 416(AX), Y13, Y2 137 VPXOR 608(AX), Y14, Y3 138 VPXOR 640(AX), Y10, Y4 139 VPSLLQ $0x01, Y0, Y5 140 VPSLLQ $0x06, Y1, Y6 141 VPSLLQ $0x19, Y2, Y7 142 VPSLLQ $0x08, Y3, Y8 143 VPSLLQ $0x12, Y4, Y9 144 VPSRLQ $0x3f, Y0, Y0 145 VPSRLQ $0x3a, Y1, Y1 146 VPSRLQ $0x27, Y2, Y2 147 VPSRLQ $0x38, Y3, Y3 148 VPSRLQ $0x2e, Y4, Y4 149 VPOR Y5, Y0, Y0 150 VPOR Y6, Y1, Y1 151 VPOR Y7, Y2, Y2 152 VPOR Y8, Y3, Y3 153 VPOR Y9, Y4, Y4 154 VPANDN Y2, Y1, Y5 155 VPANDN Y3, Y2, Y6 156 VPANDN Y4, Y3, Y7 157 VPANDN Y0, Y4, Y8 158 VPANDN Y1, Y0, Y9 159 VPXOR Y0, Y5, Y5 160 VPXOR Y1, Y6, Y6 161 VPXOR Y2, Y7, Y7 162 VPXOR Y3, Y8, Y8 163 VPXOR Y4, Y9, Y9 164 VMOVDQA Y5, 640(AX) 165 VMOVDQA Y6, 32(AX) 166 VMOVDQA Y7, 224(AX) 167 VMOVDQA Y8, 416(AX) 168 VMOVDQA Y9, 608(AX) 169 VPXOR 128(AX), Y14, Y0 170 VPXOR 160(AX), Y10, Y1 171 VPXOR 352(AX), Y11, Y2 172 VPXOR 544(AX), Y12, Y3 173 VPXOR 736(AX), Y13, Y4 174 VPSLLQ $0x1b, Y0, Y5 175 VPSLLQ $0x24, Y1, Y6 176 VPSLLQ $0x0a, Y2, Y7 177 VPSLLQ $0x0f, Y3, Y8 178 VPSLLQ $0x38, Y4, Y9 179 VPSRLQ $0x25, Y0, Y0 180 VPSRLQ $0x1c, Y1, Y1 181 VPSRLQ $0x36, Y2, Y2 182 VPSRLQ $0x31, Y3, Y3 183 VPSRLQ $0x08, Y4, Y4 184 VPOR Y5, Y0, Y0 185 VPOR Y6, Y1, Y1 186 VPOR Y7, Y2, Y2 187 VPOR Y8, Y3, Y3 188 VPOR Y9, Y4, Y4 189 VPANDN Y2, Y1, Y5 190 VPANDN Y3, Y2, Y6 191 VPANDN Y4, Y3, Y7 192 VPANDN Y0, Y4, Y8 193 VPANDN Y1, Y0, Y9 194 VPXOR Y0, Y5, Y5 195 VPXOR Y1, Y6, Y6 196 VPXOR Y2, Y7, Y7 197 VPXOR Y3, Y8, Y8 198 VPXOR Y4, Y9, Y9 199 VMOVDQA Y5, 160(AX) 200 VMOVDQA Y6, 352(AX) 201 VMOVDQA Y7, 544(AX) 202 VMOVDQA Y8, 736(AX) 203 VMOVDQA Y9, 128(AX) 204 VPXOR 64(AX), Y12, Y0 205 VPXOR 256(AX), Y13, Y1 206 VPXOR 448(AX), Y14, Y2 207 VPXOR 480(AX), Y10, Y3 208 VPXOR 672(AX), Y11, Y4 209 VPSLLQ $0x3e, Y0, Y5 210 VPSLLQ $0x37, Y1, Y6 211 VPSLLQ $0x27, Y2, Y7 212 VPSLLQ $0x29, Y3, Y8 213 VPSLLQ $0x02, Y4, Y9 214 VPSRLQ $0x02, Y0, Y0 215 VPSRLQ $0x09, Y1, Y1 216 VPSRLQ $0x19, Y2, Y2 217 VPSRLQ $0x17, Y3, Y3 218 VPSRLQ $0x3e, Y4, Y4 219 VPOR Y5, Y0, Y0 220 VPOR Y6, Y1, Y1 221 VPOR Y7, Y2, Y2 222 VPOR Y8, Y3, Y3 223 VPOR Y9, Y4, Y4 224 VPANDN Y2, Y1, Y5 225 VPANDN Y3, Y2, Y6 226 VPANDN Y4, Y3, Y7 227 VPANDN Y0, Y4, Y8 228 VPANDN Y1, Y0, Y9 229 VPXOR Y0, Y5, Y5 230 VPXOR Y1, Y6, Y6 231 VPXOR Y2, Y7, Y7 232 VPXOR Y3, Y8, Y8 233 VPXOR Y4, Y9, Y9 234 VMOVDQA Y5, 480(AX) 235 VMOVDQA Y6, 672(AX) 236 VMOVDQA Y7, 64(AX) 237 VMOVDQA Y8, 256(AX) 238 VMOVDQA Y9, 448(AX) 239 VMOVDQA (AX), Y0 240 VMOVDQA 32(AX), Y1 241 VMOVDQA 64(AX), Y2 242 VMOVDQA 96(AX), Y3 243 VMOVDQA 128(AX), Y4 244 VPXOR 160(AX), Y0, Y0 245 VPXOR 192(AX), Y1, Y1 246 VPXOR 224(AX), Y2, Y2 247 VPXOR 256(AX), Y3, Y3 248 VPXOR 288(AX), Y4, Y4 249 VPXOR 320(AX), Y0, Y0 250 VPXOR 352(AX), Y1, Y1 251 VPXOR 384(AX), Y2, Y2 252 VPXOR 416(AX), Y3, Y3 253 VPXOR 448(AX), Y4, Y4 254 VPXOR 480(AX), Y0, Y0 255 VPXOR 512(AX), Y1, Y1 256 VPXOR 544(AX), Y2, Y2 257 VPXOR 576(AX), Y3, Y3 258 VPXOR 608(AX), Y4, Y4 259 VPXOR 640(AX), Y0, Y0 260 VPXOR 672(AX), Y1, Y1 261 VPXOR 704(AX), Y2, Y2 262 VPXOR 736(AX), Y3, Y3 263 VPXOR 768(AX), Y4, Y4 264 VPSLLQ $0x01, Y1, Y5 265 VPSLLQ $0x01, Y2, Y6 266 VPSLLQ $0x01, Y3, Y7 267 VPSLLQ $0x01, Y4, Y8 268 VPSLLQ $0x01, Y0, Y9 269 VPSRLQ $0x3f, Y1, Y10 270 VPSRLQ $0x3f, Y2, Y11 271 VPSRLQ $0x3f, Y3, Y12 272 VPSRLQ $0x3f, Y4, Y13 273 VPSRLQ $0x3f, Y0, Y14 274 VPOR Y5, Y10, Y10 275 VPOR Y6, Y11, Y11 276 VPOR Y7, Y12, Y12 277 VPOR Y8, Y13, Y13 278 VPOR Y9, Y14, Y14 279 VPXOR Y10, Y4, Y10 280 VPXOR Y11, Y0, Y11 281 VPXOR Y12, Y1, Y12 282 VPXOR Y13, Y2, Y13 283 VPXOR Y14, Y3, Y14 284 VPXOR (AX), Y10, Y0 285 VPXOR 512(AX), Y11, Y1 286 VPXOR 224(AX), Y12, Y2 287 VPXOR 736(AX), Y13, Y3 288 VPXOR 448(AX), Y14, Y4 289 VPSLLQ $0x2c, Y1, Y6 290 VPSLLQ $0x2b, Y2, Y7 291 VPSLLQ $0x15, Y3, Y8 292 VPSLLQ $0x0e, Y4, Y9 293 VPSRLQ $0x14, Y1, Y1 294 VPSRLQ $0x15, Y2, Y2 295 VPSRLQ $0x2b, Y3, Y3 296 VPSRLQ $0x32, Y4, Y4 297 VPOR Y6, Y1, Y1 298 VPOR Y7, Y2, Y2 299 VPOR Y8, Y3, Y3 300 VPOR Y9, Y4, Y4 301 VPANDN Y2, Y1, Y5 302 VPANDN Y3, Y2, Y6 303 VPANDN Y4, Y3, Y7 304 VPANDN Y0, Y4, Y8 305 VPANDN Y1, Y0, Y9 306 VPXOR Y0, Y5, Y5 307 VPXOR Y1, Y6, Y6 308 VPXOR Y2, Y7, Y7 309 VPXOR Y3, Y8, Y8 310 VPXOR Y4, Y9, Y9 311 VPBROADCASTQ 8(CX), Y0 312 VPXOR Y0, Y5, Y5 313 VMOVDQA Y5, (AX) 314 VMOVDQA Y6, 512(AX) 315 VMOVDQA Y7, 224(AX) 316 VMOVDQA Y8, 736(AX) 317 VMOVDQA Y9, 448(AX) 318 VPXOR 576(AX), Y13, Y0 319 VPXOR 288(AX), Y14, Y1 320 VPXOR 640(AX), Y10, Y2 321 VPXOR 352(AX), Y11, Y3 322 VPXOR 64(AX), Y12, Y4 323 VPSLLQ $0x1c, Y0, Y5 324 VPSLLQ $0x14, Y1, Y6 325 VPSLLQ $0x03, Y2, Y7 326 VPSLLQ $0x2d, Y3, Y8 327 VPSLLQ $0x3d, Y4, Y9 328 VPSRLQ $0x24, Y0, Y0 329 VPSRLQ $0x2c, Y1, Y1 330 VPSRLQ $0x3d, Y2, Y2 331 VPSRLQ $0x13, Y3, Y3 332 VPSRLQ $0x03, Y4, Y4 333 VPOR Y5, Y0, Y0 334 VPOR Y6, Y1, Y1 335 VPOR Y7, Y2, Y2 336 VPOR Y8, Y3, Y3 337 VPOR Y9, Y4, Y4 338 VPANDN Y2, Y1, Y5 339 VPANDN Y3, Y2, Y6 340 VPANDN Y4, Y3, Y7 341 VPANDN Y0, Y4, Y8 342 VPANDN Y1, Y0, Y9 343 VPXOR Y0, Y5, Y5 344 VPXOR Y1, Y6, Y6 345 VPXOR Y2, Y7, Y7 346 VPXOR Y3, Y8, Y8 347 VPXOR Y4, Y9, Y9 348 VMOVDQA Y5, 640(AX) 349 VMOVDQA Y6, 352(AX) 350 VMOVDQA Y7, 64(AX) 351 VMOVDQA Y8, 576(AX) 352 VMOVDQA Y9, 288(AX) 353 VPXOR 192(AX), Y11, Y0 354 VPXOR 704(AX), Y12, Y1 355 VPXOR 416(AX), Y13, Y2 356 VPXOR 128(AX), Y14, Y3 357 VPXOR 480(AX), Y10, Y4 358 VPSLLQ $0x01, Y0, Y5 359 VPSLLQ $0x06, Y1, Y6 360 VPSLLQ $0x19, Y2, Y7 361 VPSLLQ $0x08, Y3, Y8 362 VPSLLQ $0x12, Y4, Y9 363 VPSRLQ $0x3f, Y0, Y0 364 VPSRLQ $0x3a, Y1, Y1 365 VPSRLQ $0x27, Y2, Y2 366 VPSRLQ $0x38, Y3, Y3 367 VPSRLQ $0x2e, Y4, Y4 368 VPOR Y5, Y0, Y0 369 VPOR Y6, Y1, Y1 370 VPOR Y7, Y2, Y2 371 VPOR Y8, Y3, Y3 372 VPOR Y9, Y4, Y4 373 VPANDN Y2, Y1, Y5 374 VPANDN Y3, Y2, Y6 375 VPANDN Y4, Y3, Y7 376 VPANDN Y0, Y4, Y8 377 VPANDN Y1, Y0, Y9 378 VPXOR Y0, Y5, Y5 379 VPXOR Y1, Y6, Y6 380 VPXOR Y2, Y7, Y7 381 VPXOR Y3, Y8, Y8 382 VPXOR Y4, Y9, Y9 383 VMOVDQA Y5, 480(AX) 384 VMOVDQA Y6, 192(AX) 385 VMOVDQA Y7, 704(AX) 386 VMOVDQA Y8, 416(AX) 387 VMOVDQA Y9, 128(AX) 388 VPXOR 768(AX), Y14, Y0 389 VPXOR 320(AX), Y10, Y1 390 VPXOR 32(AX), Y11, Y2 391 VPXOR 544(AX), Y12, Y3 392 VPXOR 256(AX), Y13, Y4 393 VPSLLQ $0x1b, Y0, Y5 394 VPSLLQ $0x24, Y1, Y6 395 VPSLLQ $0x0a, Y2, Y7 396 VPSLLQ $0x0f, Y3, Y8 397 VPSLLQ $0x38, Y4, Y9 398 VPSRLQ $0x25, Y0, Y0 399 VPSRLQ $0x1c, Y1, Y1 400 VPSRLQ $0x36, Y2, Y2 401 VPSRLQ $0x31, Y3, Y3 402 VPSRLQ $0x08, Y4, Y4 403 VPOR Y5, Y0, Y0 404 VPOR Y6, Y1, Y1 405 VPOR Y7, Y2, Y2 406 VPOR Y8, Y3, Y3 407 VPOR Y9, Y4, Y4 408 VPANDN Y2, Y1, Y5 409 VPANDN Y3, Y2, Y6 410 VPANDN Y4, Y3, Y7 411 VPANDN Y0, Y4, Y8 412 VPANDN Y1, Y0, Y9 413 VPXOR Y0, Y5, Y5 414 VPXOR Y1, Y6, Y6 415 VPXOR Y2, Y7, Y7 416 VPXOR Y3, Y8, Y8 417 VPXOR Y4, Y9, Y9 418 VMOVDQA Y5, 320(AX) 419 VMOVDQA Y6, 32(AX) 420 VMOVDQA Y7, 544(AX) 421 VMOVDQA Y8, 256(AX) 422 VMOVDQA Y9, 768(AX) 423 VPXOR 384(AX), Y12, Y0 424 VPXOR 96(AX), Y13, Y1 425 VPXOR 608(AX), Y14, Y2 426 VPXOR 160(AX), Y10, Y3 427 VPXOR 672(AX), Y11, Y4 428 VPSLLQ $0x3e, Y0, Y5 429 VPSLLQ $0x37, Y1, Y6 430 VPSLLQ $0x27, Y2, Y7 431 VPSLLQ $0x29, Y3, Y8 432 VPSLLQ $0x02, Y4, Y9 433 VPSRLQ $0x02, Y0, Y0 434 VPSRLQ $0x09, Y1, Y1 435 VPSRLQ $0x19, Y2, Y2 436 VPSRLQ $0x17, Y3, Y3 437 VPSRLQ $0x3e, Y4, Y4 438 VPOR Y5, Y0, Y0 439 VPOR Y6, Y1, Y1 440 VPOR Y7, Y2, Y2 441 VPOR Y8, Y3, Y3 442 VPOR Y9, Y4, Y4 443 VPANDN Y2, Y1, Y5 444 VPANDN Y3, Y2, Y6 445 VPANDN Y4, Y3, Y7 446 VPANDN Y0, Y4, Y8 447 VPANDN Y1, Y0, Y9 448 VPXOR Y0, Y5, Y5 449 VPXOR Y1, Y6, Y6 450 VPXOR Y2, Y7, Y7 451 VPXOR Y3, Y8, Y8 452 VPXOR Y4, Y9, Y9 453 VMOVDQA Y5, 160(AX) 454 VMOVDQA Y6, 672(AX) 455 VMOVDQA Y7, 384(AX) 456 VMOVDQA Y8, 96(AX) 457 VMOVDQA Y9, 608(AX) 458 VMOVDQA (AX), Y0 459 VMOVDQA 32(AX), Y1 460 VMOVDQA 64(AX), Y2 461 VMOVDQA 96(AX), Y3 462 VMOVDQA 128(AX), Y4 463 VPXOR 160(AX), Y0, Y0 464 VPXOR 192(AX), Y1, Y1 465 VPXOR 224(AX), Y2, Y2 466 VPXOR 256(AX), Y3, Y3 467 VPXOR 288(AX), Y4, Y4 468 VPXOR 320(AX), Y0, Y0 469 VPXOR 352(AX), Y1, Y1 470 VPXOR 384(AX), Y2, Y2 471 VPXOR 416(AX), Y3, Y3 472 VPXOR 448(AX), Y4, Y4 473 VPXOR 480(AX), Y0, Y0 474 VPXOR 512(AX), Y1, Y1 475 VPXOR 544(AX), Y2, Y2 476 VPXOR 576(AX), Y3, Y3 477 VPXOR 608(AX), Y4, Y4 478 VPXOR 640(AX), Y0, Y0 479 VPXOR 672(AX), Y1, Y1 480 VPXOR 704(AX), Y2, Y2 481 VPXOR 736(AX), Y3, Y3 482 VPXOR 768(AX), Y4, Y4 483 VPSLLQ $0x01, Y1, Y5 484 VPSLLQ $0x01, Y2, Y6 485 VPSLLQ $0x01, Y3, Y7 486 VPSLLQ $0x01, Y4, Y8 487 VPSLLQ $0x01, Y0, Y9 488 VPSRLQ $0x3f, Y1, Y10 489 VPSRLQ $0x3f, Y2, Y11 490 VPSRLQ $0x3f, Y3, Y12 491 VPSRLQ $0x3f, Y4, Y13 492 VPSRLQ $0x3f, Y0, Y14 493 VPOR Y5, Y10, Y10 494 VPOR Y6, Y11, Y11 495 VPOR Y7, Y12, Y12 496 VPOR Y8, Y13, Y13 497 VPOR Y9, Y14, Y14 498 VPXOR Y10, Y4, Y10 499 VPXOR Y11, Y0, Y11 500 VPXOR Y12, Y1, Y12 501 VPXOR Y13, Y2, Y13 502 VPXOR Y14, Y3, Y14 503 VPXOR (AX), Y10, Y0 504 VPXOR 352(AX), Y11, Y1 505 VPXOR 704(AX), Y12, Y2 506 VPXOR 256(AX), Y13, Y3 507 VPXOR 608(AX), Y14, Y4 508 VPSLLQ $0x2c, Y1, Y6 509 VPSLLQ $0x2b, Y2, Y7 510 VPSLLQ $0x15, Y3, Y8 511 VPSLLQ $0x0e, Y4, Y9 512 VPSRLQ $0x14, Y1, Y1 513 VPSRLQ $0x15, Y2, Y2 514 VPSRLQ $0x2b, Y3, Y3 515 VPSRLQ $0x32, Y4, Y4 516 VPOR Y6, Y1, Y1 517 VPOR Y7, Y2, Y2 518 VPOR Y8, Y3, Y3 519 VPOR Y9, Y4, Y4 520 VPANDN Y2, Y1, Y5 521 VPANDN Y3, Y2, Y6 522 VPANDN Y4, Y3, Y7 523 VPANDN Y0, Y4, Y8 524 VPANDN Y1, Y0, Y9 525 VPXOR Y0, Y5, Y5 526 VPXOR Y1, Y6, Y6 527 VPXOR Y2, Y7, Y7 528 VPXOR Y3, Y8, Y8 529 VPXOR Y4, Y9, Y9 530 VPBROADCASTQ 16(CX), Y0 531 VPXOR Y0, Y5, Y5 532 VMOVDQA Y5, (AX) 533 VMOVDQA Y6, 352(AX) 534 VMOVDQA Y7, 704(AX) 535 VMOVDQA Y8, 256(AX) 536 VMOVDQA Y9, 608(AX) 537 VPXOR 736(AX), Y13, Y0 538 VPXOR 288(AX), Y14, Y1 539 VPXOR 480(AX), Y10, Y2 540 VPXOR 32(AX), Y11, Y3 541 VPXOR 384(AX), Y12, Y4 542 VPSLLQ $0x1c, Y0, Y5 543 VPSLLQ $0x14, Y1, Y6 544 VPSLLQ $0x03, Y2, Y7 545 VPSLLQ $0x2d, Y3, Y8 546 VPSLLQ $0x3d, Y4, Y9 547 VPSRLQ $0x24, Y0, Y0 548 VPSRLQ $0x2c, Y1, Y1 549 VPSRLQ $0x3d, Y2, Y2 550 VPSRLQ $0x13, Y3, Y3 551 VPSRLQ $0x03, Y4, Y4 552 VPOR Y5, Y0, Y0 553 VPOR Y6, Y1, Y1 554 VPOR Y7, Y2, Y2 555 VPOR Y8, Y3, Y3 556 VPOR Y9, Y4, Y4 557 VPANDN Y2, Y1, Y5 558 VPANDN Y3, Y2, Y6 559 VPANDN Y4, Y3, Y7 560 VPANDN Y0, Y4, Y8 561 VPANDN Y1, Y0, Y9 562 VPXOR Y0, Y5, Y5 563 VPXOR Y1, Y6, Y6 564 VPXOR Y2, Y7, Y7 565 VPXOR Y3, Y8, Y8 566 VPXOR Y4, Y9, Y9 567 VMOVDQA Y5, 480(AX) 568 VMOVDQA Y6, 32(AX) 569 VMOVDQA Y7, 384(AX) 570 VMOVDQA Y8, 736(AX) 571 VMOVDQA Y9, 288(AX) 572 VPXOR 512(AX), Y11, Y0 573 VPXOR 64(AX), Y12, Y1 574 VPXOR 416(AX), Y13, Y2 575 VPXOR 768(AX), Y14, Y3 576 VPXOR 160(AX), Y10, Y4 577 VPSLLQ $0x01, Y0, Y5 578 VPSLLQ $0x06, Y1, Y6 579 VPSLLQ $0x19, Y2, Y7 580 VPSLLQ $0x08, Y3, Y8 581 VPSLLQ $0x12, Y4, Y9 582 VPSRLQ $0x3f, Y0, Y0 583 VPSRLQ $0x3a, Y1, Y1 584 VPSRLQ $0x27, Y2, Y2 585 VPSRLQ $0x38, Y3, Y3 586 VPSRLQ $0x2e, Y4, Y4 587 VPOR Y5, Y0, Y0 588 VPOR Y6, Y1, Y1 589 VPOR Y7, Y2, Y2 590 VPOR Y8, Y3, Y3 591 VPOR Y9, Y4, Y4 592 VPANDN Y2, Y1, Y5 593 VPANDN Y3, Y2, Y6 594 VPANDN Y4, Y3, Y7 595 VPANDN Y0, Y4, Y8 596 VPANDN Y1, Y0, Y9 597 VPXOR Y0, Y5, Y5 598 VPXOR Y1, Y6, Y6 599 VPXOR Y2, Y7, Y7 600 VPXOR Y3, Y8, Y8 601 VPXOR Y4, Y9, Y9 602 VMOVDQA Y5, 160(AX) 603 VMOVDQA Y6, 512(AX) 604 VMOVDQA Y7, 64(AX) 605 VMOVDQA Y8, 416(AX) 606 VMOVDQA Y9, 768(AX) 607 VPXOR 448(AX), Y14, Y0 608 VPXOR 640(AX), Y10, Y1 609 VPXOR 192(AX), Y11, Y2 610 VPXOR 544(AX), Y12, Y3 611 VPXOR 96(AX), Y13, Y4 612 VPSLLQ $0x1b, Y0, Y5 613 VPSLLQ $0x24, Y1, Y6 614 VPSLLQ $0x0a, Y2, Y7 615 VPSLLQ $0x0f, Y3, Y8 616 VPSLLQ $0x38, Y4, Y9 617 VPSRLQ $0x25, Y0, Y0 618 VPSRLQ $0x1c, Y1, Y1 619 VPSRLQ $0x36, Y2, Y2 620 VPSRLQ $0x31, Y3, Y3 621 VPSRLQ $0x08, Y4, Y4 622 VPOR Y5, Y0, Y0 623 VPOR Y6, Y1, Y1 624 VPOR Y7, Y2, Y2 625 VPOR Y8, Y3, Y3 626 VPOR Y9, Y4, Y4 627 VPANDN Y2, Y1, Y5 628 VPANDN Y3, Y2, Y6 629 VPANDN Y4, Y3, Y7 630 VPANDN Y0, Y4, Y8 631 VPANDN Y1, Y0, Y9 632 VPXOR Y0, Y5, Y5 633 VPXOR Y1, Y6, Y6 634 VPXOR Y2, Y7, Y7 635 VPXOR Y3, Y8, Y8 636 VPXOR Y4, Y9, Y9 637 VMOVDQA Y5, 640(AX) 638 VMOVDQA Y6, 192(AX) 639 VMOVDQA Y7, 544(AX) 640 VMOVDQA Y8, 96(AX) 641 VMOVDQA Y9, 448(AX) 642 VPXOR 224(AX), Y12, Y0 643 VPXOR 576(AX), Y13, Y1 644 VPXOR 128(AX), Y14, Y2 645 VPXOR 320(AX), Y10, Y3 646 VPXOR 672(AX), Y11, Y4 647 VPSLLQ $0x3e, Y0, Y5 648 VPSLLQ $0x37, Y1, Y6 649 VPSLLQ $0x27, Y2, Y7 650 VPSLLQ $0x29, Y3, Y8 651 VPSLLQ $0x02, Y4, Y9 652 VPSRLQ $0x02, Y0, Y0 653 VPSRLQ $0x09, Y1, Y1 654 VPSRLQ $0x19, Y2, Y2 655 VPSRLQ $0x17, Y3, Y3 656 VPSRLQ $0x3e, Y4, Y4 657 VPOR Y5, Y0, Y0 658 VPOR Y6, Y1, Y1 659 VPOR Y7, Y2, Y2 660 VPOR Y8, Y3, Y3 661 VPOR Y9, Y4, Y4 662 VPANDN Y2, Y1, Y5 663 VPANDN Y3, Y2, Y6 664 VPANDN Y4, Y3, Y7 665 VPANDN Y0, Y4, Y8 666 VPANDN Y1, Y0, Y9 667 VPXOR Y0, Y5, Y5 668 VPXOR Y1, Y6, Y6 669 VPXOR Y2, Y7, Y7 670 VPXOR Y3, Y8, Y8 671 VPXOR Y4, Y9, Y9 672 VMOVDQA Y5, 320(AX) 673 VMOVDQA Y6, 672(AX) 674 VMOVDQA Y7, 224(AX) 675 VMOVDQA Y8, 576(AX) 676 VMOVDQA Y9, 128(AX) 677 VMOVDQA (AX), Y0 678 VMOVDQA 32(AX), Y1 679 VMOVDQA 64(AX), Y2 680 VMOVDQA 96(AX), Y3 681 VMOVDQA 128(AX), Y4 682 VPXOR 160(AX), Y0, Y0 683 VPXOR 192(AX), Y1, Y1 684 VPXOR 224(AX), Y2, Y2 685 VPXOR 256(AX), Y3, Y3 686 VPXOR 288(AX), Y4, Y4 687 VPXOR 320(AX), Y0, Y0 688 VPXOR 352(AX), Y1, Y1 689 VPXOR 384(AX), Y2, Y2 690 VPXOR 416(AX), Y3, Y3 691 VPXOR 448(AX), Y4, Y4 692 VPXOR 480(AX), Y0, Y0 693 VPXOR 512(AX), Y1, Y1 694 VPXOR 544(AX), Y2, Y2 695 VPXOR 576(AX), Y3, Y3 696 VPXOR 608(AX), Y4, Y4 697 VPXOR 640(AX), Y0, Y0 698 VPXOR 672(AX), Y1, Y1 699 VPXOR 704(AX), Y2, Y2 700 VPXOR 736(AX), Y3, Y3 701 VPXOR 768(AX), Y4, Y4 702 VPSLLQ $0x01, Y1, Y5 703 VPSLLQ $0x01, Y2, Y6 704 VPSLLQ $0x01, Y3, Y7 705 VPSLLQ $0x01, Y4, Y8 706 VPSLLQ $0x01, Y0, Y9 707 VPSRLQ $0x3f, Y1, Y10 708 VPSRLQ $0x3f, Y2, Y11 709 VPSRLQ $0x3f, Y3, Y12 710 VPSRLQ $0x3f, Y4, Y13 711 VPSRLQ $0x3f, Y0, Y14 712 VPOR Y5, Y10, Y10 713 VPOR Y6, Y11, Y11 714 VPOR Y7, Y12, Y12 715 VPOR Y8, Y13, Y13 716 VPOR Y9, Y14, Y14 717 VPXOR Y10, Y4, Y10 718 VPXOR Y11, Y0, Y11 719 VPXOR Y12, Y1, Y12 720 VPXOR Y13, Y2, Y13 721 VPXOR Y14, Y3, Y14 722 VPXOR (AX), Y10, Y0 723 VPXOR 32(AX), Y11, Y1 724 VPXOR 64(AX), Y12, Y2 725 VPXOR 96(AX), Y13, Y3 726 VPXOR 128(AX), Y14, Y4 727 VPSLLQ $0x2c, Y1, Y6 728 VPSLLQ $0x2b, Y2, Y7 729 VPSLLQ $0x15, Y3, Y8 730 VPSLLQ $0x0e, Y4, Y9 731 VPSRLQ $0x14, Y1, Y1 732 VPSRLQ $0x15, Y2, Y2 733 VPSRLQ $0x2b, Y3, Y3 734 VPSRLQ $0x32, Y4, Y4 735 VPOR Y6, Y1, Y1 736 VPOR Y7, Y2, Y2 737 VPOR Y8, Y3, Y3 738 VPOR Y9, Y4, Y4 739 VPANDN Y2, Y1, Y5 740 VPANDN Y3, Y2, Y6 741 VPANDN Y4, Y3, Y7 742 VPANDN Y0, Y4, Y8 743 VPANDN Y1, Y0, Y9 744 VPXOR Y0, Y5, Y5 745 VPXOR Y1, Y6, Y6 746 VPXOR Y2, Y7, Y7 747 VPXOR Y3, Y8, Y8 748 VPXOR Y4, Y9, Y9 749 VPBROADCASTQ 24(CX), Y0 750 VPXOR Y0, Y5, Y5 751 VMOVDQA Y5, (AX) 752 VMOVDQA Y6, 32(AX) 753 VMOVDQA Y7, 64(AX) 754 VMOVDQA Y8, 96(AX) 755 VMOVDQA Y9, 128(AX) 756 VPXOR 256(AX), Y13, Y0 757 VPXOR 288(AX), Y14, Y1 758 VPXOR 160(AX), Y10, Y2 759 VPXOR 192(AX), Y11, Y3 760 VPXOR 224(AX), Y12, Y4 761 VPSLLQ $0x1c, Y0, Y5 762 VPSLLQ $0x14, Y1, Y6 763 VPSLLQ $0x03, Y2, Y7 764 VPSLLQ $0x2d, Y3, Y8 765 VPSLLQ $0x3d, Y4, Y9 766 VPSRLQ $0x24, Y0, Y0 767 VPSRLQ $0x2c, Y1, Y1 768 VPSRLQ $0x3d, Y2, Y2 769 VPSRLQ $0x13, Y3, Y3 770 VPSRLQ $0x03, Y4, Y4 771 VPOR Y5, Y0, Y0 772 VPOR Y6, Y1, Y1 773 VPOR Y7, Y2, Y2 774 VPOR Y8, Y3, Y3 775 VPOR Y9, Y4, Y4 776 VPANDN Y2, Y1, Y5 777 VPANDN Y3, Y2, Y6 778 VPANDN Y4, Y3, Y7 779 VPANDN Y0, Y4, Y8 780 VPANDN Y1, Y0, Y9 781 VPXOR Y0, Y5, Y5 782 VPXOR Y1, Y6, Y6 783 VPXOR Y2, Y7, Y7 784 VPXOR Y3, Y8, Y8 785 VPXOR Y4, Y9, Y9 786 VMOVDQA Y5, 160(AX) 787 VMOVDQA Y6, 192(AX) 788 VMOVDQA Y7, 224(AX) 789 VMOVDQA Y8, 256(AX) 790 VMOVDQA Y9, 288(AX) 791 VPXOR 352(AX), Y11, Y0 792 VPXOR 384(AX), Y12, Y1 793 VPXOR 416(AX), Y13, Y2 794 VPXOR 448(AX), Y14, Y3 795 VPXOR 320(AX), Y10, Y4 796 VPSLLQ $0x01, Y0, Y5 797 VPSLLQ $0x06, Y1, Y6 798 VPSLLQ $0x19, Y2, Y7 799 VPSLLQ $0x08, Y3, Y8 800 VPSLLQ $0x12, Y4, Y9 801 VPSRLQ $0x3f, Y0, Y0 802 VPSRLQ $0x3a, Y1, Y1 803 VPSRLQ $0x27, Y2, Y2 804 VPSRLQ $0x38, Y3, Y3 805 VPSRLQ $0x2e, Y4, Y4 806 VPOR Y5, Y0, Y0 807 VPOR Y6, Y1, Y1 808 VPOR Y7, Y2, Y2 809 VPOR Y8, Y3, Y3 810 VPOR Y9, Y4, Y4 811 VPANDN Y2, Y1, Y5 812 VPANDN Y3, Y2, Y6 813 VPANDN Y4, Y3, Y7 814 VPANDN Y0, Y4, Y8 815 VPANDN Y1, Y0, Y9 816 VPXOR Y0, Y5, Y5 817 VPXOR Y1, Y6, Y6 818 VPXOR Y2, Y7, Y7 819 VPXOR Y3, Y8, Y8 820 VPXOR Y4, Y9, Y9 821 VMOVDQA Y5, 320(AX) 822 VMOVDQA Y6, 352(AX) 823 VMOVDQA Y7, 384(AX) 824 VMOVDQA Y8, 416(AX) 825 VMOVDQA Y9, 448(AX) 826 VPXOR 608(AX), Y14, Y0 827 VPXOR 480(AX), Y10, Y1 828 VPXOR 512(AX), Y11, Y2 829 VPXOR 544(AX), Y12, Y3 830 VPXOR 576(AX), Y13, Y4 831 VPSLLQ $0x1b, Y0, Y5 832 VPSLLQ $0x24, Y1, Y6 833 VPSLLQ $0x0a, Y2, Y7 834 VPSLLQ $0x0f, Y3, Y8 835 VPSLLQ $0x38, Y4, Y9 836 VPSRLQ $0x25, Y0, Y0 837 VPSRLQ $0x1c, Y1, Y1 838 VPSRLQ $0x36, Y2, Y2 839 VPSRLQ $0x31, Y3, Y3 840 VPSRLQ $0x08, Y4, Y4 841 VPOR Y5, Y0, Y0 842 VPOR Y6, Y1, Y1 843 VPOR Y7, Y2, Y2 844 VPOR Y8, Y3, Y3 845 VPOR Y9, Y4, Y4 846 VPANDN Y2, Y1, Y5 847 VPANDN Y3, Y2, Y6 848 VPANDN Y4, Y3, Y7 849 VPANDN Y0, Y4, Y8 850 VPANDN Y1, Y0, Y9 851 VPXOR Y0, Y5, Y5 852 VPXOR Y1, Y6, Y6 853 VPXOR Y2, Y7, Y7 854 VPXOR Y3, Y8, Y8 855 VPXOR Y4, Y9, Y9 856 VMOVDQA Y5, 480(AX) 857 VMOVDQA Y6, 512(AX) 858 VMOVDQA Y7, 544(AX) 859 VMOVDQA Y8, 576(AX) 860 VMOVDQA Y9, 608(AX) 861 VPXOR 704(AX), Y12, Y0 862 VPXOR 736(AX), Y13, Y1 863 VPXOR 768(AX), Y14, Y2 864 VPXOR 640(AX), Y10, Y3 865 VPXOR 672(AX), Y11, Y4 866 VPSLLQ $0x3e, Y0, Y5 867 VPSLLQ $0x37, Y1, Y6 868 VPSLLQ $0x27, Y2, Y7 869 VPSLLQ $0x29, Y3, Y8 870 VPSLLQ $0x02, Y4, Y9 871 VPSRLQ $0x02, Y0, Y0 872 VPSRLQ $0x09, Y1, Y1 873 VPSRLQ $0x19, Y2, Y2 874 VPSRLQ $0x17, Y3, Y3 875 VPSRLQ $0x3e, Y4, Y4 876 VPOR Y5, Y0, Y0 877 VPOR Y6, Y1, Y1 878 VPOR Y7, Y2, Y2 879 VPOR Y8, Y3, Y3 880 VPOR Y9, Y4, Y4 881 VPANDN Y2, Y1, Y5 882 VPANDN Y3, Y2, Y6 883 VPANDN Y4, Y3, Y7 884 VPANDN Y0, Y4, Y8 885 VPANDN Y1, Y0, Y9 886 VPXOR Y0, Y5, Y5 887 VPXOR Y1, Y6, Y6 888 VPXOR Y2, Y7, Y7 889 VPXOR Y3, Y8, Y8 890 VPXOR Y4, Y9, Y9 891 VMOVDQA Y5, 640(AX) 892 VMOVDQA Y6, 672(AX) 893 VMOVDQA Y7, 704(AX) 894 VMOVDQA Y8, 736(AX) 895 VMOVDQA Y9, 768(AX) 896 ADDQ $0x20, CX 897 SUBQ $0x00000001, DX 898 JNZ loop 899 RET