It would be safe, provided the rest of your implementation is sound.
As you mention, QAtomicInt implements memory fences that prevent instruction re-ordering, and this also enforces cache coherence between processors (in fact the caches of x86 and x86_64 processors are all coherent anyway, though the coherence protocol can cause pipeline stalls and reduce performance if you're relying on it in a tight loop).