Skip to content

Commit f2082db

Browse files
authored
Unrolled build for rust-lang#128417
Rollup merge of rust-lang#128417 - tgross35:f16-f128-math, r=dtolnay Add `f16` and `f128` math functions This adds intrinsics and math functions for `f16` and `f128` floating point types. Support is quite limited and some things are broken so tests don't run on many platforms, but this provides a starting point.
2 parents 2f3dc46 + 8e2ca0c commit f2082db

File tree

15 files changed

+4159
-108
lines changed

15 files changed

+4159
-108
lines changed

compiler/rustc_codegen_llvm/src/context.rs

+4-4
Original file line numberDiff line numberDiff line change
@@ -775,10 +775,10 @@ impl<'ll> CodegenCx<'ll, '_> {
775775
ifn!("llvm.debugtrap", fn() -> void);
776776
ifn!("llvm.frameaddress", fn(t_i32) -> ptr);
777777

778-
ifn!("llvm.powi.f16", fn(t_f16, t_i32) -> t_f16);
779-
ifn!("llvm.powi.f32", fn(t_f32, t_i32) -> t_f32);
780-
ifn!("llvm.powi.f64", fn(t_f64, t_i32) -> t_f64);
781-
ifn!("llvm.powi.f128", fn(t_f128, t_i32) -> t_f128);
778+
ifn!("llvm.powi.f16.i32", fn(t_f16, t_i32) -> t_f16);
779+
ifn!("llvm.powi.f32.i32", fn(t_f32, t_i32) -> t_f32);
780+
ifn!("llvm.powi.f64.i32", fn(t_f64, t_i32) -> t_f64);
781+
ifn!("llvm.powi.f128.i32", fn(t_f128, t_i32) -> t_f128);
782782

783783
ifn!("llvm.pow.f16", fn(t_f16, t_f16) -> t_f16);
784784
ifn!("llvm.pow.f32", fn(t_f32, t_f32) -> t_f32);

compiler/rustc_codegen_llvm/src/intrinsic.rs

+4-4
Original file line numberDiff line numberDiff line change
@@ -35,10 +35,10 @@ fn get_simple_intrinsic<'ll>(
3535
sym::sqrtf64 => "llvm.sqrt.f64",
3636
sym::sqrtf128 => "llvm.sqrt.f128",
3737

38-
sym::powif16 => "llvm.powi.f16",
39-
sym::powif32 => "llvm.powi.f32",
40-
sym::powif64 => "llvm.powi.f64",
41-
sym::powif128 => "llvm.powi.f128",
38+
sym::powif16 => "llvm.powi.f16.i32",
39+
sym::powif32 => "llvm.powi.f32.i32",
40+
sym::powif64 => "llvm.powi.f64.i32",
41+
sym::powif128 => "llvm.powi.f128.i32",
4242

4343
sym::sinf16 => "llvm.sin.f16",
4444
sym::sinf32 => "llvm.sin.f32",

0 commit comments

Comments
 (0)