[llvm-commits] [llvm-gcc-4.0] r45049 - /llvm-gcc-4.0/trunk/gcc/config/i386/llvm-i386.cpp

Evan Cheng evan.cheng at apple.com
Fri Dec 14 16:13:55 PST 2007


Author: evancheng
Date: Fri Dec 14 18:13:55 2007
New Revision: 45049

URL: http://llvm.org/viewvc/llvm-project?rev=45049&view=rev
Log:
Expand __builtin_ia32_movqv4si (aka IX86_BUILTIN_MOVQ / _mm_move_epi64) into a shuffle.

Modified:
    llvm-gcc-4.0/trunk/gcc/config/i386/llvm-i386.cpp

Modified: llvm-gcc-4.0/trunk/gcc/config/i386/llvm-i386.cpp
URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.0/trunk/gcc/config/i386/llvm-i386.cpp?rev=45049&r1=45048&r2=45049&view=diff

==============================================================================
--- llvm-gcc-4.0/trunk/gcc/config/i386/llvm-i386.cpp (original)
+++ llvm-gcc-4.0/trunk/gcc/config/i386/llvm-i386.cpp Fri Dec 14 18:13:55 2007
@@ -375,6 +375,12 @@
   case IX86_BUILTIN_MOVSS:
     Result = BuildVectorShuffle(Ops[0], Ops[1], 4, 1, 2, 3);
     return true;
+  case IX86_BUILTIN_MOVQ: {
+    Value *Zero = ConstantInt::get(Type::Int32Ty, 0);
+    Ops[1] = BuildVector(Zero, Zero, Zero, Zero, NULL);
+    Result = BuildVectorShuffle(Ops[1], Ops[0], 4, 5, 2, 3);
+    return true;
+  }
   case IX86_BUILTIN_LOADQ: {
     PointerType *f64Ptr = PointerType::get(Type::DoubleTy);
     Value *Zero = ConstantFP::get(Type::DoubleTy, APFloat(0.0));





More information about the llvm-commits mailing list