<div dir="ltr"><div>If it's any easier Justin,<br></div>there are plenty of examples in the PPC back end already. Take for example `int_ppc_vsx_xxinsertw`.<br></div><div class="gmail_extra"><br><div class="gmail_quote">On Mon, Dec 18, 2017 at 2:47 PM, Krzysztof Parzyszek via llvm-dev <span dir="ltr"><<a href="mailto:llvm-dev@lists.llvm.org" target="_blank">llvm-dev@lists.llvm.org</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">To add to this: it is the "imm:$trap" in the selection pattern that does it (the "imm:" part of it, to be even more specific).<br>
<br>
-Krzysztof<span class=""><br>
<br>
<br>
On 12/17/2017 11:01 PM, Craig Topper via llvm-dev wrote:<br>
</span><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><span class="">
The fact that the intrinsic takes an immediate is usually encoded as part of the isel pattern selection<br>
<br>
For example from an x86 intrinsic/instruction:<br>
<br>
def INT : Ii8<0xcd, RawFrm, (outs), (ins u8imm:$trap), "int\t$trap",<br>
               [(int_x86_int imm:$trap)], IIC_INT>;<br>
<br>
I'm slightly confused by your question though as you mention register which sort of implies you're looking at PowerPC assembly. But you also mention a function, but the intrinsic should have been turned into instructions before assembly and there should be no function call.<br>
<br>
~Craig<br>
<br></span><span class="">
On Sun, Dec 17, 2017 at 8:26 PM, Justin Hibbits via llvm-dev <<a href="mailto:llvm-dev@lists.llvm.org" target="_blank">llvm-dev@lists.llvm.org</a> <mailto:<a href="mailto:llvm-dev@lists.llvm.org" target="_blank">llvm-dev@lists.llvm.or<wbr>g</a>>> wrote:<br>
<br>
    I'm trying to add intrinsics for the Signal Processing Engine<br>
    (FPU/vector unit) on some PowerPC cores, but running into a problem.<br>
    Some of the instructions take an immediate operand, but I can't figure<br>
    out how to make the intrinsic use an immediate, it just wants to load<br>
    a register as an argument to the function.  Is there any way in the<br>
    .td file to describe the intrinsic as taking an immediate, or do I<br>
    need to generate an intermediate instruction identifier?<br>
<br>
    Thanks,<br>
    Justin<br>
    ______________________________<wbr>_________________<br>
    LLVM Developers mailing list<br></span>
    <a href="mailto:llvm-dev@lists.llvm.org" target="_blank">llvm-dev@lists.llvm.org</a> <mailto:<a href="mailto:llvm-dev@lists.llvm.org" target="_blank">llvm-dev@lists.llvm.or<wbr>g</a>><br>
    <a href="http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-dev" rel="noreferrer" target="_blank">http://lists.llvm.org/cgi-bin/<wbr>mailman/listinfo/llvm-dev</a><br>
    <<a href="http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-dev" rel="noreferrer" target="_blank">http://lists.llvm.org/cgi-bin<wbr>/mailman/listinfo/llvm-dev</a>><span class=""><br>
<br>
<br>
<br>
<br>
______________________________<wbr>_________________<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="http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-dev" rel="noreferrer" target="_blank">http://lists.llvm.org/cgi-bin/<wbr>mailman/listinfo/llvm-dev</a><br>
<br>
</span></blockquote><span class="HOEnZb"><font color="#888888">
<br>
-- <br>
Qualcomm Innovation Center, Inc. is a member of Code Aurora Forum, hosted by The Linux Foundation</font></span><div class="HOEnZb"><div class="h5"><br>
______________________________<wbr>_________________<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="http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-dev" rel="noreferrer" target="_blank">http://lists.llvm.org/cgi-bin/<wbr>mailman/listinfo/llvm-dev</a><br>
</div></div></blockquote></div><br></div>