diff options
-rw-r--r-- | clang/include/clang/AST/X86Builtins.def | 8 | ||||
-rw-r--r-- | clang/lib/CodeGen/CGBuiltin.cpp | 3 |
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: |