Stream: git-wasmtime

Topic: wasmtime / issue #4900 Cranelift: `fcvt_from_{u,s}int` no...


view this post on Zulip Wasmtime GitHub notifications bot (Sep 12 2022 at 11:08):

afonso360 opened issue #4900:

:wave: Hey,

This came up when trying to fuzz #4884

.clif Test Case

test run
set enable_llvm_abi_extensions
target x86_64

function %a(i128) -> f32 {
block0(v0: i128):
    v1 = fcvt_from_uint.f32 v0
    return v1
}
; run: %a(0) == 0.0

function %c(i128) -> f64 {
block0(v0: i128):
    v1 = fcvt_from_uint.f64 v0
    return v1
}
; run: %c(0) == 0.0

function %signed_a(i128) -> f32 {
block0(v0: i128):
    v1 = fcvt_from_sint.f32 v0
    return v1
}
; run: %signed_a(0) == 0.0

function %signed_c(i128) -> f64 {
block0(v0: i128):
    v1 = fcvt_from_sint.f64 v0
    return v1
}
; run: %signed_c(0) == 0.0

Steps to Reproduce

Expected Results

The above tests to pass.

Actual Results

     Running `C:\Users\Afonso\CLionProjects\wasmtime\target\debug\clif-util.exe test .\lmao.clif`
thread 'worker #0' panicked at 'internal error: entered unreachable code: implemented in ISLE: inst = `v1 = fcvt_from_sint.f64 v0`, type = `Some(types::F64)`', cranelift\codegen\src\isa\x64\lower.rs:4
80:13
note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace
 ERROR cranelift_filetests::concurrent > FAIL: panicked in worker #0: internal error: entered unreachable code: implemented in ISLE: inst = `v1 = fcvt_from_sint.f64 v0`, type = `Some(types::F64)`
FAIL .\lmao.clif: panicked in worker #0: internal error: entered unreachable code: implemented in ISLE: inst = `v1 = fcvt_from_sint.f64 v0`, type = `Some(types::F64)`
1 tests
Error: 1 failure

This fails in the first function but all the functions in all test cases crash with a similar error.

Versions and Environment

Cranelift version or commit: main
Operating system: Windows
Architecture: x64

Extra Info

cg_clif works around this by emitting a libcall: https://github.com/bjorn3/rustc_codegen_cranelift/blob/fa7660440b2581c4c57d896d50e76da1515de6df/src/cast.rs#L50-L85

view this post on Zulip Wasmtime GitHub notifications bot (Sep 12 2022 at 11:08):

afonso360 labeled issue #4900:

:wave: Hey,

This came up when trying to fuzz #4884

.clif Test Case

test run
set enable_llvm_abi_extensions
target x86_64

function %a(i128) -> f32 {
block0(v0: i128):
    v1 = fcvt_from_uint.f32 v0
    return v1
}
; run: %a(0) == 0.0

function %c(i128) -> f64 {
block0(v0: i128):
    v1 = fcvt_from_uint.f64 v0
    return v1
}
; run: %c(0) == 0.0

function %signed_a(i128) -> f32 {
block0(v0: i128):
    v1 = fcvt_from_sint.f32 v0
    return v1
}
; run: %signed_a(0) == 0.0

function %signed_c(i128) -> f64 {
block0(v0: i128):
    v1 = fcvt_from_sint.f64 v0
    return v1
}
; run: %signed_c(0) == 0.0

Steps to Reproduce

Expected Results

The above tests to pass.

Actual Results

     Running `C:\Users\Afonso\CLionProjects\wasmtime\target\debug\clif-util.exe test .\lmao.clif`
thread 'worker #0' panicked at 'internal error: entered unreachable code: implemented in ISLE: inst = `v1 = fcvt_from_sint.f64 v0`, type = `Some(types::F64)`', cranelift\codegen\src\isa\x64\lower.rs:4
80:13
note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace
 ERROR cranelift_filetests::concurrent > FAIL: panicked in worker #0: internal error: entered unreachable code: implemented in ISLE: inst = `v1 = fcvt_from_sint.f64 v0`, type = `Some(types::F64)`
FAIL .\lmao.clif: panicked in worker #0: internal error: entered unreachable code: implemented in ISLE: inst = `v1 = fcvt_from_sint.f64 v0`, type = `Some(types::F64)`
1 tests
Error: 1 failure

This fails in the first function but all the functions in all test cases crash with a similar error.

Versions and Environment

Cranelift version or commit: main
Operating system: Windows
Architecture: x64

Extra Info

cg_clif works around this by emitting a libcall: https://github.com/bjorn3/rustc_codegen_cranelift/blob/fa7660440b2581c4c57d896d50e76da1515de6df/src/cast.rs#L50-L85

