Skip to main content

## ds_permute

# Function ds_permute

Source

    pub unsafe fn ds_permute(lane: u32, value: u32) -> u32

🔬This is a nightly-only experimental API. (`stdarch_amdgpu` #149988)
Available on AMD GPU only.
Expand description

Scatter data across all lanes in a wavefront.

Writes `value` to the lane `lane`.

Reading from inactive lanes returns `0`. In case multiple values get written to the same `lane`, the value from the source lane with the higher index is taken.

This intrinsic does not behave like a normal function call; it is a “convergent” operation and as such has non-standard control-flow effects which need special treatment by the language. Rust currently does not properly support convergent operations. This operation is hence provided on a best-effort basis. Using it may result in incorrect code under some circumstances.