More replacing of target-dependent intrinsics with target-indepdent
authorJoel Jones <joel_k_jones@apple.com>
Wed, 18 Jul 2012 00:02:16 +0000 (00:02 +0000)
committerJoel Jones <joel_k_jones@apple.com>
Wed, 18 Jul 2012 00:02:16 +0000 (00:02 +0000)
commit7c82e6a32a84e238c9e4e57dd43eaba540a79ce1
treeee690b3fa0c29940515aa6a66214f8190b7fc180
parent0b5f1aca32076e9a29dc3d716945d1ec6003c96e
More replacing of  target-dependent intrinsics with target-indepdent
intrinsics.  The second instruction(s) to be handled are the vector versions
of count set bits (ctpop).

The changes here are to clang so that it generates a target independent
vector ctpop when it sees an ARM dependent vector bits set count.  The changes
in llvm are to match the target independent vector ctpop and in
VMCore/AutoUpgrade.cpp to update any existing bc files containing ARM
dependent vector pop counts with target-independent ctpops.  There are also
changes to an existing test case in llvm for ARM vector count instructions and
to a test for the bitcode upgrade.

<rdar://problem/11892519>

There is deliberately no test for the change to clang, as so far as I know, no
consensus has been reached regarding how to test neon instructions in clang;
q.v. <rdar://problem/8762292>

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@160410 91177308-0d34-0410-b5e6-96231b3b80d8
lib/Target/ARM/ARMInstrNEON.td
lib/VMCore/AutoUpgrade.cpp
test/Bitcode/arm32_neon_vcnt_upgrade.ll
test/CodeGen/ARM/vcnt.ll