view this post on Zulip Wasmtime GitHub notifications bot (Sep 12 2022 at 11:08):

afonso360 labeled issue #4900:

:wave: Hey,

This came up when trying to fuzz #4884

.clif Test Case

test run
set enable_llvm_abi_extensions
target x86_64

function %a(i128) -> f32 {
block0(v0: i128):
    v1 = fcvt_from_uint.f32 v0
    return v1
}
; run: %a(0) == 0.0

function %c(i128) -> f64 {
block0(v0: i128):
    v1 = fcvt_from_uint.f64 v0
    return v1
}
; run: %c(0) == 0.0

function %signed_a(i128) -> f32 {
block0(v0: i128):
    v1 = fcvt_from_sint.f32 v0
    return v1
}
; run: %signed_a(0) == 0.0

function %signed_c(i128) -> f64 {
block0(v0: i128):
    v1 = fcvt_from_sint.f64 v0
    return v1
}
; run: %signed_c(0) == 0.0

Steps to Reproduce

Expected Results

The above tests to pass.

Actual Results

     Running `C:\Users\Afonso\CLionProjects\wasmtime\target\debug\clif-util.exe test .\lmao.clif`
thread 'worker #0' panicked at 'internal error: entered unreachable code: implemented in ISLE: inst = `v1 = fcvt_from_sint.f64 v0`, type = `Some(types::F64)`', cranelift\codegen\src\isa\x64\lower.rs:4
80:13
note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace
 ERROR cranelift_filetests::concurrent > FAIL: panicked in worker #0: internal error: entered unreachable code: implemented in ISLE: inst = `v1 = fcvt_from_sint.f64 v0`, type = `Some(types::F64)`
FAIL .\lmao.clif: panicked in worker #0: internal error: entered unreachable code: implemented in ISLE: inst = `v1 = fcvt_from_sint.f64 v0`, type = `Some(types::F64)`
1 tests
Error: 1 failure

This fails in the first function but all the functions in all test cases crash with a similar error.

Versions and Environment

Cranelift version or commit: main
Operating system: Windows
Architecture: x64

Extra Info

cg_clif works around this by emitting a libcall: https://github.com/bjorn3/rustc_codegen_cranelift/blob/fa7660440b2581c4c57d896d50e76da1515de6df/src/cast.rs#L50-L85

view this post on Zulip Wasmtime GitHub notifications bot (Sep 12 2022 at 11:09):

afonso360 edited issue #4900:

:wave: Hey,

This came up when trying to fuzz #4884

.clif Test Case

test run
set enable_llvm_abi_extensions
target x86_64

function %a(i128) -> f32 {
block0(v0: i128):
    v1 = fcvt_from_uint.f32 v0
    return v1
}
; run: %a(0) == 0.0

function %c(i128) -> f64 {
block0(v0: i128):
    v1 = fcvt_from_uint.f64 v0
    return v1
}
; run: %c(0) == 0.0

function %signed_a(i128) -> f32 {
block0(v0: i128):
    v1 = fcvt_from_sint.f32 v0
    return v1
}
; run: %signed_a(0) == 0.0

function %signed_c(i128) -> f64 {
block0(v0: i128):
    v1 = fcvt_from_sint.f64 v0
    return v1
}
; run: %signed_c(0) == 0.0

Steps to Reproduce

Expected Results

The above tests to pass.

Actual Results

     Running `C:\Users\Afonso\CLionProjects\wasmtime\target\debug\clif-util.exe test .\lmao.clif`
thread 'worker #0' panicked at 'internal error: entered unreachable code: implemented in ISLE: inst = `v1 = fcvt_from_sint.f64 v0`, type = `Some(types::F64)`', cranelift\codegen\src\isa\x64\lower.rs:4
80:13
note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace
 ERROR cranelift_filetests::concurrent > FAIL: panicked in worker #0: internal error: entered unreachable code: implemented in ISLE: inst = `v1 = fcvt_from_sint.f64 v0`, type = `Some(types::F64)`
FAIL .\lmao.clif: panicked in worker #0: internal error: entered unreachable code: implemented in ISLE: inst = `v1 = fcvt_from_sint.f64 v0`, type = `Some(types::F64)`
1 tests
Error: 1 failure

This fails in the first function but all the functions in all test cases crash with a similar error.

Versions and Environment

Cranelift version or commit: main
Operating system: Windows
Architecture: x64

Extra Info

Unlike with fcvt_to these seem to be implemented for i8 and i16.

cg_clif works around this by emitting a libcall: https://github.com/bjorn3/rustc_codegen_cranelift/blob/fa7660440b2581c4c57d896d50e76da1515de6df/src/cast.rs#L50-L85

view this post on Zulip Wasmtime GitHub notifications bot (Sep 12 2022 at 11:10):

