Skip to content

Commit d65dbe2

Browse files
committed
auto merge of #9997 : thestinger/rust/float, r=thestinger
2 parents cf7b9eb + 462a28d commit d65dbe2

File tree

4 files changed

+19
-19
lines changed

4 files changed

+19
-19
lines changed

src/librustc/middle/trans/base.rs

+8-8
Original file line numberDiff line numberDiff line change
@@ -2797,8 +2797,8 @@ pub fn declare_intrinsics(llmod: ModuleRef) -> HashMap<&'static str, ValueRef> {
27972797

27982798
ifn!(intrinsics, "llvm.fabs.f32", [Type::f32()], Type::f32());
27992799
ifn!(intrinsics, "llvm.fabs.f64", [Type::f64()], Type::f64());
2800-
ifn!(intrinsics, "llvm.copysign.f32", [Type::f32()], Type::f32());
2801-
ifn!(intrinsics, "llvm.copysign.f64", [Type::f64()], Type::f64());
2800+
ifn!(intrinsics, "llvm.copysign.f32", [Type::f32(), Type::f32()], Type::f32());
2801+
ifn!(intrinsics, "llvm.copysign.f64", [Type::f64(), Type::f64()], Type::f64());
28022802

28032803
ifn!(intrinsics, "llvm.floor.f32",[Type::f32()], Type::f32());
28042804
ifn!(intrinsics, "llvm.floor.f64",[Type::f64()], Type::f64());
@@ -2807,12 +2807,12 @@ pub fn declare_intrinsics(llmod: ModuleRef) -> HashMap<&'static str, ValueRef> {
28072807
ifn!(intrinsics, "llvm.trunc.f32",[Type::f32()], Type::f32());
28082808
ifn!(intrinsics, "llvm.trunc.f64",[Type::f64()], Type::f64());
28092809

2810-
ifn!(intrinsics, "llvm.rint.f32",[Type::f64()], Type::f64());
2811-
ifn!(intrinsics, "llvm.rint.f64",[Type::f64()], Type::f64());
2812-
ifn!(intrinsics, "llvm.nearbyint.f32",[Type::f64()], Type::f64());
2813-
ifn!(intrinsics, "llvm.nearbyint.f64",[Type::f64()], Type::f64());
2814-
ifn!(intrinsics, "llvm.round.f32",[Type::f64()], Type::f64());
2815-
ifn!(intrinsics, "llvm.round.f64",[Type::f64()], Type::f64());
2810+
ifn!(intrinsics, "llvm.rint.f32", [Type::f32()], Type::f32());
2811+
ifn!(intrinsics, "llvm.rint.f64", [Type::f64()], Type::f64());
2812+
ifn!(intrinsics, "llvm.nearbyint.f32", [Type::f32()], Type::f32());
2813+
ifn!(intrinsics, "llvm.nearbyint.f64", [Type::f64()], Type::f64());
2814+
ifn!(intrinsics, "llvm.round.f32", [Type::f32()], Type::f32());
2815+
ifn!(intrinsics, "llvm.round.f64", [Type::f64()], Type::f64());
28162816

28172817
ifn!(intrinsics, "llvm.ctpop.i8", [Type::i8()], Type::i8());
28182818
ifn!(intrinsics, "llvm.ctpop.i16",[Type::i16()], Type::i16());

src/librustc/middle/trans/intrinsic.rs

