Rollup of 10 pull requests#157484
Closed
JonathanBrouwer wants to merge 69 commits into
Closed
Conversation
Stabilizes the NEON dot product intrinsics tracked by rust-lang#117224: vdot{q}_{s,u}32 vdot{q}_lane_{s,u}32 vdot{q}_laneq_{s,u}32 These have been available unstably since 2023. The `dotprod` target feature and `is_aarch64_feature_detected!("dotprod")` are already stable, so this only flips the intrinsics' stability attribute on aarch64 and arm64ec. On AArch32 the intrinsics remain unstable under `stdarch_arm_neon_intrinsics` (rust-lang#111800), consistent with the rest of the AArch32 NEON surface.
loongarch: Use `intrinsics::simd` for vpack{ev,od}
Small refactorings in AMX
The arithmetic for computing the length of the array containing test values is repeated in a handful of locations and doesn't support scalable vectors - this commit introduces a `test_values_array_length` helper to deduplicate this logic.
This function is more complex than it needs to be and `populate_random` is an unintuitive name - it doesn't do anything involving randomness.
Move this function to the `values` module alongside the other functions related to generation of the test value arrays and rename with a similar name.
`PASSES` is a constant accessible to all of the `common` module but is sometimes used directly and sometimes threaded through functions as an argument - this commit eliminates the inconsistency and just uses the constant everywhere.
Given that these "values" are sometimes re-interpreted as negative numbers, in practice they are bit patterns rather than values.
When SVE vectors start being tested, the test vectors will have length `$max_sve_bits / $ty_bit_length`, which is longer than most existing vector types, so more values are useful.
This isn't strictly optimal as it means that the 5/6/7 bit cases are less likely to be tested with values at the edges (e.g. `0x7e` for 7 bits).
This function doesn't really generate an argument at all, it writes a static that is eventually loaded from to become the argument.
This reverts commit ae9cb1c69c970b796a824bc4a69fc18f82642e82.
The tests were failing as sometimes the FFR was being clobbered between the `svsetffr` and `svrdffr`. When `as_ptr` is called on the `LazyLock` data for the first time one test thread will initialise it, while the others are blocked and wait. The wait/block is achieved with a syscall which on windows just so happens to sometimes clobber the FFR, as it is free to do as the FFR is caller saved. To fix this, we just ensure that the `as_ptr` is not called between the set and read.
loongarch: Use `intrinsics::simd` for vshuf4i
Adds the `_mm_clflushopt` intrinsic for the CLFLUSHOPT instruction (weakly-ordered cache-line flush). Until now stdarch exposed only the SSE2 `_mm_clflush`, so there was no way to emit `clflushopt` from an intrinsic. Gated on the new `clflushopt` target feature. See the PR description for the related compiler PR and tracking issue. Modeled on the existing `_mm_clflush` / `adx` intrinsics: links `llvm.x86.clflushopt`, assert_instr + simd_test coverage.
…e-ldst-tests-fix Re-enables & Fixes AArch64 SVE ld/st tests for MSVC target
loongarch: Fix visibility and legacy const generic index
intrinsic-test: refactor `populate_random` and related code
…t u8, regenerate missing-x86.md, and CLFLUSHOPT moved to cpuid.iter Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
…diag-ice, r=JonathanBrouwer Avoid ICE when emitting TargetMachine config errors Fixes rust-lang#157401 `ParseTargetMachineConfig::into_diag` constructed an inner `LlvmError` diagnostic to reuse its formatted message, but did not emit or cancel that temporary diagnostic. That a root cause of the ICE.
…nline, r=JonathanBrouwer Forbid optimize(none) with inline(always) or inline. Tracking issue: rust-lang#54882 Stabilization PR: rust-lang#157273
Add a smoke test for the optimize attribute. Tracking issue: rust-lang#54882 Stabilization PR: rust-lang#157273
…Kivooeo Warn when `#[macro_use]` or `#[macro_escape]` is used on the crate root Fixes rust-lang#157250
Contributor
Author
Contributor
This comment has been minimized.
This comment has been minimized.
rust-bors Bot
pushed a commit
that referenced
this pull request
Jun 5, 2026
Rollup of 10 pull requests try-job: dist-various-1 try-job: test-various try-job: x86_64-gnu-aux try-job: x86_64-gnu-llvm-21-3 try-job: x86_64-msvc-1 try-job: aarch64-apple try-job: x86_64-mingw-1 try-job: i686-msvc-2
Collaborator
|
The job Click to see the possible cause of the failure (guessed by this bot) |
Contributor
Author
|
Hmmm that's weird, is that spurious? |
Contributor
Author
|
Can't reproduce it locally |
Contributor
|
💔 Test for e90cde0 failed: CI. Failed job:
|
Collaborator
|
The job Click to see the possible cause of the failure (guessed by this bot) |
Contributor
|
PR #155338, which is a member of this rollup, was unapproved. This rollup was thus unapproved. |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Successful merges:
extern "tail"calling convention #157016 (addextern "tail"calling convention)Encode,Decode,Markimpls as#[inline]#157450 (markEncode,Decode,Markimpls as#[inline])#[macro_use]or#[macro_escape]is used on the crate root #157479 (Warn when#[macro_use]or#[macro_escape]is used on the crate root)r? @ghost
Create a similar rollup