forked frompostgres/postgres
- Notifications
You must be signed in to change notification settings - Fork6
Commit711bab1
committed
Add basic support for using the POPCNT and SSE4.2s LZCNT opcodes
These opcodes have been around in the AMD world since 2007, and 2008 inthe case of intel. They're supported in GCC and Clang via some __builtinmacros. The opcodes may be unavailable during runtime, in which case wefall back on a C-based implementation of the code. In order to get thePOPCNT instruction we must pass the -mpopcnt option to the compiler. Wedo this only for the pg_bitutils.c file.David Rowley (with fragments taken from a patch by Thomas Munro)Discussion:https://postgr.es/m/CAKJS1f9WTAGG1tPeJnD18hiQW5gAk59fQ6WK-vfdAKEHyRg2RA@mail.gmail.com1 parent754ca99 commit711bab1
File tree
13 files changed
+914
-169
lines changed- config
- src
- backend
- access/heap
- lib
- nodes
- include
- port
- port
- tools/msvc
13 files changed
+914
-169
lines changedLines changed: 116 additions & 0 deletions
Original file line number | Diff line number | Diff line change | |
---|---|---|---|
| |||
378 | 378 |
| |
379 | 379 |
| |
380 | 380 |
| |
| 381 | + | |
| 382 | + | |
| 383 | + | |
| 384 | + | |
| 385 | + | |
| 386 | + | |
| 387 | + | |
| 388 | + | |
| 389 | + | |
| 390 | + | |
| 391 | + | |
| 392 | + | |
| 393 | + | |
| 394 | + | |
| 395 | + | |
| 396 | + | |
| 397 | + | |
| 398 | + | |
| 399 | + | |
| 400 | + | |
| 401 | + | |
| 402 | + | |
| 403 | + | |
| 404 | + | |
| 405 | + | |
| 406 | + | |
| 407 | + | |
| 408 | + | |
| 409 | + | |
| 410 | + | |
| 411 | + | |
| 412 | + | |
| 413 | + | |
| 414 | + | |
| 415 | + | |
| 416 | + | |
| 417 | + | |
| 418 | + | |
| 419 | + | |
| 420 | + | |
| 421 | + | |
| 422 | + | |
| 423 | + | |
| 424 | + | |
| 425 | + | |
| 426 | + | |
| 427 | + | |
| 428 | + | |
| 429 | + | |
| 430 | + | |
| 431 | + | |
| 432 | + | |
| 433 | + | |
| 434 | + | |
| 435 | + | |
| 436 | + | |
| 437 | + | |
| 438 | + | |
| 439 | + | |
| 440 | + | |
| 441 | + | |
| 442 | + | |
| 443 | + | |
| 444 | + | |
| 445 | + | |
| 446 | + | |
| 447 | + | |
| 448 | + | |
| 449 | + | |
| 450 | + | |
| 451 | + | |
| 452 | + | |
| 453 | + | |
| 454 | + | |
| 455 | + | |
| 456 | + | |
| 457 | + | |
| 458 | + | |
| 459 | + | |
| 460 | + | |
| 461 | + | |
| 462 | + | |
| 463 | + | |
| 464 | + | |
| 465 | + | |
| 466 | + | |
| 467 | + | |
| 468 | + | |
| 469 | + | |
| 470 | + | |
| 471 | + | |
| 472 | + | |
| 473 | + | |
| 474 | + | |
| 475 | + | |
| 476 | + | |
| 477 | + | |
| 478 | + | |
| 479 | + | |
| 480 | + | |
| 481 | + | |
| 482 | + | |
| 483 | + | |
| 484 | + | |
| 485 | + | |
| 486 | + | |
| 487 | + | |
| 488 | + | |
| 489 | + | |
| 490 | + | |
| 491 | + | |
| 492 | + | |
| 493 | + | |
| 494 | + | |
| 495 | + | |
| 496 | + | |
381 | 497 |
| |
382 | 498 |
| |
383 | 499 |
| |
|
Lines changed: 155 additions & 0 deletions
Original file line number | Diff line number | Diff line change | |
---|---|---|---|
| |||
651 | 651 |
| |
652 | 652 |
| |
653 | 653 |
| |
| 654 | + | |
654 | 655 |
| |
655 | 656 |
| |
656 | 657 |
| |
| |||
14059 | 14060 |
| |
14060 | 14061 |
| |
14061 | 14062 |
| |
| 14063 | + | |
| 14064 | + | |
| 14065 | + | |
| 14066 | + | |
| 14067 | + | |
| 14068 | + | |
| 14069 | + | |
| 14070 | + | |
| 14071 | + | |
| 14072 | + | |
| 14073 | + | |
| 14074 | + | |
| 14075 | + | |
| 14076 | + | |
| 14077 | + | |
| 14078 | + | |
| 14079 | + | |
| 14080 | + | |
| 14081 | + | |
| 14082 | + | |
| 14083 | + | |
| 14084 | + | |
| 14085 | + | |
| 14086 | + | |
| 14087 | + | |
| 14088 | + | |
| 14089 | + | |
| 14090 | + | |
| 14091 | + | |
| 14092 | + | |
| 14093 | + | |
| 14094 | + | |
| 14095 | + | |
| 14096 | + | |
| 14097 | + | |
| 14098 | + | |
| 14099 | + | |
| 14100 | + | |
| 14101 | + | |
| 14102 | + | |
| 14103 | + | |
| 14104 | + | |
| 14105 | + | |
| 14106 | + | |
| 14107 | + | |
| 14108 | + | |
| 14109 | + | |
| 14110 | + | |
| 14111 | + | |
| 14112 | + | |
| 14113 | + | |
| 14114 | + | |
| 14115 | + | |
| 14116 | + | |
| 14117 | + | |
| 14118 | + | |
| 14119 | + | |
| 14120 | + | |
| 14121 | + | |
| 14122 | + | |
| 14123 | + | |
| 14124 | + | |
| 14125 | + | |
| 14126 | + | |
| 14127 | + | |
| 14128 | + | |
| 14129 | + | |
| 14130 | + | |
| 14131 | + | |
| 14132 | + | |
| 14133 | + | |
| 14134 | + | |
| 14135 | + | |
| 14136 | + | |
| 14137 | + | |
| 14138 | + | |
| 14139 | + | |
| 14140 | + | |
| 14141 | + | |
| 14142 | + | |
| 14143 | + | |
| 14144 | + | |
| 14145 | + | |
| 14146 | + | |
| 14147 | + | |
| 14148 | + | |
| 14149 | + | |
| 14150 | + | |
| 14151 | + | |
| 14152 | + | |
| 14153 | + | |
| 14154 | + | |
| 14155 | + | |
| 14156 | + | |
| 14157 | + | |
| 14158 | + | |
| 14159 | + | |
| 14160 | + | |
| 14161 | + | |
| 14162 | + | |
| 14163 | + | |
| 14164 | + | |
| 14165 | + | |
| 14166 | + | |
| 14167 | + | |
| 14168 | + | |
| 14169 | + | |
| 14170 | + | |
| 14171 | + | |
| 14172 | + | |
| 14173 | + | |
| 14174 | + | |
| 14175 | + | |
| 14176 | + | |
| 14177 | + | |
| 14178 | + | |
| 14179 | + | |
| 14180 | + | |
| 14181 | + | |
| 14182 | + | |
| 14183 | + | |
| 14184 | + | |
| 14185 | + | |
| 14186 | + | |
| 14187 | + | |
| 14188 | + | |
| 14189 | + | |
| 14190 | + | |
| 14191 | + | |
| 14192 | + | |
| 14193 | + | |
| 14194 | + | |
| 14195 | + | |
| 14196 | + | |
| 14197 | + | |
| 14198 | + | |
| 14199 | + | |
| 14200 | + | |
| 14201 | + | |
| 14202 | + | |
| 14203 | + | |
| 14204 | + | |
| 14205 | + | |
| 14206 | + | |
| 14207 | + | |
| 14208 | + | |
| 14209 | + | |
| 14210 | + | |
| 14211 | + | |
| 14212 | + | |
| 14213 | + | |
| 14214 | + | |
14062 | 14215 |
| |
14063 | 14216 |
| |
14064 | 14217 |
| |
| |||
14577 | 14730 |
| |
14578 | 14731 |
| |
14579 | 14732 |
| |
| 14733 | + | |
| 14734 | + | |
14580 | 14735 |
| |
14581 | 14736 |
| |
14582 | 14737 |
| |
|
Lines changed: 8 additions & 0 deletions
Original file line number | Diff line number | Diff line change | |
---|---|---|---|
| |||
1489 | 1489 |
| |
1490 | 1490 |
| |
1491 | 1491 |
| |
| 1492 | + | |
| 1493 | + | |
| 1494 | + | |
| 1495 | + | |
| 1496 | + | |
| 1497 | + | |
1492 | 1498 |
| |
1493 | 1499 |
| |
1494 | 1500 |
| |
| |||
1503 | 1509 |
| |
1504 | 1510 |
| |
1505 | 1511 |
| |
| 1512 | + | |
| 1513 | + | |
1506 | 1514 |
| |
1507 | 1515 |
| |
1508 | 1516 |
| |
|
Lines changed: 1 addition & 0 deletions
Original file line number | Diff line number | Diff line change | |
---|---|---|---|
| |||
260 | 260 |
| |
261 | 261 |
| |
262 | 262 |
| |
| 263 | + | |
263 | 264 |
| |
264 | 265 |
| |
265 | 266 |
| |
|
0 commit comments
Comments
(0)