fn sinx(x: f80) callconv(.c) f80
fn sinx(x: f80) callconv(.c) f80 { const se = ld.signExponent(x) & 0x7fff; if (se == 0x7fff) { return x - x; } if (@abs(x) < trig.pi_4) { if (se < 0x3fff - (math.floatMantissaBits(f80) / 2)) { // raise inexact if x!=0 and underflow if subnormal if (compiler_rt.want_float_exceptions) { mem.doNotOptimizeAway(if (se == 0) x * 0x1p-120 else x + 0x1p120); } return x; } return trig.sinx(x, 0.0, 0); } var y: [2]f80 = undefined; const n = rem_pio2l(f80, x, &y); return switch (n & 3) { 0 => trig.sinx(y[0], y[1], 1), 1 => trig.cosx(y[0], y[1]), 2 => -trig.sinx(y[0], y[1], 1), else => -trig.cosx(y[0], y[1]), }; }