Add x86 optimization of rint functions and tests

Change-Id: I5e7696ff9bcb1efc2625100ef8565b68dca2326c
Signed-off-by: Jingwei Zhang <jingwei.zhang@intel.com>
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);