gallivm,lavapipe: add subgroup shuffle support
This adds support for subgroup shuffle operations to Lavapipe. It will use a shufflevector instruction if possible, falling back to intrinsics or to a loop if none are applicable.
Note that the dEQP-VK.subgroups.shuffle.*
tests in the Vulkan CTS don't exercise the index_is_constant_data
path in emit_shuffle
, which I would expect to be a common case in real applications. I did run a slightly modified version of them to test that path.
Edited by Autumn on Tape