Was looking at the GCN instructions and had a question about DS_PERMUTE_B32: what happens if two lanes write to the same address? The ISA documentation doesn't mention a defined behavior, so I assume it's just a race condition?
Coincidentally, this popped up recently.
http://gpuopen.com/amd-gcn-assembly-cross-lane-operations/
This conflict is resolved in the same way as writing to the same LDS address: the lane with the greater ID wins.