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.