the new value to the result. Unlike `fetch_neg`, this does not return the previous value. `neg` takes an [`Ordering`] argument which describes the memory ordering of this operation. All ordering modes are possible. Note that using [`Acquire`] makes the store part of this operation [`Relaxed`], and using [`Release`] makes the load part [`Relaxed`]. This function may generate more efficient code than `fetch_neg` on some platforms. - x86/x86_64: `lock neg` instead of `cmpxchg` loop ({8,16,32}-bit atomics on x86, but additionally 64-bit atomics on x86_64) # Examples ``` use portable_atomic::{AtomicI32, Ordering}; let foo = AtomicI32::new(5); foo.neg(Ordering::Relaxed); assert_eq!(foo.load(Ordering::Relaxed), 5_i32.wrapping_neg()); foo.neg(Ordering::Relaxed); assert_eq!(foo.load(Ordering::Relaxed), 5); ```