@@ -765,13 +765,15 @@ trait EvalContextExtPriv<'tcx>: crate::MiriInterpCxExt<'tcx> {
765
765
"erfcf" => f_host. erfc ( ) ,
766
766
_ => bug ! ( ) ,
767
767
} ;
768
+ let res = res. to_soft ( ) ;
768
769
// Apply a relative error of 16ULP to introduce some non-determinism
769
770
// simulating imprecise implementations and optimizations.
770
- let res = math:: apply_random_float_error_ulp (
771
- this,
772
- res. to_soft ( ) ,
773
- 4 , // log2(16)
774
- ) ;
771
+ // FIXME: temporarily disabled as it breaks std tests.
772
+ // let res = math::apply_random_float_error_ulp(
773
+ // this,
774
+ // res,
775
+ // 4, // log2(16)
776
+ // );
775
777
let res = this. adjust_nan ( res, & [ f] ) ;
776
778
this. write_scalar ( res, dest) ?;
777
779
}
@@ -796,11 +798,12 @@ trait EvalContextExtPriv<'tcx>: crate::MiriInterpCxExt<'tcx> {
796
798
} ;
797
799
// Apply a relative error of 16ULP to introduce some non-determinism
798
800
// simulating imprecise implementations and optimizations.
799
- let res = math:: apply_random_float_error_ulp (
800
- this,
801
- res,
802
- 4 , // log2(16)
803
- ) ;
801
+ // FIXME: temporarily disabled as it breaks std tests.
802
+ // let res = math::apply_random_float_error_ulp(
803
+ // this,
804
+ // res,
805
+ // 4, // log2(16)
806
+ // );
804
807
let res = this. adjust_nan ( res, & [ f1, f2] ) ;
805
808
this. write_scalar ( res, dest) ?;
806
809
}
@@ -839,13 +842,15 @@ trait EvalContextExtPriv<'tcx>: crate::MiriInterpCxExt<'tcx> {
839
842
"erfc" => f_host. erfc ( ) ,
840
843
_ => bug ! ( ) ,
841
844
} ;
845
+ let res = res. to_soft ( ) ;
842
846
// Apply a relative error of 16ULP to introduce some non-determinism
843
847
// simulating imprecise implementations and optimizations.
844
- let res = math:: apply_random_float_error_ulp (
845
- this,
846
- res. to_soft ( ) ,
847
- 4 , // log2(16)
848
- ) ;
848
+ // FIXME: temporarily disabled as it breaks std tests.
849
+ // let res = math::apply_random_float_error_ulp(
850
+ // this,
851
+ // res.to_soft(),
852
+ // 4, // log2(16)
853
+ // );
849
854
let res = this. adjust_nan ( res, & [ f] ) ;
850
855
this. write_scalar ( res, dest) ?;
851
856
}
@@ -870,11 +875,12 @@ trait EvalContextExtPriv<'tcx>: crate::MiriInterpCxExt<'tcx> {
870
875
} ;
871
876
// Apply a relative error of 16ULP to introduce some non-determinism
872
877
// simulating imprecise implementations and optimizations.
873
- let res = math:: apply_random_float_error_ulp (
874
- this,
875
- res,
876
- 4 , // log2(16)
877
- ) ;
878
+ // FIXME: temporarily disabled as it breaks std tests.
879
+ // let res = math::apply_random_float_error_ulp(
880
+ // this,
881
+ // res,
882
+ // 4, // log2(16)
883
+ // );
878
884
let res = this. adjust_nan ( res, & [ f1, f2] ) ;
879
885
this. write_scalar ( res, dest) ?;
880
886
}
@@ -900,10 +906,11 @@ trait EvalContextExtPriv<'tcx>: crate::MiriInterpCxExt<'tcx> {
900
906
// Using host floats (but it's fine, these operations do not have guaranteed precision).
901
907
let ( res, sign) = x. to_host ( ) . ln_gamma ( ) ;
902
908
this. write_int ( sign, & signp) ?;
909
+ let res = res. to_soft ( ) ;
903
910
// Apply a relative error of 16ULP to introduce some non-determinism
904
911
// simulating imprecise implementations and optimizations.
905
- let res =
906
- math:: apply_random_float_error_ulp ( this, res. to_soft ( ) , 4 /* log2(16) */ ) ;
912
+ // FIXME: temporarily disabled as it breaks std tests.
913
+ // let res = math::apply_random_float_error_ulp(this, res, 4 /* log2(16) */);
907
914
let res = this. adjust_nan ( res, & [ x] ) ;
908
915
this. write_scalar ( res, dest) ?;
909
916
}
@@ -915,10 +922,11 @@ trait EvalContextExtPriv<'tcx>: crate::MiriInterpCxExt<'tcx> {
915
922
// Using host floats (but it's fine, these operations do not have guaranteed precision).
916
923
let ( res, sign) = x. to_host ( ) . ln_gamma ( ) ;
917
924
this. write_int ( sign, & signp) ?;
925
+ let res = res. to_soft ( ) ;
918
926
// Apply a relative error of 16ULP to introduce some non-determinism
919
927
// simulating imprecise implementations and optimizations.
920
- let res =
921
- math:: apply_random_float_error_ulp ( this, res. to_soft ( ) , 4 /* log2(16) */ ) ;
928
+ // FIXME: temporarily disabled as it breaks std tests.
929
+ // let res = math::apply_random_float_error_ulp(this, res, 4 /* log2(16) */);
922
930
let res = this. adjust_nan ( res, & [ x] ) ;
923
931
this. write_scalar ( res, dest) ?;
924
932
}
0 commit comments