<html><head><meta http-equiv="Content-Type" content="text/html; charset=utf-8"></head><body style="word-wrap: break-word; -webkit-nbsp-mode: space; line-break: after-white-space;" class=""><blockquote type="cite" class="">On Jul 12, 2019, at 12:32 PM, Scott Manley <<a href="mailto:rscottmanley@gmail.com" class="">rscottmanley@gmail.com</a>> wrote:<br class=""></blockquote><div><blockquote type="cite" class=""><div class=""><div style="caret-color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration: none;" class=""><br class="Apple-interchange-newline">I think that makes sense, but the end result is the same. Wouldn't you agree that -fp-contract=off still contracts floating point expressions with the initial example I posted? That is the core of what I'm trying to resolve here. </div></div></blockquote><div><br class=""></div><div>Yes, absolutely. The `fast` flag licenses many transforms that are not allowed in the default floating-point model, including contraction. So, yes, it’s being contracted in your initial example, and that’s OK!</div><br class=""><blockquote type="cite" class=""><div style="caret-color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration: none;" class="">I still have some confusion of what FMAD is supposed to be. Is FMAD actually MAD? Or is it something else? I am fine with leaving it alone if FMAD is not actually contracting floating point operations.</div></blockquote></div><div><br class=""></div><div><div class=""><div class="line" style="font-stretch: normal; font-size: 13px; line-height: 1; font-family: monospace, fixed; min-height: 13px; white-space: pre-wrap; word-wrap: break-word; text-indent: -53px; padding-left: 53px; padding-bottom: 0px; margin: 0px; transition-property: background-color, box-shadow; transition-duration: 0.5s; caret-color: rgb(0, 0, 0); color: rgb(0, 0, 0); background-color: rgb(251, 252, 253);"> <span class="comment" style="color: rgb(128, 0, 0);"> /// FMAD - Perform a * b + c, while getting the same result as the</span></div><div class="line" style="font-stretch: normal; font-size: 13px; line-height: 1; font-family: monospace, fixed; min-height: 13px; white-space: pre-wrap; word-wrap: break-word; text-indent: -53px; padding-left: 53px; padding-bottom: 0px; margin: 0px; transition-property: background-color, box-shadow; transition-duration: 0.5s; caret-color: rgb(0, 0, 0); color: rgb(0, 0, 0); background-color: rgb(251, 252, 253);"><span style="color: rgb(128, 0, 0);" class=""> /// separately rounded operations.</span></div><div class="line" style="font-stretch: normal; font-size: 13px; line-height: 1; font-family: monospace, fixed; min-height: 13px; white-space: pre-wrap; word-wrap: break-word; text-indent: -53px; padding-left: 53px; padding-bottom: 0px; margin: 0px; transition-property: background-color, box-shadow; transition-duration: 0.5s; caret-color: rgb(0, 0, 0); color: rgb(0, 0, 0); background-color: rgb(251, 252, 253);"> <span class="comment" style="color: rgb(128, 0, 0);"></span> <a class="code" href="https://llvm.org/doxygen/namespacellvm_1_1ISD.html#a22ea9cec080dd5f4f47ba234c2f59110a2415bea72c995bb9cf9f85bbbf90bcd7" style="color: rgb(70, 101, 162); text-decoration: none;">FMAD</a>,</div></div></div><div><br class=""></div><div>It does exactly what it says on the tin. It represents an instruction that produces exactly the same result as FADD(FMUL(a,b), c). No contraction is occurring when such a node is formed.</div><div><br class=""></div><div>– Steve</div></body></html>