+7-7
Original file line numberDiff line numberDiff line change
@@ -460,20 +460,20 @@ pub fn trans_intrinsic(ccx: @mut CrateContext,
460460
"fmaf64" => simple_llvm_intrinsic(bcx, "llvm.fma.f64", 3),
461461
"fabsf32" => simple_llvm_intrinsic(bcx, "llvm.fabs.f32", 1),
462462
"fabsf64" => simple_llvm_intrinsic(bcx, "llvm.fabs.f64", 1),
463-
"copysignf32" => simple_llvm_intrinsic(bcx, "llvm.copysign.f32", 1),
464-
"copysignf64" => simple_llvm_intrinsic(bcx, "llvm.copysign.f64", 1),
463+
"copysignf32" => simple_llvm_intrinsic(bcx, "llvm.copysign.f32", 2),
464+
"copysignf64" => simple_llvm_intrinsic(bcx, "llvm.copysign.f64", 2),
465465
"floorf32" => simple_llvm_intrinsic(bcx, "llvm.floor.f32", 1),
466466
"floorf64" => simple_llvm_intrinsic(bcx, "llvm.floor.f64", 1),
467467
"ceilf32" => simple_llvm_intrinsic(bcx, "llvm.ceil.f32", 1),
468468
"ceilf64" => simple_llvm_intrinsic(bcx, "llvm.ceil.f64", 1),
469469
"truncf32" => simple_llvm_intrinsic(bcx, "llvm.trunc.f32", 1),
470470
"truncf64" => simple_llvm_intrinsic(bcx, "llvm.trunc.f64", 1),
471-
"rintf64" => simple_llvm_intrinsic(bcx, "llvm.rint.f64", 1),
472471
"rintf32" => simple_llvm_intrinsic(bcx, "llvm.rint.f32", 1),
473-
"nearbyintf32" => simple_llvm_intrinsic(bcx, "llvm.nearbyint.f64", 1),
474-
"nearbyintf64" => simple_llvm_intrinsic(bcx, "llvm.nearbyint.f32", 1),
475-
"roundf32" => simple_llvm_intrinsic(bcx, "llvm.round.f64", 1),
476-
"roundf64" => simple_llvm_intrinsic(bcx, "llvm.round.f32", 1),
472+
"rintf64" => simple_llvm_intrinsic(bcx, "llvm.rint.f64", 1),
473+
"nearbyintf32" => simple_llvm_intrinsic(bcx, "llvm.nearbyint.f32", 1),
474+
"nearbyintf64" => simple_llvm_intrinsic(bcx, "llvm.nearbyint.f64", 1),
475+
"roundf32" => simple_llvm_intrinsic(bcx, "llvm.round.f32", 1),
476+
"roundf64" => simple_llvm_intrinsic(bcx, "llvm.round.f64", 1),
477477
"ctpop8" => simple_llvm_intrinsic(bcx, "llvm.ctpop.i8", 1),
478478
"ctpop16" => simple_llvm_intrinsic(bcx, "llvm.ctpop.i16", 1),
479479
"ctpop32" => simple_llvm_intrinsic(bcx, "llvm.ctpop.i32", 1),

src/librustc/middle/typeck/check/mod.rs

+2-2
Original file line numberDiff line numberDiff line change
@@ -3809,8 +3809,8 @@ pub fn check_intrinsic_type(ccx: @mut CrateCtxt, it: @ast::foreign_item) {
38093809
}
38103810
"fabsf32" => (0, ~[ ty::mk_f32() ], ty::mk_f32()),
38113811
"fabsf64" => (0, ~[ ty::mk_f64() ], ty::mk_f64()),
3812-
"copysignf32" => (0, ~[ ty::mk_f32() ], ty::mk_f32()),
3813-
"copysignf64" => (0, ~[ ty::mk_f64() ], ty::mk_f64()),
3812+
"copysignf32" => (0, ~[ ty::mk_f32(), ty::mk_f32() ], ty::mk_f32()),
3813+
"copysignf64" => (0, ~[ ty::mk_f64(), ty::mk_f64() ], ty::mk_f64()),
38143814
"floorf32" => (0, ~[ ty::mk_f32() ], ty::mk_f32()),
38153815
"floorf64" => (0, ~[ ty::mk_f64() ], ty::mk_f64()),
38163816
"ceilf32" => (0, ~[ ty::mk_f32() ], ty::mk_f32()),

src/libstd/unstable/intrinsics.rs

+2-2
Original file line numberDiff line numberDiff line change
@@ -414,9 +414,9 @@ extern "rust-intrinsic" {
414414
pub fn fabsf64(x: f64) -> f64;
415415

416416
#[cfg(not(stage0))]
417-
pub fn copysignf32(x: f32) -> f32;
417+
pub fn copysignf32(x: f32, y: f32) -> f32;
418418
#[cfg(not(stage0))]
419-
pub fn copysignf64(x: f64) -> f64;
419+
pub fn copysignf64(x: f64, y: f64) -> f64;
420420

421421
pub fn floorf32(x: f32) -> f32;
422422
pub fn floorf64(x: f64) -> f64;

0 commit comments

Comments
 (0)