[llvm-commits] CVS: llvm/include/llvm/IntrinsicsX86.td

Evan Cheng evan.cheng at apple.com
Tue Mar 28 22:07:27 PST 2006



Changes in directory llvm/include/llvm:

IntrinsicsX86.td updated: 1.2 -> 1.3
---
Log message:

Add more SSE intrinsics

---
Diffs of the changes:  (+118 -94)

 IntrinsicsX86.td |  212 ++++++++++++++++++++++++++++++-------------------------
 1 files changed, 118 insertions(+), 94 deletions(-)


Index: llvm/include/llvm/IntrinsicsX86.td
diff -u llvm/include/llvm/IntrinsicsX86.td:1.2 llvm/include/llvm/IntrinsicsX86.td:1.3
--- llvm/include/llvm/IntrinsicsX86.td:1.2	Mon Mar 27 02:23:12 2006
+++ llvm/include/llvm/IntrinsicsX86.td	Wed Mar 29 00:07:16 2006
@@ -18,73 +18,45 @@
 // Arithmetic ops
 let TargetPrefix = "x86" in {  // All intrinsics start with "llvm.x86.".
   def int_x86_sse_add_ss : GCCBuiltin<"__builtin_ia32_addss">,
-              Intrinsic<[llvm_float_ty, llvm_float_ty,
-                         llvm_float_ty], [InstrNoMem]>;
-  def int_x86_sse_add_ps : GCCBuiltin<"__builtin_ia32_addps">,
               Intrinsic<[llvm_v4f32_ty, llvm_v4f32_ty,
                          llvm_v4f32_ty], [InstrNoMem]>;
   def int_x86_sse_sub_ss : GCCBuiltin<"__builtin_ia32_subss">,
-              Intrinsic<[llvm_float_ty, llvm_float_ty,
-                         llvm_float_ty], [InstrNoMem]>;
-  def int_x86_sse_sub_ps : GCCBuiltin<"__builtin_ia32_subps">,
               Intrinsic<[llvm_v4f32_ty, llvm_v4f32_ty,
                          llvm_v4f32_ty], [InstrNoMem]>;
   def int_x86_sse_mul_ss : GCCBuiltin<"__builtin_ia32_mulss">,
-              Intrinsic<[llvm_float_ty, llvm_float_ty,
-                         llvm_float_ty], [InstrNoMem]>;
-  def int_x86_sse_mul_ps : GCCBuiltin<"__builtin_ia32_mulps">,
               Intrinsic<[llvm_v4f32_ty, llvm_v4f32_ty,
                          llvm_v4f32_ty], [InstrNoMem]>;
   def int_x86_sse_div_ss : GCCBuiltin<"__builtin_ia32_divss">,
-              Intrinsic<[llvm_float_ty, llvm_float_ty,
-                         llvm_float_ty], [InstrNoMem]>;
-  def int_x86_sse_div_ps : GCCBuiltin<"__builtin_ia32_divps">,
               Intrinsic<[llvm_v4f32_ty, llvm_v4f32_ty,
                          llvm_v4f32_ty], [InstrNoMem]>;
   def int_x86_sse_sqrt_ss : GCCBuiltin<"__builtin_ia32_sqrtss">,
-              Intrinsic<[llvm_float_ty, llvm_float_ty,
-                         llvm_float_ty], [InstrNoMem]>;
+              Intrinsic<[llvm_v4f32_ty, llvm_v4f32_ty],
+                        [InstrNoMem]>;
   def int_x86_sse_sqrt_ps : GCCBuiltin<"__builtin_ia32_sqrtps">,
-              Intrinsic<[llvm_v4f32_ty, llvm_v4f32_ty,
-                         llvm_v4f32_ty], [InstrNoMem]>;
+              Intrinsic<[llvm_v4f32_ty, llvm_v4f32_ty],
+                        [InstrNoMem]>;
   def int_x86_sse_rcp_ss : GCCBuiltin<"__builtin_ia32_rcpss">,
-              Intrinsic<[llvm_float_ty, llvm_float_ty,
-                         llvm_float_ty], [InstrNoMem]>;
+              Intrinsic<[llvm_v4f32_ty, llvm_v4f32_ty],
+                        [InstrNoMem]>;
   def int_x86_sse_rcp_ps : GCCBuiltin<"__builtin_ia32_rcpps">,
-              Intrinsic<[llvm_v4f32_ty, llvm_v4f32_ty,
-                         llvm_v4f32_ty], [InstrNoMem]>;
+              Intrinsic<[llvm_v4f32_ty, llvm_v4f32_ty],
+                        [InstrNoMem]>;
   def int_x86_sse_rsqrt_ss : GCCBuiltin<"__builtin_ia32_rsqrtss">,
-              Intrinsic<[llvm_float_ty, llvm_float_ty,
-                         llvm_float_ty], [InstrNoMem]>;
+              Intrinsic<[llvm_v4f32_ty, llvm_v4f32_ty],
+                        [InstrNoMem]>;
   def int_x86_sse_rsqrt_ps : GCCBuiltin<"__builtin_ia32_rsqrtps">,
+              Intrinsic<[llvm_v4f32_ty, llvm_v4f32_ty],
+                        [InstrNoMem]>;
+  def int_x86_sse_min_ss : GCCBuiltin<"__builtin_ia32_minss">,
               Intrinsic<[llvm_v4f32_ty, llvm_v4f32_ty,
                          llvm_v4f32_ty], [InstrNoMem]>;
-  def int_x86_sse_min_ss : GCCBuiltin<"__builtin_ia32_minss">,
-              Intrinsic<[llvm_float_ty, llvm_float_ty,
-                         llvm_float_ty], [InstrNoMem]>;
   def int_x86_sse_min_ps : GCCBuiltin<"__builtin_ia32_minps">,
               Intrinsic<[llvm_v4f32_ty, llvm_v4f32_ty,
                          llvm_v4f32_ty], [InstrNoMem]>;
   def int_x86_sse_max_ss : GCCBuiltin<"__builtin_ia32_maxss">,
-              Intrinsic<[llvm_float_ty, llvm_float_ty,
-                         llvm_float_ty], [InstrNoMem]>;
-  def int_x86_sse_max_ps : GCCBuiltin<"__builtin_ia32_maxps">,
               Intrinsic<[llvm_v4f32_ty, llvm_v4f32_ty,
                          llvm_v4f32_ty], [InstrNoMem]>;
-}
-
-// Logical ops
-let TargetPrefix = "x86" in {  // All intrinsics start with "llvm.x86.".
-  def int_x86_sse_and_ps : GCCBuiltin<"__builtin_ia32_andps">,
-              Intrinsic<[llvm_v4f32_ty, llvm_v4f32_ty,
-                         llvm_v4f32_ty], [InstrNoMem]>;
-  def int_x86_sse_andnot_ps : GCCBuiltin<"__builtin_ia32_andnotps">,
-              Intrinsic<[llvm_v4f32_ty, llvm_v4f32_ty,
-                         llvm_v4f32_ty], [InstrNoMem]>;
-  def int_x86_sse_or_ps : GCCBuiltin<"__builtin_ia32_orps">,
-              Intrinsic<[llvm_v4f32_ty, llvm_v4f32_ty,
-                         llvm_v4f32_ty], [InstrNoMem]>;
-  def int_x86_sse_xor_ps : GCCBuiltin<"__builtin_ia32_xorps">,
+  def int_x86_sse_max_ps : GCCBuiltin<"__builtin_ia32_maxps">,
               Intrinsic<[llvm_v4f32_ty, llvm_v4f32_ty,
                          llvm_v4f32_ty], [InstrNoMem]>;
 }
