Skip to content

Add an SSE2 level for use with the kernel! macro #256

Description

@Shnatsel

SSE2 is interesting because it is part of the baseline x86_64 instruction set, so it can be used without any runtime dispatch and the associated overhead.

I've prototyped a dedicated SSE2 level in the generator as a replacement for the Fallback level on x86, but most operations already autovectorize just fine, so it wasn't worth the additional complexity in the generator for the sake of a handful of operations for 2% of users.

However, there are use cases for the SSE2 level with the kernel! macro. For example, image-webp crate wants a safe way to access SSE2 intrinsics and safe loads/stores. So perhaps we can provide a minimal implementation that falls through to either SSE4.2 (where only SSE2 instructions are used) or fallback, without writing any SSE2-specific intrinsic code.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions