p64 load/store intrinsics not properly inlined on arm
Open
Nobody has claimed this yet.
- Dominant language
- Rust
- Stars
- 694
- Forks
- 336
- Avg merge
- 5d 14h
- Merged PRs (30d)
- 9
Description
The following tests fail the inlining check on arm (but pass on aarch64):
core_arch::arm_shared::neon::generated::assert_vld1_p64_x2_vld1
core_arch::arm_shared::neon::generated::assert_vld1_p64_x3_nop
core_arch::arm_shared::neon::generated::assert_vld1_p64_x4_nop
core_arch::arm_shared::neon::generated::assert_vld1q_p64_x2_nop
core_arch::arm_shared::neon::generated::assert_vld1q_p64_x3_nop
core_arch::arm_shared::neon::generated::assert_vld1q_p64_x4_nop
core_arch::arm_shared::neon::generated::assert_vld2_dup_p64_nop
core_arch::arm_shared::neon::generated::assert_vld2_p64_nop
core_arch::arm_shared::neon::generated::assert_vld3_dup_p64_nop
core_arch::arm_shared::neon::generated::assert_vld3_p64_nop
core_arch::arm_shared::neon::generated::assert_vld4_dup_p64_nop
core_arch::arm_shared::neon::generated::assert_vld4_p64_nop
core_arch::arm_shared::neon::generated::assert_vst1_p64_x2_vst1
core_arch::arm_shared::neon::generated::assert_vst1_p64_x3_nop
core_arch::arm_shared::neon::generated::assert_vst1_p64_x4_nop
core_arch::arm_shared::neon::generated::assert_vst1q_p64_x2_nop
core_arch::arm_shared::neon::generated::assert_vst1q_p64_x3_nop
core_arch::arm_shared::neon::generated::assert_vst1q_p64_x4_nop
core_arch::arm_shared::neon::generated::assert_vst2_p64_nop
core_arch::arm_shared::neon::generated::assert_vst3_p64_nop
core_arch::arm_shared::neon::generated::assert_vst4_p64_nop
Apparently we need an extra version of the load/store intrinsics we delegate those intrinsics to with matching feature flags, see https://godbolt.org/z/WxozeEPav
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start by locating the generated ARM NEON definitions and the inlining checks named in the issue. Compare the failing arm checks with their passing aarch64 counterparts and inspect how the delegated load/store intrinsics are selected. Done means the listed arm checks pass without regressing the existing aarch64 checks.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- rust
- Domain
- performance
- Issue type
- Bug
- Difficulty
- 3/5
- Estimated time
- 1-2 days
- Activity status
- Quiet
- Clarity
- Mostly clear
- Newbie friendliness
- 45/100