Skip to content

Conversation

@CrooseGit
Copy link
Contributor

Adds some missing arm neon intrinsics to bring stdarch more up-to-date with the acle

Including variants of:

  • vluti2
  • vamin
  • vamax
  • vstl1
  • vldap1
    • Excludes vldap1_lane_f64 as in testing it fails assert_intr. There seems to be some bad IR gen from rust.
  • vscale

@rustbot
Copy link
Collaborator

rustbot commented Jan 14, 2026

r? @Amanieu

rustbot has assigned @Amanieu.
They will have a look at your PR within the next two weeks and either review your PR or reassign to another reviewer.

Use r? to explicitly pick a reviewer

@CrooseGit CrooseGit force-pushed the dev/reucru01/add-missing-intrinsics branch from 351e1dd to 798bdbf Compare January 14, 2026 16:51
@Amanieu
Copy link
Member

Amanieu commented Jan 27, 2026

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).
@CrooseGit CrooseGit force-pushed the dev/reucru01/add-missing-intrinsics branch from 798bdbf to 468e474 Compare January 27, 2026 17:22
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.
Copy link
Contributor

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

Copy link
Contributor

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.

@folkertdev folkertdev added this pull request to the merge queue Jan 27, 2026
Merged via the queue into rust-lang:main with commit 491d744 Jan 27, 2026
75 checks passed
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.

5 participants