Always use lock prefix for x86 atomics. Non-SMP builds do not make heavy use of them and still in some cases might need to sync with other threads. So the downside for performance should be limited, the upside is to keep API simple, without _smp variants for all atomics.