builtins: add missed files from previous commits

This adds missed files in SVN r214033 for alignment and corrects a change from
SVN r214034 for fixing compilation with GCC.

git-svn-id: https://llvm.org/svn/llvm-project/compiler-rt/trunk@214039 91177308-0d34-0410-b5e6-96231b3b80d8
builtins: avoid multiple definitions of symbols

The architecture specific implementation of routines would be built and included
along with the generic implementation.  This would result in multiple
definitions of those symbols.

The linker is free to select either of the two.  Most of the time, this
shouldn't be too terrible as the forward iteration should catch the architecture
version due to the ordering.  Rather than relying on the linker and build
infrastructure ordering things in a specific manner, only provide the
architecture version when available.

This reduces the size of compiler-rt, simplifies inspection of the library
implementations, and guarantees that the desired version is selected at a
slightly complex build system.

git-svn-id: https://llvm.org/svn/llvm-project/compiler-rt/trunk@214040 91177308-0d34-0410-b5e6-96231b3b80d8