summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorNate Begeman <natebegeman@mac.com>2008-05-16 18:59:42 +0000
committerNate Begeman <natebegeman@mac.com>2008-05-16 18:59:42 +0000
commit9800faa57866d82ebad291a0f828f9d3aa7faddf (patch)
tree8700c2c492b3e79436a3c9c662036b4e9ddfb8ef
parentc812b23ce89ec4b402df7a9200a2315a7ea51ab6 (diff)
downloadbcm5719-llvm-9800faa57866d82ebad291a0f828f9d3aa7faddf.tar.gz
bcm5719-llvm-9800faa57866d82ebad291a0f828f9d3aa7faddf.zip
Fix some prototypes, and implement some builtins until we have our header files completed.
llvm-svn: 51199
-rw-r--r--clang/include/clang/AST/X86Builtins.def8
-rw-r--r--clang/lib/CodeGen/CGBuiltin.cpp3
2 files changed, 7 insertions, 4 deletions
diff --git a/clang/include/clang/AST/X86Builtins.def b/clang/include/clang/AST/X86Builtins.def
index 90dcac5a3ff..97a07bca2ad 100644
--- a/clang/include/clang/AST/X86Builtins.def
+++ b/clang/include/clang/AST/X86Builtins.def
@@ -406,11 +406,11 @@ BUILTIN(__builtin_ia32_vec_ext_v2df, "dV2di", "")
BUILTIN(__builtin_ia32_vec_ext_v2di, "LLiV2LLii", "")
BUILTIN(__builtin_ia32_vec_ext_v4sf, "fV4fi", "")
BUILTIN(__builtin_ia32_vec_ext_v4si, "iV4ii", "")
-BUILTIN(__builtin_ia32_vec_ext_v8hi, "v", "")
-BUILTIN(__builtin_ia32_vec_ext_v4hi, "v", "")
+BUILTIN(__builtin_ia32_vec_ext_v8hi, "UsV8si", "")
+BUILTIN(__builtin_ia32_vec_ext_v4hi, "sV4si", "")
BUILTIN(__builtin_ia32_vec_ext_v2si, "iV2ii", "")
-BUILTIN(__builtin_ia32_vec_set_v8hi, "v", "")
-BUILTIN(__builtin_ia32_vec_set_v4hi, "v", "")
+BUILTIN(__builtin_ia32_vec_set_v8hi, "V8sV8ssi", "")
+BUILTIN(__builtin_ia32_vec_set_v4hi, "V4sv4ssi", "")
// Apple local SSE builtins? These are probably not needed eventually, but are
// in the apple-gcc xmmintrin.h file (rdar://4099020).
diff --git a/clang/lib/CodeGen/CGBuiltin.cpp b/clang/lib/CodeGen/CGBuiltin.cpp
index 9e06f181091..d15780a63ba 100644
--- a/clang/lib/CodeGen/CGBuiltin.cpp
+++ b/clang/lib/CodeGen/CGBuiltin.cpp
@@ -792,6 +792,9 @@ Value *CodeGenFunction::EmitX86BuiltinExpr(unsigned BuiltinID,
return Builder.CreateBitCast(Ops[0],
llvm::VectorType::get(llvm::Type::Int32Ty, 4));
}
+ case X86::BI__builtin_ia32_vec_set_v4hi:
+ case X86::BI__builtin_ia32_vec_set_v8hi:
+ return Builder.CreateInsertElement(Ops[0], Ops[1], Ops[2], "pinsrw");
case X86::BI__builtin_ia32_andps:
case X86::BI__builtin_ia32_andpd:
case X86::BI__builtin_ia32_andnps:
OpenPOWER on IntegriCloud