zig/lib/compiler_rt/truncsfhf2.zig
Andrew Kelley 74608293af compiler_rt: common -> compiler_rt
use the "symbol" helper function in all exports

move all declarations from common.zig to compiler_rt.zig

flatten the tree structure somewhat (move contents of tiny files into
parent files)

No functional changes.
2026-02-09 20:03:15 -08:00

24 lines
692 B
Zig

const compiler_rt = @import("../compiler_rt.zig");
const symbol = compiler_rt.symbol;
const truncf = @import("./truncf.zig").truncf;
comptime {
if (compiler_rt.gnu_f16_abi) {
symbol(&__gnu_f2h_ieee, "__gnu_f2h_ieee");
} else if (compiler_rt.want_aeabi) {
symbol(&__aeabi_f2h, "__aeabi_f2h");
}
symbol(&__truncsfhf2, "__truncsfhf2");
}
pub fn __truncsfhf2(a: f32) callconv(.c) compiler_rt.F16T(f32) {
return @bitCast(truncf(f16, f32, a));
}
fn __gnu_f2h_ieee(a: f32) callconv(.c) compiler_rt.F16T(f32) {
return @bitCast(truncf(f16, f32, a));
}
fn __aeabi_f2h(a: f32) callconv(.{ .arm_aapcs = .{} }) u16 {
return @bitCast(truncf(f16, f32, a));
}