1 #include <math.h> 2 #include <setjmp.h> 3 #include <signal.h> 4 #include <stdio.h> 5 #include <stdlib.h> 6 7 typedef union { 8 char sb[1]; 9 unsigned char ub[1]; 10 } reg8_t; 11 12 typedef union { 13 char sb[2]; 14 unsigned char ub[2]; 15 short sw[1]; 16 unsigned short uw[1]; 17 } reg16_t; 18 19 typedef union { 20 char sb[4]; 21 unsigned char ub[4]; 22 short sw[2]; 23 unsigned short uw[2]; 24 int sd[1]; 25 unsigned int ud[1]; 26 float ps[1]; 27 } reg32_t; 28 29 typedef union { 30 char sb[8]; 31 unsigned char ub[8]; 32 short sw[4]; 33 unsigned short uw[4]; 34 int sd[2]; 35 unsigned int ud[2]; 36 long long int sq[1]; 37 unsigned long long int uq[1]; 38 float ps[2]; 39 double pd[1]; 40 } reg64_t __attribute__ ((aligned (8))); 41 42 typedef union { 43 char sb[16]; 44 unsigned char ub[16]; 45 short sw[8]; 46 unsigned short uw[8]; 47 int sd[4]; 48 unsigned int ud[4]; 49 long long int sq[2]; 50 unsigned long long int uq[2]; 51 float ps[4]; 52 double pd[2]; 53 } reg128_t __attribute__ ((aligned (16))); 54 55 static sigjmp_buf catchpoint; 56 57 static void handle_sigill(int signum) 58 { 59 siglongjmp(catchpoint, 1); 60 } 61 62 __attribute__((unused)) 63 static int eq_float(float f1, float f2) 64 { 65 /* return f1 == f2 || fabsf(f1 - f2) < fabsf(f1) * 1.5 * powf(2,-12); */ 66 return f1 == f2 || fabsf(f1 - f2) < fabsf(f1) * 1.5 / 4096.0; 67 } 68 69 __attribute__((unused)) 70 static int eq_double(double d1, double d2) 71 { 72 /* return d1 == d2 || fabs(d1 - d2) < fabs(d1) * 1.5 * pow(2,-12); */ 73 return d1 == d2 || fabs(d1 - d2) < fabs(d1) * 1.5 / 4096.0; 74 } 75 76 static void pclmulqdq_1(void) 77 { 78 reg128_t arg1 = { .uq = { 0x00017004200ab0cdULL, 0xc000b802f6b31753ULL } }; 79 reg128_t arg2 = { .uq = { 0xa0005c0252074a9aULL, 0x50002e0207b1643cULL } }; 80 reg128_t result0; 81 char state[108]; 82 83 if (sigsetjmp(catchpoint, 1) == 0) 84 { 85 asm( 86 "ffree %%st(7)\n" 87 "ffree %%st(6)\n" 88 "ffree %%st(5)\n" 89 "ffree %%st(4)\n" 90 "movlps 0+%0, %%xmm12\n" 91 "movhps 8+%0, %%xmm12\n" 92 "movlps 0+%1, %%xmm13\n" 93 "movhps 8+%1, %%xmm13\n" 94 "pclmulqdq $0, %%xmm12, %%xmm13\n" 95 "movlps %%xmm13, 0+%2\n" 96 "movhps %%xmm13, 8+%2\n" 97 : 98 : "m" (arg1), "m" (arg2), "m" (result0), "m" (state[0]) 99 : "xmm12", "xmm13" 100 ); 101 102 if (result0.uq[0] == 0x5ff61cc8b1043fa2ULL && result0.uq[1] == 0x00009602d147dc12ULL ) 103 { 104 printf("pclmulqdq_1 ... ok\n"); 105 } 106 else 107 { 108 printf("pclmulqdq_1 ... not ok\n"); 109 printf(" result0.uq[0] = %llu (expected %llu)\n", result0.uq[0], 0x5ff61cc8b1043fa2ULL); 110 printf(" result0.uq[1] = %llu (expected %llu)\n", result0.uq[1], 0x00009602d147dc12ULL); 111 } 112 } 113 else 114 { 115 printf("pclmulqdq_1 ... failed\n"); 116 } 117 118 return; 119 } 120 121 static void pclmulqdq_2(void) 122 { 123 reg128_t arg1 = { .uq = { 0x28001701e286710dULL, 0xd4000b81d7f0f773ULL } }; 124 reg128_t arg2 = { .uq = { 0xaa0005c1c2a63aaaULL, 0x550002e1c000dc44ULL } }; 125 reg128_t result0; 126 char state[108]; 127 128 if (sigsetjmp(catchpoint, 1) == 0) 129 { 130 asm( 131 "ffree %%st(7)\n" 132 "ffree %%st(6)\n" 133 "ffree %%st(5)\n" 134 "ffree %%st(4)\n" 135 "movlps 0+%0, %%xmm12\n" 136 "movhps 8+%0, %%xmm12\n" 137 "movlps 0+%1, %%xmm13\n" 138 "movhps 8+%1, %%xmm13\n" 139 "pclmulqdq $1, %%xmm12, %%xmm13\n" 140 "movlps %%xmm13, 0+%2\n" 141 "movhps %%xmm13, 8+%2\n" 142 : 143 : "m" (arg1), "m" (arg2), "m" (result0), "m" (state[0]) 144 : "xmm12", "xmm13" 145 ); 146 147 if (result0.uq[0] == 0xd33d2883021ccb74ULL && result0.uq[1] == 0x080804b056c3c3bdULL ) 148 { 149 printf("pclmulqdq_2 ... ok\n"); 150 } 151 else 152 { 153 printf("pclmulqdq_2 ... not ok\n"); 154 printf(" result0.uq[0] = %llu (expected %llu)\n", result0.uq[0], 0xd33d2883021ccb74ULL); 155 printf(" result0.uq[1] = %llu (expected %llu)\n", result0.uq[1], 0x080804b056c3c3bdULL); 156 } 157 } 158 else 159 { 160 printf("pclmulqdq_2 ... failed\n"); 161 } 162 163 return; 164 } 165 166 static void pclmulqdq_3(void) 167 { 168 reg128_t arg1 = { .uq = { 0x2a800171beae2d11ULL, 0xd54000b9b604d579ULL } }; 169 reg128_t arg2 = { .uq = { 0xaaa0005db1b029adULL, 0x9550002faf85d3c3ULL } }; 170 reg128_t result0; 171 char state[108]; 172 173 if (sigsetjmp(catchpoint, 1) == 0) 174 { 175 asm( 176 "ffree %%st(7)\n" 177 "ffree %%st(6)\n" 178 "ffree %%st(5)\n" 179 "ffree %%st(4)\n" 180 "movlps 0+%0, %%xmm12\n" 181 "movhps 8+%0, %%xmm12\n" 182 "movlps 0+%1, %%xmm13\n" 183 "movhps 8+%1, %%xmm13\n" 184 "pclmulqdq $16, %%xmm12, %%xmm13\n" 185 "movlps %%xmm13, 0+%2\n" 186 "movhps %%xmm13, 8+%2\n" 187 : 188 : "m" (arg1), "m" (arg2), "m" (result0), "m" (state[0]) 189 : "xmm12", "xmm13" 190 ); 191 192 if (result0.uq[0] == 0x5bd93710a920a9f5ULL && result0.uq[1] == 0x777888724b473f64ULL ) 193 { 194 printf("pclmulqdq_3 ... ok\n"); 195 } 196 else 197 { 198 printf("pclmulqdq_3 ... not ok\n"); 199 printf(" result0.uq[0] = %llu (expected %llu)\n", result0.uq[0], 0x5bd93710a920a9f5ULL); 200 printf(" result0.uq[1] = %llu (expected %llu)\n", result0.uq[1], 0x777888724b473f64ULL); 201 } 202 } 203 else 204 { 205 printf("pclmulqdq_3 ... failed\n"); 206 } 207 208 return; 209 } 210 211 static void pclmulqdq_4(void) 212 { 213 reg128_t arg1 = { .uq = { 0x8aa80018be70a8d2ULL, 0x4554000d3de61358ULL } }; 214 reg128_t arg2 = { .uq = { 0x22aa00077da0c89bULL, 0xd1550004957e233eULL } }; 215 reg128_t result0; 216 char state[108]; 217 218 if (sigsetjmp(catchpoint, 1) == 0) 219 { 220 asm( 221 "ffree %%st(7)\n" 222 "ffree %%st(6)\n" 223 "ffree %%st(5)\n" 224 "ffree %%st(4)\n" 225 "movlps 0+%0, %%xmm12\n" 226 "movhps 8+%0, %%xmm12\n" 227 "movlps 0+%1, %%xmm13\n" 228 "movhps 8+%1, %%xmm13\n" 229 "pclmulqdq $17, %%xmm12, %%xmm13\n" 230 "movlps %%xmm13, 0+%2\n" 231 "movhps %%xmm13, 8+%2\n" 232 : 233 : "m" (arg1), "m" (arg2), "m" (result0), "m" (state[0]) 234 : "xmm12", "xmm13" 235 ); 236 237 if (result0.uq[0] == 0xd222922d28094790ULL && result0.uq[1] == 0x37fb44403e2d3407ULL ) 238 { 239 printf("pclmulqdq_4 ... ok\n"); 240 } 241 else 242 { 243 printf("pclmulqdq_4 ... not ok\n"); 244 printf(" result0.uq[0] = %llu (expected %llu)\n", result0.uq[0], 0xd222922d28094790ULL); 245 printf(" result0.uq[1] = %llu (expected %llu)\n", result0.uq[1], 0x37fb44403e2d3407ULL); 246 } 247 } 248 else 249 { 250 printf("pclmulqdq_4 ... failed\n"); 251 } 252 253 return; 254 } 255 256 static void pclmulqdq_5(void) 257 { 258 reg128_t arg1 = { .uq = { 0x68aa8003296cd08eULL, 0x3455400273642736ULL } }; 259 reg128_t arg2 = { .uq = { 0x1a2aa002185fd28aULL, 0x0d155001eadda834ULL } }; 260 reg128_t result0; 261 char state[108]; 262 263 if (sigsetjmp(catchpoint, 1) == 0) 264 { 265 asm( 266 "ffree %%st(7)\n" 267 "ffree %%st(6)\n" 268 "ffree %%st(5)\n" 269 "ffree %%st(4)\n" 270 "movlps 0+%1, %%xmm13\n" 271 "movhps 8+%1, %%xmm13\n" 272 "pclmulqdq $0, %0, %%xmm13\n" 273 "movlps %%xmm13, 0+%2\n" 274 "movhps %%xmm13, 8+%2\n" 275 : 276 : "m" (arg1), "m" (arg2), "m" (result0), "m" (state[0]) 277 : "xmm12", "xmm13" 278 ); 279 280 if (result0.uq[0] == 0x6f56f9abeba01e6cULL && result0.uq[1] == 0x05101111e9709d8fULL ) 281 { 282 printf("pclmulqdq_5 ... ok\n"); 283 } 284 else 285 { 286 printf("pclmulqdq_5 ... not ok\n"); 287 printf(" result0.uq[0] = %llu (expected %llu)\n", result0.uq[0], 0x6f56f9abeba01e6cULL); 288 printf(" result0.uq[1] = %llu (expected %llu)\n", result0.uq[1], 0x05101111e9709d8fULL); 289 } 290 } 291 else 292 { 293 printf("pclmulqdq_5 ... failed\n"); 294 } 295 296 return; 297 } 298 299 static void pclmulqdq_6(void) 300 { 301 reg128_t arg1 = { .uq = { 0x068aa801d41c9309ULL, 0xc3455401c0bc0875ULL } }; 302 reg128_t arg2 = { .uq = { 0xa1a2aa01c70bc327ULL, 0x90d15501ca33a080ULL } }; 303 reg128_t result0; 304 char state[108]; 305 306 if (sigsetjmp(catchpoint, 1) == 0) 307 { 308 asm( 309 "ffree %%st(7)\n" 310 "ffree %%st(6)\n" 311 "ffree %%st(5)\n" 312 "ffree %%st(4)\n" 313 "movlps 0+%1, %%xmm13\n" 314 "movhps 8+%1, %%xmm13\n" 315 "pclmulqdq $1, %0, %%xmm13\n" 316 "movlps %%xmm13, 0+%2\n" 317 "movhps %%xmm13, 8+%2\n" 318 : 319 : "m" (arg1), "m" (arg2), "m" (result0), "m" (state[0]) 320 : "xmm12", "xmm13" 321 ); 322 323 if (result0.uq[0] == 0x0c18b0e8ab072480ULL && result0.uq[1] == 0x032f76887b10d528ULL ) 324 { 325 printf("pclmulqdq_6 ... ok\n"); 326 } 327 else 328 { 329 printf("pclmulqdq_6 ... not ok\n"); 330 printf(" result0.uq[0] = %llu (expected %llu)\n", result0.uq[0], 0x0c18b0e8ab072480ULL); 331 printf(" result0.uq[1] = %llu (expected %llu)\n", result0.uq[1], 0x032f76887b10d528ULL); 332 } 333 } 334 else 335 { 336 printf("pclmulqdq_6 ... failed\n"); 337 } 338 339 return; 340 } 341 342 static void pclmulqdq_7(void) 343 { 344 reg128_t arg1 = { .uq = { 0x4868aa81c3c78f2fULL, 0xe4345541c8918684ULL } }; 345 reg128_t arg2 = { .uq = { 0x721a2aa1c2f68231ULL, 0xf90d1551c8290009ULL } }; 346 reg128_t result0; 347 char state[108]; 348 349 if (sigsetjmp(catchpoint, 1) == 0) 350 { 351 asm( 352 "ffree %%st(7)\n" 353 "ffree %%st(6)\n" 354 "ffree %%st(5)\n" 355 "ffree %%st(4)\n" 356 "movlps 0+%1, %%xmm13\n" 357 "movhps 8+%1, %%xmm13\n" 358 "pclmulqdq $16, %0, %%xmm13\n" 359 "movlps %%xmm13, 0+%2\n" 360 "movhps %%xmm13, 8+%2\n" 361 : 362 : "m" (arg1), "m" (arg2), "m" (result0), "m" (state[0]) 363 : "xmm12", "xmm13" 364 ); 365 366 if (result0.uq[0] == 0x11d8b7b8f72e3644ULL && result0.uq[1] == 0x2a080288f207712bULL ) 367 { 368 printf("pclmulqdq_7 ... ok\n"); 369 } 370 else 371 { 372 printf("pclmulqdq_7 ... not ok\n"); 373 printf(" result0.uq[0] = %llu (expected %llu)\n", result0.uq[0], 0x11d8b7b8f72e3644ULL); 374 printf(" result0.uq[1] = %llu (expected %llu)\n", result0.uq[1], 0x2a080288f207712bULL); 375 } 376 } 377 else 378 { 379 printf("pclmulqdq_7 ... failed\n"); 380 } 381 382 return; 383 } 384 385 static void pclmulqdq_8(void) 386 { 387 reg128_t arg1 = { .uq = { 0xbc868aa9cac23ef5ULL, 0x9e434555cc0ede67ULL } }; 388 reg128_t arg2 = { .uq = { 0x8f21a2abccb52e20ULL, 0x4790d156c50855ffULL } }; 389 reg128_t result0; 390 char state[108]; 391 392 if (sigsetjmp(catchpoint, 1) == 0) 393 { 394 asm( 395 "ffree %%st(7)\n" 396 "ffree %%st(6)\n" 397 "ffree %%st(5)\n" 398 "ffree %%st(4)\n" 399 "movlps 0+%1, %%xmm13\n" 400 "movhps 8+%1, %%xmm13\n" 401 "pclmulqdq $17, %0, %%xmm13\n" 402 "movlps %%xmm13, 0+%2\n" 403 "movhps %%xmm13, 8+%2\n" 404 : 405 : "m" (arg1), "m" (arg2), "m" (result0), "m" (state[0]) 406 : "xmm12", "xmm13" 407 ); 408 409 if (result0.uq[0] == 0xd2e5bdd1665023ddULL && result0.uq[1] == 0x240dbdff7a0eb888ULL ) 410 { 411 printf("pclmulqdq_8 ... ok\n"); 412 } 413 else 414 { 415 printf("pclmulqdq_8 ... not ok\n"); 416 printf(" result0.uq[0] = %llu (expected %llu)\n", result0.uq[0], 0xd2e5bdd1665023ddULL); 417 printf(" result0.uq[1] = %llu (expected %llu)\n", result0.uq[1], 0x240dbdff7a0eb888ULL); 418 } 419 } 420 else 421 { 422 printf("pclmulqdq_8 ... failed\n"); 423 } 424 425 return; 426 } 427 428 static void pclmulqdq_9(void) 429 { 430 reg128_t arg1 = { .uq = { 0xe3c868ac4931e9ecULL, 0x71e434570346b3e5ULL } }; 431 reg128_t arg2 = { .uq = { 0xf8f21a2c685118dfULL, 0xbc790d171ad64b5cULL } }; 432 reg128_t result0; 433 char state[108]; 434 435 if (sigsetjmp(catchpoint, 1) == 0) 436 { 437 asm( 438 "ffree %%st(7)\n" 439 "ffree %%st(6)\n" 440 "ffree %%st(5)\n" 441 "ffree %%st(4)\n" 442 "movlps 0+%0, %%xmm12\n" 443 "movhps 8+%0, %%xmm12\n" 444 "movlps 0+%1, %%xmm13\n" 445 "movhps 8+%1, %%xmm13\n" 446 "pclmulqdq $0, %%xmm12, %%xmm13\n" 447 "movlps %%xmm13, 0+%2\n" 448 "movhps %%xmm13, 8+%2\n" 449 : 450 : "m" (arg1), "m" (arg2), "m" (result0), "m" (state[0]) 451 : "xmm12", "xmm13" 452 ); 453 454 if (result0.uq[0] == 0x0eebfc038c776124ULL && result0.uq[1] == 0x5c177a6fb4d9adf2ULL ) 455 { 456 printf("pclmulqdq_9 ... ok\n"); 457 } 458 else 459 { 460 printf("pclmulqdq_9 ... not ok\n"); 461 printf(" result0.uq[0] = %llu (expected %llu)\n", result0.uq[0], 0x0eebfc038c776124ULL); 462 printf(" result0.uq[1] = %llu (expected %llu)\n", result0.uq[1], 0x5c177a6fb4d9adf2ULL); 463 } 464 } 465 else 466 { 467 printf("pclmulqdq_9 ... failed\n"); 468 } 469 470 return; 471 } 472 473 static void pclmulqdq_10(void) 474 { 475 reg128_t arg1 = { .uq = { 0x5e3c868c6c18e49dULL, 0xef1e43471cba313bULL } }; 476 reg128_t arg2 = { .uq = { 0xb78f21a4650ad78eULL, 0x5bc790d311332ab6ULL } }; 477 reg128_t result0; 478 char state[108]; 479 480 if (sigsetjmp(catchpoint, 1) == 0) 481 { 482 asm( 483 "ffree %%st(7)\n" 484 "ffree %%st(6)\n" 485 "ffree %%st(5)\n" 486 "ffree %%st(4)\n" 487 "movlps 0+%0, %%xmm12\n" 488 "movhps 8+%0, %%xmm12\n" 489 "movlps 0+%1, %%xmm13\n" 490 "movhps 8+%1, %%xmm13\n" 491 "pclmulqdq $1, %%xmm12, %%xmm13\n" 492 "movlps %%xmm13, 0+%2\n" 493 "movhps %%xmm13, 8+%2\n" 494 : 495 : "m" (arg1), "m" (arg2), "m" (result0), "m" (state[0]) 496 : "xmm12", "xmm13" 497 ); 498 499 if (result0.uq[0] == 0x01f223ce761bbdbeULL && result0.uq[1] == 0x1046696140e99a8dULL ) 500 { 501 printf("pclmulqdq_10 ... ok\n"); 502 } 503 else 504 { 505 printf("pclmulqdq_10 ... not ok\n"); 506 printf(" result0.uq[0] = %llu (expected %llu)\n", result0.uq[0], 0x01f223ce761bbdbeULL); 507 printf(" result0.uq[1] = %llu (expected %llu)\n", result0.uq[1], 0x1046696140e99a8dULL); 508 } 509 } 510 else 511 { 512 printf("pclmulqdq_10 ... failed\n"); 513 } 514 515 return; 516 } 517 518 static void pclmulqdq_11(void) 519 { 520 reg128_t arg1 = { .uq = { 0x2de3c86a6747544aULL, 0x16f1e43612516914ULL } }; 521 reg128_t arg2 = { .uq = { 0x0b78f21be7d67379ULL, 0xc5bc790eda98f8adULL } }; 522 reg128_t result0; 523 char state[108]; 524 525 if (sigsetjmp(catchpoint, 1) == 0) 526 { 527 asm( 528 "ffree %%st(7)\n" 529 "ffree %%st(6)\n" 530 "ffree %%st(5)\n" 531 "ffree %%st(4)\n" 532 "movlps 0+%0, %%xmm12\n" 533 "movhps 8+%0, %%xmm12\n" 534 "movlps 0+%1, %%xmm13\n" 535 "movhps 8+%1, %%xmm13\n" 536 "pclmulqdq $16, %%xmm12, %%xmm13\n" 537 "movlps %%xmm13, 0+%2\n" 538 "movhps %%xmm13, 8+%2\n" 539 : 540 : "m" (arg1), "m" (arg2), "m" (result0), "m" (state[0]) 541 : "xmm12", "xmm13" 542 ); 543 544 if (result0.uq[0] == 0xf1b07b5d2dce2b74ULL && result0.uq[1] == 0x008a2a80a6dea4c8ULL ) 545 { 546 printf("pclmulqdq_11 ... ok\n"); 547 } 548 else 549 { 550 printf("pclmulqdq_11 ... not ok\n"); 551 printf(" result0.uq[0] = %llu (expected %llu)\n", result0.uq[0], 0xf1b07b5d2dce2b74ULL); 552 printf(" result0.uq[1] = %llu (expected %llu)\n", result0.uq[1], 0x008a2a80a6dea4c8ULL); 553 } 554 } 555 else 556 { 557 printf("pclmulqdq_11 ... failed\n"); 558 } 559 560 return; 561 } 562 563 static void pclmulqdq_12(void) 564 { 565 reg128_t arg1 = { .uq = { 0xa2de3c8843fa3b43ULL, 0x916f1e4508aadc92ULL } }; 566 reg128_t arg2 = { .uq = { 0x48b78f2363032d38ULL, 0x245bc792902f558bULL } }; 567 reg128_t result0; 568 char state[108]; 569 570 if (sigsetjmp(catchpoint, 1) == 0) 571 { 572 asm( 573 "ffree %%st(7)\n" 574 "ffree %%st(6)\n" 575 "ffree %%st(5)\n" 576 "ffree %%st(4)\n" 577 "movlps 0+%0, %%xmm12\n" 578 "movhps 8+%0, %%xmm12\n" 579 "movlps 0+%1, %%xmm13\n" 580 "movhps 8+%1, %%xmm13\n" 581 "pclmulqdq $17, %%xmm12, %%xmm13\n" 582 "movlps %%xmm13, 0+%2\n" 583 "movhps %%xmm13, 8+%2\n" 584 : 585 : "m" (arg1), "m" (arg2), "m" (result0), "m" (state[0]) 586 : "xmm12", "xmm13" 587 ); 588 589 if (result0.uq[0] == 0xf8b35e3453aab226ULL && result0.uq[1] == 0x10404514973eeacdULL ) 590 { 591 printf("pclmulqdq_12 ... ok\n"); 592 } 593 else 594 { 595 printf("pclmulqdq_12 ... not ok\n"); 596 printf(" result0.uq[0] = %llu (expected %llu)\n", result0.uq[0], 0xf8b35e3453aab226ULL); 597 printf(" result0.uq[1] = %llu (expected %llu)\n", result0.uq[1], 0x10404514973eeacdULL); 598 } 599 } 600 else 601 { 602 printf("pclmulqdq_12 ... failed\n"); 603 } 604 605 return; 606 } 607 608 static void pclmulqdq_13(void) 609 { 610 reg128_t arg1 = { .uq = { 0xd22de3ca1ec569b6ULL, 0x6916f1e5ee1073caULL } }; 611 reg128_t arg2 = { .uq = { 0x348b78f3d5b5f8d4ULL, 0x1a45bc7ac988bb59ULL } }; 612 reg128_t result0; 613 char state[108]; 614 615 if (sigsetjmp(catchpoint, 1) == 0) 616 { 617 asm( 618 "ffree %%st(7)\n" 619 "ffree %%st(6)\n" 620 "ffree %%st(5)\n" 621 "ffree %%st(4)\n" 622 "movlps 0+%1, %%xmm13\n" 623 "movhps 8+%1, %%xmm13\n" 624 "pclmulqdq $0, %0, %%xmm13\n" 625 "movlps %%xmm13, 0+%2\n" 626 "movhps %%xmm13, 8+%2\n" 627 : 628 : "m" (arg1), "m" (arg2), "m" (result0), "m" (state[0]) 629 : "xmm12", "xmm13" 630 ); 631 632 if (result0.uq[0] == 0x6e44f4974d351b38ULL && result0.uq[1] == 0x14410114bf2270eaULL ) 633 { 634 printf("pclmulqdq_13 ... ok\n"); 635 } 636 else 637 { 638 printf("pclmulqdq_13 ... not ok\n"); 639 printf(" result0.uq[0] = %llu (expected %llu)\n", result0.uq[0], 0x6e44f4974d351b38ULL); 640 printf(" result0.uq[1] = %llu (expected %llu)\n", result0.uq[1], 0x14410114bf2270eaULL); 641 } 642 } 643 else 644 { 645 printf("pclmulqdq_13 ... failed\n"); 646 } 647 648 return; 649 } 650 651 static void pclmulqdq_14(void) 652 { 653 reg128_t arg1 = { .uq = { 0xcd22de3e4b721c9dULL, 0xa6916f200c66cd3bULL } }; 654 reg128_t arg2 = { .uq = { 0x9348b790ece1258eULL, 0x49a45bc9551e51b6ULL } }; 655 reg128_t result0; 656 char state[108]; 657 658 if (sigsetjmp(catchpoint, 1) == 0) 659 { 660 asm( 661 "ffree %%st(7)\n" 662 "ffree %%st(6)\n" 663 "ffree %%st(5)\n" 664 "ffree %%st(4)\n" 665 "movlps 0+%1, %%xmm13\n" 666 "movhps 8+%1, %%xmm13\n" 667 "pclmulqdq $1, %0, %%xmm13\n" 668 "movlps %%xmm13, 0+%2\n" 669 "movhps %%xmm13, 8+%2\n" 670 : 671 : "m" (arg1), "m" (arg2), "m" (result0), "m" (state[0]) 672 : "xmm12", "xmm13" 673 ); 674 675 if (result0.uq[0] == 0xd9ebb20510c452beULL && result0.uq[1] == 0x3590bae854a1ffd5ULL ) 676 { 677 printf("pclmulqdq_14 ... ok\n"); 678 } 679 else 680 { 681 printf("pclmulqdq_14 ... not ok\n"); 682 printf(" result0.uq[0] = %llu (expected %llu)\n", result0.uq[0], 0xd9ebb20510c452beULL); 683 printf(" result0.uq[1] = %llu (expected %llu)\n", result0.uq[1], 0x3590bae854a1ffd5ULL); 684 } 685 } 686 else 687 { 688 printf("pclmulqdq_14 ... failed\n"); 689 } 690 691 return; 692 } 693 694 static void pclmulqdq_15(void) 695 { 696 reg128_t arg1 = { .uq = { 0x24d22de5893ce7caULL, 0x126916f3a34c32d4ULL } }; 697 reg128_t arg2 = { .uq = { 0x09348b7ab053d859ULL, 0xc49a45be2ed7ab1dULL } }; 698 reg128_t result0; 699 char state[108]; 700 701 if (sigsetjmp(catchpoint, 1) == 0) 702 { 703 asm( 704 "ffree %%st(7)\n" 705 "ffree %%st(6)\n" 706 "ffree %%st(5)\n" 707 "ffree %%st(4)\n" 708 "movlps 0+%1, %%xmm13\n" 709 "movhps 8+%1, %%xmm13\n" 710 "pclmulqdq $16, %0, %%xmm13\n" 711 "movlps %%xmm13, 0+%2\n" 712 "movhps %%xmm13, 8+%2\n" 713 : 714 : "m" (arg1), "m" (arg2), "m" (result0), "m" (state[0]) 715 : "xmm12", "xmm13" 716 ); 717 718 if (result0.uq[0] == 0xeb5e5f29e6badc34ULL && result0.uq[1] == 0x00820a20b0fa8cedULL ) 719 { 720 printf("pclmulqdq_15 ... ok\n"); 721 } 722 else 723 { 724 printf("pclmulqdq_15 ... not ok\n"); 725 printf(" result0.uq[0] = %llu (expected %llu)\n", result0.uq[0], 0xeb5e5f29e6badc34ULL); 726 printf(" result0.uq[1] = %llu (expected %llu)\n", result0.uq[1], 0x00820a20b0fa8cedULL); 727 } 728 } 729 else 730 { 731 printf("pclmulqdq_15 ... failed\n"); 732 } 733 734 return; 735 } 736 737 static void pclmulqdq_16(void) 738 { 739 reg128_t arg1 = { .uq = { 0xa24d22dffe19947bULL, 0x91269170d5ba892eULL } }; 740 reg128_t arg2 = { .uq = { 0x489348b9498b0386ULL, 0x2449a45d837340b2ULL } }; 741 reg128_t result0; 742 char state[108]; 743 744 if (sigsetjmp(catchpoint, 1) == 0) 745 { 746 asm( 747 "ffree %%st(7)\n" 748 "ffree %%st(6)\n" 749 "ffree %%st(5)\n" 750 "ffree %%st(4)\n" 751 "movlps 0+%1, %%xmm13\n" 752 "movhps 8+%1, %%xmm13\n" 753 "pclmulqdq $17, %0, %%xmm13\n" 754 "movlps %%xmm13, 0+%2\n" 755 "movhps %%xmm13, 8+%2\n" 756 : 757 : "m" (arg1), "m" (arg2), "m" (result0), "m" (state[0]) 758 : "xmm12", "xmm13" 759 ); 760 761 if (result0.uq[0] == 0x1934a4ec2d51b27cULL && result0.uq[1] == 0x10404105d1aac198ULL ) 762 { 763 printf("pclmulqdq_16 ... ok\n"); 764 } 765 else 766 { 767 printf("pclmulqdq_16 ... not ok\n"); 768 printf(" result0.uq[0] = %llu (expected %llu)\n", result0.uq[0], 0x1934a4ec2d51b27cULL); 769 printf(" result0.uq[1] = %llu (expected %llu)\n", result0.uq[1], 0x10404105d1aac198ULL); 770 } 771 } 772 else 773 { 774 printf("pclmulqdq_16 ... failed\n"); 775 } 776 777 return; 778 } 779 780 static void pclmulqdq_17(void) 781 { 782 reg128_t arg1 = { .uq = { 0x1224d22fa0675f48ULL, 0x09126918aee16e93ULL } }; 783 reg128_t arg2 = { .uq = { 0xc489348d3e1e763aULL, 0x62449a477dbcfa0cULL } }; 784 reg128_t result0; 785 char state[108]; 786 787 if (sigsetjmp(catchpoint, 1) == 0) 788 { 789 asm( 790 "ffree %%st(7)\n" 791 "ffree %%st(6)\n" 792 "ffree %%st(5)\n" 793 "ffree %%st(4)\n" 794 "movlps 0+%0, %%xmm12\n" 795 "movhps 8+%0, %%xmm12\n" 796 "movlps 0+%1, %%xmm13\n" 797 "movhps 8+%1, %%xmm13\n" 798 "pclmulqdq $0, %%xmm12, %%xmm13\n" 799 "movlps %%xmm13, 0+%2\n" 800 "movhps %%xmm13, 8+%2\n" 801 : 802 : "m" (arg1), "m" (arg2), "m" (result0), "m" (state[0]) 803 : "xmm12", "xmm13" 804 ); 805 806 if (result0.uq[0] == 0x1411baeeee166950ULL && result0.uq[1] == 0x0dda5c984c642a65ULL ) 807 { 808 printf("pclmulqdq_17 ... ok\n"); 809 } 810 else 811 { 812 printf("pclmulqdq_17 ... not ok\n"); 813 printf(" result0.uq[0] = %llu (expected %llu)\n", result0.uq[0], 0x1411baeeee166950ULL); 814 printf(" result0.uq[1] = %llu (expected %llu)\n", result0.uq[1], 0x0dda5c984c642a65ULL); 815 } 816 } 817 else 818 { 819 printf("pclmulqdq_17 ... failed\n"); 820 } 821 822 return; 823 } 824 825 static void pclmulqdq_18(void) 826 { 827 reg128_t arg1 = { .uq = { 0x31224d249d8c3bf5ULL, 0xd89126932573dce7ULL } }; 828 reg128_t arg2 = { .uq = { 0xac48934a7967ad60ULL, 0x562449a61b61959fULL } }; 829 reg128_t result0; 830 char state[108]; 831 832 if (sigsetjmp(catchpoint, 1) == 0) 833 { 834 asm( 835 "ffree %%st(7)\n" 836 "ffree %%st(6)\n" 837 "ffree %%st(5)\n" 838 "ffree %%st(4)\n" 839 "movlps 0+%0, %%xmm12\n" 840 "movhps 8+%0, %%xmm12\n" 841 "movlps 0+%1, %%xmm13\n" 842 "movhps 8+%1, %%xmm13\n" 843 "pclmulqdq $1, %%xmm12, %%xmm13\n" 844 "movlps %%xmm13, 0+%2\n" 845 "movhps %%xmm13, 8+%2\n" 846 : 847 : "m" (arg1), "m" (arg2), "m" (result0), "m" (state[0]) 848 : "xmm12", "xmm13" 849 ); 850 851 if (result0.uq[0] == 0xf21b031e1f9fc8b3ULL && result0.uq[1] == 0x0ffa971b97fa8b81ULL ) 852 { 853 printf("pclmulqdq_18 ... ok\n"); 854 } 855 else 856 { 857 printf("pclmulqdq_18 ... not ok\n"); 858 printf(" result0.uq[0] = %llu (expected %llu)\n", result0.uq[0], 0xf21b031e1f9fc8b3ULL); 859 printf(" result0.uq[1] = %llu (expected %llu)\n", result0.uq[1], 0x0ffa971b97fa8b81ULL); 860 } 861 } 862 else 863 { 864 printf("pclmulqdq_18 ... failed\n"); 865 } 866 867 return; 868 } 869 870 static void pclmulqdq_19(void) 871 { 872 reg128_t arg1 = { .uq = { 0xeb1224d3e45e89bcULL, 0x7589126ad0dd03cdULL } }; 873 reg128_t arg2 = { .uq = { 0xfac489363f1c40d3ULL, 0xbd62449bf63bdf5aULL } }; 874 reg128_t result0; 875 char state[108]; 876 877 if (sigsetjmp(catchpoint, 1) == 0) 878 { 879 asm( 880 "ffree %%st(7)\n" 881 "ffree %%st(6)\n" 882 "ffree %%st(5)\n" 883 "ffree %%st(4)\n" 884 "movlps 0+%0, %%xmm12\n" 885 "movhps 8+%0, %%xmm12\n" 886 "movlps 0+%1, %%xmm13\n" 887 "movhps 8+%1, %%xmm13\n" 888 "pclmulqdq $16, %%xmm12, %%xmm13\n" 889 "movlps %%xmm13, 0+%2\n" 890 "movhps %%xmm13, 8+%2\n" 891 : 892 : "m" (arg1), "m" (arg2), "m" (result0), "m" (state[0]) 893 : "xmm12", "xmm13" 894 ); 895 896 if (result0.uq[0] == 0x751e203b33096d47ULL && result0.uq[1] == 0x2d2e6d8fd926d075ULL ) 897 { 898 printf("pclmulqdq_19 ... ok\n"); 899 } 900 else 901 { 902 printf("pclmulqdq_19 ... not ok\n"); 903 printf(" result0.uq[0] = %llu (expected %llu)\n", result0.uq[0], 0x751e203b33096d47ULL); 904 printf(" result0.uq[1] = %llu (expected %llu)\n", result0.uq[1], 0x2d2e6d8fd926d075ULL); 905 } 906 } 907 else 908 { 909 printf("pclmulqdq_19 ... failed\n"); 910 } 911 912 return; 913 } 914 915 static void pclmulqdq_20(void) 916 { 917 reg128_t arg1 = { .uq = { 0x5eb1224ed9cbae9cULL, 0x2f5891284b93963dULL } }; 918 reg128_t arg2 = { .uq = { 0xd7ac48950c778a0bULL, 0xabd6244b6ce983f6ULL } }; 919 reg128_t result0; 920 char state[108]; 921 922 if (sigsetjmp(catchpoint, 1) == 0) 923 { 924 asm( 925 "ffree %%st(7)\n" 926 "ffree %%st(6)\n" 927 "ffree %%st(5)\n" 928 "ffree %%st(4)\n" 929 "movlps 0+%0, %%xmm12\n" 930 "movhps 8+%0, %%xmm12\n" 931 "movlps 0+%1, %%xmm13\n" 932 "movhps 8+%1, %%xmm13\n" 933 "pclmulqdq $17, %%xmm12, %%xmm13\n" 934 "movlps %%xmm13, 0+%2\n" 935 "movhps %%xmm13, 8+%2\n" 936 : 937 : "m" (arg1), "m" (arg2), "m" (result0), "m" (state[0]) 938 : "xmm12", "xmm13" 939 ); 940 941 if (result0.uq[0] == 0x6c7f0f43ad1d863eULL && result0.uq[1] == 0x13521ee11ef3275eULL ) 942 { 943 printf("pclmulqdq_20 ... ok\n"); 944 } 945 else 946 { 947 printf("pclmulqdq_20 ... not ok\n"); 948 printf(" result0.uq[0] = %llu (expected %llu)\n", result0.uq[0], 0x6c7f0f43ad1d863eULL); 949 printf(" result0.uq[1] = %llu (expected %llu)\n", result0.uq[1], 0x13521ee11ef3275eULL); 950 } 951 } 952 else 953 { 954 printf("pclmulqdq_20 ... failed\n"); 955 } 956 957 return; 958 } 959 960 static void pclmulqdq_21(void) 961 { 962 reg128_t arg1 = { .uq = { 0x55eb1226952280eaULL, 0x2af58914293eff64ULL } }; 963 reg128_t arg2 = { .uq = { 0x157ac48af34d3ea1ULL, 0xcabd624650545e41ULL } }; 964 reg128_t result0; 965 char state[108]; 966 967 if (sigsetjmp(catchpoint, 1) == 0) 968 { 969 asm( 970 "ffree %%st(7)\n" 971 "ffree %%st(6)\n" 972 "ffree %%st(5)\n" 973 "ffree %%st(4)\n" 974 "movlps 0+%1, %%xmm13\n" 975 "movhps 8+%1, %%xmm13\n" 976 "pclmulqdq $0, %0, %%xmm13\n" 977 "movlps %%xmm13, 0+%2\n" 978 "movhps %%xmm13, 8+%2\n" 979 : 980 : "m" (arg1), "m" (arg2), "m" (result0), "m" (state[0]) 981 : "xmm12", "xmm13" 982 ); 983 984 if (result0.uq[0] == 0x249f99dae3b624aaULL && result0.uq[1] == 0x04445511afa5163bULL ) 985 { 986 printf("pclmulqdq_21 ... ok\n"); 987 } 988 else 989 { 990 printf("pclmulqdq_21 ... not ok\n"); 991 printf(" result0.uq[0] = %llu (expected %llu)\n", result0.uq[0], 0x249f99dae3b624aaULL); 992 printf(" result0.uq[1] = %llu (expected %llu)\n", result0.uq[1], 0x04445511afa5163bULL); 993 } 994 } 995 else 996 { 997 printf("pclmulqdq_21 ... failed\n"); 998 } 999 1000 return; 1001 } 1002 1003 static void pclmulqdq_22(void) 1004 { 1005 reg128_t arg1 = { .uq = { 0xa55eb123fed7ee11ULL, 0x92af5892d619b5f9ULL } }; 1006 reg128_t arg2 = { .uq = { 0x8957ac4a41ba99edULL, 0x84abd626078b0be3ULL } }; 1007 reg128_t result0; 1008 char state[108]; 1009 1010 if (sigsetjmp(catchpoint, 1) == 0) 1011 { 1012 asm( 1013 "ffree %%st(7)\n" 1014 "ffree %%st(6)\n" 1015 "ffree %%st(5)\n" 1016 "ffree %%st(4)\n" 1017 "movlps 0+%1, %%xmm13\n" 1018 "movhps 8+%1, %%xmm13\n" 1019 "pclmulqdq $1, %0, %%xmm13\n" 1020 "movlps %%xmm13, 0+%2\n" 1021 "movhps %%xmm13, 8+%2\n" 1022 : 1023 : "m" (arg1), "m" (arg2), "m" (result0), "m" (state[0]) 1024 : "xmm12", "xmm13" 1025 ); 1026 1027 if (result0.uq[0] == 0x98f8fc12fdf0c7d3ULL && result0.uq[1] == 0x507891a8303b6e0dULL ) 1028 { 1029 printf("pclmulqdq_22 ... ok\n"); 1030 } 1031 else 1032 { 1033 printf("pclmulqdq_22 ... not ok\n"); 1034 printf(" result0.uq[0] = %llu (expected %llu)\n", result0.uq[0], 0x98f8fc12fdf0c7d3ULL); 1035 printf(" result0.uq[1] = %llu (expected %llu)\n", result0.uq[1], 0x507891a8303b6e0dULL); 1036 } 1037 } 1038 else 1039 { 1040 printf("pclmulqdq_22 ... failed\n"); 1041 } 1042 1043 return; 1044 } 1045 1046 static void pclmulqdq_23(void) 1047 { 1048 reg128_t arg1 = { .uq = { 0x8255eb13ea7344e2ULL, 0x412af58ad3e76160ULL } }; 1049 reg128_t arg2 = { .uq = { 0x20957ac648a16f9fULL, 0xd04abd640afe76bcULL } }; 1050 reg128_t result0; 1051 char state[108]; 1052 1053 if (sigsetjmp(catchpoint, 1) == 0) 1054 { 1055 asm( 1056 "ffree %%st(7)\n" 1057 "ffree %%st(6)\n" 1058 "ffree %%st(5)\n" 1059 "ffree %%st(4)\n" 1060 "movlps 0+%1, %%xmm13\n" 1061 "movhps 8+%1, %%xmm13\n" 1062 "pclmulqdq $16, %0, %%xmm13\n" 1063 "movlps %%xmm13, 0+%2\n" 1064 "movhps %%xmm13, 8+%2\n" 1065 : 1066 : "m" (arg1), "m" (arg2), "m" (result0), "m" (state[0]) 1067 : "xmm12", "xmm13" 1068 ); 1069 1070 if (result0.uq[0] == 0x5d4e25af2f70ab20ULL && result0.uq[1] == 0x08008222e18727b6ULL ) 1071 { 1072 printf("pclmulqdq_23 ... ok\n"); 1073 } 1074 else 1075 { 1076 printf("pclmulqdq_23 ... not ok\n"); 1077 printf(" result0.uq[0] = %llu (expected %llu)\n", result0.uq[0], 0x5d4e25af2f70ab20ULL); 1078 printf(" result0.uq[1] = %llu (expected %llu)\n", result0.uq[1], 0x08008222e18727b6ULL); 1079 } 1080 } 1081 else 1082 { 1083 printf("pclmulqdq_23 ... failed\n"); 1084 } 1085 1086 return; 1087 } 1088 1089 static void pclmulqdq_24(void) 1090 { 1091 reg128_t arg1 = { .uq = { 0x68255eb2e42cfa4dULL, 0xf412af5a58c43c13ULL } }; 1092 reg128_t arg2 = { .uq = { 0xba0957ae030fdcfaULL, 0x5d04abd7e035ad6cULL } }; 1093 reg128_t result0; 1094 char state[108]; 1095 1096 if (sigsetjmp(catchpoint, 1) == 0) 1097 { 1098 asm( 1099 "ffree %%st(7)\n" 1100 "ffree %%st(6)\n" 1101 "ffree %%st(5)\n" 1102 "ffree %%st(4)\n" 1103 "movlps 0+%1, %%xmm13\n" 1104 "movhps 8+%1, %%xmm13\n" 1105 "pclmulqdq $17, %0, %%xmm13\n" 1106 "movlps %%xmm13, 0+%2\n" 1107 "movhps %%xmm13, 8+%2\n" 1108 : 1109 : "m" (arg1), "m" (arg2), "m" (result0), "m" (state[0]) 1110 : "xmm12", "xmm13" 1111 ); 1112 1113 if (result0.uq[0] == 0xa2f470774f11b174ULL && result0.uq[1] == 0x36c2fe7c16d26dabULL ) 1114 { 1115 printf("pclmulqdq_24 ... ok\n"); 1116 } 1117 else 1118 { 1119 printf("pclmulqdq_24 ... not ok\n"); 1120 printf(" result0.uq[0] = %llu (expected %llu)\n", result0.uq[0], 0xa2f470774f11b174ULL); 1121 printf(" result0.uq[1] = %llu (expected %llu)\n", result0.uq[1], 0x36c2fe7c16d26dabULL); 1122 } 1123 } 1124 else 1125 { 1126 printf("pclmulqdq_24 ... failed\n"); 1127 } 1128 1129 return; 1130 } 1131 1132 static void pclmulqdq_25(void) 1133 { 1134 reg128_t arg1 = { .uq = { 0x2e8255eccec895a5ULL, 0xd7412af74e1209bfULL } }; 1135 reg128_t arg2 = { .uq = { 0xaba0957c8db6c3ccULL, 0x55d04abf258920d5ULL } }; 1136 reg128_t result0; 1137 char state[108]; 1138 1139 if (sigsetjmp(catchpoint, 1) == 0) 1140 { 1141 asm( 1142 "ffree %%st(7)\n" 1143 "ffree %%st(6)\n" 1144 "ffree %%st(5)\n" 1145 "ffree %%st(4)\n" 1146 "movlps 0+%0, %%xmm12\n" 1147 "movhps 8+%0, %%xmm12\n" 1148 "movlps 0+%1, %%xmm13\n" 1149 "movhps 8+%1, %%xmm13\n" 1150 "pclmulqdq $0, %%xmm12, %%xmm13\n" 1151 "movlps %%xmm13, 0+%2\n" 1152 "movhps %%xmm13, 8+%2\n" 1153 : 1154 : "m" (arg1), "m" (arg2), "m" (result0), "m" (state[0]) 1155 : "xmm12", "xmm13" 1156 ); 1157 1158 if (result0.uq[0] == 0xc3db9ad675a26f7cULL && result0.uq[1] == 0x1384704a229c5d7fULL ) 1159 { 1160 printf("pclmulqdq_25 ... ok\n"); 1161 } 1162 else 1163 { 1164 printf("pclmulqdq_25 ... not ok\n"); 1165 printf(" result0.uq[0] = %llu (expected %llu)\n", result0.uq[0], 0xc3db9ad675a26f7cULL); 1166 printf(" result0.uq[1] = %llu (expected %llu)\n", result0.uq[1], 0x1384704a229c5d7fULL); 1167 } 1168 } 1169 else 1170 { 1171 printf("pclmulqdq_25 ... failed\n"); 1172 } 1173 1174 return; 1175 } 1176 1177 static void pclmulqdq_26(void) 1178 { 1179 reg128_t arg1 = { .uq = { 0xeae8256079724f57ULL, 0xb57412b11366e698ULL } }; 1180 reg128_t arg2 = { .uq = { 0x5aba09596861323bULL, 0xed5d04ad9ade580eULL } }; 1181 reg128_t result0; 1182 char state[108]; 1183 1184 if (sigsetjmp(catchpoint, 1) == 0) 1185 { 1186 asm( 1187 "ffree %%st(7)\n" 1188 "ffree %%st(6)\n" 1189 "ffree %%st(5)\n" 1190 "ffree %%st(4)\n" 1191 "movlps 0+%0, %%xmm12\n" 1192 "movhps 8+%0, %%xmm12\n" 1193 "movlps 0+%1, %%xmm13\n" 1194 "movhps 8+%1, %%xmm13\n" 1195 "pclmulqdq $1, %%xmm12, %%xmm13\n" 1196 "movlps %%xmm13, 0+%2\n" 1197 "movhps %%xmm13, 8+%2\n" 1198 : 1199 : "m" (arg1), "m" (arg2), "m" (result0), "m" (state[0]) 1200 : "xmm12", "xmm13" 1201 ); 1202 1203 if (result0.uq[0] == 0x631d20044d9fd14aULL && result0.uq[1] == 0x56b5179ab8f1355fULL ) 1204 { 1205 printf("pclmulqdq_26 ... ok\n"); 1206 } 1207 else 1208 { 1209 printf("pclmulqdq_26 ... not ok\n"); 1210 printf(" result0.uq[0] = %llu (expected %llu)\n", result0.uq[0], 0x631d20044d9fd14aULL); 1211 printf(" result0.uq[1] = %llu (expected %llu)\n", result0.uq[1], 0x56b5179ab8f1355fULL); 1212 } 1213 } 1214 else 1215 { 1216 printf("pclmulqdq_26 ... failed\n"); 1217 } 1218 1219 return; 1220 } 1221 1222 static void pclmulqdq_27(void) 1223 { 1224 reg128_t arg1 = { .uq = { 0x76ae8257ac1ceaf6ULL, 0x3b57412cb4bc346aULL } }; 1225 reg128_t arg2 = { .uq = { 0x1daba097390bd924ULL, 0x0ed5d04c7b33ab81ULL } }; 1226 reg128_t result0; 1227 char state[108]; 1228 1229 if (sigsetjmp(catchpoint, 1) == 0) 1230 { 1231 asm( 1232 "ffree %%st(7)\n" 1233 "ffree %%st(6)\n" 1234 "ffree %%st(5)\n" 1235 "ffree %%st(4)\n" 1236 "movlps 0+%0, %%xmm12\n" 1237 "movhps 8+%0, %%xmm12\n" 1238 "movlps 0+%1, %%xmm13\n" 1239 "movhps 8+%1, %%xmm13\n" 1240 "pclmulqdq $16, %%xmm12, %%xmm13\n" 1241 "movlps %%xmm13, 0+%2\n" 1242 "movhps %%xmm13, 8+%2\n" 1243 : 1244 : "m" (arg1), "m" (arg2), "m" (result0), "m" (state[0]) 1245 : "xmm12", "xmm13" 1246 ); 1247 1248 if (result0.uq[0] == 0x43140ac0e96646e8ULL && result0.uq[1] == 0x02a2888abaa8a737ULL ) 1249 { 1250 printf("pclmulqdq_27 ... ok\n"); 1251 } 1252 else 1253 { 1254 printf("pclmulqdq_27 ... not ok\n"); 1255 printf(" result0.uq[0] = %llu (expected %llu)\n", result0.uq[0], 0x43140ac0e96646e8ULL); 1256 printf(" result0.uq[1] = %llu (expected %llu)\n", result0.uq[1], 0x02a2888abaa8a737ULL); 1257 } 1258 } 1259 else 1260 { 1261 printf("pclmulqdq_27 ... failed\n"); 1262 } 1263 1264 return; 1265 } 1266 1267 static void pclmulqdq_28(void) 1268 { 1269 reg128_t arg1 = { .uq = { 0xc76ae827144794b1ULL, 0xa3b5741460d18949ULL } }; 1270 reg128_t arg2 = { .uq = { 0x91daba0b17168395ULL, 0x88ed5d06623900b7ULL } }; 1271 reg128_t result0; 1272 char state[108]; 1273 1274 if (sigsetjmp(catchpoint, 1) == 0) 1275 { 1276 asm( 1277 "ffree %%st(7)\n" 1278 "ffree %%st(6)\n" 1279 "ffree %%st(5)\n" 1280 "ffree %%st(4)\n" 1281 "movlps 0+%0, %%xmm12\n" 1282 "movhps 8+%0, %%xmm12\n" 1283 "movlps 0+%1, %%xmm13\n" 1284 "movhps 8+%1, %%xmm13\n" 1285 "pclmulqdq $17, %%xmm12, %%xmm13\n" 1286 "movlps %%xmm13, 0+%2\n" 1287 "movhps %%xmm13, 8+%2\n" 1288 : 1289 : "m" (arg1), "m" (arg2), "m" (result0), "m" (state[0]) 1290 : "xmm12", "xmm13" 1291 ); 1292 1293 if (result0.uq[0] == 0x84dbc63cd168a7cfULL && result0.uq[1] == 0x54ad45cd2f140103ULL ) 1294 { 1295 printf("pclmulqdq_28 ... ok\n"); 1296 } 1297 else 1298 { 1299 printf("pclmulqdq_28 ... not ok\n"); 1300 printf(" result0.uq[0] = %llu (expected %llu)\n", result0.uq[0], 0x84dbc63cd168a7cfULL); 1301 printf(" result0.uq[1] = %llu (expected %llu)\n", result0.uq[1], 0x54ad45cd2f140103ULL); 1302 } 1303 } 1304 else 1305 { 1306 printf("pclmulqdq_28 ... failed\n"); 1307 } 1308 1309 return; 1310 } 1311 1312 static void pclmulqdq_29(void) 1313 { 1314 reg128_t arg1 = { .uq = { 0x8476ae8417ca3f48ULL, 0x423b5742ea92de93ULL } }; 1315 reg128_t arg2 = { .uq = { 0xe11daba25bf72e3aULL, 0x708ed5d20ca9560cULL } }; 1316 reg128_t result0; 1317 char state[108]; 1318 1319 if (sigsetjmp(catchpoint, 1) == 0) 1320 { 1321 asm( 1322 "ffree %%st(7)\n" 1323 "ffree %%st(6)\n" 1324 "ffree %%st(5)\n" 1325 "ffree %%st(4)\n" 1326 "movlps 0+%1, %%xmm13\n" 1327 "movhps 8+%1, %%xmm13\n" 1328 "pclmulqdq $0, %0, %%xmm13\n" 1329 "movlps %%xmm13, 0+%2\n" 1330 "movhps %%xmm13, 8+%2\n" 1331 : 1332 : "m" (arg1), "m" (arg2), "m" (result0), "m" (state[0]) 1333 : "xmm12", "xmm13" 1334 ); 1335 1336 if (result0.uq[0] == 0x2f6fd6d371c96950ULL && result0.uq[1] == 0x7322f9a7bdfbf7ceULL ) 1337 { 1338 printf("pclmulqdq_29 ... ok\n"); 1339 } 1340 else 1341 { 1342 printf("pclmulqdq_29 ... not ok\n"); 1343 printf(" result0.uq[0] = %llu (expected %llu)\n", result0.uq[0], 0x2f6fd6d371c96950ULL); 1344 printf(" result0.uq[1] = %llu (expected %llu)\n", result0.uq[1], 0x7322f9a7bdfbf7ceULL); 1345 } 1346 } 1347 else 1348 { 1349 printf("pclmulqdq_29 ... failed\n"); 1350 } 1351 1352 return; 1353 } 1354 1355 static void pclmulqdq_30(void) 1356 { 1357 reg128_t arg1 = { .uq = { 0x38476ae9e50269f5ULL, 0xdc23b575d92ef3e7ULL } }; 1358 reg128_t arg2 = { .uq = { 0xae11dabbc34538e0ULL, 0x5708ed5ec0505b5fULL } }; 1359 reg128_t result0; 1360 char state[108]; 1361 1362 if (sigsetjmp(catchpoint, 1) == 0) 1363 { 1364 asm( 1365 "ffree %%st(7)\n" 1366 "ffree %%st(6)\n" 1367 "ffree %%st(5)\n" 1368 "ffree %%st(4)\n" 1369 "movlps 0+%1, %%xmm13\n" 1370 "movhps 8+%1, %%xmm13\n" 1371 "pclmulqdq $1, %0, %%xmm13\n" 1372 "movlps %%xmm13, 0+%2\n" 1373 "movhps %%xmm13, 8+%2\n" 1374 : 1375 : "m" (arg1), "m" (arg2), "m" (result0), "m" (state[0]) 1376 : "xmm12", "xmm13" 1377 ); 1378 1379 if (result0.uq[0] == 0x36ab4b9f08a71773ULL && result0.uq[1] == 0x0d3dae161adae679ULL ) 1380 { 1381 printf("pclmulqdq_30 ... ok\n"); 1382 } 1383 else 1384 { 1385 printf("pclmulqdq_30 ... not ok\n"); 1386 printf(" result0.uq[0] = %llu (expected %llu)\n", result0.uq[0], 0x36ab4b9f08a71773ULL); 1387 printf(" result0.uq[1] = %llu (expected %llu)\n", result0.uq[1], 0x0d3dae161adae679ULL); 1388 } 1389 } 1390 else 1391 { 1392 printf("pclmulqdq_30 ... failed\n"); 1393 } 1394 1395 return; 1396 } 1397 1398 static void pclmulqdq_31(void) 1399 { 1400 reg128_t arg1 = { .uq = { 0xeb8476b046d5ec9cULL, 0x75c23b590218b53dULL } }; 1401 reg128_t arg2 = { .uq = { 0xfae11dad67ba198bULL, 0xbd708ed79a8acbb6ULL } }; 1402 reg128_t result0; 1403 char state[108]; 1404 1405 if (sigsetjmp(catchpoint, 1) == 0) 1406 { 1407 asm( 1408 "ffree %%st(7)\n" 1409 "ffree %%st(6)\n" 1410 "ffree %%st(5)\n" 1411 "ffree %%st(4)\n" 1412 "movlps 0+%1, %%xmm13\n" 1413 "movhps 8+%1, %%xmm13\n" 1414 "pclmulqdq $16, %0, %%xmm13\n" 1415 "movlps %%xmm13, 0+%2\n" 1416 "movhps %%xmm13, 8+%2\n" 1417 : 1418 : "m" (arg1), "m" (arg2), "m" (result0), "m" (state[0]) 1419 : "xmm12", "xmm13" 1420 ); 1421 1422 if (result0.uq[0] == 0x90ab3040b69bed2fULL && result0.uq[1] == 0x2d193b789ecdb8bfULL ) 1423 { 1424 printf("pclmulqdq_31 ... ok\n"); 1425 } 1426 else 1427 { 1428 printf("pclmulqdq_31 ... not ok\n"); 1429 printf(" result0.uq[0] = %llu (expected %llu)\n", result0.uq[0], 0x90ab3040b69bed2fULL); 1430 printf(" result0.uq[1] = %llu (expected %llu)\n", result0.uq[1], 0x2d193b789ecdb8bfULL); 1431 } 1432 } 1433 else 1434 { 1435 printf("pclmulqdq_31 ... failed\n"); 1436 } 1437 1438 return; 1439 } 1440 1441 static void pclmulqdq_32(void) 1442 { 1443 reg128_t arg1 = { .uq = { 0x5eb8476cabf324caULL, 0x2f5c23b734a75154ULL } }; 1444 reg128_t arg2 = { .uq = { 0x17ae11dc79016799ULL, 0xcbd708ef132e72bdULL } }; 1445 reg128_t result0; 1446 char state[108]; 1447 1448 if (sigsetjmp(catchpoint, 1) == 0) 1449 { 1450 asm( 1451 "ffree %%st(7)\n" 1452 "ffree %%st(6)\n" 1453 "ffree %%st(5)\n" 1454 "ffree %%st(4)\n" 1455 "movlps 0+%1, %%xmm13\n" 1456 "movhps 8+%1, %%xmm13\n" 1457 "pclmulqdq $17, %0, %%xmm13\n" 1458 "movlps %%xmm13, 0+%2\n" 1459 "movhps %%xmm13, 8+%2\n" 1460 : 1461 : "m" (arg1), "m" (arg2), "m" (result0), "m" (state[0]) 1462 : "xmm12", "xmm13" 1463 ); 1464 1465 if (result0.uq[0] == 0x58394f2a30276364ULL && result0.uq[1] == 0x1d6c5d6217d64627ULL ) 1466 { 1467 printf("pclmulqdq_32 ... ok\n"); 1468 } 1469 else 1470 { 1471 printf("pclmulqdq_32 ... not ok\n"); 1472 printf(" result0.uq[0] = %llu (expected %llu)\n", result0.uq[0], 0x58394f2a30276364ULL); 1473 printf(" result0.uq[1] = %llu (expected %llu)\n", result0.uq[1], 0x1d6c5d6217d64627ULL); 1474 } 1475 } 1476 else 1477 { 1478 printf("pclmulqdq_32 ... failed\n"); 1479 } 1480 1481 return; 1482 } 1483 1484 static void pclmulqdq_33(void) 1485 { 1486 reg128_t arg1 = { .uq = { 0xa5eb84786044f84bULL, 0x92f5c23d16d03b16ULL } }; 1487 reg128_t arg2 = { .uq = { 0x497ae11f6a15dc7aULL, 0x24bd709093b8ad2cULL } }; 1488 reg128_t result0; 1489 char state[108]; 1490 1491 if (sigsetjmp(catchpoint, 1) == 0) 1492 { 1493 asm( 1494 "ffree %%st(7)\n" 1495 "ffree %%st(6)\n" 1496 "ffree %%st(5)\n" 1497 "ffree %%st(4)\n" 1498 "movlps 0+%0, %%xmm12\n" 1499 "movhps 8+%0, %%xmm12\n" 1500 "movlps 0+%1, %%xmm13\n" 1501 "movhps 8+%1, %%xmm13\n" 1502 "pclmulqdq $0, %%xmm12, %%xmm13\n" 1503 "movlps %%xmm13, 0+%2\n" 1504 "movhps %%xmm13, 8+%2\n" 1505 : 1506 : "m" (arg1), "m" (arg2), "m" (result0), "m" (state[0]) 1507 : "xmm12", "xmm13" 1508 ); 1509 1510 if (result0.uq[0] == 0xa19f5f3d150729deULL && result0.uq[1] == 0x2cc3c480d7262702ULL ) 1511 { 1512 printf("pclmulqdq_33 ... ok\n"); 1513 } 1514 else 1515 { 1516 printf("pclmulqdq_33 ... not ok\n"); 1517 printf(" result0.uq[0] = %llu (expected %llu)\n", result0.uq[0], 0xa19f5f3d150729deULL); 1518 printf(" result0.uq[1] = %llu (expected %llu)\n", result0.uq[1], 0x2cc3c480d7262702ULL); 1519 } 1520 } 1521 else 1522 { 1523 printf("pclmulqdq_33 ... failed\n"); 1524 } 1525 1526 return; 1527 } 1528 1529 static void pclmulqdq_34(void) 1530 { 1531 reg128_t arg1 = { .uq = { 0x125eb849288a1585ULL, 0xc92f5c257af2c9afULL } }; 1532 reg128_t arg2 = { .uq = { 0xa497ae13942723c4ULL, 0x524bd70aa8c150d1ULL } }; 1533 reg128_t result0; 1534 char state[108]; 1535 1536 if (sigsetjmp(catchpoint, 1) == 0) 1537 { 1538 asm( 1539 "ffree %%st(7)\n" 1540 "ffree %%st(6)\n" 1541 "ffree %%st(5)\n" 1542 "ffree %%st(4)\n" 1543 "movlps 0+%0, %%xmm12\n" 1544 "movhps 8+%0, %%xmm12\n" 1545 "movlps 0+%1, %%xmm13\n" 1546 "movhps 8+%1, %%xmm13\n" 1547 "pclmulqdq $1, %%xmm12, %%xmm13\n" 1548 "movlps %%xmm13, 0+%2\n" 1549 "movhps %%xmm13, 8+%2\n" 1550 : 1551 : "m" (arg1), "m" (arg2), "m" (result0), "m" (state[0]) 1552 : "xmm12", "xmm13" 1553 ); 1554 1555 if (result0.uq[0] == 0xd86609565dd8fe15ULL && result0.uq[1] == 0x0592c7bc6f0bff4bULL ) 1556 { 1557 printf("pclmulqdq_34 ... ok\n"); 1558 } 1559 else 1560 { 1561 printf("pclmulqdq_34 ... not ok\n"); 1562 printf(" result0.uq[0] = %llu (expected %llu)\n", result0.uq[0], 0xd86609565dd8fe15ULL); 1563 printf(" result0.uq[1] = %llu (expected %llu)\n", result0.uq[1], 0x0592c7bc6f0bff4bULL); 1564 } 1565 } 1566 else 1567 { 1568 printf("pclmulqdq_34 ... failed\n"); 1569 } 1570 1571 return; 1572 } 1573 1574 static void pclmulqdq_35(void) 1575 { 1576 reg128_t arg1 = { .uq = { 0xe925eb863b0e6759ULL, 0xb492f5c3f434f29dULL } }; 1577 reg128_t arg2 = { .uq = { 0x9a497ae2d0c8383bULL, 0x8d24bd723f11db0eULL } }; 1578 reg128_t result0; 1579 char state[108]; 1580 1581 if (sigsetjmp(catchpoint, 1) == 0) 1582 { 1583 asm( 1584 "ffree %%st(7)\n" 1585 "ffree %%st(6)\n" 1586 "ffree %%st(5)\n" 1587 "ffree %%st(4)\n" 1588 "movlps 0+%0, %%xmm12\n" 1589 "movhps 8+%0, %%xmm12\n" 1590 "movlps 0+%1, %%xmm13\n" 1591 "movhps 8+%1, %%xmm13\n" 1592 "pclmulqdq $16, %%xmm12, %%xmm13\n" 1593 "movlps %%xmm13, 0+%2\n" 1594 "movhps %%xmm13, 8+%2\n" 1595 : 1596 : "m" (arg1), "m" (arg2), "m" (result0), "m" (state[0]) 1597 : "xmm12", "xmm13" 1598 ); 1599 1600 if (result0.uq[0] == 0x5a7c0b0663ed613fULL && result0.uq[1] == 0x55e5e712e20a7f3dULL ) 1601 { 1602 printf("pclmulqdq_35 ... ok\n"); 1603 } 1604 else 1605 { 1606 printf("pclmulqdq_35 ... not ok\n"); 1607 printf(" result0.uq[0] = %llu (expected %llu)\n", result0.uq[0], 0x5a7c0b0663ed613fULL); 1608 printf(" result0.uq[1] = %llu (expected %llu)\n", result0.uq[1], 0x55e5e712e20a7f3dULL); 1609 } 1610 } 1611 else 1612 { 1613 printf("pclmulqdq_35 ... failed\n"); 1614 } 1615 1616 return; 1617 } 1618 1619 static void pclmulqdq_36(void) 1620 { 1621 reg128_t arg1 = { .uq = { 0x46925eb9fe36ac76ULL, 0x23492f5dddc9152aULL } }; 1622 reg128_t arg2 = { .uq = { 0x11a497afcd924984ULL, 0x08d24bd8c576e3b1ULL } }; 1623 reg128_t result0; 1624 char state[108]; 1625 1626 if (sigsetjmp(catchpoint, 1) == 0) 1627 { 1628 asm( 1629 "ffree %%st(7)\n" 1630 "ffree %%st(6)\n" 1631 "ffree %%st(5)\n" 1632 "ffree %%st(4)\n" 1633 "movlps 0+%0, %%xmm12\n" 1634 "movhps 8+%0, %%xmm12\n" 1635 "movlps 0+%1, %%xmm13\n" 1636 "movhps 8+%1, %%xmm13\n" 1637 "pclmulqdq $17, %%xmm12, %%xmm13\n" 1638 "movlps %%xmm13, 0+%2\n" 1639 "movhps %%xmm13, 8+%2\n" 1640 : 1641 : "m" (arg1), "m" (arg2), "m" (result0), "m" (state[0]) 1642 : "xmm12", "xmm13" 1643 ); 1644 1645 if (result0.uq[0] == 0x64d528322b29c9caULL && result0.uq[1] == 0x01014411a41cd8f9ULL ) 1646 { 1647 printf("pclmulqdq_36 ... ok\n"); 1648 } 1649 else 1650 { 1651 printf("pclmulqdq_36 ... not ok\n"); 1652 printf(" result0.uq[0] = %llu (expected %llu)\n", result0.uq[0], 0x64d528322b29c9caULL); 1653 printf(" result0.uq[1] = %llu (expected %llu)\n", result0.uq[1], 0x01014411a41cd8f9ULL); 1654 } 1655 } 1656 else 1657 { 1658 printf("pclmulqdq_36 ... failed\n"); 1659 } 1660 1661 return; 1662 } 1663 1664 static void pclmulqdq_37(void) 1665 { 1666 reg128_t arg1 = { .uq = { 0xc46925ed496930c9ULL, 0xa23492f78b625755ULL } }; 1667 reg128_t arg2 = { .uq = { 0x911a497cac5eea97ULL, 0x888d24bf3cdd3438ULL } }; 1668 reg128_t result0; 1669 char state[108]; 1670 1671 if (sigsetjmp(catchpoint, 1) == 0) 1672 { 1673 asm( 1674 "ffree %%st(7)\n" 1675 "ffree %%st(6)\n" 1676 "ffree %%st(5)\n" 1677 "ffree %%st(4)\n" 1678 "movlps 0+%1, %%xmm13\n" 1679 "movhps 8+%1, %%xmm13\n" 1680 "pclmulqdq $0, %0, %%xmm13\n" 1681 "movlps %%xmm13, 0+%2\n" 1682 "movhps %%xmm13, 8+%2\n" 1683 : 1684 : "m" (arg1), "m" (arg2), "m" (result0), "m" (state[0]) 1685 : "xmm12", "xmm13" 1686 ); 1687 1688 if (result0.uq[0] == 0x9ee57eac6392c06fULL && result0.uq[1] == 0x6ebdb35952de298bULL ) 1689 { 1690 printf("pclmulqdq_37 ... ok\n"); 1691 } 1692 else 1693 { 1694 printf("pclmulqdq_37 ... not ok\n"); 1695 printf(" result0.uq[0] = %llu (expected %llu)\n", result0.uq[0], 0x9ee57eac6392c06fULL); 1696 printf(" result0.uq[1] = %llu (expected %llu)\n", result0.uq[1], 0x6ebdb35952de298bULL); 1697 } 1698 } 1699 else 1700 { 1701 printf("pclmulqdq_37 ... failed\n"); 1702 } 1703 1704 return; 1705 } 1706 1707 static void pclmulqdq_38(void) 1708 { 1709 reg128_t arg1 = { .uq = { 0x444692607d1c590bULL, 0xe2234931153beb76ULL } }; 1710 reg128_t arg2 = { .uq = { 0x7111a499694bb4aaULL, 0x3888d24d93539944ULL } }; 1711 reg128_t result0; 1712 char state[108]; 1713 1714 if (sigsetjmp(catchpoint, 1) == 0) 1715 { 1716 asm( 1717 "ffree %%st(7)\n" 1718 "ffree %%st(6)\n" 1719 "ffree %%st(5)\n" 1720 "ffree %%st(4)\n" 1721 "movlps 0+%1, %%xmm13\n" 1722 "movhps 8+%1, %%xmm13\n" 1723 "pclmulqdq $1, %0, %%xmm13\n" 1724 "movlps %%xmm13, 0+%2\n" 1725 "movhps %%xmm13, 8+%2\n" 1726 : 1727 : "m" (arg1), "m" (arg2), "m" (result0), "m" (state[0]) 1728 : "xmm12", "xmm13" 1729 ); 1730 1731 if (result0.uq[0] == 0xe76d06e2b08e45ecULL && result0.uq[1] == 0x0eceb968e17faa1fULL ) 1732 { 1733 printf("pclmulqdq_38 ... ok\n"); 1734 } 1735 else 1736 { 1737 printf("pclmulqdq_38 ... not ok\n"); 1738 printf(" result0.uq[0] = %llu (expected %llu)\n", result0.uq[0], 0xe76d06e2b08e45ecULL); 1739 printf(" result0.uq[1] = %llu (expected %llu)\n", result0.uq[1], 0x0eceb968e17faa1fULL); 1740 } 1741 } 1742 else 1743 { 1744 printf("pclmulqdq_38 ... failed\n"); 1745 } 1746 1747 return; 1748 } 1749 1750 static void pclmulqdq_39(void) 1751 { 1752 reg128_t arg1 = { .uq = { 0x1c446927a8578b91ULL, 0xce223494bad984b9ULL } }; 1753 reg128_t arg2 = { .uq = { 0xa7111a4b341a814dULL, 0x93888d2670baff93ULL } }; 1754 reg128_t result0; 1755 char state[108]; 1756 1757 if (sigsetjmp(catchpoint, 1) == 0) 1758 { 1759 asm( 1760 "ffree %%st(7)\n" 1761 "ffree %%st(6)\n" 1762 "ffree %%st(5)\n" 1763 "ffree %%st(4)\n" 1764 "movlps 0+%1, %%xmm13\n" 1765 "movhps 8+%1, %%xmm13\n" 1766 "pclmulqdq $16, %0, %%xmm13\n" 1767 "movlps %%xmm13, 0+%2\n" 1768 "movhps %%xmm13, 8+%2\n" 1769 : 1770 : "m" (arg1), "m" (arg2), "m" (result0), "m" (state[0]) 1771 : "xmm12", "xmm13" 1772 ); 1773 1774 if (result0.uq[0] == 0x351bc2f119e0a4d5ULL && result0.uq[1] == 0x7cb3956d93a777bbULL ) 1775 { 1776 printf("pclmulqdq_39 ... ok\n"); 1777 } 1778 else 1779 { 1780 printf("pclmulqdq_39 ... not ok\n"); 1781 printf(" result0.uq[0] = %llu (expected %llu)\n", result0.uq[0], 0x351bc2f119e0a4d5ULL); 1782 printf(" result0.uq[1] = %llu (expected %llu)\n", result0.uq[1], 0x7cb3956d93a777bbULL); 1783 } 1784 } 1785 else 1786 { 1787 printf("pclmulqdq_39 ... failed\n"); 1788 } 1789 1790 return; 1791 } 1792 1793 static void pclmulqdq_40(void) 1794 { 1795 reg128_t arg1 = { .uq = { 0x89c446940f0b3ebaULL, 0x44e2234ae6335e4cULL } }; 1796 reg128_t arg2 = { .uq = { 0x227111a651c76e15ULL, 0xd13888d3ff9175f7ULL } }; 1797 reg128_t result0; 1798 char state[108]; 1799 1800 if (sigsetjmp(catchpoint, 1) == 0) 1801 { 1802 asm( 1803 "ffree %%st(7)\n" 1804 "ffree %%st(6)\n" 1805 "ffree %%st(5)\n" 1806 "ffree %%st(4)\n" 1807 "movlps 0+%1, %%xmm13\n" 1808 "movhps 8+%1, %%xmm13\n" 1809 "pclmulqdq $17, %0, %%xmm13\n" 1810 "movlps %%xmm13, 0+%2\n" 1811 "movhps %%xmm13, 8+%2\n" 1812 : 1813 : "m" (arg1), "m" (arg2), "m" (result0), "m" (state[0]) 1814 : "xmm12", "xmm13" 1815 ); 1816 1817 if (result0.uq[0] == 0x52b883d7adab3fa4ULL && result0.uq[1] == 0x374d8c769fd3cfd2ULL ) 1818 { 1819 printf("pclmulqdq_40 ... ok\n"); 1820 } 1821 else 1822 { 1823 printf("pclmulqdq_40 ... not ok\n"); 1824 printf(" result0.uq[0] = %llu (expected %llu)\n", result0.uq[0], 0x52b883d7adab3fa4ULL); 1825 printf(" result0.uq[1] = %llu (expected %llu)\n", result0.uq[1], 0x374d8c769fd3cfd2ULL); 1826 } 1827 } 1828 else 1829 { 1830 printf("pclmulqdq_40 ... failed\n"); 1831 } 1832 1833 return; 1834 } 1835 1836 static void pclmulqdq_41(void) 1837 { 1838 reg128_t arg1 = { .uq = { 0xa89c446ad67679e8ULL, 0x544e223649e8fbe3ULL } }; 1839 reg128_t arg2 = { .uq = { 0xea27111c0ba23ce2ULL, 0x7513888ee47edd60ULL } }; 1840 reg128_t result0; 1841 char state[108]; 1842 1843 if (sigsetjmp(catchpoint, 1) == 0) 1844 { 1845 asm( 1846 "ffree %%st(7)\n" 1847 "ffree %%st(6)\n" 1848 "ffree %%st(5)\n" 1849 "ffree %%st(4)\n" 1850 "movlps 0+%0, %%xmm12\n" 1851 "movhps 8+%0, %%xmm12\n" 1852 "movlps 0+%1, %%xmm13\n" 1853 "movhps 8+%1, %%xmm13\n" 1854 "pclmulqdq $0, %%xmm12, %%xmm13\n" 1855 "movlps %%xmm13, 0+%2\n" 1856 "movhps %%xmm13, 8+%2\n" 1857 : 1858 : "m" (arg1), "m" (arg2), "m" (result0), "m" (state[0]) 1859 : "xmm12", "xmm13" 1860 ); 1861 1862 if (result0.uq[0] == 0x71258e2844da20d0ULL && result0.uq[1] == 0x6f79237864913e89ULL ) 1863 { 1864 printf("pclmulqdq_41 ... ok\n"); 1865 } 1866 else 1867 { 1868 printf("pclmulqdq_41 ... not ok\n"); 1869 printf(" result0.uq[0] = %llu (expected %llu)\n", result0.uq[0], 0x71258e2844da20d0ULL); 1870 printf(" result0.uq[1] = %llu (expected %llu)\n", result0.uq[1], 0x6f79237864913e89ULL); 1871 } 1872 } 1873 else 1874 { 1875 printf("pclmulqdq_41 ... failed\n"); 1876 } 1877 1878 return; 1879 } 1880 1881 static void pclmulqdq_42(void) 1882 { 1883 reg128_t arg1 = { .uq = { 0x3a89c44850ed2d9fULL, 0xdd44e224ff2455bcULL } }; 1884 reg128_t arg2 = { .uq = { 0x6ea271135e3fe9cdULL, 0xf751388a85cdb3d3ULL } }; 1885 reg128_t result0; 1886 char state[108]; 1887 1888 if (sigsetjmp(catchpoint, 1) == 0) 1889 { 1890 asm( 1891 "ffree %%st(7)\n" 1892 "ffree %%st(6)\n" 1893 "ffree %%st(5)\n" 1894 "ffree %%st(4)\n" 1895 "movlps 0+%0, %%xmm12\n" 1896 "movhps 8+%0, %%xmm12\n" 1897 "movlps 0+%1, %%xmm13\n" 1898 "movhps 8+%1, %%xmm13\n" 1899 "pclmulqdq $1, %%xmm12, %%xmm13\n" 1900 "movlps %%xmm13, 0+%2\n" 1901 "movhps %%xmm13, 8+%2\n" 1902 : 1903 : "m" (arg1), "m" (arg2), "m" (result0), "m" (state[0]) 1904 : "xmm12", "xmm13" 1905 ); 1906 1907 if (result0.uq[0] == 0x0dce470a58b03611ULL && result0.uq[1] == 0x17b7bff3cae3b878ULL ) 1908 { 1909 printf("pclmulqdq_42 ... ok\n"); 1910 } 1911 else 1912 { 1913 printf("pclmulqdq_42 ... not ok\n"); 1914 printf(" result0.uq[0] = %llu (expected %llu)\n", result0.uq[0], 0x0dce470a58b03611ULL); 1915 printf(" result0.uq[1] = %llu (expected %llu)\n", result0.uq[1], 0x17b7bff3cae3b878ULL); 1916 } 1917 } 1918 else 1919 { 1920 printf("pclmulqdq_42 ... failed\n"); 1921 } 1922 1923 return; 1924 } 1925 1926 static void pclmulqdq_43(void) 1927 { 1928 reg128_t arg1 = { .uq = { 0xbba89c46299498daULL, 0x5dd44e23f3780b5cULL } }; 1929 reg128_t arg2 = { .uq = { 0x2eea2712d869c49dULL, 0xd775138a42e2a13bULL } }; 1930 reg128_t result0; 1931 char state[108]; 1932 1933 if (sigsetjmp(catchpoint, 1) == 0) 1934 { 1935 asm( 1936 "ffree %%st(7)\n" 1937 "ffree %%st(6)\n" 1938 "ffree %%st(5)\n" 1939 "ffree %%st(4)\n" 1940 "movlps 0+%0, %%xmm12\n" 1941 "movhps 8+%0, %%xmm12\n" 1942 "movlps 0+%1, %%xmm13\n" 1943 "movhps 8+%1, %%xmm13\n" 1944 "pclmulqdq $16, %%xmm12, %%xmm13\n" 1945 "movlps %%xmm13, 0+%2\n" 1946 "movhps %%xmm13, 8+%2\n" 1947 : 1948 : "m" (arg1), "m" (arg2), "m" (result0), "m" (state[0]) 1949 : "xmm12", "xmm13" 1950 ); 1951 1952 if (result0.uq[0] == 0x8e66578f04b5170cULL && result0.uq[1] == 0x08a8a888e58cdcd5ULL ) 1953 { 1954 printf("pclmulqdq_43 ... ok\n"); 1955 } 1956 else 1957 { 1958 printf("pclmulqdq_43 ... not ok\n"); 1959 printf(" result0.uq[0] = %llu (expected %llu)\n", result0.uq[0], 0x8e66578f04b5170cULL); 1960 printf(" result0.uq[1] = %llu (expected %llu)\n", result0.uq[1], 0x08a8a888e58cdcd5ULL); 1961 } 1962 } 1963 else 1964 { 1965 printf("pclmulqdq_43 ... failed\n"); 1966 } 1967 1968 return; 1969 } 1970 1971 static void pclmulqdq_44(void) 1972 { 1973 reg128_t arg1 = { .uq = { 0xabba89c6081f0f8eULL, 0x55dd44e3e2bd46b6ULL } }; 1974 reg128_t arg2 = { .uq = { 0x2aeea272d00c624aULL, 0x1577513a46b3f014ULL } }; 1975 reg128_t result0; 1976 char state[108]; 1977 1978 if (sigsetjmp(catchpoint, 1) == 0) 1979 { 1980 asm( 1981 "ffree %%st(7)\n" 1982 "ffree %%st(6)\n" 1983 "ffree %%st(5)\n" 1984 "ffree %%st(4)\n" 1985 "movlps 0+%0, %%xmm12\n" 1986 "movhps 8+%0, %%xmm12\n" 1987 "movlps 0+%1, %%xmm13\n" 1988 "movhps 8+%1, %%xmm13\n" 1989 "pclmulqdq $17, %%xmm12, %%xmm13\n" 1990 "movlps %%xmm13, 0+%2\n" 1991 "movhps %%xmm13, 8+%2\n" 1992 : 1993 : "m" (arg1), "m" (arg2), "m" (result0), "m" (state[0]) 1994 : "xmm12", "xmm13" 1995 ); 1996 1997 if (result0.uq[0] == 0x00039e62361051b8ULL && result0.uq[1] == 0x04445454c9e2e3b4ULL ) 1998 { 1999 printf("pclmulqdq_44 ... ok\n"); 2000 } 2001 else 2002 { 2003 printf("pclmulqdq_44 ... not ok\n"); 2004 printf(" result0.uq[0] = %llu (expected %llu)\n", result0.uq[0], 0x00039e62361051b8ULL); 2005 printf(" result0.uq[1] = %llu (expected %llu)\n", result0.uq[1], 0x04445454c9e2e3b4ULL); 2006 } 2007 } 2008 else 2009 { 2010 printf("pclmulqdq_44 ... failed\n"); 2011 } 2012 2013 return; 2014 } 2015 2016 static void pclmulqdq_45(void) 2017 { 2018 reg128_t arg1 = { .uq = { 0x0abba89e0207b6f9ULL, 0xc55dd44fe7b19a6dULL } }; 2019 reg128_t arg2 = { .uq = { 0xa2aeea28da868c23ULL, 0x9157751543f10502ULL } }; 2020 reg128_t result0; 2021 char state[108]; 2022 2023 if (sigsetjmp(catchpoint, 1) == 0) 2024 { 2025 asm( 2026 "ffree %%st(7)\n" 2027 "ffree %%st(6)\n" 2028 "ffree %%st(5)\n" 2029 "ffree %%st(4)\n" 2030 "movlps 0+%1, %%xmm13\n" 2031 "movhps 8+%1, %%xmm13\n" 2032 "pclmulqdq $0, %0, %%xmm13\n" 2033 "movlps %%xmm13, 0+%2\n" 2034 "movhps %%xmm13, 8+%2\n" 2035 : 2036 : "m" (arg1), "m" (arg2), "m" (result0), "m" (state[0]) 2037 : "xmm12", "xmm13" 2038 ); 2039 2040 if (result0.uq[0] == 0xec91a12c1e78a82bULL && result0.uq[1] == 0x041bb00df2e9eeb3ULL ) 2041 { 2042 printf("pclmulqdq_45 ... ok\n"); 2043 } 2044 else 2045 { 2046 printf("pclmulqdq_45 ... not ok\n"); 2047 printf(" result0.uq[0] = %llu (expected %llu)\n", result0.uq[0], 0xec91a12c1e78a82bULL); 2048 printf(" result0.uq[1] = %llu (expected %llu)\n", result0.uq[1], 0x041bb00df2e9eeb3ULL); 2049 } 2050 } 2051 else 2052 { 2053 printf("pclmulqdq_45 ... failed\n"); 2054 } 2055 2056 return; 2057 } 2058 2059 static void pclmulqdq_46(void) 2060 { 2061 reg128_t arg1 = { .uq = { 0x48abba8b80a64170ULL, 0x2455dd469f00dfa7ULL } }; 2062 reg128_t arg2 = { .uq = { 0xd22aeea4262e2ec0ULL, 0x69157752f1c4d64fULL } }; 2063 reg128_t result0; 2064 char state[108]; 2065 2066 if (sigsetjmp(catchpoint, 1) == 0) 2067 { 2068 asm( 2069 "ffree %%st(7)\n" 2070 "ffree %%st(6)\n" 2071 "ffree %%st(5)\n" 2072 "ffree %%st(4)\n" 2073 "movlps 0+%1, %%xmm13\n" 2074 "movhps 8+%1, %%xmm13\n" 2075 "pclmulqdq $1, %0, %%xmm13\n" 2076 "movlps %%xmm13, 0+%2\n" 2077 "movhps %%xmm13, 8+%2\n" 2078 : 2079 : "m" (arg1), "m" (arg2), "m" (result0), "m" (state[0]) 2080 : "xmm12", "xmm13" 2081 ); 2082 2083 if (result0.uq[0] == 0x4570a9283f65b1d0ULL && result0.uq[1] == 0x1937917bc5469bf6ULL ) 2084 { 2085 printf("pclmulqdq_46 ... ok\n"); 2086 } 2087 else 2088 { 2089 printf("pclmulqdq_46 ... not ok\n"); 2090 printf(" result0.uq[0] = %llu (expected %llu)\n", result0.uq[0], 0x4570a9283f65b1d0ULL); 2091 printf(" result0.uq[1] = %llu (expected %llu)\n", result0.uq[1], 0x1937917bc5469bf6ULL); 2092 } 2093 } 2094 else 2095 { 2096 printf("pclmulqdq_46 ... failed\n"); 2097 } 2098 2099 return; 2100 } 2101 2102 static void pclmulqdq_47(void) 2103 { 2104 reg128_t arg1 = { .uq = { 0xf48abbaa4f902a14ULL, 0x7a455dd60675d3f9ULL } }; 2105 reg128_t arg2 = { .uq = { 0xfd22aeebe9e8a8edULL, 0xbe915776dba21363ULL } }; 2106 reg128_t result0; 2107 char state[108]; 2108 2109 if (sigsetjmp(catchpoint, 1) == 0) 2110 { 2111 asm( 2112 "ffree %%st(7)\n" 2113 "ffree %%st(6)\n" 2114 "ffree %%st(5)\n" 2115 "ffree %%st(4)\n" 2116 "movlps 0+%1, %%xmm13\n" 2117 "movhps 8+%1, %%xmm13\n" 2118 "pclmulqdq $16, %0, %%xmm13\n" 2119 "movlps %%xmm13, 0+%2\n" 2120 "movhps %%xmm13, 8+%2\n" 2121 : 2122 : "m" (arg1), "m" (arg2), "m" (result0), "m" (state[0]) 2123 : "xmm12", "xmm13" 2124 ); 2125 2126 if (result0.uq[0] == 0x9708dd208b1f1635ULL && result0.uq[1] == 0x2911f19625f63a33ULL ) 2127 { 2128 printf("pclmulqdq_47 ... ok\n"); 2129 } 2130 else 2131 { 2132 printf("pclmulqdq_47 ... not ok\n"); 2133 printf(" result0.uq[0] = %llu (expected %llu)\n", result0.uq[0], 0x9708dd208b1f1635ULL); 2134 printf(" result0.uq[1] = %llu (expected %llu)\n", result0.uq[1], 0x2911f19625f63a33ULL); 2135 } 2136 } 2137 else 2138 { 2139 printf("pclmulqdq_47 ... failed\n"); 2140 } 2141 2142 return; 2143 } 2144 2145 static void pclmulqdq_48(void) 2146 { 2147 reg128_t arg1 = { .uq = { 0x9f48abbc447ec8a2ULL, 0x4fa455df00ed2340ULL } }; 2148 reg128_t arg2 = { .uq = { 0x27d22af05f24508fULL, 0xd3e91579063fe734ULL } }; 2149 reg128_t result0; 2150 char state[108]; 2151 2152 if (sigsetjmp(catchpoint, 1) == 0) 2153 { 2154 asm( 2155 "ffree %%st(7)\n" 2156 "ffree %%st(6)\n" 2157 "ffree %%st(5)\n" 2158 "ffree %%st(4)\n" 2159 "movlps 0+%1, %%xmm13\n" 2160 "movhps 8+%1, %%xmm13\n" 2161 "pclmulqdq $17, %0, %%xmm13\n" 2162 "movlps %%xmm13, 0+%2\n" 2163 "movhps %%xmm13, 8+%2\n" 2164 : 2165 : "m" (arg1), "m" (arg2), "m" (result0), "m" (state[0]) 2166 : "xmm12", "xmm13" 2167 ); 2168 2169 if (result0.uq[0] == 0x9e438129c0f21100ULL && result0.uq[1] == 0x302e6e9fad692a63ULL ) 2170 { 2171 printf("pclmulqdq_48 ... ok\n"); 2172 } 2173 else 2174 { 2175 printf("pclmulqdq_48 ... not ok\n"); 2176 printf(" result0.uq[0] = %llu (expected %llu)\n", result0.uq[0], 0x9e438129c0f21100ULL); 2177 printf(" result0.uq[1] = %llu (expected %llu)\n", result0.uq[1], 0x302e6e9fad692a63ULL); 2178 } 2179 } 2180 else 2181 { 2182 printf("pclmulqdq_48 ... failed\n"); 2183 } 2184 2185 return; 2186 } 2187 2188 static void pclmulqdq_49(void) 2189 { 2190 reg128_t arg1 = { .uq = { 0x69f48abd61cdb289ULL, 0xf4fa455f97949835ULL } }; 2191 reg128_t arg2 = { .uq = { 0xba7d22b0a2780b07ULL, 0x9d3e915937e9c470ULL } }; 2192 reg128_t result0; 2193 char state[108]; 2194 2195 if (sigsetjmp(catchpoint, 1) == 0) 2196 { 2197 asm( 2198 "ffree %%st(7)\n" 2199 "ffree %%st(6)\n" 2200 "ffree %%st(5)\n" 2201 "ffree %%st(4)\n" 2202 "movlps 0+%0, %%xmm12\n" 2203 "movhps 8+%0, %%xmm12\n" 2204 "movlps 0+%1, %%xmm13\n" 2205 "movhps 8+%1, %%xmm13\n" 2206 "pclmulqdq $0, %%xmm12, %%xmm13\n" 2207 "movlps %%xmm13, 0+%2\n" 2208 "movhps %%xmm13, 8+%2\n" 2209 : 2210 : "m" (arg1), "m" (arg2), "m" (result0), "m" (state[0]) 2211 : "xmm12", "xmm13" 2212 ); 2213 2214 if (result0.uq[0] == 0x77453ab2e39bcebfULL && result0.uq[1] == 0x3cd48149e75425dcULL ) 2215 { 2216 printf("pclmulqdq_49 ... ok\n"); 2217 } 2218 else 2219 { 2220 printf("pclmulqdq_49 ... not ok\n"); 2221 printf(" result0.uq[0] = %llu (expected %llu)\n", result0.uq[0], 0x77453ab2e39bcebfULL); 2222 printf(" result0.uq[1] = %llu (expected %llu)\n", result0.uq[1], 0x3cd48149e75425dcULL); 2223 } 2224 } 2225 else 2226 { 2227 printf("pclmulqdq_49 ... failed\n"); 2228 } 2229 2230 return; 2231 } 2232 2233 static void pclmulqdq_50(void) 2234 { 2235 reg128_t arg1 = { .uq = { 0x4e9f48ad7aa2a127ULL, 0xe74fa45793ff0f80ULL } }; 2236 reg128_t arg2 = { .uq = { 0x73a7d22ca8ad46afULL, 0xf9d3e9173b046244ULL } }; 2237 reg128_t result0; 2238 char state[108]; 2239 2240 if (sigsetjmp(catchpoint, 1) == 0) 2241 { 2242 asm( 2243 "ffree %%st(7)\n" 2244 "ffree %%st(6)\n" 2245 "ffree %%st(5)\n" 2246 "ffree %%st(4)\n" 2247 "movlps 0+%0, %%xmm12\n" 2248 "movhps 8+%0, %%xmm12\n" 2249 "movlps 0+%1, %%xmm13\n" 2250 "movhps 8+%1, %%xmm13\n" 2251 "pclmulqdq $1, %%xmm12, %%xmm13\n" 2252 "movlps %%xmm13, 0+%2\n" 2253 "movhps %%xmm13, 8+%2\n" 2254 : 2255 : "m" (arg1), "m" (arg2), "m" (result0), "m" (state[0]) 2256 : "xmm12", "xmm13" 2257 ); 2258 2259 if (result0.uq[0] == 0x6e590e31be91a35cULL && result0.uq[1] == 0x3bd8e3c886ba7063ULL ) 2260 { 2261 printf("pclmulqdq_50 ... ok\n"); 2262 } 2263 else 2264 { 2265 printf("pclmulqdq_50 ... not ok\n"); 2266 printf(" result0.uq[0] = %llu (expected %llu)\n", result0.uq[0], 0x6e590e31be91a35cULL); 2267 printf(" result0.uq[1] = %llu (expected %llu)\n", result0.uq[1], 0x3bd8e3c886ba7063ULL); 2268 } 2269 } 2270 else 2271 { 2272 printf("pclmulqdq_50 ... failed\n"); 2273 } 2274 2275 return; 2276 } 2277 2278 static void pclmulqdq_51(void) 2279 { 2280 reg128_t arg1 = { .uq = { 0x7ce9f48c7c2ff011ULL, 0xfe74fa4714c5b6f9ULL } }; 2281 reg128_t arg2 = { .uq = { 0xbf3a7d2461109a6dULL, 0x9f9d3e9317360c23ULL } }; 2282 reg128_t result0; 2283 char state[108]; 2284 2285 if (sigsetjmp(catchpoint, 1) == 0) 2286 { 2287 asm( 2288 "ffree %%st(7)\n" 2289 "ffree %%st(6)\n" 2290 "ffree %%st(5)\n" 2291 "ffree %%st(4)\n" 2292 "movlps 0+%0, %%xmm12\n" 2293 "movhps 8+%0, %%xmm12\n" 2294 "movlps 0+%1, %%xmm13\n" 2295 "movhps 8+%1, %%xmm13\n" 2296 "pclmulqdq $16, %%xmm12, %%xmm13\n" 2297 "movlps %%xmm13, 0+%2\n" 2298 "movhps %%xmm13, 8+%2\n" 2299 : 2300 : "m" (arg1), "m" (arg2), "m" (result0), "m" (state[0]) 2301 : "xmm12", "xmm13" 2302 ); 2303 2304 if (result0.uq[0] == 0xd73226ad987c91b5ULL && result0.uq[1] == 0x6a0d4938c709c850ULL ) 2305 { 2306 printf("pclmulqdq_51 ... ok\n"); 2307 } 2308 else 2309 { 2310 printf("pclmulqdq_51 ... not ok\n"); 2311 printf(" result0.uq[0] = %llu (expected %llu)\n", result0.uq[0], 0xd73226ad987c91b5ULL); 2312 printf(" result0.uq[1] = %llu (expected %llu)\n", result0.uq[1], 0x6a0d4938c709c850ULL); 2313 } 2314 } 2315 else 2316 { 2317 printf("pclmulqdq_51 ... failed\n"); 2318 } 2319 2320 return; 2321 } 2322 2323 static void pclmulqdq_52(void) 2324 { 2325 reg128_t arg1 = { .uq = { 0x8fce9f4a6248c502ULL, 0x47e74fa60fd22170ULL } }; 2326 reg128_t arg2 = { .uq = { 0x23f3a7d3e696cfa7ULL, 0xd1f9d3ead9f926c0ULL } }; 2327 reg128_t result0; 2328 char state[108]; 2329 2330 if (sigsetjmp(catchpoint, 1) == 0) 2331 { 2332 asm( 2333 "ffree %%st(7)\n" 2334 "ffree %%st(6)\n" 2335 "ffree %%st(5)\n" 2336 "ffree %%st(4)\n" 2337 "movlps 0+%0, %%xmm12\n" 2338 "movhps 8+%0, %%xmm12\n" 2339 "movlps 0+%1, %%xmm13\n" 2340 "movhps 8+%1, %%xmm13\n" 2341 "pclmulqdq $17, %%xmm12, %%xmm13\n" 2342 "movlps %%xmm13, 0+%2\n" 2343 "movhps %%xmm13, 8+%2\n" 2344 : 2345 : "m" (arg1), "m" (arg2), "m" (result0), "m" (state[0]) 2346 : "xmm12", "xmm13" 2347 ); 2348 2349 if (result0.uq[0] == 0x098aae5ab281c400ULL && result0.uq[1] == 0x360f213f1f15053eULL ) 2350 { 2351 printf("pclmulqdq_52 ... ok\n"); 2352 } 2353 else 2354 { 2355 printf("pclmulqdq_52 ... not ok\n"); 2356 printf(" result0.uq[0] = %llu (expected %llu)\n", result0.uq[0], 0x098aae5ab281c400ULL); 2357 printf(" result0.uq[1] = %llu (expected %llu)\n", result0.uq[1], 0x360f213f1f15053eULL); 2358 } 2359 } 2360 else 2361 { 2362 printf("pclmulqdq_52 ... failed\n"); 2363 } 2364 2365 return; 2366 } 2367 2368 static void pclmulqdq_53(void) 2369 { 2370 reg128_t arg1 = { .uq = { 0x68fce9f64baa524fULL, 0xf47e74fc0c82e814ULL } }; 2371 reg128_t arg2 = { .uq = { 0x7a3f3a7ee4ef32f9ULL, 0xfd1f9d405925586dULL } }; 2372 reg128_t result0; 2373 char state[108]; 2374 2375 if (sigsetjmp(catchpoint, 1) == 0) 2376 { 2377 asm( 2378 "ffree %%st(7)\n" 2379 "ffree %%st(6)\n" 2380 "ffree %%st(5)\n" 2381 "ffree %%st(4)\n" 2382 "movlps 0+%1, %%xmm13\n" 2383 "movhps 8+%1, %%xmm13\n" 2384 "pclmulqdq $0, %0, %%xmm13\n" 2385 "movlps %%xmm13, 0+%2\n" 2386 "movhps %%xmm13, 8+%2\n" 2387 : 2388 : "m" (arg1), "m" (arg2), "m" (result0), "m" (state[0]) 2389 : "xmm12", "xmm13" 2390 ); 2391 2392 if (result0.uq[0] == 0xc7150c4a11569767ULL && result0.uq[1] == 0x1230b217e7562125ULL ) 2393 { 2394 printf("pclmulqdq_53 ... ok\n"); 2395 } 2396 else 2397 { 2398 printf("pclmulqdq_53 ... not ok\n"); 2399 printf(" result0.uq[0] = %llu (expected %llu)\n", result0.uq[0], 0xc7150c4a11569767ULL); 2400 printf(" result0.uq[1] = %llu (expected %llu)\n", result0.uq[1], 0x1230b217e7562125ULL); 2401 } 2402 } 2403 else 2404 { 2405 printf("pclmulqdq_53 ... failed\n"); 2406 } 2407 2408 return; 2409 } 2410 2411 static void pclmulqdq_54(void) 2412 { 2413 reg128_t arg1 = { .uq = { 0xbe8fcea103406b23ULL, 0x9f47e751684df482ULL } }; 2414 reg128_t arg2 = { .uq = { 0x4fa3f3a992d4b930ULL, 0x27d1f9d5a8181b87ULL } }; 2415 reg128_t result0; 2416 char state[108]; 2417 2418 if (sigsetjmp(catchpoint, 1) == 0) 2419 { 2420 asm( 2421 "ffree %%st(7)\n" 2422 "ffree %%st(6)\n" 2423 "ffree %%st(5)\n" 2424 "ffree %%st(4)\n" 2425 "movlps 0+%1, %%xmm13\n" 2426 "movhps 8+%1, %%xmm13\n" 2427 "pclmulqdq $1, %0, %%xmm13\n" 2428 "movlps %%xmm13, 0+%2\n" 2429 "movhps %%xmm13, 8+%2\n" 2430 : 2431 : "m" (arg1), "m" (arg2), "m" (result0), "m" (state[0]) 2432 : "xmm12", "xmm13" 2433 ); 2434 2435 if (result0.uq[0] == 0x7ec8d0bb7e8acd69ULL && result0.uq[1] == 0x14938d347e59462dULL ) 2436 { 2437 printf("pclmulqdq_54 ... ok\n"); 2438 } 2439 else 2440 { 2441 printf("pclmulqdq_54 ... not ok\n"); 2442 printf(" result0.uq[0] = %llu (expected %llu)\n", result0.uq[0], 0x7ec8d0bb7e8acd69ULL); 2443 printf(" result0.uq[1] = %llu (expected %llu)\n", result0.uq[1], 0x14938d347e59462dULL); 2444 } 2445 } 2446 else 2447 { 2448 printf("pclmulqdq_54 ... failed\n"); 2449 } 2450 2451 return; 2452 } 2453 2454 static void pclmulqdq_55(void) 2455 { 2456 reg128_t arg1 = { .uq = { 0xd3e8fcebbab9ccb0ULL, 0x69f47e76bc0aa547ULL } }; 2457 reg128_t arg2 = { .uq = { 0xf4fa3f3c34b31190ULL, 0x7a7d1f9ef90747b7ULL } }; 2458 reg128_t result0; 2459 char state[108]; 2460 2461 if (sigsetjmp(catchpoint, 1) == 0) 2462 { 2463 asm( 2464 "ffree %%st(7)\n" 2465 "ffree %%st(6)\n" 2466 "ffree %%st(5)\n" 2467 "ffree %%st(4)\n" 2468 "movlps 0+%1, %%xmm13\n" 2469 "movhps 8+%1, %%xmm13\n" 2470 "pclmulqdq $16, %0, %%xmm13\n" 2471 "movlps %%xmm13, 0+%2\n" 2472 "movhps %%xmm13, 8+%2\n" 2473 : 2474 : "m" (arg1), "m" (arg2), "m" (result0), "m" (state[0]) 2475 : "xmm12", "xmm13" 2476 ); 2477 2478 if (result0.uq[0] == 0x4d62ab2759d0c0f0ULL && result0.uq[1] == 0x24a78a2ff2816467ULL ) 2479 { 2480 printf("pclmulqdq_55 ... ok\n"); 2481 } 2482 else 2483 { 2484 printf("pclmulqdq_55 ... not ok\n"); 2485 printf(" result0.uq[0] = %llu (expected %llu)\n", result0.uq[0], 0x4d62ab2759d0c0f0ULL); 2486 printf(" result0.uq[1] = %llu (expected %llu)\n", result0.uq[1], 0x24a78a2ff2816467ULL); 2487 } 2488 } 2489 else 2490 { 2491 printf("pclmulqdq_55 ... failed\n"); 2492 } 2493 2494 return; 2495 } 2496 2497 static void pclmulqdq_56(void) 2498 { 2499 reg128_t arg1 = { .uq = { 0xfd3e8fd0533162c8ULL, 0x7e9f47e908467053ULL } }; 2500 reg128_t arg2 = { .uq = { 0xff4fa3f56ad0f71aULL, 0x7fa7d1fb94163a7cULL } }; 2501 reg128_t result0; 2502 char state[108]; 2503 2504 if (sigsetjmp(catchpoint, 1) == 0) 2505 { 2506 asm( 2507 "ffree %%st(7)\n" 2508 "ffree %%st(6)\n" 2509 "ffree %%st(5)\n" 2510 "ffree %%st(4)\n" 2511 "movlps 0+%1, %%xmm13\n" 2512 "movhps 8+%1, %%xmm13\n" 2513 "pclmulqdq $17, %0, %%xmm13\n" 2514 "movlps %%xmm13, 0+%2\n" 2515 "movhps %%xmm13, 8+%2\n" 2516 : 2517 : "m" (arg1), "m" (arg2), "m" (result0), "m" (state[0]) 2518 : "xmm12", "xmm13" 2519 ); 2520 2521 if (result0.uq[0] == 0xb7fc82a330a83644ULL && result0.uq[1] == 0x152129527f84cd53ULL ) 2522 { 2523 printf("pclmulqdq_56 ... ok\n"); 2524 } 2525 else 2526 { 2527 printf("pclmulqdq_56 ... not ok\n"); 2528 printf(" result0.uq[0] = %llu (expected %llu)\n", result0.uq[0], 0xb7fc82a330a83644ULL); 2529 printf(" result0.uq[1] = %llu (expected %llu)\n", result0.uq[1], 0x152129527f84cd53ULL); 2530 } 2531 } 2532 else 2533 { 2534 printf("pclmulqdq_56 ... failed\n"); 2535 } 2536 2537 return; 2538 } 2539 2540 static void pclmulqdq_57(void) 2541 { 2542 reg128_t arg1 = { .uq = { 0x3fd3e8fea8b8dc2dULL, 0xdfe9f4803b0a2d03ULL } }; 2543 reg128_t arg2 = { .uq = { 0xaff4fa40f432d572ULL, 0x57fa7d2158c729a8ULL } }; 2544 reg128_t result0; 2545 char state[108]; 2546 2547 if (sigsetjmp(catchpoint, 1) == 0) 2548 { 2549 asm( 2550 "ffree %%st(7)\n" 2551 "ffree %%st(6)\n" 2552 "ffree %%st(5)\n" 2553 "ffree %%st(4)\n" 2554 "movlps 0+%0, %%xmm12\n" 2555 "movhps 8+%0, %%xmm12\n" 2556 "movlps 0+%1, %%xmm13\n" 2557 "movhps 8+%1, %%xmm13\n" 2558 "pclmulqdq $0, %%xmm12, %%xmm13\n" 2559 "movlps %%xmm13, 0+%2\n" 2560 "movhps %%xmm13, 8+%2\n" 2561 : 2562 : "m" (arg1), "m" (arg2), "m" (result0), "m" (state[0]) 2563 : "xmm12", "xmm13" 2564 ); 2565 2566 if (result0.uq[0] == 0xad24061697897d6aULL && result0.uq[1] == 0x1946dd2b6b334aa6ULL ) 2567 { 2568 printf("pclmulqdq_57 ... ok\n"); 2569 } 2570 else 2571 { 2572 printf("pclmulqdq_57 ... not ok\n"); 2573 printf(" result0.uq[0] = %llu (expected %llu)\n", result0.uq[0], 0xad24061697897d6aULL); 2574 printf(" result0.uq[1] = %llu (expected %llu)\n", result0.uq[1], 0x1946dd2b6b334aa6ULL); 2575 } 2576 } 2577 else 2578 { 2579 printf("pclmulqdq_57 ... failed\n"); 2580 } 2581 2582 return; 2583 } 2584 2585 static void pclmulqdq_58(void) 2586 { 2587 reg128_t arg1 = { .uq = { 0x2bfd3e918b1153c3ULL, 0xd5fe9f49ac3668d2ULL } }; 2588 reg128_t arg2 = { .uq = { 0x6aff4fa5b4c8f358ULL, 0x357fa7d3b912389bULL } }; 2589 reg128_t result0; 2590 char state[108]; 2591 2592 if (sigsetjmp(catchpoint, 1) == 0) 2593 { 2594 asm( 2595 "ffree %%st(7)\n" 2596 "ffree %%st(6)\n" 2597 "ffree %%st(5)\n" 2598 "ffree %%st(4)\n" 2599 "movlps 0+%0, %%xmm12\n" 2600 "movhps 8+%0, %%xmm12\n" 2601 "movlps 0+%1, %%xmm13\n" 2602 "movhps 8+%1, %%xmm13\n" 2603 "pclmulqdq $1, %%xmm12, %%xmm13\n" 2604 "movlps %%xmm13, 0+%2\n" 2605 "movhps %%xmm13, 8+%2\n" 2606 : 2607 : "m" (arg1), "m" (arg2), "m" (result0), "m" (state[0]) 2608 : "xmm12", "xmm13" 2609 ); 2610 2611 if (result0.uq[0] == 0x01e66902d969ffedULL && result0.uq[1] == 0x0748de913628c280ULL ) 2612 { 2613 printf("pclmulqdq_58 ... ok\n"); 2614 } 2615 else 2616 { 2617 printf("pclmulqdq_58 ... not ok\n"); 2618 printf(" result0.uq[0] = %llu (expected %llu)\n", result0.uq[0], 0x01e66902d969ffedULL); 2619 printf(" result0.uq[1] = %llu (expected %llu)\n", result0.uq[1], 0x0748de913628c280ULL); 2620 } 2621 } 2622 else 2623 { 2624 printf("pclmulqdq_58 ... failed\n"); 2625 } 2626 2627 return; 2628 } 2629 2630 static void pclmulqdq_59(void) 2631 { 2632 reg128_t arg1 = { .uq = { 0xdabfd3eab336db3eULL, 0x6d5fe9f638492c8eULL } }; 2633 reg128_t arg2 = { .uq = { 0x36aff4fbfad25536ULL, 0x1b57fa7edc16e98aULL } }; 2634 reg128_t result0; 2635 char state[108]; 2636 2637 if (sigsetjmp(catchpoint, 1) == 0) 2638 { 2639 asm( 2640 "ffree %%st(7)\n" 2641 "ffree %%st(6)\n" 2642 "ffree %%st(5)\n" 2643 "ffree %%st(4)\n" 2644 "movlps 0+%0, %%xmm12\n" 2645 "movhps 8+%0, %%xmm12\n" 2646 "movlps 0+%1, %%xmm13\n" 2647 "movhps 8+%1, %%xmm13\n" 2648 "pclmulqdq $16, %%xmm12, %%xmm13\n" 2649 "movlps %%xmm13, 0+%2\n" 2650 "movhps %%xmm13, 8+%2\n" 2651 : 2652 : "m" (arg1), "m" (arg2), "m" (result0), "m" (state[0]) 2653 : "xmm12", "xmm13" 2654 ); 2655 2656 if (result0.uq[0] == 0x9a16d14091086404ULL && result0.uq[1] == 0x0a2888aa8b3b5dd4ULL ) 2657 { 2658 printf("pclmulqdq_59 ... ok\n"); 2659 } 2660 else 2661 { 2662 printf("pclmulqdq_59 ... not ok\n"); 2663 printf(" result0.uq[0] = %llu (expected %llu)\n", result0.uq[0], 0x9a16d14091086404ULL); 2664 printf(" result0.uq[1] = %llu (expected %llu)\n", result0.uq[1], 0x0a2888aa8b3b5dd4ULL); 2665 } 2666 } 2667 else 2668 { 2669 printf("pclmulqdq_59 ... failed\n"); 2670 } 2671 2672 return; 2673 } 2674 2675 static void pclmulqdq_60(void) 2676 { 2677 reg128_t arg1 = { .uq = { 0x0dabfd404cb933b4ULL, 0x06d5fea1050a58c9ULL } }; 2678 reg128_t arg2 = { .uq = { 0xc36aff516932eb55ULL, 0xa1b57fa99b473497ULL } }; 2679 reg128_t result0; 2680 char state[108]; 2681 2682 if (sigsetjmp(catchpoint, 1) == 0) 2683 { 2684 asm( 2685 "ffree %%st(7)\n" 2686 "ffree %%st(6)\n" 2687 "ffree %%st(5)\n" 2688 "ffree %%st(4)\n" 2689 "movlps 0+%0, %%xmm12\n" 2690 "movhps 8+%0, %%xmm12\n" 2691 "movlps 0+%1, %%xmm13\n" 2692 "movhps 8+%1, %%xmm13\n" 2693 "pclmulqdq $17, %%xmm12, %%xmm13\n" 2694 "movlps %%xmm13, 0+%2\n" 2695 "movhps %%xmm13, 8+%2\n" 2696 : 2697 : "m" (arg1), "m" (arg2), "m" (result0), "m" (state[0]) 2698 : "xmm12", "xmm13" 2699 ); 2700 2701 if (result0.uq[0] == 0x3f904f57b277f66fULL && result0.uq[1] == 0x03b554c0f32d4dfaULL ) 2702 { 2703 printf("pclmulqdq_60 ... ok\n"); 2704 } 2705 else 2706 { 2707 printf("pclmulqdq_60 ... not ok\n"); 2708 printf(" result0.uq[0] = %llu (expected %llu)\n", result0.uq[0], 0x3f904f57b277f66fULL); 2709 printf(" result0.uq[1] = %llu (expected %llu)\n", result0.uq[1], 0x03b554c0f32d4dfaULL); 2710 } 2711 } 2712 else 2713 { 2714 printf("pclmulqdq_60 ... failed\n"); 2715 } 2716 2717 return; 2718 } 2719 2720 static void pclmulqdq_61(void) 2721 { 2722 reg128_t arg1 = { .uq = { 0x90dabfd5a4515938ULL, 0x486d5febb0d66b8bULL } }; 2723 reg128_t arg2 = { .uq = { 0xe436aff6af18f4b6ULL, 0x721b57fc363a394aULL } }; 2724 reg128_t result0; 2725 char state[108]; 2726 2727 if (sigsetjmp(catchpoint, 1) == 0) 2728 { 2729 asm( 2730 "ffree %%st(7)\n" 2731 "ffree %%st(6)\n" 2732 "ffree %%st(5)\n" 2733 "ffree %%st(4)\n" 2734 "movlps 0+%1, %%xmm13\n" 2735 "movhps 8+%1, %%xmm13\n" 2736 "pclmulqdq $0, %0, %%xmm13\n" 2737 "movlps %%xmm13, 0+%2\n" 2738 "movhps %%xmm13, 8+%2\n" 2739 : 2740 : "m" (arg1), "m" (arg2), "m" (result0), "m" (state[0]) 2741 : "xmm12", "xmm13" 2742 ); 2743 2744 if (result0.uq[0] == 0x8c5f6ad18d379e10ULL && result0.uq[1] == 0x7c1be44f7439dfecULL ) 2745 { 2746 printf("pclmulqdq_61 ... ok\n"); 2747 } 2748 else 2749 { 2750 printf("pclmulqdq_61 ... not ok\n"); 2751 printf(" result0.uq[0] = %llu (expected %llu)\n", result0.uq[0], 0x8c5f6ad18d379e10ULL); 2752 printf(" result0.uq[1] = %llu (expected %llu)\n", result0.uq[1], 0x7c1be44f7439dfecULL); 2753 } 2754 } 2755 else 2756 { 2757 printf("pclmulqdq_61 ... failed\n"); 2758 } 2759 2760 return; 2761 } 2762 2763 static void pclmulqdq_62(void) 2764 { 2765 reg128_t arg1 = { .uq = { 0x390dabfef9cadb94ULL, 0x1c86d6005b932cb9ULL } }; 2766 reg128_t arg2 = { .uq = { 0xce436b010477554dULL, 0xa721b58168e96993ULL } }; 2767 reg128_t result0; 2768 char state[108]; 2769 2770 if (sigsetjmp(catchpoint, 1) == 0) 2771 { 2772 asm( 2773 "ffree %%st(7)\n" 2774 "ffree %%st(6)\n" 2775 "ffree %%st(5)\n" 2776 "ffree %%st(4)\n" 2777 "movlps 0+%1, %%xmm13\n" 2778 "movhps 8+%1, %%xmm13\n" 2779 "pclmulqdq $1, %0, %%xmm13\n" 2780 "movlps %%xmm13, 0+%2\n" 2781 "movhps %%xmm13, 8+%2\n" 2782 : 2783 : "m" (arg1), "m" (arg2), "m" (result0), "m" (state[0]) 2784 : "xmm12", "xmm13" 2785 ); 2786 2787 if (result0.uq[0] == 0x5cfbe32f78bbabfcULL && result0.uq[1] == 0x1b0f409db94d30ceULL ) 2788 { 2789 printf("pclmulqdq_62 ... ok\n"); 2790 } 2791 else 2792 { 2793 printf("pclmulqdq_62 ... not ok\n"); 2794 printf(" result0.uq[0] = %llu (expected %llu)\n", result0.uq[0], 0x5cfbe32f78bbabfcULL); 2795 printf(" result0.uq[1] = %llu (expected %llu)\n", result0.uq[1], 0x1b0f409db94d30ceULL); 2796 } 2797 } 2798 else 2799 { 2800 printf("pclmulqdq_62 ... failed\n"); 2801 } 2802 2803 return; 2804 } 2805 2806 static void pclmulqdq_63(void) 2807 { 2808 reg128_t arg1 = { .uq = { 0x9390dac19b2273baULL, 0x49c86d61ac3ef8ccULL } }; 2809 reg128_t arg2 = { .uq = { 0x24e436b1b4cd3b55ULL, 0xd2721b59b1145c97ULL } }; 2810 reg128_t result0; 2811 char state[108]; 2812 2813 if (sigsetjmp(catchpoint, 1) == 0) 2814 { 2815 asm( 2816 "ffree %%st(7)\n" 2817 "ffree %%st(6)\n" 2818 "ffree %%st(5)\n" 2819 "ffree %%st(4)\n" 2820 "movlps 0+%1, %%xmm13\n" 2821 "movhps 8+%1, %%xmm13\n" 2822 "pclmulqdq $16, %0, %%xmm13\n" 2823 "movlps %%xmm13, 0+%2\n" 2824 "movhps %%xmm13, 8+%2\n" 2825 : 2826 : "m" (arg1), "m" (arg2), "m" (result0), "m" (state[0]) 2827 : "xmm12", "xmm13" 2828 ); 2829 2830 if (result0.uq[0] == 0x6a2bef2bac52d03cULL && result0.uq[1] == 0x0820a820580aebf6ULL ) 2831 { 2832 printf("pclmulqdq_63 ... ok\n"); 2833 } 2834 else 2835 { 2836 printf("pclmulqdq_63 ... not ok\n"); 2837 printf(" result0.uq[0] = %llu (expected %llu)\n", result0.uq[0], 0x6a2bef2bac52d03cULL); 2838 printf(" result0.uq[1] = %llu (expected %llu)\n", result0.uq[1], 0x0820a820580aebf6ULL); 2839 } 2840 } 2841 else 2842 { 2843 printf("pclmulqdq_63 ... failed\n"); 2844 } 2845 2846 return; 2847 } 2848 2849 static void pclmulqdq_64(void) 2850 { 2851 reg128_t arg1 = { .uq = { 0xa9390dadaf37ed38ULL, 0x549c86d7b649b58bULL } }; 2852 reg128_t arg2 = { .uq = { 0xea4e436cb1d299b6ULL, 0x752721b737970bcaULL } }; 2853 reg128_t result0; 2854 char state[108]; 2855 2856 if (sigsetjmp(catchpoint, 1) == 0) 2857 { 2858 asm( 2859 "ffree %%st(7)\n" 2860 "ffree %%st(6)\n" 2861 "ffree %%st(5)\n" 2862 "ffree %%st(4)\n" 2863 "movlps 0+%1, %%xmm13\n" 2864 "movhps 8+%1, %%xmm13\n" 2865 "pclmulqdq $17, %0, %%xmm13\n" 2866 "movlps %%xmm13, 0+%2\n" 2867 "movhps %%xmm13, 8+%2\n" 2868 : 2869 : "m" (arg1), "m" (arg2), "m" (result0), "m" (state[0]) 2870 : "xmm12", "xmm13" 2871 ); 2872 2873 if (result0.uq[0] == 0xe374fdf10b9aa50eULL && result0.uq[1] == 0x1bf0a13b9a4b2d32ULL ) 2874 { 2875 printf("pclmulqdq_64 ... ok\n"); 2876 } 2877 else 2878 { 2879 printf("pclmulqdq_64 ... not ok\n"); 2880 printf(" result0.uq[0] = %llu (expected %llu)\n", result0.uq[0], 0xe374fdf10b9aa50eULL); 2881 printf(" result0.uq[1] = %llu (expected %llu)\n", result0.uq[1], 0x1bf0a13b9a4b2d32ULL); 2882 } 2883 } 2884 else 2885 { 2886 printf("pclmulqdq_64 ... failed\n"); 2887 } 2888 2889 return; 2890 } 2891 2892 static void pclmulqdq_65(void) 2893 { 2894 reg128_t arg1 = { .uq = { 0x3a9390dc7a7944d4ULL, 0x1d49c86f1bea6159ULL } }; 2895 reg128_t arg2 = { .uq = { 0xcea4e43864a2ef9dULL, 0xa752721d18ff36bbULL } }; 2896 reg128_t result0; 2897 char state[108]; 2898 2899 if (sigsetjmp(catchpoint, 1) == 0) 2900 { 2901 asm( 2902 "ffree %%st(7)\n" 2903 "ffree %%st(6)\n" 2904 "ffree %%st(5)\n" 2905 "ffree %%st(4)\n" 2906 "movlps 0+%0, %%xmm12\n" 2907 "movhps 8+%0, %%xmm12\n" 2908 "movlps 0+%1, %%xmm13\n" 2909 "movhps 8+%1, %%xmm13\n" 2910 "pclmulqdq $0, %%xmm12, %%xmm13\n" 2911 "movlps %%xmm13, 0+%2\n" 2912 "movhps %%xmm13, 8+%2\n" 2913 : 2914 : "m" (arg1), "m" (arg2), "m" (result0), "m" (state[0]) 2915 : "xmm12", "xmm13" 2916 ); 2917 2918 if (result0.uq[0] == 0xd6c456490d755a64ULL && result0.uq[1] == 0x12bc3c19097f5a00ULL ) 2919 { 2920 printf("pclmulqdq_65 ... ok\n"); 2921 } 2922 else 2923 { 2924 printf("pclmulqdq_65 ... not ok\n"); 2925 printf(" result0.uq[0] = %llu (expected %llu)\n", result0.uq[0], 0xd6c456490d755a64ULL); 2926 printf(" result0.uq[1] = %llu (expected %llu)\n", result0.uq[1], 0x12bc3c19097f5a00ULL); 2927 } 2928 } 2929 else 2930 { 2931 printf("pclmulqdq_65 ... failed\n"); 2932 } 2933 2934 return; 2935 } 2936 2937 static void pclmulqdq_66(void) 2938 { 2939 reg128_t arg1 = { .uq = { 0x93a9390f632d5a4eULL, 0x49d49c8890446c16ULL } }; 2940 reg128_t arg2 = { .uq = { 0x24ea4e4526cff4faULL, 0x127527237215b96cULL } }; 2941 reg128_t result0; 2942 char state[108]; 2943 2944 if (sigsetjmp(catchpoint, 1) == 0) 2945 { 2946 asm( 2947 "ffree %%st(7)\n" 2948 "ffree %%st(6)\n" 2949 "ffree %%st(5)\n" 2950 "ffree %%st(4)\n" 2951 "movlps 0+%0, %%xmm12\n" 2952 "movhps 8+%0, %%xmm12\n" 2953 "movlps 0+%1, %%xmm13\n" 2954 "movhps 8+%1, %%xmm13\n" 2955 "pclmulqdq $1, %%xmm12, %%xmm13\n" 2956 "movlps %%xmm13, 0+%2\n" 2957 "movhps %%xmm13, 8+%2\n" 2958 : 2959 : "m" (arg1), "m" (arg2), "m" (result0), "m" (state[0]) 2960 : "xmm12", "xmm13" 2961 ); 2962 2963 if (result0.uq[0] == 0x8d19b35c04f67f08ULL && result0.uq[1] == 0x0820a88940df4faaULL ) 2964 { 2965 printf("pclmulqdq_66 ... ok\n"); 2966 } 2967 else 2968 { 2969 printf("pclmulqdq_66 ... not ok\n"); 2970 printf(" result0.uq[0] = %llu (expected %llu)\n", result0.uq[0], 0x8d19b35c04f67f08ULL); 2971 printf(" result0.uq[1] = %llu (expected %llu)\n", result0.uq[1], 0x0820a88940df4faaULL); 2972 } 2973 } 2974 else 2975 { 2976 printf("pclmulqdq_66 ... failed\n"); 2977 } 2978 2979 return; 2980 } 2981 2982 static void pclmulqdq_67(void) 2983 { 2984 reg128_t arg1 = { .uq = { 0x093a939297b89ba5ULL, 0xc49d49ca228a0cbfULL } }; 2985 reg128_t arg2 = { .uq = { 0xa24ea4e5f7f2c54cULL, 0x51275273daa72195ULL } }; 2986 reg128_t result0; 2987 char state[108]; 2988 2989 if (sigsetjmp(catchpoint, 1) == 0) 2990 { 2991 asm( 2992 "ffree %%st(7)\n" 2993 "ffree %%st(6)\n" 2994 "ffree %%st(5)\n" 2995 "ffree %%st(4)\n" 2996 "movlps 0+%0, %%xmm12\n" 2997 "movhps 8+%0, %%xmm12\n" 2998 "movlps 0+%1, %%xmm13\n" 2999 "movhps 8+%1, %%xmm13\n" 3000 "pclmulqdq $16, %%xmm12, %%xmm13\n" 3001 "movlps %%xmm13, 0+%2\n" 3002 "movhps %%xmm13, 8+%2\n" 3003 : 3004 : "m" (arg1), "m" (arg2), "m" (result0), "m" (state[0]) 3005 : "xmm12", "xmm13" 3006 ); 3007 3008 if (result0.uq[0] == 0xa98a2c26439b7bc4ULL && result0.uq[1] == 0x7b61d63f58d2a46aULL ) 3009 { 3010 printf("pclmulqdq_67 ... ok\n"); 3011 } 3012 else 3013 { 3014 printf("pclmulqdq_67 ... not ok\n"); 3015 printf(" result0.uq[0] = %llu (expected %llu)\n", result0.uq[0], 0xa98a2c26439b7bc4ULL); 3016 printf(" result0.uq[1] = %llu (expected %llu)\n", result0.uq[1], 0x7b61d63f58d2a46aULL); 3017 } 3018 } 3019 else 3020 { 3021 printf("pclmulqdq_67 ... failed\n"); 3022 } 3023 3024 return; 3025 } 3026 3027 static void pclmulqdq_68(void) 3028 { 3029 reg128_t arg1 = { .uq = { 0xe893a93ac4014fb7ULL, 0xb449d49e48ae66c8ULL } }; 3030 reg128_t arg2 = { .uq = { 0x5a24ea500304f253ULL, 0xed127528e830381aULL } }; 3031 reg128_t result0; 3032 char state[108]; 3033 3034 if (sigsetjmp(catchpoint, 1) == 0) 3035 { 3036 asm( 3037 "ffree %%st(7)\n" 3038 "ffree %%st(6)\n" 3039 "ffree %%st(5)\n" 3040 "ffree %%st(4)\n" 3041 "movlps 0+%0, %%xmm12\n" 3042 "movhps 8+%0, %%xmm12\n" 3043 "movlps 0+%1, %%xmm13\n" 3044 "movhps 8+%1, %%xmm13\n" 3045 "pclmulqdq $17, %%xmm12, %%xmm13\n" 3046 "movlps %%xmm13, 0+%2\n" 3047 "movhps %%xmm13, 8+%2\n" 3048 : 3049 : "m" (arg1), "m" (arg2), "m" (result0), "m" (state[0]) 3050 : "xmm12", "xmm13" 3051 ); 3052 3053 if (result0.uq[0] == 0xcd6a96a3f2ca5750ULL && result0.uq[1] == 0x66729b7e79914803ULL ) 3054 { 3055 printf("pclmulqdq_68 ... ok\n"); 3056 } 3057 else 3058 { 3059 printf("pclmulqdq_68 ... not ok\n"); 3060 printf(" result0.uq[0] = %llu (expected %llu)\n", result0.uq[0], 0xcd6a96a3f2ca5750ULL); 3061 printf(" result0.uq[1] = %llu (expected %llu)\n", result0.uq[1], 0x66729b7e79914803ULL); 3062 } 3063 } 3064 else 3065 { 3066 printf("pclmulqdq_68 ... failed\n"); 3067 } 3068 3069 return; 3070 } 3071 3072 static void pclmulqdq_69(void) 3073 { 3074 reg128_t arg1 = { .uq = { 0x76893a9552c5dafcULL, 0x3b449d4b8810ac6dULL } }; 3075 reg128_t arg2 = { .uq = { 0xdda24ea6aab61523ULL, 0xaed127543c08c982ULL } }; 3076 reg128_t result0; 3077 char state[108]; 3078 3079 if (sigsetjmp(catchpoint, 1) == 0) 3080 { 3081 asm( 3082 "ffree %%st(7)\n" 3083 "ffree %%st(6)\n" 3084 "ffree %%st(5)\n" 3085 "ffree %%st(4)\n" 3086 "movlps 0+%1, %%xmm13\n" 3087 "movhps 8+%1, %%xmm13\n" 3088 "pclmulqdq $0, %0, %%xmm13\n" 3089 "movlps %%xmm13, 0+%2\n" 3090 "movhps %%xmm13, 8+%2\n" 3091 : 3092 : "m" (arg1), "m" (arg2), "m" (result0), "m" (state[0]) 3093 : "xmm12", "xmm13" 3094 ); 3095 3096 if (result0.uq[0] == 0x71e1947ce8a3fc84ULL && result0.uq[1] == 0x23a3c3ff0ac48e0cULL ) 3097 { 3098 printf("pclmulqdq_69 ... ok\n"); 3099 } 3100 else 3101 { 3102 printf("pclmulqdq_69 ... not ok\n"); 3103 printf(" result0.uq[0] = %llu (expected %llu)\n", result0.uq[0], 0x71e1947ce8a3fc84ULL); 3104 printf(" result0.uq[1] = %llu (expected %llu)\n", result0.uq[1], 0x23a3c3ff0ac48e0cULL); 3105 } 3106 } 3107 else 3108 { 3109 printf("pclmulqdq_69 ... failed\n"); 3110 } 3111 3112 return; 3113 } 3114 3115 static void pclmulqdq_70(void) 3116 { 3117 reg128_t arg1 = { .uq = { 0x576893aafcb223b0ULL, 0x2bb449d65d06d0c7ULL } }; 3118 reg128_t arg2 = { .uq = { 0xd5da24ec05312750ULL, 0x6aed1276e1465297ULL } }; 3119 reg128_t result0; 3120 char state[108]; 3121 3122 if (sigsetjmp(catchpoint, 1) == 0) 3123 { 3124 asm( 3125 "ffree %%st(7)\n" 3126 "ffree %%st(6)\n" 3127 "ffree %%st(5)\n" 3128 "ffree %%st(4)\n" 3129 "movlps 0+%1, %%xmm13\n" 3130 "movhps 8+%1, %%xmm13\n" 3131 "pclmulqdq $1, %0, %%xmm13\n" 3132 "movlps %%xmm13, 0+%2\n" 3133 "movhps %%xmm13, 8+%2\n" 3134 : 3135 : "m" (arg1), "m" (arg2), "m" (result0), "m" (state[0]) 3136 : "xmm12", "xmm13" 3137 ); 3138 3139 if (result0.uq[0] == 0x83bc107e3e1d6910ULL && result0.uq[1] == 0x1d159417367f29d6ULL ) 3140 { 3141 printf("pclmulqdq_70 ... ok\n"); 3142 } 3143 else 3144 { 3145 printf("pclmulqdq_70 ... not ok\n"); 3146 printf(" result0.uq[0] = %llu (expected %llu)\n", result0.uq[0], 0x83bc107e3e1d6910ULL); 3147 printf(" result0.uq[1] = %llu (expected %llu)\n", result0.uq[1], 0x1d159417367f29d6ULL); 3148 } 3149 } 3150 else 3151 { 3152 printf("pclmulqdq_70 ... failed\n"); 3153 } 3154 3155 return; 3156 } 3157 3158 static void pclmulqdq_71(void) 3159 { 3160 reg128_t arg1 = { .uq = { 0xf576893c5750e838ULL, 0x7abb449f0a56330bULL } }; 3161 reg128_t arg2 = { .uq = { 0xfd5da2506bd8d876ULL, 0x7eaed129149a2b2aULL } }; 3162 reg128_t result0; 3163 char state[108]; 3164 3165 if (sigsetjmp(catchpoint, 1) == 0) 3166 { 3167 asm( 3168 "ffree %%st(7)\n" 3169 "ffree %%st(6)\n" 3170 "ffree %%st(5)\n" 3171 "ffree %%st(4)\n" 3172 "movlps 0+%1, %%xmm13\n" 3173 "movhps 8+%1, %%xmm13\n" 3174 "pclmulqdq $16, %0, %%xmm13\n" 3175 "movlps %%xmm13, 0+%2\n" 3176 "movhps %%xmm13, 8+%2\n" 3177 : 3178 : "m" (arg1), "m" (arg2), "m" (result0), "m" (state[0]) 3179 : "xmm12", "xmm13" 3180 ); 3181 3182 if (result0.uq[0] == 0x162d65810a9a912aULL && result0.uq[1] == 0x295151cffabdfebcULL ) 3183 { 3184 printf("pclmulqdq_71 ... ok\n"); 3185 } 3186 else 3187 { 3188 printf("pclmulqdq_71 ... not ok\n"); 3189 printf(" result0.uq[0] = %llu (expected %llu)\n", result0.uq[0], 0x162d65810a9a912aULL); 3190 printf(" result0.uq[1] = %llu (expected %llu)\n", result0.uq[1], 0x295151cffabdfebcULL); 3191 } 3192 } 3193 else 3194 { 3195 printf("pclmulqdq_71 ... failed\n"); 3196 } 3197 3198 return; 3199 } 3200 3201 static void pclmulqdq_72(void) 3202 { 3203 reg128_t arg1 = { .uq = { 0x3f57689568fad484ULL, 0x1fabb44b932b2931ULL } }; 3204 reg128_t arg2 = { .uq = { 0xcfd5da26a0435389ULL, 0xa7eaed1436cf68b5ULL } }; 3205 reg128_t result0; 3206 char state[108]; 3207 3208 if (sigsetjmp(catchpoint, 1) == 0) 3209 { 3210 asm( 3211 "ffree %%st(7)\n" 3212 "ffree %%st(6)\n" 3213 "ffree %%st(5)\n" 3214 "ffree %%st(4)\n" 3215 "movlps 0+%1, %%xmm13\n" 3216 "movhps 8+%1, %%xmm13\n" 3217 "pclmulqdq $17, %0, %%xmm13\n" 3218 "movlps %%xmm13, 0+%2\n" 3219 "movhps %%xmm13, 8+%2\n" 3220 : 3221 : "m" (arg1), "m" (arg2), "m" (result0), "m" (state[0]) 3222 : "xmm12", "xmm13" 3223 ); 3224 3225 if (result0.uq[0] == 0xd2b7ff103f384845ULL && result0.uq[1] == 0x0c75fdbda2b7fa1dULL ) 3226 { 3227 printf("pclmulqdq_72 ... ok\n"); 3228 } 3229 else 3230 { 3231 printf("pclmulqdq_72 ... not ok\n"); 3232 printf(" result0.uq[0] = %llu (expected %llu)\n", result0.uq[0], 0xd2b7ff103f384845ULL); 3233 printf(" result0.uq[1] = %llu (expected %llu)\n", result0.uq[1], 0x0c75fdbda2b7fa1dULL); 3234 } 3235 } 3236 else 3237 { 3238 printf("pclmulqdq_72 ... failed\n"); 3239 } 3240 3241 return; 3242 } 3243 3244 static void pclmulqdq_73(void) 3245 { 3246 reg128_t arg1 = { .uq = { 0x93f5768af2157347ULL, 0x89fabb464fb87890ULL } }; 3247 reg128_t arg2 = { .uq = { 0x44fd5da40689fb37ULL, 0xe27eaed2e9f2bc88ULL } }; 3248 reg128_t result0; 3249 char state[108]; 3250 3251 if (sigsetjmp(catchpoint, 1) == 0) 3252 { 3253 asm( 3254 "ffree %%st(7)\n" 3255 "ffree %%st(6)\n" 3256 "ffree %%st(5)\n" 3257 "ffree %%st(4)\n" 3258 "movlps 0+%0, %%xmm12\n" 3259 "movhps 8+%0, %%xmm12\n" 3260 "movlps 0+%1, %%xmm13\n" 3261 "movhps 8+%1, %%xmm13\n" 3262 "pclmulqdq $0, %%xmm12, %%xmm13\n" 3263 "movlps %%xmm13, 0+%2\n" 3264 "movhps %%xmm13, 8+%2\n" 3265 : 3266 : "m" (arg1), "m" (arg2), "m" (result0), "m" (state[0]) 3267 : "xmm12", "xmm13" 3268 ); 3269 3270 if (result0.uq[0] == 0x1efac67fed4d2545ULL && result0.uq[1] == 0x26c2a63498b85e4eULL ) 3271 { 3272 printf("pclmulqdq_73 ... ok\n"); 3273 } 3274 else 3275 { 3276 printf("pclmulqdq_73 ... not ok\n"); 3277 printf(" result0.uq[0] = %llu (expected %llu)\n", result0.uq[0], 0x1efac67fed4d2545ULL); 3278 printf(" result0.uq[1] = %llu (expected %llu)\n", result0.uq[1], 0x26c2a63498b85e4eULL); 3279 } 3280 } 3281 else 3282 { 3283 printf("pclmulqdq_73 ... failed\n"); 3284 } 3285 3286 return; 3287 } 3288 3289 static void pclmulqdq_74(void) 3290 { 3291 reg128_t arg1 = { .uq = { 0x713f576a53a71d33ULL, 0xf89fabb600814d8aULL } }; 3292 reg128_t arg2 = { .uq = { 0x7c4fd5dbdeee65b4ULL, 0x3e27eaeece24f1c9ULL } }; 3293 reg128_t result0; 3294 char state[108]; 3295 3296 if (sigsetjmp(catchpoint, 1) == 0) 3297 { 3298 asm( 3299 "ffree %%st(7)\n" 3300 "ffree %%st(6)\n" 3301 "ffree %%st(5)\n" 3302 "ffree %%st(4)\n" 3303 "movlps 0+%0, %%xmm12\n" 3304 "movhps 8+%0, %%xmm12\n" 3305 "movlps 0+%1, %%xmm13\n" 3306 "movhps 8+%1, %%xmm13\n" 3307 "pclmulqdq $1, %%xmm12, %%xmm13\n" 3308 "movlps %%xmm13, 0+%2\n" 3309 "movhps %%xmm13, 8+%2\n" 3310 : 3311 : "m" (arg1), "m" (arg2), "m" (result0), "m" (state[0]) 3312 : "xmm12", "xmm13" 3313 ); 3314 3315 if (result0.uq[0] == 0x25ac28bd28c702ebULL && result0.uq[1] == 0x0b943f31e76dc46aULL ) 3316 { 3317 printf("pclmulqdq_74 ... ok\n"); 3318 } 3319 else 3320 { 3321 printf("pclmulqdq_74 ... not ok\n"); 3322 printf(" result0.uq[0] = %llu (expected %llu)\n", result0.uq[0], 0x25ac28bd28c702ebULL); 3323 printf(" result0.uq[1] = %llu (expected %llu)\n", result0.uq[1], 0x0b943f31e76dc46aULL); 3324 } 3325 } 3326 else 3327 { 3328 printf("pclmulqdq_74 ... failed\n"); 3329 } 3330 3331 return; 3332 } 3333 3334 static void pclmulqdq_75(void) 3335 { 3336 reg128_t arg1 = { .uq = { 0xdf13f5784dc037d5ULL, 0xaf89fabd0d8ddad7ULL } }; 3337 reg128_t arg2 = { .uq = { 0x97c4fd5f6d74ac58ULL, 0x4be27eb09568151bULL } }; 3338 reg128_t result0; 3339 char state[108]; 3340 3341 if (sigsetjmp(catchpoint, 1) == 0) 3342 { 3343 asm( 3344 "ffree %%st(7)\n" 3345 "ffree %%st(6)\n" 3346 "ffree %%st(5)\n" 3347 "ffree %%st(4)\n" 3348 "movlps 0+%0, %%xmm12\n" 3349 "movhps 8+%0, %%xmm12\n" 3350 "movlps 0+%1, %%xmm13\n" 3351 "movhps 8+%1, %%xmm13\n" 3352 "pclmulqdq $16, %%xmm12, %%xmm13\n" 3353 "movlps %%xmm13, 0+%2\n" 3354 "movhps %%xmm13, 8+%2\n" 3355 : 3356 : "m" (arg1), "m" (arg2), "m" (result0), "m" (state[0]) 3357 : "xmm12", "xmm13" 3358 ); 3359 3360 if (result0.uq[0] == 0x88ede6d4e2454a08ULL && result0.uq[1] == 0x5e0c23d1ad9c93aaULL ) 3361 { 3362 printf("pclmulqdq_75 ... ok\n"); 3363 } 3364 else 3365 { 3366 printf("pclmulqdq_75 ... not ok\n"); 3367 printf(" result0.uq[0] = %llu (expected %llu)\n", result0.uq[0], 0x88ede6d4e2454a08ULL); 3368 printf(" result0.uq[1] = %llu (expected %llu)\n", result0.uq[1], 0x5e0c23d1ad9c93aaULL); 3369 } 3370 } 3371 else 3372 { 3373 printf("pclmulqdq_75 ... failed\n"); 3374 } 3375 3376 return; 3377 } 3378 3379 static void pclmulqdq_76(void) 3380 { 3381 reg128_t arg1 = { .uq = { 0xe5f13f592161c97eULL, 0x72f89fad6f5ea3aeULL } }; 3382 reg128_t arg2 = { .uq = { 0x397c4fd7965d10c6ULL, 0x1cbe27eca9dc4752ULL } }; 3383 reg128_t result0; 3384 char state[108]; 3385 3386 if (sigsetjmp(catchpoint, 1) == 0) 3387 { 3388 asm( 3389 "ffree %%st(7)\n" 3390 "ffree %%st(6)\n" 3391 "ffree %%st(5)\n" 3392 "ffree %%st(4)\n" 3393 "movlps 0+%0, %%xmm12\n" 3394 "movhps 8+%0, %%xmm12\n" 3395 "movlps 0+%1, %%xmm13\n" 3396 "movhps 8+%1, %%xmm13\n" 3397 "pclmulqdq $17, %%xmm12, %%xmm13\n" 3398 "movlps %%xmm13, 0+%2\n" 3399 "movhps %%xmm13, 8+%2\n" 3400 : 3401 : "m" (arg1), "m" (arg2), "m" (result0), "m" (state[0]) 3402 : "xmm12", "xmm13" 3403 ); 3404 3405 if (result0.uq[0] == 0x5dd6030446d65c3cULL && result0.uq[1] == 0x0541155160eaa5f3ULL ) 3406 { 3407 printf("pclmulqdq_76 ... ok\n"); 3408 } 3409 else 3410 { 3411 printf("pclmulqdq_76 ... not ok\n"); 3412 printf(" result0.uq[0] = %llu (expected %llu)\n", result0.uq[0], 0x5dd6030446d65c3cULL); 3413 printf(" result0.uq[1] = %llu (expected %llu)\n", result0.uq[1], 0x0541155160eaa5f3ULL); 3414 } 3415 } 3416 else 3417 { 3418 printf("pclmulqdq_76 ... failed\n"); 3419 } 3420 3421 return; 3422 } 3423 3424 static void pclmulqdq_77(void) 3425 { 3426 reg128_t arg1 = { .uq = { 0x0e5f13f7339be298ULL, 0x072f89fc787bb03bULL } }; 3427 reg128_t arg2 = { .uq = { 0xc397c4ff12eb970eULL, 0x61cbe28068238a76ULL } }; 3428 reg128_t result0; 3429 char state[108]; 3430 3431 if (sigsetjmp(catchpoint, 1) == 0) 3432 { 3433 asm( 3434 "ffree %%st(7)\n" 3435 "ffree %%st(6)\n" 3436 "ffree %%st(5)\n" 3437 "ffree %%st(4)\n" 3438 "movlps 0+%1, %%xmm13\n" 3439 "movhps 8+%1, %%xmm13\n" 3440 "pclmulqdq $0, %0, %%xmm13\n" 3441 "movlps %%xmm13, 0+%2\n" 3442 "movhps %%xmm13, 8+%2\n" 3443 : 3444 : "m" (arg1), "m" (arg2), "m" (result0), "m" (state[0]) 3445 : "xmm12", "xmm13" 3446 ); 3447 3448 if (result0.uq[0] == 0x9d37888783271390ULL && result0.uq[1] == 0x04ad49530ddeba57ULL ) 3449 { 3450 printf("pclmulqdq_77 ... ok\n"); 3451 } 3452 else 3453 { 3454 printf("pclmulqdq_77 ... not ok\n"); 3455 printf(" result0.uq[0] = %llu (expected %llu)\n", result0.uq[0], 0x9d37888783271390ULL); 3456 printf(" result0.uq[1] = %llu (expected %llu)\n", result0.uq[1], 0x04ad49530ddeba57ULL); 3457 } 3458 } 3459 else 3460 { 3461 printf("pclmulqdq_77 ... failed\n"); 3462 } 3463 3464 return; 3465 } 3466 3467 static void pclmulqdq_78(void) 3468 { 3469 reg128_t arg1 = { .uq = { 0x30e5f14112bf842aULL, 0x1872f8a1680d8104ULL } }; 3470 reg128_t arg2 = { .uq = { 0x0c397c5192b47f71ULL, 0xc61cbe29a007fea9ULL } }; 3471 reg128_t result0; 3472 char state[108]; 3473 3474 if (sigsetjmp(catchpoint, 1) == 0) 3475 { 3476 asm( 3477 "ffree %%st(7)\n" 3478 "ffree %%st(6)\n" 3479 "ffree %%st(5)\n" 3480 "ffree %%st(4)\n" 3481 "movlps 0+%1, %%xmm13\n" 3482 "movhps 8+%1, %%xmm13\n" 3483 "pclmulqdq $1, %0, %%xmm13\n" 3484 "movlps %%xmm13, 0+%2\n" 3485 "movhps %%xmm13, 8+%2\n" 3486 : 3487 : "m" (arg1), "m" (arg2), "m" (result0), "m" (state[0]) 3488 : "xmm12", "xmm13" 3489 ); 3490 3491 if (result0.uq[0] == 0xda22a0000546f93aULL && result0.uq[1] == 0x14eb8e72cfa9f51dULL ) 3492 { 3493 printf("pclmulqdq_78 ... ok\n"); 3494 } 3495 else 3496 { 3497 printf("pclmulqdq_78 ... not ok\n"); 3498 printf(" result0.uq[0] = %llu (expected %llu)\n", result0.uq[0], 0xda22a0000546f93aULL); 3499 printf(" result0.uq[1] = %llu (expected %llu)\n", result0.uq[1], 0x14eb8e72cfa9f51dULL); 3500 } 3501 } 3502 else 3503 { 3504 printf("pclmulqdq_78 ... failed\n"); 3505 } 3506 3507 return; 3508 } 3509 3510 static void pclmulqdq_79(void) 3511 { 3512 reg128_t arg1 = { .uq = { 0xa30e5f15b6b1be45ULL, 0x91872f8bb2069e0fULL } }; 3513 reg128_t arg2 = { .uq = { 0x88c397c6afb10df4ULL, 0x4461cbe4368645e9ULL } }; 3514 reg128_t result0; 3515 char state[108]; 3516 3517 if (sigsetjmp(catchpoint, 1) == 0) 3518 { 3519 asm( 3520 "ffree %%st(7)\n" 3521 "ffree %%st(6)\n" 3522 "ffree %%st(5)\n" 3523 "ffree %%st(4)\n" 3524 "movlps 0+%1, %%xmm13\n" 3525 "movhps 8+%1, %%xmm13\n" 3526 "pclmulqdq $16, %0, %%xmm13\n" 3527 "movlps %%xmm13, 0+%2\n" 3528 "movhps %%xmm13, 8+%2\n" 3529 : 3530 : "m" (arg1), "m" (arg2), "m" (result0), "m" (state[0]) 3531 : "xmm12", "xmm13" 3532 ); 3533 3534 if (result0.uq[0] == 0x0afb9d418fc1966cULL && result0.uq[1] == 0x4c22fc2c395f9b0aULL ) 3535 { 3536 printf("pclmulqdq_79 ... ok\n"); 3537 } 3538 else 3539 { 3540 printf("pclmulqdq_79 ... not ok\n"); 3541 printf(" result0.uq[0] = %llu (expected %llu)\n", result0.uq[0], 0x0afb9d418fc1966cULL); 3542 printf(" result0.uq[1] = %llu (expected %llu)\n", result0.uq[1], 0x4c22fc2c395f9b0aULL); 3543 } 3544 } 3545 else 3546 { 3547 printf("pclmulqdq_79 ... failed\n"); 3548 } 3549 3550 return; 3551 } 3552 3553 static void pclmulqdq_80(void) 3554 { 3555 reg128_t arg1 = { .uq = { 0xe230e5f2f1f0e1e5ULL, 0xb11872fa4fa62fdfULL } }; 3556 reg128_t arg2 = { .uq = { 0x988c397e0e80d6dcULL, 0x4c461cbfe5ee2a5dULL } }; 3557 reg128_t result0; 3558 char state[108]; 3559 3560 if (sigsetjmp(catchpoint, 1) == 0) 3561 { 3562 asm( 3563 "ffree %%st(7)\n" 3564 "ffree %%st(6)\n" 3565 "ffree %%st(5)\n" 3566 "ffree %%st(4)\n" 3567 "movlps 0+%1, %%xmm13\n" 3568 "movhps 8+%1, %%xmm13\n" 3569 "pclmulqdq $17, %0, %%xmm13\n" 3570 "movlps %%xmm13, 0+%2\n" 3571 "movhps %%xmm13, 8+%2\n" 3572 : 3573 : "m" (arg1), "m" (arg2), "m" (result0), "m" (state[0]) 3574 : "xmm12", "xmm13" 3575 ); 3576 3577 if (result0.uq[0] == 0x4a4c895ad9a6426bULL && result0.uq[1] == 0x2b2552b15c95b45aULL ) 3578 { 3579 printf("pclmulqdq_80 ... ok\n"); 3580 } 3581 else 3582 { 3583 printf("pclmulqdq_80 ... not ok\n"); 3584 printf(" result0.uq[0] = %llu (expected %llu)\n", result0.uq[0], 0x4a4c895ad9a6426bULL); 3585 printf(" result0.uq[1] = %llu (expected %llu)\n", result0.uq[1], 0x2b2552b15c95b45aULL); 3586 } 3587 } 3588 else 3589 { 3590 printf("pclmulqdq_80 ... failed\n"); 3591 } 3592 3593 return; 3594 } 3595 3596 static void pclmulqdq_81(void) 3597 { 3598 reg128_t arg1 = { .uq = { 0xe6230e60d9a4d41bULL, 0xb3118731438028feULL } }; 3599 reg128_t arg2 = { .uq = { 0x5988c399806dd36eULL, 0x2cc461cd9ee4a8a6ULL } }; 3600 reg128_t result0; 3601 char state[108]; 3602 3603 if (sigsetjmp(catchpoint, 1) == 0) 3604 { 3605 asm( 3606 "ffree %%st(7)\n" 3607 "ffree %%st(6)\n" 3608 "ffree %%st(5)\n" 3609 "ffree %%st(4)\n" 3610 "movlps 0+%0, %%xmm12\n" 3611 "movhps 8+%0, %%xmm12\n" 3612 "movlps 0+%1, %%xmm13\n" 3613 "movhps 8+%1, %%xmm13\n" 3614 "pclmulqdq $0, %%xmm12, %%xmm13\n" 3615 "movlps %%xmm13, 0+%2\n" 3616 "movhps %%xmm13, 8+%2\n" 3617 : 3618 : "m" (arg1), "m" (arg2), "m" (result0), "m" (state[0]) 3619 : "xmm12", "xmm13" 3620 ); 3621 3622 if (result0.uq[0] == 0xb4bce4629b6a0022ULL && result0.uq[1] == 0x3049a355e88b747dULL ) 3623 { 3624 printf("pclmulqdq_81 ... ok\n"); 3625 } 3626 else 3627 { 3628 printf("pclmulqdq_81 ... not ok\n"); 3629 printf(" result0.uq[0] = %llu (expected %llu)\n", result0.uq[0], 0xb4bce4629b6a0022ULL); 3630 printf(" result0.uq[1] = %llu (expected %llu)\n", result0.uq[1], 0x3049a355e88b747dULL); 3631 } 3632 } 3633 else 3634 { 3635 printf("pclmulqdq_81 ... failed\n"); 3636 } 3637 3638 return; 3639 } 3640 3641 static void pclmulqdq_82(void) 3642 { 3643 reg128_t arg1 = { .uq = { 0x166230e7ae201342ULL, 0x0b311874b5bdc890ULL } }; 3644 reg128_t arg2 = { .uq = { 0x05988c3b398ca337ULL, 0xc2cc461e73741088ULL } }; 3645 reg128_t result0; 3646 char state[108]; 3647 3648 if (sigsetjmp(catchpoint, 1) == 0) 3649 { 3650 asm( 3651 "ffree %%st(7)\n" 3652 "ffree %%st(6)\n" 3653 "ffree %%st(5)\n" 3654 "ffree %%st(4)\n" 3655 "movlps 0+%0, %%xmm12\n" 3656 "movhps 8+%0, %%xmm12\n" 3657 "movlps 0+%1, %%xmm13\n" 3658 "movhps 8+%1, %%xmm13\n" 3659 "pclmulqdq $1, %%xmm12, %%xmm13\n" 3660 "movlps %%xmm13, 0+%2\n" 3661 "movhps %%xmm13, 8+%2\n" 3662 : 3663 : "m" (arg1), "m" (arg2), "m" (result0), "m" (state[0]) 3664 : "xmm12", "xmm13" 3665 ); 3666 3667 if (result0.uq[0] == 0x1443368a87d51b10ULL && result0.uq[1] == 0x0e8b16ca9bb0a8d6ULL ) 3668 { 3669 printf("pclmulqdq_82 ... ok\n"); 3670 } 3671 else 3672 { 3673 printf("pclmulqdq_82 ... not ok\n"); 3674 printf(" result0.uq[0] = %llu (expected %llu)\n", result0.uq[0], 0x1443368a87d51b10ULL); 3675 printf(" result0.uq[1] = %llu (expected %llu)\n", result0.uq[1], 0x0e8b16ca9bb0a8d6ULL); 3676 } 3677 } 3678 else 3679 { 3680 printf("pclmulqdq_82 ... failed\n"); 3681 } 3682 3683 return; 3684 } 3685 3686 static void pclmulqdq_83(void) 3687 { 3688 reg128_t arg1 = { .uq = { 0x616623101867c733ULL, 0xf0b31188e2e1a28aULL } }; 3689 reg128_t arg2 = { .uq = { 0x785988c5501e9034ULL, 0x3c2cc46386bd0709ULL } }; 3690 reg128_t result0; 3691 char state[108]; 3692 3693 if (sigsetjmp(catchpoint, 1) == 0) 3694 { 3695 asm( 3696 "ffree %%st(7)\n" 3697 "ffree %%st(6)\n" 3698 "ffree %%st(5)\n" 3699 "ffree %%st(4)\n" 3700 "movlps 0+%0, %%xmm12\n" 3701 "movhps 8+%0, %%xmm12\n" 3702 "movlps 0+%1, %%xmm13\n" 3703 "movhps 8+%1, %%xmm13\n" 3704 "pclmulqdq $16, %%xmm12, %%xmm13\n" 3705 "movlps %%xmm13, 0+%2\n" 3706 "movhps %%xmm13, 8+%2\n" 3707 : 3708 : "m" (arg1), "m" (arg2), "m" (result0), "m" (state[0]) 3709 : "xmm12", "xmm13" 3710 ); 3711 3712 if (result0.uq[0] == 0x505b0a15e10953c8ULL && result0.uq[1] == 0x2a8022826ef2c0edULL ) 3713 { 3714 printf("pclmulqdq_83 ... ok\n"); 3715 } 3716 else 3717 { 3718 printf("pclmulqdq_83 ... not ok\n"); 3719 printf(" result0.uq[0] = %llu (expected %llu)\n", result0.uq[0], 0x505b0a15e10953c8ULL); 3720 printf(" result0.uq[1] = %llu (expected %llu)\n", result0.uq[1], 0x2a8022826ef2c0edULL); 3721 } 3722 } 3723 else 3724 { 3725 printf("pclmulqdq_83 ... failed\n"); 3726 } 3727 3728 return; 3729 } 3730 3731 static void pclmulqdq_84(void) 3732 { 3733 reg128_t arg1 = { .uq = { 0xde166232aa0c4275ULL, 0xaf0b311a3bb3e027ULL } }; 3734 reg128_t arg2 = { .uq = { 0x9785988df487af00ULL, 0x4bc2cc47d8f1966fULL } }; 3735 reg128_t result0; 3736 char state[108]; 3737 3738 if (sigsetjmp(catchpoint, 1) == 0) 3739 { 3740 asm( 3741 "ffree %%st(7)\n" 3742 "ffree %%st(6)\n" 3743 "ffree %%st(5)\n" 3744 "ffree %%st(4)\n" 3745 "movlps 0+%0, %%xmm12\n" 3746 "movhps 8+%0, %%xmm12\n" 3747 "movlps 0+%1, %%xmm13\n" 3748 "movhps 8+%1, %%xmm13\n" 3749 "pclmulqdq $17, %%xmm12, %%xmm13\n" 3750 "movlps %%xmm13, 0+%2\n" 3751 "movhps %%xmm13, 8+%2\n" 3752 : 3753 : "m" (arg1), "m" (arg2), "m" (result0), "m" (state[0]) 3754 : "xmm12", "xmm13" 3755 ); 3756 3757 if (result0.uq[0] == 0x73b0bf7077a68eedULL && result0.uq[1] == 0x2f36ea74050c13feULL ) 3758 { 3759 printf("pclmulqdq_84 ... ok\n"); 3760 } 3761 else 3762 { 3763 printf("pclmulqdq_84 ... not ok\n"); 3764 printf(" result0.uq[0] = %llu (expected %llu)\n", result0.uq[0], 0x73b0bf7077a68eedULL); 3765 printf(" result0.uq[1] = %llu (expected %llu)\n", result0.uq[1], 0x2f36ea74050c13feULL); 3766 } 3767 } 3768 else 3769 { 3770 printf("pclmulqdq_84 ... failed\n"); 3771 } 3772 3773 return; 3774 } 3775 3776 static void pclmulqdq_85(void) 3777 { 3778 reg128_t arg1 = { .uq = { 0xe5e16624c3268a24ULL, 0x72f0b31340410401ULL } }; 3779 reg128_t arg2 = { .uq = { 0xf978598a86ce40f1ULL, 0xbcbc2cc62a14df69ULL } }; 3780 reg128_t result0; 3781 char state[108]; 3782 3783 if (sigsetjmp(catchpoint, 1) == 0) 3784 { 3785 asm( 3786 "ffree %%st(7)\n" 3787 "ffree %%st(6)\n" 3788 "ffree %%st(5)\n" 3789 "ffree %%st(4)\n" 3790 "movlps 0+%1, %%xmm13\n" 3791 "movhps 8+%1, %%xmm13\n" 3792 "pclmulqdq $0, %0, %%xmm13\n" 3793 "movlps %%xmm13, 0+%2\n" 3794 "movhps %%xmm13, 8+%2\n" 3795 : 3796 : "m" (arg1), "m" (arg2), "m" (result0), "m" (state[0]) 3797 : "xmm12", "xmm13" 3798 ); 3799 3800 if (result0.uq[0] == 0xbd20232a4309f7e4ULL && result0.uq[1] == 0x5e8cbf9a58306d67ULL ) 3801 { 3802 printf("pclmulqdq_85 ... ok\n"); 3803 } 3804 else 3805 { 3806 printf("pclmulqdq_85 ... not ok\n"); 3807 printf(" result0.uq[0] = %llu (expected %llu)\n", result0.uq[0], 0xbd20232a4309f7e4ULL); 3808 printf(" result0.uq[1] = %llu (expected %llu)\n", result0.uq[1], 0x5e8cbf9a58306d67ULL); 3809 } 3810 } 3811 else 3812 { 3813 printf("pclmulqdq_85 ... failed\n"); 3814 } 3815 3816 return; 3817 } 3818 3819 static void pclmulqdq_86(void) 3820 { 3821 reg128_t arg1 = { .uq = { 0x9e5e1663fbb82ea5ULL, 0x8f2f0b32d489d63fULL } }; 3822 reg128_t arg2 = { .uq = { 0x8797859a40f2aa0cULL, 0x43cbc2cdff2713f5ULL } }; 3823 reg128_t result0; 3824 char state[108]; 3825 3826 if (sigsetjmp(catchpoint, 1) == 0) 3827 { 3828 asm( 3829 "ffree %%st(7)\n" 3830 "ffree %%st(6)\n" 3831 "ffree %%st(5)\n" 3832 "ffree %%st(4)\n" 3833 "movlps 0+%1, %%xmm13\n" 3834 "movhps 8+%1, %%xmm13\n" 3835 "pclmulqdq $1, %0, %%xmm13\n" 3836 "movlps %%xmm13, 0+%2\n" 3837 "movhps %%xmm13, 8+%2\n" 3838 : 3839 : "m" (arg1), "m" (arg2), "m" (result0), "m" (state[0]) 3840 : "xmm12", "xmm13" 3841 ); 3842 3843 if (result0.uq[0] == 0x6e66a095df81ee01ULL && result0.uq[1] == 0x2658e6d490286e46ULL ) 3844 { 3845 printf("pclmulqdq_86 ... ok\n"); 3846 } 3847 else 3848 { 3849 printf("pclmulqdq_86 ... not ok\n"); 3850 printf(" result0.uq[0] = %llu (expected %llu)\n", result0.uq[0], 0x6e66a095df81ee01ULL); 3851 printf(" result0.uq[1] = %llu (expected %llu)\n", result0.uq[1], 0x2658e6d490286e46ULL); 3852 } 3853 } 3854 else 3855 { 3856 printf("pclmulqdq_86 ... failed\n"); 3857 } 3858 3859 return; 3860 } 3861 3862 static void pclmulqdq_87(void) 3863 { 3864 reg128_t arg1 = { .uq = { 0xe1e5e167d64148e7ULL, 0xb0f2f0b4c1ce6360ULL } }; 3865 reg128_t arg2 = { .uq = { 0x5879785b3f94f09fULL, 0xec3cbc2e7678373cULL } }; 3866 reg128_t result0; 3867 char state[108]; 3868 3869 if (sigsetjmp(catchpoint, 1) == 0) 3870 { 3871 asm( 3872 "ffree %%st(7)\n" 3873 "ffree %%st(6)\n" 3874 "ffree %%st(5)\n" 3875 "ffree %%st(4)\n" 3876 "movlps 0+%1, %%xmm13\n" 3877 "movhps 8+%1, %%xmm13\n" 3878 "pclmulqdq $16, %0, %%xmm13\n" 3879 "movlps %%xmm13, 0+%2\n" 3880 "movhps %%xmm13, 8+%2\n" 3881 : 3882 : "m" (arg1), "m" (arg2), "m" (result0), "m" (state[0]) 3883 : "xmm12", "xmm13" 3884 ); 3885 3886 if (result0.uq[0] == 0xa1411d12187db520ULL && result0.uq[1] == 0x22802a82bbe48273ULL ) 3887 { 3888 printf("pclmulqdq_87 ... ok\n"); 3889 } 3890 else 3891 { 3892 printf("pclmulqdq_87 ... not ok\n"); 3893 printf(" result0.uq[0] = %llu (expected %llu)\n", result0.uq[0], 0xa1411d12187db520ULL); 3894 printf(" result0.uq[1] = %llu (expected %llu)\n", result0.uq[1], 0x22802a82bbe48273ULL); 3895 } 3896 } 3897 else 3898 { 3899 printf("pclmulqdq_87 ... failed\n"); 3900 } 3901 3902 return; 3903 } 3904 3905 static void pclmulqdq_88(void) 3906 { 3907 reg128_t arg1 = { .uq = { 0x761e5e1819e9da8dULL, 0xfb0f2f0ce3a2ac33ULL } }; 3908 reg128_t arg2 = { .uq = { 0xbd879787587f150aULL, 0x5ec3cbc48aed4974ULL } }; 3909 reg128_t result0; 3910 char state[108]; 3911 3912 if (sigsetjmp(catchpoint, 1) == 0) 3913 { 3914 asm( 3915 "ffree %%st(7)\n" 3916 "ffree %%st(6)\n" 3917 "ffree %%st(5)\n" 3918 "ffree %%st(4)\n" 3919 "movlps 0+%1, %%xmm13\n" 3920 "movhps 8+%1, %%xmm13\n" 3921 "pclmulqdq $17, %0, %%xmm13\n" 3922 "movlps %%xmm13, 0+%2\n" 3923 "movhps %%xmm13, 8+%2\n" 3924 : 3925 : "m" (arg1), "m" (arg2), "m" (result0), "m" (state[0]) 3926 : "xmm12", "xmm13" 3927 ); 3928 3929 if (result0.uq[0] == 0x98102e76a4d8925cULL && result0.uq[1] == 0x34f36e356807a7b8ULL ) 3930 { 3931 printf("pclmulqdq_88 ... ok\n"); 3932 } 3933 else 3934 { 3935 printf("pclmulqdq_88 ... not ok\n"); 3936 printf(" result0.uq[0] = %llu (expected %llu)\n", result0.uq[0], 0x98102e76a4d8925cULL); 3937 printf(" result0.uq[1] = %llu (expected %llu)\n", result0.uq[1], 0x34f36e356807a7b8ULL); 3938 } 3939 } 3940 else 3941 { 3942 printf("pclmulqdq_88 ... failed\n"); 3943 } 3944 3945 return; 3946 } 3947 3948 static void pclmulqdq_89(void) 3949 { 3950 reg128_t arg1 = { .uq = { 0x2f61e5e3242463a9ULL, 0xd7b0f2f278bff0c5ULL } }; 3951 reg128_t arg2 = { .uq = { 0xabd8797a130db74fULL, 0x95ec3cbde0349a94ULL } }; 3952 reg128_t result0; 3953 char state[108]; 3954 3955 if (sigsetjmp(catchpoint, 1) == 0) 3956 { 3957 asm( 3958 "ffree %%st(7)\n" 3959 "ffree %%st(6)\n" 3960 "ffree %%st(5)\n" 3961 "ffree %%st(4)\n" 3962 "movlps 0+%0, %%xmm12\n" 3963 "movhps 8+%0, %%xmm12\n" 3964 "movlps 0+%1, %%xmm13\n" 3965 "movhps 8+%1, %%xmm13\n" 3966 "pclmulqdq $0, %%xmm12, %%xmm13\n" 3967 "movlps %%xmm13, 0+%2\n" 3968 "movhps %%xmm13, 8+%2\n" 3969 : 3970 : "m" (arg1), "m" (arg2), "m" (result0), "m" (state[0]) 3971 : "xmm12", "xmm13" 3972 ); 3973 3974 if (result0.uq[0] == 0xa9db52b34932b257ULL && result0.uq[1] == 0x13498b4de2ead42bULL ) 3975 { 3976 printf("pclmulqdq_89 ... ok\n"); 3977 } 3978 else 3979 { 3980 printf("pclmulqdq_89 ... not ok\n"); 3981 printf(" result0.uq[0] = %llu (expected %llu)\n", result0.uq[0], 0xa9db52b34932b257ULL); 3982 printf(" result0.uq[1] = %llu (expected %llu)\n", result0.uq[1], 0x13498b4de2ead42bULL); 3983 } 3984 } 3985 else 3986 { 3987 printf("pclmulqdq_89 ... failed\n"); 3988 } 3989 3990 return; 3991 } 3992 3993 static void pclmulqdq_90(void) 3994 { 3995 reg128_t arg1 = { .uq = { 0x4af61e5fcec80c39ULL, 0xe57b0f30ce11c50dULL } }; 3996 reg128_t arg2 = { .uq = { 0xb2bd87994db6a173ULL, 0x995ec3cd8d890faaULL } }; 3997 reg128_t result0; 3998 char state[108]; 3999 4000 if (sigsetjmp(catchpoint, 1) == 0) 4001 { 4002 asm( 4003 "ffree %%st(7)\n" 4004 "ffree %%st(6)\n" 4005 "ffree %%st(5)\n" 4006 "ffree %%st(4)\n" 4007 "movlps 0+%0, %%xmm12\n" 4008 "movhps 8+%0, %%xmm12\n" 4009 "movlps 0+%1, %%xmm13\n" 4010 "movhps 8+%1, %%xmm13\n" 4011 "pclmulqdq $1, %%xmm12, %%xmm13\n" 4012 "movlps %%xmm13, 0+%2\n" 4013 "movhps %%xmm13, 8+%2\n" 4014 : 4015 : "m" (arg1), "m" (arg2), "m" (result0), "m" (state[0]) 4016 : "xmm12", "xmm13" 4017 ); 4018 4019 if (result0.uq[0] == 0x02bdfd5b8ae3851aULL && result0.uq[1] == 0x23dce4693be7adf0ULL ) 4020 { 4021 printf("pclmulqdq_90 ... ok\n"); 4022 } 4023 else 4024 { 4025 printf("pclmulqdq_90 ... not ok\n"); 4026 printf(" result0.uq[0] = %llu (expected %llu)\n", result0.uq[0], 0x02bdfd5b8ae3851aULL); 4027 printf(" result0.uq[1] = %llu (expected %llu)\n", result0.uq[1], 0x23dce4693be7adf0ULL); 4028 } 4029 } 4030 else 4031 { 4032 printf("pclmulqdq_90 ... failed\n"); 4033 } 4034 4035 return; 4036 } 4037 4038 static void pclmulqdq_91(void) 4039 { 4040 reg128_t arg1 = { .uq = { 0x4caf61e7a57246c4ULL, 0x2657b0f4b166e251ULL } }; 4041 reg128_t arg2 = { .uq = { 0xd32bd87b2f613019ULL, 0xa995ec3e7e5e56fdULL } }; 4042 reg128_t result0; 4043 char state[108]; 4044 4045 if (sigsetjmp(catchpoint, 1) == 0) 4046 { 4047 asm( 4048 "ffree %%st(7)\n" 4049 "ffree %%st(6)\n" 4050 "ffree %%st(5)\n" 4051 "ffree %%st(4)\n" 4052 "movlps 0+%0, %%xmm12\n" 4053 "movhps 8+%0, %%xmm12\n" 4054 "movlps 0+%1, %%xmm13\n" 4055 "movhps 8+%1, %%xmm13\n" 4056 "pclmulqdq $16, %%xmm12, %%xmm13\n" 4057 "movlps %%xmm13, 0+%2\n" 4058 "movhps %%xmm13, 8+%2\n" 4059 : 4060 : "m" (arg1), "m" (arg2), "m" (result0), "m" (state[0]) 4061 : "xmm12", "xmm13" 4062 ); 4063 4064 if (result0.uq[0] == 0x65396ddebd61e5c9ULL && result0.uq[1] == 0x18b43ccdffec0aabULL ) 4065 { 4066 printf("pclmulqdq_91 ... ok\n"); 4067 } 4068 else 4069 { 4070 printf("pclmulqdq_91 ... not ok\n"); 4071 printf(" result0.uq[0] = %llu (expected %llu)\n", result0.uq[0], 0x65396ddebd61e5c9ULL); 4072 printf(" result0.uq[1] = %llu (expected %llu)\n", result0.uq[1], 0x18b43ccdffec0aabULL); 4073 } 4074 } 4075 else 4076 { 4077 printf("pclmulqdq_91 ... failed\n"); 4078 } 4079 4080 return; 4081 } 4082 4083 static void pclmulqdq_92(void) 4084 { 4085 reg128_t arg1 = { .uq = { 0x94caf62015dcea6bULL, 0x8a657b10e19c3426ULL } }; 4086 reg128_t arg2 = { .uq = { 0x4532bd894f7bd902ULL, 0x22995ec5866bab70ULL } }; 4087 reg128_t result0; 4088 char state[108]; 4089 4090 if (sigsetjmp(catchpoint, 1) == 0) 4091 { 4092 asm( 4093 "ffree %%st(7)\n" 4094 "ffree %%st(6)\n" 4095 "ffree %%st(5)\n" 4096 "ffree %%st(4)\n" 4097 "movlps 0+%0, %%xmm12\n" 4098 "movhps 8+%0, %%xmm12\n" 4099 "movlps 0+%1, %%xmm13\n" 4100 "movhps 8+%1, %%xmm13\n" 4101 "pclmulqdq $17, %%xmm12, %%xmm13\n" 4102 "movlps %%xmm13, 0+%2\n" 4103 "movhps %%xmm13, 8+%2\n" 4104 : 4105 : "m" (arg1), "m" (arg2), "m" (result0), "m" (state[0]) 4106 : "xmm12", "xmm13" 4107 ); 4108 4109 if (result0.uq[0] == 0xe5df1fa230385520ULL && result0.uq[1] == 0x101105049484270bULL ) 4110 { 4111 printf("pclmulqdq_92 ... ok\n"); 4112 } 4113 else 4114 { 4115 printf("pclmulqdq_92 ... not ok\n"); 4116 printf(" result0.uq[0] = %llu (expected %llu)\n", result0.uq[0], 0xe5df1fa230385520ULL); 4117 printf(" result0.uq[1] = %llu (expected %llu)\n", result0.uq[1], 0x101105049484270bULL); 4118 } 4119 } 4120 else 4121 { 4122 printf("pclmulqdq_92 ... failed\n"); 4123 } 4124 4125 return; 4126 } 4127 4128 static void pclmulqdq_93(void) 4129 { 4130 reg128_t arg1 = { .uq = { 0x114caf63a1e394a7ULL, 0xc8a657b2b79f8940ULL } }; 4131 reg128_t arg2 = { .uq = { 0x64532bda3a7d838fULL, 0xf22995edf3ec80b4ULL } }; 4132 reg128_t result0; 4133 char state[108]; 4134 4135 if (sigsetjmp(catchpoint, 1) == 0) 4136 { 4137 asm( 4138 "ffree %%st(7)\n" 4139 "ffree %%st(6)\n" 4140 "ffree %%st(5)\n" 4141 "ffree %%st(4)\n" 4142 "movlps 0+%1, %%xmm13\n" 4143 "movhps 8+%1, %%xmm13\n" 4144 "pclmulqdq $0, %0, %%xmm13\n" 4145 "movlps %%xmm13, 0+%2\n" 4146 "movhps %%xmm13, 8+%2\n" 4147 : 4148 : "m" (arg1), "m" (arg2), "m" (result0), "m" (state[0]) 4149 : "xmm12", "xmm13" 4150 ); 4151 4152 if (result0.uq[0] == 0x14b59c3f07c170cdULL && result0.uq[1] == 0x063afa20a20bf1d3ULL ) 4153 { 4154 printf("pclmulqdq_93 ... ok\n"); 4155 } 4156 else 4157 { 4158 printf("pclmulqdq_93 ... not ok\n"); 4159 printf(" result0.uq[0] = %llu (expected %llu)\n", result0.uq[0], 0x14b59c3f07c170cdULL); 4160 printf(" result0.uq[1] = %llu (expected %llu)\n", result0.uq[1], 0x063afa20a20bf1d3ULL); 4161 } 4162 } 4163 else 4164 { 4165 printf("pclmulqdq_93 ... failed\n"); 4166 } 4167 4168 return; 4169 } 4170 4171 static void pclmulqdq_94(void) 4172 { 4173 reg128_t arg1 = { .uq = { 0x7914caf7d8a3ff49ULL, 0xfc8a657cc2ffbe95ULL } }; 4174 reg128_t arg2 = { .uq = { 0xbe4532bf482d9e37ULL, 0x9f2299608ac48e08ULL } }; 4175 reg128_t result0; 4176 char state[108]; 4177 4178 if (sigsetjmp(catchpoint, 1) == 0) 4179 { 4180 asm( 4181 "ffree %%st(7)\n" 4182 "ffree %%st(6)\n" 4183 "ffree %%st(5)\n" 4184 "ffree %%st(4)\n" 4185 "movlps 0+%1, %%xmm13\n" 4186 "movhps 8+%1, %%xmm13\n" 4187 "pclmulqdq $1, %0, %%xmm13\n" 4188 "movlps %%xmm13, 0+%2\n" 4189 "movhps %%xmm13, 8+%2\n" 4190 : 4191 : "m" (arg1), "m" (arg2), "m" (result0), "m" (state[0]) 4192 : "xmm12", "xmm13" 4193 ); 4194 4195 if (result0.uq[0] == 0xd1b3a3b63ca68448ULL && result0.uq[1] == 0x39b309fce070d54fULL ) 4196 { 4197 printf("pclmulqdq_94 ... ok\n"); 4198 } 4199 else 4200 { 4201 printf("pclmulqdq_94 ... not ok\n"); 4202 printf(" result0.uq[0] = %llu (expected %llu)\n", result0.uq[0], 0xd1b3a3b63ca68448ULL); 4203 printf(" result0.uq[1] = %llu (expected %llu)\n", result0.uq[1], 0x39b309fce070d54fULL); 4204 } 4205 } 4206 else 4207 { 4208 printf("pclmulqdq_94 ... failed\n"); 4209 } 4210 4211 return; 4212 } 4213 4214 static void pclmulqdq_95(void) 4215 { 4216 reg128_t arg1 = { .uq = { 0x4f914cb1241005f3ULL, 0xe7c8a65978b5c1eaULL } }; 4217 reg128_t arg2 = { .uq = { 0x73e4532d9b089fe4ULL, 0x39f22997ac320ee1ULL } }; 4218 reg128_t result0; 4219 char state[108]; 4220 4221 if (sigsetjmp(catchpoint, 1) == 0) 4222 { 4223 asm( 4224 "ffree %%st(7)\n" 4225 "ffree %%st(6)\n" 4226 "ffree %%st(5)\n" 4227 "ffree %%st(4)\n" 4228 "movlps 0+%1, %%xmm13\n" 4229 "movhps 8+%1, %%xmm13\n" 4230 "pclmulqdq $16, %0, %%xmm13\n" 4231 "movlps %%xmm13, 0+%2\n" 4232 "movhps %%xmm13, 8+%2\n" 4233 : 4234 : "m" (arg1), "m" (arg2), "m" (result0), "m" (state[0]) 4235 : "xmm12", "xmm13" 4236 ); 4237 4238 if (result0.uq[0] == 0xfe28658d590ed368ULL && result0.uq[1] == 0x2a0aa820dbbaae83ULL ) 4239 { 4240 printf("pclmulqdq_95 ... ok\n"); 4241 } 4242 else 4243 { 4244 printf("pclmulqdq_95 ... not ok\n"); 4245 printf(" result0.uq[0] = %llu (expected %llu)\n", result0.uq[0], 0xfe28658d590ed368ULL); 4246 printf(" result0.uq[1] = %llu (expected %llu)\n", result0.uq[1], 0x2a0aa820dbbaae83ULL); 4247 } 4248 } 4249 else 4250 { 4251 printf("pclmulqdq_95 ... failed\n"); 4252 } 4253 4254 return; 4255 } 4256 4257 static void pclmulqdq_96(void) 4258 { 4259 reg128_t arg1 = { .uq = { 0xdcf914ccbcc6c661ULL, 0xae7c8a6735112221ULL } }; 4260 reg128_t arg2 = { .uq = { 0x973e453471365001ULL, 0x8b9f229b0f48e6f1ULL } }; 4261 reg128_t result0; 4262 char state[108]; 4263 4264 if (sigsetjmp(catchpoint, 1) == 0) 4265 { 4266 asm( 4267 "ffree %%st(7)\n" 4268 "ffree %%st(6)\n" 4269 "ffree %%st(5)\n" 4270 "ffree %%st(4)\n" 4271 "movlps 0+%1, %%xmm13\n" 4272 "movhps 8+%1, %%xmm13\n" 4273 "pclmulqdq $17, %0, %%xmm13\n" 4274 "movlps %%xmm13, 0+%2\n" 4275 "movhps %%xmm13, 8+%2\n" 4276 : 4277 : "m" (arg1), "m" (arg2), "m" (result0), "m" (state[0]) 4278 : "xmm12", "xmm13" 4279 ); 4280 4281 if (result0.uq[0] == 0x12081cb0e7a6fad1ULL && result0.uq[1] == 0x53e4d12a4d38b461ULL ) 4282 { 4283 printf("pclmulqdq_96 ... ok\n"); 4284 } 4285 else 4286 { 4287 printf("pclmulqdq_96 ... not ok\n"); 4288 printf(" result0.uq[0] = %llu (expected %llu)\n", result0.uq[0], 0x12081cb0e7a6fad1ULL); 4289 printf(" result0.uq[1] = %llu (expected %llu)\n", result0.uq[1], 0x53e4d12a4d38b461ULL); 4290 } 4291 } 4292 else 4293 { 4294 printf("pclmulqdq_96 ... failed\n"); 4295 } 4296 4297 return; 4298 } 4299 4300 static void pclmulqdq_97(void) 4301 { 4302 reg128_t arg1 = { .uq = { 0x85cf914e6e523269ULL, 0x82e7c8a81dd6d825ULL } }; 4303 reg128_t arg2 = { .uq = { 0x8173e454e5992affULL, 0x80b9f22b597a546cULL } }; 4304 reg128_t result0; 4305 char state[108]; 4306 4307 if (sigsetjmp(catchpoint, 1) == 0) 4308 { 4309 asm( 4310 "ffree %%st(7)\n" 4311 "ffree %%st(6)\n" 4312 "ffree %%st(5)\n" 4313 "ffree %%st(4)\n" 4314 "movlps 0+%0, %%xmm12\n" 4315 "movhps 8+%0, %%xmm12\n" 4316 "movlps 0+%1, %%xmm13\n" 4317 "movhps 8+%1, %%xmm13\n" 4318 "pclmulqdq $0, %%xmm12, %%xmm13\n" 4319 "movlps %%xmm13, 0+%2\n" 4320 "movhps %%xmm13, 8+%2\n" 4321 : 4322 : "m" (arg1), "m" (arg2), "m" (result0), "m" (state[0]) 4323 : "xmm12", "xmm13" 4324 ); 4325 4326 if (result0.uq[0] == 0x747ebfee06547327ULL && result0.uq[1] == 0x425a6e980d6f32f8ULL ) 4327 { 4328 printf("pclmulqdq_97 ... ok\n"); 4329 } 4330 else 4331 { 4332 printf("pclmulqdq_97 ... not ok\n"); 4333 printf(" result0.uq[0] = %llu (expected %llu)\n", result0.uq[0], 0x747ebfee06547327ULL); 4334 printf(" result0.uq[1] = %llu (expected %llu)\n", result0.uq[1], 0x425a6e980d6f32f8ULL); 4335 } 4336 } 4337 else 4338 { 4339 printf("pclmulqdq_97 ... failed\n"); 4340 } 4341 4342 return; 4343 } 4344 4345 static void pclmulqdq_98(void) 4346 { 4347 reg128_t arg1 = { .uq = { 0x405cf9168b6ae925ULL, 0xe02e7c8c2c63337fULL } }; 4348 reg128_t arg2 = { .uq = { 0xb0173e46fcdf58acULL, 0x580b9f245d1d6b45ULL } }; 4349 reg128_t result0; 4350 char state[108]; 4351 4352 if (sigsetjmp(catchpoint, 1) == 0) 4353 { 4354 asm( 4355 "ffree %%st(7)\n" 4356 "ffree %%st(6)\n" 4357 "ffree %%st(5)\n" 4358 "ffree %%st(4)\n" 4359 "movlps 0+%0, %%xmm12\n" 4360 "movhps 8+%0, %%xmm12\n" 4361 "movlps 0+%1, %%xmm13\n" 4362 "movhps 8+%1, %%xmm13\n" 4363 "pclmulqdq $1, %%xmm12, %%xmm13\n" 4364 "movlps %%xmm13, 0+%2\n" 4365 "movhps %%xmm13, 8+%2\n" 4366 : 4367 : "m" (arg1), "m" (arg2), "m" (result0), "m" (state[0]) 4368 : "xmm12", "xmm13" 4369 ); 4370 4371 if (result0.uq[0] == 0x10d3ee4c6cada3f1ULL && result0.uq[1] == 0x1612f3ff623fded0ULL ) 4372 { 4373 printf("pclmulqdq_98 ... ok\n"); 4374 } 4375 else 4376 { 4377 printf("pclmulqdq_98 ... not ok\n"); 4378 printf(" result0.uq[0] = %llu (expected %llu)\n", result0.uq[0], 0x10d3ee4c6cada3f1ULL); 4379 printf(" result0.uq[1] = %llu (expected %llu)\n", result0.uq[1], 0x1612f3ff623fded0ULL); 4380 } 4381 } 4382 else 4383 { 4384 printf("pclmulqdq_98 ... failed\n"); 4385 } 4386 4387 return; 4388 } 4389 4390 static void pclmulqdq_99(void) 4391 { 4392 reg128_t arg1 = { .uq = { 0xec05cf93053c748fULL, 0xb602e7ca694bf934ULL } }; 4393 reg128_t arg2 = { .uq = { 0x5b0173e61353bb89ULL, 0xed80b9f3e0579cb5ULL } }; 4394 reg128_t result0; 4395 char state[108]; 4396 4397 if (sigsetjmp(catchpoint, 1) == 0) 4398 { 4399 asm( 4400 "ffree %%st(7)\n" 4401 "ffree %%st(6)\n" 4402 "ffree %%st(5)\n" 4403 "ffree %%st(4)\n" 4404 "movlps 0+%0, %%xmm12\n" 4405 "movhps 8+%0, %%xmm12\n" 4406 "movlps 0+%1, %%xmm13\n" 4407 "movhps 8+%1, %%xmm13\n" 4408 "pclmulqdq $16, %%xmm12, %%xmm13\n" 4409 "movlps %%xmm13, 0+%2\n" 4410 "movhps %%xmm13, 8+%2\n" 4411 : 4412 : "m" (arg1), "m" (arg2), "m" (result0), "m" (state[0]) 4413 : "xmm12", "xmm13" 4414 ); 4415 4416 if (result0.uq[0] == 0x465f8b79f0199694ULL && result0.uq[1] == 0x228a0003e5a76b0cULL ) 4417 { 4418 printf("pclmulqdq_99 ... ok\n"); 4419 } 4420 else 4421 { 4422 printf("pclmulqdq_99 ... not ok\n"); 4423 printf(" result0.uq[0] = %llu (expected %llu)\n", result0.uq[0], 0x465f8b79f0199694ULL); 4424 printf(" result0.uq[1] = %llu (expected %llu)\n", result0.uq[1], 0x228a0003e5a76b0cULL); 4425 } 4426 } 4427 else 4428 { 4429 printf("pclmulqdq_99 ... failed\n"); 4430 } 4431 4432 return; 4433 } 4434 4435 static void pclmulqdq_100(void) 4436 { 4437 reg128_t arg1 = { .uq = { 0xb6c05cfad6d98d47ULL, 0x9b602e7e421a8590ULL } }; 4438 reg128_t arg2 = { .uq = { 0x4db0173fffbb01b7ULL, 0xe6d80ba0d68b3fc8ULL } }; 4439 reg128_t result0; 4440 char state[108]; 4441 4442 if (sigsetjmp(catchpoint, 1) == 0) 4443 { 4444 asm( 4445 "ffree %%st(7)\n" 4446 "ffree %%st(6)\n" 4447 "ffree %%st(5)\n" 4448 "ffree %%st(4)\n" 4449 "movlps 0+%0, %%xmm12\n" 4450 "movhps 8+%0, %%xmm12\n" 4451 "movlps 0+%1, %%xmm13\n" 4452 "movhps 8+%1, %%xmm13\n" 4453 "pclmulqdq $17, %%xmm12, %%xmm13\n" 4454 "movlps %%xmm13, 0+%2\n" 4455 "movhps %%xmm13, 8+%2\n" 4456 : 4457 : "m" (arg1), "m" (arg2), "m" (result0), "m" (state[0]) 4458 : "xmm12", "xmm13" 4459 ); 4460 4461 if (result0.uq[0] == 0xf7caf3aef858f080ULL && result0.uq[1] == 0x7b3959bd543d5319ULL ) 4462 { 4463 printf("pclmulqdq_100 ... ok\n"); 4464 } 4465 else 4466 { 4467 printf("pclmulqdq_100 ... not ok\n"); 4468 printf(" result0.uq[0] = %llu (expected %llu)\n", result0.uq[0], 0xf7caf3aef858f080ULL); 4469 printf(" result0.uq[1] = %llu (expected %llu)\n", result0.uq[1], 0x7b3959bd543d5319ULL); 4470 } 4471 } 4472 else 4473 { 4474 printf("pclmulqdq_100 ... failed\n"); 4475 } 4476 4477 return; 4478 } 4479 4480 static void pclmulqdq_101(void) 4481 { 4482 reg128_t arg1 = { .uq = { 0x736c05d149f35ed3ULL, 0xf9b602e98ba76e5aULL } }; 4483 reg128_t arg2 = { .uq = { 0x7cdb0175a481761cULL, 0x3e6d80bbb0ee79fdULL } }; 4484 reg128_t result0; 4485 char state[108]; 4486 4487 if (sigsetjmp(catchpoint, 1) == 0) 4488 { 4489 asm( 4490 "ffree %%st(7)\n" 4491 "ffree %%st(6)\n" 4492 "ffree %%st(5)\n" 4493 "ffree %%st(4)\n" 4494 "movlps 0+%1, %%xmm13\n" 4495 "movhps 8+%1, %%xmm13\n" 4496 "pclmulqdq $0, %0, %%xmm13\n" 4497 "movlps %%xmm13, 0+%2\n" 4498 "movhps %%xmm13, 8+%2\n" 4499 : 4500 : "m" (arg1), "m" (arg2), "m" (result0), "m" (state[0]) 4501 : "xmm12", "xmm13" 4502 ); 4503 4504 if (result0.uq[0] == 0x4d7e2029ce741ae4ULL && result0.uq[1] == 0x17f7c4da2519e2fbULL ) 4505 { 4506 printf("pclmulqdq_101 ... ok\n"); 4507 } 4508 else 4509 { 4510 printf("pclmulqdq_101 ... not ok\n"); 4511 printf(" result0.uq[0] = %llu (expected %llu)\n", result0.uq[0], 0x4d7e2029ce741ae4ULL); 4512 printf(" result0.uq[1] = %llu (expected %llu)\n", result0.uq[1], 0x17f7c4da2519e2fbULL); 4513 } 4514 } 4515 else 4516 { 4517 printf("pclmulqdq_101 ... failed\n"); 4518 } 4519 4520 return; 4521 } 4522 4523 static void pclmulqdq_102(void) 4524 { 4525 reg128_t arg1 = { .uq = { 0xdf36c05eaf24fbebULL, 0xaf9b60303e403ce6ULL } }; 4526 reg128_t arg2 = { .uq = { 0x57cdb018fdcddd62ULL, 0x2be6d80d5d94ada0ULL } }; 4527 reg128_t result0; 4528 char state[108]; 4529 4530 if (sigsetjmp(catchpoint, 1) == 0) 4531 { 4532 asm( 4533 "ffree %%st(7)\n" 4534 "ffree %%st(6)\n" 4535 "ffree %%st(5)\n" 4536 "ffree %%st(4)\n" 4537 "movlps 0+%1, %%xmm13\n" 4538 "movhps 8+%1, %%xmm13\n" 4539 "pclmulqdq $1, %0, %%xmm13\n" 4540 "movlps %%xmm13, 0+%2\n" 4541 "movhps %%xmm13, 8+%2\n" 4542 : 4543 : "m" (arg1), "m" (arg2), "m" (result0), "m" (state[0]) 4544 : "xmm12", "xmm13" 4545 ); 4546 4547 if (result0.uq[0] == 0x0b6d29afcf3d77e0ULL && result0.uq[1] == 0x1c3f14ae1ee34afcULL ) 4548 { 4549 printf("pclmulqdq_102 ... ok\n"); 4550 } 4551 else 4552 { 4553 printf("pclmulqdq_102 ... not ok\n"); 4554 printf(" result0.uq[0] = %llu (expected %llu)\n", result0.uq[0], 0x0b6d29afcf3d77e0ULL); 4555 printf(" result0.uq[1] = %llu (expected %llu)\n", result0.uq[1], 0x1c3f14ae1ee34afcULL); 4556 } 4557 } 4558 else 4559 { 4560 printf("pclmulqdq_102 ... failed\n"); 4561 } 4562 4563 return; 4564 } 4565 4566 static void pclmulqdq_103(void) 4567 { 4568 reg128_t arg1 = { .uq = { 0x15f36c078d7815bfULL, 0xcaf9b604ad69c9ccULL } }; 4569 reg128_t arg2 = { .uq = { 0x657cdb033562a3d5ULL, 0xf2be6d82715f10d7ULL } }; 4570 reg128_t result0; 4571 char state[108]; 4572 4573 if (sigsetjmp(catchpoint, 1) == 0) 4574 { 4575 asm( 4576 "ffree %%st(7)\n" 4577 "ffree %%st(6)\n" 4578 "ffree %%st(5)\n" 4579 "ffree %%st(4)\n" 4580 "movlps 0+%1, %%xmm13\n" 4581 "movhps 8+%1, %%xmm13\n" 4582 "pclmulqdq $16, %0, %%xmm13\n" 4583 "movlps %%xmm13, 0+%2\n" 4584 "movhps %%xmm13, 8+%2\n" 4585 : 4586 : "m" (arg1), "m" (arg2), "m" (result0), "m" (state[0]) 4587 : "xmm12", "xmm13" 4588 ); 4589 4590 if (result0.uq[0] == 0x45492b482259333cULL && result0.uq[1] == 0x28222aa042940471ULL ) 4591 { 4592 printf("pclmulqdq_103 ... ok\n"); 4593 } 4594 else 4595 { 4596 printf("pclmulqdq_103 ... not ok\n"); 4597 printf(" result0.uq[0] = %llu (expected %llu)\n", result0.uq[0], 0x45492b482259333cULL); 4598 printf(" result0.uq[1] = %llu (expected %llu)\n", result0.uq[1], 0x28222aa042940471ULL); 4599 } 4600 } 4601 else 4602 { 4603 printf("pclmulqdq_103 ... failed\n"); 4604 } 4605 4606 return; 4607 } 4608 4609 static void pclmulqdq_104(void) 4610 { 4611 reg128_t arg1 = { .uq = { 0xb95f36c20f5d4758ULL, 0x5caf9b61e65c629bULL } }; 4612 reg128_t arg2 = { .uq = { 0xee57cdb1d9dbf03eULL, 0x772be6d9cb9bb70eULL } }; 4613 reg128_t result0; 4614 char state[108]; 4615 4616 if (sigsetjmp(catchpoint, 1) == 0) 4617 { 4618 asm( 4619 "ffree %%st(7)\n" 4620 "ffree %%st(6)\n" 4621 "ffree %%st(5)\n" 4622 "ffree %%st(4)\n" 4623 "movlps 0+%1, %%xmm13\n" 4624 "movhps 8+%1, %%xmm13\n" 4625 "pclmulqdq $17, %0, %%xmm13\n" 4626 "movlps %%xmm13, 0+%2\n" 4627 "movhps %%xmm13, 8+%2\n" 4628 : 4629 : "m" (arg1), "m" (arg2), "m" (result0), "m" (state[0]) 4630 : "xmm12", "xmm13" 4631 ); 4632 4633 if (result0.uq[0] == 0xa564c7636b75ca82ULL && result0.uq[1] == 0x18ea04a16910639dULL ) 4634 { 4635 printf("pclmulqdq_104 ... ok\n"); 4636 } 4637 else 4638 { 4639 printf("pclmulqdq_104 ... not ok\n"); 4640 printf(" result0.uq[0] = %llu (expected %llu)\n", result0.uq[0], 0xa564c7636b75ca82ULL); 4641 printf(" result0.uq[1] = %llu (expected %llu)\n", result0.uq[1], 0x18ea04a16910639dULL); 4642 } 4643 } 4644 else 4645 { 4646 printf("pclmulqdq_104 ... failed\n"); 4647 } 4648 4649 return; 4650 } 4651 4652 static void pclmulqdq_105(void) 4653 { 4654 reg128_t arg1 = { .uq = { 0x3b95f36dc47b9a76ULL, 0x1dcaf9b7c0eb8c2aULL } }; 4655 reg128_t arg2 = { .uq = { 0x0ee57cdcbf238504ULL, 0x0772be6f3e3f8171ULL } }; 4656 reg128_t result0; 4657 char state[108]; 4658 4659 if (sigsetjmp(catchpoint, 1) == 0) 4660 { 4661 asm( 4662 "ffree %%st(7)\n" 4663 "ffree %%st(6)\n" 4664 "ffree %%st(5)\n" 4665 "ffree %%st(4)\n" 4666 "movlps 0+%0, %%xmm12\n" 4667 "movhps 8+%0, %%xmm12\n" 4668 "movlps 0+%1, %%xmm13\n" 4669 "movhps 8+%1, %%xmm13\n" 4670 "pclmulqdq $0, %%xmm12, %%xmm13\n" 4671 "movlps %%xmm13, 0+%2\n" 4672 "movhps %%xmm13, 8+%2\n" 4673 : 4674 : "m" (arg1), "m" (arg2), "m" (result0), "m" (state[0]) 4675 : "xmm12", "xmm13" 4676 ); 4677 4678 if (result0.uq[0] == 0x93da7ceefb7cc7d8ULL && result0.uq[1] == 0x01515044e5c70080ULL ) 4679 { 4680 printf("pclmulqdq_105 ... ok\n"); 4681 } 4682 else 4683 { 4684 printf("pclmulqdq_105 ... not ok\n"); 4685 printf(" result0.uq[0] = %llu (expected %llu)\n", result0.uq[0], 0x93da7ceefb7cc7d8ULL); 4686 printf(" result0.uq[1] = %llu (expected %llu)\n", result0.uq[1], 0x01515044e5c70080ULL); 4687 } 4688 } 4689 else 4690 { 4691 printf("pclmulqdq_105 ... failed\n"); 4692 } 4693 4694 return; 4695 } 4696 4697 static void pclmulqdq_106(void) 4698 { 4699 reg128_t arg1 = { .uq = { 0xc3b95f3875cd7fa9ULL, 0xa1dcaf9d11947ec5ULL } }; 4700 reg128_t arg2 = { .uq = { 0x90ee57cf5f77fe4fULL, 0x88772be88669be14ULL } }; 4701 reg128_t result0; 4702 char state[108]; 4703 4704 if (sigsetjmp(catchpoint, 1) == 0) 4705 { 4706 asm( 4707 "ffree %%st(7)\n" 4708 "ffree %%st(6)\n" 4709 "ffree %%st(5)\n" 4710 "ffree %%st(4)\n" 4711 "movlps 0+%0, %%xmm12\n" 4712 "movhps 8+%0, %%xmm12\n" 4713 "movlps 0+%1, %%xmm13\n" 4714 "movhps 8+%1, %%xmm13\n" 4715 "pclmulqdq $1, %%xmm12, %%xmm13\n" 4716 "movlps %%xmm13, 0+%2\n" 4717 "movhps %%xmm13, 8+%2\n" 4718 : 4719 : "m" (arg1), "m" (arg2), "m" (result0), "m" (state[0]) 4720 : "xmm12", "xmm13" 4721 ); 4722 4723 if (result0.uq[0] == 0x1ff2cadc63448a34ULL && result0.uq[1] == 0x67e792c3afe8cc55ULL ) 4724 { 4725 printf("pclmulqdq_106 ... ok\n"); 4726 } 4727 else 4728 { 4729 printf("pclmulqdq_106 ... not ok\n"); 4730 printf(" result0.uq[0] = %llu (expected %llu)\n", result0.uq[0], 0x1ff2cadc63448a34ULL); 4731 printf(" result0.uq[1] = %llu (expected %llu)\n", result0.uq[1], 0x67e792c3afe8cc55ULL); 4732 } 4733 } 4734 else 4735 { 4736 printf("pclmulqdq_106 ... failed\n"); 4737 } 4738 4739 return; 4740 } 4741 4742 static void pclmulqdq_107(void) 4743 { 4744 reg128_t arg1 = { .uq = { 0x443b95f521e29df9ULL, 0xe21dcafb779f0dedULL } }; 4745 reg128_t arg2 = { .uq = { 0xb10ee57e927d45e3ULL, 0x988772c01fec61e2ULL } }; 4746 reg128_t result0; 4747 char state[108]; 4748 4749 if (sigsetjmp(catchpoint, 1) == 0) 4750 { 4751 asm( 4752 "ffree %%st(7)\n" 4753 "ffree %%st(6)\n" 4754 "ffree %%st(5)\n" 4755 "ffree %%st(4)\n" 4756 "movlps 0+%0, %%xmm12\n" 4757 "movhps 8+%0, %%xmm12\n" 4758 "movlps 0+%1, %%xmm13\n" 4759 "movhps 8+%1, %%xmm13\n" 4760 "pclmulqdq $16, %%xmm12, %%xmm13\n" 4761 "movlps %%xmm13, 0+%2\n" 4762 "movhps %%xmm13, 8+%2\n" 4763 : 4764 : "m" (arg1), "m" (arg2), "m" (result0), "m" (state[0]) 4765 : "xmm12", "xmm13" 4766 ); 4767 4768 if (result0.uq[0] == 0x0fa35a87a4453f57ULL && result0.uq[1] == 0x638b976af3ff9af9ULL ) 4769 { 4770 printf("pclmulqdq_107 ... ok\n"); 4771 } 4772 else 4773 { 4774 printf("pclmulqdq_107 ... not ok\n"); 4775 printf(" result0.uq[0] = %llu (expected %llu)\n", result0.uq[0], 0x0fa35a87a4453f57ULL); 4776 printf(" result0.uq[1] = %llu (expected %llu)\n", result0.uq[1], 0x638b976af3ff9af9ULL); 4777 } 4778 } 4779 else 4780 { 4781 printf("pclmulqdq_107 ... failed\n"); 4782 } 4783 4784 return; 4785 } 4786 4787 static void pclmulqdq_108(void) 4788 { 4789 reg128_t arg1 = { .uq = { 0x4c43b960eea3efe0ULL, 0x2621dcb155ffb6dfULL } }; 4790 reg128_t arg2 = { .uq = { 0xd310ee5981ad9a5cULL, 0x6988772d9f848c1dULL } }; 4791 reg128_t result0; 4792 char state[108]; 4793 4794 if (sigsetjmp(catchpoint, 1) == 0) 4795 { 4796 asm( 4797 "ffree %%st(7)\n" 4798 "ffree %%st(6)\n" 4799 "ffree %%st(5)\n" 4800 "ffree %%st(4)\n" 4801 "movlps 0+%0, %%xmm12\n" 4802 "movhps 8+%0, %%xmm12\n" 4803 "movlps 0+%1, %%xmm13\n" 4804 "movhps 8+%1, %%xmm13\n" 4805 "pclmulqdq $17, %%xmm12, %%xmm13\n" 4806 "movlps %%xmm13, 0+%2\n" 4807 "movhps %%xmm13, 8+%2\n" 4808 : 4809 : "m" (arg1), "m" (arg2), "m" (result0), "m" (state[0]) 4810 : "xmm12", "xmm13" 4811 ); 4812 4813 if (result0.uq[0] == 0x51c023c60bf9b2abULL && result0.uq[1] == 0x0c494dba164d6a1aULL ) 4814 { 4815 printf("pclmulqdq_108 ... ok\n"); 4816 } 4817 else 4818 { 4819 printf("pclmulqdq_108 ... not ok\n"); 4820 printf(" result0.uq[0] = %llu (expected %llu)\n", result0.uq[0], 0x51c023c60bf9b2abULL); 4821 printf(" result0.uq[1] = %llu (expected %llu)\n", result0.uq[1], 0x0c494dba164d6a1aULL); 4822 } 4823 } 4824 else 4825 { 4826 printf("pclmulqdq_108 ... failed\n"); 4827 } 4828 4829 return; 4830 } 4831 4832 static void pclmulqdq_109(void) 4833 { 4834 reg128_t arg1 = { .uq = { 0xf4c43b97a67004fbULL, 0xba621dccb9e5c16eULL } }; 4835 reg128_t arg2 = { .uq = { 0x5d310ee73ba09fa6ULL, 0x2e9887747c7e0ec2ULL } }; 4836 reg128_t result0; 4837 char state[108]; 4838 4839 if (sigsetjmp(catchpoint, 1) == 0) 4840 { 4841 asm( 4842 "ffree %%st(7)\n" 4843 "ffree %%st(6)\n" 4844 "ffree %%st(5)\n" 4845 "ffree %%st(4)\n" 4846 "movlps 0+%1, %%xmm13\n" 4847 "movhps 8+%1, %%xmm13\n" 4848 "pclmulqdq $0, %0, %%xmm13\n" 4849 "movlps %%xmm13, 0+%2\n" 4850 "movhps %%xmm13, 8+%2\n" 4851 : 4852 : "m" (arg1), "m" (arg2), "m" (result0), "m" (state[0]) 4853 : "xmm12", "xmm13" 4854 ); 4855 4856 if (result0.uq[0] == 0x031c347016c9f1faULL && result0.uq[1] == 0x36ed9d92bc682f1eULL ) 4857 { 4858 printf("pclmulqdq_109 ... ok\n"); 4859 } 4860 else 4861 { 4862 printf("pclmulqdq_109 ... not ok\n"); 4863 printf(" result0.uq[0] = %llu (expected %llu)\n", result0.uq[0], 0x031c347016c9f1faULL); 4864 printf(" result0.uq[1] = %llu (expected %llu)\n", result0.uq[1], 0x36ed9d92bc682f1eULL); 4865 } 4866 } 4867 else 4868 { 4869 printf("pclmulqdq_109 ... failed\n"); 4870 } 4871 4872 return; 4873 } 4874 4875 static void pclmulqdq_110(void) 4876 { 4877 reg128_t arg1 = { .uq = { 0x174c43bb1cecc650ULL, 0x0ba621de6d242217ULL } }; 4878 reg128_t arg2 = { .uq = { 0xc5d310f01d3fcff8ULL, 0x62e98878ed4da6ebULL } }; 4879 reg128_t result0; 4880 char state[108]; 4881 4882 if (sigsetjmp(catchpoint, 1) == 0) 4883 { 4884 asm( 4885 "ffree %%st(7)\n" 4886 "ffree %%st(6)\n" 4887 "ffree %%st(5)\n" 4888 "ffree %%st(4)\n" 4889 "movlps 0+%1, %%xmm13\n" 4890 "movhps 8+%1, %%xmm13\n" 4891 "pclmulqdq $1, %0, %%xmm13\n" 4892 "movlps %%xmm13, 0+%2\n" 4893 "movhps %%xmm13, 8+%2\n" 4894 : 4895 : "m" (arg1), "m" (arg2), "m" (result0), "m" (state[0]) 4896 : "xmm12", "xmm13" 4897 ); 4898 4899 if (result0.uq[0] == 0xacf5238d6a7eee70ULL && result0.uq[1] == 0x07183a9373413ee5ULL ) 4900 { 4901 printf("pclmulqdq_110 ... ok\n"); 4902 } 4903 else 4904 { 4905 printf("pclmulqdq_110 ... not ok\n"); 4906 printf(" result0.uq[0] = %llu (expected %llu)\n", result0.uq[0], 0xacf5238d6a7eee70ULL); 4907 printf(" result0.uq[1] = %llu (expected %llu)\n", result0.uq[1], 0x07183a9373413ee5ULL); 4908 } 4909 } 4910 else 4911 { 4912 printf("pclmulqdq_110 ... failed\n"); 4913 } 4914 4915 return; 4916 } 4917 4918 static void pclmulqdq_111(void) 4919 { 4920 reg128_t arg1 = { .uq = { 0xf174c43d5d549266ULL, 0x78ba621f8d580822ULL } }; 4921 reg128_t arg2 = { .uq = { 0x3c5d3110a559c300ULL, 0x1e2e9889315aa06fULL } }; 4922 reg128_t result0; 4923 char state[108]; 4924 4925 if (sigsetjmp(catchpoint, 1) == 0) 4926 { 4927 asm( 4928 "ffree %%st(7)\n" 4929 "ffree %%st(6)\n" 4930 "ffree %%st(5)\n" 4931 "ffree %%st(4)\n" 4932 "movlps 0+%1, %%xmm13\n" 4933 "movhps 8+%1, %%xmm13\n" 4934 "pclmulqdq $16, %0, %%xmm13\n" 4935 "movlps %%xmm13, 0+%2\n" 4936 "movhps %%xmm13, 8+%2\n" 4937 : 4938 : "m" (arg1), "m" (arg2), "m" (result0), "m" (state[0]) 4939 : "xmm12", "xmm13" 4940 ); 4941 4942 if (result0.uq[0] == 0xf27d9c6ac793e600ULL && result0.uq[1] == 0x0aa022a73ecb539dULL ) 4943 { 4944 printf("pclmulqdq_111 ... ok\n"); 4945 } 4946 else 4947 { 4948 printf("pclmulqdq_111 ... not ok\n"); 4949 printf(" result0.uq[0] = %llu (expected %llu)\n", result0.uq[0], 0xf27d9c6ac793e600ULL); 4950 printf(" result0.uq[1] = %llu (expected %llu)\n", result0.uq[1], 0x0aa022a73ecb539dULL); 4951 } 4952 } 4953 else 4954 { 4955 printf("pclmulqdq_111 ... failed\n"); 4956 } 4957 4958 return; 4959 } 4960 4961 static void pclmulqdq_112(void) 4962 { 4963 reg128_t arg1 = { .uq = { 0xcf174c456f5b0f24ULL, 0x678ba623965b4681ULL } }; 4964 reg128_t arg2 = { .uq = { 0xf3c5d312a1db6231ULL, 0xb9e2e98a379b7009ULL } }; 4965 reg128_t result0; 4966 char state[108]; 4967 4968 if (sigsetjmp(catchpoint, 1) == 0) 4969 { 4970 asm( 4971 "ffree %%st(7)\n" 4972 "ffree %%st(6)\n" 4973 "ffree %%st(5)\n" 4974 "ffree %%st(4)\n" 4975 "movlps 0+%1, %%xmm13\n" 4976 "movhps 8+%1, %%xmm13\n" 4977 "pclmulqdq $17, %0, %%xmm13\n" 4978 "movlps %%xmm13, 0+%2\n" 4979 "movhps %%xmm13, 8+%2\n" 4980 : 4981 : "m" (arg1), "m" (arg2), "m" (result0), "m" (state[0]) 4982 : "xmm12", "xmm13" 4983 ); 4984 4985 if (result0.uq[0] == 0xd950b5c449820289ULL && result0.uq[1] == 0x3a31f7c40b66ebf6ULL ) 4986 { 4987 printf("pclmulqdq_112 ... ok\n"); 4988 } 4989 else 4990 { 4991 printf("pclmulqdq_112 ... not ok\n"); 4992 printf(" result0.uq[0] = %llu (expected %llu)\n", result0.uq[0], 0xd950b5c449820289ULL); 4993 printf(" result0.uq[1] = %llu (expected %llu)\n", result0.uq[1], 0x3a31f7c40b66ebf6ULL); 4994 } 4995 } 4996 else 4997 { 4998 printf("pclmulqdq_112 ... failed\n"); 4999 } 5000 5001 return; 5002 } 5003 5004 static void pclmulqdq_113(void) 5005 { 5006 reg128_t arg1 = { .uq = { 0x9cf174c5f27b76f5ULL, 0x8e78ba63cfeb7a67ULL } }; 5007 reg128_t arg2 = { .uq = { 0x873c5d32cea37c20ULL, 0x439e2e9a45ff7cffULL } }; 5008 reg128_t result0; 5009 char state[108]; 5010 5011 if (sigsetjmp(catchpoint, 1) == 0) 5012 { 5013 asm( 5014 "ffree %%st(7)\n" 5015 "ffree %%st(6)\n" 5016 "ffree %%st(5)\n" 5017 "ffree %%st(4)\n" 5018 "movlps 0+%0, %%xmm12\n" 5019 "movhps 8+%0, %%xmm12\n" 5020 "movlps 0+%1, %%xmm13\n" 5021 "movhps 8+%1, %%xmm13\n" 5022 "pclmulqdq $0, %%xmm12, %%xmm13\n" 5023 "movlps %%xmm13, 0+%2\n" 5024 "movhps %%xmm13, 8+%2\n" 5025 : 5026 : "m" (arg1), "m" (arg2), "m" (result0), "m" (state[0]) 5027 : "xmm12", "xmm13" 5028 ); 5029 5030 if (result0.uq[0] == 0xd8c13a16143112a0ULL && result0.uq[1] == 0x4db281bbf229390cULL ) 5031 { 5032 printf("pclmulqdq_113 ... ok\n"); 5033 } 5034 else 5035 { 5036 printf("pclmulqdq_113 ... not ok\n"); 5037 printf(" result0.uq[0] = %llu (expected %llu)\n", result0.uq[0], 0xd8c13a16143112a0ULL); 5038 printf(" result0.uq[1] = %llu (expected %llu)\n", result0.uq[1], 0x4db281bbf229390cULL); 5039 } 5040 } 5041 else 5042 { 5043 printf("pclmulqdq_113 ... failed\n"); 5044 } 5045 5046 return; 5047 } 5048 5049 static void pclmulqdq_114(void) 5050 { 5051 reg128_t arg1 = { .uq = { 0xe1cf174e09ad7d6cULL, 0x70e78ba7e3847da5ULL } }; 5052 reg128_t arg2 = { .uq = { 0xf873c5d4d86ffdbfULL, 0xbc39e2eb42e5bdccULL } }; 5053 reg128_t result0; 5054 char state[108]; 5055 5056 if (sigsetjmp(catchpoint, 1) == 0) 5057 { 5058 asm( 5059 "ffree %%st(7)\n" 5060 "ffree %%st(6)\n" 5061 "ffree %%st(5)\n" 5062 "ffree %%st(4)\n" 5063 "movlps 0+%0, %%xmm12\n" 5064 "movhps 8+%0, %%xmm12\n" 5065 "movlps 0+%1, %%xmm13\n" 5066 "movhps 8+%1, %%xmm13\n" 5067 "pclmulqdq $1, %%xmm12, %%xmm13\n" 5068 "movlps %%xmm13, 0+%2\n" 5069 "movhps %%xmm13, 8+%2\n" 5070 : 5071 : "m" (arg1), "m" (arg2), "m" (result0), "m" (state[0]) 5072 : "xmm12", "xmm13" 5073 ); 5074 5075 if (result0.uq[0] == 0x71ad667673cd0fd0ULL && result0.uq[1] == 0x665e4345d7dcc057ULL ) 5076 { 5077 printf("pclmulqdq_114 ... ok\n"); 5078 } 5079 else 5080 { 5081 printf("pclmulqdq_114 ... not ok\n"); 5082 printf(" result0.uq[0] = %llu (expected %llu)\n", result0.uq[0], 0x71ad667673cd0fd0ULL); 5083 printf(" result0.uq[1] = %llu (expected %llu)\n", result0.uq[1], 0x665e4345d7dcc057ULL); 5084 } 5085 } 5086 else 5087 { 5088 printf("pclmulqdq_114 ... failed\n"); 5089 } 5090 5091 return; 5092 } 5093 5094 static void pclmulqdq_115(void) 5095 { 5096 reg128_t arg1 = { .uq = { 0x5e1cf17680209dd5ULL, 0xef0e78bc26be0dd7ULL } }; 5097 reg128_t arg2 = { .uq = { 0xb7873c5efa0cc5d8ULL, 0x5bc39e305bb421dbULL } }; 5098 reg128_t result0; 5099 char state[108]; 5100 5101 if (sigsetjmp(catchpoint, 1) == 0) 5102 { 5103 asm( 5104 "ffree %%st(7)\n" 5105 "ffree %%st(6)\n" 5106 "ffree %%st(5)\n" 5107 "ffree %%st(4)\n" 5108 "movlps 0+%0, %%xmm12\n" 5109 "movhps 8+%0, %%xmm12\n" 5110 "movlps 0+%1, %%xmm13\n" 5111 "movhps 8+%1, %%xmm13\n" 5112 "pclmulqdq $16, %%xmm12, %%xmm13\n" 5113 "movlps %%xmm13, 0+%2\n" 5114 "movhps %%xmm13, 8+%2\n" 5115 : 5116 : "m" (arg1), "m" (arg2), "m" (result0), "m" (state[0]) 5117 : "xmm12", "xmm13" 5118 ); 5119 5120 if (result0.uq[0] == 0x4b74700bf2d5e688ULL && result0.uq[1] == 0x666e225b4656f8e1ULL ) 5121 { 5122 printf("pclmulqdq_115 ... ok\n"); 5123 } 5124 else 5125 { 5126 printf("pclmulqdq_115 ... not ok\n"); 5127 printf(" result0.uq[0] = %llu (expected %llu)\n", result0.uq[0], 0x4b74700bf2d5e688ULL); 5128 printf(" result0.uq[1] = %llu (expected %llu)\n", result0.uq[1], 0x666e225b4656f8e1ULL); 5129 } 5130 } 5131 else 5132 { 5133 printf("pclmulqdq_115 ... failed\n"); 5134 } 5135 5136 return; 5137 } 5138 5139 static void pclmulqdq_116(void) 5140 { 5141 reg128_t arg1 = { .uq = { 0xede1cf190487cfdeULL, 0x76f0e78d60f1a6deULL } }; 5142 reg128_t arg2 = { .uq = { 0x3b7873c78f26925eULL, 0x1dbc39e4a641081eULL } }; 5143 reg128_t result0; 5144 char state[108]; 5145 5146 if (sigsetjmp(catchpoint, 1) == 0) 5147 { 5148 asm( 5149 "ffree %%st(7)\n" 5150 "ffree %%st(6)\n" 5151 "ffree %%st(5)\n" 5152 "ffree %%st(4)\n" 5153 "movlps 0+%0, %%xmm12\n" 5154 "movhps 8+%0, %%xmm12\n" 5155 "movlps 0+%1, %%xmm13\n" 5156 "movhps 8+%1, %%xmm13\n" 5157 "pclmulqdq $17, %%xmm12, %%xmm13\n" 5158 "movlps %%xmm13, 0+%2\n" 5159 "movhps %%xmm13, 8+%2\n" 5160 : 5161 : "m" (arg1), "m" (arg2), "m" (result0), "m" (state[0]) 5162 : "xmm12", "xmm13" 5163 ); 5164 5165 if (result0.uq[0] == 0x17a07657d2da7dd4ULL && result0.uq[1] == 0x0545154178351fcaULL ) 5166 { 5167 printf("pclmulqdq_116 ... ok\n"); 5168 } 5169 else 5170 { 5171 printf("pclmulqdq_116 ... not ok\n"); 5172 printf(" result0.uq[0] = %llu (expected %llu)\n", result0.uq[0], 0x17a07657d2da7dd4ULL); 5173 printf(" result0.uq[1] = %llu (expected %llu)\n", result0.uq[1], 0x0545154178351fcaULL); 5174 } 5175 } 5176 else 5177 { 5178 printf("pclmulqdq_116 ... failed\n"); 5179 } 5180 5181 return; 5182 } 5183 5184 static void pclmulqdq_117(void) 5185 { 5186 reg128_t arg1 = { .uq = { 0x0ede1cf331ce42feULL, 0x076f0e7a7794e06eULL } }; 5187 reg128_t arg2 = { .uq = { 0x03b7873e1a782f26ULL, 0x01dbc39febe9d682ULL } }; 5188 reg128_t result0; 5189 char state[108]; 5190 5191 if (sigsetjmp(catchpoint, 1) == 0) 5192 { 5193 asm( 5194 "ffree %%st(7)\n" 5195 "ffree %%st(6)\n" 5196 "ffree %%st(5)\n" 5197 "ffree %%st(4)\n" 5198 "movlps 0+%1, %%xmm13\n" 5199 "movhps 8+%1, %%xmm13\n" 5200 "pclmulqdq $0, %0, %%xmm13\n" 5201 "movlps %%xmm13, 0+%2\n" 5202 "movhps %%xmm13, 8+%2\n" 5203 : 5204 : "m" (arg1), "m" (arg2), "m" (result0), "m" (state[0]) 5205 : "xmm12", "xmm13" 5206 ); 5207 5208 if (result0.uq[0] == 0x964b33c978b91bc4ULL && result0.uq[1] == 0x0015145519fbe3f5ULL ) 5209 { 5210 printf("pclmulqdq_117 ... ok\n"); 5211 } 5212 else 5213 { 5214 printf("pclmulqdq_117 ... not ok\n"); 5215 printf(" result0.uq[0] = %llu (expected %llu)\n", result0.uq[0], 0x964b33c978b91bc4ULL); 5216 printf(" result0.uq[1] = %llu (expected %llu)\n", result0.uq[1], 0x0015145519fbe3f5ULL); 5217 } 5218 } 5219 else 5220 { 5221 printf("pclmulqdq_117 ... failed\n"); 5222 } 5223 5224 return; 5225 } 5226 5227 static void pclmulqdq_118(void) 5228 { 5229 reg128_t arg1 = { .uq = { 0x00ede1d0d4a2aa30ULL, 0x0076f0e948ff1407ULL } }; 5230 reg128_t arg2 = { .uq = { 0xc03b78758b2d48f0ULL, 0x601dbc3ba4446367ULL } }; 5231 reg128_t result0; 5232 char state[108]; 5233 5234 if (sigsetjmp(catchpoint, 1) == 0) 5235 { 5236 asm( 5237 "ffree %%st(7)\n" 5238 "ffree %%st(6)\n" 5239 "ffree %%st(5)\n" 5240 "ffree %%st(4)\n" 5241 "movlps 0+%1, %%xmm13\n" 5242 "movhps 8+%1, %%xmm13\n" 5243 "pclmulqdq $1, %0, %%xmm13\n" 5244 "movlps %%xmm13, 0+%2\n" 5245 "movhps %%xmm13, 8+%2\n" 5246 : 5247 : "m" (arg1), "m" (arg2), "m" (result0), "m" (state[0]) 5248 : "xmm12", "xmm13" 5249 ); 5250 5251 if (result0.uq[0] == 0x55314fda6f66cc90ULL && result0.uq[1] == 0x0026cec405b1e6f8ULL ) 5252 { 5253 printf("pclmulqdq_118 ... ok\n"); 5254 } 5255 else 5256 { 5257 printf("pclmulqdq_118 ... not ok\n"); 5258 printf(" result0.uq[0] = %llu (expected %llu)\n", result0.uq[0], 0x55314fda6f66cc90ULL); 5259 printf(" result0.uq[1] = %llu (expected %llu)\n", result0.uq[1], 0x0026cec405b1e6f8ULL); 5260 } 5261 } 5262 else 5263 { 5264 printf("pclmulqdq_118 ... failed\n"); 5265 } 5266 5267 return; 5268 } 5269 5270 static void pclmulqdq_119(void) 5271 { 5272 reg128_t arg1 = { .uq = { 0xf00ede1eb8cff0a0ULL, 0x78076f103b15b73fULL } }; 5273 reg128_t arg2 = { .uq = { 0xfc03b788f4389a8cULL, 0x7e01dbc558ca0c35ULL } }; 5274 reg128_t result0; 5275 char state[108]; 5276 5277 if (sigsetjmp(catchpoint, 1) == 0) 5278 { 5279 asm( 5280 "ffree %%st(7)\n" 5281 "ffree %%st(6)\n" 5282 "ffree %%st(5)\n" 5283 "ffree %%st(4)\n" 5284 "movlps 0+%1, %%xmm13\n" 5285 "movhps 8+%1, %%xmm13\n" 5286 "pclmulqdq $16, %0, %%xmm13\n" 5287 "movlps %%xmm13, 0+%2\n" 5288 "movhps %%xmm13, 8+%2\n" 5289 : 5290 : "m" (arg1), "m" (arg2), "m" (result0), "m" (state[0]) 5291 : "xmm12", "xmm13" 5292 ); 5293 5294 if (result0.uq[0] == 0x6a82fe6939f30c84ULL && result0.uq[1] == 0x28a26c46b7ebe635ULL ) 5295 { 5296 printf("pclmulqdq_119 ... ok\n"); 5297 } 5298 else 5299 { 5300 printf("pclmulqdq_119 ... not ok\n"); 5301 printf(" result0.uq[0] = %llu (expected %llu)\n", result0.uq[0], 0x6a82fe6939f30c84ULL); 5302 printf(" result0.uq[1] = %llu (expected %llu)\n", result0.uq[1], 0x28a26c46b7ebe635ULL); 5303 } 5304 } 5305 else 5306 { 5307 printf("pclmulqdq_119 ... failed\n"); 5308 } 5309 5310 return; 5311 } 5312 5313 static void pclmulqdq_120(void) 5314 { 5315 reg128_t arg1 = { .uq = { 0xff00ede38312c507ULL, 0xbf8076f2a8372170ULL } }; 5316 reg128_t arg2 = { .uq = { 0x5fc03b7a32c94fa7ULL, 0xefe01dbdf01266c0ULL } }; 5317 reg128_t result0; 5318 char state[108]; 5319 5320 if (sigsetjmp(catchpoint, 1) == 0) 5321 { 5322 asm( 5323 "ffree %%st(7)\n" 5324 "ffree %%st(6)\n" 5325 "ffree %%st(5)\n" 5326 "ffree %%st(4)\n" 5327 "movlps 0+%1, %%xmm13\n" 5328 "movhps 8+%1, %%xmm13\n" 5329 "pclmulqdq $17, %0, %%xmm13\n" 5330 "movlps %%xmm13, 0+%2\n" 5331 "movhps %%xmm13, 8+%2\n" 5332 : 5333 : "m" (arg1), "m" (arg2), "m" (result0), "m" (state[0]) 5334 : "xmm12", "xmm13" 5335 ); 5336 5337 if (result0.uq[0] == 0xdcc216f4dd0dc400ULL && result0.uq[1] == 0x617576c564455645ULL ) 5338 { 5339 printf("pclmulqdq_120 ... ok\n"); 5340 } 5341 else 5342 { 5343 printf("pclmulqdq_120 ... not ok\n"); 5344 printf(" result0.uq[0] = %llu (expected %llu)\n", result0.uq[0], 0xdcc216f4dd0dc400ULL); 5345 printf(" result0.uq[1] = %llu (expected %llu)\n", result0.uq[1], 0x617576c564455645ULL); 5346 } 5347 } 5348 else 5349 { 5350 printf("pclmulqdq_120 ... failed\n"); 5351 } 5352 5353 return; 5354 } 5355 5356 static void pclmulqdq_121(void) 5357 { 5358 reg128_t arg1 = { .uq = { 0x77f00edfd6b6f24fULL, 0xfbf80770c2093814ULL } }; 5359 reg128_t arg2 = { .uq = { 0x7dfc03b93fb25af9ULL, 0xfefe01dd7686ec6dULL } }; 5360 reg128_t result0; 5361 char state[108]; 5362 5363 if (sigsetjmp(catchpoint, 1) == 0) 5364 { 5365 asm( 5366 "ffree %%st(7)\n" 5367 "ffree %%st(6)\n" 5368 "ffree %%st(5)\n" 5369 "ffree %%st(4)\n" 5370 "movlps 0+%0, %%xmm12\n" 5371 "movhps 8+%0, %%xmm12\n" 5372 "movlps 0+%1, %%xmm13\n" 5373 "movhps 8+%1, %%xmm13\n" 5374 "pclmulqdq $0, %%xmm12, %%xmm13\n" 5375 "movlps %%xmm13, 0+%2\n" 5376 "movhps %%xmm13, 8+%2\n" 5377 : 5378 : "m" (arg1), "m" (arg2), "m" (result0), "m" (state[0]) 5379 : "xmm12", "xmm13" 5380 ); 5381 5382 if (result0.uq[0] == 0x8bf569c40aba6f67ULL && result0.uq[1] == 0x1647572ea59fec88ULL ) 5383 { 5384 printf("pclmulqdq_121 ... ok\n"); 5385 } 5386 else 5387 { 5388 printf("pclmulqdq_121 ... not ok\n"); 5389 printf(" result0.uq[0] = %llu (expected %llu)\n", result0.uq[0], 0x8bf569c40aba6f67ULL); 5390 printf(" result0.uq[1] = %llu (expected %llu)\n", result0.uq[1], 0x1647572ea59fec88ULL); 5391 } 5392 } 5393 else 5394 { 5395 printf("pclmulqdq_121 ... failed\n"); 5396 } 5397 5398 return; 5399 } 5400 5401 static void pclmulqdq_122(void) 5402 { 5403 reg128_t arg1 = { .uq = { 0xbf7f00ef91f13523ULL, 0x9fbf80789fa65982ULL } }; 5404 reg128_t arg2 = { .uq = { 0x4fdfc03d2e80ebb0ULL, 0x27efe01f75ee34c7ULL } }; 5405 reg128_t result0; 5406 char state[108]; 5407 5408 if (sigsetjmp(catchpoint, 1) == 0) 5409 { 5410 asm( 5411 "ffree %%st(7)\n" 5412 "ffree %%st(6)\n" 5413 "ffree %%st(5)\n" 5414 "ffree %%st(4)\n" 5415 "movlps 0+%0, %%xmm12\n" 5416 "movhps 8+%0, %%xmm12\n" 5417 "movlps 0+%1, %%xmm13\n" 5418 "movhps 8+%1, %%xmm13\n" 5419 "pclmulqdq $1, %%xmm12, %%xmm13\n" 5420 "movlps %%xmm13, 0+%2\n" 5421 "movhps %%xmm13, 8+%2\n" 5422 : 5423 : "m" (arg1), "m" (arg2), "m" (result0), "m" (state[0]) 5424 : "xmm12", "xmm13" 5425 ); 5426 5427 if (result0.uq[0] == 0x1884b704d5d08ea9ULL && result0.uq[1] == 0x14b2b2b889275ed6ULL ) 5428 { 5429 printf("pclmulqdq_122 ... ok\n"); 5430 } 5431 else 5432 { 5433 printf("pclmulqdq_122 ... not ok\n"); 5434 printf(" result0.uq[0] = %llu (expected %llu)\n", result0.uq[0], 0x1884b704d5d08ea9ULL); 5435 printf(" result0.uq[1] = %llu (expected %llu)\n", result0.uq[1], 0x14b2b2b889275ed6ULL); 5436 } 5437 } 5438 else 5439 { 5440 printf("pclmulqdq_122 ... failed\n"); 5441 } 5442 5443 return; 5444 } 5445 5446 static void pclmulqdq_123(void) 5447 { 5448 reg128_t arg1 = { .uq = { 0xd3f7f01091a4d950ULL, 0x69fbf80927802b97ULL } }; 5449 reg128_t arg2 = { .uq = { 0xf4fdfc057a6dd4b8ULL, 0x7a7efe039be4a94bULL } }; 5450 reg128_t result0; 5451 char state[108]; 5452 5453 if (sigsetjmp(catchpoint, 1) == 0) 5454 { 5455 asm( 5456 "ffree %%st(7)\n" 5457 "ffree %%st(6)\n" 5458 "ffree %%st(5)\n" 5459 "ffree %%st(4)\n" 5460 "movlps 0+%0, %%xmm12\n" 5461 "movhps 8+%0, %%xmm12\n" 5462 "movlps 0+%1, %%xmm13\n" 5463 "movhps 8+%1, %%xmm13\n" 5464 "pclmulqdq $16, %%xmm12, %%xmm13\n" 5465 "movlps %%xmm13, 0+%2\n" 5466 "movhps %%xmm13, 8+%2\n" 5467 : 5468 : "m" (arg1), "m" (arg2), "m" (result0), "m" (state[0]) 5469 : "xmm12", "xmm13" 5470 ); 5471 5472 if (result0.uq[0] == 0x2fa301cae17930a8ULL && result0.uq[1] == 0x24a3a8a439dad38bULL ) 5473 { 5474 printf("pclmulqdq_123 ... ok\n"); 5475 } 5476 else 5477 { 5478 printf("pclmulqdq_123 ... not ok\n"); 5479 printf(" result0.uq[0] = %llu (expected %llu)\n", result0.uq[0], 0x2fa301cae17930a8ULL); 5480 printf(" result0.uq[1] = %llu (expected %llu)\n", result0.uq[1], 0x24a3a8a439dad38bULL); 5481 } 5482 } 5483 else 5484 { 5485 printf("pclmulqdq_123 ... failed\n"); 5486 } 5487 5488 return; 5489 } 5490 5491 static void pclmulqdq_124(void) 5492 { 5493 reg128_t arg1 = { .uq = { 0xfd3f7f02a4a01396ULL, 0x7e9fbf8230fdc8baULL } }; 5494 reg128_t arg2 = { .uq = { 0x3f4fdfc1f72ca34cULL, 0x1fa7efe1da441095ULL } }; 5495 reg128_t result0; 5496 char state[108]; 5497 5498 if (sigsetjmp(catchpoint, 1) == 0) 5499 { 5500 asm( 5501 "ffree %%st(7)\n" 5502 "ffree %%st(6)\n" 5503 "ffree %%st(5)\n" 5504 "ffree %%st(4)\n" 5505 "movlps 0+%0, %%xmm12\n" 5506 "movhps 8+%0, %%xmm12\n" 5507 "movlps 0+%1, %%xmm13\n" 5508 "movhps 8+%1, %%xmm13\n" 5509 "pclmulqdq $17, %%xmm12, %%xmm13\n" 5510 "movlps %%xmm13, 0+%2\n" 5511 "movhps %%xmm13, 8+%2\n" 5512 : 5513 : "m" (arg1), "m" (arg2), "m" (result0), "m" (state[0]) 5514 : "xmm12", "xmm13" 5515 ); 5516 5517 if (result0.uq[0] == 0x5cff626dd6d19cf2ULL && result0.uq[1] == 0x0555105536974019ULL ) 5518 { 5519 printf("pclmulqdq_124 ... ok\n"); 5520 } 5521 else 5522 { 5523 printf("pclmulqdq_124 ... not ok\n"); 5524 printf(" result0.uq[0] = %llu (expected %llu)\n", result0.uq[0], 0x5cff626dd6d19cf2ULL); 5525 printf(" result0.uq[1] = %llu (expected %llu)\n", result0.uq[1], 0x0555105536974019ULL); 5526 } 5527 } 5528 else 5529 { 5530 printf("pclmulqdq_124 ... failed\n"); 5531 } 5532 5533 return; 5534 } 5535 5536 static void pclmulqdq_125(void) 5537 { 5538 reg128_t arg1 = { .uq = { 0xcfd3f7f1c3cfc737ULL, 0xa7e9fbf9c895a288ULL } }; 5539 reg128_t arg2 = { .uq = { 0x53f4fdfdc2f89033ULL, 0xe9fa7effc82a070aULL } }; 5540 reg128_t result0; 5541 char state[108]; 5542 5543 if (sigsetjmp(catchpoint, 1) == 0) 5544 { 5545 asm( 5546 "ffree %%st(7)\n" 5547 "ffree %%st(6)\n" 5548 "ffree %%st(5)\n" 5549 "ffree %%st(4)\n" 5550 "movlps 0+%1, %%xmm13\n" 5551 "movhps 8+%1, %%xmm13\n" 5552 "pclmulqdq $0, %0, %%xmm13\n" 5553 "movlps %%xmm13, 0+%2\n" 5554 "movhps %%xmm13, 8+%2\n" 5555 : 5556 : "m" (arg1), "m" (arg2), "m" (result0), "m" (state[0]) 5557 : "xmm12", "xmm13" 5558 ); 5559 5560 if (result0.uq[0] == 0xf6af04decad42cc9ULL && result0.uq[1] == 0x3e1bd743a16ab263ULL ) 5561 { 5562 printf("pclmulqdq_125 ... ok\n"); 5563 } 5564 else 5565 { 5566 printf("pclmulqdq_125 ... not ok\n"); 5567 printf(" result0.uq[0] = %llu (expected %llu)\n", result0.uq[0], 0xf6af04decad42cc9ULL); 5568 printf(" result0.uq[1] = %llu (expected %llu)\n", result0.uq[1], 0x3e1bd743a16ab263ULL); 5569 } 5570 } 5571 else 5572 { 5573 printf("pclmulqdq_125 ... failed\n"); 5574 } 5575 5576 return; 5577 } 5578 5579 static void pclmulqdq_126(void) 5580 { 5581 reg128_t arg1 = { .uq = { 0x74fd3f80c2c2c274ULL, 0x3a7e9fc1400f2029ULL } }; 5582 reg128_t arg2 = { .uq = { 0xdd3f4fe186b54f05ULL, 0xae9fa7f1aa08666fULL } }; 5583 reg128_t result0; 5584 char state[108]; 5585 5586 if (sigsetjmp(catchpoint, 1) == 0) 5587 { 5588 asm( 5589 "ffree %%st(7)\n" 5590 "ffree %%st(6)\n" 5591 "ffree %%st(5)\n" 5592 "ffree %%st(4)\n" 5593 "movlps 0+%1, %%xmm13\n" 5594 "movhps 8+%1, %%xmm13\n" 5595 "pclmulqdq $1, %0, %%xmm13\n" 5596 "movlps %%xmm13, 0+%2\n" 5597 "movhps %%xmm13, 8+%2\n" 5598 : 5599 : "m" (arg1), "m" (arg2), "m" (result0), "m" (state[0]) 5600 : "xmm12", "xmm13" 5601 ); 5602 5603 if (result0.uq[0] == 0x663f048b0f4c376cULL && result0.uq[1] == 0x3643329a1e33c49cULL ) 5604 { 5605 printf("pclmulqdq_126 ... ok\n"); 5606 } 5607 else 5608 { 5609 printf("pclmulqdq_126 ... not ok\n"); 5610 printf(" result0.uq[0] = %llu (expected %llu)\n", result0.uq[0], 0x663f048b0f4c376cULL); 5611 printf(" result0.uq[1] = %llu (expected %llu)\n", result0.uq[1], 0x3643329a1e33c49cULL); 5612 } 5613 } 5614 else 5615 { 5616 printf("pclmulqdq_126 ... failed\n"); 5617 } 5618 5619 return; 5620 } 5621 5622 static void pclmulqdq_127(void) 5623 { 5624 reg128_t arg1 = { .uq = { 0x974fd3f9bbb1f224ULL, 0x4ba7e9fdbc86b801ULL } }; 5625 reg128_t arg2 = { .uq = { 0xe5d3f4ffb4f11af1ULL, 0xb2e9fa80b1264c69ULL } }; 5626 reg128_t result0; 5627 char state[108]; 5628 5629 if (sigsetjmp(catchpoint, 1) == 0) 5630 { 5631 asm( 5632 "ffree %%st(7)\n" 5633 "ffree %%st(6)\n" 5634 "ffree %%st(5)\n" 5635 "ffree %%st(4)\n" 5636 "movlps 0+%1, %%xmm13\n" 5637 "movhps 8+%1, %%xmm13\n" 5638 "pclmulqdq $16, %0, %%xmm13\n" 5639 "movlps %%xmm13, 0+%2\n" 5640 "movhps %%xmm13, 8+%2\n" 5641 : 5642 : "m" (arg1), "m" (arg2), "m" (result0), "m" (state[0]) 5643 : "xmm12", "xmm13" 5644 ); 5645 5646 if (result0.uq[0] == 0x2db9e522590922f1ULL && result0.uq[1] == 0x3f18ac8b499a5fdbULL ) 5647 { 5648 printf("pclmulqdq_127 ... ok\n"); 5649 } 5650 else 5651 { 5652 printf("pclmulqdq_127 ... not ok\n"); 5653 printf(" result0.uq[0] = %llu (expected %llu)\n", result0.uq[0], 0x2db9e522590922f1ULL); 5654 printf(" result0.uq[1] = %llu (expected %llu)\n", result0.uq[1], 0x3f18ac8b499a5fdbULL); 5655 } 5656 } 5657 else 5658 { 5659 printf("pclmulqdq_127 ... failed\n"); 5660 } 5661 5662 return; 5663 } 5664 5665 static void pclmulqdq_128(void) 5666 { 5667 reg128_t arg1 = { .uq = { 0x9974fd412f40e525ULL, 0x8cba7ea17e4e317fULL } }; 5668 reg128_t arg2 = { .uq = { 0x865d3f5195d4d7acULL, 0x432e9fa9a9982ac5ULL } }; 5669 reg128_t result0; 5670 char state[108]; 5671 5672 if (sigsetjmp(catchpoint, 1) == 0) 5673 { 5674 asm( 5675 "ffree %%st(7)\n" 5676 "ffree %%st(6)\n" 5677 "ffree %%st(5)\n" 5678 "ffree %%st(4)\n" 5679 "movlps 0+%1, %%xmm13\n" 5680 "movhps 8+%1, %%xmm13\n" 5681 "pclmulqdq $17, %0, %%xmm13\n" 5682 "movlps %%xmm13, 0+%2\n" 5683 "movhps %%xmm13, 8+%2\n" 5684 : 5685 : "m" (arg1), "m" (arg2), "m" (result0), "m" (state[0]) 5686 : "xmm12", "xmm13" 5687 ); 5688 5689 if (result0.uq[0] == 0x10a01544dcacf2c3ULL && result0.uq[1] == 0x22adc12d86b454a7ULL ) 5690 { 5691 printf("pclmulqdq_128 ... ok\n"); 5692 } 5693 else 5694 { 5695 printf("pclmulqdq_128 ... not ok\n"); 5696 printf(" result0.uq[0] = %llu (expected %llu)\n", result0.uq[0], 0x10a01544dcacf2c3ULL); 5697 printf(" result0.uq[1] = %llu (expected %llu)\n", result0.uq[1], 0x22adc12d86b454a7ULL); 5698 } 5699 } 5700 else 5701 { 5702 printf("pclmulqdq_128 ... failed\n"); 5703 } 5704 5705 return; 5706 } 5707 5708 static void pclmulqdq_129(void) 5709 { 5710 reg128_t arg1 = { .uq = { 0xe1974fd5bb79d44fULL, 0xb0cba7ebb46aa914ULL } }; 5711 reg128_t arg2 = { .uq = { 0x5865d3f6b8e31379ULL, 0xec32e9fc331f48adULL } }; 5712 reg128_t result0; 5713 char state[108]; 5714 5715 if (sigsetjmp(catchpoint, 1) == 0) 5716 { 5717 asm( 5718 "ffree %%st(7)\n" 5719 "ffree %%st(6)\n" 5720 "ffree %%st(5)\n" 5721 "ffree %%st(4)\n" 5722 "movlps 0+%0, %%xmm12\n" 5723 "movhps 8+%0, %%xmm12\n" 5724 "movlps 0+%1, %%xmm13\n" 5725 "movhps 8+%1, %%xmm13\n" 5726 "pclmulqdq $0, %%xmm12, %%xmm13\n" 5727 "movlps %%xmm13, 0+%2\n" 5728 "movhps %%xmm13, 8+%2\n" 5729 : 5730 : "m" (arg1), "m" (arg2), "m" (result0), "m" (state[0]) 5731 : "xmm12", "xmm13" 5732 ); 5733 5734 if (result0.uq[0] == 0x39f8c415582c89e7ULL && result0.uq[1] == 0x31576a4bfbf9de3fULL ) 5735 { 5736 printf("pclmulqdq_129 ... ok\n"); 5737 } 5738 else 5739 { 5740 printf("pclmulqdq_129 ... not ok\n"); 5741 printf(" result0.uq[0] = %llu (expected %llu)\n", result0.uq[0], 0x39f8c415582c89e7ULL); 5742 printf(" result0.uq[1] = %llu (expected %llu)\n", result0.uq[1], 0x31576a4bfbf9de3fULL); 5743 } 5744 } 5745 else 5746 { 5747 printf("pclmulqdq_129 ... failed\n"); 5748 } 5749 5750 return; 5751 } 5752 5753 static void pclmulqdq_130(void) 5754 { 5755 reg128_t arg1 = { .uq = { 0xb61974fef03d6343ULL, 0x9b0cba804ecc7092ULL } }; 5756 reg128_t arg2 = { .uq = { 0x4d865d410613f738ULL, 0x26c32ea161b7ba8bULL } }; 5757 reg128_t result0; 5758 char state[108]; 5759 5760 if (sigsetjmp(catchpoint, 1) == 0) 5761 { 5762 asm( 5763 "ffree %%st(7)\n" 5764 "ffree %%st(6)\n" 5765 "ffree %%st(5)\n" 5766 "ffree %%st(4)\n" 5767 "movlps 0+%0, %%xmm12\n" 5768 "movhps 8+%0, %%xmm12\n" 5769 "movlps 0+%1, %%xmm13\n" 5770 "movhps 8+%1, %%xmm13\n" 5771 "pclmulqdq $1, %%xmm12, %%xmm13\n" 5772 "movlps %%xmm13, 0+%2\n" 5773 "movhps %%xmm13, 8+%2\n" 5774 : 5775 : "m" (arg1), "m" (arg2), "m" (result0), "m" (state[0]) 5776 : "xmm12", "xmm13" 5777 ); 5778 5779 if (result0.uq[0] == 0xfe6e5df6e325505dULL && result0.uq[1] == 0x150039e3f5d91dc7ULL ) 5780 { 5781 printf("pclmulqdq_130 ... ok\n"); 5782 } 5783 else 5784 { 5785 printf("pclmulqdq_130 ... not ok\n"); 5786 printf(" result0.uq[0] = %llu (expected %llu)\n", result0.uq[0], 0xfe6e5df6e325505dULL); 5787 printf(" result0.uq[1] = %llu (expected %llu)\n", result0.uq[1], 0x150039e3f5d91dc7ULL); 5788 } 5789 } 5790 else 5791 { 5792 printf("pclmulqdq_130 ... failed\n"); 5793 } 5794 5795 return; 5796 } 5797 5798 static void pclmulqdq_131(void) 5799 { 5800 reg128_t arg1 = { .uq = { 0xd361975197899c36ULL, 0x69b0cba9aa728d0aULL } }; 5801 reg128_t arg2 = { .uq = { 0x34d865d5b3e70574ULL, 0x1a6c32ebb8a141a9ULL } }; 5802 reg128_t result0; 5803 char state[108]; 5804 5805 if (sigsetjmp(catchpoint, 1) == 0) 5806 { 5807 asm( 5808 "ffree %%st(7)\n" 5809 "ffree %%st(6)\n" 5810 "ffree %%st(5)\n" 5811 "ffree %%st(4)\n" 5812 "movlps 0+%0, %%xmm12\n" 5813 "movhps 8+%0, %%xmm12\n" 5814 "movlps 0+%1, %%xmm13\n" 5815 "movhps 8+%1, %%xmm13\n" 5816 "pclmulqdq $16, %%xmm12, %%xmm13\n" 5817 "movlps %%xmm13, 0+%2\n" 5818 "movhps %%xmm13, 8+%2\n" 5819 : 5820 : "m" (arg1), "m" (arg2), "m" (result0), "m" (state[0]) 5821 : "xmm12", "xmm13" 5822 ); 5823 5824 if (result0.uq[0] == 0x51a65ce85f5f2548ULL && result0.uq[1] == 0x0a20a2805797ed23ULL ) 5825 { 5826 printf("pclmulqdq_131 ... ok\n"); 5827 } 5828 else 5829 { 5830 printf("pclmulqdq_131 ... not ok\n"); 5831 printf(" result0.uq[0] = %llu (expected %llu)\n", result0.uq[0], 0x51a65ce85f5f2548ULL); 5832 printf(" result0.uq[1] = %llu (expected %llu)\n", result0.uq[1], 0x0a20a2805797ed23ULL); 5833 } 5834 } 5835 else 5836 { 5837 printf("pclmulqdq_131 ... failed\n"); 5838 } 5839 5840 return; 5841 } 5842 5843 static void pclmulqdq_132(void) 5844 { 5845 reg128_t arg1 = { .uq = { 0xcd361976b2fe5fc5ULL, 0xa69b0cbc302ceecfULL } }; 5846 reg128_t arg2 = { .uq = { 0x934d865eeec43654ULL, 0x49a6c330560fda19ULL } }; 5847 reg128_t result0; 5848 char state[108]; 5849 5850 if (sigsetjmp(catchpoint, 1) == 0) 5851 { 5852 asm( 5853 "ffree %%st(7)\n" 5854 "ffree %%st(6)\n" 5855 "ffree %%st(5)\n" 5856 "ffree %%st(4)\n" 5857 "movlps 0+%0, %%xmm12\n" 5858 "movhps 8+%0, %%xmm12\n" 5859 "movlps 0+%1, %%xmm13\n" 5860 "movhps 8+%1, %%xmm13\n" 5861 "pclmulqdq $17, %%xmm12, %%xmm13\n" 5862 "movlps %%xmm13, 0+%2\n" 5863 "movhps %%xmm13, 8+%2\n" 5864 : 5865 : "m" (arg1), "m" (arg2), "m" (result0), "m" (state[0]) 5866 : "xmm12", "xmm13" 5867 ); 5868 5869 if (result0.uq[0] == 0x743fc6e863032247ULL && result0.uq[1] == 0x2c70b2e5c1075701ULL ) 5870 { 5871 printf("pclmulqdq_132 ... ok\n"); 5872 } 5873 else 5874 { 5875 printf("pclmulqdq_132 ... not ok\n"); 5876 printf(" result0.uq[0] = %llu (expected %llu)\n", result0.uq[0], 0x743fc6e863032247ULL); 5877 printf(" result0.uq[1] = %llu (expected %llu)\n", result0.uq[1], 0x2c70b2e5c1075701ULL); 5878 } 5879 } 5880 else 5881 { 5882 printf("pclmulqdq_132 ... failed\n"); 5883 } 5884 5885 return; 5886 } 5887 5888 static void pclmulqdq_133(void) 5889 { 5890 reg128_t arg1 = { .uq = { 0xe4d3619901b5abfdULL, 0xb269b0cd678894ebULL } }; 5891 reg128_t arg2 = { .uq = { 0x9934d8679a720966ULL, 0x4c9a6c34abe6c3a2ULL } }; 5892 reg128_t result0; 5893 char state[108]; 5894 5895 if (sigsetjmp(catchpoint, 1) == 0) 5896 { 5897 asm( 5898 "ffree %%st(7)\n" 5899 "ffree %%st(6)\n" 5900 "ffree %%st(5)\n" 5901 "ffree %%st(4)\n" 5902 "movlps 0+%1, %%xmm13\n" 5903 "movhps 8+%1, %%xmm13\n" 5904 "pclmulqdq $0, %0, %%xmm13\n" 5905 "movlps %%xmm13, 0+%2\n" 5906 "movhps %%xmm13, 8+%2\n" 5907 : 5908 : "m" (arg1), "m" (arg2), "m" (result0), "m" (state[0]) 5909 : "xmm12", "xmm13" 5910 ); 5911 5912 if (result0.uq[0] == 0xe48d608e6c5c6deeULL && result0.uq[1] == 0x7bf7c8be42cbc359ULL ) 5913 { 5914 printf("pclmulqdq_133 ... ok\n"); 5915 } 5916 else 5917 { 5918 printf("pclmulqdq_133 ... not ok\n"); 5919 printf(" result0.uq[0] = %llu (expected %llu)\n", result0.uq[0], 0xe48d608e6c5c6deeULL); 5920 printf(" result0.uq[1] = %llu (expected %llu)\n", result0.uq[1], 0x7bf7c8be42cbc359ULL); 5921 } 5922 } 5923 else 5924 { 5925 printf("pclmulqdq_133 ... failed\n"); 5926 } 5927 5928 return; 5929 } 5930 5931 static void pclmulqdq_134(void) 5932 { 5933 reg128_t arg1 = { .uq = { 0x264d361b34a120c0ULL, 0x13269b0e78fe4f4fULL } }; 5934 reg128_t arg2 = { .uq = { 0xc9934d88132ce694ULL, 0x64c9a6c4e8443239ULL } }; 5935 reg128_t result0; 5936 char state[108]; 5937 5938 if (sigsetjmp(catchpoint, 1) == 0) 5939 { 5940 asm( 5941 "ffree %%st(7)\n" 5942 "ffree %%st(6)\n" 5943 "ffree %%st(5)\n" 5944 "ffree %%st(4)\n" 5945 "movlps 0+%1, %%xmm13\n" 5946 "movhps 8+%1, %%xmm13\n" 5947 "pclmulqdq $1, %0, %%xmm13\n" 5948 "movlps %%xmm13, 0+%2\n" 5949 "movhps %%xmm13, 8+%2\n" 5950 : 5951 : "m" (arg1), "m" (arg2), "m" (result0), "m" (state[0]) 5952 : "xmm12", "xmm13" 5953 ); 5954 5955 if (result0.uq[0] == 0x4e519b2288cbb2c0ULL && result0.uq[1] == 0x0dd8694f6a24e1f8ULL ) 5956 { 5957 printf("pclmulqdq_134 ... ok\n"); 5958 } 5959 else 5960 { 5961 printf("pclmulqdq_134 ... not ok\n"); 5962 printf(" result0.uq[0] = %llu (expected %llu)\n", result0.uq[0], 0x4e519b2288cbb2c0ULL); 5963 printf(" result0.uq[1] = %llu (expected %llu)\n", result0.uq[1], 0x0dd8694f6a24e1f8ULL); 5964 } 5965 } 5966 else 5967 { 5968 printf("pclmulqdq_134 ... failed\n"); 5969 } 5970 5971 return; 5972 } 5973 5974 static void pclmulqdq_135(void) 5975 { 5976 reg128_t arg1 = { .uq = { 0xf264d3635acfd80dULL, 0xb93269b28415aaf3ULL } }; 5977 reg128_t arg2 = { .uq = { 0x9c9934da28b8946aULL, 0x4e4c9a6df30a0924ULL } }; 5978 reg128_t result0; 5979 char state[108]; 5980 5981 if (sigsetjmp(catchpoint, 1) == 0) 5982 { 5983 asm( 5984 "ffree %%st(7)\n" 5985 "ffree %%st(6)\n" 5986 "ffree %%st(5)\n" 5987 "ffree %%st(4)\n" 5988 "movlps 0+%1, %%xmm13\n" 5989 "movhps 8+%1, %%xmm13\n" 5990 "pclmulqdq $16, %0, %%xmm13\n" 5991 "movlps %%xmm13, 0+%2\n" 5992 "movhps %%xmm13, 8+%2\n" 5993 : 5994 : "m" (arg1), "m" (arg2), "m" (result0), "m" (state[0]) 5995 : "xmm12", "xmm13" 5996 ); 5997 5998 if (result0.uq[0] == 0xe72a61cb516c9cdeULL && result0.uq[1] == 0x50752c361fe9f790ULL ) 5999 { 6000 printf("pclmulqdq_135 ... ok\n"); 6001 } 6002 else 6003 { 6004 printf("pclmulqdq_135 ... not ok\n"); 6005 printf(" result0.uq[0] = %llu (expected %llu)\n", result0.uq[0], 0xe72a61cb516c9cdeULL); 6006 printf(" result0.uq[1] = %llu (expected %llu)\n", result0.uq[1], 0x50752c361fe9f790ULL); 6007 } 6008 } 6009 else 6010 { 6011 printf("pclmulqdq_135 ... failed\n"); 6012 } 6013 6014 return; 6015 } 6016 6017 static void pclmulqdq_136(void) 6018 { 6019 reg128_t arg1 = { .uq = { 0x27264d37d832c381ULL, 0xd393269cc2c720b1ULL } }; 6020 reg128_t arg2 = { .uq = { 0xa9c9934f48114f49ULL, 0x94e4c9a88ab66695ULL } }; 6021 reg128_t result0; 6022 char state[108]; 6023 6024 if (sigsetjmp(catchpoint, 1) == 0) 6025 { 6026 asm( 6027 "ffree %%st(7)\n" 6028 "ffree %%st(6)\n" 6029 "ffree %%st(5)\n" 6030 "ffree %%st(4)\n" 6031 "movlps 0+%1, %%xmm13\n" 6032 "movhps 8+%1, %%xmm13\n" 6033 "pclmulqdq $17, %0, %%xmm13\n" 6034 "movlps %%xmm13, 0+%2\n" 6035 "movhps %%xmm13, 8+%2\n" 6036 : 6037 : "m" (arg1), "m" (arg2), "m" (result0), "m" (state[0]) 6038 : "xmm12", "xmm13" 6039 ); 6040 6041 if (result0.uq[0] == 0x086a7585d4d637e5ULL && result0.uq[1] == 0x67faa7d867e596e8ULL ) 6042 { 6043 printf("pclmulqdq_136 ... ok\n"); 6044 } 6045 else 6046 { 6047 printf("pclmulqdq_136 ... not ok\n"); 6048 printf(" result0.uq[0] = %llu (expected %llu)\n", result0.uq[0], 0x086a7585d4d637e5ULL); 6049 printf(" result0.uq[1] = %llu (expected %llu)\n", result0.uq[1], 0x67faa7d867e596e8ULL); 6050 } 6051 } 6052 else 6053 { 6054 printf("pclmulqdq_136 ... failed\n"); 6055 } 6056 6057 return; 6058 } 6059 6060 static void pclmulqdq_137(void) 6061 { 6062 reg128_t arg1 = { .uq = { 0x8a7264d52c08f237ULL, 0x8539326b7cb23808ULL } }; 6063 reg128_t arg2 = { .uq = { 0x429c99369d06daf3ULL, 0xe14e4c9c25312c6aULL } }; 6064 reg128_t result0; 6065 char state[108]; 6066 6067 if (sigsetjmp(catchpoint, 1) == 0) 6068 { 6069 asm( 6070 "ffree %%st(7)\n" 6071 "ffree %%st(6)\n" 6072 "ffree %%st(5)\n" 6073 "ffree %%st(4)\n" 6074 "movlps 0+%0, %%xmm12\n" 6075 "movhps 8+%0, %%xmm12\n" 6076 "movlps 0+%1, %%xmm13\n" 6077 "movhps 8+%1, %%xmm13\n" 6078 "pclmulqdq $0, %%xmm12, %%xmm13\n" 6079 "movlps %%xmm13, 0+%2\n" 6080 "movhps %%xmm13, 8+%2\n" 6081 : 6082 : "m" (arg1), "m" (arg2), "m" (result0), "m" (state[0]) 6083 : "xmm12", "xmm13" 6084 ); 6085 6086 if (result0.uq[0] == 0x4100ed2820bf0389ULL && result0.uq[1] == 0x23c3d0ef192c679bULL ) 6087 { 6088 printf("pclmulqdq_137 ... ok\n"); 6089 } 6090 else 6091 { 6092 printf("pclmulqdq_137 ... not ok\n"); 6093 printf(" result0.uq[0] = %llu (expected %llu)\n", result0.uq[0], 0x4100ed2820bf0389ULL); 6094 printf(" result0.uq[1] = %llu (expected %llu)\n", result0.uq[1], 0x23c3d0ef192c679bULL); 6095 } 6096 } 6097 else 6098 { 6099 printf("pclmulqdq_137 ... failed\n"); 6100 } 6101 6102 return; 6103 } 6104 6105 static void pclmulqdq_138(void) 6106 { 6107 reg128_t arg1 = { .uq = { 0x70a7264ef1465524ULL, 0x385393285750e981ULL } }; 6108 reg128_t arg2 = { .uq = { 0xdc29c995025633b1ULL, 0xae14e4cb67d8d8c9ULL } }; 6109 reg128_t result0; 6110 char state[108]; 6111 6112 if (sigsetjmp(catchpoint, 1) == 0) 6113 { 6114 asm( 6115 "ffree %%st(7)\n" 6116 "ffree %%st(6)\n" 6117 "ffree %%st(5)\n" 6118 "ffree %%st(4)\n" 6119 "movlps 0+%0, %%xmm12\n" 6120 "movhps 8+%0, %%xmm12\n" 6121 "movlps 0+%1, %%xmm13\n" 6122 "movhps 8+%1, %%xmm13\n" 6123 "pclmulqdq $1, %%xmm12, %%xmm13\n" 6124 "movlps %%xmm13, 0+%2\n" 6125 "movhps %%xmm13, 8+%2\n" 6126 : 6127 : "m" (arg1), "m" (arg2), "m" (result0), "m" (state[0]) 6128 : "xmm12", "xmm13" 6129 ); 6130 6131 if (result0.uq[0] == 0x8f6981733d8b4704ULL && result0.uq[1] == 0x34e77f6cd5d2d608ULL ) 6132 { 6133 printf("pclmulqdq_138 ... ok\n"); 6134 } 6135 else 6136 { 6137 printf("pclmulqdq_138 ... not ok\n"); 6138 printf(" result0.uq[0] = %llu (expected %llu)\n", result0.uq[0], 0x8f6981733d8b4704ULL); 6139 printf(" result0.uq[1] = %llu (expected %llu)\n", result0.uq[1], 0x34e77f6cd5d2d608ULL); 6140 } 6141 } 6142 else 6143 { 6144 printf("pclmulqdq_138 ... failed\n"); 6145 } 6146 6147 return; 6148 } 6149 6150 static void pclmulqdq_139(void) 6151 { 6152 reg128_t arg1 = { .uq = { 0x970a72669a9a2b55ULL, 0x8b85393423fad497ULL } }; 6153 reg128_t arg2 = { .uq = { 0x85c29c9af8ab2938ULL, 0x42e14e4e5b03538bULL } }; 6154 reg128_t result0; 6155 char state[108]; 6156 6157 if (sigsetjmp(catchpoint, 1) == 0) 6158 { 6159 asm( 6160 "ffree %%st(7)\n" 6161 "ffree %%st(6)\n" 6162 "ffree %%st(5)\n" 6163 "ffree %%st(4)\n" 6164 "movlps 0+%0, %%xmm12\n" 6165 "movhps 8+%0, %%xmm12\n" 6166 "movlps 0+%1, %%xmm13\n" 6167 "movhps 8+%1, %%xmm13\n" 6168 "pclmulqdq $16, %%xmm12, %%xmm13\n" 6169 "movlps %%xmm13, 0+%2\n" 6170 "movhps %%xmm13, 8+%2\n" 6171 : 6172 : "m" (arg1), "m" (arg2), "m" (result0), "m" (state[0]) 6173 : "xmm12", "xmm13" 6174 ); 6175 6176 if (result0.uq[0] == 0x334171ba41a2b028ULL && result0.uq[1] == 0x470172dfe90ec7a3ULL ) 6177 { 6178 printf("pclmulqdq_139 ... ok\n"); 6179 } 6180 else 6181 { 6182 printf("pclmulqdq_139 ... not ok\n"); 6183 printf(" result0.uq[0] = %llu (expected %llu)\n", result0.uq[0], 0x334171ba41a2b028ULL); 6184 printf(" result0.uq[1] = %llu (expected %llu)\n", result0.uq[1], 0x470172dfe90ec7a3ULL); 6185 } 6186 } 6187 else 6188 { 6189 printf("pclmulqdq_139 ... failed\n"); 6190 } 6191 6192 return; 6193 } 6194 6195 static void pclmulqdq_140(void) 6196 { 6197 reg128_t arg1 = { .uq = { 0xe170a728042f68b6ULL, 0x70b85394e0c5734aULL } }; 6198 reg128_t arg2 = { .uq = { 0x385c29cb4f107894ULL, 0x1c2e14e68635fb39ULL } }; 6199 reg128_t result0; 6200 char state[108]; 6201 6202 if (sigsetjmp(catchpoint, 1) == 0) 6203 { 6204 asm( 6205 "ffree %%st(7)\n" 6206 "ffree %%st(6)\n" 6207 "ffree %%st(5)\n" 6208 "ffree %%st(4)\n" 6209 "movlps 0+%0, %%xmm12\n" 6210 "movhps 8+%0, %%xmm12\n" 6211 "movlps 0+%1, %%xmm13\n" 6212 "movhps 8+%1, %%xmm13\n" 6213 "pclmulqdq $17, %%xmm12, %%xmm13\n" 6214 "movlps %%xmm13, 0+%2\n" 6215 "movhps %%xmm13, 8+%2\n" 6216 : 6217 : "m" (arg1), "m" (arg2), "m" (result0), "m" (state[0]) 6218 : "xmm12", "xmm13" 6219 ); 6220 6221 if (result0.uq[0] == 0x464de85ad5b05afaULL && result0.uq[1] == 0x05401150a66ea4ddULL ) 6222 { 6223 printf("pclmulqdq_140 ... ok\n"); 6224 } 6225 else 6226 { 6227 printf("pclmulqdq_140 ... not ok\n"); 6228 printf(" result0.uq[0] = %llu (expected %llu)\n", result0.uq[0], 0x464de85ad5b05afaULL); 6229 printf(" result0.uq[1] = %llu (expected %llu)\n", result0.uq[1], 0x05401150a66ea4ddULL); 6230 } 6231 } 6232 else 6233 { 6234 printf("pclmulqdq_140 ... failed\n"); 6235 } 6236 6237 return; 6238 } 6239 6240 static void pclmulqdq_141(void) 6241 { 6242 reg128_t arg1 = { .uq = { 0xce170a7429c8bc8dULL, 0xa70b853afb921d33ULL } }; 6243 reg128_t arg2 = { .uq = { 0x9385c29e5476cd8aULL, 0x49c2e15008e925b4ULL } }; 6244 reg128_t result0; 6245 char state[108]; 6246 6247 if (sigsetjmp(catchpoint, 1) == 0) 6248 { 6249 asm( 6250 "ffree %%st(7)\n" 6251 "ffree %%st(6)\n" 6252 "ffree %%st(5)\n" 6253 "ffree %%st(4)\n" 6254 "movlps 0+%1, %%xmm13\n" 6255 "movhps 8+%1, %%xmm13\n" 6256 "pclmulqdq $0, %0, %%xmm13\n" 6257 "movlps %%xmm13, 0+%2\n" 6258 "movhps %%xmm13, 8+%2\n" 6259 : 6260 : "m" (arg1), "m" (arg2), "m" (result0), "m" (state[0]) 6261 : "xmm12", "xmm13" 6262 ); 6263 6264 if (result0.uq[0] == 0x6f7ef804725bcaf2ULL && result0.uq[1] == 0x6adc6430b8465eafULL ) 6265 { 6266 printf("pclmulqdq_141 ... ok\n"); 6267 } 6268 else 6269 { 6270 printf("pclmulqdq_141 ... not ok\n"); 6271 printf(" result0.uq[0] = %llu (expected %llu)\n", result0.uq[0], 0x6f7ef804725bcaf2ULL); 6272 printf(" result0.uq[1] = %llu (expected %llu)\n", result0.uq[1], 0x6adc6430b8465eafULL); 6273 } 6274 } 6275 else 6276 { 6277 printf("pclmulqdq_141 ... failed\n"); 6278 } 6279 6280 return; 6281 } 6282 6283 static void pclmulqdq_142(void) 6284 { 6285 reg128_t arg1 = { .uq = { 0x24e170a8e32251c9ULL, 0xd270b855583ee7d5ULL } }; 6286 reg128_t arg2 = { .uq = { 0xa9385c2b82cd32d7ULL, 0x949c2e16a8145858ULL } }; 6287 reg128_t result0; 6288 char state[108]; 6289 6290 if (sigsetjmp(catchpoint, 1) == 0) 6291 { 6292 asm( 6293 "ffree %%st(7)\n" 6294 "ffree %%st(6)\n" 6295 "ffree %%st(5)\n" 6296 "ffree %%st(4)\n" 6297 "movlps 0+%1, %%xmm13\n" 6298 "movhps 8+%1, %%xmm13\n" 6299 "pclmulqdq $1, %0, %%xmm13\n" 6300 "movlps %%xmm13, 0+%2\n" 6301 "movhps %%xmm13, 8+%2\n" 6302 : 6303 : "m" (arg1), "m" (arg2), "m" (result0), "m" (state[0]) 6304 : "xmm12", "xmm13" 6305 ); 6306 6307 if (result0.uq[0] == 0x1be3bccbf3f77898ULL && result0.uq[1] == 0x10bca5dea41e786fULL ) 6308 { 6309 printf("pclmulqdq_142 ... ok\n"); 6310 } 6311 else 6312 { 6313 printf("pclmulqdq_142 ... not ok\n"); 6314 printf(" result0.uq[0] = %llu (expected %llu)\n", result0.uq[0], 0x1be3bccbf3f77898ULL); 6315 printf(" result0.uq[1] = %llu (expected %llu)\n", result0.uq[1], 0x10bca5dea41e786fULL); 6316 } 6317 } 6318 else 6319 { 6320 printf("pclmulqdq_142 ... failed\n"); 6321 } 6322 6323 return; 6324 } 6325 6326 static void pclmulqdq_143(void) 6327 { 6328 reg128_t arg1 = { .uq = { 0x4a4e170c32b7eb1bULL, 0xe5270b86f009b47eULL } }; 6329 reg128_t arg2 = { .uq = { 0x729385c456b2992eULL, 0x3949c2e30a070b86ULL } }; 6330 reg128_t result0; 6331 char state[108]; 6332 6333 if (sigsetjmp(catchpoint, 1) == 0) 6334 { 6335 asm( 6336 "ffree %%st(7)\n" 6337 "ffree %%st(6)\n" 6338 "ffree %%st(5)\n" 6339 "ffree %%st(4)\n" 6340 "movlps 0+%1, %%xmm13\n" 6341 "movhps 8+%1, %%xmm13\n" 6342 "pclmulqdq $16, %0, %%xmm13\n" 6343 "movlps %%xmm13, 0+%2\n" 6344 "movhps %%xmm13, 8+%2\n" 6345 : 6346 : "m" (arg1), "m" (arg2), "m" (result0), "m" (state[0]) 6347 : "xmm12", "xmm13" 6348 ); 6349 6350 if (result0.uq[0] == 0x2b68e2765ffdfb34ULL && result0.uq[1] == 0x2a08820822669a21ULL ) 6351 { 6352 printf("pclmulqdq_143 ... ok\n"); 6353 } 6354 else 6355 { 6356 printf("pclmulqdq_143 ... not ok\n"); 6357 printf(" result0.uq[0] = %llu (expected %llu)\n", result0.uq[0], 0x2b68e2765ffdfb34ULL); 6358 printf(" result0.uq[1] = %llu (expected %llu)\n", result0.uq[1], 0x2a08820822669a21ULL); 6359 } 6360 } 6361 else 6362 { 6363 printf("pclmulqdq_143 ... failed\n"); 6364 } 6365 6366 return; 6367 } 6368 6369 static void pclmulqdq_144(void) 6370 { 6371 reg128_t arg1 = { .uq = { 0x1ca4e17263b144b2ULL, 0x0e5270ba10866148ULL } }; 6372 reg128_t arg2 = { .uq = { 0x0729385de6f0ef93ULL, 0xc3949c2fda2636baULL } }; 6373 reg128_t result0; 6374 char state[108]; 6375 6376 if (sigsetjmp(catchpoint, 1) == 0) 6377 { 6378 asm( 6379 "ffree %%st(7)\n" 6380 "ffree %%st(6)\n" 6381 "ffree %%st(5)\n" 6382 "ffree %%st(4)\n" 6383 "movlps 0+%1, %%xmm13\n" 6384 "movhps 8+%1, %%xmm13\n" 6385 "pclmulqdq $17, %0, %%xmm13\n" 6386 "movlps %%xmm13, 0+%2\n" 6387 "movhps %%xmm13, 8+%2\n" 6388 : 6389 : "m" (arg1), "m" (arg2), "m" (result0), "m" (state[0]) 6390 : "xmm12", "xmm13" 6391 ); 6392 6393 if (result0.uq[0] == 0x27bb3d7f7f6f6150ULL && result0.uq[1] == 0x04a8a03284562190ULL ) 6394 { 6395 printf("pclmulqdq_144 ... ok\n"); 6396 } 6397 else 6398 { 6399 printf("pclmulqdq_144 ... not ok\n"); 6400 printf(" result0.uq[0] = %llu (expected %llu)\n", result0.uq[0], 0x27bb3d7f7f6f6150ULL); 6401 printf(" result0.uq[1] = %llu (expected %llu)\n", result0.uq[1], 0x04a8a03284562190ULL); 6402 } 6403 } 6404 else 6405 { 6406 printf("pclmulqdq_144 ... failed\n"); 6407 } 6408 6409 return; 6410 } 6411 6412 static void pclmulqdq_145(void) 6413 { 6414 reg128_t arg1 = { .uq = { 0x61ca4e18cbc0da4cULL, 0x30e5270d448e2c15ULL } }; 6415 reg128_t arg2 = { .uq = { 0xd872938788f4d4f7ULL, 0xac3949c4ab282968ULL } }; 6416 reg128_t result0; 6417 char state[108]; 6418 6419 if (sigsetjmp(catchpoint, 1) == 0) 6420 { 6421 asm( 6422 "ffree %%st(7)\n" 6423 "ffree %%st(6)\n" 6424 "ffree %%st(5)\n" 6425 "ffree %%st(4)\n" 6426 "movlps 0+%0, %%xmm12\n" 6427 "movhps 8+%0, %%xmm12\n" 6428 "movlps 0+%1, %%xmm13\n" 6429 "movhps 8+%1, %%xmm13\n" 6430 "pclmulqdq $0, %%xmm12, %%xmm13\n" 6431 "movlps %%xmm13, 0+%2\n" 6432 "movhps %%xmm13, 8+%2\n" 6433 : 6434 : "m" (arg1), "m" (arg2), "m" (result0), "m" (state[0]) 6435 : "xmm12", "xmm13" 6436 ); 6437 6438 if (result0.uq[0] == 0x45795f55a307afa4ULL && result0.uq[1] == 0x2d97e09b0bc3ba6eULL ) 6439 { 6440 printf("pclmulqdq_145 ... ok\n"); 6441 } 6442 else 6443 { 6444 printf("pclmulqdq_145 ... not ok\n"); 6445 printf(" result0.uq[0] = %llu (expected %llu)\n", result0.uq[0], 0x45795f55a307afa4ULL); 6446 printf(" result0.uq[1] = %llu (expected %llu)\n", result0.uq[1], 0x2d97e09b0bc3ba6eULL); 6447 } 6448 } 6449 else 6450 { 6451 printf("pclmulqdq_145 ... failed\n"); 6452 } 6453 6454 return; 6455 } 6456 6457 static void pclmulqdq_146(void) 6458 { 6459 reg128_t arg1 = { .uq = { 0x561ca4e33441d3a3ULL, 0xeb0e527270cea8c2ULL } }; 6460 reg128_t arg2 = { .uq = { 0x7587293a17151350ULL, 0x3ac3949dea384897ULL } }; 6461 reg128_t result0; 6462 char state[108]; 6463 6464 if (sigsetjmp(catchpoint, 1) == 0) 6465 { 6466 asm( 6467 "ffree %%st(7)\n" 6468 "ffree %%st(6)\n" 6469 "ffree %%st(5)\n" 6470 "ffree %%st(4)\n" 6471 "movlps 0+%0, %%xmm12\n" 6472 "movhps 8+%0, %%xmm12\n" 6473 "movlps 0+%1, %%xmm13\n" 6474 "movhps 8+%1, %%xmm13\n" 6475 "pclmulqdq $1, %%xmm12, %%xmm13\n" 6476 "movlps %%xmm13, 0+%2\n" 6477 "movhps %%xmm13, 8+%2\n" 6478 : 6479 : "m" (arg1), "m" (arg2), "m" (result0), "m" (state[0]) 6480 : "xmm12", "xmm13" 6481 ); 6482 6483 if (result0.uq[0] == 0x8952066b3e0c09d9ULL && result0.uq[1] == 0x0d80def82390fa59ULL ) 6484 { 6485 printf("pclmulqdq_146 ... ok\n"); 6486 } 6487 else 6488 { 6489 printf("pclmulqdq_146 ... not ok\n"); 6490 printf(" result0.uq[0] = %llu (expected %llu)\n", result0.uq[0], 0x8952066b3e0c09d9ULL); 6491 printf(" result0.uq[1] = %llu (expected %llu)\n", result0.uq[1], 0x0d80def82390fa59ULL); 6492 } 6493 } 6494 else 6495 { 6496 printf("pclmulqdq_146 ... failed\n"); 6497 } 6498 6499 return; 6500 } 6501 6502 static void pclmulqdq_147(void) 6503 { 6504 reg128_t arg1 = { .uq = { 0xdd61ca4fdbc9e338ULL, 0x6eb0e528cc92b08bULL } }; 6505 reg128_t arg2 = { .uq = { 0xf75872954cf71736ULL, 0x7bac394b85294a8aULL } }; 6506 reg128_t result0; 6507 char state[108]; 6508 6509 if (sigsetjmp(catchpoint, 1) == 0) 6510 { 6511 asm( 6512 "ffree %%st(7)\n" 6513 "ffree %%st(6)\n" 6514 "ffree %%st(5)\n" 6515 "ffree %%st(4)\n" 6516 "movlps 0+%0, %%xmm12\n" 6517 "movhps 8+%0, %%xmm12\n" 6518 "movlps 0+%1, %%xmm13\n" 6519 "movhps 8+%1, %%xmm13\n" 6520 "pclmulqdq $16, %%xmm12, %%xmm13\n" 6521 "movlps %%xmm13, 0+%2\n" 6522 "movhps %%xmm13, 8+%2\n" 6523 : 6524 : "m" (arg1), "m" (arg2), "m" (result0), "m" (state[0]) 6525 : "xmm12", "xmm13" 6526 ); 6527 6528 if (result0.uq[0] == 0x07e8e44eff28bbeaULL && result0.uq[1] == 0x26de695e1f9507acULL ) 6529 { 6530 printf("pclmulqdq_147 ... ok\n"); 6531 } 6532 else 6533 { 6534 printf("pclmulqdq_147 ... not ok\n"); 6535 printf(" result0.uq[0] = %llu (expected %llu)\n", result0.uq[0], 0x07e8e44eff28bbeaULL); 6536 printf(" result0.uq[1] = %llu (expected %llu)\n", result0.uq[1], 0x26de695e1f9507acULL); 6537 } 6538 } 6539 else 6540 { 6541 printf("pclmulqdq_147 ... failed\n"); 6542 } 6543 6544 return; 6545 } 6546 6547 static void pclmulqdq_148(void) 6548 { 6549 reg128_t arg1 = { .uq = { 0x3dd61ca6a1426434ULL, 0x1eeb0e542f4ef109ULL } }; 6550 reg128_t arg2 = { .uq = { 0xcf75872afe553775ULL, 0xa7bac39655d85aa7ULL } }; 6551 reg128_t result0; 6552 char state[108]; 6553 6554 if (sigsetjmp(catchpoint, 1) == 0) 6555 { 6556 asm( 6557 "ffree %%st(7)\n" 6558 "ffree %%st(6)\n" 6559 "ffree %%st(5)\n" 6560 "ffree %%st(4)\n" 6561 "movlps 0+%0, %%xmm12\n" 6562 "movhps 8+%0, %%xmm12\n" 6563 "movlps 0+%1, %%xmm13\n" 6564 "movhps 8+%1, %%xmm13\n" 6565 "pclmulqdq $17, %%xmm12, %%xmm13\n" 6566 "movlps %%xmm13, 0+%2\n" 6567 "movhps %%xmm13, 8+%2\n" 6568 : 6569 : "m" (arg1), "m" (arg2), "m" (result0), "m" (state[0]) 6570 : "xmm12", "xmm13" 6571 ); 6572 6573 if (result0.uq[0] == 0x8fad3e20986ef89fULL && result0.uq[1] == 0x0cfdf3f1f7833e00ULL ) 6574 { 6575 printf("pclmulqdq_148 ... ok\n"); 6576 } 6577 else 6578 { 6579 printf("pclmulqdq_148 ... not ok\n"); 6580 printf(" result0.uq[0] = %llu (expected %llu)\n", result0.uq[0], 0x8fad3e20986ef89fULL); 6581 printf(" result0.uq[1] = %llu (expected %llu)\n", result0.uq[1], 0x0cfdf3f1f7833e00ULL); 6582 } 6583 } 6584 else 6585 { 6586 printf("pclmulqdq_148 ... failed\n"); 6587 } 6588 6589 return; 6590 } 6591 6592 static void pclmulqdq_149(void) 6593 { 6594 reg128_t arg1 = { .uq = { 0x93dd61cc0199ec40ULL, 0x49eeb0e6df7ab50fULL } }; 6595 reg128_t arg2 = { .uq = { 0xe4f75874466b1974ULL, 0x727bac3b01e34ba9ULL } }; 6596 reg128_t result0; 6597 char state[108]; 6598 6599 if (sigsetjmp(catchpoint, 1) == 0) 6600 { 6601 asm( 6602 "ffree %%st(7)\n" 6603 "ffree %%st(6)\n" 6604 "ffree %%st(5)\n" 6605 "ffree %%st(4)\n" 6606 "movlps 0+%1, %%xmm13\n" 6607 "movhps 8+%1, %%xmm13\n" 6608 "pclmulqdq $0, %0, %%xmm13\n" 6609 "movlps %%xmm13, 0+%2\n" 6610 "movhps %%xmm13, 8+%2\n" 6611 : 6612 : "m" (arg1), "m" (arg2), "m" (result0), "m" (state[0]) 6613 : "xmm12", "xmm13" 6614 ); 6615 6616 if (result0.uq[0] == 0xc93a243ecc35ad00ULL && result0.uq[1] == 0x7d58bcc299211eabULL ) 6617 { 6618 printf("pclmulqdq_149 ... ok\n"); 6619 } 6620 else 6621 { 6622 printf("pclmulqdq_149 ... not ok\n"); 6623 printf(" result0.uq[0] = %llu (expected %llu)\n", result0.uq[0], 0xc93a243ecc35ad00ULL); 6624 printf(" result0.uq[1] = %llu (expected %llu)\n", result0.uq[1], 0x7d58bcc299211eabULL); 6625 } 6626 } 6627 else 6628 { 6629 printf("pclmulqdq_149 ... failed\n"); 6630 } 6631 6632 return; 6633 } 6634 6635 static void pclmulqdq_150(void) 6636 { 6637 reg128_t arg1 = { .uq = { 0xf93dd61e679f64c5ULL, 0xbc9eeb101a7d714fULL } }; 6638 reg128_t arg2 = { .uq = { 0x9e4f7588e3ec7794ULL, 0x4f27bac550a3fab9ULL } }; 6639 reg128_t result0; 6640 char state[108]; 6641 6642 if (sigsetjmp(catchpoint, 1) == 0) 6643 { 6644 asm( 6645 "ffree %%st(7)\n" 6646 "ffree %%st(6)\n" 6647 "ffree %%st(5)\n" 6648 "ffree %%st(4)\n" 6649 "movlps 0+%1, %%xmm13\n" 6650 "movhps 8+%1, %%xmm13\n" 6651 "pclmulqdq $1, %0, %%xmm13\n" 6652 "movlps %%xmm13, 0+%2\n" 6653 "movhps %%xmm13, 8+%2\n" 6654 : 6655 : "m" (arg1), "m" (arg2), "m" (result0), "m" (state[0]) 6656 : "xmm12", "xmm13" 6657 ); 6658 6659 if (result0.uq[0] == 0x96014936edcb669dULL && result0.uq[1] == 0x3b74884e3421a5a6ULL ) 6660 { 6661 printf("pclmulqdq_150 ... ok\n"); 6662 } 6663 else 6664 { 6665 printf("pclmulqdq_150 ... not ok\n"); 6666 printf(" result0.uq[0] = %llu (expected %llu)\n", result0.uq[0], 0x96014936edcb669dULL); 6667 printf(" result0.uq[1] = %llu (expected %llu)\n", result0.uq[1], 0x3b74884e3421a5a6ULL); 6668 } 6669 } 6670 else 6671 { 6672 printf("pclmulqdq_150 ... failed\n"); 6673 } 6674 6675 return; 6676 } 6677 6678 static void pclmulqdq_151(void) 6679 { 6680 reg128_t arg1 = { .uq = { 0xe793dd637effbc4dULL, 0xb3c9eeb2962d9d13ULL } }; 6681 reg128_t arg2 = { .uq = { 0x99e4f75a21c48d7aULL, 0x4cf27badef9005acULL } }; 6682 reg128_t result0; 6683 char state[108]; 6684 6685 if (sigsetjmp(catchpoint, 1) == 0) 6686 { 6687 asm( 6688 "ffree %%st(7)\n" 6689 "ffree %%st(6)\n" 6690 "ffree %%st(5)\n" 6691 "ffree %%st(4)\n" 6692 "movlps 0+%1, %%xmm13\n" 6693 "movhps 8+%1, %%xmm13\n" 6694 "pclmulqdq $16, %0, %%xmm13\n" 6695 "movlps %%xmm13, 0+%2\n" 6696 "movhps %%xmm13, 8+%2\n" 6697 : 6698 : "m" (arg1), "m" (arg2), "m" (result0), "m" (state[0]) 6699 : "xmm12", "xmm13" 6700 ); 6701 6702 if (result0.uq[0] == 0xe083eb2842bea22eULL && result0.uq[1] == 0x579424d4aee04284ULL ) 6703 { 6704 printf("pclmulqdq_151 ... ok\n"); 6705 } 6706 else 6707 { 6708 printf("pclmulqdq_151 ... not ok\n"); 6709 printf(" result0.uq[0] = %llu (expected %llu)\n", result0.uq[0], 0xe083eb2842bea22eULL); 6710 printf(" result0.uq[1] = %llu (expected %llu)\n", result0.uq[1], 0x579424d4aee04284ULL); 6711 } 6712 } 6713 else 6714 { 6715 printf("pclmulqdq_151 ... failed\n"); 6716 } 6717 6718 return; 6719 } 6720 6721 static void pclmulqdq_152(void) 6722 { 6723 reg128_t arg1 = { .uq = { 0x26793dd7d675c1c5ULL, 0xd33c9eecc1e89fcfULL } }; 6724 reg128_t arg2 = { .uq = { 0xa99e4f7747a20ed4ULL, 0x54cf27bc827ec659ULL } }; 6725 reg128_t result0; 6726 char state[108]; 6727 6728 if (sigsetjmp(catchpoint, 1) == 0) 6729 { 6730 asm( 6731 "ffree %%st(7)\n" 6732 "ffree %%st(6)\n" 6733 "ffree %%st(5)\n" 6734 "ffree %%st(4)\n" 6735 "movlps 0+%1, %%xmm13\n" 6736 "movhps 8+%1, %%xmm13\n" 6737 "pclmulqdq $17, %0, %%xmm13\n" 6738 "movlps %%xmm13, 0+%2\n" 6739 "movhps %%xmm13, 8+%2\n" 6740 : 6741 : "m" (arg1), "m" (arg2), "m" (result0), "m" (state[0]) 6742 : "xmm12", "xmm13" 6743 ); 6744 6745 if (result0.uq[0] == 0xbbe2a4fae75c8c87ULL && result0.uq[1] == 0x3ae9f530feca9e83ULL ) 6746 { 6747 printf("pclmulqdq_152 ... ok\n"); 6748 } 6749 else 6750 { 6751 printf("pclmulqdq_152 ... not ok\n"); 6752 printf(" result0.uq[0] = %llu (expected %llu)\n", result0.uq[0], 0xbbe2a4fae75c8c87ULL); 6753 printf(" result0.uq[1] = %llu (expected %llu)\n", result0.uq[1], 0x3ae9f530feca9e83ULL); 6754 } 6755 } 6756 else 6757 { 6758 printf("pclmulqdq_152 ... failed\n"); 6759 } 6760 6761 return; 6762 } 6763 6764 static void pclmulqdq_153(void) 6765 { 6766 reg128_t arg1 = { .uq = { 0xea6793df27ed221dULL, 0xb533c9f07aa44ffbULL } }; 6767 reg128_t arg2 = { .uq = { 0x9a99e4f913ffe6eeULL, 0x4d4cf27d68adb266ULL } }; 6768 reg128_t result0; 6769 char state[108]; 6770 6771 if (sigsetjmp(catchpoint, 1) == 0) 6772 { 6773 asm( 6774 "ffree %%st(7)\n" 6775 "ffree %%st(6)\n" 6776 "ffree %%st(5)\n" 6777 "ffree %%st(4)\n" 6778 "movlps 0+%0, %%xmm12\n" 6779 "movhps 8+%0, %%xmm12\n" 6780 "movlps 0+%1, %%xmm13\n" 6781 "movhps 8+%1, %%xmm13\n" 6782 "pclmulqdq $0, %%xmm12, %%xmm13\n" 6783 "movlps %%xmm13, 0+%2\n" 6784 "movhps %%xmm13, 8+%2\n" 6785 : 6786 : "m" (arg1), "m" (arg2), "m" (result0), "m" (state[0]) 6787 : "xmm12", "xmm13" 6788 ); 6789 6790 if (result0.uq[0] == 0x2ecb87e2ee7738c6ULL && result0.uq[1] == 0x7d6e3e944eaff450ULL ) 6791 { 6792 printf("pclmulqdq_153 ... ok\n"); 6793 } 6794 else 6795 { 6796 printf("pclmulqdq_153 ... not ok\n"); 6797 printf(" result0.uq[0] = %llu (expected %llu)\n", result0.uq[0], 0x2ecb87e2ee7738c6ULL); 6798 printf(" result0.uq[1] = %llu (expected %llu)\n", result0.uq[1], 0x7d6e3e944eaff450ULL); 6799 } 6800 } 6801 else 6802 { 6803 printf("pclmulqdq_153 ... failed\n"); 6804 } 6805 6806 return; 6807 } 6808 6809 static void pclmulqdq_154(void) 6810 { 6811 reg128_t arg1 = { .uq = { 0x26a6793f93049822ULL, 0x13533ca0a8300b00ULL } }; 6812 reg128_t arg2 = { .uq = { 0x09a99e5132c5c46fULL, 0xc4d4cf297010a124ULL } }; 6813 reg128_t result0; 6814 char state[108]; 6815 6816 if (sigsetjmp(catchpoint, 1) == 0) 6817 { 6818 asm( 6819 "ffree %%st(7)\n" 6820 "ffree %%st(6)\n" 6821 "ffree %%st(5)\n" 6822 "ffree %%st(4)\n" 6823 "movlps 0+%0, %%xmm12\n" 6824 "movhps 8+%0, %%xmm12\n" 6825 "movlps 0+%1, %%xmm13\n" 6826 "movhps 8+%1, %%xmm13\n" 6827 "pclmulqdq $1, %%xmm12, %%xmm13\n" 6828 "movlps %%xmm13, 0+%2\n" 6829 "movhps %%xmm13, 8+%2\n" 6830 : 6831 : "m" (arg1), "m" (arg2), "m" (result0), "m" (state[0]) 6832 : "xmm12", "xmm13" 6833 ); 6834 6835 if (result0.uq[0] == 0xae7428c8952c06c8ULL && result0.uq[1] == 0x1a782a535e1cf462ULL ) 6836 { 6837 printf("pclmulqdq_154 ... ok\n"); 6838 } 6839 else 6840 { 6841 printf("pclmulqdq_154 ... not ok\n"); 6842 printf(" result0.uq[0] = %llu (expected %llu)\n", result0.uq[0], 0xae7428c8952c06c8ULL); 6843 printf(" result0.uq[1] = %llu (expected %llu)\n", result0.uq[1], 0x1a782a535e1cf462ULL); 6844 } 6845 } 6846 else 6847 { 6848 printf("pclmulqdq_154 ... failed\n"); 6849 } 6850 6851 return; 6852 } 6853 6854 static void pclmulqdq_155(void) 6855 { 6856 reg128_t arg1 = { .uq = { 0x626a679596b60f81ULL, 0xf13533cba208c6b1ULL } }; 6857 reg128_t arg2 = { .uq = { 0xb89a99e6b7b22249ULL, 0x9c4d4cf43286d015ULL } }; 6858 reg128_t result0; 6859 char state[108]; 6860 6861 if (sigsetjmp(catchpoint, 1) == 0) 6862 { 6863 asm( 6864 "ffree %%st(7)\n" 6865 "ffree %%st(6)\n" 6866 "ffree %%st(5)\n" 6867 "ffree %%st(4)\n" 6868 "movlps 0+%0, %%xmm12\n" 6869 "movhps 8+%0, %%xmm12\n" 6870 "movlps 0+%1, %%xmm13\n" 6871 "movhps 8+%1, %%xmm13\n" 6872 "pclmulqdq $16, %%xmm12, %%xmm13\n" 6873 "movlps %%xmm13, 0+%2\n" 6874 "movhps %%xmm13, 8+%2\n" 6875 : 6876 : "m" (arg1), "m" (arg2), "m" (result0), "m" (state[0]) 6877 : "xmm12", "xmm13" 6878 ); 6879 6880 if (result0.uq[0] == 0x4a8f4c6ff6f61d79ULL && result0.uq[1] == 0x6e57579e887d4fc8ULL ) 6881 { 6882 printf("pclmulqdq_155 ... ok\n"); 6883 } 6884 else 6885 { 6886 printf("pclmulqdq_155 ... not ok\n"); 6887 printf(" result0.uq[0] = %llu (expected %llu)\n", result0.uq[0], 0x4a8f4c6ff6f61d79ULL); 6888 printf(" result0.uq[1] = %llu (expected %llu)\n", result0.uq[1], 0x6e57579e887d4fc8ULL); 6889 } 6890 } 6891 else 6892 { 6893 printf("pclmulqdq_155 ... failed\n"); 6894 } 6895 6896 return; 6897 } 6898 6899 static void pclmulqdq_156(void) 6900 { 6901 reg128_t arg1 = { .uq = { 0x8e26a67aeff126f7ULL, 0x8713533e5ea65268ULL } }; 6902 reg128_t arg2 = { .uq = { 0x4389a9a00e00e823ULL, 0xe1c4d4d0edae3302ULL } }; 6903 reg128_t result0; 6904 char state[108]; 6905 6906 if (sigsetjmp(catchpoint, 1) == 0) 6907 { 6908 asm( 6909 "ffree %%st(7)\n" 6910 "ffree %%st(6)\n" 6911 "ffree %%st(5)\n" 6912 "ffree %%st(4)\n" 6913 "movlps 0+%0, %%xmm12\n" 6914 "movhps 8+%0, %%xmm12\n" 6915 "movlps 0+%1, %%xmm13\n" 6916 "movhps 8+%1, %%xmm13\n" 6917 "pclmulqdq $17, %%xmm12, %%xmm13\n" 6918 "movlps %%xmm13, 0+%2\n" 6919 "movhps %%xmm13, 8+%2\n" 6920 : 6921 : "m" (arg1), "m" (arg2), "m" (result0), "m" (state[0]) 6922 : "xmm12", "xmm13" 6923 ); 6924 6925 if (result0.uq[0] == 0x7752ad4e77e19cd0ULL && result0.uq[1] == 0x72483d1e1c0e1d3aULL ) 6926 { 6927 printf("pclmulqdq_156 ... ok\n"); 6928 } 6929 else 6930 { 6931 printf("pclmulqdq_156 ... not ok\n"); 6932 printf(" result0.uq[0] = %llu (expected %llu)\n", result0.uq[0], 0x7752ad4e77e19cd0ULL); 6933 printf(" result0.uq[1] = %llu (expected %llu)\n", result0.uq[1], 0x72483d1e1c0e1d3aULL); 6934 } 6935 } 6936 else 6937 { 6938 printf("pclmulqdq_156 ... failed\n"); 6939 } 6940 6941 return; 6942 } 6943 6944 static void pclmulqdq_157(void) 6945 { 6946 reg128_t arg1 = { .uq = { 0x70e26a695584d870ULL, 0x3871353589702b27ULL } }; 6947 reg128_t arg2 = { .uq = { 0xdc389a9bab65d480ULL, 0x6e1c4d4eb460a92fULL } }; 6948 reg128_t result0; 6949 char state[108]; 6950 6951 if (sigsetjmp(catchpoint, 1) == 0) 6952 { 6953 asm( 6954 "ffree %%st(7)\n" 6955 "ffree %%st(6)\n" 6956 "ffree %%st(5)\n" 6957 "ffree %%st(4)\n" 6958 "movlps 0+%1, %%xmm13\n" 6959 "movhps 8+%1, %%xmm13\n" 6960 "pclmulqdq $0, %0, %%xmm13\n" 6961 "movlps %%xmm13, 0+%2\n" 6962 "movhps %%xmm13, 8+%2\n" 6963 : 6964 : "m" (arg1), "m" (arg2), "m" (result0), "m" (state[0]) 6965 : "xmm12", "xmm13" 6966 ); 6967 6968 if (result0.uq[0] == 0xd8c101b07d1ef800ULL && result0.uq[1] == 0x2109baafa5af4636ULL ) 6969 { 6970 printf("pclmulqdq_157 ... ok\n"); 6971 } 6972 else 6973 { 6974 printf("pclmulqdq_157 ... not ok\n"); 6975 printf(" result0.uq[0] = %llu (expected %llu)\n", result0.uq[0], 0xd8c101b07d1ef800ULL); 6976 printf(" result0.uq[1] = %llu (expected %llu)\n", result0.uq[1], 0x2109baafa5af4636ULL); 6977 } 6978 } 6979 else 6980 { 6981 printf("pclmulqdq_157 ... failed\n"); 6982 } 6983 6984 return; 6985 } 6986 6987 static void pclmulqdq_158(void) 6988 { 6989 reg128_t arg1 = { .uq = { 0xf70e26a830de1384ULL, 0x7b871354f71cc8b1ULL } }; 6990 reg128_t arg2 = { .uq = { 0xfdc389ab523c2349ULL, 0xbee1c4d67fcbd095ULL } }; 6991 reg128_t result0; 6992 char state[108]; 6993 6994 if (sigsetjmp(catchpoint, 1) == 0) 6995 { 6996 asm( 6997 "ffree %%st(7)\n" 6998 "ffree %%st(6)\n" 6999 "ffree %%st(5)\n" 7000 "ffree %%st(4)\n" 7001 "movlps 0+%1, %%xmm13\n" 7002 "movhps 8+%1, %%xmm13\n" 7003 "pclmulqdq $1, %0, %%xmm13\n" 7004 "movlps %%xmm13, 0+%2\n" 7005 "movhps %%xmm13, 8+%2\n" 7006 : 7007 : "m" (arg1), "m" (arg2), "m" (result0), "m" (state[0]) 7008 : "xmm12", "xmm13" 7009 ); 7010 7011 if (result0.uq[0] == 0x2e0ab5ce0af9e7d4ULL && result0.uq[1] == 0x6fc4778aacb0c279ULL ) 7012 { 7013 printf("pclmulqdq_158 ... ok\n"); 7014 } 7015 else 7016 { 7017 printf("pclmulqdq_158 ... not ok\n"); 7018 printf(" result0.uq[0] = %llu (expected %llu)\n", result0.uq[0], 0x2e0ab5ce0af9e7d4ULL); 7019 printf(" result0.uq[1] = %llu (expected %llu)\n", result0.uq[1], 0x6fc4778aacb0c279ULL); 7020 } 7021 } 7022 else 7023 { 7024 printf("pclmulqdq_158 ... failed\n"); 7025 } 7026 7027 return; 7028 } 7029 7030 static void pclmulqdq_159(void) 7031 { 7032 reg128_t arg1 = { .uq = { 0x9f70e26c1693a737ULL, 0x8fb87136e1f79288ULL } }; 7033 reg128_t arg2 = { .uq = { 0x47dc389c4fa98833ULL, 0xe3ee1c4f0e82830aULL } }; 7034 reg128_t result0; 7035 char state[108]; 7036 7037 if (sigsetjmp(catchpoint, 1) == 0) 7038 { 7039 asm( 7040 "ffree %%st(7)\n" 7041 "ffree %%st(6)\n" 7042 "ffree %%st(5)\n" 7043 "ffree %%st(4)\n" 7044 "movlps 0+%1, %%xmm13\n" 7045 "movhps 8+%1, %%xmm13\n" 7046 "pclmulqdq $16, %0, %%xmm13\n" 7047 "movlps %%xmm13, 0+%2\n" 7048 "movhps %%xmm13, 8+%2\n" 7049 : 7050 : "m" (arg1), "m" (arg2), "m" (result0), "m" (state[0]) 7051 : "xmm12", "xmm13" 7052 ); 7053 7054 if (result0.uq[0] == 0x5e76a6469d8b8e18ULL && result0.uq[1] == 0x202aa2a3ba5c9f52ULL ) 7055 { 7056 printf("pclmulqdq_159 ... ok\n"); 7057 } 7058 else 7059 { 7060 printf("pclmulqdq_159 ... not ok\n"); 7061 printf(" result0.uq[0] = %llu (expected %llu)\n", result0.uq[0], 0x5e76a6469d8b8e18ULL); 7062 printf(" result0.uq[1] = %llu (expected %llu)\n", result0.uq[1], 0x202aa2a3ba5c9f52ULL); 7063 } 7064 } 7065 else 7066 { 7067 printf("pclmulqdq_159 ... failed\n"); 7068 } 7069 7070 return; 7071 } 7072 7073 static void pclmulqdq_160(void) 7074 { 7075 reg128_t arg1 = { .uq = { 0x71f70e2865ef0074ULL, 0x38fb871511a53f29ULL } }; 7076 reg128_t arg2 = { .uq = { 0xdc7dc38b5f805e85ULL, 0xae3ee1c6866dee2fULL } }; 7077 reg128_t result0; 7078 char state[108]; 7079 7080 if (sigsetjmp(catchpoint, 1) == 0) 7081 { 7082 asm( 7083 "ffree %%st(7)\n" 7084 "ffree %%st(6)\n" 7085 "ffree %%st(5)\n" 7086 "ffree %%st(4)\n" 7087 "movlps 0+%1, %%xmm13\n" 7088 "movhps 8+%1, %%xmm13\n" 7089 "pclmulqdq $17, %0, %%xmm13\n" 7090 "movlps %%xmm13, 0+%2\n" 7091 "movhps %%xmm13, 8+%2\n" 7092 : 7093 : "m" (arg1), "m" (arg2), "m" (result0), "m" (state[0]) 7094 : "xmm12", "xmm13" 7095 ); 7096 7097 if (result0.uq[0] == 0xe9f524d62e90ffb7ULL && result0.uq[1] == 0x1a32a63921dddceaULL ) 7098 { 7099 printf("pclmulqdq_160 ... ok\n"); 7100 } 7101 else 7102 { 7103 printf("pclmulqdq_160 ... not ok\n"); 7104 printf(" result0.uq[0] = %llu (expected %llu)\n", result0.uq[0], 0xe9f524d62e90ffb7ULL); 7105 printf(" result0.uq[1] = %llu (expected %llu)\n", result0.uq[1], 0x1a32a63921dddceaULL); 7106 } 7107 } 7108 else 7109 { 7110 printf("pclmulqdq_160 ... failed\n"); 7111 } 7112 7113 return; 7114 } 7115 7116 int main(int argc, char **argv) 7117 { 7118 signal(SIGILL, handle_sigill); 7119 7120 pclmulqdq_1(); 7121 pclmulqdq_2(); 7122 pclmulqdq_3(); 7123 pclmulqdq_4(); 7124 pclmulqdq_5(); 7125 pclmulqdq_6(); 7126 pclmulqdq_7(); 7127 pclmulqdq_8(); 7128 pclmulqdq_9(); 7129 pclmulqdq_10(); 7130 pclmulqdq_11(); 7131 pclmulqdq_12(); 7132 pclmulqdq_13(); 7133 pclmulqdq_14(); 7134 pclmulqdq_15(); 7135 pclmulqdq_16(); 7136 pclmulqdq_17(); 7137 pclmulqdq_18(); 7138 pclmulqdq_19(); 7139 pclmulqdq_20(); 7140 pclmulqdq_21(); 7141 pclmulqdq_22(); 7142 pclmulqdq_23(); 7143 pclmulqdq_24(); 7144 pclmulqdq_25(); 7145 pclmulqdq_26(); 7146 pclmulqdq_27(); 7147 pclmulqdq_28(); 7148 pclmulqdq_29(); 7149 pclmulqdq_30(); 7150 pclmulqdq_31(); 7151 pclmulqdq_32(); 7152 pclmulqdq_33(); 7153 pclmulqdq_34(); 7154 pclmulqdq_35(); 7155 pclmulqdq_36(); 7156 pclmulqdq_37(); 7157 pclmulqdq_38(); 7158 pclmulqdq_39(); 7159 pclmulqdq_40(); 7160 pclmulqdq_41(); 7161 pclmulqdq_42(); 7162 pclmulqdq_43(); 7163 pclmulqdq_44(); 7164 pclmulqdq_45(); 7165 pclmulqdq_46(); 7166 pclmulqdq_47(); 7167 pclmulqdq_48(); 7168 pclmulqdq_49(); 7169 pclmulqdq_50(); 7170 pclmulqdq_51(); 7171 pclmulqdq_52(); 7172 pclmulqdq_53(); 7173 pclmulqdq_54(); 7174 pclmulqdq_55(); 7175 pclmulqdq_56(); 7176 pclmulqdq_57(); 7177 pclmulqdq_58(); 7178 pclmulqdq_59(); 7179 pclmulqdq_60(); 7180 pclmulqdq_61(); 7181 pclmulqdq_62(); 7182 pclmulqdq_63(); 7183 pclmulqdq_64(); 7184 pclmulqdq_65(); 7185 pclmulqdq_66(); 7186 pclmulqdq_67(); 7187 pclmulqdq_68(); 7188 pclmulqdq_69(); 7189 pclmulqdq_70(); 7190 pclmulqdq_71(); 7191 pclmulqdq_72(); 7192 pclmulqdq_73(); 7193 pclmulqdq_74(); 7194 pclmulqdq_75(); 7195 pclmulqdq_76(); 7196 pclmulqdq_77(); 7197 pclmulqdq_78(); 7198 pclmulqdq_79(); 7199 pclmulqdq_80(); 7200 pclmulqdq_81(); 7201 pclmulqdq_82(); 7202 pclmulqdq_83(); 7203 pclmulqdq_84(); 7204 pclmulqdq_85(); 7205 pclmulqdq_86(); 7206 pclmulqdq_87(); 7207 pclmulqdq_88(); 7208 pclmulqdq_89(); 7209 pclmulqdq_90(); 7210 pclmulqdq_91(); 7211 pclmulqdq_92(); 7212 pclmulqdq_93(); 7213 pclmulqdq_94(); 7214 pclmulqdq_95(); 7215 pclmulqdq_96(); 7216 pclmulqdq_97(); 7217 pclmulqdq_98(); 7218 pclmulqdq_99(); 7219 pclmulqdq_100(); 7220 pclmulqdq_101(); 7221 pclmulqdq_102(); 7222 pclmulqdq_103(); 7223 pclmulqdq_104(); 7224 pclmulqdq_105(); 7225 pclmulqdq_106(); 7226 pclmulqdq_107(); 7227 pclmulqdq_108(); 7228 pclmulqdq_109(); 7229 pclmulqdq_110(); 7230 pclmulqdq_111(); 7231 pclmulqdq_112(); 7232 pclmulqdq_113(); 7233 pclmulqdq_114(); 7234 pclmulqdq_115(); 7235 pclmulqdq_116(); 7236 pclmulqdq_117(); 7237 pclmulqdq_118(); 7238 pclmulqdq_119(); 7239 pclmulqdq_120(); 7240 pclmulqdq_121(); 7241 pclmulqdq_122(); 7242 pclmulqdq_123(); 7243 pclmulqdq_124(); 7244 pclmulqdq_125(); 7245 pclmulqdq_126(); 7246 pclmulqdq_127(); 7247 pclmulqdq_128(); 7248 pclmulqdq_129(); 7249 pclmulqdq_130(); 7250 pclmulqdq_131(); 7251 pclmulqdq_132(); 7252 pclmulqdq_133(); 7253 pclmulqdq_134(); 7254 pclmulqdq_135(); 7255 pclmulqdq_136(); 7256 pclmulqdq_137(); 7257 pclmulqdq_138(); 7258 pclmulqdq_139(); 7259 pclmulqdq_140(); 7260 pclmulqdq_141(); 7261 pclmulqdq_142(); 7262 pclmulqdq_143(); 7263 pclmulqdq_144(); 7264 pclmulqdq_145(); 7265 pclmulqdq_146(); 7266 pclmulqdq_147(); 7267 pclmulqdq_148(); 7268 pclmulqdq_149(); 7269 pclmulqdq_150(); 7270 pclmulqdq_151(); 7271 pclmulqdq_152(); 7272 pclmulqdq_153(); 7273 pclmulqdq_154(); 7274 pclmulqdq_155(); 7275 pclmulqdq_156(); 7276 pclmulqdq_157(); 7277 pclmulqdq_158(); 7278 pclmulqdq_159(); 7279 pclmulqdq_160(); 7280 7281 exit(0); 7282 } 7283