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 | b362884ca92ce7de431de913a653827d41076683 (patch) | |
tree | a92729ac757076fa425457af08071fbdc646b35e /llvm/lib/VMCore/AutoUpgrade.cpp | |
parent | 017b959ad5749bc4fc8322b0468ea8f4f6540afc (diff) | |
download | bcm5719-llvm-b362884ca92ce7de431de913a653827d41076683.tar.gz bcm5719-llvm-b362884ca92ce7de431de913a653827d41076683.zip |
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].
llvm-svn: 132163
Diffstat (limited to 'llvm/lib/VMCore/AutoUpgrade.cpp')
-rw-r--r-- | llvm/lib/VMCore/AutoUpgrade.cpp | 28 |
1 files changed, 27 insertions, 1 deletions
diff --git a/llvm/lib/VMCore/AutoUpgrade.cpp b/llvm/lib/VMCore/AutoUpgrade.cpp index 79ab90c910a..b2b3d0beb66 100644 --- a/llvm/lib/VMCore/AutoUpgrade.cpp +++ b/llvm/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) { |