Use gcc intrinsics instead of handwritten byte swap functions