<div dir="ltr">Hi Matt,<br><br><div>I tried debug-only=isel and have some more informations. </div><div>The steps before 'Legalized selection'( excluding it) all use v2i32 load. At the step of 'Legalized selection', it replaced one v2i32 load by two i32 load + shl+ or + bitcast (I have a pattern for convert from v2i32 to 2*i32). In previous steps (initial, lowered, type-legalized), they all use v2i32 load. </div><div>Can you please think of any other places where certain things have to be declared legal?</div><div><br></div><div>Thanks,</div><div>Xiaochu</div><div> </div></div><br><div class="gmail_quote"><div dir="ltr">On Fri, Jul 3, 2015 at 12:55 AM Xiaochu Liu <<a href="mailto:xiaochu1122@gmail.com">xiaochu1122@gmail.com</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr">Thanks. I'm gonna try tomorrow and let you know.<br></div><br><div class="gmail_quote"><div dir="ltr">On Thu, Jul 2, 2015 at 6:51 PM Matt Arsenault <<a href="mailto:Matthew.Arsenault@amd.com" target="_blank">Matthew.Arsenault@amd.com</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">On 07/02/2015 06:41 PM, Xiaochu Liu wrote:<br>
> Hi Matt,<br>
><br>
> I did call addRegisterClass in TargetLowering for all the possible<br>
> types in the register. And for typecasting instructions (i32 to i64),<br>
> it works. Any other possiblilities?<br>
Try looking at the output of -debug-only=isel and see where the load is<br>
getting split up. The load isn't reaching instruction selection for your<br>
pattern to do anything<br>
<br>
<br>
</blockquote></div></blockquote></div>