<div class="gmail_quote">On Tue, Jan 3, 2012 at 12:00 PM, Jan Sjodin <span dir="ltr"><<a href="mailto:jan_sjodin@yahoo.com">jan_sjodin@yahoo.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<div class="im">>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>