Skip to content

Panic in mul_add #25

Closed
Closed
@RalfJung

Description

@RalfJung

After updating rustc_apfloat to include #21, and having Miri use apfloat's mul_add again, running the Miri test suite causes a panic in apfloat:

thread 'rustc' panicked at /rust/deps/rustc_apfloat-0.2.2+llvm-462a31f5a5ab/src/ieee.rs:3033:17:
assertion `left == right` failed
  left: 1
 right: 0
stack backtrace:
   0: __rustc::rust_begin_unwind
   1: core::panicking::panic_fmt
   2: core::panicking::assert_failed_inner
   3: core::panicking::assert_failed::<u128, u128>
   4: rustc_apfloat::ieee::sig::add_or_sub
   5: <rustc_apfloat::ieee::IeeeFloat<rustc_apfloat::ieee::SingleS> as rustc_apfloat::Float>::mul_add_r
             at /rust/deps/rustc_apfloat-0.2.2+llvm-462a31f5a5ab/src/ieee.rs:1186:20
   6: <rustc_apfloat::ieee::IeeeFloat<rustc_apfloat::ieee::SingleS> as rustc_apfloat::Float>::mul_add
             at /rust/deps/rustc_apfloat-0.2.2+llvm-462a31f5a5ab/src/lib.rs:308:14
   7: <rustc_const_eval::interpret::eval_context::InterpCx<miri::machine::MiriMachine> as miri::intrinsics::EvalContextExt>::emulate_intrinsic_by_name
             at ./src/intrinsics/mod.rs:275:29
   8: <rustc_const_eval::interpret::eval_context::InterpCx<miri::machine::MiriMachine> as miri::intrinsics::EvalContextExt>::call_intrinsic
             at ./src/intrinsics/mod.rs:54:20
   9: <miri::machine::MiriMachine as rustc_const_eval::interpret::machine::Machine>::call_intrinsic
             at ./src/machine.rs:1172:13

Seems like something is still wrong with that code?

This happens executing this mul_add:

  --> tests/pass/float.rs:998:13
   |
LL |       let f = f32::mul_add(
   |  _____________^
LL | |         -0.000000000000000000000000000000000000014728589,
LL | |         0.0000037105144,
LL | |         0.000000000000000000000000000000000000000000055,
LL | |     );
   | |_____^

Cc @beetrees

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions