<div dir="ltr"><div>Can you clarify what you mean by "different kinds of immediates"? Are you talking about a fixed immediate like "1" or an immediate that requires a predicate to check the value?</div><br clear="all"><div><div dir="ltr" class="gmail_signature" data-smartmail="gmail_signature">~Craig</div></div><br></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Mon, Jan 17, 2022 at 11:10 AM David Greene 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">





<div lang="EN-US" style="overflow-wrap: break-word;">
<div class="gmail-m_3152253305253575124WordSection1">
<p class="MsoNormal">Hey everyone,<u></u><u></u></p>
<p class="MsoNormal"><u></u> <u></u></p>
<p class="MsoNormal">We've defined some instruction aliases for our target but are having<u></u><u></u></p>
<p class="MsoNormal">trouble with the assembler.  According to the documentation<u></u><u></u></p>
<p class="MsoNormal">(<a href="https://llvm.org/docs/CodeGenerator.html#instruction-aliases" target="_blank">https://llvm.org/docs/CodeGenerator.html#instruction-aliases</a>) LLVM has<u></u><u></u></p>
<p class="MsoNormal">the capability of defining aliases with different kinds of operands.  We<u></u><u></u></p>
<p class="MsoNormal">use that capability to define, for example, different alises based on<u></u><u></u></p>
<p class="MsoNormal">the kind of immediate seen.<u></u><u></u></p>
<p class="MsoNormal"><u></u> <u></u></p>
<p class="MsoNormal">However, it seems that the generated assembler can't distinguish these<u></u><u></u></p>
<p class="MsoNormal">different kinds of immediates and ends up encoding the wrong operation,<u></u><u></u></p>
<p class="MsoNormal">leading to incorrect assembly.<u></u><u></u></p>
<p class="MsoNormal"><u></u> <u></u></p>
<p class="MsoNormal">Is this a known limitation?  Are we perhaps missing some option to the<u></u><u></u></p>
<p class="MsoNormal">InstAlias class (UseInstAsmMatchConverter?), some option to TableGen or<u></u><u></u></p>
<p class="MsoNormal">perhaps we can add some custom code to pick the right MC instruction?<u></u><u></u></p>
<p class="MsoNormal"><u></u> <u></u></p>
<p class="MsoNormal">I'm thinking AsmMatchConverter might be what we need but a quick search<u></u><u></u></p>
<p class="MsoNormal">didn't locate any documentation of what this is and how to use it.<u></u><u></u></p>
<p class="MsoNormal"><u></u> <u></u></p>
<p class="MsoNormal">Thanks in advance for the help!<u></u><u></u></p>
<p class="MsoNormal"><u></u> <u></u></p>
<p class="MsoNormal">David<u></u><u></u></p>
</div>
</div>

_______________________________________________<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>