Skip to content

Commit e0860f8

Browse files
committed
MinGW misses some f16/f128 intrinsics
1 parent 8e71749 commit e0860f8

File tree

1 file changed

+14
-0
lines changed

1 file changed

+14
-0
lines changed

src/compiler_builtins.rs

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -85,6 +85,7 @@ builtin_functions! {
8585
fn __divtf3(a: f128, b: f128) -> f128;
8686
fn fmodf(a: f32, b: f32) -> f32;
8787
fn fmod(a: f64, b: f64) -> f64;
88+
#[cfg(not(all(target_os = "windows", target_env = "gnu")))]
8889
fn fmodf128(a: f128, b: f128) -> f128;
8990
// float comparison
9091
fn __eqtf2(a: f128, b: f128) -> i32;
@@ -93,7 +94,9 @@ builtin_functions! {
9394
fn __letf2(a: f128, b: f128) -> i32;
9495
fn __gttf2(a: f128, b: f128) -> i32;
9596
fn __getf2(a: f128, b: f128) -> i32;
97+
#[cfg(not(all(target_os = "windows", target_env = "gnu")))]
9698
fn fminimumf128(a: f128, b: f128) -> f128;
99+
#[cfg(not(all(target_os = "windows", target_env = "gnu")))]
97100
fn fmaximumf128(a: f128, b: f128) -> f128;
98101
// Cranelift float libcalls
99102
fn fmaf(a: f32, b: f32, c: f32) -> f32;
@@ -127,16 +130,27 @@ builtin_functions! {
127130
fn sin(f: f64) -> f64;
128131
fn cosf(f: f32) -> f32;
129132
fn cos(f: f64) -> f64;
133+
#[cfg(not(all(target_os = "windows", target_env = "gnu")))]
130134
fn fmaf128(a: f128, b: f128, c: f128) -> f128;
135+
#[cfg(not(all(target_os = "windows", target_env = "gnu")))]
131136
fn floorf16(f: f16) -> f16;
137+
#[cfg(not(all(target_os = "windows", target_env = "gnu")))]
132138
fn floorf128(f: f128) -> f128;
139+
#[cfg(not(all(target_os = "windows", target_env = "gnu")))]
133140
fn ceilf16(f: f16) -> f16;
141+
#[cfg(not(all(target_os = "windows", target_env = "gnu")))]
134142
fn ceilf128(f: f128) -> f128;
143+
#[cfg(not(all(target_os = "windows", target_env = "gnu")))]
135144
fn truncf16(f: f16) -> f16;
145+
#[cfg(not(all(target_os = "windows", target_env = "gnu")))]
136146
fn truncf128(f: f128) -> f128;
147+
#[cfg(not(all(target_os = "windows", target_env = "gnu")))]
137148
fn rintf16(f: f16) -> f16;
149+
#[cfg(not(all(target_os = "windows", target_env = "gnu")))]
138150
fn rintf128(f: f128) -> f128;
151+
#[cfg(not(all(target_os = "windows", target_env = "gnu")))]
139152
fn sqrtf16(f: f16) -> f16;
153+
#[cfg(not(all(target_os = "windows", target_env = "gnu")))]
140154
fn sqrtf128(f: f128) -> f128;
141155
// FIXME(f16_f128): Add other float intrinsics as compiler-builtins gains support (meaning they
142156
// are available on all targets).

0 commit comments

Comments
 (0)