@@ -87,6 +87,13 @@ def AlternativesOp : TransformDialectOp<"alternatives",
8787 transform.yield %arg0 : !transform.any_op
8888 }
8989 ```
90+
91+ Note that this operation does not implement the `RegionBranchOpInterface`.
92+ That interface verifies that the operands and results passed across the
93+ control flow edges are equal (or compatible). In particular, it expects the
94+ result passed from a region to its successor to be the argument of that
95+ region; however, the argument of all `alternatives` regions are always
96+ provided by the parent op and never by the precedessor region.
9097 }];
9198
9299 let arguments = (ins Optional<TransformHandleTypeInterface>:$scope);
@@ -641,6 +648,14 @@ def ForeachOp : TransformDialectOp<"foreach",
641648 sequence fails immediately with the same failure, leaving the payload IR in
642649 a potentially invalid state, i.e., this operation offers no transformation
643650 rollback capabilities.
651+
652+ Note that this operation does not implement the `RegionBranchOpInterface`.
653+ That interface verifies that the operands and results passed across the
654+ control flow edges are equal (or compatible). In particular, it expects the
655+ result passed from a region to the parent to *be* the result of that op;
656+ however, the result of the `body` region only *contributes* to the result
657+ in that the result of the op is an aggregation of of the results of all
658+ iterations of the body.
644659 }];
645660
646661 let arguments = (ins Variadic<Transform_AnyHandleOrParamType>:$targets,
0 commit comments