Re: Intel "shouldn't be selling CPUs?"
Speculative execution means that the CPU will decide to take a given branch because the branch predictor has guessed that this branch will be taken. This speculative branch is taken while other instructions are in-flight.
Yes, that I understand.
My confusion was that I was assuming that "conditional branch" meant something like a single "branch if xxx" instruction, whereas "unconditional branch" would be "branch always". I wasn't allowing for them to be separated, where a preceding test would later be followed by a branch always, the combination being the "conditional branch" which could be speculatively executed. Thanks.