Open afd opened 3 years ago
Our model allows this. I can't match a rule fom the specs to explicitely disallow this. There is a rule saying that "all branches into a construct from reachable blocks outside the construct must be to the header block" - but block 9 is not member of any construct because merge blocks are excluded from selection constructs by definition.
We defined a new rule about exiting the construct and then our model disallows this example
The following shader has two nested conditionals, and the body of the inner conditional breaks directly to the merge of the outer conditional:
Here is the CFG:
The edge 10->9 is the edge that breaks from inside the inner conditional to the merge of the outer conditional.
spirv-val
rejects this example with:I'm fairly sure it is intended that this is disallowed, but I cannot find wording in the spec that actually disallows it.
@vili-1 Does our model allow or disallow it?
Here is the .als file.