"lazy flag evaluation. Most x86 instructions set the condition code flags, but only a relatively small subset of instructions actually use these flags."
it's quite interesting how it works... basically it just saves the 2 operands, the result & the instruction of the last instruction that modified certain flags
and it updates the flags when needed
saving 2 ops, res, instruction is faster than updating all the flags (cmp if zero etc...)