This just happened for me.
Yes it is a constructed situation, but in the real shader there is a reason for a return statement distribution like that. However I turn this, the top and bottom codes are equivalent, and on NVidia they both show the same graphics, but on ATi they don’t. I understand that predicting the control flow and all that can cause trouble, but it should in no event cause the code to be executed wrongly, should it?
This happened only after updating drivers today, was fine before.