Sorry for the noise, but the catanf.i.gz above was from a slightly modified catanf.c (which had the same behavior as the original code). I had changed this from upstream musl: === --- a/src/complex/catanf.c +++ b/src/complex/catanf.c @@ -61,12 +61,12 @@ static const double DP1 = 3.140625; static const double DP2 = 9.67502593994140625E-4; static const double DP3 = 1.509957990978376432E-7; -static float _redupif(float xx) +static float _redupif(float x) { - float x, t; + float t; long i; - x = xx; + //x = xx; t = x/(float)M_PI; if (t >= 0.0f) t += 0.5f; === The preprocessed code has a corresponding change; I'm attaching the gzip'd result of the original code. Thanks, Isaac Dunham