Makes this operation runnable on CPU by generating MLIR instructions
that are eventually folded into an LLVM IR constant for the mask.
There is some mechanism a pattern can tell the conversion infra it creates operations that the same pattern can match again, but this iteration is finite. I suppose it's worth using even if the pattern seems to work as is.
Thanks, yes, I saw the recent developments on that (hasBoundedRewriteRecursion() right?). For the vector->vector progressive lowering, we use "applyPatternsAndFoldGreedily" so that it does not really matter, yet (other than of course making sure that the iteration terminates, for most cases by stripping of a rank or so). But it does not hurt to add, although probably in a new CL for all the rules in this file so far.
Last time I looked at it applyPatternsAndFoldGreedily applied the same pattern no more than 10 times. We may want to remove or raise this bound if hasBoundedRewriteRecursion tells it's okay.