@@ -1882,6 +1882,46 @@ extern "rust-intrinsic" {
1882
1882
#[ rustc_nounwind]
1883
1883
pub fn frem_fast < T : Copy > ( a : T , b : T ) -> T ;
1884
1884
1885
+ /// Float addition that allows optimizations based on algebraic rules.
1886
+ ///
1887
+ /// This intrinsic does not have a stable counterpart.
1888
+ #[ rustc_nounwind]
1889
+ #[ rustc_safe_intrinsic]
1890
+ #[ cfg( not( bootstrap) ) ]
1891
+ pub fn fadd_algebraic < T : Copy > ( a : T , b : T ) -> T ;
1892
+
1893
+ /// Float subtraction that allows optimizations based on algebraic rules.
1894
+ ///
1895
+ /// This intrinsic does not have a stable counterpart.
1896
+ #[ rustc_nounwind]
1897
+ #[ rustc_safe_intrinsic]
1898
+ #[ cfg( not( bootstrap) ) ]
1899
+ pub fn fsub_algebraic < T : Copy > ( a : T , b : T ) -> T ;
1900
+
1901
+ /// Float multiplication that allows optimizations based on algebraic rules.
1902
+ ///
1903
+ /// This intrinsic does not have a stable counterpart.
1904
+ #[ rustc_nounwind]
1905
+ #[ rustc_safe_intrinsic]
1906
+ #[ cfg( not( bootstrap) ) ]
1907
+ pub fn fmul_algebraic < T : Copy > ( a : T , b : T ) -> T ;
1908
+
1909
+ /// Float division that allows optimizations based on algebraic rules.
1910
+ ///
1911
+ /// This intrinsic does not have a stable counterpart.
1912
+ #[ rustc_nounwind]
1913
+ #[ rustc_safe_intrinsic]
1914
+ #[ cfg( not( bootstrap) ) ]
1915
+ pub fn fdiv_algebraic < T : Copy > ( a : T , b : T ) -> T ;
1916
+
1917
+ /// Float remainder that allows optimizations based on algebraic rules.
1918
+ ///
1919
+ /// This intrinsic does not have a stable counterpart.
1920
+ #[ rustc_nounwind]
1921
+ #[ rustc_safe_intrinsic]
1922
+ #[ cfg( not( bootstrap) ) ]
1923
+ pub fn frem_algebraic < T : Copy > ( a : T , b : T ) -> T ;
1924
+
1885
1925
/// Convert with LLVM’s fptoui/fptosi, which may return undef for values out of range
1886
1926
/// (<https://github.com/rust-lang/rust/issues/10184>)
1887
1927
///
0 commit comments