<div dir="ltr"><div>To be more specific:</div><div><br></div><div>We have some operators that we are currently implementing as intrinsics, for example things like: abs, min, max, etc.....</div><div><br></div><div>for some code:</div><div><br></div><div>int a;</div><div><br></div><div>int food() </div><div>{</div><div>    return abs(a);</div><div>}</div><div><br></div><div>the corresponding operator should look something like:</div><div><br></div><div>abs $a, r0</div><div><br></div><div>however, it looks like since intrinsics are handled as 'calls', we end up with something like:</div><div><br></div><div>mov $a, r0</div><div>abs r0, r0</div><div><br></div><div>Would it be better to make 'abs' an operator as opposed to an intrinsic, or is it possible in LLVM to support direct mem loads/stores via intrinsics?</div><div><br></div><div>I realize that we could resolve this with some peephole opts, I just want to know if there is a way in LLVM to get the 'abs $a, r0' match directly through tblgen?</div><div><br></div><div>Thanks.</div></div><div class="gmail_extra"><br><div class="gmail_quote">On Wed, Jun 10, 2015 at 8:19 PM, Ryan Taylor <span dir="ltr"><<a href="mailto:ryta1203@gmail.com" target="_blank">ryta1203@gmail.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr"><div>What's the best way to get direct memory accesses for intrinsics via tblgen?</div><div><br></div><div>We have some instructions represented as intrinsics. These instructions allow direct memory access, I've tried multiclasses but they won't match. I've also tried "def : Pat<....> but it won't recognize the complex pattern as a valid operand?</div><div><br></div><div>Thanks.</div></div>
</blockquote></div><br></div>