Skip to content

adds AArch64's {s,u,f}{min,max}{v,p} and ARM's {vmov}{n,l} #345

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

Merged
merged 1 commit into from
Mar 7, 2018

Conversation

gnzlbg
Copy link
Contributor

@gnzlbg gnzlbg commented Mar 6, 2018

  • adds {s,u,f}{min,max}{v,p} AArch64 intrinsics
  • adds {vmov}{n,l} ARM intrinsics

Closes #314 (the missing part there are portable shuffles, but I'll open a new issue just for that).

cc @hsivonen.

* adds {s,u,f}{min,max}{v,p} AArch64 intrinsics
* adds {vmov}{n,l} ARM intrinsics

Closes rust-lang#314 .
@alexcrichton
Copy link
Member

Nice! r=me once CI is green

Before we go too hog wild with intrinsics though we may want to sort out the types first (aka add the dedicated types for arm/aarch64 and conversions from the portable ones)

@gnzlbg
Copy link
Contributor Author

gnzlbg commented Mar 7, 2018

@alexcrichton ci was green for me, the failure is spurious "no input received for the last 10 minutes".

Before we go too hog wild with intrinsics though we may want to sort out the types first (aka add the dedicated types for arm/aarch64 and conversions from the portable ones)

I tried to choose intrinsics that exercise types that we don't have yet. These happened to be what @hsivonen needed and also have some variants using f16 that I wasn't able to implement. I'd implement a couple of the intrinsics that use "polynomial" vector types next, and the ones in issue #316 . Once we have a small corpus of intrinsics that exercise the weirdest things in ARM/AARCH64, I'll start adding the architecture specific vector types.

@alexcrichton alexcrichton merged commit 47f06df into rust-lang:master Mar 7, 2018
@alexcrichton
Copy link
Member

Ok! If CI continues to be flaky we probably want to start splitting up test suites into separate crates to ease the burden on rustc

@gnzlbg
Copy link
Contributor Author

gnzlbg commented Mar 7, 2018

Maybe we could use travis_wait somehow to increase the allowed time without output from 10 minutes to 20 minutes.

@alexcrichton
Copy link
Member

Yeah I'd also be fine w/ that, but taking forever to build locally can also be a pain :(

@gnzlbg
Copy link
Contributor Author

gnzlbg commented Mar 7, 2018

Could we:

  • keep the tests in coresimd but behind a feature flag, e.g., ppsv_tests.
  • add a third crate to the workspace that just includes the coresimd module (or coresimd), but always has this feature flag enabled

?

That way we can develop coresimd/stdsimd without compiling/running these tests, but still do run them as part of cargo test --all when executed on the root.

@alexcrichton
Copy link
Member

Seems plausible to me!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants