<table border="1" cellspacing="0" cellpadding="8">
    <tr>
        <th>Issue</th>
        <td>
            <a href=http://email.email.llvm.org/c/eJylk02PnDAMhn8NXCxGfM0HBw7TTkfaw6pSVWnboyEOpJtJRonpavbX12G07arqrRIQgvPaj9-Ewatb_zSTgwcY_eVqLAHCNfgp4AVeDM-Q1XXxuYbigmGcs-Y0BI_qhayFQmuMLAFZJe_XYvSOA44sq7zWIgSeCb4ddjDg-ExOSbIDyiAFBhzsDbwsCDGrO6klGSdyFJAJzo9HMC5yWEY23sUNfJVMD18SpHET-IXBaxgtykR5iuA8QyReK0rl3ygCkShhpdQWp6z-CIPIDd-F70SLi6ipkE7S6lW6uBUAkDkYkVGSv8xmnGHEJYo-ad_aYy-AbrSLIvmOfO8jwpXCxTCT2mTlKSuP9-fMfI1Zc8zqs1yTV4O3vPFBEM-vch8e593r90_VU676RnVNhzkuPPvQi4e3Z7xZH_Il2P6vRLJry7ARp2Ri7c-3oRDXf1Cy5GxiXEhsP2-brq3yua_qispqp1W7b3TZ0dgdhu2OurbT--2-PeQWB7Kxz7YfxJZhEcQ6OZGcTnsgxXUQy8WEFNme8v-nMn1d1nJVXVnWZVluNLat0lXVaWzKZl9lbUkXNHaT8iTf8tCvKYUvStCayPFPEGM0kyNamxBCNmyp_8fBXXcMAxu0ckRF4wOp-8_w7sjnK26_sv4ChN8VHw>53941</a>
        </td>
    </tr>

    <tr>
        <th>Summary</th>
        <td>
            -ffp-contract=off is partially ignored with -ffast-math
        </td>
    </tr>

    <tr>
      <th>Labels</th>
      <td>
            bug,
            clang:frontend
      </td>
    </tr>

    <tr>
      <th>Assignees</th>
      <td>
      </td>
    </tr>

    <tr>
      <th>Reporter</th>
      <td>
          andykaylor
      </td>
    </tr>
</table>

<pre>
    When I compile a program with "-O2 -march=broadwell -ffast-math -ffp-contract=off" the X86 backend (and probably others) will generate FMA instructions. The IR coming out of clang does not set the "contract" fast math flag, but it does set the "unsafe-fp-math" function attribute, which causes the backend to conclude that FMA is permitted.

https://godbolt.org/z/8Mh6zYE1W
</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJxtUsGOmzAQ_Rq4jIjAkGw4cEibRtrDqlJVadvj2B7AXQdH9tAo-_UdiLZdrSoZjJl58968sQ721j2PNMEjmHC-OE-AcIlhiHiGq-MRMqWKrwqKM0YzZvVRx4D2St5D0feYWAKSJd-XwoSJIxqWrND3AgQeCX7sd6DRvNBkpdgeZRMCjdrfIEhCTJlqhUsqDjRRRCY4PR3ATYnjbNiFKW3gu1R6_LaIdNMAYWYIPRiPcrCBEkyBIRGvjML8V4qIWFTCqrL3OGTqM2iBO74D34HmKWFPhXSyZK_QeVoFADJHJzBa4NfRmREMzknwC_atPQ4icDJ-tiT_ke99JLhQPDtmspusPGbl4f4emS8pqw-ZOskagtXB8yZEkXh6lWf_NO5ef36pnnPb1batW8zZsafuP2avLBjZoRdb3TCFSPY-wHdjyufouw-0kjLrjfgqB-9_v22FzOgXLQaeXEozyZBO27ptqnzs9tZWZotkmnqr9e7BWK2VoqZBpWpq69yjJp-6bPtJTNSzNKQW35a5LBMT8j6KfLFsiWyPuetUqWRVbVmqsiw3PTaN7auq7bEu64cqa0o6o_ObRdviUR67VaZUTxL0LnH6F8SUxAOiVYLUx5nHEDu5e7cXvPkQ87Wpbu3oD-fqAKE">