aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorEvan Cheng <evan.cheng@apple.com>2006-03-25 00:18:20 +0000
committerEvan Cheng <evan.cheng@apple.com>2006-03-25 00:18:20 +0000
commitaf4398a281851a626756f67b8338178f4162d53e (patch)
treeb99fdf225a59e5314c673abff6527a5a2caf8ad5
parentbc4832bc648f9cfb99a43e01852e0f2c7632f16c (diff)
X86 SSE1 arithmetic and logical operation intrinsics.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@27092 91177308-0d34-0410-b5e6-96231b3b80d8
-rw-r--r--include/llvm/Intrinsics.td135
1 files changed, 135 insertions, 0 deletions
diff --git a/include/llvm/Intrinsics.td b/include/llvm/Intrinsics.td
index e142a0791d..0d36fcfffb 100644
--- a/include/llvm/Intrinsics.td
+++ b/include/llvm/Intrinsics.td
@@ -241,6 +241,141 @@ let TargetPrefix = "ppc" in { // All intrinsics start with "llvm.ppc.".
//
// SSE1
+// Arithmetics
+let TargetPrefix = "x86" in { // All intrinsics start with "llvm.x86.".
+ def int_x86_sse_addss : GCCBuiltin<"__builtin_ia32_addss">,
+ Intrinsic<[llvm_float_ty, llvm_float_ty,
+ llvm_float_ty], [InstrNoMem]>;
+}
+
+let TargetPrefix = "x86" in { // All intrinsics start with "llvm.x86.".
+ def int_x86_sse_addps : GCCBuiltin<"__builtin_ia32_addps">,
+ Intrinsic<[llvm_v4f32_ty, llvm_v4f32_ty,
+ llvm_v4f32_ty], [InstrNoMem]>;
+}
+
+let TargetPrefix = "x86" in { // All intrinsics start with "llvm.x86.".
+ def int_x86_sse_subss : GCCBuiltin<"__builtin_ia32_subss">,
+ Intrinsic<[llvm_float_ty, llvm_float_ty,
+ llvm_float_ty], [InstrNoMem]>;
+}
+
+let TargetPrefix = "x86" in { // All intrinsics start with "llvm.x86.".
+ def int_x86_sse_subps : GCCBuiltin<"__builtin_ia32_subps">,
+ Intrinsic<[llvm_v4f32_ty, llvm_v4f32_ty,
+ llvm_v4f32_ty], [InstrNoMem]>;
+}
+
+let TargetPrefix = "x86" in { // All intrinsics start with "llvm.x86.".
+ def int_x86_sse_mulss : GCCBuiltin<"__builtin_ia32_mulss">,
+ Intrinsic<[llvm_float_ty, llvm_float_ty,
+ llvm_float_ty], [InstrNoMem]>;
+}
+
+let TargetPrefix = "x86" in { // All intrinsics start with "llvm.x86.".
+ def int_x86_sse_mulps : GCCBuiltin<"__builtin_ia32_mulps">,
+ Intrinsic<[llvm_v4f32_ty, llvm_v4f32_ty,
+ llvm_v4f32_ty], [InstrNoMem]>;
+}
+
+let TargetPrefix = "x86" in { // All intrinsics start with "llvm.x86.".
+ def int_x86_sse_divss : GCCBuiltin<"__builtin_ia32_divss">,
+ Intrinsic<[llvm_float_ty, llvm_float_ty,
+ llvm_float_ty], [InstrNoMem]>;
+}
+
+let TargetPrefix = "x86" in { // All intrinsics start with "llvm.x86.".
+ def int_x86_sse_divps : GCCBuiltin<"__builtin_ia32_divps">,
+ Intrinsic<[llvm_v4f32_ty, llvm_v4f32_ty,
+ llvm_v4f32_ty], [InstrNoMem]>;
+}
+
+let TargetPrefix = "x86" in { // All intrinsics start with "llvm.x86.".
+ def int_x86_sse_sqrtss : GCCBuiltin<"__builtin_ia32_sqrtss">,
+ Intrinsic<[llvm_float_ty, llvm_float_ty,
+ llvm_float_ty], [InstrNoMem]>;
+}
+
+let TargetPrefix = "x86" in { // All intrinsics start with "llvm.x86.".
+ def int_x86_sse_sqrtps : GCCBuiltin<"__builtin_ia32_sqrtps">,
+ Intrinsic<[llvm_v4f32_ty, llvm_v4f32_ty,
+ llvm_v4f32_ty], [InstrNoMem]>;
+}
+
+let TargetPrefix = "x86" in { // All intrinsics start with "llvm.x86.".
+ def int_x86_sse_rcpss : GCCBuiltin<"__builtin_ia32_rcpss">,
+ Intrinsic<[llvm_float_ty, llvm_float_ty,
+ llvm_float_ty], [InstrNoMem]>;
+}
+
+let TargetPrefix = "x86" in { // All intrinsics start with "llvm.x86.".
+ def int_x86_sse_rcpps : GCCBuiltin<"__builtin_ia32_rcpps">,
+ Intrinsic<[llvm_v4f32_ty, llvm_v4f32_ty,
+ llvm_v4f32_ty], [InstrNoMem]>;
+}
+
+let TargetPrefix = "x86" in { // All intrinsics start with "llvm.x86.".
+ def int_x86_sse_rsqrtss : GCCBuiltin<"__builtin_ia32_rsqrtss">,
+ Intrinsic<[llvm_float_ty, llvm_float_ty,
+ llvm_float_ty], [InstrNoMem]>;
+}
+
+let TargetPrefix = "x86" in { // All intrinsics start with "llvm.x86.".
+ def int_x86_sse_rsqrtps : GCCBuiltin<"__builtin_ia32_rsqrtps">,
+ Intrinsic<[llvm_v4f32_ty, llvm_v4f32_ty,
+ llvm_v4f32_ty], [InstrNoMem]>;
+}
+
+let TargetPrefix = "x86" in { // All intrinsics start with "llvm.x86.".
+ def int_x86_sse_minss : GCCBuiltin<"__builtin_ia32_minss">,
+ Intrinsic<[llvm_float_ty, llvm_float_ty,
+ llvm_float_ty], [InstrNoMem]>;
+}
+
+let TargetPrefix = "x86" in { // All intrinsics start with "llvm.x86.".
+ def int_x86_sse_minps : GCCBuiltin<"__builtin_ia32_minps">,
+ Intrinsic<[llvm_v4f32_ty, llvm_v4f32_ty,
+ llvm_v4f32_ty], [InstrNoMem]>;
+}
+
+let TargetPrefix = "x86" in { // All intrinsics start with "llvm.x86.".
+ def int_x86_sse_maxss : GCCBuiltin<"__builtin_ia32_maxss">,
+ Intrinsic<[llvm_float_ty, llvm_float_ty,
+ llvm_float_ty], [InstrNoMem]>;
+}
+
+let TargetPrefix = "x86" in { // All intrinsics start with "llvm.x86.".
+ def int_x86_sse_maxps : GCCBuiltin<"__builtin_ia32_maxps">,
+ Intrinsic<[llvm_v4f32_ty, llvm_v4f32_ty,
+ llvm_v4f32_ty], [InstrNoMem]>;
+}
+
+// Logical
+let TargetPrefix = "x86" in { // All intrinsics start with "llvm.x86.".
+ def int_x86_sse_andps : GCCBuiltin<"__builtin_ia32_andps">,
+ Intrinsic<[llvm_v4f32_ty, llvm_v4f32_ty,
+ llvm_v4f32_ty], [InstrNoMem]>;
+}
+
+let TargetPrefix = "x86" in { // All intrinsics start with "llvm.x86.".
+ def int_x86_sse_andnotps : GCCBuiltin<"__builtin_ia32_andnotps">,
+ Intrinsic<[llvm_v4f32_ty, llvm_v4f32_ty,
+ llvm_v4f32_ty], [InstrNoMem]>;
+}
+
+let TargetPrefix = "x86" in { // All intrinsics start with "llvm.x86.".
+ def int_x86_sse_orps : GCCBuiltin<"__builtin_ia32_orps">,
+ Intrinsic<[llvm_v4f32_ty, llvm_v4f32_ty,
+ llvm_v4f32_ty], [InstrNoMem]>;
+}
+
+let TargetPrefix = "x86" in { // All intrinsics start with "llvm.x86.".
+ def int_x86_sse_xorps : GCCBuiltin<"__builtin_ia32_xorps">,
+ Intrinsic<[llvm_v4f32_ty, llvm_v4f32_ty,
+ llvm_v4f32_ty], [InstrNoMem]>;
+}
+
+
let TargetPrefix = "x86" in { // All intrinsics start with "llvm.x86.".
def int_x86_sse_movmskps : GCCBuiltin<"__builtin_ia32_movmskps">,
Intrinsic<[llvm_int_ty, llvm_v4f32_ty], [InstrNoMem]>;