Intel software manual says clwb "Writes back to memory the cache line (if modified) that contains the linear address specified with the memory operand from any level of the cache hierarchy in the cache coherence domain. The line may be retained in the cache hierarchy in non-modified state. clwb is ordered with respect to older writes to the cache line being written back"
My question is, in the below pseudo code
write(A)
clwb (A)
Does clwb take care of the write in store buffer? or Do I need to sfence after a write, before using clwb, like
write (A)
sfence
clwb (A)
I want to know whether the "sfence" is actually required or not? Thanks