I'm really confused by this mail. Here's the copy of test2 in sse2.ll from the current tree. It correctly has a movhpd in it. It looks like its been this way for a long time too.<br><br>define void @test2(<2 x double>* %r, <2 x double>* %A, double %B) nounwind  {<br>
    %tmp3 = load <2 x double>* %A, align 16<br>    %tmp7 = insertelement <2 x double> undef, double %B, i32 0<br>    %tmp9 = shufflevector <2 x double> %tmp3, <2 x double> %tmp7, <2 x i32> < i32 0, i32 2 ><br>
    store <2 x double> %tmp9, <2 x double>* %r, align 16<br>    ret void<br>        <br>; CHECK: test2:<br>; CHECK:     movl    8(%esp), %eax<br>; CHECK-NEXT:     movapd    (%eax), %xmm0<br>; CHECK-NEXT:     movhpd    12(%esp), %xmm0<br>
; CHECK-NEXT:     movl    4(%esp), %eax<br>; CHECK-NEXT:     movapd    %xmm0, (%eax)<br>; CHECK-NEXT:     ret<br>}<br><br><div class="gmail_quote">On Sun, Apr 15, 2012 at 5:33 AM, Badouh, Asaf <span dir="ltr"><<a href="mailto:asaf.badouh@intel.com">asaf.badouh@intel.com</a>></span> wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">





<div link="blue" vlink="purple" lang="EN-US">
<div>
<p><span style="font-size:12.0pt;color:#365f91">Bug description: merging two vector (2 x double)  into one vector where the first component is A.1 and the second is B.1 gave a vector with (A.1, undef) in corei7, the correct output should
 be (A.1, B.1).<u></u><u></u></span></p>
<p><span style="font-size:12.0pt;color:#365f91"><u></u> <u></u></span></p>
<p><span style="font-size:12.0pt;color:#365f91">The lit test that related to this issue need to be update:<u></u><u></u></span></p>
<p><span style="font-size:12.0pt;color:#365f91">(llvm\test\CodeGen\X86\sse2.ll)<u></u><u></u></span></p>
<p><span style="font-size:12.0pt;color:#365f91"><u></u> <u></u></span></p>
<p><span style="font-size:12.0pt;color:#365f91">define void @test2(<2 x double>* %r, <2 x double>* %A, double %B) nounwind  {<u></u><u></u></span></p>
<p><span style="font-size:12.0pt;color:#365f91">     %tmp3 = load <2 x double>* %A, align 16<u></u><u></u></span></p>
<p><span style="font-size:12.0pt;color:#365f91">     %tmp7 = insertelement <2 x double> undef, double %B, i32 0<u></u><u></u></span></p>
<p><span style="font-size:12.0pt;color:#365f91">     %tmp9 = shufflevector <2 x double> %tmp3, <2 x double> %tmp7, <2 x i32> < i32 0, i32 2 ><u></u><u></u></span></p>
<p><span style="font-size:12.0pt;color:#365f91">     store <2 x double> %tmp9, <2 x double>* %r, align 16<u></u><u></u></span></p>
<p><span style="font-size:12.0pt;color:#365f91">     ret void<u></u><u></u></span></p>
<p><span style="font-size:12.0pt;color:#365f91">        <u></u>
<u></u></span></p>
<p><span style="font-size:12.0pt;color:#365f91">; CHECK: test2:<u></u><u></u></span></p>
<p><span style="font-size:12.0pt;color:#365f91">; CHECK:       movsd   12(%esp), %xmm0<u></u><u></u></span></p>
<p><span style="font-size:12.0pt;color:#365f91">; CHECK-NEXT:   movl    8(%esp), %eax<u></u><u></u></span></p>
<p><span style="font-size:12.0pt;color:#365f91">; CHECK-NEXT:   movlpd  (%eax), %xmm0<u></u><u></u></span></p>
<p><span style="font-size:12.0pt;color:#365f91">; CHECK-NEXT:   movl    4(%esp), %eax<u></u><u></u></span></p>
<p><span style="font-size:12.0pt;color:#365f91">; CHECK-NEXT:   movapd  %xmm0, (%eax)<u></u><u></u></span></p>
<p><span style="font-size:12.0pt;color:#365f91">; CHECK-NEXT:   ret<u></u><u></u></span></p>
<p><span style="font-size:12.0pt;color:#365f91">}<u></u><u></u></span></p>
<p class="MsoNormal"><span style="font-size:12.0pt;color:#365f91"><u></u> <u></u></span></p>
<p class="MsoNormal"><span style="font-size:12.0pt;color:#365f91">The correct code that need to be generate is:<u></u><u></u></span></p>
<p class="MsoNormal"><span style="font-size:12.0pt;color:#365f91"><u></u> <u></u></span></p>
<p class="MsoNormal"><span style="font-size:12.0pt;color:#365f91">; CHECK: test2:<u></u><u></u></span></p>
<p class="MsoNormal"><span style="font-size:12.0pt;color:#365f91">; CHECK:                      movl    8(%esp), %eax<u></u><u></u></span></p>
<p class="MsoNormal"><span style="font-size:12.0pt;color:#365f91">; CHECK-NEXT:            movapd  (%eax), %xmm0<u></u><u></u></span></p>
<p class="MsoNormal"><span style="font-size:12.0pt;color:#365f91">; CHECK-NEXT:            movhpd  12(%esp), %xmm0<u></u><u></u></span></p>
<p class="MsoNormal"><span style="font-size:12.0pt;color:#365f91">; CHECK-NEXT:            movl    4(%esp), %eax<u></u><u></u></span></p>
<p class="MsoNormal"><span style="font-size:12.0pt;color:#365f91">; CHECK-NEXT:            movapd  %xmm0, (%eax)<u></u><u></u></span></p>
<p class="MsoNormal"><span style="font-size:12.0pt;color:#365f91">; CHECK-NEXT:            ret<u></u><u></u></span></p>
<p class="MsoNormal"><span style="font-size:12.0pt;color:#365f91"><u></u> <u></u></span></p>
<p class="MsoNormal"><span style="font-size:12.0pt;color:#365f91"><u></u> <u></u></span></p>
<p class="MsoNormal"><span style="font-size:12.0pt;color:#365f91"><u></u> <u></u></span></p>
<p class="MsoNormal"><b><i><span style="font-size:12.0pt;color:#548dd4">Thanks,<u></u><u></u></span></i></b></p>
<p class="MsoNormal"><b><i><span style="font-size:12.0pt;color:#548dd4">Asaf<u></u><u></u></span></i></b></p>
<p class="MsoNormal"><u></u> <u></u></p>
</div>
<font face="monospace">---------------------------------------------------------------------<br>
Intel Israel (74) Limited<br>
<br>
This e-mail and any attachments may contain confidential material for<br>
the sole use of the intended recipient(s). Any review or distribution<br>
by others is strictly prohibited. If you are not the intended<br>
recipient, please contact the sender and delete all copies.</font></div>

<br>_______________________________________________<br>
llvm-commits mailing list<br>
<a href="mailto:llvm-commits@cs.uiuc.edu">llvm-commits@cs.uiuc.edu</a><br>
<a href="http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits" target="_blank">http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits</a><br>
<br></blockquote></div><br><br clear="all"><br>-- <br>~Craig<br>