[llvm-commits] [125247] Add build vector shuffles for MMX instructions.

bwendlin at apple.com bwendlin at apple.com
Thu Mar 22 11:41:21 PDT 2007


Revision: 125247
Author:   bwendlin
Date:     2007-03-22 11:41:21 -0700 (Thu, 22 Mar 2007)

Log Message:
-----------
Add build vector shuffles for MMX instructions.

Modified Paths:
--------------
    apple-local/branches/llvm/gcc/config/i386/llvm-i386.cpp

Modified: apple-local/branches/llvm/gcc/config/i386/llvm-i386.cpp
===================================================================
--- apple-local/branches/llvm/gcc/config/i386/llvm-i386.cpp	2007-03-22 18:31:30 UTC (rev 125246)
+++ apple-local/branches/llvm/gcc/config/i386/llvm-i386.cpp	2007-03-22 18:41:21 UTC (rev 125247)
@@ -326,6 +326,26 @@
     }
     
     return true;
+  case IX86_BUILTIN_PUNPCKHBW:
+    Result = BuildVectorShuffle(Ops[0], Ops[1], 4, 12, 5, 13,
+                                                6, 14, 7, 15);
+    return true;
+  case IX86_BUILTIN_PUNPCKHWD:
+    Result = BuildVectorShuffle(Ops[0], Ops[1], 2, 6, 3, 7);
+    return true;
+  case IX86_BUILTIN_PUNPCKHDQ:
+    Result = BuildVectorShuffle(Ops[0], Ops[1], 1, 3);
+    return true;
+  case IX86_BUILTIN_PUNPCKLBW:
+    Result = BuildVectorShuffle(Ops[0], Ops[1], 0,  8, 1,  9,
+                                                2, 10, 3, 11);
+    return true;
+  case IX86_BUILTIN_PUNPCKLWD:
+    Result = BuildVectorShuffle(Ops[0], Ops[1], 0, 4, 1, 5);
+    return true;
+  case IX86_BUILTIN_PUNPCKLDQ:
+    Result = BuildVectorShuffle(Ops[0], Ops[1], 0, 2);
+    return true;
   case IX86_BUILTIN_PUNPCKHBW128:
     Result = BuildVectorShuffle(Ops[0], Ops[1],  8, 24,  9, 25,
                                                 10, 26, 11, 27,





More information about the llvm-commits mailing list