<div dir="ltr">If there's no guarantee of a value for the upper bits don't you want INSERT_SUBREG? SUBREG_TO_REG says the upper bits are 0(or whatever the immediate says). Not that I've ever found a place that checks it.<div><br clear="all"><div><div dir="ltr" class="gmail_signature" data-smartmail="gmail_signature">~Craig</div></div><br></div></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Wed, Jan 20, 2021 at 9:09 AM Tim Northover via llvm-dev <<a href="mailto:llvm-dev@lists.llvm.org">llvm-dev@lists.llvm.org</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">On Wed, 20 Jan 2021 at 16:30, Constable, Scott D<br>
<<a href="mailto:scott.d.constable@intel.com" target="_blank">scott.d.constable@intel.com</a>> wrote:<br>
> The actual implementation I'm doing is a bit more complex than the example I provided for illustrative purposes. In my case, I don't need to care about the upper bits at all.<br>
<br>
OK, in that case I think SUBREG_TO_REG is what you want. Something like<br>
<br>
BuildMI(MBB, InsertPt, Loc, TII->get(X86::SUBREG_TO_REG), ExtendedReg)<br>
    .addImm(0) // Never been entirely sure what this was here for.<br>
It's always 0.<br>
    .addReg(NarrowReg)<br>
    .addImm(X86::sub_16bit);<br>
<br>
then use ExtendedReg (a GR32 vreg) in the compare.<br>
<br>
Cheers.<br>
<br>
Tim.<br>
_______________________________________________<br>
LLVM Developers mailing list<br>
<a href="mailto:llvm-dev@lists.llvm.org" target="_blank">llvm-dev@lists.llvm.org</a><br>
<a href="https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-dev" rel="noreferrer" target="_blank">https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-dev</a><br>
</blockquote></div>