215 lines
3.6 KiB
Plaintext
215 lines
3.6 KiB
Plaintext
test interpret
|
|
test run
|
|
target aarch64
|
|
target s390x
|
|
target x86_64
|
|
target riscv64
|
|
|
|
function %jump() -> i8 {
|
|
block0:
|
|
jump block2
|
|
|
|
block1:
|
|
v0 = iconst.i8 0
|
|
return v0
|
|
|
|
block2:
|
|
v1 = iconst.i8 1
|
|
return v1
|
|
}
|
|
; run: %jump() == 1
|
|
|
|
|
|
function %brif_false__i64(i64) -> i8 {
|
|
block0(v0: i64):
|
|
brif v0, block2, block1
|
|
|
|
block1:
|
|
v1 = iconst.i8 1
|
|
return v1
|
|
|
|
block2:
|
|
v2 = iconst.i8 0
|
|
return v2
|
|
}
|
|
; run: %brif_false__i64(0) == 1
|
|
; run: %brif_false__i64(1) == 0
|
|
; run: %brif_false__i64(-1) == 0
|
|
; run: %brif_false__i64(97) == 0
|
|
|
|
function %brif_false__i8_overflow(i8) -> i8 {
|
|
block0(v0: i8):
|
|
v1 = iconst.i8 255
|
|
v2 = iadd.i8 v0, v1
|
|
brif v2, block1, block2
|
|
|
|
block1:
|
|
v3 = iconst.i8 1
|
|
return v3
|
|
|
|
block2:
|
|
v4 = iconst.i8 0
|
|
return v4
|
|
}
|
|
|
|
; run: %brif_false__i8_overflow(0) == 1
|
|
; run: %brif_false__i8_overflow(1) == 0
|
|
; run: %brif_false__i8_overflow(2) == 1
|
|
; run: %brif_false__i8_overflow(98) == 1
|
|
; run: %brif_false__i8_overflow(97) == 1
|
|
|
|
function %brif_false__i16_overflow(i16) -> i8 {
|
|
block0(v0: i16):
|
|
v1 = iconst.i16 65535
|
|
v2 = iadd v0, v1
|
|
brif v2, block1, block2
|
|
|
|
block1:
|
|
v3 = iconst.i8 1
|
|
return v3
|
|
|
|
block2:
|
|
v4 = iconst.i8 0
|
|
return v4
|
|
}
|
|
|
|
; run: %brif_false__i16_overflow(0) == 1
|
|
; run: %brif_false__i16_overflow(1) == 0
|
|
; run: %brif_false__i16_overflow(2) == 1
|
|
; run: %brif_false__i16_overflow(98) == 1
|
|
; run: %brif_false__i16_overflow(97) == 1
|
|
|
|
function %brif_false__i32_overflow(i32) -> i8 {
|
|
block0(v0: i32):
|
|
v1 = iconst.i32 4294967295
|
|
v2 = iadd v0, v1
|
|
brif v2, block1, block2
|
|
|
|
block1:
|
|
v3 = iconst.i8 1
|
|
return v3
|
|
|
|
block2:
|
|
v4 = iconst.i8 0
|
|
return v4
|
|
}
|
|
|
|
; run: %brif_false__i32_overflow(0) == 1
|
|
; run: %brif_false__i32_overflow(1) == 0
|
|
; run: %brif_false__i32_overflow(2) == 1
|
|
; run: %brif_false__i32_overflow(98) == 1
|
|
; run: %brif_false__i32_overflow(97) == 1
|
|
|
|
function %brif_false__i32(i32) -> i8 {
|
|
block0(v0: i32):
|
|
brif v0, block2, block1
|
|
|
|
block1:
|
|
v1 = iconst.i8 1
|
|
return v1
|
|
|
|
block2:
|
|
v2 = iconst.i8 0
|
|
return v2
|
|
}
|
|
; run: %brif_false__i32(0) == 1
|
|
; run: %brif_false__i32(1) == 0
|
|
; run: %brif_false__i32(-1) == 0
|
|
|
|
function %brif_false__i16(i16) -> i8 {
|
|
block0(v0: i16):
|
|
brif v0, block2, block1
|
|
|
|
block1:
|
|
v1 = iconst.i8 1
|
|
return v1
|
|
|
|
block2:
|
|
v2 = iconst.i8 0
|
|
return v2
|
|
}
|
|
; run: %brif_false__i16(0) == 1
|
|
; run: %brif_false__i16(1) == 0
|
|
; run: %brif_false__i16(-1) == 0
|
|
|
|
function %brif_false__i8(i8) -> i8 {
|
|
block0(v1: i8):
|
|
brif v1, block2, block1
|
|
|
|
block1:
|
|
v2 = iconst.i8 1
|
|
return v2
|
|
|
|
block2:
|
|
v3 = iconst.i8 0
|
|
return v3
|
|
}
|
|
; run: %brif_false__i8(1) == 0
|
|
; run: %brif_false__i8(0) == 1
|
|
|
|
|
|
function %brif_true__i64(i64) -> i8 {
|
|
block0(v0: i64):
|
|
brif v0, block1, block2
|
|
|
|
block1:
|
|
v1 = iconst.i8 1
|
|
return v1
|
|
|
|
block2:
|
|
v2 = iconst.i8 0
|
|
return v2
|
|
}
|
|
; run: %brif_true__i64(0) == 0
|
|
; run: %brif_true__i64(1) == 1
|
|
; run: %brif_true__i64(-1) == 1
|
|
|
|
function %brif_true__i32(i32) -> i8 {
|
|
block0(v0: i32):
|
|
brif v0, block1, block2
|
|
|
|
block1:
|
|
v1 = iconst.i8 1
|
|
return v1
|
|
|
|
block2:
|
|
v2 = iconst.i8 0
|
|
return v2
|
|
}
|
|
; run: %brif_true__i32(0) == 0
|
|
; run: %brif_true__i32(1) == 1
|
|
; run: %brif_true__i32(-1) == 1
|
|
|
|
function %brif_true__i16(i16) -> i8 {
|
|
block0(v0: i16):
|
|
brif v0, block1, block2
|
|
|
|
block1:
|
|
v1 = iconst.i8 1
|
|
return v1
|
|
|
|
block2:
|
|
v2 = iconst.i8 0
|
|
return v2
|
|
}
|
|
; run: %brif_true__i16(0) == 0
|
|
; run: %brif_true__i16(1) == 1
|
|
; run: %brif_true__i16(-1) == 1
|
|
|
|
function %brif_true__i8(i8) -> i8 {
|
|
block0(v0: i8):
|
|
brif v0, block1, block2
|
|
|
|
block1:
|
|
v1 = iconst.i8 1
|
|
return v1
|
|
|
|
block2:
|
|
v2 = iconst.i8 0
|
|
return v2
|
|
}
|
|
; run: %brif_true__i8(0) == 0
|
|
; run: %brif_true__i8(1) == 1
|
|
; run: %brif_true__i8(-1) == 1
|
|
; run: %brif_true__i8(97) == 1
|