<div dir="ltr"><br><div class="gmail_extra"><br><div class="gmail_quote">On Sun, Oct 19, 2014 at 6:11 AM, Joerg Sonnenberger <span dir="ltr"><<a href="mailto:joerg@britannica.bec.de" target="_blank">joerg@britannica.bec.de</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">On Fri, Oct 17, 2014 at 06:51:38PM +0400, Anton Korobeynikov wrote:<br>
> > Chandler’s complex arithmetic changes are also in the range: r219557 in clang.  We saw it change the code in mandel-2 significantly.<br>
> mandel-2 is broken on hard FP ABI systems, btw. The reason is simply:<br>
> we're emitting a call to __muldc3 with AAPCS VFP calling convention,<br>
> however, the function expects softfp (AAPCS) calling conv and reads<br>
> garbage from GP registers.<br>
<br>
One possible approach is the attached patch. It is not completely<br>
correct as it doesn't handle the possible exceptions for WoA and iOS,<br>
but it might be a starting point. The real question for me is whether<br>
this logic belongs into clang at all. Who can speak up for the Fortran<br>
related behavior of complex arithmetic? If it matters the desired C<br>
rules, especially with regard to real and imaginary numbers, it would<br>
strongly support putting it into IR properly.<br></blockquote><div><br></div><div>I apologize that I haven't been able to follow this thread entirely, but if someone gives me a Fortran testcase I can check what Fortran+llvm would do currently and maybe give more feedback.</div><div><br></div></div></div></div>