Slowly unpacking things post-vacation…
This seems mostly resolved given the phab review I saw, I’ll just reply to the transformation part.
They should be able exist in the IR, similarly to other ops. For envisioned use cases, we want to continue investing in progressive lowering and pattern composition with more dynamic semantics on vectors. But we may also want at some point to have them lower directly to LLVM (even if very inefficiently). I agree though that if the op could never materialize in the IR then attributes or C++ would be a better encoding.