Add x86 optimization of rint functions and tests
Change-Id: I5e7696ff9bcb1efc2625100ef8565b68dca2326c
Signed-off-by: Jingwei Zhang <jingwei.zhang@intel.com>
diff --git a/libm/Android.mk b/libm/Android.mk
index 7e0656d..5dd140b 100644
--- a/libm/Android.mk
+++ b/libm/Android.mk
@@ -345,6 +345,8 @@
x86/libm_reduce_pi04l.S \
x86/libm_sincos_huge.S \
x86/libm_tancot_huge.S \
+ x86/lrint.S \
+ x86/lrintf.S \
x86/s_atan.S \
x86/s_cbrt.S \
x86/s_cos.S \
@@ -372,6 +374,8 @@
upstream-freebsd/lib/msun/src/s_cos.c \
upstream-freebsd/lib/msun/src/s_expm1.c \
upstream-freebsd/lib/msun/src/s_log1p.c \
+ upstream-freebsd/lib/msun/src/s_lrint.c \
+ upstream-freebsd/lib/msun/src/s_lrintf.c \
upstream-freebsd/lib/msun/src/s_sin.c \
upstream-freebsd/lib/msun/src/s_tan.c \
upstream-freebsd/lib/msun/src/s_tanh.c \
@@ -382,6 +386,8 @@
x86/ceilf.S \
x86/floor.S \
x86/floorf.S \
+ x86/rint.S \
+ x86/rintf.S \
x86/trunc.S \
x86/truncf.S \
@@ -390,6 +396,8 @@
upstream-freebsd/lib/msun/src/s_ceilf.c \
upstream-freebsd/lib/msun/src/s_floor.c \
upstream-freebsd/lib/msun/src/s_floorf.c \
+ upstream-freebsd/lib/msun/src/s_rint.c \
+ upstream-freebsd/lib/msun/src/s_rintf.c \
upstream-freebsd/lib/msun/src/s_trunc.c \
upstream-freebsd/lib/msun/src/s_truncf.c \
@@ -412,6 +420,8 @@
x86_64/e_log.S \
x86_64/e_pow.S \
x86_64/e_sinh.S \
+ x86_64/lrint.S \
+ x86_64/lrintf.S \
x86_64/s_atan.S \
x86_64/s_cbrt.S \
x86_64/s_cos.S \
@@ -439,6 +449,10 @@
upstream-freebsd/lib/msun/src/s_cos.c \
upstream-freebsd/lib/msun/src/s_expm1.c \
upstream-freebsd/lib/msun/src/s_log1p.c \
+ upstream-freebsd/lib/msun/src/s_llrint.c \
+ upstream-freebsd/lib/msun/src/s_llrintf.c \
+ upstream-freebsd/lib/msun/src/s_lrint.c \
+ upstream-freebsd/lib/msun/src/s_lrintf.c \
upstream-freebsd/lib/msun/src/s_sin.c \
upstream-freebsd/lib/msun/src/s_tan.c \
upstream-freebsd/lib/msun/src/s_tanh.c \
@@ -449,6 +463,8 @@
x86_64/ceilf.S \
x86_64/floor.S \
x86_64/floorf.S \
+ x86_64/rint.S \
+ x86_64/rintf.S \
x86_64/trunc.S \
x86_64/truncf.S \
@@ -457,6 +473,8 @@
upstream-freebsd/lib/msun/src/s_ceilf.c \
upstream-freebsd/lib/msun/src/s_floor.c \
upstream-freebsd/lib/msun/src/s_floorf.c \
+ upstream-freebsd/lib/msun/src/s_rint.c \
+ upstream-freebsd/lib/msun/src/s_rintf.c \
upstream-freebsd/lib/msun/src/s_trunc.c \
upstream-freebsd/lib/msun/src/s_truncf.c \
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; }
diff --git a/libm/x86/lrint.S b/libm/x86/lrint.S
new file mode 100644
index 0000000..48d71dd
--- /dev/null
+++ b/libm/x86/lrint.S
@@ -0,0 +1,36 @@
+/*
+Copyright (c) 2014, Intel Corporation
+All rights reserved.
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions are met:
+ * Redistributions of source code must retain the above copyright notice,
+ * this list of conditions and the following disclaimer.
+ * Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following disclaimer in the documentation
+ * and/or other materials provided with the distribution.
+ * Neither the name of Intel Corporation nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
+ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR
+ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
+ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+*/
+
+#include <private/bionic_asm.h>
+
+ENTRY(lrint)
+ // LP32 sizeof(long) == 4.
+ movsd 0x4(%esp),%xmm0
+ cvtsd2si %xmm0, %eax
+ ret
+END(lrint)
+
+// LP32 sizeof(long double) == sizeof(double).
+ALIAS_SYMBOL(lrintl, lrint);
diff --git a/libm/x86/lrintf.S b/libm/x86/lrintf.S
new file mode 100644
index 0000000..bc8fcb3
--- /dev/null
+++ b/libm/x86/lrintf.S
@@ -0,0 +1,33 @@
+/*
+Copyright (c) 2014, Intel Corporation
+All rights reserved.
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions are met:
+ * Redistributions of source code must retain the above copyright notice,
+ * this list of conditions and the following disclaimer.
+ * Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following disclaimer in the documentation
+ * and/or other materials provided with the distribution.
+ * Neither the name of Intel Corporation nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
+ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR
+ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
+ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+*/
+
+#include <private/bionic_asm.h>
+
+ENTRY(lrintf)
+ // LP32 sizeof(long) == 4.
+ movss 0x4(%esp),%xmm0
+ cvtss2si %xmm0, %eax
+ ret
+END(lrintf)
diff --git a/libm/x86/rint.S b/libm/x86/rint.S
new file mode 100644
index 0000000..85635f2
--- /dev/null
+++ b/libm/x86/rint.S
@@ -0,0 +1,39 @@
+/*
+Copyright (c) 2014, Intel Corporation
+All rights reserved.
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions are met:
+ * Redistributions of source code must retain the above copyright notice,
+ * this list of conditions and the following disclaimer.
+ * Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following disclaimer in the documentation
+ * and/or other materials provided with the distribution.
+ * Neither the name of Intel Corporation nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
+ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR
+ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
+ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+*/
+
+#include <private/bionic_asm.h>
+
+ENTRY(rint)
+ subl $12,%esp
+ movsd 16(%esp),%xmm0
+ roundsd $4,%xmm0,%xmm0
+ movsd %xmm0,(%esp)
+ fldl (%esp)
+ addl $12,%esp
+ ret
+END(rint)
+
+// LP32 sizeof(long double) == sizeof(double).
+ALIAS_SYMBOL(rintl, rint);
diff --git a/libm/x86/rintf.S b/libm/x86/rintf.S
new file mode 100644
index 0000000..9f82400
--- /dev/null
+++ b/libm/x86/rintf.S
@@ -0,0 +1,36 @@
+/*
+Copyright (c) 2014, Intel Corporation
+All rights reserved.
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions are met:
+ * Redistributions of source code must retain the above copyright notice,
+ * this list of conditions and the following disclaimer.
+ * Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following disclaimer in the documentation
+ * and/or other materials provided with the distribution.
+ * Neither the name of Intel Corporation nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
+ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR
+ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
+ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+*/
+
+#include <private/bionic_asm.h>
+
+ENTRY(rintf)
+ subl $12,%esp
+ movss 16(%esp),%xmm0
+ roundss $4,%xmm0,%xmm0
+ movss %xmm0,(%esp)
+ flds (%esp)
+ add $12,%esp
+ ret
+END(rintf)
diff --git a/libm/x86_64/lrint.S b/libm/x86_64/lrint.S
new file mode 100644
index 0000000..f809a1f
--- /dev/null
+++ b/libm/x86_64/lrint.S
@@ -0,0 +1,35 @@
+/*
+Copyright (c) 2014, Intel Corporation
+All rights reserved.
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions are met:
+ * Redistributions of source code must retain the above copyright notice,
+ * this list of conditions and the following disclaimer.
+ * Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following disclaimer in the documentation
+ * and/or other materials provided with the distribution.
+ * Neither the name of Intel Corporation nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
+ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR
+ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
+ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+*/
+
+#include <private/bionic_asm.h>
+
+ENTRY(lrint)
+ // LP64 sizeof(long) == 8.
+ cvtsd2si %xmm0, %rax
+ ret
+END(lrint)
+
+// LP64 sizeof(long long) == sizeof(long).
+ALIAS_SYMBOL(llrint, lrint);
diff --git a/libm/x86_64/lrintf.S b/libm/x86_64/lrintf.S
new file mode 100644
index 0000000..a661cbc
--- /dev/null
+++ b/libm/x86_64/lrintf.S
@@ -0,0 +1,35 @@
+/*
+Copyright (c) 2014, Intel Corporation
+All rights reserved.
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions are met:
+ * Redistributions of source code must retain the above copyright notice,
+ * this list of conditions and the following disclaimer.
+ * Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following disclaimer in the documentation
+ * and/or other materials provided with the distribution.
+ * Neither the name of Intel Corporation nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
+ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR
+ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
+ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+*/
+
+#include <private/bionic_asm.h>
+
+ENTRY(lrintf)
+ // LP64 sizeof(long) == 8.
+ cvtss2si %xmm0, %rax
+ ret
+END(lrintf)
+
+// LP64 sizeof(long long) == sizeof(long).
+ALIAS_SYMBOL(llrintf, lrintf);
diff --git a/libm/x86_64/rint.S b/libm/x86_64/rint.S
new file mode 100644
index 0000000..098fdc5
--- /dev/null
+++ b/libm/x86_64/rint.S
@@ -0,0 +1,31 @@
+/*
+Copyright (c) 2014, Intel Corporation
+All rights reserved.
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions are met:
+ * Redistributions of source code must retain the above copyright notice,
+ * this list of conditions and the following disclaimer.
+ * Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following disclaimer in the documentation
+ * and/or other materials provided with the distribution.
+ * Neither the name of Intel Corporation nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
+ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR
+ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
+ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+*/
+
+#include <private/bionic_asm.h>
+
+ENTRY(rint)
+ roundsd $0x4,%xmm0,%xmm0
+ retq
+END(rint)
diff --git a/libm/x86_64/rintf.S b/libm/x86_64/rintf.S
new file mode 100644
index 0000000..09f5e9c
--- /dev/null
+++ b/libm/x86_64/rintf.S
@@ -0,0 +1,31 @@
+/*
+Copyright (c) 2014, Intel Corporation
+All rights reserved.
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions are met:
+ * Redistributions of source code must retain the above copyright notice,
+ * this list of conditions and the following disclaimer.
+ * Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following disclaimer in the documentation
+ * and/or other materials provided with the distribution.
+ * Neither the name of Intel Corporation nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
+ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR
+ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
+ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+*/
+
+#include <private/bionic_asm.h>
+
+ENTRY(rintf)
+ roundss $0x4,%xmm0,%xmm0
+ retq
+END(rintf)
diff --git a/tests/math_data/llrint_intel_data.h b/tests/math_data/llrint_intel_data.h
new file mode 100644
index 0000000..a6861c2
--- /dev/null
+++ b/tests/math_data/llrint_intel_data.h
@@ -0,0 +1,1242 @@
+/*
+ * Copyright (C) 2016 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+static data_llong_1_t<double> g_llrint_intel_data[] = {
+ { // Entry 0
+ (long long int)0.0,
+ -0x1.0p-1074
+ },
+ { // Entry 1
+ (long long int)0.0,
+ -0.0
+ },
+ { // Entry 2
+ (long long int)0.0,
+ 0x1.0p-1074
+ },
+ { // Entry 3
+ (long long int)0.0,
+ 0x1.fffffffffffffp-2
+ },
+ { // Entry 4
+ (long long int)0.0,
+ 0x1.0p-1
+ },
+ { // Entry 5
+ (long long int)0x1.p0,
+ 0x1.0000000000001p-1
+ },
+ { // Entry 6
+ (long long int)0x1.p0,
+ 0x1.fffffffffffffp-1
+ },
+ { // Entry 7
+ (long long int)0x1.p0,
+ 0x1.0p0
+ },
+ { // Entry 8
+ (long long int)0x1.p0,
+ 0x1.0000000000001p0
+ },
+ { // Entry 9
+ (long long int)0x1.p0,
+ 0x1.7ffffffffffffp0
+ },
+ { // Entry 10
+ (long long int)0x1.p1,
+ 0x1.8p0
+ },
+ { // Entry 11
+ (long long int)0x1.p1,
+ 0x1.8000000000001p0
+ },
+ { // Entry 12
+ (long long int)0x1.p1,
+ 0x1.fffffffffffffp0
+ },
+ { // Entry 13
+ (long long int)0x1.p1,
+ 0x1.0p1
+ },
+ { // Entry 14
+ (long long int)0x1.p1,
+ 0x1.0000000000001p1
+ },
+ { // Entry 15
+ (long long int)0x1.p1,
+ 0x1.3ffffffffffffp1
+ },
+ { // Entry 16
+ (long long int)0x1.p1,
+ 0x1.4p1
+ },
+ { // Entry 17
+ (long long int)0x1.80p1,
+ 0x1.4000000000001p1
+ },
+ { // Entry 18
+ (long long int)0x1.90p6,
+ 0x1.8ffffffffffffp6
+ },
+ { // Entry 19
+ (long long int)0x1.90p6,
+ 0x1.9p6
+ },
+ { // Entry 20
+ (long long int)0x1.90p6,
+ 0x1.9000000000001p6
+ },
+ { // Entry 21
+ (long long int)0x1.90p6,
+ 0x1.91fffffffffffp6
+ },
+ { // Entry 22
+ (long long int)0x1.90p6,
+ 0x1.920p6
+ },
+ { // Entry 23
+ (long long int)0x1.94p6,
+ 0x1.9200000000001p6
+ },
+ { // Entry 24
+ (long long int)0x1.f4p9,
+ 0x1.f3fffffffffffp9
+ },
+ { // Entry 25
+ (long long int)0x1.f4p9,
+ 0x1.f40p9
+ },
+ { // Entry 26
+ (long long int)0x1.f4p9,
+ 0x1.f400000000001p9
+ },
+ { // Entry 27
+ (long long int)0x1.f4p9,
+ 0x1.f43ffffffffffp9
+ },
+ { // Entry 28
+ (long long int)0x1.f4p9,
+ 0x1.f44p9
+ },
+ { // Entry 29
+ (long long int)0x1.f480p9,
+ 0x1.f440000000001p9
+ },
+ { // Entry 30
+ (long long int)0x1.p50,
+ 0x1.fffffffffffffp49
+ },
+ { // Entry 31
+ (long long int)0x1.p50,
+ 0x1.0p50
+ },
+ { // Entry 32
+ (long long int)0x1.p50,
+ 0x1.0000000000001p50
+ },
+ { // Entry 33
+ (long long int)0x1.p51,
+ 0x1.fffffffffffffp50
+ },
+ { // Entry 34
+ (long long int)0x1.p51,
+ 0x1.0p51
+ },
+ { // Entry 35
+ (long long int)0x1.p51,
+ 0x1.0000000000001p51
+ },
+ { // Entry 36
+ (long long int)0x1.p52,
+ 0x1.fffffffffffffp51
+ },
+ { // Entry 37
+ (long long int)0x1.p52,
+ 0x1.0p52
+ },
+ { // Entry 38
+ (long long int)0x1.00000000000010p52,
+ 0x1.0000000000001p52
+ },
+ { // Entry 39
+ (long long int)0x1.fffffffffffff0p52,
+ 0x1.fffffffffffffp52
+ },
+ { // Entry 40
+ (long long int)0x1.p53,
+ 0x1.0p53
+ },
+ { // Entry 41
+ (long long int)0x1.00000000000010p53,
+ 0x1.0000000000001p53
+ },
+ { // Entry 42
+ (long long int)0x1.fffffffffffff0p53,
+ 0x1.fffffffffffffp53
+ },
+ { // Entry 43
+ (long long int)0x1.p54,
+ 0x1.0p54
+ },
+ { // Entry 44
+ (long long int)0x1.00000000000010p54,
+ 0x1.0000000000001p54
+ },
+ { // Entry 45
+ (long long int)-0x1.p0,
+ -0x1.0000000000001p-1
+ },
+ { // Entry 46
+ (long long int)0.0,
+ -0x1.0p-1
+ },
+ { // Entry 47
+ (long long int)0.0,
+ -0x1.fffffffffffffp-2
+ },
+ { // Entry 48
+ (long long int)-0x1.p0,
+ -0x1.0000000000001p0
+ },
+ { // Entry 49
+ (long long int)-0x1.p0,
+ -0x1.0p0
+ },
+ { // Entry 50
+ (long long int)-0x1.p0,
+ -0x1.fffffffffffffp-1
+ },
+ { // Entry 51
+ (long long int)-0x1.p1,
+ -0x1.8000000000001p0
+ },
+ { // Entry 52
+ (long long int)-0x1.p1,
+ -0x1.8p0
+ },
+ { // Entry 53
+ (long long int)-0x1.p0,
+ -0x1.7ffffffffffffp0
+ },
+ { // Entry 54
+ (long long int)-0x1.p1,
+ -0x1.0000000000001p1
+ },
+ { // Entry 55
+ (long long int)-0x1.p1,
+ -0x1.0p1
+ },
+ { // Entry 56
+ (long long int)-0x1.p1,
+ -0x1.fffffffffffffp0
+ },
+ { // Entry 57
+ (long long int)-0x1.80p1,
+ -0x1.4000000000001p1
+ },
+ { // Entry 58
+ (long long int)-0x1.p1,
+ -0x1.4p1
+ },
+ { // Entry 59
+ (long long int)-0x1.p1,
+ -0x1.3ffffffffffffp1
+ },
+ { // Entry 60
+ (long long int)-0x1.90p6,
+ -0x1.9000000000001p6
+ },
+ { // Entry 61
+ (long long int)-0x1.90p6,
+ -0x1.9p6
+ },
+ { // Entry 62
+ (long long int)-0x1.90p6,
+ -0x1.8ffffffffffffp6
+ },
+ { // Entry 63
+ (long long int)-0x1.94p6,
+ -0x1.9200000000001p6
+ },
+ { // Entry 64
+ (long long int)-0x1.90p6,
+ -0x1.920p6
+ },
+ { // Entry 65
+ (long long int)-0x1.90p6,
+ -0x1.91fffffffffffp6
+ },
+ { // Entry 66
+ (long long int)-0x1.f4p9,
+ -0x1.f400000000001p9
+ },
+ { // Entry 67
+ (long long int)-0x1.f4p9,
+ -0x1.f40p9
+ },
+ { // Entry 68
+ (long long int)-0x1.f4p9,
+ -0x1.f3fffffffffffp9
+ },
+ { // Entry 69
+ (long long int)-0x1.f480p9,
+ -0x1.f440000000001p9
+ },
+ { // Entry 70
+ (long long int)-0x1.f4p9,
+ -0x1.f44p9
+ },
+ { // Entry 71
+ (long long int)-0x1.f4p9,
+ -0x1.f43ffffffffffp9
+ },
+ { // Entry 72
+ (long long int)-0x1.p50,
+ -0x1.0000000000001p50
+ },
+ { // Entry 73
+ (long long int)-0x1.p50,
+ -0x1.0p50
+ },
+ { // Entry 74
+ (long long int)-0x1.p50,
+ -0x1.fffffffffffffp49
+ },
+ { // Entry 75
+ (long long int)-0x1.p51,
+ -0x1.0000000000001p51
+ },
+ { // Entry 76
+ (long long int)-0x1.p51,
+ -0x1.0p51
+ },
+ { // Entry 77
+ (long long int)-0x1.p51,
+ -0x1.fffffffffffffp50
+ },
+ { // Entry 78
+ (long long int)-0x1.00000000000010p52,
+ -0x1.0000000000001p52
+ },
+ { // Entry 79
+ (long long int)-0x1.p52,
+ -0x1.0p52
+ },
+ { // Entry 80
+ (long long int)-0x1.p52,
+ -0x1.fffffffffffffp51
+ },
+ { // Entry 81
+ (long long int)-0x1.00000000000010p53,
+ -0x1.0000000000001p53
+ },
+ { // Entry 82
+ (long long int)-0x1.p53,
+ -0x1.0p53
+ },
+ { // Entry 83
+ (long long int)-0x1.fffffffffffff0p52,
+ -0x1.fffffffffffffp52
+ },
+ { // Entry 84
+ (long long int)-0x1.00000000000010p54,
+ -0x1.0000000000001p54
+ },
+ { // Entry 85
+ (long long int)-0x1.p54,
+ -0x1.0p54
+ },
+ { // Entry 86
+ (long long int)-0x1.fffffffffffff0p53,
+ -0x1.fffffffffffffp53
+ },
+ { // Entry 87
+ (long long int)0x1.p30,
+ 0x1.fffffffffffffp29
+ },
+ { // Entry 88
+ (long long int)0x1.p30,
+ 0x1.0p30
+ },
+ { // Entry 89
+ (long long int)0x1.p30,
+ 0x1.0000000000001p30
+ },
+ { // Entry 90
+ (long long int)0x1.fffffff8p30,
+ 0x1.fffffff7ffffep30
+ },
+ { // Entry 91
+ (long long int)0x1.fffffff8p30,
+ 0x1.fffffff7fffffp30
+ },
+ { // Entry 92
+ (long long int)0x1.fffffff8p30,
+ 0x1.fffffff80p30
+ },
+ { // Entry 93
+ (long long int)0x1.fffffff8p30,
+ 0x1.fffffff800001p30
+ },
+ { // Entry 94
+ (long long int)0x1.fffffff8p30,
+ 0x1.fffffff800002p30
+ },
+ { // Entry 95
+ (long long int)0x1.fffffff8p30,
+ 0x1.fffffff9ffffep30
+ },
+ { // Entry 96
+ (long long int)0x1.fffffff8p30,
+ 0x1.fffffff9fffffp30
+ },
+ { // Entry 97
+ (long long int)0x1.fffffff8p30,
+ 0x1.fffffffa0p30
+ },
+ { // Entry 98
+ (long long int)0x1.fffffffcp30,
+ 0x1.fffffffa00001p30
+ },
+ { // Entry 99
+ (long long int)0x1.fffffffcp30,
+ 0x1.fffffffa00002p30
+ },
+ { // Entry 100
+ (long long int)0x1.fffffffcp30,
+ 0x1.fffffffbffffep30
+ },
+ { // Entry 101
+ (long long int)0x1.fffffffcp30,
+ 0x1.fffffffbfffffp30
+ },
+ { // Entry 102
+ (long long int)0x1.fffffffcp30,
+ 0x1.fffffffc0p30
+ },
+ { // Entry 103
+ (long long int)0x1.fffffffcp30,
+ 0x1.fffffffc00001p30
+ },
+ { // Entry 104
+ (long long int)0x1.fffffffcp30,
+ 0x1.fffffffc00002p30
+ },
+ { // Entry 105
+ (long long int)0x1.fffffffcp30,
+ 0x1.fffffffdffffep30
+ },
+ { // Entry 106
+ (long long int)0x1.fffffffcp30,
+ 0x1.fffffffdfffffp30
+ },
+ { // Entry 107
+ (long long int)0x1.p31,
+ 0x1.fffffffe0p30
+ },
+ { // Entry 108
+ (long long int)0x1.p31,
+ 0x1.fffffffe00001p30
+ },
+ { // Entry 109
+ (long long int)0x1.p31,
+ 0x1.fffffffe00002p30
+ },
+ { // Entry 110
+ (long long int)0x1.p31,
+ 0x1.ffffffffffffep30
+ },
+ { // Entry 111
+ (long long int)0x1.p31,
+ 0x1.fffffffffffffp30
+ },
+ { // Entry 112
+ (long long int)0x1.p31,
+ 0x1.0p31
+ },
+ { // Entry 113
+ (long long int)0x1.p31,
+ 0x1.0000000000001p31
+ },
+ { // Entry 114
+ (long long int)0x1.p31,
+ 0x1.0000000000002p31
+ },
+ { // Entry 115
+ (long long int)0x1.p31,
+ 0x1.00000000ffffep31
+ },
+ { // Entry 116
+ (long long int)0x1.p31,
+ 0x1.00000000fffffp31
+ },
+ { // Entry 117
+ (long long int)0x1.p31,
+ 0x1.000000010p31
+ },
+ { // Entry 118
+ (long long int)0x1.00000002p31,
+ 0x1.0000000100001p31
+ },
+ { // Entry 119
+ (long long int)0x1.00000002p31,
+ 0x1.0000000100002p31
+ },
+ { // Entry 120
+ (long long int)0x1.ffffffe0p30,
+ 0x1.ffffffep30
+ },
+ { // Entry 121
+ (long long int)0x1.ffffffe4p30,
+ 0x1.ffffffe40p30
+ },
+ { // Entry 122
+ (long long int)0x1.ffffffe8p30,
+ 0x1.ffffffe80p30
+ },
+ { // Entry 123
+ (long long int)0x1.ffffffecp30,
+ 0x1.ffffffec0p30
+ },
+ { // Entry 124
+ (long long int)0x1.fffffff0p30,
+ 0x1.fffffffp30
+ },
+ { // Entry 125
+ (long long int)0x1.fffffff4p30,
+ 0x1.fffffff40p30
+ },
+ { // Entry 126
+ (long long int)0x1.fffffff8p30,
+ 0x1.fffffff80p30
+ },
+ { // Entry 127
+ (long long int)0x1.fffffffcp30,
+ 0x1.fffffffc0p30
+ },
+ { // Entry 128
+ (long long int)0x1.p31,
+ 0x1.0p31
+ },
+ { // Entry 129
+ (long long int)0x1.00000002p31,
+ 0x1.000000020p31
+ },
+ { // Entry 130
+ (long long int)-0x1.p30,
+ -0x1.0000000000001p30
+ },
+ { // Entry 131
+ (long long int)-0x1.p30,
+ -0x1.0p30
+ },
+ { // Entry 132
+ (long long int)-0x1.p30,
+ -0x1.fffffffffffffp29
+ },
+ { // Entry 133
+ (long long int)-0x1.fffffff8p30,
+ -0x1.fffffff800002p30
+ },
+ { // Entry 134
+ (long long int)-0x1.fffffff8p30,
+ -0x1.fffffff800001p30
+ },
+ { // Entry 135
+ (long long int)-0x1.fffffff8p30,
+ -0x1.fffffff80p30
+ },
+ { // Entry 136
+ (long long int)-0x1.fffffff8p30,
+ -0x1.fffffff7fffffp30
+ },
+ { // Entry 137
+ (long long int)-0x1.fffffff8p30,
+ -0x1.fffffff7ffffep30
+ },
+ { // Entry 138
+ (long long int)-0x1.fffffffcp30,
+ -0x1.fffffffa00002p30
+ },
+ { // Entry 139
+ (long long int)-0x1.fffffffcp30,
+ -0x1.fffffffa00001p30
+ },
+ { // Entry 140
+ (long long int)-0x1.fffffff8p30,
+ -0x1.fffffffa0p30
+ },
+ { // Entry 141
+ (long long int)-0x1.fffffff8p30,
+ -0x1.fffffff9fffffp30
+ },
+ { // Entry 142
+ (long long int)-0x1.fffffff8p30,
+ -0x1.fffffff9ffffep30
+ },
+ { // Entry 143
+ (long long int)-0x1.fffffffcp30,
+ -0x1.fffffffc00002p30
+ },
+ { // Entry 144
+ (long long int)-0x1.fffffffcp30,
+ -0x1.fffffffc00001p30
+ },
+ { // Entry 145
+ (long long int)-0x1.fffffffcp30,
+ -0x1.fffffffc0p30
+ },
+ { // Entry 146
+ (long long int)-0x1.fffffffcp30,
+ -0x1.fffffffbfffffp30
+ },
+ { // Entry 147
+ (long long int)-0x1.fffffffcp30,
+ -0x1.fffffffbffffep30
+ },
+ { // Entry 148
+ (long long int)-0x1.p31,
+ -0x1.fffffffe00002p30
+ },
+ { // Entry 149
+ (long long int)-0x1.p31,
+ -0x1.fffffffe00001p30
+ },
+ { // Entry 150
+ (long long int)-0x1.p31,
+ -0x1.fffffffe0p30
+ },
+ { // Entry 151
+ (long long int)-0x1.fffffffcp30,
+ -0x1.fffffffdfffffp30
+ },
+ { // Entry 152
+ (long long int)-0x1.fffffffcp30,
+ -0x1.fffffffdffffep30
+ },
+ { // Entry 153
+ (long long int)-0x1.p31,
+ -0x1.0000000000002p31
+ },
+ { // Entry 154
+ (long long int)-0x1.p31,
+ -0x1.0000000000001p31
+ },
+ { // Entry 155
+ (long long int)-0x1.p31,
+ -0x1.0p31
+ },
+ { // Entry 156
+ (long long int)-0x1.p31,
+ -0x1.fffffffffffffp30
+ },
+ { // Entry 157
+ (long long int)-0x1.p31,
+ -0x1.ffffffffffffep30
+ },
+ { // Entry 158
+ (long long int)-0x1.00000002p31,
+ -0x1.0000000100002p31
+ },
+ { // Entry 159
+ (long long int)-0x1.00000002p31,
+ -0x1.0000000100001p31
+ },
+ { // Entry 160
+ (long long int)-0x1.p31,
+ -0x1.000000010p31
+ },
+ { // Entry 161
+ (long long int)-0x1.p31,
+ -0x1.00000000fffffp31
+ },
+ { // Entry 162
+ (long long int)-0x1.p31,
+ -0x1.00000000ffffep31
+ },
+ { // Entry 163
+ (long long int)-0x1.ffffffe0p30,
+ -0x1.ffffffep30
+ },
+ { // Entry 164
+ (long long int)-0x1.ffffffe0p30,
+ -0x1.ffffffep30
+ },
+ { // Entry 165
+ (long long int)-0x1.ffffffe0p30,
+ -0x1.ffffffep30
+ },
+ { // Entry 166
+ (long long int)-0x1.ffffffe0p30,
+ -0x1.ffffffep30
+ },
+ { // Entry 167
+ (long long int)-0x1.ffffffe0p30,
+ -0x1.ffffffep30
+ },
+ { // Entry 168
+ (long long int)-0x1.ffffffe0p30,
+ -0x1.ffffffep30
+ },
+ { // Entry 169
+ (long long int)-0x1.ffffffe0p30,
+ -0x1.ffffffep30
+ },
+ { // Entry 170
+ (long long int)-0x1.ffffffe0p30,
+ -0x1.ffffffep30
+ },
+ { // Entry 171
+ (long long int)-0x1.ffffffe0p30,
+ -0x1.ffffffep30
+ },
+ { // Entry 172
+ (long long int)-0x1.ffffffe0p30,
+ -0x1.ffffffep30
+ },
+ { // Entry 173
+ (long long int)0x1.ffffffffffffe0p61,
+ 0x1.ffffffffffffep61
+ },
+ { // Entry 174
+ (long long int)0x1.fffffffffffff0p61,
+ 0x1.fffffffffffffp61
+ },
+ { // Entry 175
+ (long long int)0x1.p62,
+ 0x1.0p62
+ },
+ { // Entry 176
+ (long long int)0x1.00000000000010p62,
+ 0x1.0000000000001p62
+ },
+ { // Entry 177
+ (long long int)0x1.00000000000020p62,
+ 0x1.0000000000002p62
+ },
+ { // Entry 178
+ (long long int)0x1.ffffffffffffe0p62,
+ 0x1.ffffffffffffep62
+ },
+ { // Entry 179
+ (long long int)0x1.fffffffffffff0p62,
+ 0x1.fffffffffffffp62
+ },
+ { // Entry 180
+ (long long int)-0x1.00000000000020p62,
+ -0x1.0000000000002p62
+ },
+ { // Entry 181
+ (long long int)-0x1.00000000000010p62,
+ -0x1.0000000000001p62
+ },
+ { // Entry 182
+ (long long int)-0x1.p62,
+ -0x1.0p62
+ },
+ { // Entry 183
+ (long long int)-0x1.fffffffffffff0p61,
+ -0x1.fffffffffffffp61
+ },
+ { // Entry 184
+ (long long int)-0x1.ffffffffffffe0p61,
+ -0x1.ffffffffffffep61
+ },
+ { // Entry 185
+ (long long int)-0x1.p63,
+ -0x1.0p63
+ },
+ { // Entry 186
+ (long long int)-0x1.fffffffffffff0p62,
+ -0x1.fffffffffffffp62
+ },
+ { // Entry 187
+ (long long int)-0x1.ffffffffffffe0p62,
+ -0x1.ffffffffffffep62
+ },
+ { // Entry 188
+ (long long int)0x1.p62,
+ 0x1.0p62
+ },
+ { // Entry 189
+ (long long int)-0x1.p62,
+ -0x1.0p62
+ },
+ { // Entry 190
+ (long long int)-0x1.p63,
+ -0x1.0p63
+ },
+ { // Entry 191
+ (long long int)0x1.fffffffcp30,
+ 0x1.fffffffbfffffp30
+ },
+ { // Entry 192
+ (long long int)0x1.fffffffcp30,
+ 0x1.fffffffc0p30
+ },
+ { // Entry 193
+ (long long int)0x1.fffffffcp30,
+ 0x1.fffffffc00001p30
+ },
+ { // Entry 194
+ (long long int)-0x1.p31,
+ -0x1.0000000000001p31
+ },
+ { // Entry 195
+ (long long int)-0x1.p31,
+ -0x1.0p31
+ },
+ { // Entry 196
+ (long long int)-0x1.p31,
+ -0x1.fffffffffffffp30
+ },
+ { // Entry 197
+ (long long int)0x1.p2,
+ 0x1.fffffffffffffp1
+ },
+ { // Entry 198
+ (long long int)0x1.p2,
+ 0x1.0p2
+ },
+ { // Entry 199
+ (long long int)0x1.p2,
+ 0x1.0000000000001p2
+ },
+ { // Entry 200
+ (long long int)0x1.p3,
+ 0x1.fffffffffffffp2
+ },
+ { // Entry 201
+ (long long int)0x1.p3,
+ 0x1.0p3
+ },
+ { // Entry 202
+ (long long int)0x1.p3,
+ 0x1.0000000000001p3
+ },
+ { // Entry 203
+ (long long int)0x1.p4,
+ 0x1.fffffffffffffp3
+ },
+ { // Entry 204
+ (long long int)0x1.p4,
+ 0x1.0p4
+ },
+ { // Entry 205
+ (long long int)0x1.p4,
+ 0x1.0000000000001p4
+ },
+ { // Entry 206
+ (long long int)0x1.p5,
+ 0x1.fffffffffffffp4
+ },
+ { // Entry 207
+ (long long int)0x1.p5,
+ 0x1.0p5
+ },
+ { // Entry 208
+ (long long int)0x1.p5,
+ 0x1.0000000000001p5
+ },
+ { // Entry 209
+ (long long int)0x1.p6,
+ 0x1.fffffffffffffp5
+ },
+ { // Entry 210
+ (long long int)0x1.p6,
+ 0x1.0p6
+ },
+ { // Entry 211
+ (long long int)0x1.p6,
+ 0x1.0000000000001p6
+ },
+ { // Entry 212
+ (long long int)0x1.p7,
+ 0x1.fffffffffffffp6
+ },
+ { // Entry 213
+ (long long int)0x1.p7,
+ 0x1.0p7
+ },
+ { // Entry 214
+ (long long int)0x1.p7,
+ 0x1.0000000000001p7
+ },
+ { // Entry 215
+ (long long int)0x1.p8,
+ 0x1.fffffffffffffp7
+ },
+ { // Entry 216
+ (long long int)0x1.p8,
+ 0x1.0p8
+ },
+ { // Entry 217
+ (long long int)0x1.p8,
+ 0x1.0000000000001p8
+ },
+ { // Entry 218
+ (long long int)0x1.p9,
+ 0x1.fffffffffffffp8
+ },
+ { // Entry 219
+ (long long int)0x1.p9,
+ 0x1.0p9
+ },
+ { // Entry 220
+ (long long int)0x1.p9,
+ 0x1.0000000000001p9
+ },
+ { // Entry 221
+ (long long int)0x1.p10,
+ 0x1.fffffffffffffp9
+ },
+ { // Entry 222
+ (long long int)0x1.p10,
+ 0x1.0p10
+ },
+ { // Entry 223
+ (long long int)0x1.p10,
+ 0x1.0000000000001p10
+ },
+ { // Entry 224
+ (long long int)0x1.p11,
+ 0x1.fffffffffffffp10
+ },
+ { // Entry 225
+ (long long int)0x1.p11,
+ 0x1.0p11
+ },
+ { // Entry 226
+ (long long int)0x1.p11,
+ 0x1.0000000000001p11
+ },
+ { // Entry 227
+ (long long int)0x1.p12,
+ 0x1.fffffffffffffp11
+ },
+ { // Entry 228
+ (long long int)0x1.p12,
+ 0x1.0p12
+ },
+ { // Entry 229
+ (long long int)0x1.p12,
+ 0x1.0000000000001p12
+ },
+ { // Entry 230
+ (long long int)0x1.p2,
+ 0x1.1ffffffffffffp2
+ },
+ { // Entry 231
+ (long long int)0x1.p2,
+ 0x1.2p2
+ },
+ { // Entry 232
+ (long long int)0x1.40p2,
+ 0x1.2000000000001p2
+ },
+ { // Entry 233
+ (long long int)0x1.p3,
+ 0x1.0ffffffffffffp3
+ },
+ { // Entry 234
+ (long long int)0x1.p3,
+ 0x1.1p3
+ },
+ { // Entry 235
+ (long long int)0x1.20p3,
+ 0x1.1000000000001p3
+ },
+ { // Entry 236
+ (long long int)0x1.p4,
+ 0x1.07fffffffffffp4
+ },
+ { // Entry 237
+ (long long int)0x1.p4,
+ 0x1.080p4
+ },
+ { // Entry 238
+ (long long int)0x1.10p4,
+ 0x1.0800000000001p4
+ },
+ { // Entry 239
+ (long long int)0x1.p5,
+ 0x1.03fffffffffffp5
+ },
+ { // Entry 240
+ (long long int)0x1.p5,
+ 0x1.040p5
+ },
+ { // Entry 241
+ (long long int)0x1.08p5,
+ 0x1.0400000000001p5
+ },
+ { // Entry 242
+ (long long int)0x1.p6,
+ 0x1.01fffffffffffp6
+ },
+ { // Entry 243
+ (long long int)0x1.p6,
+ 0x1.020p6
+ },
+ { // Entry 244
+ (long long int)0x1.04p6,
+ 0x1.0200000000001p6
+ },
+ { // Entry 245
+ (long long int)0x1.p7,
+ 0x1.00fffffffffffp7
+ },
+ { // Entry 246
+ (long long int)0x1.p7,
+ 0x1.010p7
+ },
+ { // Entry 247
+ (long long int)0x1.02p7,
+ 0x1.0100000000001p7
+ },
+ { // Entry 248
+ (long long int)0x1.p8,
+ 0x1.007ffffffffffp8
+ },
+ { // Entry 249
+ (long long int)0x1.p8,
+ 0x1.008p8
+ },
+ { // Entry 250
+ (long long int)0x1.01p8,
+ 0x1.0080000000001p8
+ },
+ { // Entry 251
+ (long long int)0x1.p9,
+ 0x1.003ffffffffffp9
+ },
+ { // Entry 252
+ (long long int)0x1.p9,
+ 0x1.004p9
+ },
+ { // Entry 253
+ (long long int)0x1.0080p9,
+ 0x1.0040000000001p9
+ },
+ { // Entry 254
+ (long long int)0x1.p10,
+ 0x1.001ffffffffffp10
+ },
+ { // Entry 255
+ (long long int)0x1.p10,
+ 0x1.002p10
+ },
+ { // Entry 256
+ (long long int)0x1.0040p10,
+ 0x1.0020000000001p10
+ },
+ { // Entry 257
+ (long long int)0x1.0040p10,
+ 0x1.005ffffffffffp10
+ },
+ { // Entry 258
+ (long long int)0x1.0080p10,
+ 0x1.006p10
+ },
+ { // Entry 259
+ (long long int)0x1.0080p10,
+ 0x1.0060000000001p10
+ },
+ { // Entry 260
+ (long long int)0x1.p11,
+ 0x1.000ffffffffffp11
+ },
+ { // Entry 261
+ (long long int)0x1.p11,
+ 0x1.001p11
+ },
+ { // Entry 262
+ (long long int)0x1.0020p11,
+ 0x1.0010000000001p11
+ },
+ { // Entry 263
+ (long long int)0x1.p12,
+ 0x1.0007fffffffffp12
+ },
+ { // Entry 264
+ (long long int)0x1.p12,
+ 0x1.00080p12
+ },
+ { // Entry 265
+ (long long int)0x1.0010p12,
+ 0x1.0008000000001p12
+ },
+ { // Entry 266
+ (long long int)0x1.80p1,
+ 0x1.921fb54442d18p1
+ },
+ { // Entry 267
+ (long long int)-0x1.80p1,
+ -0x1.921fb54442d18p1
+ },
+ { // Entry 268
+ (long long int)0x1.p1,
+ 0x1.921fb54442d18p0
+ },
+ { // Entry 269
+ (long long int)-0x1.p1,
+ -0x1.921fb54442d18p0
+ },
+ { // Entry 270
+ (long long int)0x1.p0,
+ 0x1.0000000000001p0
+ },
+ { // Entry 271
+ (long long int)-0x1.p0,
+ -0x1.0000000000001p0
+ },
+ { // Entry 272
+ (long long int)0x1.p0,
+ 0x1.0p0
+ },
+ { // Entry 273
+ (long long int)-0x1.p0,
+ -0x1.0p0
+ },
+ { // Entry 274
+ (long long int)0x1.p0,
+ 0x1.fffffffffffffp-1
+ },
+ { // Entry 275
+ (long long int)-0x1.p0,
+ -0x1.fffffffffffffp-1
+ },
+ { // Entry 276
+ (long long int)0x1.p0,
+ 0x1.921fb54442d18p-1
+ },
+ { // Entry 277
+ (long long int)-0x1.p0,
+ -0x1.921fb54442d18p-1
+ },
+ { // Entry 278
+ (long long int)0.0,
+ 0x1.0000000000001p-1022
+ },
+ { // Entry 279
+ (long long int)0.0,
+ -0x1.0000000000001p-1022
+ },
+ { // Entry 280
+ (long long int)0.0,
+ 0x1.0p-1022
+ },
+ { // Entry 281
+ (long long int)0.0,
+ -0x1.0p-1022
+ },
+ { // Entry 282
+ (long long int)0.0,
+ 0x1.ffffffffffffep-1023
+ },
+ { // Entry 283
+ (long long int)0.0,
+ -0x1.ffffffffffffep-1023
+ },
+ { // Entry 284
+ (long long int)0.0,
+ 0x1.ffffffffffffcp-1023
+ },
+ { // Entry 285
+ (long long int)0.0,
+ -0x1.ffffffffffffcp-1023
+ },
+ { // Entry 286
+ (long long int)0.0,
+ 0x1.0p-1073
+ },
+ { // Entry 287
+ (long long int)0.0,
+ -0x1.0p-1073
+ },
+ { // Entry 288
+ (long long int)0.0,
+ 0x1.0p-1074
+ },
+ { // Entry 289
+ (long long int)0.0,
+ -0x1.0p-1074
+ },
+ { // Entry 290
+ (long long int)0.0,
+ 0.0
+ },
+ { // Entry 291
+ (long long int)0.0,
+ -0.0
+ },
+ { // Entry 292
+ (long long int)0x1.p1,
+ 0x1.8p0
+ },
+ { // Entry 293
+ (long long int)-0x1.p1,
+ -0x1.8p0
+ },
+ { // Entry 294
+ (long long int)0x1.p1,
+ 0x1.4p1
+ },
+ { // Entry 295
+ (long long int)-0x1.p1,
+ -0x1.4p1
+ },
+ { // Entry 296
+ (long long int)0.0,
+ 0x1.fffffp-2
+ },
+ { // Entry 297
+ (long long int)0.0,
+ 0x1.0p-1
+ },
+ { // Entry 298
+ (long long int)0x1.p0,
+ 0x1.00001p-1
+ },
+ { // Entry 299
+ (long long int)0.0,
+ -0x1.fffffp-2
+ },
+ { // Entry 300
+ (long long int)0.0,
+ -0x1.0p-1
+ },
+ { // Entry 301
+ (long long int)-0x1.p0,
+ -0x1.00001p-1
+ },
+ { // Entry 302
+ (long long int)0x1.p1,
+ 0x1.80001p0
+ },
+ { // Entry 303
+ (long long int)0x1.p0,
+ 0x1.7ffffp0
+ },
+ { // Entry 304
+ (long long int)-0x1.p1,
+ -0x1.80001p0
+ },
+ { // Entry 305
+ (long long int)-0x1.p0,
+ -0x1.7ffffp0
+ }
+};
\ No newline at end of file
diff --git a/tests/math_data/llrintf_intel_data.h b/tests/math_data/llrintf_intel_data.h
new file mode 100644
index 0000000..ecb22da
--- /dev/null
+++ b/tests/math_data/llrintf_intel_data.h
@@ -0,0 +1,1242 @@
+/*
+ * Copyright (C) 2016 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+static data_llong_1_t<float> g_llrintf_intel_data[] = {
+ { // Entry 0
+ (long long int)0.0,
+ -0x1.p-149
+ },
+ { // Entry 1
+ (long long int)0.0,
+ 0.0
+ },
+ { // Entry 2
+ (long long int)0.0,
+ 0x1.p-149
+ },
+ { // Entry 3
+ (long long int)0.0,
+ 0x1.fffffep-2
+ },
+ { // Entry 4
+ (long long int)0.0,
+ 0x1.p-1
+ },
+ { // Entry 5
+ (long long int)0x1.p0,
+ 0x1.000002p-1
+ },
+ { // Entry 6
+ (long long int)0x1.p0,
+ 0x1.fffffep-1
+ },
+ { // Entry 7
+ (long long int)0x1.p0,
+ 0x1.p0
+ },
+ { // Entry 8
+ (long long int)0x1.p0,
+ 0x1.000002p0
+ },
+ { // Entry 9
+ (long long int)0x1.p0,
+ 0x1.7ffffep0
+ },
+ { // Entry 10
+ (long long int)0x1.p1,
+ 0x1.80p0
+ },
+ { // Entry 11
+ (long long int)0x1.p1,
+ 0x1.800002p0
+ },
+ { // Entry 12
+ (long long int)0x1.p1,
+ 0x1.fffffep0
+ },
+ { // Entry 13
+ (long long int)0x1.p1,
+ 0x1.p1
+ },
+ { // Entry 14
+ (long long int)0x1.p1,
+ 0x1.000002p1
+ },
+ { // Entry 15
+ (long long int)0x1.p1,
+ 0x1.3ffffep1
+ },
+ { // Entry 16
+ (long long int)0x1.p1,
+ 0x1.40p1
+ },
+ { // Entry 17
+ (long long int)0x1.80p1,
+ 0x1.400002p1
+ },
+ { // Entry 18
+ (long long int)0x1.90p6,
+ 0x1.8ffffep6
+ },
+ { // Entry 19
+ (long long int)0x1.90p6,
+ 0x1.90p6
+ },
+ { // Entry 20
+ (long long int)0x1.90p6,
+ 0x1.900002p6
+ },
+ { // Entry 21
+ (long long int)0x1.90p6,
+ 0x1.91fffep6
+ },
+ { // Entry 22
+ (long long int)0x1.90p6,
+ 0x1.92p6
+ },
+ { // Entry 23
+ (long long int)0x1.94p6,
+ 0x1.920002p6
+ },
+ { // Entry 24
+ (long long int)0x1.f4p9,
+ 0x1.f3fffep9
+ },
+ { // Entry 25
+ (long long int)0x1.f4p9,
+ 0x1.f4p9
+ },
+ { // Entry 26
+ (long long int)0x1.f4p9,
+ 0x1.f40002p9
+ },
+ { // Entry 27
+ (long long int)0x1.f4p9,
+ 0x1.f43ffep9
+ },
+ { // Entry 28
+ (long long int)0x1.f4p9,
+ 0x1.f440p9
+ },
+ { // Entry 29
+ (long long int)0x1.f480p9,
+ 0x1.f44002p9
+ },
+ { // Entry 30
+ (long long int)0x1.p21,
+ 0x1.fffffep20
+ },
+ { // Entry 31
+ (long long int)0x1.p21,
+ 0x1.p21
+ },
+ { // Entry 32
+ (long long int)0x1.p21,
+ 0x1.000002p21
+ },
+ { // Entry 33
+ (long long int)0x1.p22,
+ 0x1.fffffep21
+ },
+ { // Entry 34
+ (long long int)0x1.p22,
+ 0x1.p22
+ },
+ { // Entry 35
+ (long long int)0x1.p22,
+ 0x1.000002p22
+ },
+ { // Entry 36
+ (long long int)0x1.p23,
+ 0x1.fffffep22
+ },
+ { // Entry 37
+ (long long int)0x1.p23,
+ 0x1.p23
+ },
+ { // Entry 38
+ (long long int)0x1.000002p23,
+ 0x1.000002p23
+ },
+ { // Entry 39
+ (long long int)0x1.fffffep23,
+ 0x1.fffffep23
+ },
+ { // Entry 40
+ (long long int)0x1.p24,
+ 0x1.p24
+ },
+ { // Entry 41
+ (long long int)0x1.000002p24,
+ 0x1.000002p24
+ },
+ { // Entry 42
+ (long long int)0x1.fffffep24,
+ 0x1.fffffep24
+ },
+ { // Entry 43
+ (long long int)0x1.p25,
+ 0x1.p25
+ },
+ { // Entry 44
+ (long long int)0x1.000002p25,
+ 0x1.000002p25
+ },
+ { // Entry 45
+ (long long int)-0x1.p0,
+ -0x1.000002p-1
+ },
+ { // Entry 46
+ (long long int)0.0,
+ -0x1.p-1
+ },
+ { // Entry 47
+ (long long int)0.0,
+ -0x1.fffffep-2
+ },
+ { // Entry 48
+ (long long int)-0x1.p0,
+ -0x1.000002p0
+ },
+ { // Entry 49
+ (long long int)-0x1.p0,
+ -0x1.p0
+ },
+ { // Entry 50
+ (long long int)-0x1.p0,
+ -0x1.fffffep-1
+ },
+ { // Entry 51
+ (long long int)-0x1.p1,
+ -0x1.800002p0
+ },
+ { // Entry 52
+ (long long int)-0x1.p1,
+ -0x1.80p0
+ },
+ { // Entry 53
+ (long long int)-0x1.p0,
+ -0x1.7ffffep0
+ },
+ { // Entry 54
+ (long long int)-0x1.p1,
+ -0x1.000002p1
+ },
+ { // Entry 55
+ (long long int)-0x1.p1,
+ -0x1.p1
+ },
+ { // Entry 56
+ (long long int)-0x1.p1,
+ -0x1.fffffep0
+ },
+ { // Entry 57
+ (long long int)-0x1.80p1,
+ -0x1.400002p1
+ },
+ { // Entry 58
+ (long long int)-0x1.p1,
+ -0x1.40p1
+ },
+ { // Entry 59
+ (long long int)-0x1.p1,
+ -0x1.3ffffep1
+ },
+ { // Entry 60
+ (long long int)-0x1.90p6,
+ -0x1.900002p6
+ },
+ { // Entry 61
+ (long long int)-0x1.90p6,
+ -0x1.90p6
+ },
+ { // Entry 62
+ (long long int)-0x1.90p6,
+ -0x1.8ffffep6
+ },
+ { // Entry 63
+ (long long int)-0x1.94p6,
+ -0x1.920002p6
+ },
+ { // Entry 64
+ (long long int)-0x1.90p6,
+ -0x1.92p6
+ },
+ { // Entry 65
+ (long long int)-0x1.90p6,
+ -0x1.91fffep6
+ },
+ { // Entry 66
+ (long long int)-0x1.f4p9,
+ -0x1.f40002p9
+ },
+ { // Entry 67
+ (long long int)-0x1.f4p9,
+ -0x1.f4p9
+ },
+ { // Entry 68
+ (long long int)-0x1.f4p9,
+ -0x1.f3fffep9
+ },
+ { // Entry 69
+ (long long int)-0x1.f480p9,
+ -0x1.f44002p9
+ },
+ { // Entry 70
+ (long long int)-0x1.f4p9,
+ -0x1.f440p9
+ },
+ { // Entry 71
+ (long long int)-0x1.f4p9,
+ -0x1.f43ffep9
+ },
+ { // Entry 72
+ (long long int)-0x1.p21,
+ -0x1.000002p21
+ },
+ { // Entry 73
+ (long long int)-0x1.p21,
+ -0x1.p21
+ },
+ { // Entry 74
+ (long long int)-0x1.p21,
+ -0x1.fffffep20
+ },
+ { // Entry 75
+ (long long int)-0x1.p22,
+ -0x1.000002p22
+ },
+ { // Entry 76
+ (long long int)-0x1.p22,
+ -0x1.p22
+ },
+ { // Entry 77
+ (long long int)-0x1.p22,
+ -0x1.fffffep21
+ },
+ { // Entry 78
+ (long long int)-0x1.000002p23,
+ -0x1.000002p23
+ },
+ { // Entry 79
+ (long long int)-0x1.p23,
+ -0x1.p23
+ },
+ { // Entry 80
+ (long long int)-0x1.p23,
+ -0x1.fffffep22
+ },
+ { // Entry 81
+ (long long int)-0x1.000002p24,
+ -0x1.000002p24
+ },
+ { // Entry 82
+ (long long int)-0x1.p24,
+ -0x1.p24
+ },
+ { // Entry 83
+ (long long int)-0x1.fffffep23,
+ -0x1.fffffep23
+ },
+ { // Entry 84
+ (long long int)-0x1.000002p25,
+ -0x1.000002p25
+ },
+ { // Entry 85
+ (long long int)-0x1.p25,
+ -0x1.p25
+ },
+ { // Entry 86
+ (long long int)-0x1.fffffep24,
+ -0x1.fffffep24
+ },
+ { // Entry 87
+ (long long int)0x1.fffffep29,
+ 0x1.fffffep29
+ },
+ { // Entry 88
+ (long long int)0x1.p30,
+ 0x1.p30
+ },
+ { // Entry 89
+ (long long int)0x1.000002p30,
+ 0x1.000002p30
+ },
+ { // Entry 90
+ (long long int)0x1.fffffcp30,
+ 0x1.fffffcp30
+ },
+ { // Entry 91
+ (long long int)0x1.fffffep30,
+ 0x1.fffffep30
+ },
+ { // Entry 92
+ (long long int)0x1.p31,
+ 0x1.p31
+ },
+ { // Entry 93
+ (long long int)0x1.000002p31,
+ 0x1.000002p31
+ },
+ { // Entry 94
+ (long long int)0x1.000004p31,
+ 0x1.000004p31
+ },
+ { // Entry 95
+ (long long int)0x1.fffffcp30,
+ 0x1.fffffcp30
+ },
+ { // Entry 96
+ (long long int)0x1.fffffep30,
+ 0x1.fffffep30
+ },
+ { // Entry 97
+ (long long int)0x1.p31,
+ 0x1.p31
+ },
+ { // Entry 98
+ (long long int)0x1.000002p31,
+ 0x1.000002p31
+ },
+ { // Entry 99
+ (long long int)0x1.000004p31,
+ 0x1.000004p31
+ },
+ { // Entry 100
+ (long long int)0x1.fffffcp30,
+ 0x1.fffffcp30
+ },
+ { // Entry 101
+ (long long int)0x1.fffffep30,
+ 0x1.fffffep30
+ },
+ { // Entry 102
+ (long long int)0x1.p31,
+ 0x1.p31
+ },
+ { // Entry 103
+ (long long int)0x1.000002p31,
+ 0x1.000002p31
+ },
+ { // Entry 104
+ (long long int)0x1.000004p31,
+ 0x1.000004p31
+ },
+ { // Entry 105
+ (long long int)0x1.fffffcp30,
+ 0x1.fffffcp30
+ },
+ { // Entry 106
+ (long long int)0x1.fffffep30,
+ 0x1.fffffep30
+ },
+ { // Entry 107
+ (long long int)0x1.p31,
+ 0x1.p31
+ },
+ { // Entry 108
+ (long long int)0x1.000002p31,
+ 0x1.000002p31
+ },
+ { // Entry 109
+ (long long int)0x1.000004p31,
+ 0x1.000004p31
+ },
+ { // Entry 110
+ (long long int)0x1.fffffcp30,
+ 0x1.fffffcp30
+ },
+ { // Entry 111
+ (long long int)0x1.fffffep30,
+ 0x1.fffffep30
+ },
+ { // Entry 112
+ (long long int)0x1.p31,
+ 0x1.p31
+ },
+ { // Entry 113
+ (long long int)0x1.000002p31,
+ 0x1.000002p31
+ },
+ { // Entry 114
+ (long long int)0x1.000004p31,
+ 0x1.000004p31
+ },
+ { // Entry 115
+ (long long int)0x1.fffffcp30,
+ 0x1.fffffcp30
+ },
+ { // Entry 116
+ (long long int)0x1.fffffep30,
+ 0x1.fffffep30
+ },
+ { // Entry 117
+ (long long int)0x1.p31,
+ 0x1.p31
+ },
+ { // Entry 118
+ (long long int)0x1.000002p31,
+ 0x1.000002p31
+ },
+ { // Entry 119
+ (long long int)0x1.000004p31,
+ 0x1.000004p31
+ },
+ { // Entry 120
+ (long long int)0x1.p31,
+ 0x1.p31
+ },
+ { // Entry 121
+ (long long int)0x1.p31,
+ 0x1.p31
+ },
+ { // Entry 122
+ (long long int)0x1.p31,
+ 0x1.p31
+ },
+ { // Entry 123
+ (long long int)0x1.p31,
+ 0x1.p31
+ },
+ { // Entry 124
+ (long long int)0x1.p31,
+ 0x1.p31
+ },
+ { // Entry 125
+ (long long int)0x1.p31,
+ 0x1.p31
+ },
+ { // Entry 126
+ (long long int)0x1.p31,
+ 0x1.p31
+ },
+ { // Entry 127
+ (long long int)0x1.p31,
+ 0x1.p31
+ },
+ { // Entry 128
+ (long long int)0x1.p31,
+ 0x1.p31
+ },
+ { // Entry 129
+ (long long int)0x1.p31,
+ 0x1.p31
+ },
+ { // Entry 130
+ (long long int)-0x1.000002p30,
+ -0x1.000002p30
+ },
+ { // Entry 131
+ (long long int)-0x1.p30,
+ -0x1.p30
+ },
+ { // Entry 132
+ (long long int)-0x1.fffffep29,
+ -0x1.fffffep29
+ },
+ { // Entry 133
+ (long long int)-0x1.000004p31,
+ -0x1.000004p31
+ },
+ { // Entry 134
+ (long long int)-0x1.000002p31,
+ -0x1.000002p31
+ },
+ { // Entry 135
+ (long long int)-0x1.p31,
+ -0x1.p31
+ },
+ { // Entry 136
+ (long long int)-0x1.fffffep30,
+ -0x1.fffffep30
+ },
+ { // Entry 137
+ (long long int)-0x1.fffffcp30,
+ -0x1.fffffcp30
+ },
+ { // Entry 138
+ (long long int)-0x1.000004p31,
+ -0x1.000004p31
+ },
+ { // Entry 139
+ (long long int)-0x1.000002p31,
+ -0x1.000002p31
+ },
+ { // Entry 140
+ (long long int)-0x1.p31,
+ -0x1.p31
+ },
+ { // Entry 141
+ (long long int)-0x1.fffffep30,
+ -0x1.fffffep30
+ },
+ { // Entry 142
+ (long long int)-0x1.fffffcp30,
+ -0x1.fffffcp30
+ },
+ { // Entry 143
+ (long long int)-0x1.000004p31,
+ -0x1.000004p31
+ },
+ { // Entry 144
+ (long long int)-0x1.000002p31,
+ -0x1.000002p31
+ },
+ { // Entry 145
+ (long long int)-0x1.p31,
+ -0x1.p31
+ },
+ { // Entry 146
+ (long long int)-0x1.fffffep30,
+ -0x1.fffffep30
+ },
+ { // Entry 147
+ (long long int)-0x1.fffffcp30,
+ -0x1.fffffcp30
+ },
+ { // Entry 148
+ (long long int)-0x1.000004p31,
+ -0x1.000004p31
+ },
+ { // Entry 149
+ (long long int)-0x1.000002p31,
+ -0x1.000002p31
+ },
+ { // Entry 150
+ (long long int)-0x1.p31,
+ -0x1.p31
+ },
+ { // Entry 151
+ (long long int)-0x1.fffffep30,
+ -0x1.fffffep30
+ },
+ { // Entry 152
+ (long long int)-0x1.fffffcp30,
+ -0x1.fffffcp30
+ },
+ { // Entry 153
+ (long long int)-0x1.000004p31,
+ -0x1.000004p31
+ },
+ { // Entry 154
+ (long long int)-0x1.000002p31,
+ -0x1.000002p31
+ },
+ { // Entry 155
+ (long long int)-0x1.p31,
+ -0x1.p31
+ },
+ { // Entry 156
+ (long long int)-0x1.fffffep30,
+ -0x1.fffffep30
+ },
+ { // Entry 157
+ (long long int)-0x1.fffffcp30,
+ -0x1.fffffcp30
+ },
+ { // Entry 158
+ (long long int)-0x1.000004p31,
+ -0x1.000004p31
+ },
+ { // Entry 159
+ (long long int)-0x1.000002p31,
+ -0x1.000002p31
+ },
+ { // Entry 160
+ (long long int)-0x1.p31,
+ -0x1.p31
+ },
+ { // Entry 161
+ (long long int)-0x1.fffffep30,
+ -0x1.fffffep30
+ },
+ { // Entry 162
+ (long long int)-0x1.fffffcp30,
+ -0x1.fffffcp30
+ },
+ { // Entry 163
+ (long long int)-0x1.p31,
+ -0x1.p31
+ },
+ { // Entry 164
+ (long long int)-0x1.p31,
+ -0x1.p31
+ },
+ { // Entry 165
+ (long long int)-0x1.p31,
+ -0x1.p31
+ },
+ { // Entry 166
+ (long long int)-0x1.p31,
+ -0x1.p31
+ },
+ { // Entry 167
+ (long long int)-0x1.p31,
+ -0x1.p31
+ },
+ { // Entry 168
+ (long long int)-0x1.p31,
+ -0x1.p31
+ },
+ { // Entry 169
+ (long long int)-0x1.p31,
+ -0x1.p31
+ },
+ { // Entry 170
+ (long long int)-0x1.p31,
+ -0x1.p31
+ },
+ { // Entry 171
+ (long long int)-0x1.p31,
+ -0x1.p31
+ },
+ { // Entry 172
+ (long long int)-0x1.p31,
+ -0x1.p31
+ },
+ { // Entry 173
+ (long long int)0x1.fffffcp61,
+ 0x1.fffffcp61
+ },
+ { // Entry 174
+ (long long int)0x1.fffffep61,
+ 0x1.fffffep61
+ },
+ { // Entry 175
+ (long long int)0x1.p62,
+ 0x1.p62
+ },
+ { // Entry 176
+ (long long int)0x1.000002p62,
+ 0x1.000002p62
+ },
+ { // Entry 177
+ (long long int)0x1.000004p62,
+ 0x1.000004p62
+ },
+ { // Entry 178
+ (long long int)0x1.fffffcp62,
+ 0x1.fffffcp62
+ },
+ { // Entry 179
+ (long long int)0x1.fffffep62,
+ 0x1.fffffep62
+ },
+ { // Entry 180
+ (long long int)-0x1.000004p62,
+ -0x1.000004p62
+ },
+ { // Entry 181
+ (long long int)-0x1.000002p62,
+ -0x1.000002p62
+ },
+ { // Entry 182
+ (long long int)-0x1.p62,
+ -0x1.p62
+ },
+ { // Entry 183
+ (long long int)-0x1.fffffep61,
+ -0x1.fffffep61
+ },
+ { // Entry 184
+ (long long int)-0x1.fffffcp61,
+ -0x1.fffffcp61
+ },
+ { // Entry 185
+ (long long int)-0x1.p63,
+ -0x1.p63
+ },
+ { // Entry 186
+ (long long int)-0x1.fffffep62,
+ -0x1.fffffep62
+ },
+ { // Entry 187
+ (long long int)-0x1.fffffcp62,
+ -0x1.fffffcp62
+ },
+ { // Entry 188
+ (long long int)0x1.p62,
+ 0x1.p62
+ },
+ { // Entry 189
+ (long long int)-0x1.p62,
+ -0x1.p62
+ },
+ { // Entry 190
+ (long long int)-0x1.p63,
+ -0x1.p63
+ },
+ { // Entry 191
+ (long long int)0x1.fffffcp30,
+ 0x1.fffffcp30
+ },
+ { // Entry 192
+ (long long int)0x1.fffffep30,
+ 0x1.fffffep30
+ },
+ { // Entry 193
+ (long long int)0x1.p31,
+ 0x1.p31
+ },
+ { // Entry 194
+ (long long int)-0x1.000002p31,
+ -0x1.000002p31
+ },
+ { // Entry 195
+ (long long int)-0x1.p31,
+ -0x1.p31
+ },
+ { // Entry 196
+ (long long int)-0x1.fffffep30,
+ -0x1.fffffep30
+ },
+ { // Entry 197
+ (long long int)0x1.p2,
+ 0x1.fffffep1
+ },
+ { // Entry 198
+ (long long int)0x1.p2,
+ 0x1.p2
+ },
+ { // Entry 199
+ (long long int)0x1.p2,
+ 0x1.000002p2
+ },
+ { // Entry 200
+ (long long int)0x1.p3,
+ 0x1.fffffep2
+ },
+ { // Entry 201
+ (long long int)0x1.p3,
+ 0x1.p3
+ },
+ { // Entry 202
+ (long long int)0x1.p3,
+ 0x1.000002p3
+ },
+ { // Entry 203
+ (long long int)0x1.p4,
+ 0x1.fffffep3
+ },
+ { // Entry 204
+ (long long int)0x1.p4,
+ 0x1.p4
+ },
+ { // Entry 205
+ (long long int)0x1.p4,
+ 0x1.000002p4
+ },
+ { // Entry 206
+ (long long int)0x1.p5,
+ 0x1.fffffep4
+ },
+ { // Entry 207
+ (long long int)0x1.p5,
+ 0x1.p5
+ },
+ { // Entry 208
+ (long long int)0x1.p5,
+ 0x1.000002p5
+ },
+ { // Entry 209
+ (long long int)0x1.p6,
+ 0x1.fffffep5
+ },
+ { // Entry 210
+ (long long int)0x1.p6,
+ 0x1.p6
+ },
+ { // Entry 211
+ (long long int)0x1.p6,
+ 0x1.000002p6
+ },
+ { // Entry 212
+ (long long int)0x1.p7,
+ 0x1.fffffep6
+ },
+ { // Entry 213
+ (long long int)0x1.p7,
+ 0x1.p7
+ },
+ { // Entry 214
+ (long long int)0x1.p7,
+ 0x1.000002p7
+ },
+ { // Entry 215
+ (long long int)0x1.p8,
+ 0x1.fffffep7
+ },
+ { // Entry 216
+ (long long int)0x1.p8,
+ 0x1.p8
+ },
+ { // Entry 217
+ (long long int)0x1.p8,
+ 0x1.000002p8
+ },
+ { // Entry 218
+ (long long int)0x1.p9,
+ 0x1.fffffep8
+ },
+ { // Entry 219
+ (long long int)0x1.p9,
+ 0x1.p9
+ },
+ { // Entry 220
+ (long long int)0x1.p9,
+ 0x1.000002p9
+ },
+ { // Entry 221
+ (long long int)0x1.p10,
+ 0x1.fffffep9
+ },
+ { // Entry 222
+ (long long int)0x1.p10,
+ 0x1.p10
+ },
+ { // Entry 223
+ (long long int)0x1.p10,
+ 0x1.000002p10
+ },
+ { // Entry 224
+ (long long int)0x1.p11,
+ 0x1.fffffep10
+ },
+ { // Entry 225
+ (long long int)0x1.p11,
+ 0x1.p11
+ },
+ { // Entry 226
+ (long long int)0x1.p11,
+ 0x1.000002p11
+ },
+ { // Entry 227
+ (long long int)0x1.p12,
+ 0x1.fffffep11
+ },
+ { // Entry 228
+ (long long int)0x1.p12,
+ 0x1.p12
+ },
+ { // Entry 229
+ (long long int)0x1.p12,
+ 0x1.000002p12
+ },
+ { // Entry 230
+ (long long int)0x1.p2,
+ 0x1.1ffffep2
+ },
+ { // Entry 231
+ (long long int)0x1.p2,
+ 0x1.20p2
+ },
+ { // Entry 232
+ (long long int)0x1.40p2,
+ 0x1.200002p2
+ },
+ { // Entry 233
+ (long long int)0x1.p3,
+ 0x1.0ffffep3
+ },
+ { // Entry 234
+ (long long int)0x1.p3,
+ 0x1.10p3
+ },
+ { // Entry 235
+ (long long int)0x1.20p3,
+ 0x1.100002p3
+ },
+ { // Entry 236
+ (long long int)0x1.p4,
+ 0x1.07fffep4
+ },
+ { // Entry 237
+ (long long int)0x1.p4,
+ 0x1.08p4
+ },
+ { // Entry 238
+ (long long int)0x1.10p4,
+ 0x1.080002p4
+ },
+ { // Entry 239
+ (long long int)0x1.p5,
+ 0x1.03fffep5
+ },
+ { // Entry 240
+ (long long int)0x1.p5,
+ 0x1.04p5
+ },
+ { // Entry 241
+ (long long int)0x1.08p5,
+ 0x1.040002p5
+ },
+ { // Entry 242
+ (long long int)0x1.p6,
+ 0x1.01fffep6
+ },
+ { // Entry 243
+ (long long int)0x1.p6,
+ 0x1.02p6
+ },
+ { // Entry 244
+ (long long int)0x1.04p6,
+ 0x1.020002p6
+ },
+ { // Entry 245
+ (long long int)0x1.p7,
+ 0x1.00fffep7
+ },
+ { // Entry 246
+ (long long int)0x1.p7,
+ 0x1.01p7
+ },
+ { // Entry 247
+ (long long int)0x1.02p7,
+ 0x1.010002p7
+ },
+ { // Entry 248
+ (long long int)0x1.p8,
+ 0x1.007ffep8
+ },
+ { // Entry 249
+ (long long int)0x1.p8,
+ 0x1.0080p8
+ },
+ { // Entry 250
+ (long long int)0x1.01p8,
+ 0x1.008002p8
+ },
+ { // Entry 251
+ (long long int)0x1.p9,
+ 0x1.003ffep9
+ },
+ { // Entry 252
+ (long long int)0x1.p9,
+ 0x1.0040p9
+ },
+ { // Entry 253
+ (long long int)0x1.0080p9,
+ 0x1.004002p9
+ },
+ { // Entry 254
+ (long long int)0x1.p10,
+ 0x1.001ffep10
+ },
+ { // Entry 255
+ (long long int)0x1.p10,
+ 0x1.0020p10
+ },
+ { // Entry 256
+ (long long int)0x1.0040p10,
+ 0x1.002002p10
+ },
+ { // Entry 257
+ (long long int)0x1.0040p10,
+ 0x1.005ffep10
+ },
+ { // Entry 258
+ (long long int)0x1.0080p10,
+ 0x1.0060p10
+ },
+ { // Entry 259
+ (long long int)0x1.0080p10,
+ 0x1.006002p10
+ },
+ { // Entry 260
+ (long long int)0x1.p11,
+ 0x1.000ffep11
+ },
+ { // Entry 261
+ (long long int)0x1.p11,
+ 0x1.0010p11
+ },
+ { // Entry 262
+ (long long int)0x1.0020p11,
+ 0x1.001002p11
+ },
+ { // Entry 263
+ (long long int)0x1.p12,
+ 0x1.0007fep12
+ },
+ { // Entry 264
+ (long long int)0x1.p12,
+ 0x1.0008p12
+ },
+ { // Entry 265
+ (long long int)0x1.0010p12,
+ 0x1.000802p12
+ },
+ { // Entry 266
+ (long long int)0x1.80p1,
+ 0x1.921fb6p1
+ },
+ { // Entry 267
+ (long long int)-0x1.80p1,
+ -0x1.921fb6p1
+ },
+ { // Entry 268
+ (long long int)0x1.p1,
+ 0x1.921fb6p0
+ },
+ { // Entry 269
+ (long long int)-0x1.p1,
+ -0x1.921fb6p0
+ },
+ { // Entry 270
+ (long long int)0x1.p0,
+ 0x1.000002p0
+ },
+ { // Entry 271
+ (long long int)-0x1.p0,
+ -0x1.000002p0
+ },
+ { // Entry 272
+ (long long int)0x1.p0,
+ 0x1.p0
+ },
+ { // Entry 273
+ (long long int)-0x1.p0,
+ -0x1.p0
+ },
+ { // Entry 274
+ (long long int)0x1.p0,
+ 0x1.fffffep-1
+ },
+ { // Entry 275
+ (long long int)-0x1.p0,
+ -0x1.fffffep-1
+ },
+ { // Entry 276
+ (long long int)0x1.p0,
+ 0x1.921fb6p-1
+ },
+ { // Entry 277
+ (long long int)-0x1.p0,
+ -0x1.921fb6p-1
+ },
+ { // Entry 278
+ (long long int)0.0,
+ 0x1.000002p-126
+ },
+ { // Entry 279
+ (long long int)0.0,
+ -0x1.000002p-126
+ },
+ { // Entry 280
+ (long long int)0.0,
+ 0x1.p-126
+ },
+ { // Entry 281
+ (long long int)0.0,
+ -0x1.p-126
+ },
+ { // Entry 282
+ (long long int)0.0,
+ 0x1.fffffcp-127
+ },
+ { // Entry 283
+ (long long int)0.0,
+ -0x1.fffffcp-127
+ },
+ { // Entry 284
+ (long long int)0.0,
+ 0x1.fffff8p-127
+ },
+ { // Entry 285
+ (long long int)0.0,
+ -0x1.fffff8p-127
+ },
+ { // Entry 286
+ (long long int)0.0,
+ 0x1.p-148
+ },
+ { // Entry 287
+ (long long int)0.0,
+ -0x1.p-148
+ },
+ { // Entry 288
+ (long long int)0.0,
+ 0x1.p-149
+ },
+ { // Entry 289
+ (long long int)0.0,
+ -0x1.p-149
+ },
+ { // Entry 290
+ (long long int)0.0,
+ 0.0f
+ },
+ { // Entry 291
+ (long long int)0.0,
+ -0.0f
+ },
+ { // Entry 292
+ (long long int)0x1.p1,
+ 0x1.80p0
+ },
+ { // Entry 293
+ (long long int)-0x1.p1,
+ -0x1.80p0
+ },
+ { // Entry 294
+ (long long int)0x1.p1,
+ 0x1.40p1
+ },
+ { // Entry 295
+ (long long int)-0x1.p1,
+ -0x1.40p1
+ },
+ { // Entry 296
+ (long long int)0.0,
+ 0x1.fffff0p-2
+ },
+ { // Entry 297
+ (long long int)0.0,
+ 0x1.p-1
+ },
+ { // Entry 298
+ (long long int)0x1.p0,
+ 0x1.000010p-1
+ },
+ { // Entry 299
+ (long long int)0.0,
+ -0x1.fffff0p-2
+ },
+ { // Entry 300
+ (long long int)0.0,
+ -0x1.p-1
+ },
+ { // Entry 301
+ (long long int)-0x1.p0,
+ -0x1.000010p-1
+ },
+ { // Entry 302
+ (long long int)0x1.p1,
+ 0x1.800010p0
+ },
+ { // Entry 303
+ (long long int)0x1.p0,
+ 0x1.7ffff0p0
+ },
+ { // Entry 304
+ (long long int)-0x1.p1,
+ -0x1.800010p0
+ },
+ { // Entry 305
+ (long long int)-0x1.p0,
+ -0x1.7ffff0p0
+ }
+};
\ No newline at end of file
diff --git a/tests/math_data/lrint_intel_data.h b/tests/math_data/lrint_intel_data.h
new file mode 100644
index 0000000..a034be4
--- /dev/null
+++ b/tests/math_data/lrint_intel_data.h
@@ -0,0 +1,982 @@
+/*
+ * Copyright (C) 2016 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+static data_long_1_t<double> g_lrint_intel_data[] = {
+ { // Entry 0
+ (long int)0.0,
+ -0x1.0p-1074
+ },
+ { // Entry 1
+ (long int)0.0,
+ -0.0
+ },
+ { // Entry 2
+ (long int)0.0,
+ 0x1.0p-1074
+ },
+ { // Entry 3
+ (long int)0.0,
+ 0x1.fffffffffffffp-2
+ },
+ { // Entry 4
+ (long int)0.0,
+ 0x1.0p-1
+ },
+ { // Entry 5
+ (long int)0x1.p0,
+ 0x1.0000000000001p-1
+ },
+ { // Entry 6
+ (long int)0x1.p0,
+ 0x1.fffffffffffffp-1
+ },
+ { // Entry 7
+ (long int)0x1.p0,
+ 0x1.0p0
+ },
+ { // Entry 8
+ (long int)0x1.p0,
+ 0x1.0000000000001p0
+ },
+ { // Entry 9
+ (long int)0x1.p0,
+ 0x1.7ffffffffffffp0
+ },
+ { // Entry 10
+ (long int)0x1.p1,
+ 0x1.8p0
+ },
+ { // Entry 11
+ (long int)0x1.p1,
+ 0x1.8000000000001p0
+ },
+ { // Entry 12
+ (long int)0x1.p1,
+ 0x1.fffffffffffffp0
+ },
+ { // Entry 13
+ (long int)0x1.p1,
+ 0x1.0p1
+ },
+ { // Entry 14
+ (long int)0x1.p1,
+ 0x1.0000000000001p1
+ },
+ { // Entry 15
+ (long int)0x1.p1,
+ 0x1.3ffffffffffffp1
+ },
+ { // Entry 16
+ (long int)0x1.p1,
+ 0x1.4p1
+ },
+ { // Entry 17
+ (long int)0x1.80p1,
+ 0x1.4000000000001p1
+ },
+ { // Entry 18
+ (long int)0x1.90p6,
+ 0x1.8ffffffffffffp6
+ },
+ { // Entry 19
+ (long int)0x1.90p6,
+ 0x1.9p6
+ },
+ { // Entry 20
+ (long int)0x1.90p6,
+ 0x1.9000000000001p6
+ },
+ { // Entry 21
+ (long int)0x1.90p6,
+ 0x1.91fffffffffffp6
+ },
+ { // Entry 22
+ (long int)0x1.90p6,
+ 0x1.920p6
+ },
+ { // Entry 23
+ (long int)0x1.94p6,
+ 0x1.9200000000001p6
+ },
+ { // Entry 24
+ (long int)0x1.f4p9,
+ 0x1.f3fffffffffffp9
+ },
+ { // Entry 25
+ (long int)0x1.f4p9,
+ 0x1.f40p9
+ },
+ { // Entry 26
+ (long int)0x1.f4p9,
+ 0x1.f400000000001p9
+ },
+ { // Entry 27
+ (long int)0x1.f4p9,
+ 0x1.f43ffffffffffp9
+ },
+ { // Entry 28
+ (long int)0x1.f4p9,
+ 0x1.f44p9
+ },
+ { // Entry 29
+ (long int)0x1.f480p9,
+ 0x1.f440000000001p9
+ },
+ { // Entry 30
+ (long int)-0x1.p0,
+ -0x1.0000000000001p-1
+ },
+ { // Entry 31
+ (long int)0.0,
+ -0x1.0p-1
+ },
+ { // Entry 32
+ (long int)0.0,
+ -0x1.fffffffffffffp-2
+ },
+ { // Entry 33
+ (long int)-0x1.p0,
+ -0x1.0000000000001p0
+ },
+ { // Entry 34
+ (long int)-0x1.p0,
+ -0x1.0p0
+ },
+ { // Entry 35
+ (long int)-0x1.p0,
+ -0x1.fffffffffffffp-1
+ },
+ { // Entry 36
+ (long int)-0x1.p1,
+ -0x1.8000000000001p0
+ },
+ { // Entry 37
+ (long int)-0x1.p1,
+ -0x1.8p0
+ },
+ { // Entry 38
+ (long int)-0x1.p0,
+ -0x1.7ffffffffffffp0
+ },
+ { // Entry 39
+ (long int)-0x1.p1,
+ -0x1.0000000000001p1
+ },
+ { // Entry 40
+ (long int)-0x1.p1,
+ -0x1.0p1
+ },
+ { // Entry 41
+ (long int)-0x1.p1,
+ -0x1.fffffffffffffp0
+ },
+ { // Entry 42
+ (long int)-0x1.80p1,
+ -0x1.4000000000001p1
+ },
+ { // Entry 43
+ (long int)-0x1.p1,
+ -0x1.4p1
+ },
+ { // Entry 44
+ (long int)-0x1.p1,
+ -0x1.3ffffffffffffp1
+ },
+ { // Entry 45
+ (long int)-0x1.90p6,
+ -0x1.9000000000001p6
+ },
+ { // Entry 46
+ (long int)-0x1.90p6,
+ -0x1.9p6
+ },
+ { // Entry 47
+ (long int)-0x1.90p6,
+ -0x1.8ffffffffffffp6
+ },
+ { // Entry 48
+ (long int)-0x1.94p6,
+ -0x1.9200000000001p6
+ },
+ { // Entry 49
+ (long int)-0x1.90p6,
+ -0x1.920p6
+ },
+ { // Entry 50
+ (long int)-0x1.90p6,
+ -0x1.91fffffffffffp6
+ },
+ { // Entry 51
+ (long int)-0x1.f4p9,
+ -0x1.f400000000001p9
+ },
+ { // Entry 52
+ (long int)-0x1.f4p9,
+ -0x1.f40p9
+ },
+ { // Entry 53
+ (long int)-0x1.f4p9,
+ -0x1.f3fffffffffffp9
+ },
+ { // Entry 54
+ (long int)-0x1.f480p9,
+ -0x1.f440000000001p9
+ },
+ { // Entry 55
+ (long int)-0x1.f4p9,
+ -0x1.f44p9
+ },
+ { // Entry 56
+ (long int)-0x1.f4p9,
+ -0x1.f43ffffffffffp9
+ },
+ { // Entry 57
+ (long int)0x1.p30,
+ 0x1.fffffffffffffp29
+ },
+ { // Entry 58
+ (long int)0x1.p30,
+ 0x1.0p30
+ },
+ { // Entry 59
+ (long int)0x1.p30,
+ 0x1.0000000000001p30
+ },
+ { // Entry 60
+ (long int)0x1.fffffff8p30,
+ 0x1.fffffff7ffffep30
+ },
+ { // Entry 61
+ (long int)0x1.fffffff8p30,
+ 0x1.fffffff7fffffp30
+ },
+ { // Entry 62
+ (long int)0x1.fffffff8p30,
+ 0x1.fffffff80p30
+ },
+ { // Entry 63
+ (long int)0x1.fffffff8p30,
+ 0x1.fffffff800001p30
+ },
+ { // Entry 64
+ (long int)0x1.fffffff8p30,
+ 0x1.fffffff800002p30
+ },
+ { // Entry 65
+ (long int)0x1.fffffff8p30,
+ 0x1.fffffff9ffffep30
+ },
+ { // Entry 66
+ (long int)0x1.fffffff8p30,
+ 0x1.fffffff9fffffp30
+ },
+ { // Entry 67
+ (long int)0x1.fffffff8p30,
+ 0x1.fffffffa0p30
+ },
+ { // Entry 68
+ (long int)0x1.fffffffcp30,
+ 0x1.fffffffa00001p30
+ },
+ { // Entry 69
+ (long int)0x1.fffffffcp30,
+ 0x1.fffffffa00002p30
+ },
+ { // Entry 70
+ (long int)0x1.fffffffcp30,
+ 0x1.fffffffbffffep30
+ },
+ { // Entry 71
+ (long int)0x1.fffffffcp30,
+ 0x1.fffffffbfffffp30
+ },
+ { // Entry 72
+ (long int)0x1.fffffffcp30,
+ 0x1.fffffffc0p30
+ },
+ { // Entry 73
+ (long int)0x1.fffffffcp30,
+ 0x1.fffffffc00001p30
+ },
+ { // Entry 74
+ (long int)0x1.fffffffcp30,
+ 0x1.fffffffc00002p30
+ },
+ { // Entry 75
+ (long int)0x1.fffffffcp30,
+ 0x1.fffffffdffffep30
+ },
+ { // Entry 76
+ (long int)0x1.fffffffcp30,
+ 0x1.fffffffdfffffp30
+ },
+ { // Entry 77
+ (long int)0x1.ffffffe0p30,
+ 0x1.ffffffep30
+ },
+ { // Entry 78
+ (long int)0x1.ffffffe4p30,
+ 0x1.ffffffe40p30
+ },
+ { // Entry 79
+ (long int)0x1.ffffffe8p30,
+ 0x1.ffffffe80p30
+ },
+ { // Entry 80
+ (long int)0x1.ffffffecp30,
+ 0x1.ffffffec0p30
+ },
+ { // Entry 81
+ (long int)0x1.fffffff0p30,
+ 0x1.fffffffp30
+ },
+ { // Entry 82
+ (long int)0x1.fffffff4p30,
+ 0x1.fffffff40p30
+ },
+ { // Entry 83
+ (long int)0x1.fffffff8p30,
+ 0x1.fffffff80p30
+ },
+ { // Entry 84
+ (long int)0x1.fffffffcp30,
+ 0x1.fffffffc0p30
+ },
+ { // Entry 85
+ (long int)-0x1.p30,
+ -0x1.0000000000001p30
+ },
+ { // Entry 86
+ (long int)-0x1.p30,
+ -0x1.0p30
+ },
+ { // Entry 87
+ (long int)-0x1.p30,
+ -0x1.fffffffffffffp29
+ },
+ { // Entry 88
+ (long int)-0x1.fffffff8p30,
+ -0x1.fffffff800002p30
+ },
+ { // Entry 89
+ (long int)-0x1.fffffff8p30,
+ -0x1.fffffff800001p30
+ },
+ { // Entry 90
+ (long int)-0x1.fffffff8p30,
+ -0x1.fffffff80p30
+ },
+ { // Entry 91
+ (long int)-0x1.fffffff8p30,
+ -0x1.fffffff7fffffp30
+ },
+ { // Entry 92
+ (long int)-0x1.fffffff8p30,
+ -0x1.fffffff7ffffep30
+ },
+ { // Entry 93
+ (long int)-0x1.fffffffcp30,
+ -0x1.fffffffa00002p30
+ },
+ { // Entry 94
+ (long int)-0x1.fffffffcp30,
+ -0x1.fffffffa00001p30
+ },
+ { // Entry 95
+ (long int)-0x1.fffffff8p30,
+ -0x1.fffffffa0p30
+ },
+ { // Entry 96
+ (long int)-0x1.fffffff8p30,
+ -0x1.fffffff9fffffp30
+ },
+ { // Entry 97
+ (long int)-0x1.fffffff8p30,
+ -0x1.fffffff9ffffep30
+ },
+ { // Entry 98
+ (long int)-0x1.fffffffcp30,
+ -0x1.fffffffc00002p30
+ },
+ { // Entry 99
+ (long int)-0x1.fffffffcp30,
+ -0x1.fffffffc00001p30
+ },
+ { // Entry 100
+ (long int)-0x1.fffffffcp30,
+ -0x1.fffffffc0p30
+ },
+ { // Entry 101
+ (long int)-0x1.fffffffcp30,
+ -0x1.fffffffbfffffp30
+ },
+ { // Entry 102
+ (long int)-0x1.fffffffcp30,
+ -0x1.fffffffbffffep30
+ },
+ { // Entry 103
+ (long int)-0x1.p31,
+ -0x1.fffffffe00002p30
+ },
+ { // Entry 104
+ (long int)-0x1.p31,
+ -0x1.fffffffe00001p30
+ },
+ { // Entry 105
+ (long int)-0x1.p31,
+ -0x1.fffffffe0p30
+ },
+ { // Entry 106
+ (long int)-0x1.fffffffcp30,
+ -0x1.fffffffdfffffp30
+ },
+ { // Entry 107
+ (long int)-0x1.fffffffcp30,
+ -0x1.fffffffdffffep30
+ },
+ { // Entry 108
+ (long int)-0x1.p31,
+ -0x1.0000000000002p31
+ },
+ { // Entry 109
+ (long int)-0x1.p31,
+ -0x1.0000000000001p31
+ },
+ { // Entry 110
+ (long int)-0x1.p31,
+ -0x1.0p31
+ },
+ { // Entry 111
+ (long int)-0x1.p31,
+ -0x1.fffffffffffffp30
+ },
+ { // Entry 112
+ (long int)-0x1.p31,
+ -0x1.ffffffffffffep30
+ },
+ { // Entry 113
+ (long int)-0x1.p31,
+ -0x1.000000010p31
+ },
+ { // Entry 114
+ (long int)-0x1.p31,
+ -0x1.00000000fffffp31
+ },
+ { // Entry 115
+ (long int)-0x1.p31,
+ -0x1.00000000ffffep31
+ },
+ { // Entry 116
+ (long int)-0x1.ffffffe0p30,
+ -0x1.ffffffep30
+ },
+ { // Entry 117
+ (long int)-0x1.ffffffe0p30,
+ -0x1.ffffffep30
+ },
+ { // Entry 118
+ (long int)-0x1.ffffffe0p30,
+ -0x1.ffffffep30
+ },
+ { // Entry 119
+ (long int)-0x1.ffffffe0p30,
+ -0x1.ffffffep30
+ },
+ { // Entry 120
+ (long int)-0x1.ffffffe0p30,
+ -0x1.ffffffep30
+ },
+ { // Entry 121
+ (long int)-0x1.ffffffe0p30,
+ -0x1.ffffffep30
+ },
+ { // Entry 122
+ (long int)-0x1.ffffffe0p30,
+ -0x1.ffffffep30
+ },
+ { // Entry 123
+ (long int)-0x1.ffffffe0p30,
+ -0x1.ffffffep30
+ },
+ { // Entry 124
+ (long int)-0x1.ffffffe0p30,
+ -0x1.ffffffep30
+ },
+ { // Entry 125
+ (long int)-0x1.ffffffe0p30,
+ -0x1.ffffffep30
+ },
+ { // Entry 126
+ (long int)0x1.fffffffcp30,
+ 0x1.fffffffbfffffp30
+ },
+ { // Entry 127
+ (long int)0x1.fffffffcp30,
+ 0x1.fffffffc0p30
+ },
+ { // Entry 128
+ (long int)0x1.fffffffcp30,
+ 0x1.fffffffc00001p30
+ },
+ { // Entry 129
+ (long int)-0x1.p31,
+ -0x1.0000000000001p31
+ },
+ { // Entry 130
+ (long int)-0x1.p31,
+ -0x1.0p31
+ },
+ { // Entry 131
+ (long int)-0x1.p31,
+ -0x1.fffffffffffffp30
+ },
+ { // Entry 132
+ (long int)0x1.p2,
+ 0x1.fffffffffffffp1
+ },
+ { // Entry 133
+ (long int)0x1.p2,
+ 0x1.0p2
+ },
+ { // Entry 134
+ (long int)0x1.p2,
+ 0x1.0000000000001p2
+ },
+ { // Entry 135
+ (long int)0x1.p3,
+ 0x1.fffffffffffffp2
+ },
+ { // Entry 136
+ (long int)0x1.p3,
+ 0x1.0p3
+ },
+ { // Entry 137
+ (long int)0x1.p3,
+ 0x1.0000000000001p3
+ },
+ { // Entry 138
+ (long int)0x1.p4,
+ 0x1.fffffffffffffp3
+ },
+ { // Entry 139
+ (long int)0x1.p4,
+ 0x1.0p4
+ },
+ { // Entry 140
+ (long int)0x1.p4,
+ 0x1.0000000000001p4
+ },
+ { // Entry 141
+ (long int)0x1.p5,
+ 0x1.fffffffffffffp4
+ },
+ { // Entry 142
+ (long int)0x1.p5,
+ 0x1.0p5
+ },
+ { // Entry 143
+ (long int)0x1.p5,
+ 0x1.0000000000001p5
+ },
+ { // Entry 144
+ (long int)0x1.p6,
+ 0x1.fffffffffffffp5
+ },
+ { // Entry 145
+ (long int)0x1.p6,
+ 0x1.0p6
+ },
+ { // Entry 146
+ (long int)0x1.p6,
+ 0x1.0000000000001p6
+ },
+ { // Entry 147
+ (long int)0x1.p7,
+ 0x1.fffffffffffffp6
+ },
+ { // Entry 148
+ (long int)0x1.p7,
+ 0x1.0p7
+ },
+ { // Entry 149
+ (long int)0x1.p7,
+ 0x1.0000000000001p7
+ },
+ { // Entry 150
+ (long int)0x1.p8,
+ 0x1.fffffffffffffp7
+ },
+ { // Entry 151
+ (long int)0x1.p8,
+ 0x1.0p8
+ },
+ { // Entry 152
+ (long int)0x1.p8,
+ 0x1.0000000000001p8
+ },
+ { // Entry 153
+ (long int)0x1.p9,
+ 0x1.fffffffffffffp8
+ },
+ { // Entry 154
+ (long int)0x1.p9,
+ 0x1.0p9
+ },
+ { // Entry 155
+ (long int)0x1.p9,
+ 0x1.0000000000001p9
+ },
+ { // Entry 156
+ (long int)0x1.p10,
+ 0x1.fffffffffffffp9
+ },
+ { // Entry 157
+ (long int)0x1.p10,
+ 0x1.0p10
+ },
+ { // Entry 158
+ (long int)0x1.p10,
+ 0x1.0000000000001p10
+ },
+ { // Entry 159
+ (long int)0x1.p11,
+ 0x1.fffffffffffffp10
+ },
+ { // Entry 160
+ (long int)0x1.p11,
+ 0x1.0p11
+ },
+ { // Entry 161
+ (long int)0x1.p11,
+ 0x1.0000000000001p11
+ },
+ { // Entry 162
+ (long int)0x1.p12,
+ 0x1.fffffffffffffp11
+ },
+ { // Entry 163
+ (long int)0x1.p12,
+ 0x1.0p12
+ },
+ { // Entry 164
+ (long int)0x1.p12,
+ 0x1.0000000000001p12
+ },
+ { // Entry 165
+ (long int)0x1.p2,
+ 0x1.1ffffffffffffp2
+ },
+ { // Entry 166
+ (long int)0x1.p2,
+ 0x1.2p2
+ },
+ { // Entry 167
+ (long int)0x1.40p2,
+ 0x1.2000000000001p2
+ },
+ { // Entry 168
+ (long int)0x1.p3,
+ 0x1.0ffffffffffffp3
+ },
+ { // Entry 169
+ (long int)0x1.p3,
+ 0x1.1p3
+ },
+ { // Entry 170
+ (long int)0x1.20p3,
+ 0x1.1000000000001p3
+ },
+ { // Entry 171
+ (long int)0x1.p4,
+ 0x1.07fffffffffffp4
+ },
+ { // Entry 172
+ (long int)0x1.p4,
+ 0x1.080p4
+ },
+ { // Entry 173
+ (long int)0x1.10p4,
+ 0x1.0800000000001p4
+ },
+ { // Entry 174
+ (long int)0x1.p5,
+ 0x1.03fffffffffffp5
+ },
+ { // Entry 175
+ (long int)0x1.p5,
+ 0x1.040p5
+ },
+ { // Entry 176
+ (long int)0x1.08p5,
+ 0x1.0400000000001p5
+ },
+ { // Entry 177
+ (long int)0x1.p6,
+ 0x1.01fffffffffffp6
+ },
+ { // Entry 178
+ (long int)0x1.p6,
+ 0x1.020p6
+ },
+ { // Entry 179
+ (long int)0x1.04p6,
+ 0x1.0200000000001p6
+ },
+ { // Entry 180
+ (long int)0x1.p7,
+ 0x1.00fffffffffffp7
+ },
+ { // Entry 181
+ (long int)0x1.p7,
+ 0x1.010p7
+ },
+ { // Entry 182
+ (long int)0x1.02p7,
+ 0x1.0100000000001p7
+ },
+ { // Entry 183
+ (long int)0x1.p8,
+ 0x1.007ffffffffffp8
+ },
+ { // Entry 184
+ (long int)0x1.p8,
+ 0x1.008p8
+ },
+ { // Entry 185
+ (long int)0x1.01p8,
+ 0x1.0080000000001p8
+ },
+ { // Entry 186
+ (long int)0x1.p9,
+ 0x1.003ffffffffffp9
+ },
+ { // Entry 187
+ (long int)0x1.p9,
+ 0x1.004p9
+ },
+ { // Entry 188
+ (long int)0x1.0080p9,
+ 0x1.0040000000001p9
+ },
+ { // Entry 189
+ (long int)0x1.p10,
+ 0x1.001ffffffffffp10
+ },
+ { // Entry 190
+ (long int)0x1.p10,
+ 0x1.002p10
+ },
+ { // Entry 191
+ (long int)0x1.0040p10,
+ 0x1.0020000000001p10
+ },
+ { // Entry 192
+ (long int)0x1.0040p10,
+ 0x1.005ffffffffffp10
+ },
+ { // Entry 193
+ (long int)0x1.0080p10,
+ 0x1.006p10
+ },
+ { // Entry 194
+ (long int)0x1.0080p10,
+ 0x1.0060000000001p10
+ },
+ { // Entry 195
+ (long int)0x1.p11,
+ 0x1.000ffffffffffp11
+ },
+ { // Entry 196
+ (long int)0x1.p11,
+ 0x1.001p11
+ },
+ { // Entry 197
+ (long int)0x1.0020p11,
+ 0x1.0010000000001p11
+ },
+ { // Entry 198
+ (long int)0x1.p12,
+ 0x1.0007fffffffffp12
+ },
+ { // Entry 199
+ (long int)0x1.p12,
+ 0x1.00080p12
+ },
+ { // Entry 200
+ (long int)0x1.0010p12,
+ 0x1.0008000000001p12
+ },
+ { // Entry 201
+ (long int)0x1.80p1,
+ 0x1.921fb54442d18p1
+ },
+ { // Entry 202
+ (long int)-0x1.80p1,
+ -0x1.921fb54442d18p1
+ },
+ { // Entry 203
+ (long int)0x1.p1,
+ 0x1.921fb54442d18p0
+ },
+ { // Entry 204
+ (long int)-0x1.p1,
+ -0x1.921fb54442d18p0
+ },
+ { // Entry 205
+ (long int)0x1.p0,
+ 0x1.0000000000001p0
+ },
+ { // Entry 206
+ (long int)-0x1.p0,
+ -0x1.0000000000001p0
+ },
+ { // Entry 207
+ (long int)0x1.p0,
+ 0x1.0p0
+ },
+ { // Entry 208
+ (long int)-0x1.p0,
+ -0x1.0p0
+ },
+ { // Entry 209
+ (long int)0x1.p0,
+ 0x1.fffffffffffffp-1
+ },
+ { // Entry 210
+ (long int)-0x1.p0,
+ -0x1.fffffffffffffp-1
+ },
+ { // Entry 211
+ (long int)0x1.p0,
+ 0x1.921fb54442d18p-1
+ },
+ { // Entry 212
+ (long int)-0x1.p0,
+ -0x1.921fb54442d18p-1
+ },
+ { // Entry 213
+ (long int)0.0,
+ 0x1.0000000000001p-1022
+ },
+ { // Entry 214
+ (long int)0.0,
+ -0x1.0000000000001p-1022
+ },
+ { // Entry 215
+ (long int)0.0,
+ 0x1.0p-1022
+ },
+ { // Entry 216
+ (long int)0.0,
+ -0x1.0p-1022
+ },
+ { // Entry 217
+ (long int)0.0,
+ 0x1.ffffffffffffep-1023
+ },
+ { // Entry 218
+ (long int)0.0,
+ -0x1.ffffffffffffep-1023
+ },
+ { // Entry 219
+ (long int)0.0,
+ 0x1.ffffffffffffcp-1023
+ },
+ { // Entry 220
+ (long int)0.0,
+ -0x1.ffffffffffffcp-1023
+ },
+ { // Entry 221
+ (long int)0.0,
+ 0x1.0p-1073
+ },
+ { // Entry 222
+ (long int)0.0,
+ -0x1.0p-1073
+ },
+ { // Entry 223
+ (long int)0.0,
+ 0x1.0p-1074
+ },
+ { // Entry 224
+ (long int)0.0,
+ -0x1.0p-1074
+ },
+ { // Entry 225
+ (long int)0.0,
+ 0.0
+ },
+ { // Entry 226
+ (long int)0.0,
+ -0.0
+ },
+ { // Entry 227
+ (long int)0x1.p1,
+ 0x1.8p0
+ },
+ { // Entry 228
+ (long int)-0x1.p1,
+ -0x1.8p0
+ },
+ { // Entry 229
+ (long int)0x1.p1,
+ 0x1.4p1
+ },
+ { // Entry 230
+ (long int)-0x1.p1,
+ -0x1.4p1
+ },
+ { // Entry 231
+ (long int)0.0,
+ 0x1.fffffp-2
+ },
+ { // Entry 232
+ (long int)0.0,
+ 0x1.0p-1
+ },
+ { // Entry 233
+ (long int)0x1.p0,
+ 0x1.00001p-1
+ },
+ { // Entry 234
+ (long int)0.0,
+ -0x1.fffffp-2
+ },
+ { // Entry 235
+ (long int)0.0,
+ -0x1.0p-1
+ },
+ { // Entry 236
+ (long int)-0x1.p0,
+ -0x1.00001p-1
+ },
+ { // Entry 237
+ (long int)0x1.p1,
+ 0x1.80001p0
+ },
+ { // Entry 238
+ (long int)0x1.p0,
+ 0x1.7ffffp0
+ },
+ { // Entry 239
+ (long int)-0x1.p1,
+ -0x1.80001p0
+ },
+ { // Entry 240
+ (long int)-0x1.p0,
+ -0x1.7ffffp0
+ }
+};
\ No newline at end of file
diff --git a/tests/math_data/lrintf_intel_data.h b/tests/math_data/lrintf_intel_data.h
new file mode 100644
index 0000000..bd771b2
--- /dev/null
+++ b/tests/math_data/lrintf_intel_data.h
@@ -0,0 +1,1002 @@
+/*
+ * Copyright (C) 2016 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+static data_long_1_t<float> g_lrintf_intel_data[] = {
+ { // Entry 0
+ (long int)0.0,
+ -0x1.p-149
+ },
+ { // Entry 1
+ (long int)0.0,
+ 0.0
+ },
+ { // Entry 2
+ (long int)0.0,
+ 0x1.p-149
+ },
+ { // Entry 3
+ (long int)0.0,
+ 0x1.fffffep-2
+ },
+ { // Entry 4
+ (long int)0.0,
+ 0x1.p-1
+ },
+ { // Entry 5
+ (long int)0x1.p0,
+ 0x1.000002p-1
+ },
+ { // Entry 6
+ (long int)0x1.p0,
+ 0x1.fffffep-1
+ },
+ { // Entry 7
+ (long int)0x1.p0,
+ 0x1.p0
+ },
+ { // Entry 8
+ (long int)0x1.p0,
+ 0x1.000002p0
+ },
+ { // Entry 9
+ (long int)0x1.p0,
+ 0x1.7ffffep0
+ },
+ { // Entry 10
+ (long int)0x1.p1,
+ 0x1.80p0
+ },
+ { // Entry 11
+ (long int)0x1.p1,
+ 0x1.800002p0
+ },
+ { // Entry 12
+ (long int)0x1.p1,
+ 0x1.fffffep0
+ },
+ { // Entry 13
+ (long int)0x1.p1,
+ 0x1.p1
+ },
+ { // Entry 14
+ (long int)0x1.p1,
+ 0x1.000002p1
+ },
+ { // Entry 15
+ (long int)0x1.p1,
+ 0x1.3ffffep1
+ },
+ { // Entry 16
+ (long int)0x1.p1,
+ 0x1.40p1
+ },
+ { // Entry 17
+ (long int)0x1.80p1,
+ 0x1.400002p1
+ },
+ { // Entry 18
+ (long int)0x1.90p6,
+ 0x1.8ffffep6
+ },
+ { // Entry 19
+ (long int)0x1.90p6,
+ 0x1.90p6
+ },
+ { // Entry 20
+ (long int)0x1.90p6,
+ 0x1.900002p6
+ },
+ { // Entry 21
+ (long int)0x1.90p6,
+ 0x1.91fffep6
+ },
+ { // Entry 22
+ (long int)0x1.90p6,
+ 0x1.92p6
+ },
+ { // Entry 23
+ (long int)0x1.94p6,
+ 0x1.920002p6
+ },
+ { // Entry 24
+ (long int)0x1.f4p9,
+ 0x1.f3fffep9
+ },
+ { // Entry 25
+ (long int)0x1.f4p9,
+ 0x1.f4p9
+ },
+ { // Entry 26
+ (long int)0x1.f4p9,
+ 0x1.f40002p9
+ },
+ { // Entry 27
+ (long int)0x1.f4p9,
+ 0x1.f43ffep9
+ },
+ { // Entry 28
+ (long int)0x1.f4p9,
+ 0x1.f440p9
+ },
+ { // Entry 29
+ (long int)0x1.f480p9,
+ 0x1.f44002p9
+ },
+ { // Entry 30
+ (long int)0x1.p21,
+ 0x1.fffffep20
+ },
+ { // Entry 31
+ (long int)0x1.p21,
+ 0x1.p21
+ },
+ { // Entry 32
+ (long int)0x1.p21,
+ 0x1.000002p21
+ },
+ { // Entry 33
+ (long int)0x1.p22,
+ 0x1.fffffep21
+ },
+ { // Entry 34
+ (long int)0x1.p22,
+ 0x1.p22
+ },
+ { // Entry 35
+ (long int)0x1.p22,
+ 0x1.000002p22
+ },
+ { // Entry 36
+ (long int)0x1.p23,
+ 0x1.fffffep22
+ },
+ { // Entry 37
+ (long int)0x1.p23,
+ 0x1.p23
+ },
+ { // Entry 38
+ (long int)0x1.000002p23,
+ 0x1.000002p23
+ },
+ { // Entry 39
+ (long int)0x1.fffffep23,
+ 0x1.fffffep23
+ },
+ { // Entry 40
+ (long int)0x1.p24,
+ 0x1.p24
+ },
+ { // Entry 41
+ (long int)0x1.000002p24,
+ 0x1.000002p24
+ },
+ { // Entry 42
+ (long int)0x1.fffffep24,
+ 0x1.fffffep24
+ },
+ { // Entry 43
+ (long int)0x1.p25,
+ 0x1.p25
+ },
+ { // Entry 44
+ (long int)0x1.000002p25,
+ 0x1.000002p25
+ },
+ { // Entry 45
+ (long int)-0x1.p0,
+ -0x1.000002p-1
+ },
+ { // Entry 46
+ (long int)0.0,
+ -0x1.p-1
+ },
+ { // Entry 47
+ (long int)0.0,
+ -0x1.fffffep-2
+ },
+ { // Entry 48
+ (long int)-0x1.p0,
+ -0x1.000002p0
+ },
+ { // Entry 49
+ (long int)-0x1.p0,
+ -0x1.p0
+ },
+ { // Entry 50
+ (long int)-0x1.p0,
+ -0x1.fffffep-1
+ },
+ { // Entry 51
+ (long int)-0x1.p1,
+ -0x1.800002p0
+ },
+ { // Entry 52
+ (long int)-0x1.p1,
+ -0x1.80p0
+ },
+ { // Entry 53
+ (long int)-0x1.p0,
+ -0x1.7ffffep0
+ },
+ { // Entry 54
+ (long int)-0x1.p1,
+ -0x1.000002p1
+ },
+ { // Entry 55
+ (long int)-0x1.p1,
+ -0x1.p1
+ },
+ { // Entry 56
+ (long int)-0x1.p1,
+ -0x1.fffffep0
+ },
+ { // Entry 57
+ (long int)-0x1.80p1,
+ -0x1.400002p1
+ },
+ { // Entry 58
+ (long int)-0x1.p1,
+ -0x1.40p1
+ },
+ { // Entry 59
+ (long int)-0x1.p1,
+ -0x1.3ffffep1
+ },
+ { // Entry 60
+ (long int)-0x1.90p6,
+ -0x1.900002p6
+ },
+ { // Entry 61
+ (long int)-0x1.90p6,
+ -0x1.90p6
+ },
+ { // Entry 62
+ (long int)-0x1.90p6,
+ -0x1.8ffffep6
+ },
+ { // Entry 63
+ (long int)-0x1.94p6,
+ -0x1.920002p6
+ },
+ { // Entry 64
+ (long int)-0x1.90p6,
+ -0x1.92p6
+ },
+ { // Entry 65
+ (long int)-0x1.90p6,
+ -0x1.91fffep6
+ },
+ { // Entry 66
+ (long int)-0x1.f4p9,
+ -0x1.f40002p9
+ },
+ { // Entry 67
+ (long int)-0x1.f4p9,
+ -0x1.f4p9
+ },
+ { // Entry 68
+ (long int)-0x1.f4p9,
+ -0x1.f3fffep9
+ },
+ { // Entry 69
+ (long int)-0x1.f480p9,
+ -0x1.f44002p9
+ },
+ { // Entry 70
+ (long int)-0x1.f4p9,
+ -0x1.f440p9
+ },
+ { // Entry 71
+ (long int)-0x1.f4p9,
+ -0x1.f43ffep9
+ },
+ { // Entry 72
+ (long int)-0x1.p21,
+ -0x1.000002p21
+ },
+ { // Entry 73
+ (long int)-0x1.p21,
+ -0x1.p21
+ },
+ { // Entry 74
+ (long int)-0x1.p21,
+ -0x1.fffffep20
+ },
+ { // Entry 75
+ (long int)-0x1.p22,
+ -0x1.000002p22
+ },
+ { // Entry 76
+ (long int)-0x1.p22,
+ -0x1.p22
+ },
+ { // Entry 77
+ (long int)-0x1.p22,
+ -0x1.fffffep21
+ },
+ { // Entry 78
+ (long int)-0x1.000002p23,
+ -0x1.000002p23
+ },
+ { // Entry 79
+ (long int)-0x1.p23,
+ -0x1.p23
+ },
+ { // Entry 80
+ (long int)-0x1.p23,
+ -0x1.fffffep22
+ },
+ { // Entry 81
+ (long int)-0x1.000002p24,
+ -0x1.000002p24
+ },
+ { // Entry 82
+ (long int)-0x1.p24,
+ -0x1.p24
+ },
+ { // Entry 83
+ (long int)-0x1.fffffep23,
+ -0x1.fffffep23
+ },
+ { // Entry 84
+ (long int)-0x1.000002p25,
+ -0x1.000002p25
+ },
+ { // Entry 85
+ (long int)-0x1.p25,
+ -0x1.p25
+ },
+ { // Entry 86
+ (long int)-0x1.fffffep24,
+ -0x1.fffffep24
+ },
+ { // Entry 87
+ (long int)0x1.fffffep29,
+ 0x1.fffffep29
+ },
+ { // Entry 88
+ (long int)0x1.p30,
+ 0x1.p30
+ },
+ { // Entry 89
+ (long int)0x1.000002p30,
+ 0x1.000002p30
+ },
+ { // Entry 90
+ (long int)0x1.fffffcp30,
+ 0x1.fffffcp30
+ },
+ { // Entry 91
+ (long int)0x1.fffffep30,
+ 0x1.fffffep30
+ },
+ { // Entry 92
+ (long int)0x1.fffffcp30,
+ 0x1.fffffcp30
+ },
+ { // Entry 93
+ (long int)0x1.fffffep30,
+ 0x1.fffffep30
+ },
+ { // Entry 94
+ (long int)0x1.fffffcp30,
+ 0x1.fffffcp30
+ },
+ { // Entry 95
+ (long int)0x1.fffffep30,
+ 0x1.fffffep30
+ },
+ { // Entry 96
+ (long int)0x1.fffffcp30,
+ 0x1.fffffcp30
+ },
+ { // Entry 97
+ (long int)0x1.fffffep30,
+ 0x1.fffffep30
+ },
+ { // Entry 98
+ (long int)0x1.fffffcp30,
+ 0x1.fffffcp30
+ },
+ { // Entry 99
+ (long int)0x1.fffffep30,
+ 0x1.fffffep30
+ },
+ { // Entry 100
+ (long int)0x1.fffffcp30,
+ 0x1.fffffcp30
+ },
+ { // Entry 101
+ (long int)0x1.fffffep30,
+ 0x1.fffffep30
+ },
+ { // Entry 102
+ (long int)-0x1.000002p30,
+ -0x1.000002p30
+ },
+ { // Entry 103
+ (long int)-0x1.p30,
+ -0x1.p30
+ },
+ { // Entry 104
+ (long int)-0x1.fffffep29,
+ -0x1.fffffep29
+ },
+ { // Entry 105
+ (long int)-0x1.p31,
+ -0x1.p31
+ },
+ { // Entry 106
+ (long int)-0x1.fffffep30,
+ -0x1.fffffep30
+ },
+ { // Entry 107
+ (long int)-0x1.fffffcp30,
+ -0x1.fffffcp30
+ },
+ { // Entry 108
+ (long int)-0x1.p31,
+ -0x1.p31
+ },
+ { // Entry 109
+ (long int)-0x1.fffffep30,
+ -0x1.fffffep30
+ },
+ { // Entry 110
+ (long int)-0x1.fffffcp30,
+ -0x1.fffffcp30
+ },
+ { // Entry 111
+ (long int)-0x1.p31,
+ -0x1.p31
+ },
+ { // Entry 112
+ (long int)-0x1.fffffep30,
+ -0x1.fffffep30
+ },
+ { // Entry 113
+ (long int)-0x1.fffffcp30,
+ -0x1.fffffcp30
+ },
+ { // Entry 114
+ (long int)-0x1.p31,
+ -0x1.p31
+ },
+ { // Entry 115
+ (long int)-0x1.fffffep30,
+ -0x1.fffffep30
+ },
+ { // Entry 116
+ (long int)-0x1.fffffcp30,
+ -0x1.fffffcp30
+ },
+ { // Entry 117
+ (long int)-0x1.p31,
+ -0x1.p31
+ },
+ { // Entry 118
+ (long int)-0x1.fffffep30,
+ -0x1.fffffep30
+ },
+ { // Entry 119
+ (long int)-0x1.fffffcp30,
+ -0x1.fffffcp30
+ },
+ { // Entry 120
+ (long int)-0x1.p31,
+ -0x1.p31
+ },
+ { // Entry 121
+ (long int)-0x1.fffffep30,
+ -0x1.fffffep30
+ },
+ { // Entry 122
+ (long int)-0x1.fffffcp30,
+ -0x1.fffffcp30
+ },
+ { // Entry 123
+ (long int)-0x1.p31,
+ -0x1.p31
+ },
+ { // Entry 124
+ (long int)-0x1.p31,
+ -0x1.p31
+ },
+ { // Entry 125
+ (long int)-0x1.p31,
+ -0x1.p31
+ },
+ { // Entry 126
+ (long int)-0x1.p31,
+ -0x1.p31
+ },
+ { // Entry 127
+ (long int)-0x1.p31,
+ -0x1.p31
+ },
+ { // Entry 128
+ (long int)-0x1.p31,
+ -0x1.p31
+ },
+ { // Entry 129
+ (long int)-0x1.p31,
+ -0x1.p31
+ },
+ { // Entry 130
+ (long int)-0x1.p31,
+ -0x1.p31
+ },
+ { // Entry 131
+ (long int)-0x1.p31,
+ -0x1.p31
+ },
+ { // Entry 132
+ (long int)-0x1.p31,
+ -0x1.p31
+ },
+ { // Entry 133
+ (long int)0x1.fffffcp30,
+ 0x1.fffffcp30
+ },
+ { // Entry 134
+ (long int)0x1.fffffep30,
+ 0x1.fffffep30
+ },
+ { // Entry 135
+ (long int)-0x1.p31,
+ -0x1.p31
+ },
+ { // Entry 136
+ (long int)-0x1.fffffep30,
+ -0x1.fffffep30
+ },
+ { // Entry 137
+ (long int)0x1.p2,
+ 0x1.fffffep1
+ },
+ { // Entry 138
+ (long int)0x1.p2,
+ 0x1.p2
+ },
+ { // Entry 139
+ (long int)0x1.p2,
+ 0x1.000002p2
+ },
+ { // Entry 140
+ (long int)0x1.p3,
+ 0x1.fffffep2
+ },
+ { // Entry 141
+ (long int)0x1.p3,
+ 0x1.p3
+ },
+ { // Entry 142
+ (long int)0x1.p3,
+ 0x1.000002p3
+ },
+ { // Entry 143
+ (long int)0x1.p4,
+ 0x1.fffffep3
+ },
+ { // Entry 144
+ (long int)0x1.p4,
+ 0x1.p4
+ },
+ { // Entry 145
+ (long int)0x1.p4,
+ 0x1.000002p4
+ },
+ { // Entry 146
+ (long int)0x1.p5,
+ 0x1.fffffep4
+ },
+ { // Entry 147
+ (long int)0x1.p5,
+ 0x1.p5
+ },
+ { // Entry 148
+ (long int)0x1.p5,
+ 0x1.000002p5
+ },
+ { // Entry 149
+ (long int)0x1.p6,
+ 0x1.fffffep5
+ },
+ { // Entry 150
+ (long int)0x1.p6,
+ 0x1.p6
+ },
+ { // Entry 151
+ (long int)0x1.p6,
+ 0x1.000002p6
+ },
+ { // Entry 152
+ (long int)0x1.p7,
+ 0x1.fffffep6
+ },
+ { // Entry 153
+ (long int)0x1.p7,
+ 0x1.p7
+ },
+ { // Entry 154
+ (long int)0x1.p7,
+ 0x1.000002p7
+ },
+ { // Entry 155
+ (long int)0x1.p8,
+ 0x1.fffffep7
+ },
+ { // Entry 156
+ (long int)0x1.p8,
+ 0x1.p8
+ },
+ { // Entry 157
+ (long int)0x1.p8,
+ 0x1.000002p8
+ },
+ { // Entry 158
+ (long int)0x1.p9,
+ 0x1.fffffep8
+ },
+ { // Entry 159
+ (long int)0x1.p9,
+ 0x1.p9
+ },
+ { // Entry 160
+ (long int)0x1.p9,
+ 0x1.000002p9
+ },
+ { // Entry 161
+ (long int)0x1.p10,
+ 0x1.fffffep9
+ },
+ { // Entry 162
+ (long int)0x1.p10,
+ 0x1.p10
+ },
+ { // Entry 163
+ (long int)0x1.p10,
+ 0x1.000002p10
+ },
+ { // Entry 164
+ (long int)0x1.p11,
+ 0x1.fffffep10
+ },
+ { // Entry 165
+ (long int)0x1.p11,
+ 0x1.p11
+ },
+ { // Entry 166
+ (long int)0x1.p11,
+ 0x1.000002p11
+ },
+ { // Entry 167
+ (long int)0x1.p12,
+ 0x1.fffffep11
+ },
+ { // Entry 168
+ (long int)0x1.p12,
+ 0x1.p12
+ },
+ { // Entry 169
+ (long int)0x1.p12,
+ 0x1.000002p12
+ },
+ { // Entry 170
+ (long int)0x1.p2,
+ 0x1.1ffffep2
+ },
+ { // Entry 171
+ (long int)0x1.p2,
+ 0x1.20p2
+ },
+ { // Entry 172
+ (long int)0x1.40p2,
+ 0x1.200002p2
+ },
+ { // Entry 173
+ (long int)0x1.p3,
+ 0x1.0ffffep3
+ },
+ { // Entry 174
+ (long int)0x1.p3,
+ 0x1.10p3
+ },
+ { // Entry 175
+ (long int)0x1.20p3,
+ 0x1.100002p3
+ },
+ { // Entry 176
+ (long int)0x1.p4,
+ 0x1.07fffep4
+ },
+ { // Entry 177
+ (long int)0x1.p4,
+ 0x1.08p4
+ },
+ { // Entry 178
+ (long int)0x1.10p4,
+ 0x1.080002p4
+ },
+ { // Entry 179
+ (long int)0x1.p5,
+ 0x1.03fffep5
+ },
+ { // Entry 180
+ (long int)0x1.p5,
+ 0x1.04p5
+ },
+ { // Entry 181
+ (long int)0x1.08p5,
+ 0x1.040002p5
+ },
+ { // Entry 182
+ (long int)0x1.p6,
+ 0x1.01fffep6
+ },
+ { // Entry 183
+ (long int)0x1.p6,
+ 0x1.02p6
+ },
+ { // Entry 184
+ (long int)0x1.04p6,
+ 0x1.020002p6
+ },
+ { // Entry 185
+ (long int)0x1.p7,
+ 0x1.00fffep7
+ },
+ { // Entry 186
+ (long int)0x1.p7,
+ 0x1.01p7
+ },
+ { // Entry 187
+ (long int)0x1.02p7,
+ 0x1.010002p7
+ },
+ { // Entry 188
+ (long int)0x1.p8,
+ 0x1.007ffep8
+ },
+ { // Entry 189
+ (long int)0x1.p8,
+ 0x1.0080p8
+ },
+ { // Entry 190
+ (long int)0x1.01p8,
+ 0x1.008002p8
+ },
+ { // Entry 191
+ (long int)0x1.p9,
+ 0x1.003ffep9
+ },
+ { // Entry 192
+ (long int)0x1.p9,
+ 0x1.0040p9
+ },
+ { // Entry 193
+ (long int)0x1.0080p9,
+ 0x1.004002p9
+ },
+ { // Entry 194
+ (long int)0x1.p10,
+ 0x1.001ffep10
+ },
+ { // Entry 195
+ (long int)0x1.p10,
+ 0x1.0020p10
+ },
+ { // Entry 196
+ (long int)0x1.0040p10,
+ 0x1.002002p10
+ },
+ { // Entry 197
+ (long int)0x1.0040p10,
+ 0x1.005ffep10
+ },
+ { // Entry 198
+ (long int)0x1.0080p10,
+ 0x1.0060p10
+ },
+ { // Entry 199
+ (long int)0x1.0080p10,
+ 0x1.006002p10
+ },
+ { // Entry 200
+ (long int)0x1.p11,
+ 0x1.000ffep11
+ },
+ { // Entry 201
+ (long int)0x1.p11,
+ 0x1.0010p11
+ },
+ { // Entry 202
+ (long int)0x1.0020p11,
+ 0x1.001002p11
+ },
+ { // Entry 203
+ (long int)0x1.p12,
+ 0x1.0007fep12
+ },
+ { // Entry 204
+ (long int)0x1.p12,
+ 0x1.0008p12
+ },
+ { // Entry 205
+ (long int)0x1.0010p12,
+ 0x1.000802p12
+ },
+ { // Entry 206
+ (long int)0x1.80p1,
+ 0x1.921fb6p1
+ },
+ { // Entry 207
+ (long int)-0x1.80p1,
+ -0x1.921fb6p1
+ },
+ { // Entry 208
+ (long int)0x1.p1,
+ 0x1.921fb6p0
+ },
+ { // Entry 209
+ (long int)-0x1.p1,
+ -0x1.921fb6p0
+ },
+ { // Entry 210
+ (long int)0x1.p0,
+ 0x1.000002p0
+ },
+ { // Entry 211
+ (long int)-0x1.p0,
+ -0x1.000002p0
+ },
+ { // Entry 212
+ (long int)0x1.p0,
+ 0x1.p0
+ },
+ { // Entry 213
+ (long int)-0x1.p0,
+ -0x1.p0
+ },
+ { // Entry 214
+ (long int)0x1.p0,
+ 0x1.fffffep-1
+ },
+ { // Entry 215
+ (long int)-0x1.p0,
+ -0x1.fffffep-1
+ },
+ { // Entry 216
+ (long int)0x1.p0,
+ 0x1.921fb6p-1
+ },
+ { // Entry 217
+ (long int)-0x1.p0,
+ -0x1.921fb6p-1
+ },
+ { // Entry 218
+ (long int)0.0,
+ 0x1.000002p-126
+ },
+ { // Entry 219
+ (long int)0.0,
+ -0x1.000002p-126
+ },
+ { // Entry 220
+ (long int)0.0,
+ 0x1.p-126
+ },
+ { // Entry 221
+ (long int)0.0,
+ -0x1.p-126
+ },
+ { // Entry 222
+ (long int)0.0,
+ 0x1.fffffcp-127
+ },
+ { // Entry 223
+ (long int)0.0,
+ -0x1.fffffcp-127
+ },
+ { // Entry 224
+ (long int)0.0,
+ 0x1.fffff8p-127
+ },
+ { // Entry 225
+ (long int)0.0,
+ -0x1.fffff8p-127
+ },
+ { // Entry 226
+ (long int)0.0,
+ 0x1.p-148
+ },
+ { // Entry 227
+ (long int)0.0,
+ -0x1.p-148
+ },
+ { // Entry 228
+ (long int)0.0,
+ 0x1.p-149
+ },
+ { // Entry 229
+ (long int)0.0,
+ -0x1.p-149
+ },
+ { // Entry 230
+ (long int)0.0,
+ 0.0f
+ },
+ { // Entry 231
+ (long int)0.0,
+ -0.0f
+ },
+ { // Entry 232
+ (long int)0x1.p1,
+ 0x1.80p0
+ },
+ { // Entry 233
+ (long int)-0x1.p1,
+ -0x1.80p0
+ },
+ { // Entry 234
+ (long int)0x1.p1,
+ 0x1.40p1
+ },
+ { // Entry 235
+ (long int)-0x1.p1,
+ -0x1.40p1
+ },
+ { // Entry 236
+ (long int)0.0,
+ 0x1.fffff0p-2
+ },
+ { // Entry 237
+ (long int)0.0,
+ 0x1.p-1
+ },
+ { // Entry 238
+ (long int)0x1.p0,
+ 0x1.000010p-1
+ },
+ { // Entry 239
+ (long int)0.0,
+ -0x1.fffff0p-2
+ },
+ { // Entry 240
+ (long int)0.0,
+ -0x1.p-1
+ },
+ { // Entry 241
+ (long int)-0x1.p0,
+ -0x1.000010p-1
+ },
+ { // Entry 242
+ (long int)0x1.p1,
+ 0x1.800010p0
+ },
+ { // Entry 243
+ (long int)0x1.p0,
+ 0x1.7ffff0p0
+ },
+ { // Entry 244
+ (long int)-0x1.p1,
+ -0x1.800010p0
+ },
+ { // Entry 245
+ (long int)-0x1.p0,
+ -0x1.7ffff0p0
+ }
+};
\ No newline at end of file
diff --git a/tests/math_data_test.h b/tests/math_data_test.h
index 8aa2bf1..0aba701 100644
--- a/tests/math_data_test.h
+++ b/tests/math_data_test.h
@@ -30,6 +30,18 @@
T1 input;
};
+template <typename T1>
+struct data_long_1_t {
+ long expected;
+ T1 input;
+};
+
+template <typename T1>
+struct data_llong_1_t {
+ long long expected;
+ T1 input;
+};
+
template <typename RT, typename T1, typename T2>
struct data_1_2_t {
RT expected;
@@ -157,6 +169,28 @@
}
}
+// Runs through the array 'data' applying 'f' to each of the input values
+// and asserting that the result is within ULP ulps of the expected value.
+// For testing a (double) -> long int function like lrint(3).
+template <size_t ULP, typename T, size_t N>
+void DoMathDataTest(data_long_1_t<T> (&data)[N], long f(T)) {
+ fesetenv(FE_DFL_ENV);
+ for (size_t i = 0; i < N; ++i) {
+ EXPECT_EQ(data[i].expected, f(data[i].input)) << "Failed on element " << i;
+ }
+}
+
+// Runs through the array 'data' applying 'f' to each of the input values
+// and asserting that the result is within ULP ulps of the expected value.
+// For testing a (double) -> long long int function like llrint(3).
+template <size_t ULP, typename T, size_t N>
+void DoMathDataTest(data_llong_1_t<T> (&data)[N], long long f(T)) {
+ fesetenv(FE_DFL_ENV);
+ for (size_t i = 0; i < N; ++i) {
+ EXPECT_EQ(data[i].expected, f(data[i].input)) << "Failed on element " << i;
+ }
+}
+
// Runs through the array 'data' applying 'f' to each of the pairs of input values
// and asserting that the result is within ULP ulps of the expected value.
// For testing a (double, double) -> double function like pow(3).
diff --git a/tests/math_test.cpp b/tests/math_test.cpp
index e616e9b..c805cc2 100644
--- a/tests/math_test.cpp
+++ b/tests/math_test.cpp
@@ -1639,6 +1639,16 @@
DoMathDataTest<1>(g_ldexpf_intel_data, ldexpf);
}
+#include "math_data/llrint_intel_data.h"
+TEST(math, llrint_intel) {
+ DoMathDataTest<1>(g_llrint_intel_data, llrint);
+}
+
+#include "math_data/llrintf_intel_data.h"
+TEST(math, llrintf_intel) {
+ DoMathDataTest<1>(g_llrintf_intel_data, llrintf);
+}
+
#include "math_data/log_intel_data.h"
TEST(math, log_intel) {
DoMathDataTest<1>(g_log_intel_data, log);
@@ -1689,6 +1699,16 @@
DoMathDataTest<1>(g_logbf_intel_data, logbf);
}
+#include "math_data/lrint_intel_data.h"
+TEST(math, lrint_intel) {
+ DoMathDataTest<1>(g_lrint_intel_data, lrint);
+}
+
+#include "math_data/lrintf_intel_data.h"
+TEST(math, lrintf_intel) {
+ DoMathDataTest<1>(g_lrintf_intel_data, lrintf);
+}
+
#include "math_data/modf_intel_data.h"
TEST(math, modf_intel) {
DoMathDataTest<1>(g_modf_intel_data, modf);