@@ -92,128 +64,128 @@
 // Comparison ops
 let TargetPrefix = "x86" in {  // All intrinsics start with "llvm.x86.".
   def int_x86_sse_cmpeq_ss : GCCBuiltin<"__builtin_ia32_cmpeqss">,
-              Intrinsic<[llvm_float_ty, llvm_float_ty,
+              Intrinsic<[llvm_v4f32_ty, llvm_v4f32_ty,
                          llvm_v4f32_ty], [InstrNoMem]>;
   def int_x86_sse_cmpeq_ps : GCCBuiltin<"__builtin_ia32_cmpeqps">,
               Intrinsic<[llvm_v4f32_ty, llvm_v4f32_ty,
                          llvm_v4f32_ty], [InstrNoMem]>;
   def int_x86_sse_cmplt_ss : GCCBuiltin<"__builtin_ia32_cmpltss">,
-              Intrinsic<[llvm_float_ty, llvm_float_ty,
-                         llvm_float_ty], [InstrNoMem]>;
+              Intrinsic<[llvm_v4f32_ty, llvm_v4f32_ty,
+                         llvm_v4f32_ty], [InstrNoMem]>;
   def int_x86_sse_cmplt_ps : GCCBuiltin<"__builtin_ia32_cmpltps">,
               Intrinsic<[llvm_v4f32_ty, llvm_v4f32_ty,
                          llvm_v4f32_ty], [InstrNoMem]>;
   def int_x86_sse_cmple_ss : GCCBuiltin<"__builtin_ia32_cmpless">,
-              Intrinsic<[llvm_float_ty, llvm_float_ty,
-                         llvm_float_ty], [InstrNoMem]>;
+              Intrinsic<[llvm_v4f32_ty, llvm_v4f32_ty,
+                         llvm_v4f32_ty], [InstrNoMem]>;
   def int_x86_sse_cmple_ps : GCCBuiltin<"__builtin_ia32_cmpleps">,
               Intrinsic<[llvm_v4f32_ty, llvm_v4f32_ty,
                          llvm_v4f32_ty], [InstrNoMem]>;
   def int_x86_sse_cmpgt_ss : GCCBuiltin<"__builtin_ia32_cmpgtss">,
-              Intrinsic<[llvm_float_ty, llvm_float_ty,
-                         llvm_float_ty], [InstrNoMem]>;
+              Intrinsic<[llvm_v4f32_ty, llvm_v4f32_ty,
+                         llvm_v4f32_ty], [InstrNoMem]>;
   def int_x86_sse_cmpgt_ps : GCCBuiltin<"__builtin_ia32_cmpgtps">,
               Intrinsic<[llvm_v4f32_ty, llvm_v4f32_ty,
                          llvm_v4f32_ty], [InstrNoMem]>;
   def int_x86_sse_cmpge_ss : GCCBuiltin<"__builtin_ia32_cmpgess">,
-              Intrinsic<[llvm_float_ty, llvm_float_ty,
-                         llvm_float_ty], [InstrNoMem]>;
+              Intrinsic<[llvm_v4f32_ty, llvm_v4f32_ty,
+                         llvm_v4f32_ty], [InstrNoMem]>;
   def int_x86_sse_cmpge_ps : GCCBuiltin<"__builtin_ia32_cmpgeps">,
               Intrinsic<[llvm_v4f32_ty, llvm_v4f32_ty,
                          llvm_v4f32_ty], [InstrNoMem]>;
   def int_x86_sse_cmpneq_ss : GCCBuiltin<"__builtin_ia32_cmpneqss">,
-              Intrinsic<[llvm_float_ty, llvm_float_ty,
-                         llvm_float_ty], [InstrNoMem]>;
+              Intrinsic<[llvm_v4f32_ty, llvm_v4f32_ty,
+                         llvm_v4f32_ty], [InstrNoMem]>;
   def int_x86_sse_cmpneq_ps : GCCBuiltin<"__builtin_ia32_cmpneqps">,
               Intrinsic<[llvm_v4f32_ty, llvm_v4f32_ty,
                          llvm_v4f32_ty], [InstrNoMem]>;
   def int_x86_sse_cmpnlt_ss : GCCBuiltin<"__builtin_ia32_cmpnltss">,
-              Intrinsic<[llvm_float_ty, llvm_float_ty,
-                         llvm_float_ty], [InstrNoMem]>;
+              Intrinsic<[llvm_v4f32_ty, llvm_v4f32_ty,
+                         llvm_v4f32_ty], [InstrNoMem]>;
   def int_x86_sse_cmpnlt_ps : GCCBuiltin<"__builtin_ia32_cmpnltps">,
               Intrinsic<[llvm_v4f32_ty, llvm_v4f32_ty,
                          llvm_v4f32_ty], [InstrNoMem]>;
   def int_x86_sse_cmpnle_ss : GCCBuiltin<"__builtin_ia32_cmpnless">,
-              Intrinsic<[llvm_float_ty, llvm_float_ty,
-                         llvm_float_ty], [InstrNoMem]>;
+              Intrinsic<[llvm_v4f32_ty, llvm_v4f32_ty,
+                         llvm_v4f32_ty], [InstrNoMem]>;
   def int_x86_sse_cmpnle_ps : GCCBuiltin<"__builtin_ia32_cmpnleps">,
               Intrinsic<[llvm_v4f32_ty, llvm_v4f32_ty,
                          llvm_v4f32_ty], [InstrNoMem]>;
   def int_x86_sse_cmpngt_ss : GCCBuiltin<"__builtin_ia32_cmpngtss">,
-              Intrinsic<[llvm_float_ty, llvm_float_ty,
-                         llvm_float_ty], [InstrNoMem]>;
+              Intrinsic<[llvm_v4f32_ty, llvm_v4f32_ty,
+                         llvm_v4f32_ty], [InstrNoMem]>;
   def int_x86_sse_cmpngt_ps : GCCBuiltin<"__builtin_ia32_cmpngtps">,
               Intrinsic<[llvm_v4f32_ty, llvm_v4f32_ty,
                          llvm_v4f32_ty], [InstrNoMem]>;
   def int_x86_sse_cmpnge_ss : GCCBuiltin<"__builtin_ia32_cmpngess">,
-              Intrinsic<[llvm_float_ty, llvm_float_ty,
-                         llvm_float_ty], [InstrNoMem]>;
+              Intrinsic<[llvm_v4f32_ty, llvm_v4f32_ty,
+                         llvm_v4f32_ty], [InstrNoMem]>;
   def int_x86_sse_cmpnge_ps : GCCBuiltin<"__builtin_ia32_cmpngeps">,
               Intrinsic<[llvm_v4f32_ty, llvm_v4f32_ty,
                          llvm_v4f32_ty], [InstrNoMem]>;
   def int_x86_sse_cmpord_ss : GCCBuiltin<"__builtin_ia32_cmpordss">,
-              Intrinsic<[llvm_float_ty, llvm_float_ty,
-                         llvm_float_ty], [InstrNoMem]>;
+              Intrinsic<[llvm_v4f32_ty, llvm_v4f32_ty,
+                         llvm_v4f32_ty], [InstrNoMem]>;
   def int_x86_sse_cmpord_ps : GCCBuiltin<"__builtin_ia32_cmpordps">,
               Intrinsic<[llvm_v4f32_ty, llvm_v4f32_ty,
                          llvm_v4f32_ty], [InstrNoMem]>;
   def int_x86_sse_cmpunord_ss : GCCBuiltin<"__builtin_ia32_cmpunordss">,
-              Intrinsic<[llvm_float_ty, llvm_float_ty,
-                         llvm_float_ty], [InstrNoMem]>;
+              Intrinsic<[llvm_v4f32_ty, llvm_v4f32_ty,
+                         llvm_v4f32_ty], [InstrNoMem]>;
   def int_x86_sse_cmpunord_ps : GCCBuiltin<"__builtin_ia32_cmpunordps">,
               Intrinsic<[llvm_v4f32_ty, llvm_v4f32_ty,
                          llvm_v4f32_ty], [InstrNoMem]>;
   def int_x86_sse_comieq_ss : GCCBuiltin<"__builtin_ia32_comieq">,
-              Intrinsic<[llvm_int_ty, llvm_float_ty,
-                         llvm_float_ty], [InstrNoMem]>;
+              Intrinsic<[llvm_int_ty, llvm_v4f32_ty,
+                         llvm_v4f32_ty], [InstrNoMem]>;
   def int_x86_sse_comilt_ss : GCCBuiltin<"__builtin_ia32_comilt">,
-              Intrinsic<[llvm_int_ty, llvm_float_ty,
-                         llvm_float_ty], [InstrNoMem]>;
+              Intrinsic<[llvm_int_ty, llvm_v4f32_ty,
+                         llvm_v4f32_ty], [InstrNoMem]>;
   def int_x86_sse_comile_ss : GCCBuiltin<"__Builtin_ia32_comile">,
-              Intrinsic<[llvm_int_ty, llvm_float_ty,
-                         llvm_float_ty], [InstrNoMem]>;
+              Intrinsic<[llvm_int_ty, llvm_v4f32_ty,
+                         llvm_v4f32_ty], [InstrNoMem]>;
   def int_x86_sse_comigt_ss : GCCBuiltin<"__builtin_ia32_comigt">,
-              Intrinsic<[llvm_int_ty, llvm_float_ty,
-                         llvm_float_ty], [InstrNoMem]>;
+              Intrinsic<[llvm_int_ty, llvm_v4f32_ty,
+                         llvm_v4f32_ty], [InstrNoMem]>;
   def int_x86_sse_comige_ss : GCCBuiltin<"__builtin_ia32_comige">,
-              Intrinsic<[llvm_int_ty, llvm_float_ty,
-                         llvm_float_ty], [InstrNoMem]>;
+              Intrinsic<[llvm_int_ty, llvm_v4f32_ty,
+                         llvm_v4f32_ty], [InstrNoMem]>;
   def int_x86_sse_comineq_ss : GCCBuiltin<"__builtin_ia32_comineq">,
-              Intrinsic<[llvm_int_ty, llvm_float_ty,
-                         llvm_float_ty], [InstrNoMem]>;
+              Intrinsic<[llvm_int_ty, llvm_v4f32_ty,
+                         llvm_v4f32_ty], [InstrNoMem]>;
   def int_x86_sse_ucomieq_ss : GCCBuiltin<"__builtin_ia32_ucomieq">,
-              Intrinsic<[llvm_int_ty, llvm_float_ty,
-                         llvm_float_ty], [InstrNoMem]>;
+              Intrinsic<[llvm_int_ty, llvm_v4f32_ty,
+                         llvm_v4f32_ty], [InstrNoMem]>;
   def int_x86_sse_ucomilt_ss : GCCBuiltin<"__builtin_ia32_ucomilt">,
-              Intrinsic<[llvm_int_ty, llvm_float_ty,
-                         llvm_float_ty], [InstrNoMem]>;
+              Intrinsic<[llvm_int_ty, llvm_v4f32_ty,
+                         llvm_v4f32_ty], [InstrNoMem]>;
   def int_x86_sse_ucomile_ss : GCCBuiltin<"__Builtin_ia32_ucomile">,
-              Intrinsic<[llvm_int_ty, llvm_float_ty,
-                         llvm_float_ty], [InstrNoMem]>;
+              Intrinsic<[llvm_int_ty, llvm_v4f32_ty,
+                         llvm_v4f32_ty], [InstrNoMem]>;
   def int_x86_sse_ucomigt_ss : GCCBuiltin<"__builtin_ia32_ucomigt">,
-              Intrinsic<[llvm_int_ty, llvm_float_ty,
-                         llvm_float_ty], [InstrNoMem]>;
+              Intrinsic<[llvm_int_ty, llvm_v4f32_ty,
+                         llvm_v4f32_ty], [InstrNoMem]>;
   def int_x86_sse_ucomige_ss : GCCBuiltin<"__builtin_ia32_ucomige">,
-              Intrinsic<[llvm_int_ty, llvm_float_ty,
-                         llvm_float_ty], [InstrNoMem]>;
+              Intrinsic<[llvm_int_ty, llvm_v4f32_ty,
+                         llvm_v4f32_ty], [InstrNoMem]>;
   def int_x86_sse_ucomineq_ss : GCCBuiltin<"__builtin_ia32_ucomineq">,
-              Intrinsic<[llvm_int_ty, llvm_float_ty,
-                         llvm_float_ty], [InstrNoMem]>;
+              Intrinsic<[llvm_int_ty, llvm_v4f32_ty,
+                         llvm_v4f32_ty], [InstrNoMem]>;
 }
 
 
 // Conversion ops
 let TargetPrefix = "x86" in {  // All intrinsics start with "llvm.x86.".
   def int_x86_sse_cvtss2si : GCCBuiltin<"__builtin_ia32_cvtss2si">,
-              Intrinsic<[llvm_int_ty, llvm_float_ty], [InstrNoMem]>;
+              Intrinsic<[llvm_int_ty, llvm_v4f32_ty], [InstrNoMem]>;
   def int_x86_sse_cvtps2pi : GCCBuiltin<"__builtin_ia32_cvtps2pi">,
               Intrinsic<[llvm_v2i32_ty, llvm_v4i32_ty], [InstrNoMem]>;
   def int_x86_sse_cvttss2si : GCCBuiltin<"__builtin_ia32_cvttss2si">,
-              Intrinsic<[llvm_int_ty, llvm_float_ty], [InstrNoMem]>;
+              Intrinsic<[llvm_int_ty, llvm_v4f32_ty], [InstrNoMem]>;
   def int_x86_sse_cvttps2pi : GCCBuiltin<"__builtin_ia32_cvttps2pi">,
               Intrinsic<[llvm_v2i32_ty, llvm_v4i32_ty], [InstrNoMem]>;
   def int_x86_sse_cvtsi2ss : GCCBuiltin<"__builtin_ia32_cvtsi2ss">,
-              Intrinsic<[llvm_float_ty, llvm_int_ty], [InstrNoMem]>;
+              Intrinsic<[llvm_v4f32_ty, llvm_int_ty], [InstrNoMem]>;
   def int_x86_sse_cvtpi2ps : GCCBuiltin<"__builtin_ia32_cvtpi2ps">,
               Intrinsic<[llvm_v4f32_ty, llvm_v2i32_ty], [InstrNoMem]>;
 }
@@ -250,17 +222,69 @@
               Intrinsic<[llvm_void_ty], [IntrWriteMem]>;
 }
 
