<html><head><meta http-equiv="Content-Type" content="text/html charset=utf-8"></head><body style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space;" class="">Hi Olivier, Hal<div class=""><br class=""></div><div class="">I have a question about this patch.</div><div class="">fadd( fp_ext (fmul a,b ) c)-> fma(a,b,c)  just throws away type information which prevents targets from optimizing for precision/power.</div><div class="">Shouldn’t this be target specific or at the least inside enableAggressiveFMAFusion?</div><div class=""><br class=""></div><div class="">Also, won’t the FMA node be illegal ? - It will have two F16 operands and 1 F32 operand.</div><div class=""><br class=""></div><div class="">Thanks</div><div class="">Aditya</div><div class=""><div><blockquote type="cite" class=""><div class="">On Jan 7, 2015, at 1:01 PM, Olivier H Sallenave <<a href="mailto:ohsallen@us.ibm.com" class="">ohsallen@us.ibm.com</a>> wrote:</div><br class="Apple-interchange-newline"><div class=""><div class=""><p class=""><font size="2" face="sans-serif" class="">Just got access, commited as r225380.</font><br class="">
<br class="">
<font size="2" face="sans-serif" class="">Thanks for reviewing,</font><br class="">
<font size="2" face="sans-serif" class="">Olivier</font><br class="">
<br class="">
<span id="cid:1__=0ABBF755DFE0E6D38f9e8a93df938@us.ibm.com"><graycol.gif></span><font size="2" color="#424282" face="sans-serif" class="">Hal Finkel ---01/06/2015 10:26:02 PM-------- Original Message ----- > From: "Olivier H Sallenave" <<a href="mailto:ohsallen@us.ibm.com" class="">ohsallen@us.ibm.com</a>></font><br class="">
<br class="">
<font size="1" color="#5F5F5F" face="sans-serif" class="">From:   </font><font size="1" face="sans-serif" class="">Hal Finkel <<a href="mailto:hfinkel@anl.gov" class="">hfinkel@anl.gov</a>></font><br class="">
<font size="1" color="#5F5F5F" face="sans-serif" class="">To:     </font><font size="1" face="sans-serif" class="">Olivier H Sallenave/Watson/IBM@IBMUS</font><br class="">
<font size="1" color="#5F5F5F" face="sans-serif" class="">Cc:     </font><font size="1" face="sans-serif" class=""><<a href="mailto:llvm-commits@cs.uiuc.edu" class="">llvm-commits@cs.uiuc.edu</a>></font><br class="">
<font size="1" color="#5F5F5F" face="sans-serif" class="">Date:   </font><font size="1" face="sans-serif" class="">01/06/2015 10:26 PM</font><br class="">
<font size="1" color="#5F5F5F" face="sans-serif" class="">Subject:        </font><font size="1" face="sans-serif" class="">Re: [PATCH] Fw: [LLVMdev] More FMA folding opportunities</font><br class="">
</p><hr width="100%" size="2" align="left" noshade="" style="color:#8091A5; " class=""><br class="">
<br class="">
<br class="">
<tt class=""><font size="2" class="">----- Original Message -----<br class="">
> From: "Olivier H Sallenave" <<a href="mailto:ohsallen@us.ibm.com" class="">ohsallen@us.ibm.com</a>><br class="">
> To: "Hal Finkel" <<a href="mailto:hfinkel@anl.gov" class="">hfinkel@anl.gov</a>><br class="">
> Cc: <a href="mailto:llvm-commits@cs.uiuc.edu" class="">llvm-commits@cs.uiuc.edu</a><br class="">
> Sent: Tuesday, January 6, 2015 8:03:51 PM<br class="">
> Subject: Re: [PATCH] Fw: [LLVMdev] More FMA folding opportunities<br class="">
> <br class="">
> <br class="">
> <br class="">
> Hal,<br class="">
> <br class="">
> You're right, I moved those heuristics in the target-independent<br class="">
> combiner.<br class="">
<br class="">
LGTM. Do you have commit access?<br class="">
<br class="">
 -Hal<br class="">
