[puzzle] waitcnt, is the destination/source field read before or after the wait?

Waitcnt is a read-modify-write instruction, just like Add is.
So you could say that it's just an Add that freezes midway.
After the required wait, the source fields value is added to the destination fields value
So internally it will do a read dest, add source, write dest.
Prove that the destination fields value is read before the wait or at time of exit.
So you could say that it's just an Add that freezes midway.
After the required wait, the source fields value is added to the destination fields value
So internally it will do a read dest, add source, write dest.
Prove that the destination fields value is read before the wait or at time of exit.
Comments
-Phil
Once by the cogs wait and cmp routine that halts pc
And then on exit its run as regular Add from scratch. (that for some reason it saved ic curcuit estate to do so)
Question:
By putting phsx in dest field with its pseudo shadow properties could you prove or disprove that?
What other ways could you use to prove/disprove that's the case.
Or you could change the puzzle to when is scr read (much simpler)
Is waitcnt just an Add that freezes midway at one of the two choices below:
dest , source, (wait) ,dest
dest , (wait), source ,dest
Besides, why would the operand fetch behaviour be different for wait* instructions? Even a nop follows the src/dst/live src pattern.
Channel1 is outa[0]; channel 2, outa[1].
-Phil