bytecodealliance / bytecodealliance/wasmtime

Cranelift: `sadd_sat` unimplmented for `i32x4` and `i64x2` types in x64 backend

Open
#3,295 0 comments 0 reactions 0 assignees View on GitHub
bug cranelift cranelift:area:x64
Dominant language
Rust
Stars
18.6k
Forks
1.8k
Avg merge
1d 18h
Merged PRs (30d)
126

Description

### `.clif` Test Case

```
test run
target aarch64
target x86_64
target s390x

function %saddsat_i32x4(i32x4, i32x4) -> i32x4 {
block0(v0: i32x4, v1: i32x4):
v2 = sadd_sat v0, v1
return v2
}
; run: %saddsat_i32x4([256 -2147483000 2147483000 2147483000], [256 -1000 1000 1000]) == [512 -2147483648 2147483647 2147483647]

function %saddsat_i64x2(i64x2, i64x2) -> i64x2 {
block0(v0: i64x2, v1: i64x2):
v2 = sadd_sat v0, v1
return v2
}
; run: %saddsat_i64x2([-9223372036854775000 9223372036854775000], [-1000 1000]) == [-9223372036854775808 9223372036854775807]
```

### Steps to Reproduce

`clif-util test ./the-above.clif`

### Expected Results

The test to pass.

### Actual Results

```
thread 'worker #0' panicked at 'Unsupported type for packed sadd_sat instruction: i64x2', cranelift\codegen\src\isa\x64\lower.rs:1537:30
note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace
FAIL .\filetests\filetests\runtests\test.clif: panicked in worker #0: Unsupported type for packed sadd_sat instruction: i64x2
1 tests
Error: 1 failure
```

### Versions and Environment

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

### Extra Info

This test case was added in #3290

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.