Skip to content

Consider allowing user-defined structs to be typed as TYP_SIMD #904

Open
@tannergooding

Description

@tannergooding

Currently the JIT has various specialized handling for TYP_SIMD8, TYP_SIMD12, TYP_SIMD16, and TYP_SIMD32. However, this specialized handling is limited to the framework defined Vector2, Vector3, Vector4, Vector<T>, Vector64<T>, Vector128<T>, and Vector256`.

In various cases and for various reasons, users may define their own types rather than using the framework types. This typically occurs for math and game frameworks where they are defining equivalents to Vector2/3/4.

As such, it may be beneficial for the JIT to recognize such structs and treat them as the appropriate TYP_SIMD. I would propose we initially limit this to TYP_FLOAT and can consider expanding in the future as appropriate.

category:design
theme:vector-codegen
skill-level:expert
cost:large
impact:medium

Metadata

Metadata

Assignees

No one assigned

    Labels

    area-CodeGen-coreclrCLR JIT compiler in src/coreclr/src/jit and related components such as SuperPMI

    Type

    No type

    Projects

    No projects

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions