Add x86 optimization of rint functions and tests

Signed-off-by: Jingwei Zhang <jingwei.zhang@intel.com>

(cherry picked from commit f3ea093ebbfd9bd348ac16a46c96b637e3696c82)

Bug: http://b/27533895
Change-Id: I5703f4e2189bb1d12d8864757d72a327f17a74f9
diff --git a/libm/fake_long_double.c b/libm/fake_long_double.c
index 5edf839..20148a3 100644
--- a/libm/fake_long_double.c
+++ b/libm/fake_long_double.c
@@ -30,7 +30,9 @@
 long double fminl(long double a1, long double a2) { return fmin(a1, a2); }
 int ilogbl(long double a1) { return ilogb(a1); }
 long long llrintl(long double a1) { return llrint(a1); }
+#if !defined(__i386__) // x86 has an assembler lrint/lrintl.
 long lrintl(long double a1) { return lrint(a1); }
+#endif
 long long llroundl(long double a1) { return llround(a1); }
 long lroundl(long double a1) { return lround(a1); }
 long double modfl(long double a1, long double* a2) { double i; double f = modf(a1, &i); *a2 = i; return f; }