In normal operation data flows from left to right. However when reversed, garbage and outputs are fed into the circuit from the right to give the original inputs to the program (plus constants).