- Notifications
You must be signed in to change notification settings - Fork329
Commita13f5dc
committed
Optimize fastXOR with math/bits
Seegolang/go#31586 (comment)Thanks@renthrayskbenchmark old MB/s new MB/s speedupBenchmarkXOR/2/fast-8 470.88 492.61 1.05xBenchmarkXOR/3/fast-8 602.24 719.25 1.19xBenchmarkXOR/4/fast-8 718.82 1186.64 1.65xBenchmarkXOR/8/fast-8 1027.60 1718.71 1.67xBenchmarkXOR/16/fast-8 1413.31 3430.46 2.43xBenchmarkXOR/32/fast-8 2701.81 5585.42 2.07xBenchmarkXOR/128/fast-8 7757.97 13432.37 1.73xBenchmarkXOR/512/fast-8 15155.03 18797.79 1.24xBenchmarkXOR/4096/fast-8 20689.95 20334.61 0.98xBenchmarkXOR/16384/fast-8 21687.87 21613.94 1.00xNow its faster than basic XOR at every byte size greater than 2 onlittle endian amd64 machines.1 parent2f8f69c commita13f5dc
4 files changed
+94
-81
lines changedOriginal file line number | Diff line number | Diff line change | |
---|---|---|---|
| |||
6 | 6 |
| |
7 | 7 |
| |
8 | 8 |
| |
| 9 | + | |
9 | 10 |
| |
10 | 11 |
| |
11 | 12 |
| |
| |||
81 | 82 |
| |
82 | 83 |
| |
83 | 84 |
| |
84 |
| - | |
| 85 | + | |
85 | 86 |
| |
86 | 87 |
| |
87 | 88 |
| |
| |||
324 | 325 |
| |
325 | 326 |
| |
326 | 327 |
| |
327 |
| - | |
| 328 | + | |
328 | 329 |
| |
329 | 330 |
| |
330 | 331 |
| |
| |||
445 | 446 |
| |
446 | 447 |
| |
447 | 448 |
| |
| 449 | + | |
448 | 450 |
| |
449 |
| - | |
450 | 451 |
| |
451 | 452 |
| |
452 | 453 |
| |
| |||
532 | 533 |
| |
533 | 534 |
| |
534 | 535 |
| |
535 |
| - | |
| 536 | + | |
536 | 537 |
| |
537 | 538 |
| |
538 | 539 |
| |
| |||
545 | 546 |
| |
546 | 547 |
| |
547 | 548 |
| |
548 |
| - | |
| 549 | + | |
549 | 550 |
| |
550 | 551 |
| |
551 | 552 |
| |
| |||
761 | 762 |
| |
762 | 763 |
| |
763 | 764 |
| |
764 |
| - | |
| 765 | + | |
765 | 766 |
| |
766 | 767 |
| |
767 | 768 |
| |
| |||
809 | 810 |
| |
810 | 811 |
| |
811 | 812 |
| |
812 |
| - | |
| 813 | + | |
813 | 814 |
| |
814 | 815 |
| |
815 | 816 |
| |
| |||
831 | 832 |
| |
832 | 833 |
| |
833 | 834 |
| |
834 |
| - | |
| 835 | + | |
835 | 836 |
| |
836 | 837 |
| |
837 | 838 |
| |
|
Original file line number | Diff line number | Diff line change | |
---|---|---|---|
| |||
37 | 37 |
| |
38 | 38 |
| |
39 | 39 |
| |
40 |
| - | |
| 40 | + | |
41 | 41 |
| |
42 | 42 |
| |
43 | 43 |
| |
|
Original file line number | Diff line number | Diff line change | |
---|---|---|---|
| |||
6 | 6 |
| |
7 | 7 |
| |
8 | 8 |
| |
| 9 | + | |
9 | 10 |
| |
10 | 11 |
| |
11 | 12 |
| |
| |||
69 | 70 |
| |
70 | 71 |
| |
71 | 72 |
| |
72 |
| - | |
| 73 | + | |
73 | 74 |
| |
74 | 75 |
| |
75 | 76 |
| |
| |||
119 | 120 |
| |
120 | 121 |
| |
121 | 122 |
| |
122 |
| - | |
| 123 | + | |
123 | 124 |
| |
124 | 125 |
| |
125 | 126 |
| |
| |||
192 | 193 |
| |
193 | 194 |
| |
194 | 195 |
| |
195 |
| - | |
| 196 | + | |
196 | 197 |
| |
197 | 198 |
| |
198 | 199 |
| |
| |||
321 | 322 |
| |
322 | 323 |
| |
323 | 324 |
| |
324 |
| - | |
325 |
| - | |
326 |
| - | |
| 325 | + | |
| 326 | + | |
327 | 327 |
| |
328 | 328 |
| |
329 |
| - | |
330 |
| - | |
331 |
| - | |
332 |
| - | |
333 |
| - | |
334 |
| - | |
335 |
| - | |
336 |
| - | |
337 |
| - | |
338 |
| - | |
339 |
| - | |
340 |
| - | |
341 |
| - | |
342 |
| - | |
343 |
| - | |
| 329 | + | |
| 330 | + | |
| 331 | + | |
| 332 | + | |
| 333 | + | |
| 334 | + | |
| 335 | + | |
| 336 | + | |
344 | 337 |
| |
345 | 338 |
| |
346 | 339 |
| |
347 | 340 |
| |
348 | 341 |
| |
349 | 342 |
| |
350 | 343 |
| |
351 |
| - | |
| 344 | + | |
352 | 345 |
| |
353 |
| - | |
| 346 | + | |
354 | 347 |
| |
355 |
| - | |
| 348 | + | |
356 | 349 |
| |
357 |
| - | |
| 350 | + | |
358 | 351 |
| |
359 |
| - | |
| 352 | + | |
360 | 353 |
| |
361 |
| - | |
| 354 | + | |
362 | 355 |
| |
363 |
| - | |
| 356 | + | |
364 | 357 |
| |
365 |
| - | |
| 358 | + | |
366 | 359 |
| |
367 |
| - | |
| 360 | + | |
368 | 361 |
| |
369 |
| - | |
| 362 | + | |
370 | 363 |
| |
371 |
| - | |
| 364 | + | |
372 | 365 |
| |
373 |
| - | |
| 366 | + | |
374 | 367 |
| |
375 |
| - | |
| 368 | + | |
376 | 369 |
| |
377 |
| - | |
| 370 | + | |
378 | 371 |
| |
379 |
| - | |
| 372 | + | |
380 | 373 |
| |
381 |
| - | |
| 374 | + | |
382 | 375 |
| |
383 | 376 |
| |
384 | 377 |
| |
385 | 378 |
| |
386 | 379 |
| |
387 | 380 |
| |
388 |
| - | |
| 381 | + | |
389 | 382 |
| |
390 |
| - | |
| 383 | + | |
391 | 384 |
| |
392 |
| - | |
| 385 | + | |
393 | 386 |
| |
394 |
| - | |
| 387 | + | |
395 | 388 |
| |
396 |
| - | |
| 389 | + | |
397 | 390 |
| |
398 |
| - | |
| 391 | + | |
399 | 392 |
| |
400 |
| - | |
| 393 | + | |
401 | 394 |
| |
402 |
| - | |
| 395 | + | |
403 | 396 |
| |
404 | 397 |
| |
405 | 398 |
| |
406 | 399 |
| |
407 | 400 |
| |
408 | 401 |
| |
409 |
| - | |
| 402 | + | |
410 | 403 |
| |
411 |
| - | |
| 404 | + | |
412 | 405 |
| |
413 |
| - | |
| 406 | + | |
414 | 407 |
| |
415 |
| - | |
| 408 | + | |
416 | 409 |
| |
417 | 410 |
| |
418 | 411 |
| |
419 | 412 |
| |
420 | 413 |
| |
421 | 414 |
| |
422 |
| - | |
| 415 | + | |
423 | 416 |
| |
424 |
| - | |
| 417 | + | |
425 | 418 |
| |
426 | 419 |
| |
427 | 420 |
| |
428 | 421 |
| |
429 | 422 |
| |
430 | 423 |
| |
431 |
| - | |
| 424 | + | |
432 | 425 |
| |
433 | 426 |
| |
434 | 427 |
| |
435 | 428 |
| |
| 429 | + | |
| 430 | + | |
| 431 | + | |
| 432 | + | |
| 433 | + | |
| 434 | + | |
| 435 | + | |
436 | 436 |
| |
437 | 437 |
| |
438 |
| - | |
439 |
| - | |
| 438 | + | |
| 439 | + | |
440 | 440 |
| |
441 |
| - | |
| 441 | + | |
| 442 | + | |
442 | 443 |
|
Original file line number | Diff line number | Diff line change | |
---|---|---|---|
| |||
4 | 4 |
| |
5 | 5 |
| |
6 | 6 |
| |
| 7 | + | |
7 | 8 |
| |
8 | 9 |
| |
| 10 | + | |
9 | 11 |
| |
10 | 12 |
| |
11 | 13 |
| |
| |||
133 | 135 |
| |
134 | 136 |
| |
135 | 137 |
| |
136 |
| - | |
| 138 | + | |
137 | 139 |
| |
138 | 140 |
| |
139 | 141 |
| |
| |||
309 | 311 |
| |
310 | 312 |
| |
311 | 313 |
| |
312 |
| - | |
| 314 | + | |
| 315 | + | |
313 | 316 |
| |
314 |
| - | |
315 |
| - | |
| 317 | + | |
316 | 318 |
| |
317 | 319 |
| |
318 | 320 |
| |
319 | 321 |
| |
320 | 322 |
| |
321 |
| - | |
322 |
| - | |
| 323 | + | |
| 324 | + | |
323 | 325 |
| |
324 | 326 |
| |
325 | 327 |
| |
| |||
347 | 349 |
| |
348 | 350 |
| |
349 | 351 |
| |
350 |
| - | |
| 352 | + | |
351 | 353 |
| |
352 | 354 |
| |
353 |
| - | |
354 |
| - | |
| 355 | + | |
| 356 | + | |
| 357 | + | |
| 358 | + | |
| 359 | + | |
| 360 | + | |
355 | 361 |
| |
356 | 362 |
| |
357 |
| - | |
358 |
| - | |
| 363 | + | |
| 364 | + | |
| 365 | + | |
| 366 | + | |
| 367 | + | |
| 368 | + | |
| 369 | + | |
| 370 | + | |
| 371 | + | |
359 | 372 |
| |
360 | 373 |
| |
361 | 374 |
| |
362 |
| - | |
363 |
| - | |
| 375 | + | |
| 376 | + | |
364 | 377 |
| |
365 | 378 |
| |
366 | 379 |
| |
367 | 380 |
| |
368 | 381 |
| |
369 |
| - | |
| 382 | + | |
370 | 383 |
| |
371 | 384 |
| |
372 | 385 |
| |
373 | 386 |
| |
374 | 387 |
| |
375 | 388 |
| |
376 | 389 |
| |
377 |
| - | |
378 |
| - | |
379 |
| - | |
| 390 | + | |
380 | 391 |
| |
381 | 392 |
| |
382 | 393 |
| |
|
0 commit comments
Comments
(0)