Skip to content

simd/archsimd: missing instruction VPMULTISHIFTQB #79973

Description

@balasanjay

Go version

N/A

Output of go env in your module/workspace:

N/A

What did you do?

I was playing around with an AVX512 base64 encoder (for #20206).

As part of that, one needs to logically split 48 uint8s into 64 uint6s.

I implemented the algorithms suggested by @WojciechMula and @lemire in http://0x80.pl/notesen/2016-01-12-sse-base64-encoding.html.

However, per https://arxiv.org/pdf/1910.05109, there is a simpler, more direct instruction that solves essentially exactly this problem: VPMULTISHIFTQB.

I do not think this instruction is currently exposed by simd/archsimd.

What did you see happen?

No function in archsimd exposing VPMULTISHIFTQB.

What did you expect to see?

A function in archsimd exposing VPMULTISHIFTQB.

Metadata

Metadata

Assignees

No one assigned

    Labels

    NeedsInvestigationSomeone must examine and confirm this is a valid issue and not a duplicate of an existing one.compiler/runtimeIssues related to the Go compiler and/or runtime.

    Type

    No type

    Fields

    No fields configured for issues without a type.

    Projects

    Status
    Todo

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions