<div dir="ltr">Matt,<div>I'm sorry, actually it's fma not fmad.<br></div><div><div><br></div><div>In the post-legalizer DAG combine for the given code it's producing fma not fmad. That doens't seem correct.</div></div></div><br><div class="gmail_quote"><div dir="ltr">On Tue, Aug 21, 2018 at 10:11 AM Matt Arsenault <<a href="mailto:arsenm2@gmail.com">arsenm2@gmail.com</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><br>
<br>
> On Aug 21, 2018, at 17:08, Ryan Taylor via llvm-dev <<a href="mailto:llvm-dev@lists.llvm.org" target="_blank">llvm-dev@lists.llvm.org</a>> wrote:<br>
> <br>
> So I have a test case where:<br>
> <br>
> %20 = fmul nnan arcp float %15, %19<br>
> %21 = fadd reassoc nnan arcp contract float %20, -1.000000e+00<br>
> <br>
> is being contracted in DAG to fmad. Is this correct since the fmul has no reassoc or contract fast math flag?<br>
> <br>
> Thanks.<br>
<br>
<br>
fmad is defined as the exact same result as the separate fmul + fadd, unlike fma so this is OK<br>
<br>
-Matt</blockquote></div>