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

Arm64: Add TransposeVectorEven and TransposeVectorOdd intrinsics #1220

Conversation

@TamarChristinaArm
Copy link
Contributor

TamarChristinaArm commented Dec 30, 2019

Hi All,

This adds TRN1 and TRN2.
As with #1190 these intrinsics haven't gone through API review yet and there is
some overlap with #1190 so whichever gets merged first I'll rebase the other one.

I am wondering about the name though, In the proposal I called TransposeVectorEven/TransposeVectorOdd,
but now I'm wondering if it should be TransposeEven and TransposeOdd since that's more consistent with
Zip* and Unzip*.

Implements dotnet/corefx#42176

/cc @CarolEidt @tannergooding @echesakovMSFT

Thanks,
Tamar

@BruceForstall

This comment has been minimized.

Copy link
Member

BruceForstall commented Jan 3, 2020

@TamarChristinaArm fyi, looks like you have a conflict to resolve.

@TamarChristinaArm TamarChristinaArm force-pushed the TamarChristinaArm:implement-arm64-transpose-vector branch from 3f38f41 to 6934437 Jan 3, 2020
@TamarChristinaArm

This comment has been minimized.

Copy link
Contributor Author

TamarChristinaArm commented Jan 3, 2020

Thanks @BruceForstall , that should take care of it.

@echesakovMSFT

This comment has been minimized.

Copy link
Member

echesakovMSFT commented Jan 3, 2020

Oops - I just merged another Tamar's PR (#1190) and this caused another set of conflicts. Sorry about that.
I guess we gonna have this type of situation for a while since we are touching the same files while working on intrinsics.

@echesakovMSFT

This comment has been minimized.

Copy link
Member

echesakovMSFT commented Jan 3, 2020

I am wondering about the name though, In the proposal I called TransposeVectorEven/TransposeVectorOdd,
but now I'm wondering if it should be TransposeEven and TransposeOdd since that's more consistent with
Zip* and Unzip*.

@TamarChristinaArm I personally like TransposeEven TransposeOdd names better.

src/coreclr/src/jit/instrsarm64.h Outdated Show resolved Hide resolved
src/coreclr/src/jit/instrsarm64.h Outdated Show resolved Hide resolved
src/coreclr/src/jit/emitarm64.cpp Show resolved Hide resolved
@TamarChristinaArm TamarChristinaArm force-pushed the TamarChristinaArm:implement-arm64-transpose-vector branch from 6934437 to 5af0f8d Jan 6, 2020
@TamarChristinaArm

This comment has been minimized.

Copy link
Contributor Author

TamarChristinaArm commented Jan 6, 2020

@TamarChristinaArm I personally like TransposeEven TransposeOdd names better.

Cool, If there aren't any objections I will update it tomorrow then.

Oops - I just merged another Tamar's PR (#1190) and this caused another set of conflicts. Sorry about that.

No worries, I was expecting that conflict :)

@TamarChristinaArm TamarChristinaArm force-pushed the TamarChristinaArm:implement-arm64-transpose-vector branch from 5af0f8d to 5ece758 Jan 6, 2020
Copy link
Contributor

briansull left a comment

LGTM

@TamarChristinaArm TamarChristinaArm force-pushed the TamarChristinaArm:implement-arm64-transpose-vector branch from 5ece758 to a158bba Jan 7, 2020
@TamarChristinaArm

This comment has been minimized.

Copy link
Contributor Author

TamarChristinaArm commented Jan 7, 2020

I've renamed the intrinsics to TransposeEven and TransposeOdd. Is it ok for me to edit dotnet/corefx#42176 still or should I close and re-open a new one in runtime?

@tannergooding

This comment has been minimized.

Copy link
Member

tannergooding commented Jan 7, 2020

It should be fine to edit the existing API proposal since it isn't marked api-approved; if it had been,
we would want to open a new issue (or maybe a centralized tracking issue) instead.

@TamarChristinaArm

This comment has been minimized.

Copy link
Contributor Author

TamarChristinaArm commented Jan 7, 2020

It should be fine to edit the existing API proposal since it isn't marked api-approved

Done, proposal has been updated with these new names.

Copy link
Member

tannergooding left a comment

LGTM, modulo the comment abotu double comparison

@TamarChristinaArm TamarChristinaArm force-pushed the TamarChristinaArm:implement-arm64-transpose-vector branch from a158bba to 1f8b7e5 Jan 8, 2020
Copy link
Member

echesakovMSFT left a comment

LGTM

