* 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
23 lines
623 B
Plaintext
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]
|