[X86] Remove extra MOV after widening atomic load
This change adds patterns to optimize out an extra MOV
present after widening the atomic load. It also casts floats
to ints in an atomic load during AtomicExpand to support 128 bit
vectors in SSE/AVX.
commit-id:45989503