70 lines
2.0 KiB
Plaintext
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]
|