Files
wasmtime/cranelift/filetests/filetests/runtests/simd-scalartovector-aarch64.clif
Jan-Justin van Tonder c475735f5e cranelift-interpreter: Fix incorrect scalar_to_vector result (#6133)
* The `vectorizelanes` function performs a check to see whether there
is a single value provided in an array, and if so returns it as a
scalar.

While elsewhere in the interpreter this behaviour is relied
upon, it yields an incorrect result when attempting to convert a
scalar to a vector.

The original `vectorizelanes` remains untouched, however, an
unconditional variant `vectorizelanes_all` was added.

* A test was added under `filetests/runtests/issue5911.clif`.

Fixes #5911
2023-04-04 12:14:16 +00:00

23 lines
623 B
Plaintext

test run
test interpret
target aarch64
target s390x
; i8 and i16 are invalid source sizes for x86_64
function %scalartovector_i8(i8) -> i8x16 {
block0(v0: i8):
v1 = scalar_to_vector.i8x16 v0
return v1
}
; run: %scalartovector_i8(1) == [1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0]
; run: %scalartovector_i8(255) == [255 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0]
function %scalartovector_i16(i16) -> i16x8 {
block0(v0: i16):
v1 = scalar_to_vector.i16x8 v0
return v1
}
; run: %scalartovector_i16(0) == [0 0 0 0 0 0 0 0]
; run: %scalartovector_i16(1) == [1 0 0 0 0 0 0 0]
; run: %scalartovector_i16(65535) == [65535 0 0 0 0 0 0 0]