Skip to content

[C++] bpacking relies on a left shift by the full lane width returning zero #51492

Description

@domibel

Describe the bug, including details regarding any error messages, version, and platform.

Arrow's bpacking large kernel asks xsimd for a left shift by the full width of the lane, and depends on the answer being zero.

xsimd does not promise that. SSE2, AVX2 and NEON produce zero, while other instruction sets (e.g. LSX, LASX) take the amount modulo the lane width and return the lane untouched.

The bits then survive the mask and the value decodes incorrectly, with no error reported.

Component(s)

C++

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

Type

No type

Projects

No projects

    Milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions