cranelift: Fix urem/srem in interpreter (#4532)
This commit is contained in:
32
cranelift/filetests/filetests/runtests/i128-srem.clif
Normal file
32
cranelift/filetests/filetests/runtests/i128-srem.clif
Normal file
@@ -0,0 +1,32 @@
|
||||
test interpret
|
||||
|
||||
function %srem_i128(i128, i128) -> i128 {
|
||||
block0(v0: i128,v1: i128):
|
||||
v2 = srem v0, v1
|
||||
return v2
|
||||
}
|
||||
; run: %srem_i128(0, 1) == 0
|
||||
; run: %srem_i128(2, 2) == 0
|
||||
; run: %srem_i128(1, -1) == 0
|
||||
; run: %srem_i128(3, 2) == 1
|
||||
; run: %srem_i128(19, 7) == 5
|
||||
; run: %srem_i128(3, -2) == 1
|
||||
; run: %srem_i128(-19, 7) == -5
|
||||
; run: %srem_i128(0xC0FFEEEE_DECAFFFF_C0FFEEEE_DECAFFFF, 8) == -1
|
||||
; run: %srem_i128(0xC0FFEEEE_DECAFFFF_C0FFEEEE_DECAFFFF, -8) == -1
|
||||
; run: %srem_i128(0x80000000_00000000_00000000_00000000, -2) == 0
|
||||
|
||||
|
||||
function %srem_imm_i128(i128) -> i128 {
|
||||
block0(v0: i128):
|
||||
v1 = srem_imm v0, 3
|
||||
return v1
|
||||
}
|
||||
; run: %srem_imm_i128(0) == 0
|
||||
; run: %srem_imm_i128(1) == 1
|
||||
; run: %srem_imm_i128(2) == 2
|
||||
; run: %srem_imm_i128(3) == 0
|
||||
; run: %srem_imm_i128(19) == 1
|
||||
; run: %srem_imm_i128(-19) == -1
|
||||
; run: %srem_imm_i128(0xC0FFEEEE_DECAFFFF_C0FFEEEE_DECAFFFF) == -1
|
||||
; run: %srem_imm_i128(0x80000000_00000000_00000000_00000000) == -2
|
||||
Reference in New Issue
Block a user