@@ -3,7 +3,6 @@ use std::fs::File;
33use std:: io:: prelude:: * ;
44use std:: io:: { self , BufReader } ;
55use std:: path:: PathBuf ;
6- use std:: process:: Command ;
76
87const IN : & str = "neon.spec" ;
98const ARM_OUT : & str = "generated.rs" ;
@@ -139,35 +138,35 @@ fn type_to_global_type(t: &str) -> &str {
139138 }
140139}
141140
142- fn type_to_native_type ( t : & str ) -> & str {
143- match t {
144- "int8x8_t" => "i8" ,
145- "int8x16_t" => "i8" ,
146- "int16x4_t" => "i16" ,
147- "int16x8_t" => "i16" ,
148- "int32x2_t" => "i32" ,
149- "int32x4_t" => "i32" ,
150- "int64x1_t" => "i64" ,
151- "int64x2_t" => "i64" ,
152- "uint8x8_t" => "u8" ,
153- "uint8x16_t" => "u8" ,
154- "uint16x4_t" => "u16" ,
155- "uint16x8_t" => "u16" ,
156- "uint32x2_t" => "u32" ,
157- "uint32x4_t" => "u32" ,
158- "uint64x1_t" => "u64" ,
159- "uint64x2_t" => "u64" ,
160- "float16x4_t" => "f16" ,
161- "float16x8_t" => "f16" ,
162- "float32x2_t" => "f32" ,
163- "float32x4_t" => "f32" ,
164- "float64x1_t" => "f64" ,
165- "float64x2_t" => "f64" ,
166- "poly64x1_t" => "i64" ,
167- "poly64x2_t" => "i64" ,
168- _ => panic ! ( "unknown type: {}" , t) ,
169- }
170- }
141+ // fn type_to_native_type(t: &str) -> &str {
142+ // match t {
143+ // "int8x8_t" => "i8",
144+ // "int8x16_t" => "i8",
145+ // "int16x4_t" => "i16",
146+ // "int16x8_t" => "i16",
147+ // "int32x2_t" => "i32",
148+ // "int32x4_t" => "i32",
149+ // "int64x1_t" => "i64",
150+ // "int64x2_t" => "i64",
151+ // "uint8x8_t" => "u8",
152+ // "uint8x16_t" => "u8",
153+ // "uint16x4_t" => "u16",
154+ // "uint16x8_t" => "u16",
155+ // "uint32x2_t" => "u32",
156+ // "uint32x4_t" => "u32",
157+ // "uint64x1_t" => "u64",
158+ // "uint64x2_t" => "u64",
159+ // "float16x4_t" => "f16",
160+ // "float16x8_t" => "f16",
161+ // "float32x2_t" => "f32",
162+ // "float32x4_t" => "f32",
163+ // "float64x1_t" => "f64",
164+ // "float64x2_t" => "f64",
165+ // "poly64x1_t" => "i64",
166+ // "poly64x2_t" => "i64",
167+ // _ => panic!("unknown type: {}", t),
168+ // }
169+ // }
171170
172171fn type_to_ext ( t : & str ) -> & str {
173172 match t {
@@ -461,76 +460,84 @@ pub unsafe fn {}(a: {}, b: {}) -> {} {{
461460 {}{}(a, b)
462461}}
463462"# ,
464- current_comment, expand_intrinsic( & current_arm, in_t) , expand_intrinsic( & current_aarch64, in_t) , name, in_t, in_t, out_t, ext_c, current_fn,
463+ current_comment,
464+ expand_intrinsic( & current_arm, in_t) ,
465+ expand_intrinsic( & current_aarch64, in_t) ,
466+ name,
467+ in_t,
468+ in_t,
469+ out_t,
470+ ext_c,
471+ current_fn,
465472 ) ;
466473 let test = gen_test ( name, & in_t, & out_t, current_tests, type_len ( in_t) ) ;
467474
468475 ( function, test)
469476}
470477
471478fn expand_intrinsic ( intr : & str , t : & str ) -> String {
472- if intr. ends_with ( "." ) {
479+ if intr. ends_with ( "." ) {
473480 let ext = match t {
474- "int8x8_t" => "i8" ,
475- "int8x16_t" => "i8" ,
476- "int16x4_t" => "i16" ,
477- "int16x8_t" => "i16" ,
478- "int32x2_t" => "i32" ,
479- "int32x4_t" => "i32" ,
480- "int64x1_t" => "i64" ,
481- "int64x2_t" => "i64" ,
482- "uint8x8_t" => "i8" ,
483- "uint8x16_t" => "i8" ,
484- "uint16x4_t" => "i16" ,
485- "uint16x8_t" => "i16" ,
486- "uint32x2_t" => "i32" ,
487- "uint32x4_t" => "i32" ,
488- "uint64x1_t" => "i64" ,
489- "uint64x2_t" => "i64" ,
490- "float16x4_t" => "f16" ,
491- "float16x8_t" => "f16" ,
492- "float32x2_t" => "f32" ,
493- "float32x4_t" => "f32" ,
494- "float64x1_t" => "f64" ,
495- "float64x2_t" => "f64" ,
496- /*
497- "poly64x1_t" => "i64x1",
498- "poly64x2_t" => "i64x2",
499- */
500- _ => panic ! ( "unknown type for extension: {}" , t) ,
481+ "int8x8_t" => "i8" ,
482+ "int8x16_t" => "i8" ,
483+ "int16x4_t" => "i16" ,
484+ "int16x8_t" => "i16" ,
485+ "int32x2_t" => "i32" ,
486+ "int32x4_t" => "i32" ,
487+ "int64x1_t" => "i64" ,
488+ "int64x2_t" => "i64" ,
489+ "uint8x8_t" => "i8" ,
490+ "uint8x16_t" => "i8" ,
491+ "uint16x4_t" => "i16" ,
492+ "uint16x8_t" => "i16" ,
493+ "uint32x2_t" => "i32" ,
494+ "uint32x4_t" => "i32" ,
495+ "uint64x1_t" => "i64" ,
496+ "uint64x2_t" => "i64" ,
497+ "float16x4_t" => "f16" ,
498+ "float16x8_t" => "f16" ,
499+ "float32x2_t" => "f32" ,
500+ "float32x4_t" => "f32" ,
501+ "float64x1_t" => "f64" ,
502+ "float64x2_t" => "f64" ,
503+ /*
504+ "poly64x1_t" => "i64x1",
505+ "poly64x2_t" => "i64x2",
506+ */
507+ _ => panic ! ( "unknown type for extension: {}" , t) ,
501508 } ;
502509 format ! ( r#""{}{}""# , intr, ext)
503- } else if intr. ends_with ( ".s" ) {
510+ } else if intr. ends_with ( ".s" ) {
504511 let ext = match t {
505- "int8x8_t" => "s8" ,
506- "int8x16_t" => "s8" ,
507- "int16x4_t" => "s16" ,
508- "int16x8_t" => "s16" ,
509- "int32x2_t" => "s32" ,
510- "int32x4_t" => "s32" ,
511- "int64x1_t" => "s64" ,
512- "int64x2_t" => "s64" ,
513- "uint8x8_t" => "u8" ,
514- "uint8x16_t" => "u8" ,
515- "uint16x4_t" => "u16" ,
516- "uint16x8_t" => "u16" ,
517- "uint32x2_t" => "u32" ,
518- "uint32x4_t" => "u32" ,
519- "uint64x1_t" => "u64" ,
520- "uint64x2_t" => "u64" ,
521- "float16x4_t" => "f16" ,
522- "float16x8_t" => "f16" ,
523- "float32x2_t" => "f32" ,
524- "float32x4_t" => "f32" ,
525- "float64x1_t" => "f64" ,
526- "float64x2_t" => "f64" ,
527- /*
528- "poly64x1_t" => "i64x1",
529- "poly64x2_t" => "i64x2",
530- */
531- _ => panic ! ( "unknown type for extension: {}" , t) ,
512+ "int8x8_t" => "s8" ,
513+ "int8x16_t" => "s8" ,
514+ "int16x4_t" => "s16" ,
515+ "int16x8_t" => "s16" ,
516+ "int32x2_t" => "s32" ,
517+ "int32x4_t" => "s32" ,
518+ "int64x1_t" => "s64" ,
519+ "int64x2_t" => "s64" ,
520+ "uint8x8_t" => "u8" ,
521+ "uint8x16_t" => "u8" ,
522+ "uint16x4_t" => "u16" ,
523+ "uint16x8_t" => "u16" ,
524+ "uint32x2_t" => "u32" ,
525+ "uint32x4_t" => "u32" ,
526+ "uint64x1_t" => "u64" ,
527+ "uint64x2_t" => "u64" ,
528+ "float16x4_t" => "f16" ,
529+ "float16x8_t" => "f16" ,
530+ "float32x2_t" => "f32" ,
531+ "float32x4_t" => "f32" ,
532+ "float64x1_t" => "f64" ,
533+ "float64x2_t" => "f64" ,
534+ /*
535+ "poly64x1_t" => "i64x1",
536+ "poly64x2_t" => "i64x2",
537+ */
538+ _ => panic ! ( "unknown type for extension: {}" , t) ,
532539 } ;
533- format ! ( r#""{}{}""# , & intr[ ..intr. len( ) - 1 ] , ext)
540+ format ! ( r#""{}{}""# , & intr[ ..intr. len( ) - 1 ] , ext)
534541 } else {
535542 intr. to_string ( )
536543 }
0 commit comments