-
Notifications
You must be signed in to change notification settings - Fork 311
Adds missing neon intrinsics #1994
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
Adds missing neon intrinsics #1994
Conversation
351e1dd to
798bdbf
Compare
|
LGTM but this needs a rebase. |
- Adds vluti2 intrinsics - Adds famin/famax intrinsics - Adds vstl1(q) intrinsics - Adds vldap1(q) intrinsics - Excludes vldap1_lane_f64 as in testing it fails assert_intr. There seems to be some bad IR gen from rust. - Adds vscale(q) intrinsics - Adds new intrinsics to arm_intrinsics.json - Had to be done manually as intrinsics are not yet on developer.arm.com
Moves the relevant defintions from the aarch64 yaml to the arm_shared.
The opcodes for these intructions are not recognised by the dissasembler on the windows msvc toolchain. As such they are not translated to the relevant mneumonic and the `assert_instr` test fails. Please see [failing test](https://github.com/rust-lang/stdarch/actions/runs/20992978794/job/60342796821?pr=1994#logs).
798bdbf to
468e474
Compare
| doc: "Dot product index form with unsigned and signed integers" | ||
| arguments: ["a: {neon_type[0]}", "b: {neon_type[1]}", "c: {neon_type[2]}"] | ||
| return_type: "{neon_type[0]}" | ||
| big_endian_inverse: true # TODO: Remove this attribute, and replace transmute with vreinterpret when https://github.com/llvm/llvm-project/pull/169337 is merged, LLVM inlining issue causing assertion failure. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The LLVM 22 bump is in the bors queue now, so this should be very soon
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
For future reference, use FIXME(llvm22) because those tend to get grepped after the update.
Adds some missing arm neon intrinsics to bring stdarch more up-to-date with the acle
Including variants of:
vluti2vaminvamaxvstl1vldap1vldap1_lane_f64as in testing it failsassert_intr. There seems to be some bad IR gen from rust.vscale