These ops are useful for test case reduction and test writing.
mlir %0 = source : i1 sink %0 : i1 %a, %b = source : i1, i2 sink %a, %b : i1, i2
Could test.produce, test.consume be better names for these? Could you add a couple more lines to the commit summary? I think you also need to say in the op description that these are no ops?
+1 to not putting these in the standard dialect. We didn't want a generic cast operation precisely because it could create values with unclear semantics. I would rather have it in a dedicated dialect rather than in the Test dialect. If you intend to build a bugpoint analog, you'd end up with a dependency of tools/bugpoint on test/lib, which sounds awkward.
You can omit this line