[llvm-commits] [llvm-gcc-4.2] r132850 - /llvm-gcc-4.2/trunk/gcc/config/i386/llvm-i386.cpp
Bill Wendling
isanbard at gmail.com
Fri Jun 10 12:20:28 PDT 2011
Author: void
Date: Fri Jun 10 14:20:28 2011
New Revision: 132850
URL: http://llvm.org/viewvc/llvm-project?rev=132850&view=rev
Log:
Lower the MOVNT* variants to the appropriate native LLVM-IR equivalents.
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=132850&r1=132849&r2=132850&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 Jun 10 14:20:28 2011
@@ -445,6 +445,21 @@
Result = Builder.CreateCall(Func, CallOps, CallOps + 2);
return true;
}
+ case IX86_BUILTIN_MOVNTPS:
+ case IX86_BUILTIN_MOVNTPD:
+ case IX86_BUILTIN_MOVNTDQ:
+ case IX86_BUILTIN_MOVNTI: {
+ MDNode *Node = MDNode::get(Context, Builder.getInt32(1));
+
+ // Convert the type of the pointer to a pointer to the stored type.
+ Value *BC = Builder.CreateBitCast(Ops[0],
+ PointerType::getUnqual(Ops[1]->getType()),
+ "cast");
+ StoreInst *SI = Builder.CreateStore(Ops[1], BC);
+ SI->setMetadata(TheModule->getMDKindID("nontemporal"), Node);
+ SI->setAlignment(16);
+ return SI;
+ }
case IX86_BUILTIN_PALIGNR: {
static const Type *MMXTy = Type::getX86_MMXTy(Context);
Function *Func = Intrinsic::getDeclaration(TheModule,
More information about the llvm-commits
mailing list