The patch is to fix PR34347.
Now llvm generates library calls of atomic_load/store for unaligned load/store of atomic primitive integer type vars on x86_64. Since x86_64 support unaligned atomic load/store for primitive integers, this is not efficient. The patch fixes that.
To fix PR34347, change in clang is also needed. That will be included in another patch.