@echesakovMSFT echesakovMSFT merged commit a2a4522 into dotnet:master Jan 9, 2020
100 checks passed
100 checks passed
WIP Ready for review
Details
license/cla All CLA requirements met.
Details
runtime Build #20200108.1 succeeded
Details
runtime (Checkout) Checkout succeeded
Details
runtime (CoreCLR Pri0 Test Build Linux arm checked) CoreCLR Pri0 Test Build Linux arm checked succeeded
Details
runtime (CoreCLR Pri0 Test Build Linux x64 checked) CoreCLR Pri0 Test Build Linux x64 checked succeeded
Details
runtime (CoreCLR Pri0 Test Build OSX x64 checked) CoreCLR Pri0 Test Build OSX x64 checked succeeded
Details
runtime (CoreCLR Pri0 Test Build Windows_NT arm checked) CoreCLR Pri0 Test Build Windows_NT arm checked succeeded
Details
runtime (CoreCLR Pri0 Test Build Windows_NT arm64 checked) CoreCLR Pri0 Test Build Windows_NT arm64 checked succeeded
Details
runtime (CoreCLR Pri0 Test Build Windows_NT x64 checked) CoreCLR Pri0 Test Build Windows_NT x64 checked succeeded
Details
runtime (CoreCLR Pri0 Test Build Windows_NT x86 checked) CoreCLR Pri0 Test Build Windows_NT x86 checked succeeded
Details
runtime (CoreCLR Pri0 Test Run Linux arm checked) CoreCLR Pri0 Test Run Linux arm checked succeeded
Details
runtime (CoreCLR Pri0 Test Run Linux x64 checked) CoreCLR Pri0 Test Run Linux x64 checked succeeded
Details
runtime (CoreCLR Pri0 Test Run OSX x64 checked) CoreCLR Pri0 Test Run OSX x64 checked succeeded
Details
runtime (CoreCLR Pri0 Test Run Windows_NT arm64 checked) CoreCLR Pri0 Test Run Windows_NT arm64 checked succeeded
Details
runtime (CoreCLR Pri0 Test Run Windows_NT x64 checked) CoreCLR Pri0 Test Run Windows_NT x64 checked succeeded
Details
runtime (CoreCLR Pri0 Test Run Windows_NT x86 checked) CoreCLR Pri0 Test Run Windows_NT x86 checked succeeded
Details
runtime (CoreCLR Product Build Linux arm checked) CoreCLR Product Build Linux arm checked succeeded
Details
runtime (CoreCLR Product Build Linux x64 checked) CoreCLR Product Build Linux x64 checked succeeded
Details
runtime (CoreCLR Product Build OSX x64 checked) CoreCLR Product Build OSX x64 checked succeeded
Details
runtime (CoreCLR Product Build Windows_NT arm checked) CoreCLR Product Build Windows_NT arm checked succeeded
Details
runtime (CoreCLR Product Build Windows_NT arm64 checked) CoreCLR Product Build Windows_NT arm64 checked succeeded
Details
runtime (CoreCLR Product Build Windows_NT x64 checked) CoreCLR Product Build Windows_NT x64 checked succeeded
Details
runtime (CoreCLR Product Build Windows_NT x86 checked) CoreCLR Product Build Windows_NT x86 checked succeeded
Details
runtime (Installer Build and Test Linux_arm release) Installer Build and Test Linux_arm release succeeded
Details
runtime (Installer Build and Test Linux_x64_glibc release) Installer Build and Test Linux_x64_glibc release succeeded
Details
runtime (Installer Build and Test OSX_x64 release) Installer Build and Test OSX_x64 release succeeded
Details
runtime (Installer Build and Test Windows_NT_arm release) Installer Build and Test Windows_NT_arm release succeeded
Details
runtime (Installer Build and Test Windows_NT_arm64 release) Installer Build and Test Windows_NT_arm64 release succeeded
Details
runtime (Installer Build and Test Windows_NT_x64 release) Installer Build and Test Windows_NT_x64 release succeeded
Details
runtime (Installer Build and Test Windows_NT_x86 release) Installer Build and Test Windows_NT_x86 release succeeded
Details
runtime (Libraries Build Linux arm Release) Libraries Build Linux arm Release succeeded
Details
runtime (Libraries Build Linux x64 Release) Libraries Build Linux x64 Release succeeded
Details
runtime (Libraries Build OSX x64 Release) Libraries Build OSX x64 Release succeeded
Details
runtime (Libraries Build Windows_NT arm Release) Libraries Build Windows_NT arm Release succeeded
Details
runtime (Libraries Build Windows_NT arm64 Release) Libraries Build Windows_NT arm64 Release succeeded
Details
runtime (Libraries Build Windows_NT x64 Release) Libraries Build Windows_NT x64 Release succeeded
Details
runtime (Libraries Build Windows_NT x86 Release) Libraries Build Windows_NT x86 Release succeeded
Details
runtime (Libraries Test Build Linux arm Release) Libraries Test Build Linux arm Release succeeded
Details
runtime (Libraries Test Build Linux x64 Release) Libraries Test Build Linux x64 Release succeeded
Details
runtime (Libraries Test Build OSX x64 Release) Libraries Test Build OSX x64 Release succeeded
Details
runtime (Libraries Test Build Windows_NT arm Release) Libraries Test Build Windows_NT arm Release succeeded
Details
runtime (Libraries Test Build Windows_NT arm64 Release) Libraries Test Build Windows_NT arm64 Release succeeded
Details
runtime (Libraries Test Build Windows_NT x64 Release) Libraries Test Build Windows_NT x64 Release succeeded
Details
runtime (Libraries Test Build Windows_NT x86 Release) Libraries Test Build Windows_NT x86 Release succeeded
Details
runtime-coreclr Build #20200108.1 succeeded
Details
runtime-coreclr (Checkout) Checkout succeeded
Details
runtime-coreclr (CoreCLR Pri0 Test Build Linux arm checked) CoreCLR Pri0 Test Build Linux arm checked succeeded
Details
runtime-coreclr (CoreCLR Pri0 Test Build Linux arm64 checked) CoreCLR Pri0 Test Build Linux arm64 checked succeeded
Details
runtime-coreclr (CoreCLR Pri0 Test Build OSX x64 checked) CoreCLR Pri0 Test Build OSX x64 checked succeeded
Details
runtime-coreclr (CoreCLR Pri0 Test Build OSX x64 release) CoreCLR Pri0 Test Build OSX x64 release succeeded
Details
runtime-coreclr (CoreCLR Pri0 Test Build Windows_NT arm checked) CoreCLR Pri0 Test Build Windows_NT arm checked succeeded
Details
runtime-coreclr (CoreCLR Pri0 Test Build Windows_NT arm64 checked) CoreCLR Pri0 Test Build Windows_NT arm64 checked succeeded
Details
runtime-coreclr (CoreCLR Pri0 Test Build Windows_NT x64 checked) CoreCLR Pri0 Test Build Windows_NT x64 checked succeeded
Details
runtime-coreclr (CoreCLR Pri0 Test Build Windows_NT x86 checked) CoreCLR Pri0 Test Build Windows_NT x86 checked succeeded
Details
runtime-coreclr (CoreCLR Pri0 Test Run Linux arm checked) CoreCLR Pri0 Test Run Linux arm checked succeeded
Details
runtime-coreclr (CoreCLR Pri0 Test Run Linux arm64 checked) CoreCLR Pri0 Test Run Linux arm64 checked succeeded
Details
runtime-coreclr (CoreCLR Pri0 Test Run Linux x64 checked) CoreCLR Pri0 Test Run Linux x64 checked succeeded
Details
runtime-coreclr (CoreCLR Pri0 Test Run Linux_musl x64 checked) CoreCLR Pri0 Test Run Linux_musl x64 checked succeeded
Details
runtime-coreclr (CoreCLR Pri0 Test Run Linux_musl x64 release) CoreCLR Pri0 Test Run Linux_musl x64 release succeeded
Details
runtime-coreclr (CoreCLR Pri0 Test Run OSX x64 checked) CoreCLR Pri0 Test Run OSX x64 checked succeeded
Details
runtime-coreclr (CoreCLR Pri0 Test Run Windows_NT arm64 checked) CoreCLR Pri0 Test Run Windows_NT arm64 checked succeeded
Details
runtime-coreclr (CoreCLR Pri0 Test Run Windows_NT x64 checked) CoreCLR Pri0 Test Run Windows_NT x64 checked succeeded
Details
runtime-coreclr (CoreCLR Pri0 Test Run Windows_NT x86 checked) CoreCLR Pri0 Test Run Windows_NT x86 checked succeeded
Details
runtime-coreclr (CoreCLR Pri0 Test Run R2R Linux x64 checked) CoreCLR Pri0 Test Run R2R Linux x64 checked succeeded
Details
runtime-coreclr (CoreCLR Pri0 Test Run R2R OSX x64 checked) CoreCLR Pri0 Test Run R2R OSX x64 checked succeeded
Details
runtime-coreclr (CoreCLR Pri0 Test Run R2R Windows_NT x64 checked) CoreCLR Pri0 Test Run R2R Windows_NT x64 checked succeeded
Details
runtime-coreclr (CoreCLR Pri0 Test Run R2R Windows_NT x86 checked) CoreCLR Pri0 Test Run R2R Windows_NT x86 checked succeeded
Details
runtime-coreclr (CoreCLR Product Build Linux arm checked) CoreCLR Product Build Linux arm checked succeeded
Details
runtime-coreclr (CoreCLR Product Build Linux arm64 checked) CoreCLR Product Build Linux arm64 checked succeeded
Details
runtime-coreclr (CoreCLR Product Build Linux arm64 release) CoreCLR Product Build Linux arm64 release succeeded
Details
runtime-coreclr (CoreCLR Product Build Linux x64 checked) CoreCLR Product Build Linux x64 checked succeeded
Details
runtime-coreclr (CoreCLR Product Build Linux_musl x64 checked) CoreCLR Product Build Linux_musl x64 checked succeeded
Details
runtime-coreclr (CoreCLR Product Build Linux_musl x64 release) CoreCLR Product Build Linux_musl x64 release succeeded
Details
runtime-coreclr (CoreCLR Product Build OSX x64 checked) CoreCLR Product Build OSX x64 checked succeeded
Details
runtime-coreclr (CoreCLR Product Build OSX x64 release) CoreCLR Product Build OSX x64 release succeeded
Details
runtime-coreclr (CoreCLR Product Build Windows_NT arm checked) CoreCLR Product Build Windows_NT arm checked succeeded
Details
runtime-coreclr (CoreCLR Product Build Windows_NT arm release) CoreCLR Product Build Windows_NT arm release succeeded
Details
runtime-coreclr (CoreCLR Product Build Windows_NT arm64 checked) CoreCLR Product Build Windows_NT arm64 checked succeeded
Details
runtime-coreclr (CoreCLR Product Build Windows_NT arm64 release) CoreCLR Product Build Windows_NT arm64 release succeeded
Details
runtime-coreclr (CoreCLR Product Build Windows_NT x64 checked) CoreCLR Product Build Windows_NT x64 checked succeeded
Details
runtime-coreclr (CoreCLR Product Build Windows_NT x64 debug) CoreCLR Product Build Windows_NT x64 debug succeeded
Details
runtime-coreclr (CoreCLR Product Build Windows_NT x64 release) CoreCLR Product Build Windows_NT x64 release succeeded
Details
runtime-coreclr (CoreCLR Product Build Windows_NT x86 checked) CoreCLR Product Build Windows_NT x86 checked succeeded
Details
runtime-coreclr (CoreCLR Product Build Windows_NT x86 debug) CoreCLR Product Build Windows_NT x86 debug succeeded
Details
runtime-coreclr (Formatting Linux x64) Formatting Linux x64 succeeded
Details
runtime-coreclr (Formatting Windows_NT x64) Formatting Windows_NT x64 succeeded
Details
runtime-coreclr (Libraries Build Linux arm Release) Libraries Build Linux arm Release succeeded
Details
runtime-coreclr (Libraries Build Linux arm64 Release) Libraries Build Linux arm64 Release succeeded
Details
runtime-coreclr (Libraries Build Linux x64 Release) Libraries Build Linux x64 Release succeeded
Details
runtime-coreclr (Libraries Build Linux_musl x64 Release) Libraries Build Linux_musl x64 Release succeeded
Details
runtime-coreclr (Libraries Build OSX x64 Release) Libraries Build OSX x64 Release succeeded
Details
runtime-coreclr (Libraries Build Windows_NT arm Release) Libraries Build Windows_NT arm Release succeeded
Details
runtime-coreclr (Libraries Build Windows_NT arm64 Release) Libraries Build Windows_NT arm64 Release succeeded
Details
runtime-coreclr (Libraries Build Windows_NT x64 Release) Libraries Build Windows_NT x64 Release succeeded
Details
runtime-coreclr (Libraries Build Windows_NT x86 Release) Libraries Build Windows_NT x86 Release succeeded
Details
runtime-libraries Build #20200108.1 succeeded
Details
runtime-libraries (Checkout) Checkout succeeded
Details
runtime-libraries (CoreCLR Product Build Linux arm release) CoreCLR Product Build Linux arm release succeeded
Details
runtime-libraries (CoreCLR Product Build Linux arm64 release) CoreCLR Product Build Linux arm64 release succeeded
Details
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
7 participants
You can’t perform that action at this time.