- *sin = __sindf(hx < 0x80000000 ? s2pio2 - x : -s2pio2 - x);
- *cos = -__cosdf(hx < 0x80000000 ? x - s2pio2 : x + s2pio2);
+ /* -sin(x+c) is not correct if x+c could be 0: -0 vs +0 */
+ *sin = -__sindf(sign ? x + s2pio2 : x - s2pio2);
+ *cos = -__cosdf(sign ? x + s2pio2 : x - s2pio2);