summaryrefslogtreecommitdiffstats
path: root/clang/lib/CodeGen/CGBuiltin.cpp
diff options
context:
space:
mode:
authorMon P Wang <wangmp@apple.com>2008-09-30 05:31:27 +0000
committerMon P Wang <wangmp@apple.com>2008-09-30 05:31:27 +0000
commit553b4b912b6b5c0c9d9f4bdc41a5f1922d58013b (patch)
treedf3547f54155d9371fc6cffe6b01023d92dddfa4 /clang/lib/CodeGen/CGBuiltin.cpp
parent8392f0c75dc56441a7744cd0818a87f2c0d4bfde (diff)
downloadbcm5719-llvm-553b4b912b6b5c0c9d9f4bdc41a5f1922d58013b.tar.gz
bcm5719-llvm-553b4b912b6b5c0c9d9f4bdc41a5f1922d58013b.zip
Added support for sse intrinsics loadlpd, loadhpd, muldq128, and mulld128
llvm-svn: 56830
Diffstat (limited to 'clang/lib/CodeGen/CGBuiltin.cpp')
-rw-r--r--clang/lib/CodeGen/CGBuiltin.cpp7
1 files changed, 7 insertions, 0 deletions
diff --git a/clang/lib/CodeGen/CGBuiltin.cpp b/clang/lib/CodeGen/CGBuiltin.cpp
index 177e68e7049..1ced9869c1a 100644
--- a/clang/lib/CodeGen/CGBuiltin.cpp
+++ b/clang/lib/CodeGen/CGBuiltin.cpp
@@ -892,6 +892,13 @@ Value *CodeGenFunction::EmitX86BuiltinExpr(unsigned BuiltinID,
Ops[0] = Builder.CreateInsertElement(Ops[0], Ops[1], Idx, "loadps");
return Builder.CreateBitCast(Ops[0], OrigTy, "loadps");
}
+ case X86::BI__builtin_ia32_loadlpd:
+ case X86::BI__builtin_ia32_loadhpd: {
+ Ops[1] = Builder.CreateLoad(Ops[1], "tmp");
+ unsigned Index = BuiltinID == X86::BI__builtin_ia32_loadlpd ? 0 : 1;
+ llvm::Value *Idx = llvm::ConstantInt::get(llvm::Type::Int32Ty, Index);
+ return Builder.CreateInsertElement(Ops[0], Ops[1], Idx, "loadpd");
+ }
case X86::BI__builtin_ia32_storehps:
case X86::BI__builtin_ia32_storelps: {
const llvm::Type *EltTy = llvm::Type::Int64Ty;
OpenPOWER on IntegriCloud