<table border="1" cellspacing="0" cellpadding="8">
    <tr>
        <th>Issue</th>
        <td>
            <a href=https://github.com/llvm/llvm-project/issues/64798>64798</a>
        </td>
    </tr>

    <tr>
        <th>Summary</th>
        <td>
            clang pragma fp should allow emission of IR arcp flag
        </td>
    </tr>

    <tr>
      <th>Labels</th>
      <td>
            enhancement,
            clang,
            floating-point
      </td>
    </tr>

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

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

<pre>
    pragma clang fp already exists which enables fast math flags within a scope. It currently supports `pragma clang fp contract(value)` and `pragma clang fp reassociate(on)`. 

I would like this extended to cover other fast math flags, in particular arcp. For something like

```
float fast_div(float x, float y) {
  #pragma clang fp reciprocal(on)
  return x / y;
}
```

I would hope to get
```
float @fast_div(float %, float %y) {
   %0 = fdiv arcp float %x, %y
   ret float %0 
}

```
</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJx8k9tuuzgQxp9muBk1MuYQuOCibRSpt_sCq4kZwLvGRrbJ4e1XQNps0-ovIcDm45v5zXgoBN1b5gaKNygOCc1xcL4hH9iOycm1t2by1I-EypDtsZuQjGdqb8hXHWLAy6DVgGzpZDhgRyHiSHHAzlAf8KLjoC0SBuUm3uFHRDV7zzaaG4Z5mpyPAaEUz1GUs9GTiiCrM5mZQdZQCiTb_qb2TCE4pSkyyMrZTb1DEAcQr9v9Ay9uNi0a_S9jHHRAvka2LbcYHSp3Zo8uDuyfIUC-o7Y4kY9azYY8klfTDo_OY3AjL4T9avv_cFCK-7UuO-Mors5_t_oMsto2rov59noDWSPs3zY9IsjsJ6bSk3eKzBflXew5zt7iFUEe8QbZ3QX2h1-z-V6RwU281KDn-IfcIRc_0gdZPABAFs8My55AyA7Ytfq81u0hXtnXnz7VnuPjs8Bnhu-5JW2TtXVWU8JNWtYyK-p9WSRDw4q7vMhzVai0qtNqzzUJyov0JOkkyirRjRQyE1VapWlRimJXlGlKaVuU3NYiEx3kgkfSZmfMedw53yc6hJmbMt_XVWLoxCasEyMl24Gs4pFtBClBvoOUa7--ViuQtv3L5PQmKg6Jbxbrl9PcB8iFWSbpESzqaLjZun4_At2EYVibRca4C_KoQ9DOouvw46_PwlKfzN40Q4xTgOwV5BHksddxmE875UaQxyXG_fEyefcPLxN2XOkCyOMK-F8AAAD__7RkQgA">