Files
wasmtime/cranelift/filetests/filetests/runtests/i128-extend-2.clif

70 lines
2.0 KiB
Plaintext

test run
target aarch64
target x86_64 machinst
; TODO: Merge this file with i128-extend once the x86 legacy backend is removed
function %i128_uextend_i32(i32) -> i64, i64 {
block0(v0: i32):
v1 = uextend.i128 v0
v2, v3 = isplit v1
return v2, v3
}
; run: %i128_uextend_i32(0) == [0, 0]
; run: %i128_uextend_i32(-1) == [0xffff_ffff, 0]
; run: %i128_uextend_i32(0xffff_eeee) == [0xffff_eeee, 0]
function %i128_sextend_i32(i32) -> i64, i64 {
block0(v0: i32):
v1 = sextend.i128 v0
v2, v3 = isplit v1
return v2, v3
}
; run: %i128_sextend_i32(0) == [0, 0]
; run: %i128_sextend_i32(-1) == [-1, -1]
; run: %i128_sextend_i32(0x7fff_ffff) == [0x7fff_ffff, 0x0000_0000_0000_0000]
; run: %i128_sextend_i32(0xffff_eeee) == [0xffff_ffff_ffff_eeee, 0xffff_ffff_ffff_ffff]
function %i128_uextend_i16(i16) -> i64, i64 {
block0(v0: i16):
v1 = uextend.i128 v0
v2, v3 = isplit v1
return v2, v3
}
; run: %i128_uextend_i16(0) == [0, 0]
; run: %i128_uextend_i16(-1) == [0xffff, 0]
; run: %i128_uextend_i16(0xffee) == [0xffee, 0]
function %i128_sextend_i16(i16) -> i64, i64 {
block0(v0: i16):
v1 = sextend.i128 v0
v2, v3 = isplit v1
return v2, v3
}
; run: %i128_sextend_i16(0) == [0, 0]
; run: %i128_sextend_i16(-1) == [-1, -1]
; run: %i128_sextend_i16(0x7fff) == [0x7fff, 0x0000_0000_0000_0000]
; run: %i128_sextend_i16(0xffee) == [0xffff_ffff_ffff_ffee, 0xffff_ffff_ffff_ffff]
function %i128_uextend_i8(i8) -> i64, i64 {
block0(v0: i8):
v1 = uextend.i128 v0
v2, v3 = isplit v1
return v2, v3
}
; run: %i128_uextend_i8(0) == [0, 0]
; run: %i128_uextend_i8(-1) == [0xff, 0]
; run: %i128_uextend_i8(0xfe) == [0xfe, 0]
function %i128_sextend_i8(i8) -> i64, i64 {
block0(v0: i8):
v1 = sextend.i128 v0
v2, v3 = isplit v1
return v2, v3
}
; run: %i128_sextend_i8(0) == [0, 0]
; run: %i128_sextend_i8(-1) == [-1, -1]
; run: %i128_sextend_i8(0x7f) == [0x7f, 0x0000_0000_0000_0000]
; run: %i128_sextend_i8(0xfe) == [0xffff_ffff_ffff_fffe, 0xffff_ffff_ffff_ffff]