We are missing SPIR-V lowering patterns for the gpu.subgroup_broadcast op. These be added to to https://github.com/llvm/llvm-project/blob/main/mlir/lib/Conversion/GPUToSPIRV/GPUToSPIRV.cpp
We have two cases:
gpu.subgroup_broadcast specific_lane --> spirv.GroupNonUniformBroadcast
gpu.subgroup_broadcast first_lane -> spirv.GroupNonUniformBroadcastFirst https://registry.khronos.org/SPIR-V/specs/unified1/SPIRV.html#OpGroupNonUniformBroadcastFirst
Plain broadcast exists in the SPIR-V dialect, broadcast first lane needs to be added.