@@ -147,85 +147,77 @@ mod float_div {
147147 f32 , __divsf3, Single , all( ) ;
148148 f64 , __divdf3, Double , all( ) ;
149149 }
150- }
151-
152- #[ cfg( target_arch = "arm" ) ]
153- mod float_div_arm {
154- use super :: * ;
155150
151+ #[ cfg( target_arch = "arm" ) ]
156152 float ! {
157153 f32 , __divsf3vfp, Single , all( ) ;
158154 f64 , __divdf3vfp, Double , all( ) ;
159155 }
160- }
161-
162- #[ cfg( not( feature = "no-f16-f128" ) ) ]
163- #[ cfg( not( all( target_arch = "x86" , not( target_feature = "sse" ) ) ) ) ]
164- mod float_div_f128 {
165- use super :: * ;
166156
157+ #[ cfg( not( feature = "no-f16-f128" ) ) ]
167158 #[ cfg( not( any( target_arch = "powerpc" , target_arch = "powerpc64" ) ) ) ]
168159 float ! {
169160 f128, __divtf3, Quad , not( feature = "no-sys-f128" ) ;
170161 }
171162
163+ #[ cfg( not( feature = "no-f16-f128" ) ) ]
172164 #[ cfg( any( target_arch = "powerpc" , target_arch = "powerpc64" ) ) ]
173165 float ! {
174166 f128, __divkf3, Quad , not( feature = "no-sys-f128" ) ;
175167 }
176168}
177169
178- #[ test]
179- fn problem_f128 ( ) {
180- use compiler_builtins:: float:: div:: __divtf3;
181-
182- let a = f128:: from_bits ( 0x00000000000000000000000000000001 ) ;
183- let b = f128:: from_bits ( 0x0001FFFFFFFFFFFFFFFFFFFFFFFFFFFF ) ;
184- let res = __divtf3 ( a, b) ;
185- println ! (
186- "{:#036x} / {:#036x} = {:#036x}" ,
187- a. to_bits( ) ,
188- b. to_bits( ) ,
189- res. to_bits( )
190- ) ;
191- // got 0x3f8f0000000000000000000000000001
192- // exp 0x3f8e0000000000000000000000000001
193- assert_eq ! ( res. to_bits( ) , 0x3F8E0000000000000000000000000001 ) ;
194- panic ! ( ) ;
195- }
196-
197- #[ test]
198- fn not_problem_f64 ( ) {
199- use compiler_builtins:: float:: div:: __divdf3;
200-
201- let a = f64:: from_bits ( 0x0000000000000001 ) ;
202- let b = f64:: from_bits ( 0x001FFFFFFFFFFFFF ) ;
203- let res = __divdf3 ( a, b) ;
204- println ! (
205- "{:#018x} / {:#018x} = {:#018x}" ,
206- a. to_bits( ) ,
207- b. to_bits( ) ,
208- res. to_bits( )
209- ) ;
210- // 0x3CA0000000000001
211- assert_eq ! ( res. to_bits( ) , 0x3CA0000000000001 ) ;
212- panic ! ( ) ;
213- }
214-
215- #[ test]
216- fn not_problem_f32 ( ) {
217- use compiler_builtins:: float:: div:: __divsf3;
218-
219- let a = f32:: from_bits ( 0x00000001 ) ;
220- let b = f32:: from_bits ( 0x00FFFFFF ) ;
221- let res = __divsf3 ( a, b) ;
222- println ! (
223- "{:#010x} / {:#010x} = {:#010x}" ,
224- a. to_bits( ) ,
225- b. to_bits( ) ,
226- res. to_bits( )
227- ) ;
228- // 0x33800001
229- assert_eq ! ( res. to_bits( ) , 0x33800001 ) ;
230- panic ! ( ) ;
231- }
170+ // #[test]
171+ // fn problem_f128() {
172+ // use compiler_builtins::float::div::__divtf3;
173+
174+ // let a = f128::from_bits(0x00000000000000000000000000000001);
175+ // let b = f128::from_bits(0x0001FFFFFFFFFFFFFFFFFFFFFFFFFFFF);
176+ // let res = __divtf3(a, b);
177+ // println!(
178+ // "{:#036x} / {:#036x} = {:#036x}",
179+ // a.to_bits(),
180+ // b.to_bits(),
181+ // res.to_bits()
182+ // );
183+ // // got 0x3f8f0000000000000000000000000001
184+ // // exp 0x3f8e0000000000000000000000000001
185+ // assert_eq!(res.to_bits(), 0x3F8E0000000000000000000000000001);
186+ // panic!();
187+ // }
188+
189+ // #[test]
190+ // fn not_problem_f64() {
191+ // use compiler_builtins::float::div::__divdf3;
192+
193+ // let a = f64::from_bits(0x0000000000000001);
194+ // let b = f64::from_bits(0x001FFFFFFFFFFFFF);
195+ // let res = __divdf3(a, b);
196+ // println!(
197+ // "{:#018x} / {:#018x} = {:#018x}",
198+ // a.to_bits(),
199+ // b.to_bits(),
200+ // res.to_bits()
201+ // );
202+ // // 0x3CA0000000000001
203+ // assert_eq!(res.to_bits(), 0x3CA0000000000001);
204+ // panic!();
205+ // }
206+
207+ // #[test]
208+ // fn not_problem_f32() {
209+ // use compiler_builtins::float::div::__divsf3;
210+
211+ // let a = f32::from_bits(0x00000001);
212+ // let b = f32::from_bits(0x00FFFFFF);
213+ // let res = __divsf3(a, b);
214+ // println!(
215+ // "{:#010x} / {:#010x} = {:#010x}",
216+ // a.to_bits(),
217+ // b.to_bits(),
218+ // res.to_bits()
219+ // );
220+ // // 0x33800001
221+ // assert_eq!(res.to_bits(), 0x33800001);
222+ // panic!();
223+ // }
0 commit comments