I am trying to understand section 8.2 of Intel's System Programming Guide (that's Vol 3 in the PDF).
In particular, I see two different reordering scenarios:
8.2.3.4 Loads May Be Reordered with Earlier Stores to Different Locations
and
8.2.3.5 Intra-Processor Forwarding Is Allowed
However, I do not understand the difference between these scenarios from the observable effects POW. The examples provided in those sections seem interchangeable to me. 8.2.3.4 example can be explained by 8.2.3.5 rule just as well as by its own rule. And the converse seems true to me as well, although I am not that sure in that case.
So here is my question: are there better examples or explanations how the observable effects of 8.2.3.4 are different from observable effects of 8.2.3.5?