When a value used in the forOp is defined outside the region but within the parent warpOp we need to return and distribute the value to pass it to new operations created within the loop. Also simplify the lambda interface. Differential Revision: https://reviews.llvm.org/D137146