@@ -23,8 +23,8 @@ static EXTENSIVE_ITER_OVERRIDE: LazyLock<Option<u64>> = LazyLock::new(|| {
23
23
///
24
24
/// Contains the itentifier+generator combo to match on, plus the factor to reduce by.
25
25
const EXTEMELY_SLOW_TESTS : & [ ( Identifier , GeneratorKind , u64 ) ] = & [
26
- ( Identifier :: Fmodf128 , GeneratorKind :: QuickSpaced , 40 ) ,
27
- ( Identifier :: Fmodf128 , GeneratorKind :: Extensive , 40 ) ,
26
+ ( Identifier :: Fmodf128 , GeneratorKind :: QuickSpaced , 50 ) ,
27
+ ( Identifier :: Fmodf128 , GeneratorKind :: Extensive , 50 ) ,
28
28
] ;
29
29
30
30
/// Maximum number of iterations to run for a single routine.
@@ -200,15 +200,6 @@ pub fn iteration_count(ctx: &CheckCtx, argnum: usize) -> u64 {
200
200
domain_iter_count = 100_000 ;
201
201
}
202
202
203
- // Larger float types get more iterations.
204
- if t_env. large_float_ty {
205
- domain_iter_count *= 4 ;
206
- }
207
-
208
- // Functions with more arguments get more iterations.
209
- let arg_multiplier = 1 << ( t_env. input_count - 1 ) ;
210
- domain_iter_count *= arg_multiplier;
211
-
212
203
// If we will be running tests against MPFR, we don't need to test as much against musl.
213
204
// However, there are some platforms where we have to test against musl since MPFR can't be
214
205
// built.
@@ -228,6 +219,25 @@ pub fn iteration_count(ctx: &CheckCtx, argnum: usize) -> u64 {
228
219
}
229
220
} ;
230
221
222
+ // Larger float types get more iterations.
223
+ if t_env. large_float_ty && ctx. gen_kind != GeneratorKind :: Extensive {
224
+ if ctx. gen_kind == GeneratorKind :: Extensive {
225
+ // Extensive already has a pretty high test count.
226
+ total_iterations *= 2 ;
227
+ } else {
228
+ total_iterations *= 4 ;
229
+ }
230
+ }
231
+
232
+ // Functions with more arguments get more iterations.
233
+ let arg_multiplier = 1 << ( t_env. input_count - 1 ) ;
234
+ total_iterations *= arg_multiplier;
235
+
236
+ // FMA has a huge domain but is reasonably fast to run, so increase another 1.5x.
237
+ if ctx. base_name == BaseName :: Fma {
238
+ total_iterations = 3 * total_iterations / 2 ;
239
+ }
240
+
231
241
// Some tests are significantly slower than others and need to be further reduced.
232
242
if let Some ( ( _id, _gen, scale) ) = EXTEMELY_SLOW_TESTS
233
243
. iter ( )
@@ -239,11 +249,6 @@ pub fn iteration_count(ctx: &CheckCtx, argnum: usize) -> u64 {
239
249
}
240
250
}
241
251
242
- // FMA has a huge domain but is reasonably fast to run, so increase iterations.
243
- if ctx. base_name == BaseName :: Fma {
244
- total_iterations *= 4 ;
245
- }
246
-
247
252
if cfg ! ( optimizations_enabled) {
248
253
// Always run at least 10,000 tests.
249
254
total_iterations = total_iterations. max ( 10_000 ) ;
0 commit comments