Skip to content

Extend vectorized algorithms to ARM64/ARM64EC #813

@cbezault

Description

@cbezault

This work is ongoing thanks to the Arm engineers @hazzlim and @jaykang10, with assistance from the Vector Lord @AlexGuteniev. Dashboard as of 2026-03-24:

STL/stl/inc/xutility

Lines 76 to 101 in 7b9a0f5

#define _VECTORIZED_ADJACENT_FIND _VECTORIZED_FOR_X64_X86_ARM64_ARM64EC
#define _VECTORIZED_BITSET_FROM_STRING _VECTORIZED_FOR_X64_X86_ARM64_ARM64EC
#define _VECTORIZED_BITSET_TO_STRING _VECTORIZED_FOR_X64_X86_ARM64_ARM64EC
#define _VECTORIZED_COUNT _VECTORIZED_FOR_X64_X86_ARM64_ARM64EC
#define _VECTORIZED_FIND _VECTORIZED_FOR_X64_X86_ARM64_ARM64EC
#define _VECTORIZED_FIND_END _VECTORIZED_FOR_X64_X86_ARM64_ARM64EC
#define _VECTORIZED_FIND_FIRST_OF _VECTORIZED_FOR_X64_X86_ARM64_ARM64EC
#define _VECTORIZED_FIND_LAST _VECTORIZED_FOR_X64_X86_ARM64_ARM64EC
#define _VECTORIZED_FIND_LAST_OF _VECTORIZED_FOR_X64_X86_ARM64_ARM64EC
#define _VECTORIZED_INCLUDES _VECTORIZED_FOR_X64_X86_ARM64_ARM64EC
#define _VECTORIZED_IS_SORTED_UNTIL _VECTORIZED_FOR_X64_X86_ARM64_ARM64EC
#define _VECTORIZED_MINMAX _VECTORIZED_FOR_X64_X86_ARM64_ARM64EC
#define _VECTORIZED_MINMAX_ELEMENT _VECTORIZED_FOR_X64_X86_ARM64_ARM64EC
#define _VECTORIZED_MISMATCH _VECTORIZED_FOR_X64_X86_ARM64_ARM64EC
#define _VECTORIZED_REMOVE _VECTORIZED_FOR_X64_X86_ARM64_ARM64EC
#define _VECTORIZED_REMOVE_COPY _VECTORIZED_FOR_X64_X86_ARM64_ARM64EC
#define _VECTORIZED_REPLACE _VECTORIZED_FOR_X64_X86
#define _VECTORIZED_REPLACE_COPY _VECTORIZED_FOR_X64_X86_ARM64_ARM64EC
#define _VECTORIZED_REVERSE _VECTORIZED_FOR_X64_X86_ARM64_ARM64EC
#define _VECTORIZED_REVERSE_COPY _VECTORIZED_FOR_X64_X86_ARM64_ARM64EC
#define _VECTORIZED_ROTATE _VECTORIZED_FOR_X64_X86_ARM64_ARM64EC
#define _VECTORIZED_SEARCH _VECTORIZED_FOR_X64_X86_ARM64_ARM64EC
#define _VECTORIZED_SEARCH_N _VECTORIZED_FOR_X64_X86_ARM64_ARM64EC
#define _VECTORIZED_SWAP_RANGES _VECTORIZED_FOR_X64_X86_ARM64_ARM64EC
#define _VECTORIZED_UNIQUE _VECTORIZED_FOR_X64_X86_ARM64_ARM64EC
#define _VECTORIZED_UNIQUE_COPY _VECTORIZED_FOR_X64_X86_ARM64_ARM64EC

Metadata

Metadata

Assignees

No one assigned

    Labels

    ARM64Related to the ARM64 architectureARM64ECI can't believe it's not x64!fixedSomething works now, yay!performanceMust go faster

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions