141 lines
3.5 KiB
Plaintext
141 lines
3.5 KiB
Plaintext
test interpret
|
|
test run
|
|
target aarch64
|
|
target s390x
|
|
target x86_64
|
|
; Test these inputs without div traps, it shouldn't affect normal inputs
|
|
set avoid_div_traps
|
|
target aarch64
|
|
target s390x
|
|
target x86_64
|
|
|
|
function %urem_i64(i64, i64) -> i64 {
|
|
block0(v0: i64,v1: i64):
|
|
v2 = urem v0, v1
|
|
return v2
|
|
}
|
|
; run: %urem_i64(0, 1) == 0
|
|
; run: %urem_i64(2, 2) == 0
|
|
; run: %urem_i64(1, -1) == 1
|
|
; run: %urem_i64(3, 2) == 1
|
|
; run: %urem_i64(19, 7) == 5
|
|
; run: %urem_i64(3, -2) == 3
|
|
; run: %urem_i64(-19, 7) == 4
|
|
; run: %urem_i64(-57, -5) == -57
|
|
; run: %urem_i64(0, 104857600000) == 0
|
|
; run: %urem_i64(104857600000, 511) == 398
|
|
; run: %urem_i64(0xC0FFEEEE_DECAFFFF, 8) == 7
|
|
; run: %urem_i64(0xC0FFEEEE_DECAFFFF, -8) == 0xC0FFEEEE_DECAFFFF
|
|
; run: %urem_i64(0x80000000_00000000, -2) == 0x80000000_00000000
|
|
|
|
function %urem_i32(i32, i32) -> i32 {
|
|
block0(v0: i32,v1: i32):
|
|
v2 = urem v0, v1
|
|
return v2
|
|
}
|
|
; run: %urem_i32(0, 1) == 0
|
|
; run: %urem_i32(2, 2) == 0
|
|
; run: %urem_i32(1, -1) == 1
|
|
; run: %urem_i32(3, 2) == 1
|
|
; run: %urem_i32(19, 7) == 5
|
|
; run: %urem_i32(3, -2) == 3
|
|
; run: %urem_i32(-19, 7) == 6
|
|
; run: %urem_i32(0, 13) == 0
|
|
; run: %urem_i32(1048576, 8192) == 0
|
|
; run: %urem_i32(-1024, 255) == 252
|
|
; run: %urem_i32(0xC0FFEEEE, 8) == 6
|
|
; run: %urem_i32(0xC0FFEEEE, -8) == 0xC0FFEEEE
|
|
; run: %urem_i32(0x80000000, -2) == 0x80000000
|
|
|
|
function %urem_i16(i16, i16) -> i16 {
|
|
block0(v0: i16,v1: i16):
|
|
v2 = urem v0, v1
|
|
return v2
|
|
}
|
|
; run: %urem_i16(0, 1) == 0
|
|
; run: %urem_i16(2, 2) == 0
|
|
; run: %urem_i16(1, -1) == 1
|
|
; run: %urem_i16(3, 2) == 1
|
|
; run: %urem_i16(19, 7) == 5
|
|
; run: %urem_i16(3, -2) == 3
|
|
; run: %urem_i16(-19, 7) == 4
|
|
; run: %urem_i16(0, 42) == 0
|
|
; run: %urem_i16(4, -2) == 4
|
|
; run: %urem_i16(13, 5) == 3
|
|
; run: %urem_i16(0xC0FF, 8) == 7
|
|
; run: %urem_i16(0xC0FF, -8) == 0xC0FF
|
|
; run: %urem_i16(0x8000, -2) == 0x8000
|
|
|
|
function %urem_i8(i8, i8) -> i8 {
|
|
block0(v0: i8,v1: i8):
|
|
v2 = urem v0, v1
|
|
return v2
|
|
}
|
|
; run: %urem_i8(0, 1) == 0
|
|
; run: %urem_i8(2, 2) == 0
|
|
; run: %urem_i8(1, -1) == 1
|
|
; run: %urem_i8(3, 2) == 1
|
|
; run: %urem_i8(19, 7) == 5
|
|
; run: %urem_i8(3, -2) == 3
|
|
; run: %urem_i8(-19, 7) == 6
|
|
; run: %urem_i8(0xC0, 8) == 0
|
|
; run: %urem_i8(0xC0, -8) == 0xC0
|
|
; run: %urem_i8(0x80, -2) == 0x80
|
|
|
|
|
|
function %urem_imm_i64(i64) -> i64 {
|
|
block0(v0: i64):
|
|
v1 = urem_imm v0, 3
|
|
return v1
|
|
}
|
|
; run: %urem_imm_i64(0) == 0
|
|
; run: %urem_imm_i64(1) == 1
|
|
; run: %urem_imm_i64(2) == 2
|
|
; run: %urem_imm_i64(3) == 0
|
|
; run: %urem_imm_i64(19) == 1
|
|
; run: %urem_imm_i64(-19) == 0
|
|
; run: %urem_imm_i64(0xC0FFEEEE_DECAFFFF) == 0
|
|
; run: %urem_imm_i64(0x80000000_00000000) == 2
|
|
|
|
function %urem_imm_i32(i32) -> i32 {
|
|
block0(v0: i32):
|
|
v1 = urem_imm v0, 3
|
|
return v1
|
|
}
|
|
; run: %urem_imm_i32(0) == 0
|
|
; run: %urem_imm_i32(1) == 1
|
|
; run: %urem_imm_i32(2) == 2
|
|
; run: %urem_imm_i32(3) == 0
|
|
; run: %urem_imm_i32(19) == 1
|
|
; run: %urem_imm_i32(-19) == 0
|
|
; run: %urem_imm_i32(0xC0FFEEEE) == 2
|
|
; run: %urem_imm_i32(0x80000000) == 2
|
|
|
|
function %urem_imm_i16(i16) -> i16 {
|
|
block0(v0: i16):
|
|
v1 = urem_imm v0, 3
|
|
return v1
|
|
}
|
|
; run: %urem_imm_i16(0) == 0
|
|
; run: %urem_imm_i16(1) == 1
|
|
; run: %urem_imm_i16(2) == 2
|
|
; run: %urem_imm_i16(3) == 0
|
|
; run: %urem_imm_i16(19) == 1
|
|
; run: %urem_imm_i16(-19) == 0
|
|
; run: %urem_imm_i16(0xC0FF) == 0
|
|
; run: %urem_imm_i16(0x8000) == 2
|
|
|
|
function %urem_imm_i8(i8) -> i8 {
|
|
block0(v0: i8):
|
|
v1 = urem_imm v0, 3
|
|
return v1
|
|
}
|
|
; run: %urem_imm_i8(0) == 0
|
|
; run: %urem_imm_i8(1) == 1
|
|
; run: %urem_imm_i8(2) == 2
|
|
; run: %urem_imm_i8(3) == 0
|
|
; run: %urem_imm_i8(19) == 1
|
|
; run: %urem_imm_i8(-19) == 0
|
|
; run: %urem_imm_i8(0xC0) == 0
|
|
; run: %urem_imm_i8(0x80) == 2
|