Okay, here's the different op splitting/fusing strategies for different cores, as far as I've been able to discern them:
- Pentium: Complex instructions are U-pipe only but execute directly, they don't get split.
- Atom (Bonnel/Saltwell): Certain complex instructions don't get split.
- Pentium Pro/2/3: All ops get split into, tracked as, and executed as uOps.
- Pentium 4: This never happened.
- Pentium M/Core: All ops get split into uOps. Post-split, the core can fuse two types of multi-uOp sequences into a larger fused op used for tracking:
- For stores, address generation + actual store uOps can get fused.