https://github.com/kuhar approved this pull request. Looks good % nits. I wonder if we should also add `spirv.mlir.switch` with an isolated-from-above region instead of branching to labels directly. https://github.com/llvm/llvm-project/pull/168713