afonso360 edited issue #4900:

:wave: Hey,

This came up when trying to fuzz #4884

.clif Test Case

test run
set enable_llvm_abi_extensions
target x86_64

function %a(i128) -> f32 {
block0(v0: i128):
    v1 = fcvt_from_uint.f32 v0
    return v1
}
; run: %a(0) == 0.0

function %c(i128) -> f64 {
block0(v0: i128):
    v1 = fcvt_from_uint.f64 v0
    return v1
}
; run: %c(0) == 0.0

function %signed_a(i128) -> f32 {
block0(v0: i128):
    v1 = fcvt_from_sint.f32 v0
    return v1
}
; run: %signed_a(0) == 0.0

function %signed_c(i128) -> f64 {
block0(v0: i128):
    v1 = fcvt_from_sint.f64 v0
    return v1
}
; run: %signed_c(0) == 0.0

Steps to Reproduce

Expected Results

The above tests to pass.

Actual Results

     Running `C:\Users\Afonso\CLionProjects\wasmtime\target\debug\clif-util.exe test .\lmao.clif`
thread 'worker #0' panicked at 'internal error: entered unreachable code: implemented in ISLE: inst = `v1 = fcvt_from_sint.f64 v0`, type = `Some(types::F64)`', cranelift\codegen\src\isa\x64\lower.rs:4
80:13
note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace
 ERROR cranelift_filetests::concurrent > FAIL: panicked in worker #0: internal error: entered unreachable code: implemented in ISLE: inst = `v1 = fcvt_from_sint.f64 v0`, type = `Some(types::F64)`
FAIL .\lmao.clif: panicked in worker #0: internal error: entered unreachable code: implemented in ISLE: inst = `v1 = fcvt_from_sint.f64 v0`, type = `Some(types::F64)`
1 tests
Error: 1 failure

This fails in the first function but all the functions in all test cases crash with a similar error.

Versions and Environment

Cranelift version or commit: main
Operating system: Windows
Architecture: x64

Extra Info

Unlike with fcvt_to these seem to be implemented for i8 and i16.

cg_clif works around this by emitting a libcall: https://github.com/bjorn3/rustc_codegen_cranelift/blob/fa7660440b2581c4c57d896d50e76da1515de6df/src/cast.rs#L50-L85

view this post on Zulip Wasmtime GitHub notifications bot (Sep 26 2022 at 13:02):

akirilov-arm labeled issue #4900:

:wave: Hey,

This came up when trying to fuzz #4884

.clif Test Case

test run
set enable_llvm_abi_extensions
target x86_64

function %a(i128) -> f32 {
block0(v0: i128):
    v1 = fcvt_from_uint.f32 v0
    return v1
}
; run: %a(0) == 0.0

function %c(i128) -> f64 {
block0(v0: i128):
    v1 = fcvt_from_uint.f64 v0
    return v1
}
; run: %c(0) == 0.0

function %signed_a(i128) -> f32 {
block0(v0: i128):
    v1 = fcvt_from_sint.f32 v0
    return v1
}
; run: %signed_a(0) == 0.0

function %signed_c(i128) -> f64 {
block0(v0: i128):
    v1 = fcvt_from_sint.f64 v0
    return v1
}
; run: %signed_c(0) == 0.0

Steps to Reproduce

Expected Results

The above tests to pass.

Actual Results

     Running `C:\Users\Afonso\CLionProjects\wasmtime\target\debug\clif-util.exe test .\lmao.clif`
thread 'worker #0' panicked at 'internal error: entered unreachable code: implemented in ISLE: inst = `v1 = fcvt_from_sint.f64 v0`, type = `Some(types::F64)`', cranelift\codegen\src\isa\x64\lower.rs:4
80:13
note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace
 ERROR cranelift_filetests::concurrent > FAIL: panicked in worker #0: internal error: entered unreachable code: implemented in ISLE: inst = `v1 = fcvt_from_sint.f64 v0`, type = `Some(types::F64)`
FAIL .\lmao.clif: panicked in worker #0: internal error: entered unreachable code: implemented in ISLE: inst = `v1 = fcvt_from_sint.f64 v0`, type = `Some(types::F64)`
1 tests
Error: 1 failure

This fails in the first function but all the functions in all test cases crash with a similar error.

Versions and Environment

Cranelift version or commit: main
Operating system: Windows
Architecture: x64

Extra Info

Unlike with fcvt_to these seem to be implemented for i8 and i16.

cg_clif works around this by emitting a libcall: https://github.com/bjorn3/rustc_codegen_cranelift/blob/fa7660440b2581c4c57d896d50e76da1515de6df/src/cast.rs#L50-L85


Last updated: Dec 23 2024 at 12:05 UTC