backwards execution

How to know which Rapid statements are executed backwards as it seems that Add , is executed even backwards but reset is not. WHILE .. ENDWHILE can be run backwards but IF .. ENDIF not and an error reported. Is there a definitive list of which instructions will execute backwards ?