Files
wasmtime/cranelift/filetests/filetests/isa/riscv64/extend-op.clif
2022-10-04 11:18:42 -07:00

120 lines
1.6 KiB
Plaintext

test compile precise-output
set unwind_info=false
target riscv64
function %f(i8) -> i64 {
block0(v0: i8):
v1 = sextend.i64 v0
v2 = iconst.i64 42
v3 = iadd.i64 v2, v1
return v3
}
; block0:
; sext.b a1,a0
; addi a0,a1,42
; ret
function %f2(i8, i64) -> i64 {
block0(v0: i8, v1: i64):
v2 = sextend.i64 v0
v3 = iadd.i64 v2, v1
return v3
}
; block0:
; sext.b a2,a0
; add a0,a2,a1
; ret
function %i128_uextend_i64(i64) -> i128 {
block0(v0: i64):
v1 = uextend.i128 v0
return v1
}
; block0:
; li a1,0
; ret
function %i128_sextend_i64(i64) -> i128 {
block0(v0: i64):
v1 = sextend.i128 v0
return v1
}
; block0:
; slt a1,a0,zero
; sext.b1 a1,a1
; ret
function %i128_uextend_i32(i32) -> i128 {
block0(v0: i32):
v1 = uextend.i128 v0
return v1
}
; block0:
; uext.w a0,a0
; li a1,0
; ret
function %i128_sextend_i32(i32) -> i128 {
block0(v0: i32):
v1 = sextend.i128 v0
return v1
}
; block0:
; sext.w a1,a0
; slt a3,a1,zero
; sext.b1 a1,a3
; ret
function %i128_uextend_i16(i16) -> i128 {
block0(v0: i16):
v1 = uextend.i128 v0
return v1
}
; block0:
; uext.h a0,a0
; li a1,0
; ret
function %i128_sextend_i16(i16) -> i128 {
block0(v0: i16):
v1 = sextend.i128 v0
return v1
}
; block0:
; sext.h a1,a0
; slt a3,a1,zero
; sext.b1 a1,a3
; ret
function %i128_uextend_i8(i8) -> i128 {
block0(v0: i8):
v1 = uextend.i128 v0
return v1
}
; block0:
; uext.b a0,a0
; li a1,0
; ret
function %i128_sextend_i8(i8) -> i128 {
block0(v0: i8):
v1 = sextend.i128 v0
return v1
}
; block0:
; sext.b a1,a0
; slt a3,a1,zero
; sext.b1 a1,a3
; ret