Stream: git-wasmtime

Topic: wasmtime / issue #5199 Cranelift: `select.i128` is not im...


view this post on Zulip Wasmtime GitHub notifications bot (Nov 04 2022 at 12:45):

afonso360 opened issue #5199:

:wave: Hey,

Fuzzgen found this when adding support for this instruction.

.clif Test Case

test interpret
test run
set enable_llvm_abi_extensions=true
target x86_64

function %a(i128, i128, i128) -> i128 {
block0(v0: i128, v1: i128, v2: i128):
    v3 = select.i128 v0, v1, v2
    return v3
}
; run: %a(1, 2, 3) == 2

Steps to Reproduce

Expected Results

The above tests to pass.

Actual Results

    Finished dev [unoptimized + debuginfo] target(s) in 0.14s
     Running `/home/afonso/git/wasmtime/target/debug/clif-util test ./lmao.clif`
thread 'worker #0' panicked at 'internal error: entered unreachable code: implemented in ISLE: inst = `v3 = select.i128 v0, v1, v2`, type = `Some(types::I128)`', cranelift/codegen/src/isa/x64/lower.rs:476: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 = `v3 = select.i128 v0, v1, v2`, type = `Some(types::I128)`
FAIL ./lmao.clif: panicked in worker #0: internal error: entered unreachable code: implemented in ISLE: inst = `v3 = select.i128 v0, v1, v2`, type = `Some(types::I128)`
1 tests
Error: 1 failure

Versions and Environment

Cranelift version or commit: main
Operating system: Linux
Architecture: x86_64

view this post on Zulip Wasmtime GitHub notifications bot (Nov 04 2022 at 12:45):

afonso360 labeled issue #5199:

:wave: Hey,

Fuzzgen found this when adding support for this instruction.

.clif Test Case

test interpret
test run
set enable_llvm_abi_extensions=true
target x86_64

function %a(i128, i128, i128) -> i128 {
block0(v0: i128, v1: i128, v2: i128):
    v3 = select.i128 v0, v1, v2
    return v3
}
; run: %a(1, 2, 3) == 2

Steps to Reproduce

Expected Results

The above tests to pass.

Actual Results

    Finished dev [unoptimized + debuginfo] target(s) in 0.14s
     Running `/home/afonso/git/wasmtime/target/debug/clif-util test ./lmao.clif`
thread 'worker #0' panicked at 'internal error: entered unreachable code: implemented in ISLE: inst = `v3 = select.i128 v0, v1, v2`, type = `Some(types::I128)`', cranelift/codegen/src/isa/x64/lower.rs:476: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 = `v3 = select.i128 v0, v1, v2`, type = `Some(types::I128)`
FAIL ./lmao.clif: panicked in worker #0: internal error: entered unreachable code: implemented in ISLE: inst = `v3 = select.i128 v0, v1, v2`, type = `Some(types::I128)`
1 tests
Error: 1 failure

Versions and Environment

Cranelift version or commit: main
Operating system: Linux
Architecture: x86_64

view this post on Zulip Wasmtime GitHub notifications bot (Nov 26 2022 at 06:21):

tnachen commented on issue #5199:

I see we already have select.i128 in some existing clif tests targeting x86_64, is there a reason why this is still erroring?

view this post on Zulip Wasmtime GitHub notifications bot (Nov 26 2022 at 14:26):

afonso360 commented on issue #5199:

Right, I think this is incorrectly described, what's failing here is selecting on a i128 value, not using i128 as a control type (that works for i64 and smaller).

This test uses select.i128 with an i8 condition value, but switching that to i128 makes it fail to compile. I've updated the issue to make this a bit clearer.


Last updated: Dec 23 2024 at 12:05 UTC