summaryrefslogtreecommitdiffstats
path: root/src/3rdparty/angle/src
diff options
context:
space:
mode:
authorThiago Macieira <thiago.macieira@intel.com>2022-01-18 11:39:28 -0800
committerThiago Macieira <thiago.macieira@intel.com>2022-01-21 14:08:01 -0800
commit2549f189951d47d7487c58c4e799bdeb487fa068 (patch)
tree8ff53916397c7b12da1af943ed0ac2194e8f7906 /src/3rdparty/angle/src
parentb5d480d01d9f8a3cd97c614f579008ac137c9174 (diff)
QHash: rewrite the x86 aeshash function for len >= 16
The loop for 32 bytes is left unchanged, but the tail operation for 16 to 31 bytes is replaced with an overlapped load-and-scramble. This should make the operation even faster. Also updated the key creation back to something similar to what Go does. This massively improves performance as well as the bit spread. Histogram for the bits in the hash value for the testcase from QTBUG-91739: || Bit || Before || After || | 0 | 35.0300% | 50.4800% | | 1 | 42.5250% | 50.2400% | | 2 | 46.0100% | 50.0000% | | 3 | 67.5150% | 49.9400% | | 4 | 56.5150% | 50.0000% | | 5 | 51.9950% | 50.0000% | | 6 | 58.9800% | 50.1400% | | 7 | 55.9550% | 50.0000% | | 8 | 41.9850% | 49.9200% | | 9 | 69.9700% | 49.6400% | | 10 | 68.4950% | 50.0000% | | 11 | 37.4950% | 50.3000% | | 12 | 61.9950% | 49.8200% | | 13 | 53.4900% | 50.0000% | | 14 | 63.0200% | 49.9800% | | 15 | 54.9700% | 50.1000% | Task-number: QTBUG-91739 Pick-to: 6.2.3 6.2 6.3 Change-Id: Icad7c1bad46a449c8e8afffd16cb7fe7ffd3584f Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org> Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io>
Diffstat (limited to 'src/3rdparty/angle/src')
0 files changed, 0 insertions, 0 deletions