<html><body><div style="color:#000; background-color:#fff; font-family:arial, helvetica, sans-serif;font-size:10pt"><div><span>Finally got back to fixing this. I fixed the memops and refactored most patterns to include the intrinsics, not sure how to do vpcom and vpcmov so I kept them as-is. Added memory access tests for each unique kind of instruction for the intrinsics.</span></div><div><br><span></span></div><div><span>- Jan<br></span></div><div><br><blockquote style="border-left: 2px solid rgb(16, 16, 255); margin-left: 5px; margin-top: 5px; padding-left: 5px;">  <div style="font-family: arial, helvetica, sans-serif; font-size: 10pt;"> <div style="font-family: times new roman, new york, times, serif; font-size: 12pt;"> <font face="Arial" size="2"> <hr size="1">  <b><span style="font-weight:bold;">From:</span></b> Craig Topper <craig.topper@gmail.com><br> <b><span style="font-weight: bold;">To:</span></b> Jan Sjodin <jan_sjodin@yahoo.com>
 <br><b><span style="font-weight: bold;">Cc:</span></b> "llvm-commits@cs.uiuc.edu" <llvm-commits@cs.uiuc.edu> <br> <b><span style="font-weight: bold;">Sent:</span></b> Tuesday, January 3, 2012 4:23 PM<br> <b><span style="font-weight: bold;">Subject:</span></b> Re: [llvm-commits] XOP Intrinsics patch<br> </font> <br>
<div id="yiv1703924338"><div class="yiv1703924338gmail_quote">On Tue, Jan 3, 2012 at 12:00 PM, Jan Sjodin <span dir="ltr"><<a rel="nofollow" ymailto="mailto:jan_sjodin@yahoo.com" target="_blank" href="mailto:jan_sjodin@yahoo.com">jan_sjodin@yahoo.com</a>></span> wrote:<br><blockquote class="yiv1703924338gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;">
<div class="yiv1703924338im">>All integer vector loads in patterns need to be memopv2i64(!28-bit) or memopv4i64(256-bit) and bitcasted to the correct type because all integer vector loads are promoted to v2i64 or v4i64. So for instance<br>

<br>
><br>
>+def : Pat<(int_x86_xop_vphsubwd (alignedloadv8i16 addr:$src1)),<br>
>+          (VPHSUBWDrm addr:$src1)>;<br>
><br>
>Needs to be<br>
><br>
>+def : Pat<(int_x86_xop_vphsubwd (bc_v8i16 (memopv2i64 addr:$src1))),<br>
>+          (VPHSUBWDrm addr:$src1)>;<br>
><br>
<br>
</div>If the promotion always happens, maybe it would be best to remove patterns like:<br>
<br>
def memopv8i16 : PatFrag<(ops node:$ptr), (v8i16 (memop node:$ptr))>;<br>
def memopv16i8 : PatFrag<(ops node:$ptr), (v16i8 (memop node:$ptr))>;<br>
<br>
<br>
- Jan<br>
<br>
</blockquote></div><br>I had meant to do that after I was sure they were all gone. I'll try to check on that tonight and see if they can be removed now.<br clear="all"><br>-- <br>~Craig<br>
</div><br><br> </div> </div> </blockquote></div>   </div></body></html>