Skip to content

x64: Different results with simd depending on optimization level #3336

@alexcrichton

Description

@alexcrichton

This input file:

(module
  (type (;0;) (func (result v128)))
  (func (;0;) (type 0) (result v128)
    v128.const i32x4 0x733c3e67 0x3c3e6776 0x3e677673 0x6776733c
    i64x2.abs
    i64x2.bitmask
    i8x16.splat
    v128.const i32x4 0x733c3e67 0x3c3e6776 0x3e677673 0x6776733c
    i64x2.ge_s
    f32x4.floor
    v128.not
    i16x8.extadd_pairwise_i8x16_u)
  (export "x" (func 0)))

currently yields:

$ cargo run -q testcase0.wat --wasm-features all --invoke x --opt-level 0
warning: using `--invoke` with a function that returns values is experimental and may break in the future
0
$ cargo -q run testcase0.wat --wasm-features all --invoke x --opt-level 2
warning: using `--invoke` with a function that returns values is experimental and may break in the future
2648111804832205941349218734877573630

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugIncorrect behavior in the current implementation that needs fixingcranelift:area:x64Issues related to x64 codegenfuzz-bugBugs found by a fuzzerwasm-proposal:simdIssues related to the WebAssembly SIMD proposal

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions