Files
wasmtime/cranelift/filetests/filetests/runtests/br.clif
Trevor Elliott a5698cedf8 cranelift: Remove brz and brnz (#5630)
Remove the brz and brnz instructions, as their behavior is now redundant with brif.
2023-01-30 20:34:56 +00:00

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