<div dir="ltr">Hey Ali,<div class="gmail_extra"><br></div><div class="gmail_extra">On Fri, May 17, 2013 at 3:46 PM, Ali Javadi <span dir="ltr"><<a href="mailto:aj14889@yahoo.com" target="_blank">aj14889@yahoo.com</a>></span> wrote:<br>
<div class="gmail_quote"><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex">Hi,<br>
<br>
I have some newly defined intrinsic functions in my llvm IR code, which I want to translate to X86 instruction set. As a first step, I want to be able to generate "nop" for these instructions, so the program at least compiles successfully.<br>

<br>
The call to my intrinsic function looks like this in the IR:<br>
call void @llvm.X(i16 %43)<br>
<br>
>From what I understand it may be possible to pattern match this to the nop instructions in the backend. </blockquote><div><br></div><div style>I would first attempt this in LowerINTRINSIC_WO_CHAIN(...) from lib/Target/X86/X86ISelLowering.cpp. That may or may not be the right way to go... just a thought.</div>
<div> </div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex">I did not find an example of intrinsic function translation in the X86 backend. Could you explain how this can be done, or point me to some places to look?<br>
</blockquote><div><br></div><div style>As for matching intrinsics, check out lib/Target/X86/X86InstrSSE.td. For example, here is a pattern that matches a 256 bit unaligned store intrinsic to the AVX vmovups instruction.</div>
<div style><br></div><div style><div>def : Pat<(int_x86_avx_storeu_ps_256 addr:$dst, VR256:$src),</div><div>          (VMOVUPSYmr addr:$dst, VR256:$src)>;</div><div><br></div><div style>-Cameron</div></div></div></div>
</div>