elliottt opened issue #4734:
.clif
Test Casefunction %f3(i64x2, i64x2) -> i32x4 { block0(v0: i64x2, v1: i64x2): v2 = snarrow v0, v1 return v2 } function %f3(i64x2, i64x2) -> i32x4 { block0(v0: i64x2, v1: i64x2): v2 = unarrow v0, v1 return v2 }
Steps to Reproduce
Compile the examples with
clif-util compile --target=x86_64
.Expected Results
The examples should generate code.
Actual Results
There's a panic in the x64 code generator, as these case for
i64x2
input is not implemented forsnarrow
andunarrow
.% ./target/debug/clif-util compile -D --target=x86_64 test.clif thread 'main' panicked at 'internal error: entered unreachable code', cranelift/codegen/src/isa/x64/lower.rs:749:33 note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace
Versions and Environment
Cranelift version or commit: 7d9a359f51fca167dce488a1039dded7096c7ac5
Operating system: Linux
Architecture: x86_64
elliottt labeled issue #4734:
.clif
Test Casefunction %f3(i64x2, i64x2) -> i32x4 { block0(v0: i64x2, v1: i64x2): v2 = snarrow v0, v1 return v2 } function %f3(i64x2, i64x2) -> i32x4 { block0(v0: i64x2, v1: i64x2): v2 = unarrow v0, v1 return v2 }
Steps to Reproduce
Compile the examples with
clif-util compile --target=x86_64
.Expected Results
The examples should generate code.
Actual Results
There's a panic in the x64 code generator, as these case for
i64x2
input is not implemented forsnarrow
andunarrow
.% ./target/debug/clif-util compile -D --target=x86_64 test.clif thread 'main' panicked at 'internal error: entered unreachable code', cranelift/codegen/src/isa/x64/lower.rs:749:33 note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace
Versions and Environment
Cranelift version or commit: 7d9a359f51fca167dce488a1039dded7096c7ac5
Operating system: Linux
Architecture: x86_64
elliottt labeled issue #4734:
.clif
Test Casefunction %f3(i64x2, i64x2) -> i32x4 { block0(v0: i64x2, v1: i64x2): v2 = snarrow v0, v1 return v2 } function %f3(i64x2, i64x2) -> i32x4 { block0(v0: i64x2, v1: i64x2): v2 = unarrow v0, v1 return v2 }
Steps to Reproduce
Compile the examples with
clif-util compile --target=x86_64
.Expected Results
The examples should generate code.
Actual Results
There's a panic in the x64 code generator, as these case for
i64x2
input is not implemented forsnarrow
andunarrow
.% ./target/debug/clif-util compile -D --target=x86_64 test.clif thread 'main' panicked at 'internal error: entered unreachable code', cranelift/codegen/src/isa/x64/lower.rs:749:33 note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace
Versions and Environment
Cranelift version or commit: 7d9a359f51fca167dce488a1039dded7096c7ac5
Operating system: Linux
Architecture: x86_64
abrown commented on issue #4734:
Is this because those types are not used by the WebAssembly SIMD instructions for narrowing?
cfallin commented on issue #4734:
Yep, it appears the ops are only used in particular combinations by
cranelift-wasm
and those are the combinations the x64 backend supports. That's OK for now (we're keeping status quo as we migrate lowerings) but we definitely want to support the general case in due time, I think.
elliottt edited issue #4734:
.clif
Test Casefunction %f3(i64x2, i64x2) -> i32x4 { block0(v0: i64x2, v1: i64x2): v2 = snarrow v0, v1 return v2 } function %f3(i64x2, i64x2) -> i32x4 { block0(v0: i64x2, v1: i64x2): v2 = unarrow v0, v1 return v2 }
Steps to Reproduce
Compile the examples with
clif-util compile --target=x86_64
.Expected Results
The examples should generate code.
Actual Results
There's a panic in the x64 code generator, as these case for
i64x2
input is not implemented forsnarrow
andunarrow
.Versions and Environment
Cranelift version or commit: 7d9a359f51fca167dce488a1039dded7096c7ac5
Operating system: Linux
Architecture: x86_64
elliottt edited issue #4734:
.clif
Test Casefunction %f3(i64x2, i64x2) -> i32x4 { block0(v0: i64x2, v1: i64x2): v2 = snarrow v0, v1 return v2 } function %f3(i64x2, i64x2) -> i32x4 { block0(v0: i64x2, v1: i64x2): v2 = unarrow v0, v1 return v2 }
Steps to Reproduce
Compile the examples with
clif-util compile --target=x86_64
.Expected Results
The examples should generate code.
Actual Results
There's a panic in the x64 code generator, as these case for
i64x2
input is not implemented forsnarrow
andunarrow
.Versions and Environment
Cranelift version or commit: ca6d648e37c80cb13e5027cc746ec0d2e4bd64d1
Operating system: Linux
Architecture: x86_64
elliottt edited issue #4734:
.clif
Test Casefunction %f3(i64x2, i64x2) -> i32x4 { block0(v0: i64x2, v1: i64x2): v2 = snarrow v0, v1 return v2 } function %f3(i64x2, i64x2) -> i32x4 { block0(v0: i64x2, v1: i64x2): v2 = unarrow v0, v1 return v2 }
Steps to Reproduce
Compile the examples with
clif-util compile --target=x86_64
.Expected Results
The examples should generate code.
Actual Results
There's a panic in the x64 code generator, as these case for
i64x2
input is not implemented forsnarrow
andunarrow
. The following program will compile successfully, as there's a special case for the combination ofsnarrow
andfcvt_to_sint_sat
:function %f3(f64x2) -> i32x4 { block0(v0: f64x2): v1 = fcvt_to_sint_sat.i64x2 v0 v2 = vconst.i64x2 0x00 v3 = snarrow v1, v2 return v3 }
Versions and Environment
Cranelift version or commit: ca6d648e37c80cb13e5027cc746ec0d2e4bd64d1
Operating system: Linux
Architecture: x86_64
akirilov-arm labeled issue #4734:
.clif
Test Casefunction %f3(i64x2, i64x2) -> i32x4 { block0(v0: i64x2, v1: i64x2): v2 = snarrow v0, v1 return v2 } function %f3(i64x2, i64x2) -> i32x4 { block0(v0: i64x2, v1: i64x2): v2 = unarrow v0, v1 return v2 }
Steps to Reproduce
Compile the examples with
clif-util compile --target=x86_64
.Expected Results
The examples should generate code.
Actual Results
There's a panic in the x64 code generator, as these case for
i64x2
input is not implemented forsnarrow
andunarrow
. The following program will compile successfully, as there's a special case for the combination ofsnarrow
andfcvt_to_sint_sat
:function %f3(f64x2) -> i32x4 { block0(v0: f64x2): v1 = fcvt_to_sint_sat.i64x2 v0 v2 = vconst.i64x2 0x00 v3 = snarrow v1, v2 return v3 }
Versions and Environment
Cranelift version or commit: ca6d648e37c80cb13e5027cc746ec0d2e4bd64d1
Operating system: Linux
Architecture: x86_64
Last updated: Dec 23 2024 at 13:07 UTC