<br class="">
> <br class="">
> Thanks,<br class="">
> Olivier<br class="">
> <br class="">
> (See attached file: patch-v3.diff)<br class="">
> <br class="">
> Inactive hide details for Hal Finkel ---01/06/2015 06:52:06<br class="">
> PM-------- Original Message ----- > From: "Olivier H Sallenave"<br class="">
> <ohHal Finkel ---01/06/2015 06:52:06 PM-------- Original Message<br class="">
> ----- > From: "Olivier H Sallenave" <<a href="mailto:ohsallen@us.ibm.com" class="">ohsallen@us.ibm.com</a>><br class="">
> <br class="">
> From: Hal Finkel <<a href="mailto:hfinkel@anl.gov" class="">hfinkel@anl.gov</a>><br class="">
> To: Olivier H Sallenave/Watson/IBM@IBMUS<br class="">
> Cc: <<a href="mailto:llvm-commits@cs.uiuc.edu" class="">llvm-commits@cs.uiuc.edu</a>><br class="">
> Date: 01/06/2015 06:52 PM<br class="">
> Subject: Re: [PATCH] Fw: [LLVMdev] More FMA folding opportunities<br class="">
> <br class="">
> <br class="">
> <br class="">
> <br class="">
> ----- Original Message -----<br class="">
> > From: "Olivier H Sallenave" <<a href="mailto:ohsallen@us.ibm.com" class="">ohsallen@us.ibm.com</a>><br class="">
> > To: <a href="mailto:llvm-commits@cs.uiuc.edu" class="">llvm-commits@cs.uiuc.edu</a><br class="">
> > Cc: "Hal Finkel" <<a href="mailto:hfinkel@anl.gov" class="">hfinkel@anl.gov</a>><br class="">
> > Sent: Monday, January 5, 2015 9:51:22 AM<br class="">
> > Subject: Fw: [PATCH] Fw: [LLVMdev] More FMA folding opportunities<br class="">
> > <br class="">
> > <br class="">
> > <br class="">
> > Hi,<br class="">
> > <br class="">
> > Here's a more comprehensive patch also handling the fact that<br class="">
> > FP_EXTEND will later be removed for PPC. Accordingly, new patterns<br class="">
> > are implemented in the PPC-specific combiner:<br class="">
> <br class="">
> Given that these are predicated on (TM.Options.UnsafeFPMath ||<br class="">
> TM.Options.AllowFPOpFusion == FPOpFusion::Fast), what makes them PPC<br class="">
> specific? Either of those two options allow us to compute the<br class="">
> relevant operations with extra precision, right?<br class="">
> <br class="">
> -Hal<br class="">
> <br class="">
> > <br class="">
> > > Finally, specifically for the PPC target, we could ignore<br class="">
> > > FP_EXTEND<br class="">
> > > in the patterns above as it will be removed by the Machine Common<br class="">
> > > Subexpression Elimination pass. For instance:<br class="">
> > > <br class="">
> > > fold (fadd (fpext (fmul x, y)), z) -> (fma x, y, z)<br class="">
> > > fold (fadd (fpext (fma x, y, (fmul u, v))), z) -> (fma x, y (fma<br class="">
> > > u,<br class="">
> > > v, z))<br class="">
> > <br class="">
> > I also moved the tests in new files (fma-ext.ll, fma-assoc.ll) for<br class="">
> > more clarity.<br class="">
> > <br class="">
> > Thanks,<br class="">
> > Olivier<br class="">
> > <br class="">
> > (See attached file: patch-v2.diff)<br class="">
> > <br class="">
> > <br class="">
> > <br class="">
> > ----- Forwarded by Olivier H Sallenave/Watson/IBM on 01/05/2015<br class="">
> > 10:44<br class="">
> > AM -----<br class="">
> > <br class="">
> > From: Olivier H Sallenave/Watson/IBM<br class="">
> > To: <a href="mailto:llvm-commits@cs.uiuc.edu" class="">llvm-commits@cs.uiuc.edu</a><br class="">
> > Cc: "Hal Finkel" <<a href="mailto:hfinkel@anl.gov" class="">hfinkel@anl.gov</a>><br class="">
> > Date: 12/29/2014 05:09 PM<br class="">
> > Subject: [PATCH] Fw: [LLVMdev] More FMA folding opportunities<br class="">
> > <br class="">
> > <br class="">
> > <br class="">
> > Hi,<br class="">
> > <br class="">
> > Attached is a patch to support more FMA folding opportunities<br class="">
> > (especially for PPC) as discussed below.<br class="">
> > <br class="">
> > Thanks,<br class="">
> > Olivier<br class="">
> > <br class="">
> > (See attached file: patch.diff)<br class="">
> > <br class="">
> > <br class="">
> > <br class="">
> > ----- Forwarded by Olivier H Sallenave/Watson/IBM on 12/29/2014<br class="">
> > 04:56<br class="">
> > PM -----<br class="">
> > <br class="">
> > From: Hal Finkel <<a href="mailto:hfinkel@anl.gov" class="">hfinkel@anl.gov</a>><br class="">
> > To: Olivier H Sallenave/Watson/IBM@IBMUS<br class="">
> > Cc: <<a href="mailto:llvmdev@cs.uiuc.edu" class="">llvmdev@cs.uiuc.edu</a>><br class="">
> > Date: 09/30/2014 08:08 PM<br class="">
> > Subject: Re: [LLVMdev] More FMA folding opportunities<br class="">
> > <br class="">
> > <br class="">
> > <br class="">
> > <br class="">
> > ----- Original Message -----<br class="">
> > > From: "Olivier H Sallenave" <<a href="mailto:ohsallen@us.ibm.com" class="">ohsallen@us.ibm.com</a>><br class="">
> > > To: <a href="mailto:llvmdev@cs.uiuc.edu" class="">llvmdev@cs.uiuc.edu</a><br class="">
> > > Sent: Monday, September 29, 2014 3:34:51 PM<br class="">
> > > Subject: [LLVMdev] More FMA folding opportunities<br class="">
> > > <br class="">
> > > Hi,<br class="">
> > > <br class="">
> > > I think more opportunities might be added for FMA in the DAG<br class="">
> > > combiner, please tell me what you think. Right now, those cases<br class="">
> > > are<br class="">
> > > implemented:<br class="">
> > > <br class="">
> > > fold (fadd (fmul x, y), z) -> (fma x, y, z)<br class="">
> > > fold (fadd x, (fmul y, z)) -> (fma y, z, x)<br class="">
> > > <br class="">
> > > When the TLI callback "enableAggressiveFMAFusion" returns true,<br class="">
> > > we<br class="">
> > > might also support:<br class="">
> > > <br class="">
> > > fold (fadd (fma x, y, (fmul u, v)), z) -> (fma x, y (fma u, v,<br class="">
> > > z))<br class="">
> > > fold (fadd x, (fma y, z, (fmul u, v)) -> (fma y, z (fma u, v, x))<br class="">
> > > <br class="">
> > > This kind of reassociation generates two FMA for (x^2 + y^2 + z).<br class="">
> > <br class="">
> > Yes, this all sounds reasonable.<br class="">
> > <br class="">
> > Thanks again,<br class="">
> > Hal<br class="">
> <br class="">
> --<br class="">
> Hal Finkel<br class="">
> Assistant Computational Scientist<br class="">
> Leadership Computing Facility<br class="">
> Argonne National Laboratory<br class="">
> <br class="">
> <br class="">
<br class="">
-- <br class="">
Hal Finkel<br class="">
Assistant Computational Scientist<br class="">
Leadership Computing Facility<br class="">
Argonne National Laboratory<br class="">
</font></tt><br class="">
</div>
_______________________________________________<br class="">llvm-commits mailing list<br class=""><a href="mailto:llvm-commits@cs.uiuc.edu" class="">llvm-commits@cs.uiuc.edu</a><br class="">http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits<br class=""></div></blockquote></div><br class=""></div></body></html>