With the maximal reconvergence extension, function returns are explicitly marked as reconvergence points. But according to the base spec in section 2.2.5, it is only defined that invocations reconverge at the merge block (assuming control flow was uniform before). So if a function returns inside non-uniform control flow, does the control flow still reconverge at the call site or does it just stay non-uniform for the rest of the program?
With the maximal reconvergence extension, function returns are explicitly marked as reconvergence points. But according to the base spec in section 2.2.5, it is only defined that invocations reconverge at the merge block (assuming control flow was uniform before). So if a function returns inside non-uniform control flow, does the control flow still reconverge at the call site or does it just stay non-uniform for the rest of the program?