Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Updating XML doc comments for hardware intrinsics to include VEX and EVEX forms #84892

Merged
merged 6 commits into from
Apr 19, 2023

Conversation

tannergooding
Copy link
Member

As per the title this is just an update to the XML docs and some minor reordering of the APIs to be alphabetical (which helps when comparing against the instruction manuals, etc).

This was done as part of a pre-pass to adding the V512 variants to Avx512F, Avx512BW, Avx512CD, and Avx512DQ. The updated docs simply list out all the possible forms for the instruction (legacy, vex, and evex forms, where previously we often only listed 1 of the 3).

@ghost ghost assigned tannergooding Apr 16, 2023
@dotnet-issue-labeler dotnet-issue-labeler bot added the needs-area-label An area label is needed to ensure this gets routed to the appropriate area owners label Apr 16, 2023
@tannergooding tannergooding marked this pull request as ready for review April 16, 2023 12:55
@tannergooding tannergooding added area-System.Runtime.Intrinsics avx512 Related to the AVX-512 architecture and removed needs-area-label An area label is needed to ensure this gets routed to the appropriate area owners labels Apr 16, 2023
@ghost
Copy link

ghost commented Apr 16, 2023

Tagging subscribers to this area: @dotnet/area-system-runtime-intrinsics
See info in area-owners.md if you want to be subscribed.

Issue Details

As per the title this is just an update to the XML docs and some minor reordering of the APIs to be alphabetical (which helps when comparing against the instruction manuals, etc).

This was done as part of a pre-pass to adding the V512 variants to Avx512F, Avx512BW, Avx512CD, and Avx512DQ. The updated docs simply list out all the possible forms for the instruction (legacy, vex, and evex forms, where previously we often only listed 1 of the 3).

Author: tannergooding
Assignees: tannergooding
Labels:

area-System.Runtime.Intrinsics, arch-avx512

Milestone: -

/// __m128 _mm_cmpnge_ss (__m128 a, __m128 b)
/// CMPSS xmm, xmm/m32, imm8(6) with swapped operands
/// int _mm_comile_ss (__m128 a, __m128 b)
/// COMISS xmm1, xmm2/m32 ; PF=0 && (ZF=1 || CF=1)
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Love the addition of the flags values 👍

/// The above native signature does not exist. We provide this additional overload for consistency with the other scalar APIs.
/// </summary>
public static Vector128<float> SqrtScalar(Vector128<float> upper, Vector128<float> value) { throw new PlatformNotSupportedException(); }

/// <summary>
/// void _mm_storeu_ps (float* mem_addr, __m128 a)
/// MOVUPS m128, xmm1
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

xmm instead of xmm1 since there is no xmm2? (here and elsewhere)

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The standardized encoding the architecture manuals is to use xmm1, so we follow it here

@tannergooding tannergooding merged commit 2372b14 into dotnet:main Apr 19, 2023
@tannergooding tannergooding deleted the avx512 branch April 19, 2023 03:23
@ghost ghost locked as resolved and limited conversation to collaborators May 19, 2023
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
area-System.Runtime.Intrinsics avx512 Related to the AVX-512 architecture
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants