[llvm-commits] [llvm] r102199 - in /llvm/trunk: lib/Target/X86/X86InstrMMX.td test/CodeGen/X86/mmx-movdq2q1.ll test/CodeGen/X86/mmx-movdq2q2.ll test/CodeGen/X86/mmx-movdq2q3.ll test/CodeGen/X86/mmx-movdq2q4.ll

Chris Lattner clattner at apple.com
Fri Apr 23 14:16:20 PDT 2010


On Apr 23, 2010, at 12:03 PM, Stuart Hastings wrote:

> Author: stuart
> Date: Fri Apr 23 14:03:32 2010
> New Revision: 102199
> 
> URL: http://llvm.org/viewvc/llvm-project?rev=102199&view=rev
> Log:
> Add some missing x86 patterns for movdq2q.  Fixes two (LLVM-)GCC DejaGNU testcases.  Radar 6881029.

Nice  Stuart!  Please merge the tests together into one .ll file and use filecheck instead of grep, thanks.

-Chris

> 
> Added:
>    llvm/trunk/test/CodeGen/X86/mmx-movdq2q1.ll
>    llvm/trunk/test/CodeGen/X86/mmx-movdq2q2.ll
>    llvm/trunk/test/CodeGen/X86/mmx-movdq2q3.ll
>    llvm/trunk/test/CodeGen/X86/mmx-movdq2q4.ll
> Modified:
>    llvm/trunk/lib/Target/X86/X86InstrMMX.td
> 
> Modified: llvm/trunk/lib/Target/X86/X86InstrMMX.td
> URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Target/X86/X86InstrMMX.td?rev=102199&r1=102198&r2=102199&view=diff
> ==============================================================================
> --- llvm/trunk/lib/Target/X86/X86InstrMMX.td (original)
> +++ llvm/trunk/lib/Target/X86/X86InstrMMX.td Fri Apr 23 14:03:32 2010
> @@ -167,6 +167,9 @@
> def MMX_MOVQ2FR64rr: SSDIi8<0xD6, MRMSrcReg, (outs FR64:$dst), (ins VR64:$src),
>                            "movq2dq\t{$src, $dst|$dst, $src}", []>;
> 
> +def MMX_MOVFR642Qrr: SSDIi8<0xD6, MRMSrcReg, (outs VR64:$dst), (ins FR64:$src),
> +                           "movdq2q\t{$src, $dst|$dst, $src}", []>;
> +
> def MMX_MOVNTQmr  : MMXI<0xE7, MRMDestMem, (outs), (ins i64mem:$dst, VR64:$src),
>                          "movntq\t{$src, $dst|$dst, $src}",
>                          [(int_x86_mmx_movnt_dq addr:$dst, VR64:$src)]>;
> @@ -569,6 +572,14 @@
>           (MMX_MOVQ2FR64rr VR64:$src)>;
> def : Pat<(f64 (bitconvert (v8i8 VR64:$src))),
>           (MMX_MOVQ2FR64rr VR64:$src)>;
> +def : Pat<(v1i64 (bitconvert (f64 FR64:$src))),
> +          (MMX_MOVFR642Qrr FR64:$src)>;
> +def : Pat<(v2i32 (bitconvert (f64 FR64:$src))),
> +          (MMX_MOVFR642Qrr FR64:$src)>;
> +def : Pat<(v4i16 (bitconvert (f64 FR64:$src))),
> +          (MMX_MOVFR642Qrr FR64:$src)>;
> +def : Pat<(v8i8 (bitconvert (f64 FR64:$src))),
> +          (MMX_MOVFR642Qrr FR64:$src)>;
> 
> let AddedComplexity = 20 in {
>   def : Pat<(v2i32 (X86vzmovl (bc_v2i32 (load_mmx addr:$src)))),
> 
> Added: llvm/trunk/test/CodeGen/X86/mmx-movdq2q1.ll
> URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/CodeGen/X86/mmx-movdq2q1.ll?rev=102199&view=auto
> ==============================================================================
> --- llvm/trunk/test/CodeGen/X86/mmx-movdq2q1.ll (added)
> +++ llvm/trunk/test/CodeGen/X86/mmx-movdq2q1.ll Fri Apr 23 14:03:32 2010
> @@ -0,0 +1,9 @@
> +; RUN: llc < %s -mtriple=x86_64-apple-darwin -mattr=+mmx,+sse2 | grep movdq2q | count 2
> +define void @t2(double %a, double %b) nounwind {
> +entry:
> +        %tmp1 = bitcast double %a to <2 x i32>
> +        %tmp2 = bitcast double %b to <2 x i32>
> +        %tmp3 = add <2 x i32> %tmp1, %tmp2
> +        store <2 x i32> %tmp3, <2 x i32>* null
> +        ret void
> +}
> 
> Added: llvm/trunk/test/CodeGen/X86/mmx-movdq2q2.ll
> URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/CodeGen/X86/mmx-movdq2q2.ll?rev=102199&view=auto
> ==============================================================================
> --- llvm/trunk/test/CodeGen/X86/mmx-movdq2q2.ll (added)
> +++ llvm/trunk/test/CodeGen/X86/mmx-movdq2q2.ll Fri Apr 23 14:03:32 2010
> @@ -0,0 +1,9 @@
> +; RUN: llc < %s -mtriple=x86_64-apple-darwin -mattr=+mmx,+sse2 | grep movdq2q | count 2
> +define void @t2(double %a, double %b) nounwind {
> +entry:
> +        %tmp1 = bitcast double %a to <4 x i16>
> +        %tmp2 = bitcast double %b to <4 x i16>
> +        %tmp3 = add <4 x i16> %tmp1, %tmp2
> +        store <4 x i16> %tmp3, <4 x i16>* null
> +        ret void
> +}
> 
> Added: llvm/trunk/test/CodeGen/X86/mmx-movdq2q3.ll
> URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/CodeGen/X86/mmx-movdq2q3.ll?rev=102199&view=auto
> ==============================================================================
> --- llvm/trunk/test/CodeGen/X86/mmx-movdq2q3.ll (added)
> +++ llvm/trunk/test/CodeGen/X86/mmx-movdq2q3.ll Fri Apr 23 14:03:32 2010
> @@ -0,0 +1,9 @@
> +; RUN: llc < %s -mtriple=x86_64-apple-darwin -mattr=+mmx,+sse2 | grep movdq2q | count 2
> +define void @t2(double %a, double %b) nounwind {
> +entry:
> +        %tmp1 = bitcast double %a to <8 x i8>
> +        %tmp2 = bitcast double %b to <8 x i8>
> +        %tmp3 = add <8 x i8> %tmp1, %tmp2
> +        store <8 x i8> %tmp3, <8 x i8>* null
> +        ret void
> +}
> 
> Added: llvm/trunk/test/CodeGen/X86/mmx-movdq2q4.ll
> URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/CodeGen/X86/mmx-movdq2q4.ll?rev=102199&view=auto
> ==============================================================================
> --- llvm/trunk/test/CodeGen/X86/mmx-movdq2q4.ll (added)
> +++ llvm/trunk/test/CodeGen/X86/mmx-movdq2q4.ll Fri Apr 23 14:03:32 2010
> @@ -0,0 +1,9 @@
> +; RUN: llc < %s -mtriple=x86_64-apple-darwin -mattr=+mmx,+sse2 | grep movdq2q | count 2
> +define void @t2(double %a, double %b) nounwind {
> +entry:
> +        %tmp1 = bitcast double %a to <1 x i64>
> +        %tmp2 = bitcast double %b to <1 x i64>
> +        %tmp3 = add <1 x i64> %tmp1, %tmp2
> +        store <1 x i64> %tmp3, <1 x i64>* null
> +        ret void
> +}
> 
> 
> _______________________________________________
> 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