1. A method comprising: decoding an instruction to determine whether the instruction can be executed using less than a number of stages in a multi-stage data processing pipeline; skipping a particular stage in the multi-stage data processing pipeline in response to determining that due instruction can be executed using less than the number of stages, wherein skipping the particular stage comprises holding the instruction in a register during a particular clock cycle associated with execution of the instruction at the particular stage; selecting a source of the instruction for a stage that is subsequent to the particular stage in the multi-stage data processing pipeline, wherein selecting the source includes selecting between the register and an output of the particular stage; and executing the instruction at the stage that is subsequent to the particular stage during another clock cycle.