fix issue 4996. (#5003)
This commit is contained in:
@@ -120,7 +120,7 @@ block0(v0: i128):
|
||||
; li t0,64
|
||||
; select_reg t2,t3,zero##condition=(t0 eq a4)
|
||||
; add a0,a4,t2
|
||||
; mv a1,zero
|
||||
; li a1,0
|
||||
; ret
|
||||
|
||||
function %c(i8) -> i8 {
|
||||
@@ -194,8 +194,9 @@ block0(v0: i128):
|
||||
; li a5,64
|
||||
; select_reg a7,a3,zero##condition=(a5 eq t2)
|
||||
; add t4,t2,a7
|
||||
; li t1,0
|
||||
; addi a0,t4,-1
|
||||
; mv a1,zero
|
||||
; li a1,0
|
||||
; ret
|
||||
|
||||
function %d(i8) -> i8 {
|
||||
@@ -254,7 +255,7 @@ block0(v0: i128):
|
||||
; li t0,64
|
||||
; select_reg t2,t3,zero##condition=(t0 eq a4)
|
||||
; add a0,a4,t2
|
||||
; mv a1,zero
|
||||
; li a1,0
|
||||
; ret
|
||||
|
||||
function %d(i128) -> i128 {
|
||||
@@ -267,7 +268,7 @@ block0(v0: i128):
|
||||
; popcnt a4,a0##ty=i64 tmp=a2 step=a3
|
||||
; popcnt t3,a1##ty=i64 tmp=a6 step=a7
|
||||
; add a0,a4,t3
|
||||
; mv a1,zero
|
||||
; li a1,0
|
||||
; ret
|
||||
|
||||
function %d(i64) -> i64 {
|
||||
|
||||
@@ -34,7 +34,7 @@ block0(v0: i64):
|
||||
}
|
||||
|
||||
; block0:
|
||||
; mv a1,zero
|
||||
; li a1,0
|
||||
; ret
|
||||
|
||||
function %i128_sextend_i64(i64) -> i128 {
|
||||
@@ -56,7 +56,7 @@ block0(v0: i32):
|
||||
|
||||
; block0:
|
||||
; uext.w a0,a0
|
||||
; mv a1,zero
|
||||
; li a1,0
|
||||
; ret
|
||||
|
||||
function %i128_sextend_i32(i32) -> i128 {
|
||||
@@ -79,7 +79,7 @@ block0(v0: i16):
|
||||
|
||||
; block0:
|
||||
; uext.h a0,a0
|
||||
; mv a1,zero
|
||||
; li a1,0
|
||||
; ret
|
||||
|
||||
function %i128_sextend_i16(i16) -> i128 {
|
||||
@@ -102,7 +102,7 @@ block0(v0: i8):
|
||||
|
||||
; block0:
|
||||
; uext.b a0,a0
|
||||
; mv a1,zero
|
||||
; li a1,0
|
||||
; ret
|
||||
|
||||
function %i128_sextend_i8(i8) -> i128 {
|
||||
|
||||
@@ -0,0 +1,24 @@
|
||||
test interpret
|
||||
test run
|
||||
set enable_llvm_abi_extensions=true
|
||||
target riscv64
|
||||
|
||||
; This is a regression test for https://github.com/bytecodealliance/wasmtime/issues/4996.
|
||||
function %issue4996() -> i128, i64 system_v {
|
||||
block0:
|
||||
v5 = bconst.b1 false
|
||||
brz v5, block3 ; v5 = false
|
||||
jump block1
|
||||
block1:
|
||||
v12 = iconst.i64 0
|
||||
v13 = uextend.i128 v12 ; v12 = 0
|
||||
jump block5(v13)
|
||||
|
||||
block3:
|
||||
v21 = iconst.i128 0
|
||||
jump block5(v21) ; v21 = 0
|
||||
block5(v23: i128):
|
||||
v29 = iconst.i64 0
|
||||
return v23, v29 ; v29 = 0
|
||||
}
|
||||
; run: %issue4996() == [0,0]
|
||||
Reference in New Issue
Block a user