ARM and Thumb instructions can execute conditionally on the condition flags set by a previous instruction.
The conditional instruction can occur either:
Immediately after the instruction that updated the flags.
After any number of intervening instructions that have not updated the flags.
In AArch32 state, whether an instruction can be conditional or not depends on the instruction set state that the processor is in. Few A64 instructions can be conditionally executed.
To make an instruction conditional, you must add a condition code suffix to the instruction mnemonic. The condition code suffix enables the processor to test a condition based on the flags. If the condition test of a conditional instruction fails, the instruction:
Does not execute.
Does not write any value to its destination register.
Does not affect any of the flags.
Does not generate any exception.