@@ -31,7 +31,11 @@ pub enum Language {
31
31
32
32
fn gen_code_c ( intrinsic : & Intrinsic , constraints : & [ & Argument ] , name : String ) -> String {
33
33
if let Some ( ( current, constraints) ) = constraints. split_last ( ) {
34
- let range = current. constraints . iter ( ) . map ( |c| c. to_range ( ) ) . flat_map ( |r| r. into_iter ( ) ) ;
34
+ let range = current
35
+ . constraints
36
+ . iter ( )
37
+ . map ( |c| c. to_range ( ) )
38
+ . flat_map ( |r| r. into_iter ( ) ) ;
35
39
36
40
range
37
41
. map ( |i| {
@@ -48,12 +52,19 @@ fn gen_code_c(intrinsic: &Intrinsic, constraints: &[&Argument], name: String) ->
48
52
} )
49
53
. collect ( )
50
54
} else {
51
- ( 1 ..20 ) . map ( |idx| intrinsic. generate_pass_c ( idx, & name) ) . collect :: < Vec < _ > > ( ) . join ( "\n " )
55
+ ( 1 ..20 )
56
+ . map ( |idx| intrinsic. generate_pass_c ( idx, & name) )
57
+ . collect :: < Vec < _ > > ( )
58
+ . join ( "\n " )
52
59
}
53
60
}
54
61
55
62
fn generate_c_program ( header_files : & [ & str ] , intrinsic : & Intrinsic ) -> String {
56
- let constraints = intrinsic. arguments . iter ( ) . filter ( |i| i. has_constraint ( ) ) . collect_vec ( ) ;
63
+ let constraints = intrinsic
64
+ . arguments
65
+ . iter ( )
66
+ . filter ( |i| i. has_constraint ( ) )
67
+ . collect_vec ( ) ;
57
68
58
69
format ! (
59
70
r#"{header_files}
@@ -99,7 +110,11 @@ int main(int argc, char **argv) {{
99
110
100
111
fn gen_code_rust ( intrinsic : & Intrinsic , constraints : & [ & Argument ] , name : String ) -> String {
101
112
if let Some ( ( current, constraints) ) = constraints. split_last ( ) {
102
- let range = current. constraints . iter ( ) . map ( |c| c. to_range ( ) ) . flat_map ( |r| r. into_iter ( ) ) ;
113
+ let range = current
114
+ . constraints
115
+ . iter ( )
116
+ . map ( |c| c. to_range ( ) )
117
+ . flat_map ( |r| r. into_iter ( ) ) ;
103
118
104
119
range
105
120
. map ( |i| {
@@ -116,12 +131,19 @@ fn gen_code_rust(intrinsic: &Intrinsic, constraints: &[&Argument], name: String)
116
131
} )
117
132
. collect ( )
118
133
} else {
119
- ( 1 ..20 ) . map ( |idx| intrinsic. generate_pass_rust ( idx, & name) ) . collect :: < Vec < _ > > ( ) . join ( "\n " )
134
+ ( 1 ..20 )
135
+ . map ( |idx| intrinsic. generate_pass_rust ( idx, & name) )
136
+ . collect :: < Vec < _ > > ( )
137
+ . join ( "\n " )
120
138
}
121
139
}
122
140
123
141
fn generate_rust_program ( intrinsic : & Intrinsic , a32 : bool ) -> String {
124
- let constraints = intrinsic. arguments . iter ( ) . filter ( |i| i. has_constraint ( ) ) . collect_vec ( ) ;
142
+ let constraints = intrinsic
143
+ . arguments
144
+ . iter ( )
145
+ . filter ( |i| i. has_constraint ( ) )
146
+ . collect_vec ( ) ;
125
147
126
148
format ! (
127
149
r#"#![feature(simd_ffi)]
@@ -239,7 +261,11 @@ path = "{intrinsic}/main.rs""#,
239
261
. arg ( format ! (
240
262
"cargo {toolchain} build --target {target}" ,
241
263
toolchain = toolchain,
242
- target = if a32 { "armv7-unknown-linux-gnueabihf" } else { "aarch64-unknown-linux-gnu" } ,
264
+ target = if a32 {
265
+ "armv7-unknown-linux-gnueabihf"
266
+ } else {
267
+ "aarch64-unknown-linux-gnu"
268
+ } ,
243
269
) )
244
270
. output ( ) ;
245
271
if let Ok ( output) = output {
@@ -304,13 +330,19 @@ fn main() {
304
330
. get_matches ( ) ;
305
331
306
332
let filename = matches. value_of ( "INPUT" ) . unwrap ( ) ;
307
- let toolchain = matches. value_of ( "TOOLCHAIN" ) . map_or ( "" . into ( ) , |t| format ! ( "+{}" , t) ) ;
333
+ let toolchain = matches
334
+ . value_of ( "TOOLCHAIN" )
335
+ . map_or ( "" . into ( ) , |t| format ! ( "+{}" , t) ) ;
308
336
309
337
let cpp_compiler = matches. value_of ( "CPPCOMPILER" ) . unwrap ( ) ;
310
338
let c_runner = matches. value_of ( "RUNNER" ) . unwrap_or ( "" ) ;
311
339
let skip = if let Some ( filename) = matches. value_of ( "SKIP" ) {
312
340
let data = std:: fs:: read_to_string ( & filename) . expect ( "Failed to open file" ) ;
313
- data. lines ( ) . map ( str:: trim) . filter ( |s| !s. contains ( '#' ) ) . map ( String :: from) . collect_vec ( )
341
+ data. lines ( )
342
+ . map ( str:: trim)
343
+ . filter ( |s| !s. contains ( '#' ) )
344
+ . map ( String :: from)
345
+ . collect_vec ( )
314
346
} else {
315
347
Default :: default ( )
316
348
} ;
@@ -326,7 +358,9 @@ fn main() {
326
358
. filter ( |i| !( i. results . kind ( ) == TypeKind :: Float && i. results . inner_size ( ) == 16 ) )
327
359
. filter ( |i| !i. arguments . iter ( ) . any ( |a| a. ty . kind ( ) == TypeKind :: BFloat ) )
328
360
. filter ( |i| {
329
- !i. arguments . iter ( ) . any ( |a| a. ty . kind ( ) == TypeKind :: Float && a. ty . inner_size ( ) == 16 )
361
+ !i. arguments
362
+ . iter ( )
363
+ . any ( |a| a. ty . kind ( ) == TypeKind :: Float && a. ty . inner_size ( ) == 16 )
330
364
} )
331
365
// Skip pointers for now, we would probably need to look at the return
332
366
// type to work out how many elements we need to point to.
@@ -394,15 +428,23 @@ fn compare_outputs(intrinsics: &Vec<Intrinsic>, toolchain: &str, runner: &str, a
394
428
}
395
429
396
430
if !rust. status . success ( ) {
397
- error ! ( "Failed to run rust program for intrinsic {}" , intrinsic. name) ;
431
+ error ! (
432
+ "Failed to run rust program for intrinsic {}" ,
433
+ intrinsic. name
434
+ ) ;
398
435
return Some ( FailureReason :: RunRust ( intrinsic. name . clone ( ) ) ) ;
399
436
}
400
437
401
438
info ! ( "Comparing intrinsic: {}" , intrinsic. name) ;
402
439
403
- let c = std:: str:: from_utf8 ( & c. stdout ) . unwrap ( ) . to_lowercase ( ) . replace ( "-nan" , "nan" ) ;
404
- let rust =
405
- std:: str:: from_utf8 ( & rust. stdout ) . unwrap ( ) . to_lowercase ( ) . replace ( "-nan" , "nan" ) ;
440
+ let c = std:: str:: from_utf8 ( & c. stdout )
441
+ . unwrap ( )
442
+ . to_lowercase ( )
443
+ . replace ( "-nan" , "nan" ) ;
444
+ let rust = std:: str:: from_utf8 ( & rust. stdout )
445
+ . unwrap ( )
446
+ . to_lowercase ( )
447
+ . replace ( "-nan" , "nan" ) ;
406
448
407
449
if c == rust {
408
450
None
0 commit comments