These intrinsics should work at least with standard integer and floating
point sizes, pointers, and vectors of those.
This fixes selection for non-s32 types when readfirstlane is inserted
for SGPR return values.
Moving the atomic optimizer pass in the pass pipeline so that it can be
simplified and rely on the more general support of lane intrinsics.
API users should move to these new intrinsics so that we can remove the
old versions.
Change-Id: I1c5e7e7858890e1c30d3b46c8551e74ab7027552
Based-on: https://reviews.llvm.org/D84639
clang-format suggested style edits found: