Skip to content

fuzz: different results for f64sqrt #4677

@abrown

Description

@abrown

Test Case

(module
  (type (;0;) (func (param f64) (result f64)))
  (func (;0;) (type 0) (param f64) (result f64)
    local.get 0
    f64.sqrt
  )
  (export "test" (func 0))
)

See crash log, crash input, and the WAT/Wasm file: fuzz-bug.zip.

Steps to Reproduce

$ RUST_LOG=wasmtime_fuzzing=debug cargo +nightly fuzz run differential_meta fuzz/artifacts/differential_meta/crash-4a7edd5b645711ba09c0356fceb14040e130e948

Expected Results

Wasmtime and the spec interpreter should have the same results for f64.sqrt.

Actual Results

Wasmtime and the spec interpreter have different results:

[2022-08-10T18:27:26Z DEBUG wasmtime_fuzzing::oracles] Evaluating: test([F64(18442240474082181119)])
[2022-08-10T18:27:26Z DEBUG wasmtime_fuzzing::oracles]  -> results on spec: Ok([F64(9221120237041090560)])
[2022-08-10T18:27:26Z DEBUG wasmtime_fuzzing::oracles]  -> results on wasmtime: Ok([F64(18444492273895866368)])

Versions and Environment

Wasmtime version or commit: meta-diff branch

Operating system: Fedora 35

Architecture: x86-64

Extra Info

@conrad-watt, any thoughts on this one?

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugIncorrect behavior in the current implementation that needs fixing

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions