[llvm-commits] [llvm] r132207 - in /llvm/trunk: lib/VMCore/AutoUpgrade.cpp test/Bitcode/sse42_crc32.ll test/Bitcode/sse42_crc32.ll.bc

Chad Rosier mcrosier at apple.com
Fri May 27 12:38:10 PDT 2011


Author: mcrosier
Date: Fri May 27 14:38:10 2011
New Revision: 132207

URL: http://llvm.org/viewvc/llvm-project?rev=132207&view=rev
Log:
CRC32 intrinsics were renamed at revision 132163.  This submission
fixes aliasing issues with the old and new names as well as adds test
cases for the auto-upgrader.
Fixes rdar 9472944.

Added:
    llvm/trunk/test/Bitcode/sse42_crc32.ll
    llvm/trunk/test/Bitcode/sse42_crc32.ll.bc   (with props)
Modified:
    llvm/trunk/lib/VMCore/AutoUpgrade.cpp

Modified: llvm/trunk/lib/VMCore/AutoUpgrade.cpp
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/VMCore/AutoUpgrade.cpp?rev=132207&r1=132206&r2=132207&view=diff
==============================================================================
--- llvm/trunk/lib/VMCore/AutoUpgrade.cpp (original)
+++ llvm/trunk/lib/VMCore/AutoUpgrade.cpp Fri May 27 14:38:10 2011
@@ -290,18 +290,18 @@
     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) {
+        if (Name.compare(20, 2, ".8") == 0 && Name.length() == 22) {
           NewFnName = "llvm.x86.sse42.crc32.32.8";
-        } else if (Name.compare(20, 2, ".16") == 0) {
+        } else if (Name.compare(20, 3, ".16") == 0 && Name.length() == 23) {
           NewFnName = "llvm.x86.sse42.crc32.32.16";
-        } else if (Name.compare(20, 2, ".32") == 0) {
+        } else if (Name.compare(20, 3, ".32") == 0 && Name.length() == 23) {
           NewFnName = "llvm.x86.sse42.crc32.32.32";
         }
       }
       else if (Name.compare(18, 2, "64", 2) == 0) {
-        if (Name.compare(20, 2, ".8") == 0) {
+        if (Name.compare(20, 2, ".8") == 0 && Name.length() == 22) {
           NewFnName = "llvm.x86.sse42.crc32.64.8";
-        } else if (Name.compare(20, 2, ".64") == 0) {
+        } else if (Name.compare(20, 3, ".64") == 0 && Name.length() == 23) {
           NewFnName = "llvm.x86.sse42.crc32.64.64";
         }
       }

Added: llvm/trunk/test/Bitcode/sse42_crc32.ll
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/Bitcode/sse42_crc32.ll?rev=132207&view=auto
==============================================================================
--- llvm/trunk/test/Bitcode/sse42_crc32.ll (added)
+++ llvm/trunk/test/Bitcode/sse42_crc32.ll Fri May 27 14:38:10 2011
@@ -0,0 +1,16 @@
+; Check to make sure old CRC32 intrinsics are auto-upgraded
+; correctly.
+;
+; Rdar: 9472944
+;
+; RUN: llvm-dis < %s.bc | not grep {i32 @llvm.x86.sse42.crc32.8(}
+; RUN: llvm-dis < %s.bc | grep {i32 @llvm.x86.sse42.crc32.32.8(}
+; RUN: llvm-dis < %s.bc | not grep {i32 @llvm.x86.sse42.crc32.16(}
+; RUN: llvm-dis < %s.bc | grep {i32 @llvm.x86.sse42.crc32.32.16(}
+; RUN: llvm-dis < %s.bc | not grep {i32 @llvm.x86.sse42.crc32.32(}
+; RUN: llvm-dis < %s.bc | grep {i32 @llvm.x86.sse42.crc32.32.32(}
+; RUN: llvm-dis < %s.bc | not grep {i64 @llvm.x86.sse42.crc64.8(}
+; RUN: llvm-dis < %s.bc | grep {i64 @llvm.x86.sse42.crc32.64.8(}
+; RUN: llvm-dis < %s.bc | not grep {i64 @llvm.x86.sse42.crc64.8(}
+; RUN: llvm-dis < %s.bc | grep {i64 @llvm.x86.sse42.crc32.64.8(}
+

Added: llvm/trunk/test/Bitcode/sse42_crc32.ll.bc
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/Bitcode/sse42_crc32.ll.bc?rev=132207&view=auto
==============================================================================
Binary file - no diff available.

Propchange: llvm/trunk/test/Bitcode/sse42_crc32.ll.bc
------------------------------------------------------------------------------
    svn:mime-type = application/octet-stream





More information about the llvm-commits mailing list