<div dir="ltr"><div>Hi.</div><div><br></div><div>I am finding that using said pragma does not have the intended effect of disabling the C99 Annex G compliance that generates calls into the rather slow __mulsc3 and __muldc3 soft float library functions. This behavior was observed in Clang 11 and 10 (I did not test older revisions).<br></div><div><br></div><div>Allow me to link to godbolt to compare the generated code for this short code snippet:<br></div><div><br></div><div>#pragma STDC CX_LIMITED_RANGE ON<br>#include <ccomplex><br>std::complex<float> f(std::complex<float> x) {<br>  return x*x;<br>}</div><div><br></div><div><a href="https://godbolt.org/z/cEs3E1">https://godbolt.org/z/cEs3E1</a></div><div><br></div><div>I find that the #pragma does not remove the call into __mulsc3 in said example, whereas setting the flag -fno-honor-nans has the intended effect.</div><div><br></div><div>However I am worried that -fno-honor-nans would also affect code other than complex number arithmetic.</div><div><br></div><div>Would you maybe consider supporting the -fcx-limited-range compiler switch that is available in the GCC compiler?<br></div><div><br></div><div>Christian</div><div><br></div></div>