<font face="Default Sans Serif,Verdana,Arial,Helvetica,sans-serif" size="2">Hi,<div><br></div><div>Attached is the suggested patch. </div><div><br></div><div>Thanks,</div><div>Olivier<br><div><br></div><div><font color="#990099">-----Owen Anderson <resistor@mac.com> wrote: -----</font><div style="padding-left:5px;"><div style="padding-right:0px;padding-left:5px;border-left:solid black 2px;">To: Hal Finkel <hfinkel@anl.gov><br>From: Owen Anderson <resistor@mac.com><br>Date: 01/11/2015 10:50PM<br>Cc: Olivier H Sallenave/Watson/IBM@IBMUS, llvm-commits@cs.uiuc.edu<br>Subject: Re: [PATCH] [LLVMdev] More FMA folding opportunities<br><br><div><font face="Courier New,Courier,monospace" size="3">> On Jan 9, 2015, at 11:19 PM, Hal Finkel <hfinkel@anl.gov> wrote:<br>> <br>> ----- Original Message -----<br>>> From: "Olivier H Sallenave" <ohsallen@us.ibm.com><br>>> To: "Hal Finkel" <hfinkel@anl.gov><br>>> Cc: llvm-commits@cs.uiuc.edu<br>>> Sent: Friday, January 9, 2015 11:59:07 AM<br>>> Subject: Re: [PATCH] [LLVMdev] More FMA folding opportunities<br>>> <br>>> Hi Hal,<br>>> <br>>> I am wondering if we should move the FP_EXTEND cases to the<br>>> PPC-specific combiner:<br>>> <br>>> (fadd (fpext (fmul x, y)), z) -> (fma (fpext x), (fpext y), z)<br>>> <br>>> We know that for PPC the FPEXT nodes will be removed, but it'll<br>>> likely not be the case for other architectures. For those, you end<br>>> up with one FMADD rather than one FMUL and one FADD, but also have<br>>> two FPEXT nodes rather than one. I would not expect this to take<br>>> more cycles to run, but there's no way to systematically check that<br>>> since the cost models are not necessarily accurate.<br>>> <br>>> In the end, the "aggressive" flag only ensures that you can combine<br>>> one FMUL node with many FADD nodes.<br>>> <br>>> What do you think?<br>> <br>> I think we already have too much code in the PPCISelLowering that could be in the target-independent combiner, appropriately guarded. We already have TLI hooks for isTruncateFree, isZExtFree, isFNegFree, isFAbsFree, and we could certainly add an isFPExtFree hook at well.<br><br>That would make a lot of sense to me.<br><br>—Owen<br><br>> -Hal<br>> <br>>> <br>>> Olivier<br>>> <br>>> Inactive hide details for Hal Finkel ---01/08/2015 08:36:56<br>>> PM-------- Original Message ----- > From: "Hal Finkel"<br>>> <hfinkel@anlHal Finkel ---01/08/2015 08:36:56 PM-------- Original<br>>> Message ----- > From: "Hal Finkel" <hfinkel@anl.gov><br>>> <br>>> From: Hal Finkel <hfinkel@anl.gov><br>>> To: Owen Anderson <resistor@mac.com><br>>> Cc: Olivier H Sallenave/Watson/IBM@IBMUS, <llvm-commits@cs.uiuc.edu><br>>> Date: 01/08/2015 08:36 PM<br>>> Subject: Re: [PATCH] [LLVMdev] More FMA folding opportunities<br>>> <br>>> <br>>> <br>>> <br>>> ----- Original Message -----<br>>>> From: "Hal Finkel" <hfinkel@anl.gov><br>>>> To: "Owen Anderson" <resistor@mac.com><br>>>> Cc: "Olivier H Sallenave" <ohsallen@us.ibm.com>,<br>>>> llvm-commits@cs.uiuc.edu<br>>>> Sent: Thursday, January 8, 2015 6:48:34 PM<br>>>> Subject: Re: [PATCH] [LLVMdev] More FMA folding opportunities<br>>>> <br>>>> ----- Original Message -----<br>>>>> From: "Hal Finkel" <hfinkel@anl.gov><br>>>>> To: "Owen Anderson" <resistor@mac.com><br>>>>> Cc: "Olivier H Sallenave" <ohsallen@us.ibm.com>,<br>>>>> llvm-commits@cs.uiuc.edu<br>>>>> Sent: Thursday, January 8, 2015 6:19:14 PM<br>>>>> Subject: Re: [PATCH] [LLVMdev] More FMA folding opportunities<br>>>>> <br>>>>> ----- Original Message -----<br>>>>>> From: "Owen Anderson" <resistor@mac.com><br>>>>>> To: "Hal Finkel" <hfinkel@anl.gov><br>>>>>> Cc: "Olivier H Sallenave" <ohsallen@us.ibm.com>,<br>>>>>> llvm-commits@cs.uiuc.edu<br>>>>>> Sent: Thursday, January 8, 2015 6:16:57 PM<br>>>>>> Subject: Re: [PATCH] [LLVMdev] More FMA folding opportunities<br>>>>>> <br>>>>>> <br>>>>>> <br>>>>>> <br>>>>>> <br>>>>>> <br>>>>>> On Jan 8, 2015, at 6:06 PM, Hal Finkel < hfinkel@anl.gov ><br>>>>>> wrote:<br>>>>>> <br>>>>>> Olivier, Aditya is right. You need to add the FP_EXTEND to the<br>>>>>> operands of the resulting FMA as appropriate. Can you please<br>>>>>> fix<br>>>>>> that? We can also move those under the "aggressive" flag for<br>>>>>> now.<br>>>>>> <br>>>>>> <br>>>>>> Can you fix or revert this ASAP, please? The missing extends<br>>>>>> are<br>>>>>> breaking our branches pretty badly.<br>>>>> <br>>>>> Yep, will do in a few minutes.<br>>>> <br>>>> I moved the transformations behind the aggressive flag in r225485<br>>>> --<br>>>> that should unbreak your builds while I fix the extends.<br>>> <br>>> FP_EXTEND nodes added as of r225492. Thanks for pointing this out!<br>>> <br>>> -Hal<br>>> <br>>>> <br>>>> -Hal<br>>>> <br>>>>> <br>>>>> -Hal<br>>>>> <br>>>>>> <br>>>>>> <br>>>>>> —Owen<br>>>>> <br>>>>> --<br>>>>> Hal Finkel<br>>>>> Assistant Computational Scientist<br>>>>> Leadership Computing Facility<br>>>>> Argonne National Laboratory<br>>>>> <br>>>>> _______________________________________________<br>>>>> llvm-commits mailing list<br>>>>> llvm-commits@cs.uiuc.edu<br>>>>> <a href="http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits">http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits</a><br>>>>> <br>>>> <br>>>> --<br>>>> Hal Finkel<br>>>> Assistant Computational Scientist<br>>>> Leadership Computing Facility<br>>>> Argonne National Laboratory<br>>>> <br>>>> _______________________________________________<br>>>> llvm-commits mailing list<br>>>> llvm-commits@cs.uiuc.edu<br>>>> <a href="http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits">http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits</a><br>>>> <br>>> <br>>> --<br>>> Hal Finkel<br>>> Assistant Computational Scientist<br>>> Leadership Computing Facility<br>>> Argonne National Laboratory<br>>> <br>>> <br>>> <br>> <br>> -- <br>> Hal Finkel<br>> Assistant Computational Scientist<br>> Leadership Computing Facility<br>> Argonne National Laboratory<br>> <br>> _______________________________________________<br>> llvm-commits mailing list<br>> llvm-commits@cs.uiuc.edu<br>> <a href="http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits">http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits</a><br><br></font></div></div></div></div></div></font>