+// Control register.
+let TargetPrefix = "x86" in {  // All intrinsics start with "llvm.x86.".
+  def int_x86_sse_stmxcsr : GCCBuiltin<"__builtin_ia32_stmxcsr">,
+              Intrinsic<[llvm_void_ty, llvm_ptr_ty], [IntrWriteMem]>;
+  def int_x86_sse_ldmxcsr : GCCBuiltin<"__builtin_ia32_ldmxcsr">,
+              Intrinsic<[llvm_void_ty, llvm_ptr_ty], [IntrWriteMem]>;
+}
+
 // Misc.
 let TargetPrefix = "x86" in {  // All intrinsics start with "llvm.x86.".
   def int_x86_sse_movmsk_ps : GCCBuiltin<"__builtin_ia32_movmskps">,
               Intrinsic<[llvm_int_ty, llvm_v4f32_ty], [InstrNoMem]>;
-  def int_x86_sse_ldmxcsr : GCCBuiltin<"__builtin_ia32_ldmxcsr">,
-              Intrinsic<[llvm_void_ty, llvm_ptr_ty], [IntrWriteMem]>;
 }
 
 //===----------------------------------------------------------------------===//
 // SSE2
 
+// Arithmetic ops
+let TargetPrefix = "x86" in {  // All intrinsics start with "llvm.x86.".
+  def int_x86_sse2_add_sd : GCCBuiltin<"__builtin_ia32_addsd">,
+              Intrinsic<[llvm_v2f64_ty, llvm_v2f64_ty,
+                         llvm_v2f64_ty], [InstrNoMem]>;
+  def int_x86_sse2_sub_sd : GCCBuiltin<"__builtin_ia32_subsd">,
+              Intrinsic<[llvm_v2f64_ty, llvm_v2f64_ty,
+                         llvm_v2f64_ty], [InstrNoMem]>;
+  def int_x86_sse2_mul_sd : GCCBuiltin<"__builtin_ia32_mulsd">,
+              Intrinsic<[llvm_v2f64_ty, llvm_v2f64_ty,
+                         llvm_v2f64_ty], [InstrNoMem]>;
+  def int_x86_sse2_div_sd : GCCBuiltin<"__builtin_ia32_divsd">,
+              Intrinsic<[llvm_v2f64_ty, llvm_v2f64_ty,
+                         llvm_v2f64_ty], [InstrNoMem]>;
+  def int_x86_sse2_sqrt_sd : GCCBuiltin<"__builtin_ia32_sqrtsd">,
+              Intrinsic<[llvm_v2f64_ty, llvm_v2f64_ty],
+                        [InstrNoMem]>;
+  def int_x86_sse2_sqrt_pd : GCCBuiltin<"__builtin_ia32_sqrtpd">,
+              Intrinsic<[llvm_v2f64_ty, llvm_v2f64_ty],
+                        [InstrNoMem]>;
+  def int_x86_sse2_rcp_sd : GCCBuiltin<"__builtin_ia32_rcpsd">,
+              Intrinsic<[llvm_v2f64_ty, llvm_v2f64_ty],
+                        [InstrNoMem]>;
+  def int_x86_sse2_rcp_pd : GCCBuiltin<"__builtin_ia32_rcppd">,
+              Intrinsic<[llvm_v2f64_ty, llvm_v2f64_ty],
+                        [InstrNoMem]>;
+  def int_x86_sse2_rsqrt_sd : GCCBuiltin<"__builtin_ia32_rsqrtsd">,
+              Intrinsic<[llvm_v2f64_ty, llvm_v2f64_ty],
+                        [InstrNoMem]>;
+  def int_x86_sse2_rsqrt_pd : GCCBuiltin<"__builtin_ia32_rsqrtpd">,
+              Intrinsic<[llvm_v2f64_ty, llvm_v2f64_ty],
+                        [InstrNoMem]>;
+  def int_x86_sse2_min_sd : GCCBuiltin<"__builtin_ia32_minsd">,
+              Intrinsic<[llvm_v2f64_ty, llvm_v2f64_ty,
+                         llvm_v2f64_ty], [InstrNoMem]>;
+  def int_x86_sse2_min_pd : GCCBuiltin<"__builtin_ia32_minpd">,
+              Intrinsic<[llvm_v2f64_ty, llvm_v2f64_ty,
+                         llvm_v2f64_ty], [InstrNoMem]>;
+  def int_x86_sse2_max_sd : GCCBuiltin<"__builtin_ia32_maxsd">,
+              Intrinsic<[llvm_v2f64_ty, llvm_v2f64_ty,
+                         llvm_v2f64_ty], [InstrNoMem]>;
+  def int_x86_sse2_max_pd : GCCBuiltin<"__builtin_ia32_maxpd">,
+              Intrinsic<[llvm_v2f64_ty, llvm_v2f64_ty,
+                         llvm_v2f64_ty], [InstrNoMem]>;
+}
+
 let TargetPrefix = "x86" in {  // All intrinsics start with "llvm.x86.".
   def int_x86_sse2_movmskpd : GCCBuiltin<"__builtin_ia32_movmskpd">,
               Intrinsic<[llvm_int_ty, llvm_v2f64_ty], [InstrNoMem]>;






More information about the llvm-commits mailing list