Skip to content

[API Proposal]: Arm64: FEAT_SVE_SHA3 #94425

Closed

Description

@a74nh

FEAT_SVE_SHA3 gives SVE versions of the instructions provided in FEAT_SHA3 - see #98692

namespace System.Runtime.Intrinsics.Arm

/// VectorT Summary
public abstract class SveSha3 : AdvSimd /// Feature: FEAT_SVE_SHA3
{

  /// T: long, ulong
  public static unsafe Vector<T> BitwiseRotateLeftBy1AndXor(Vector<T> left, Vector<T> right); // RAX1

  /// total method signatures: 1

}


/// Full API
public abstract class SveSha3 : AdvSimd /// Feature: FEAT_SVE_SHA3
{
    /// BitwiseRotateLeftBy1AndXor : Bitwise rotate left by 1 and exclusive OR

    /// svint64_t svrax1[_s64](svint64_t op1, svint64_t op2) : "RAX1 Zresult.D, Zop1.D, Zop2.D"
  public static unsafe Vector<long> BitwiseRotateLeftBy1AndXor(Vector<long> left, Vector<long> right);

    /// svuint64_t svrax1[_u64](svuint64_t op1, svuint64_t op2) : "RAX1 Zresult.D, Zop1.D, Zop2.D"
  public static unsafe Vector<ulong> BitwiseRotateLeftBy1AndXor(Vector<ulong> left, Vector<ulong> right);


  /// total method signatures: 2
  /// total method names:      1
}


  /// Total ACLE covered across API:      2

Activity

  1. ghost added
    untriagedNew issue has not been triaged by the area owner
    on Nov 6, 2023
  2. a74nh commented on Nov 6, 2023

    @a74nh
    ContributorAuthor

    This contributes to #93095

    It covers all of the instructions in FEAT_SVE_SHA3.
    This list was auto generated from the C ACLE for SVE, and is in three parts:

    The methods list reduced down to Vector versions. All possible varaints of T are given above the method.
    The complete list of all methods. The corresponding ACLE methods and SVE instructions are given above the method.
    All rejected ACLE methods. These are methods we have agreed that do not need including in C#.
    Where possible, existing C# naming conventions have been matched.

    Many of the C functions include predicate argument(s), of type svbool_t as the first argument. These are missing from the C# method. It is expected that the Jit will create predicates where required, or combine with uses of conditionalSelect(). For more discussion see #88140 comment.

  3. added this to the Future milestone on May 1, 2024
  4. removed
    untriagedNew issue has not been triaged by the area owner
    on May 3, 2024
  5. added
    api-suggestionEarly API idea and discussion, it is NOT ready for implementation
    and removed
    api-ready-for-reviewAPI is ready for review, it is NOT ready for implementation
    on Aug 20, 2024
  6. added
    api-ready-for-reviewAPI is ready for review, it is NOT ready for implementation
    and removed
    api-suggestionEarly API idea and discussion, it is NOT ready for implementation
    on Nov 28, 2025
  7. modified the milestones: Future, 11.0.0 on Nov 28, 2025
  8. added
    arm-sveWork related to arm64 SVE/SVE2 support
    on Nov 28, 2025
  9. bartonjs commented on Jan 6, 2026

    @bartonjs
    Member

    Video

    • Added the missing IsSupported property
    • Corrected the base type (AdvSimd => Sve)
    • BitwiseRotateLeftBy1AndXor(left, right) => BitwiseRotateLeftBy1AndXor(xor, rol1)
    namespace System.Runtime.Intrinsics.Arm;
    
    /// VectorT Summary
    public abstract class SveSha3 : Sve /// Feature: FEAT_SVE_SHA3
    {
      public static bool IsSupported { get; }
    
      /// T: long, ulong
      public static unsafe Vector<T> BitwiseRotateLeftBy1AndXor(Vector<T> xor, Vector<T> rol1); // RAX1
    }
  10. added
    api-approvedAPI was approved in API review, it can be implemented
    and removed
    api-ready-for-reviewAPI is ready for review, it is NOT ready for implementation
    on Jan 6, 2026
  11. added a commit that references this issue on Feb 17, 2026
  12. added a commit that references this issue on Apr 15, 2026
    c84f28a
  13. added
    in-prThere is an active PR which will close this issue when it is merged
    on Apr 15, 2026
  14. added a commit that references this issue on Jun 29, 2026
    21b722d
  15. added a commit that references this issue on Jul 15, 2026
    a9bc65f
  16. locked and limited conversation to collaborators on Jul 30, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    api-approvedAPI was approved in API review, it can be implementedarch-arm64area-System.Runtime.Intrinsicsarm-sveWork related to arm64 SVE/SVE2 supportin-prThere is an active PR which will close this issue when it is merged

    Type

    No type

    Projects

    No projects

      Milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions