1 2 3 4 5 6 7 8 9 10 11 12
#include "libm.h" int __signbitd(double x) { union { double d; uint64_t i; } y = { x }; return y.i>>63; }