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

Add ARM Neon vmvn_*/vmvnq_* bitwise not intrinsics #770

Merged
merged 2 commits into from Jul 15, 2019

Conversation

@jmaibaum
Copy link
Contributor

commented Jun 29, 2019

Hi,

I wanted to contribute to #148 by adding a family of ARM Neon intrinsics. I started with the vmvn_{s,u}* / vmvnq_{s,u}* family of intrinsics, which are all included in this PR, including tests.

I just found out that there are also the vmvn_p8 and vmvnq_p8 "poly" intrinsics which I did not yet implement. I would most likely want to add them as well before this PR should be merged. But, as this is my first contribution to the Rust standard libraries, I wanted to ask for comments/review first before continuing. So please let me know, if anything could/should be done different/better.

This has been tested locally on a Raspberry Pi 3 B+ for the armv7hf part. All new tests pass, except assert_vmvn_s8_vmvn. I might be suffering from some form of #565 , please see my comment over there.

@gnzlbg gnzlbg closed this Jul 9, 2019

@gnzlbg gnzlbg reopened this Jul 9, 2019

@gnzlbg

gnzlbg approved these changes Jul 9, 2019

Copy link
Collaborator

left a comment

This LGTM. Please ping me once CI is green - the wasm32 failure is spurious.

@jmaibaum

This comment has been minimized.

Copy link
Contributor Author

commented Jul 12, 2019

Added missing vmvn_p8/vmvnq_p8, which completes the vmvn* family of ARM Neon intrinsics.

Rebased on top of current master and thus force-pushed.

Local tests and codegen checks on RaspberryPi 3 B+ were all green now, crossing my fingers for CI.

@jmaibaum

This comment has been minimized.

Copy link
Contributor Author

commented Jul 12, 2019

@gnzlbg CI passed now, except for the following 3 Jobs:

  • mips-unknown-linux-gnu - build-only

  • wasm32-unknown-unknown (did not look into these two)

  • aarch64-android-linux - no assert_instr (Travis seems to have missed the output from the Android emulator here, errored after not receiving any output for 10mins)

@gnzlbg

This comment has been minimized.

Copy link
Collaborator

commented Jul 14, 2019

Could you please rebase this on top of master?

@jmaibaum

This comment has been minimized.

Copy link
Contributor Author

commented Jul 14, 2019

@gnzlbg Sure.

@gnzlbg gnzlbg merged commit 8cb42c9 into rust-lang:master Jul 15, 2019

29 checks passed

rust-lang.stdarch Build #20190714.4 succeeded
Details
rust-lang.stdarch (AutomaticVerification) AutomaticVerification succeeded
Details
rust-lang.stdarch (DockerLinux0 aarch64-unknown-linux-gnu) DockerLinux0 aarch64-unknown-linux-gnu succeeded
Details
rust-lang.stdarch (DockerLinux0 arm-unknown-linux-gnueabihf) DockerLinux0 arm-unknown-linux-gnueabihf succeeded
Details
rust-lang.stdarch (DockerLinux0 armv7-unknown-linux-gnueabihf) DockerLinux0 armv7-unknown-linux-gnueabihf succeeded
Details
rust-lang.stdarch (DockerLinux0 i686-unknown-linux-gnu) DockerLinux0 i686-unknown-linux-gnu succeeded
Details
rust-lang.stdarch (DockerLinux0 mips-unknown-linux-gnu) DockerLinux0 mips-unknown-linux-gnu succeeded
Details
rust-lang.stdarch (DockerLinux0 mips64-unknown-linux-gnuabi64) DockerLinux0 mips64-unknown-linux-gnuabi64 succeeded
Details
rust-lang.stdarch (DockerLinux0 mips64el-unknown-linux-gnuabi64) DockerLinux0 mips64el-unknown-linux-gnuabi64 succeeded
Details
rust-lang.stdarch (DockerLinux0 powerpc64le-unknown-linux-gnu) DockerLinux0 powerpc64le-unknown-linux-gnu succeeded
Details
rust-lang.stdarch (DockerLinux0 s390x-unknown-linux-gnu) DockerLinux0 s390x-unknown-linux-gnu succeeded
Details
rust-lang.stdarch (DockerLinux0 wasm32-unknown-unknown) DockerLinux0 wasm32-unknown-unknown succeeded
Details
rust-lang.stdarch (DockerLinux0 x86_64-unknown-linux-gnu) DockerLinux0 x86_64-unknown-linux-gnu succeeded
Details
rust-lang.stdarch (DockerLinux0 x86_64-unknown-linux-gnu-emulated) DockerLinux0 x86_64-unknown-linux-gnu-emulated succeeded
Details
rust-lang.stdarch (DockerLinux1 aarch64-linux-android) DockerLinux1 aarch64-linux-android succeeded
Details
rust-lang.stdarch (DockerLinux1 arm-linux-androideabi) DockerLinux1 arm-linux-androideabi succeeded
Details
rust-lang.stdarch (DockerLinux1 i586-unknown-linux-gnu) DockerLinux1 i586-unknown-linux-gnu succeeded
Details
rust-lang.stdarch (DockerLinux1 mipsel-unknown-linux-musl) DockerLinux1 mipsel-unknown-linux-musl succeeded
Details
rust-lang.stdarch (DockerLinux1 nvptx64-nvidia-cuda) DockerLinux1 nvptx64-nvidia-cuda succeeded
Details
rust-lang.stdarch (DockerLinux1 thumbv6m-none-eabi) DockerLinux1 thumbv6m-none-eabi succeeded
Details
rust-lang.stdarch (DockerLinux1 thumbv7em-none-eabi) DockerLinux1 thumbv7em-none-eabi succeeded
Details
rust-lang.stdarch (DockerLinux1 thumbv7em-none-eabihf) DockerLinux1 thumbv7em-none-eabihf succeeded
Details
rust-lang.stdarch (DockerLinux1 thumbv7m-none-eabi) DockerLinux1 thumbv7m-none-eabi succeeded
Details
rust-lang.stdarch (DockerLinux1 x86_64-linux-android) DockerLinux1 x86_64-linux-android succeeded
Details
rust-lang.stdarch (DockerOSX32 i686-apple-darwin) DockerOSX32 i686-apple-darwin succeeded
Details
rust-lang.stdarch (DockerOSX64 x86_64-apple-darwin) DockerOSX64 x86_64-apple-darwin succeeded
Details
rust-lang.stdarch (GameBoyAdvance) GameBoyAdvance succeeded
Details
rust-lang.stdarch (StyleAndDocs) StyleAndDocs succeeded
Details
rust-lang.stdarch (Windows x86_64-pc-windows-msvc) Windows x86_64-pc-windows-msvc succeeded
Details
@gnzlbg

This comment has been minimized.

Copy link
Collaborator

commented Jul 15, 2019

Thanks!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
2 participants
You can’t perform that action at this time.