In some examples, the checkpoint wait instructions may be implemented as conditional instructions. As previously discussed, waiting on a value in a checkpoint register may include waiting for a checkpoint value equal to a value set in the checkpoint register, waiting for a checkpoint value greater than a value set in the checkpoint register, waiting for a checkpoint value greater than or equal to a value set in the checkpoint register, waiting for a checkpoint value less than a value set in the checkpoint register, or waiting for a checkpoint value less than or equal to a value set in the checkpoint register. For example, referring to the example in
In some cases, some or all of the checkpoint set instructions executed by the second execution engine 420 may be executed before the checkpoint wait instructions for the third execution engine 430 are executed. For example, the second execution engine 420 may execute the Set (Ckpt1, 1) 423 and Set (Ckpt1, 2) 425 instructions before the third execution engine 430 executes the Wait (Ckpt1, ≥1) instruction 431. In such cases, the Wait (Ckpt1, ≥1) instruction 431 may be implemented as the conditional wait instruction “wait for a value equal to or greater than ‘1’.” When the checkpoint wait instruction Wait (Ckpt1, ≥1) 431 is executed, the value in the global checkpoint register Ckpt1 will be greater than “1” and the second execution engine 420 will not halt instruction execution.