To confirm the statement that loads may be reordered with earlier stores on IA64 manual 126.96.36.199, I run a litmus test on a X86_64 machine(i5-8500) and the result confused me.
Here is the test program:
"Fre PodWR Fre PodWR"
P0 | P1 ;
MOV [x],$1 | MOV [y],$1 ;
MOV EAX,[y] | MOV EBX,[x] ;
exists (0:EAX=0 /\ 1:EBX=1)
Here is the result:
Test SB Allowed
Histogram (2 states)
If Store-Load for can be reordered ,there will be result that EAX=0 && EBX = 0, but the result is not like this.
Can someone help me ?
Thank you for posting on the Intel® communities.
I would like to let you know that we have a specific community forum where you will receive appropriate support, it is the Intel Developer Zone. To access the forum, just use the following link:
Also, you may find more details here:
Intel Customer Support Technician