<div dir="ltr">Hi Renato,<div><br><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"><span style="font-family:arial,sans-serif;font-size:13px">I think there are two tests that can be derived from here, and maybe<br>
</span><span style="font-family:arial,sans-serif;font-size:13px">both of them can be easily done on their own, depending on how Clang<br></span><span style="font-family:arial,sans-serif;font-size:13px">lowers its intrinsics.</span></blockquote>
<div><span style="font-family:arial,sans-serif;font-size:13px"><br></span></div><div><span style="font-family:arial,sans-serif;font-size:13px">But what value do these derived tests have? In order to change the code the intrinsics produce (i.e. break them), you need to touch <a href="http://arm_neon.td">arm_neon.td</a>. But <a href="http://arm_neon.td">arm_neon.td</a> would also be the generation source for these tests. So you have a tautological testing mechanism.</span></div>
</div><div><span style="font-family:arial,sans-serif;font-size:13px"><br></span></div><div><span style="font-family:arial,sans-serif;font-size:13px">Cheers,</span></div><div><span style="font-family:arial,sans-serif;font-size:13px"><br>
</span></div><div><span style="font-family:arial,sans-serif;font-size:13px">James</span></div></div><div class="gmail_extra"><br><br><div class="gmail_quote">On 26 August 2014 09:56, Renato Golin <span dir="ltr"><<a href="mailto:renato.golin@linaro.org" target="_blank">renato.golin@linaro.org</a>></span> wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div class="">On 26 August 2014 08:24, James Molloy <<a href="mailto:james@jamesmolloy.co.uk">james@jamesmolloy.co.uk</a>> wrote:<br>

> I can see that test had to be originally generated somehow, but now we have<br>
> it and we don't expect large churn in the intrinsics, does it make sense to<br>
> reimplement the autogeneration mechanism? I haven't worked at all on getting<br>
> it put back in the new framework, but if people think it's the right thing<br>
> to do I can make time to do so. I'm just not convinced that it has value.<br>
<br>
</div>Hi James,<br>
<br>
I think there are two tests that can be derived from here, and maybe<br>
both of them can be easily done on their own, depending on how Clang<br>
lowers its intrinsics.<br>
<br>
The first, Clang based test, is more or less what that one is, but<br>
instead of checking for asm instructions, it emits IR and checks for<br>
the correct builtin call. I should hope that no ARM-specific<br>
optimization has occurred by that time. The second, a list of IR<br>
one-liners with the intrinsics generated by Clang (well, any<br>
front-end), and their unoptimized correspondents.<br>
<br>
To make sure we don't lose intrinsics by updating one and not the<br>
other, we should have a script in tree (utils) that generates them,<br>
possibly based on some other source in tree (table gen), for both<br>
Clang and LLVM counterparts.<br>
<br>
Having said that, I don't think this project is particularly critical<br>
to our test infrastructure, so I'd give this to a summer student this<br>
year or a GSoC project the next.<br>
<br>
cheers,<br>
--renato<br>
</blockquote></div><br></div>