1use crate::float::Float;
2
3intrinsics! {
4 #[cfg(f16_enabled)]
5 pub extern "C" fn __subhf3(a: f16, b: f16) -> f16 {
6 crate::float::add::__addhf3(a, f16::from_bits(b.to_bits() ^ f16::SIGN_MASK))
7 }
8
9 #[arm_aeabi_alias = __aeabi_fsub]
10 pub extern "C" fn __subsf3(a: f32, b: f32) -> f32 {
11 crate::float::add::__addsf3(a, f32::from_bits(b.to_bits() ^ f32::SIGN_MASK))
12 }
13
14 #[arm_aeabi_alias = __aeabi_dsub]
15 pub extern "C" fn __subdf3(a: f64, b: f64) -> f64 {
16 crate::float::add::__adddf3(a, f64::from_bits(b.to_bits() ^ f64::SIGN_MASK))
17 }
18
19 #[ppc_alias = __subkf3]
20 #[cfg(f128_enabled)]
21 pub extern "C" fn __subtf3(a: f128, b: f128) -> f128 {
22 #[cfg(any(target_arch = "powerpc", target_arch = "powerpc64"))]
23 use crate::float::add::__addkf3 as __addtf3;
24 #[cfg(not(any(target_arch = "powerpc", target_arch = "powerpc64")))]
25 use crate::float::add::__addtf3;
26
27 __addtf3(a, f128::from_bits(b.to_bits() ^ f128::SIGN_MASK))
28 }
29}
30