* cranelift: Reorganize test suite Group some SIMD operations by instruction. * cranelift: Deduplicate some shift tests Also, new tests with the mod behaviour * aarch64: Lower shifts with mod behaviour * x64: Lower shifts with mod behaviour * wasmtime: Don't mask SIMD shifts
47 lines
1.2 KiB
Plaintext
47 lines
1.2 KiB
Plaintext
test run
|
|
set enable_simd
|
|
target aarch64
|
|
target s390x
|
|
target x86_64 skylake
|
|
|
|
|
|
function %ishl_i8x16(i8x16, i32) -> i8x16 {
|
|
block0(v0: i8x16, v1: i32):
|
|
v2 = ishl v0, v1
|
|
return v2
|
|
}
|
|
; run: %ishl_i8x16([0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15], 4) == [0x00 0x10 0x20 0x30 0x40 0x50 0x60 0x70 0x80 0x90 0xa0 0xb0 0xc0 0xd0 0xe0 0xf0]
|
|
; run: %ishl_i8x16([0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15], 12) == [0x00 0x10 0x20 0x30 0x40 0x50 0x60 0x70 0x80 0x90 0xa0 0xb0 0xc0 0xd0 0xe0 0xf0]
|
|
|
|
function %ishl_i16x8(i16x8, i32) -> i16x8 {
|
|
block0(v0: i16x8, v1: i32):
|
|
v2 = ishl v0, v1
|
|
return v2
|
|
}
|
|
; run: %ishl_i16x8([1 2 4 8 16 32 64 128], 1) == [2 4 8 16 32 64 128 256]
|
|
; run: %ishl_i16x8([1 2 4 8 16 32 64 128], 17) == [2 4 8 16 32 64 128 256]
|
|
|
|
function %ishl_i32x4(i32x4, i32) -> i32x4 {
|
|
block0(v0: i32x4, v1: i32):
|
|
v2 = ishl v0, v1
|
|
return v2
|
|
}
|
|
; run: %ishl_i32x4([1 2 4 8], 1) == [2 4 8 16]
|
|
; run: %ishl_i32x4([1 2 4 8], 33) == [2 4 8 16]
|
|
|
|
function %ishl_i64x2(i64x2, i32) -> i64x2 {
|
|
block0(v0: i64x2, v1: i32):
|
|
v2 = ishl v0, v1
|
|
return v2
|
|
}
|
|
; run: %ishl_i64x2([1 2], 1) == [2 4]
|
|
; run: %ishl_i64x2([1 2], 65) == [2 4]
|
|
|
|
|
|
function %ishl_imm_i64x2(i64x2) -> i64x2 {
|
|
block0(v0: i64x2):
|
|
v2 = ishl_imm v0, 1
|
|
return v2
|
|
}
|
|
; run: %ishl_imm_i64x2([1 0]) == [2 0]
|