Author: evancheng Date: Fri Dec 14 18:13:36 2007 New Revision: 45048 URL: http://llvm.org/viewvc/llvm-project?rev=45048&view=rev Log: Expand __builtin_ia32_movqv4si (aka IX86_BUILTIN_MOVQ / _mm_move_epi64) into a shuffle.
Modified: llvm-gcc-4.2/trunk/gcc/config/i386/llvm-i386.cpp Modified: llvm-gcc-4.2/trunk/gcc/config/i386/llvm-i386.cpp URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/gcc/config/i386/llvm-i386.cpp?rev=45048&r1=45047&r2=45048&view=diff ============================================================================== --- llvm-gcc-4.2/trunk/gcc/config/i386/llvm-i386.cpp (original) +++ llvm-gcc-4.2/trunk/gcc/config/i386/llvm-i386.cpp Fri Dec 14 18:13:36 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)); _______________________________________________ llvm-commits mailing list llvm-commits@cs.uiuc.edu http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits