[llvm-commits] [llvm] r92939 - /llvm/trunk/include/llvm/IntrinsicsX86.td

Evan Cheng evan.cheng at apple.com
Thu Jan 7 11:56:52 PST 2010


On Jan 7, 2010, at 11:47 AM, David Greene wrote:

> Author: greened
> Date: Thu Jan  7 13:47:43 2010
> New Revision: 92939
> 
> URL: http://llvm.org/viewvc/llvm-project?rev=92939&view=rev
> Log:
> 
> Add some "missing" instrinsics to make the SSE intrinsic set a bit more
> orthogonal.

Why do we need them? Frontend should (and llvm-gcc and clang do) lower than to llvm instructions.

Evan

> 
> Modified:
>    llvm/trunk/include/llvm/IntrinsicsX86.td
> 
> Modified: llvm/trunk/include/llvm/IntrinsicsX86.td
> URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/include/llvm/IntrinsicsX86.td?rev=92939&r1=92938&r2=92939&view=diff
> 
> ==============================================================================
> --- llvm/trunk/include/llvm/IntrinsicsX86.td (original)
> +++ llvm/trunk/include/llvm/IntrinsicsX86.td Thu Jan  7 13:47:43 2010
> @@ -20,15 +20,27 @@
>   def int_x86_sse_add_ss : GCCBuiltin<"__builtin_ia32_addss">,
>               Intrinsic<[llvm_v4f32_ty], [llvm_v4f32_ty,
>                          llvm_v4f32_ty], [IntrNoMem]>;
> +  def int_x86_sse_add_ps : GCCBuiltin<"__builtin_ia32_addps">,
> +              Intrinsic<[llvm_v4f32_ty], [llvm_v4f32_ty,
> +                         llvm_v4f32_ty], [IntrNoMem, Commutative]>;
>   def int_x86_sse_sub_ss : GCCBuiltin<"__builtin_ia32_subss">,
>               Intrinsic<[llvm_v4f32_ty], [llvm_v4f32_ty,
>                          llvm_v4f32_ty], [IntrNoMem]>;
> +  def int_x86_sse_sub_ps : GCCBuiltin<"__builtin_ia32_subps">,
> +              Intrinsic<[llvm_v4f32_ty], [llvm_v4f32_ty,
> +                         llvm_v4f32_ty], [IntrNoMem, Commutative]>;
>   def int_x86_sse_mul_ss : GCCBuiltin<"__builtin_ia32_mulss">,
>               Intrinsic<[llvm_v4f32_ty], [llvm_v4f32_ty,
>                          llvm_v4f32_ty], [IntrNoMem]>;
> +  def int_x86_sse_mul_ps : GCCBuiltin<"__builtin_ia32_mulps">,
> +              Intrinsic<[llvm_v4f32_ty], [llvm_v4f32_ty,
> +                         llvm_v4f32_ty], [IntrNoMem, Commutative]>;
>   def int_x86_sse_div_ss : GCCBuiltin<"__builtin_ia32_divss">,
>               Intrinsic<[llvm_v4f32_ty], [llvm_v4f32_ty,
>                          llvm_v4f32_ty], [IntrNoMem]>;
> +  def int_x86_sse_div_ps : GCCBuiltin<"__builtin_ia32_divps">,
> +              Intrinsic<[llvm_v4f32_ty], [llvm_v4f32_ty,
> +                         llvm_v4f32_ty], [IntrNoMem, Commutative]>;
>   def int_x86_sse_sqrt_ss : GCCBuiltin<"__builtin_ia32_sqrtss">,
>               Intrinsic<[llvm_v4f32_ty], [llvm_v4f32_ty],
>                         [IntrNoMem]>;
> @@ -177,15 +189,27 @@
>   def int_x86_sse2_add_sd : GCCBuiltin<"__builtin_ia32_addsd">,
>               Intrinsic<[llvm_v2f64_ty], [llvm_v2f64_ty,
>                          llvm_v2f64_ty], [IntrNoMem]>;
> +  def int_x86_sse2_add_pd : GCCBuiltin<"__builtin_ia32_addpd">,
> +              Intrinsic<[llvm_v2f64_ty], [llvm_v2f64_ty,
> +                         llvm_v2f64_ty], [IntrNoMem, Commutative]>;
>   def int_x86_sse2_sub_sd : GCCBuiltin<"__builtin_ia32_subsd">,
>               Intrinsic<[llvm_v2f64_ty], [llvm_v2f64_ty,
>                          llvm_v2f64_ty], [IntrNoMem]>;
> +  def int_x86_sse2_sub_pd : GCCBuiltin<"__builtin_ia32_subpd">,
> +              Intrinsic<[llvm_v2f64_ty], [llvm_v2f64_ty,
> +                         llvm_v2f64_ty], [IntrNoMem, Commutative]>;
>   def int_x86_sse2_mul_sd : GCCBuiltin<"__builtin_ia32_mulsd">,
>               Intrinsic<[llvm_v2f64_ty], [llvm_v2f64_ty,
>                          llvm_v2f64_ty], [IntrNoMem]>;
> +  def int_x86_sse2_mul_pd : GCCBuiltin<"__builtin_ia32_mulpd">,
> +              Intrinsic<[llvm_v2f64_ty], [llvm_v2f64_ty,
> +                         llvm_v2f64_ty], [IntrNoMem, Commutative]>;
>   def int_x86_sse2_div_sd : GCCBuiltin<"__builtin_ia32_divsd">,
>               Intrinsic<[llvm_v2f64_ty], [llvm_v2f64_ty,
>                          llvm_v2f64_ty], [IntrNoMem]>;
> +  def int_x86_sse2_div_pd : GCCBuiltin<"__builtin_ia32_divpd">,
> +              Intrinsic<[llvm_v2f64_ty], [llvm_v2f64_ty,
> +                         llvm_v2f64_ty], [IntrNoMem, Commutative]>;
>   def int_x86_sse2_sqrt_sd : GCCBuiltin<"__builtin_ia32_sqrtsd">,
>               Intrinsic<[llvm_v2f64_ty], [llvm_v2f64_ty],
>                         [IntrNoMem]>;
> 
> 
> _______________________________________________
> llvm-commits mailing list
> llvm-commits at cs.uiuc.edu
> http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits





More information about the llvm-commits mailing list