<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">