diff options
author | Evan Cheng <evan.cheng@apple.com> | 2006-03-31 21:28:46 +0000 |
---|---|---|
committer | Evan Cheng <evan.cheng@apple.com> | 2006-03-31 21:28:46 +0000 |
commit | 6159873e46d3ff3b7b44050e1891006319b0bda8 (patch) | |
tree | e0c8cedac2a18b8ad13e4746f9375aa4784efc38 | |
parent | 7376a5e1292cf848880ebced00131c54a2194ac9 (diff) | |
download | external_llvm-6159873e46d3ff3b7b44050e1891006319b0bda8.zip external_llvm-6159873e46d3ff3b7b44050e1891006319b0bda8.tar.gz external_llvm-6159873e46d3ff3b7b44050e1891006319b0bda8.tar.bz2 |
Added haddp{s|d} and hsubp{s|d} intrinsics.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@27309 91177308-0d34-0410-b5e6-96231b3b80d8
-rw-r--r-- | include/llvm/IntrinsicsX86.td | 19 |
1 files changed, 19 insertions, 0 deletions
diff --git a/include/llvm/IntrinsicsX86.td b/include/llvm/IntrinsicsX86.td index 32a6ada..238c5fa 100644 --- a/include/llvm/IntrinsicsX86.td +++ b/include/llvm/IntrinsicsX86.td @@ -199,3 +199,22 @@ let TargetPrefix = "x86" in { // All intrinsics start with "llvm.x86.". def int_x86_sse2_pmovmskb_128 : GCCBuiltin<"__builtin_ia32_pmovmskb128">, Intrinsic<[llvm_int_ty, llvm_v16i8_ty], [InstrNoMem]>; } + +//===----------------------------------------------------------------------===// +// SSE3 + +// Horizontal ops. +let TargetPrefix = "x86" in { // All intrinsics start with "llvm.x86.". + def int_x86_sse3_hadd_ps : GCCBuiltin<"__builtin_ia32_haddps">, + Intrinsic<[llvm_v4f32_ty, llvm_v4f32_ty, + llvm_v4f32_ty], [InstrNoMem]>; + def int_x86_sse3_hadd_pd : GCCBuiltin<"__builtin_ia32_haddpd">, + Intrinsic<[llvm_v2f64_ty, llvm_v2f64_ty, + llvm_v2f64_ty], [InstrNoMem]>; + def int_x86_sse3_hsub_ps : GCCBuiltin<"__builtin_ia32_hsubps">, + Intrinsic<[llvm_v4f32_ty, llvm_v4f32_ty, + llvm_v4f32_ty], [InstrNoMem]>; + def int_x86_sse3_hsub_pd : GCCBuiltin<"__builtin_ia32_hsubpd">, + Intrinsic<[llvm_v2f64_ty, llvm_v2f64_ty, + llvm_v2f64_ty], [InstrNoMem]>; +} |