<div dir="ltr"><div dir="ltr"><div dir="ltr"><div dir="ltr"><div>1. Do you have a larger code example that shows the missed sqrt/div optimization?</div><div><br></div><div>We optimize the example you provided already in IR:</div><div>#include <math.h><br>float sqrt_squared(float x) {<br>  return 1.0f/sqrtf(x) * 1.0f/sqrtf(x);<br>}<br><br></div>$ clang -O1 -ffast-math -emit-llvm  sqrt.c -S -o - <br>define float @sqrt_squared(float) local_unnamed_addr #0 {<br>  %2 = fdiv fast float 1.000000e+00, %0<br>  ret float %2<br>}<br><br></div><div>2. Yes, transforms like the above should work with vector types. If not, please file a bug.<br></div></div></div></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Wed, Apr 3, 2019 at 11:47 PM Venkataramanan Kumar via llvm-dev <<a href="mailto:llvm-dev@lists.llvm.org">llvm-dev@lists.llvm.org</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div dir="ltr">Hi Micheal, <div><br></div><div>Thanks for the blog post.  Just like to point out few things that I thought is related to FP Numerics.</div><div>LLVM could do some additional transformation with "sqrt" and "division" under fast math on X86 like 1/sqrt(x)* 1/sqrt(x) to 1/x.   These are long latency instructions and could get benefit if enabled under unsafe math.</div><div><br></div><div>Also are we considering doing such FP transforms on vector floating point types?</div><div><br></div><div>regards,</div><div>Venkat.</div><div><br></div><div><br><div><br></div><div><br></div></div></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Mon, 1 Apr 2019 at 19:56, Cameron McInally via llvm-dev <<a href="mailto:llvm-dev@lists.llvm.org" target="_blank">llvm-dev@lists.llvm.org</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div dir="ltr"><div dir="ltr">Hey Michael,<div><br></div><div>Thank you for working on this!</div><div><br></div><div>I'd like to touch on a topic mentioned in the blog post. The constrained intrinsics work is at a road block on how to proceed with the constrained  implementation in the backends, i.e. D55506. Reviews/ideas in this area would be greatly appreciated (attn: target code owners). </div><div><br></div><div>Thanks,</div><div>Cameron</div><div><br></div></div></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Thu, Mar 28, 2019 at 5:54 PM Michael Berg via llvm-dev <<a href="mailto:llvm-dev@lists.llvm.org" target="_blank">llvm-dev@lists.llvm.org</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">All:  There will be a BoF talk at the EuroLLVM conference regarding Numerics (FMF and module flags which control fp behavior and optimization).<br>
<br>
Even if you are not going to be in attendance, please reply to this thread as we are collecting open issues and ideas for future direction in all layers of LLVM for which optimizations are controlled by numerics flags.<br>
Please read over the numerics blog if you like for reference material:<br>
<br>
<a href="https://urldefense.proofpoint.com/v2/url?u=http-3A__blog.llvm.org_2019_03_llvm-2Dnumerics-2Dblog.html&d=DwIGaQ&c=slrrB7dE8n7gBJbeO0g-IQ&r=O_4M49EtSpZ_-BQYeigzGv0P4__noMcSu2RYEjS1vKs&m=CHHCGUAnxC91rtvrnhhoN0jXGXgXv8EQb8C4XiUEoxY&s=xzUyP83nqSY1h9GrDdHch4INrIFIU-Ycij4S4Tmxdko&e=" rel="noreferrer" target="_blank">https://urldefense.proofpoint.com/v2/url?u=http-3A__blog.llvm.org_2019_03_llvm-2Dnumerics-2Dblog.html&d=DwIGaQ&c=slrrB7dE8n7gBJbeO0g-IQ&r=O_4M49EtSpZ_-BQYeigzGv0P4__noMcSu2RYEjS1vKs&m=CHHCGUAnxC91rtvrnhhoN0jXGXgXv8EQb8C4XiUEoxY&s=xzUyP83nqSY1h9GrDdHch4INrIFIU-Ycij4S4Tmxdko&e=</a><br>
<br>
Regards,<br>
Michael<br>
_______________________________________________<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="https://urldefense.proofpoint.com/v2/url?u=https-3A__lists.llvm.org_cgi-2Dbin_mailman_listinfo_llvm-2Ddev&d=DwIGaQ&c=slrrB7dE8n7gBJbeO0g-IQ&r=O_4M49EtSpZ_-BQYeigzGv0P4__noMcSu2RYEjS1vKs&m=CHHCGUAnxC91rtvrnhhoN0jXGXgXv8EQb8C4XiUEoxY&s=5CVfTGSHNKAmAzx4dc0HQzDTXMucnDgx_NPimota5m8&e=" rel="noreferrer" target="_blank">https://urldefense.proofpoint.com/v2/url?u=https-3A__lists.llvm.org_cgi-2Dbin_mailman_listinfo_llvm-2Ddev&d=DwIGaQ&c=slrrB7dE8n7gBJbeO0g-IQ&r=O_4M49EtSpZ_-BQYeigzGv0P4__noMcSu2RYEjS1vKs&m=CHHCGUAnxC91rtvrnhhoN0jXGXgXv8EQb8C4XiUEoxY&s=5CVfTGSHNKAmAzx4dc0HQzDTXMucnDgx_NPimota5m8&e=</a><br>
</blockquote></div>
_______________________________________________<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="https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-dev" rel="noreferrer" target="_blank">https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-dev</a><br>
</blockquote></div>
_______________________________________________<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="https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-dev" rel="noreferrer" target="_blank">https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-dev</a><br>
</blockquote></div>