Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Appearance settings

BUG, SIMD: Fix 64-bit/8-bit integer division by a scalar#20297

Merged
charris merged 3 commits into
numpy:maintenance/1.21.xnumpy/numpy:maintenance/1.21.xfrom
charris:backport-20153charris/numpy:backport-20153Copy head branch name to clipboard
Nov 4, 2021
Merged

BUG, SIMD: Fix 64-bit/8-bit integer division by a scalar#20297
charris merged 3 commits into
numpy:maintenance/1.21.xnumpy/numpy:maintenance/1.21.xfrom
charris:backport-20153charris/numpy:backport-20153Copy head branch name to clipboard

Conversation

@charris

@charris charris commented Nov 3, 2021

Copy link
Copy Markdown
Member

Backport of #20153.

This pull request fixes two bugs:

  1. 64-bit integer division by a scalar for both unsigned and signed division,
    which was discovered by BUG: Bad SIMD integer // on windows in numpy 1.21.2 #20025.
    It's only limited to old versions of msvc <= 2017, due to inaccurate
    implementation of the emulated version for intrinsic _udiv128,
    which leads to producing an inaccurate multiplier.

  2. 8-bit unsigned integer division, similar to the above except it is not limited to a certain compiler
    and the inaccurate multiplier was caused due to wrong casting leads to perform quad division.
    it can be triggered if the ceil(log2(divisor)) == 8.

closes #20025, #20168

  The multiplier factor that used for integer division wasn't correctly
  calculated due inaccurate implementation of the emulated version
  of intrinsic `_udiv128`.
  Same as 64-bit divistion, except quad wide divison leads
  to inaccurate multiplier in certain cases when the log2 of
  the divisor overflow to zero.
@charris charris added 00 - Bug component: SIMD Issues in SIMD (fast instruction sets) code or machinery labels Nov 3, 2021
@charris charris added this to the 1.21.4 release milestone Nov 3, 2021
@charris charris added the 08 - Backport Used to tag backport PRs label Nov 3, 2021
@charris
charris merged commit 3d1487b into numpy:maintenance/1.21.x Nov 4, 2021
@charris
charris deleted the backport-20153 branch November 4, 2021 00:23
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

00 - Bug 08 - Backport Used to tag backport PRs component: SIMD Issues in SIMD (fast instruction sets) code or machinery

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants

Morty Proxy This is a proxified and sanitized view of the page, visit original site.