diff options
author | Chad Rosier <mcrosier@apple.com> | 2011-05-26 23:13:19 +0000 |
---|---|---|
committer | Chad Rosier <mcrosier@apple.com> | 2011-05-26 23:13:19 +0000 |
commit | 62660310d9e5f9ecf329fd3cacb67c344a12ddbc (patch) | |
tree | f855da88d8e7d023205268a089306dafde169b50 /lib/VMCore/AutoUpgrade.cpp | |
parent | 0958870a085e74c3216186700ca24f3272340ad2 (diff) | |
download | llvm-62660310d9e5f9ecf329fd3cacb67c344a12ddbc.tar.gz llvm-62660310d9e5f9ecf329fd3cacb67c344a12ddbc.tar.bz2 llvm-62660310d9e5f9ecf329fd3cacb67c344a12ddbc.tar.xz |
Renamed llvm.x86.sse42.crc32 intrinsics; crc64 doesn't exist.
crc32.[8|16|32] have been renamed to .crc32.32.[8|16|32] and
crc64.[8|16|32] have been renamed to .crc32.64.[8|64].
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@132163 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/VMCore/AutoUpgrade.cpp')
-rw-r--r-- | lib/VMCore/AutoUpgrade.cpp | 28 |
1 files changed, 27 insertions, 1 deletions
diff --git a/lib/VMCore/AutoUpgrade.cpp b/lib/VMCore/AutoUpgrade.cpp index 79ab90c910..b2b3d0beb6 100644 --- a/lib/VMCore/AutoUpgrade.cpp +++ b/lib/VMCore/AutoUpgrade.cpp @@ -285,7 +285,33 @@ static bool UpgradeIntrinsicFunction1(Function *F, Function *&NewFn) { } break; - case 'x': + case 'x': + // This fixes the poorly named crc32 intrinsics + if (Name.compare(5, 13, "x86.sse42.crc", 13) == 0) { + const char* NewFnName = NULL; + if (Name.compare(18, 2, "32", 2) == 0) { + if (Name.compare(20, 2, ".8") == 0) { + NewFnName = "llvm.x86.sse42.crc32.32.8"; + } else if (Name.compare(20, 2, ".16") == 0) { + NewFnName = "llvm.x86.sse42.crc32.32.16"; + } else if (Name.compare(20, 2, ".32") == 0) { + NewFnName = "llvm.x86.sse42.crc32.32.32"; + } + } + else if (Name.compare(18, 2, "64", 2) == 0) { + if (Name.compare(20, 2, ".8") == 0) { + NewFnName = "llvm.x86.sse42.crc32.64.8"; + } else if (Name.compare(20, 2, ".64") == 0) { + NewFnName = "llvm.x86.sse42.crc32.64.64"; + } + } + if (NewFnName) { + F->setName(NewFnName); + NewFn = F; + return true; + } + } + // This fixes all MMX shift intrinsic instructions to take a // x86_mmx instead of a v1i64, v2i32, v4i16, or v8i8. if (Name.compare(5, 8, "x86.mmx.", 8) == 0) { |