120 lines
1.6 KiB
Plaintext
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
|
|
|