1*c9945492SAndroid Build Coastguard Worker #include <math.h> 2*c9945492SAndroid Build Coastguard Worker fabsf(float x)3*c9945492SAndroid Build Coastguard Workerfloat fabsf(float x) 4*c9945492SAndroid Build Coastguard Worker { 5*c9945492SAndroid Build Coastguard Worker float t; 6*c9945492SAndroid Build Coastguard Worker __asm__ ("pcmpeqd %0, %0" : "=x"(t)); // t = ~0 7*c9945492SAndroid Build Coastguard Worker __asm__ ("psrld $1, %0" : "+x"(t)); // t >>= 1 8*c9945492SAndroid Build Coastguard Worker __asm__ ("andps %1, %0" : "+x"(x) : "x"(t)); // x &= t 9*c9945492SAndroid Build Coastguard Worker return x; 10*c9945492SAndroid Build Coastguard Worker } 11